找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1504|回复: 31

[求助] 求助我这个LSP是啥问题,执行后提示内部错误: !scandr.cpp@815: eWasOpenForWrite

[复制链接]

已领礼包: 2131个

财富等级: 金玉满堂

发表于 2020-8-16 23:52:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我这标注断开,当选择标注数量在49个以内的时候,是可以执行的,当多于49个,就会出错,请问大大是什么问题,谢谢!
我用的CAD2014
UC截图20200816234601.png

Drawing2.rar

77.4 KB, 下载次数: 3, 下载积分: D豆 -1 , 活跃度 1

BZDK.lsp

535 Bytes, 下载次数: 6, 下载积分: D豆 -1 , 活跃度 1

评分

参与人数 1D豆 +20 收起 理由
XDSoft + 20 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 09:52:29 | 显示全部楼层
(setq pt_lst (xdrx_curve_getinters (list p1 p2) ss))
返回值为一个点的点表,用xdrx_dimension_break函数当然不能将尺寸线给分断了。
取轴线的起点、终点试试,就没问题了

点评

我遇到的问题是,只是选择数量多的时候会出错,选择数量少是没问题的。 xdrx_dimension_break这个函数是支持点表的  详情 回复 发表于 2020-8-17 10:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2131个

财富等级: 金玉满堂

 楼主| 发表于 2020-8-17 10:25:52 | 显示全部楼层
dyjwyqz5221 发表于 2020-8-17 09:52
(setq pt_lst (xdrx_curve_getinters (list p1 p2) ss))
返回值为一个点的点表,用xdrx_dimension_break函 ...

我遇到的问题是,只是选择数量多的时候会出错,选择数量少是没问题的。
xdrx_dimension_break这个函数是支持点表的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 10:27:50 | 显示全部楼层
(defun C:BZDK (/ ss)
  (xdrx_begin)
        (xdrx_sysvar_push '("CMDECHO" 0)'("osmode" 0))
        (setq ss (xdrx_ssget '((0 . "DIMENSION"))))
        (mapcar
                '(lambda (x / e p1 p2 pt_lst ss)
                        (setq p1 (xdrx_getpropertyvalue x "XLine1Point"))
                             (setq p2 (xdrx_getpropertyvalue x "XLine2Point"))                 
                        (Setq ss (ssget "F" (list p1 p2) '((8 . "DOTE,AXIS"))))
                        (setq e (car (xdrx-pickset->ents ss)))
                        (SETQ pt_lst (xdrx-getpropertyvalue e "Vertices"))
                        (xdrx_dimension_break x pt_lst)
                )
                (xdrx_pickset->ents ss)
        )
        (xdrx_sysvar_pop)
        (xdrx_end)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 10:32:13 | 显示全部楼层
简单点的
(defun C:BZDK (/ ss)
  (xdrx_begin)
        (xdrx_sysvar_push '("CMDECHO" 0)'("osmode" 0))
        (setq ss (xdrx_ssget '((0 . "DIMENSION"))))
        (mapcar
                '(lambda (x / e pt_lst ss)                 
                        (Setq ss (ssget "cp" (xdrx-entity-box x) '((8 . "DOTE,AXIS"))))
                        (setq e (car (xdrx-pickset->ents ss)))
                        (SETQ pt_lst (xdrx-getpropertyvalue e "Vertices"))
                        (xdrx_dimension_break x pt_lst)
                )
                (xdrx_pickset->ents ss)
        )
        (xdrx_sysvar_pop)
        (xdrx_end)
        (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 10:47:40 | 显示全部楼层
再给你个中间不用选择的,
(defun C:tt (/ ss lst1 lst2)
          (xdrx-begin)
        (xdrx-sysvar-push '("CMDECHO" 0)'("osmode" 0))
        (setq ss (xdrx-ssget
                                (list
                                        '(-4 . "<or")
                                                '(0 . "DIMENSION")
                                                '(8 . "DOTE,AXIS")
                                        '(-4 . "or>")
                                )
                )
        )
        (mapcar
                '(lambda(x)
                        (cond
                                ((xdrx-object-isa x "AcDbLine")
                                        (setq lst2 (cons x lst2))
                                )
                                (t
                                        (setq lst1 (cons x lst1))
                                )
                        )
                )
                (xdrx-pickset->ents ss)
        );;;mapcar       
        (mapcar
                '(lambda (x / e pts)
                        (setq e (car (xdrx-getnearpt (xdrx-getpropertyvalue x "centroid") lst2))
                                pts (xdrx-getpropertyvalue e "Vertices")
                        );;;;setq
                        (xdrx-dimension-break x pts)
                )
                lst1
        )
        (xdrx-sysvar-pop)
        (xdrx-end)
        (princ)
);;;defun

点评

这个TT的不会出错,刚才楼上的,才会出错。谢谢分享。我先参考一下你这个看看自己的怎么改。再度感谢 !  详情 回复 发表于 2020-8-17 11:38
谢谢你的回答,但还是一样,解决不了我的问题。我遇到的问题不是程序运行不了,而是选择数量多了就会出错,你改写的LSP也一样会出错的。所以我觉得错误可能是出在xdrx_dimension_break这个函数上面。  详情 回复 发表于 2020-8-17 11:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2131个

财富等级: 金玉满堂

 楼主| 发表于 2020-8-17 11:32:21 | 显示全部楼层
dyjwyqz5221 发表于 2020-8-17 10:47
再给你个中间不用选择的,
(defun C:tt (/ ss lst1 lst2)
          (xdrx-begin)

谢谢你的回答,但还是一样,解决不了我的问题。我遇到的问题不是程序运行不了,而是选择数量多了就会出错,你改写的LSP也一样会出错的。所以我觉得错误可能是出在xdrx_dimension_break这个函数上面。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2131个

财富等级: 金玉满堂

 楼主| 发表于 2020-8-17 11:38:19 | 显示全部楼层
dyjwyqz5221 发表于 2020-8-17 10:47
再给你个中间不用选择的,
(defun C:tt (/ ss lst1 lst2)
          (xdrx-begin)

这个TT的不会出错,刚才楼上的,才会出错。谢谢分享。我先参考一下你这个看看自己的怎么改。再度感谢

点评

换成最新版的api试试  详情 回复 发表于 2020-8-17 13:55
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 13:55:57 | 显示全部楼层
evayleung 发表于 2020-8-17 11:38
这个TT的不会出错,刚才楼上的,才会出错。谢谢分享。我先参考一下你这个看看自己的怎么改。再度感谢

换成最新版的api试试
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 13:57:30 | 显示全部楼层
下载最新版的api试试

点评

已经是最新版的了,最晚才下载的。  详情 回复 发表于 2020-8-17 14:12
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2131个

财富等级: 金玉满堂

 楼主| 发表于 2020-8-17 14:12:38 | 显示全部楼层
dyjwyqz5221 发表于 2020-8-17 13:57
下载最新版的api试试

已经是最新版的了,最晚才下载的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 14:26:59 | 显示全部楼层
与xdrx-dimension-break函数无关,这几个都用到了这个函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 14:28:35 | 显示全部楼层
坐标系我也看了,世界坐标系,没问题的
你单句测试一下,看看是哪里有问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 14:31:29 | 显示全部楼层
tt中间没用选择集,所以不会出问题。是选择集数量超过了128的限值吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-17 14:32:57 | 显示全部楼层
tt采用的是dimensition中点求最近axis线的模式,

点评

因为有时候可能会遇到几条轴线经过一个标注的,最近的那条并不一定的所需要的。有可能是有平行于标注方向的一条,这样就打断不了。我为了这死机问题,只能想办法绕过那个函数。就造成效率比较低。日后有时间再想想怎  详情 回复 发表于 2020-8-17 18:33
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 00:31 , Processed in 0.374916 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表