; 错误:错误的参数类型:nu
我在2011年使用lisp例程ARC-PARK,并得到了这个错误。以前的帖子也有同样的错误,但不懂代码。没有专门解决此lisp的问题。任何帮助都将不胜感激。
;技巧1815:ARC-PARK。LSP ARC停车©2002,Ron Engberg
;; 此例程允许用户沿弧形放置停车位。
;;
;; 作者:Ron Engberg 12-2000
;; 弧度到度
(defun RTD®(*(/R pi)180))
;; 度到弧度
(defun DTR®(/(*2 pi)360))
(德芬)
C: ARC-PARK(/ENT ARC-PT1 STALL-W STALL-L ARC-SIDE ARC-DIR
失速计数ARC_列表ARC-CPT ARC-DIAM S-ANG E-ANG
弧-圆周-三角形弧长失速角度-进入失速角度-退出
弧底弧转角
)
;; 屏幕回声关闭
(setvar“cmdecho”0)
;; 设置为世界UCS
(命令“ucs”“w”)
;; 停车位信息
(setq ENT(entsel“\n选择弧:))
(initget 1)
(setq ARC-PT1(getpoint“\n开始弧结束:”)
(initget 7)
(setq STALL-W(getreal“\n暂停宽度:”))
(initget 7)
(setq STALL-L(getreal“\n暂停长度:”))
(setq弧侧(getstring“\n内侧或外侧:”)
(setq)
ARC-DIR
(getstring“\n顺时针或逆时针:”)
) ;_ setq结束
(initget 7)
(setq STALL-COUNT(getint“\n暂停数:”))
;; Arc信息
(setq ARC_列表(entget(car ENT)))
(setq ARC-CPT(cdr(assoc 10 ARC_列表));中心点
(setq ARC-DIAM(*(cdr(assoc 40 ARC_列表))2));弧直径
(如果(或(=弧侧“I”)(=弧侧“I”))
(setq ARC-DIAM(-ARC-DIAM(*2 STALL-L)))
) ;_ if结束
(setq)
S-ANG公司
(cdr(assoc 50 ARC_列表));起始角度
E-ANG公司
(cdr(assoc 51 ARC_列表));末端角度
ARC-CIRC
(*pi ARC-DIAM);弧周长
;弧长
) ; 结束弧信息
;; 三角角测试
(如果(>S_ANG E_ANG)
(setq增量(+-6.2831853 S-ANG)E-ANG)
(setq DELTA(abs(-S-ANG E-ANG)))
) ; 如果结束
(setq弧长(*(cdr(assoc 40 ARC_LIST))DELTA))
;; 启动线角度
(setq)
失速角输入
(角度ARC-PT1 ARC-CPT);弧内失速
失速角输出
(角度ARC-CPT ARC-PT1);弧外失速
) ; “结束集”组
;; 旋转信息
(setq)
弧形底座
(/ARC-CIRC 360.0000);每度长度
弧转角
(/STALL-W ARC-BASE);每个失速的度数
) ; “结束集”组
;; 内部或外部测试
(如果(或(=弧侧“I”)(=弧侧“I”);区分大小写?
(命令行“ARC-PT1(极弧-PT1失速角度-IN失速-L)”)
;如果在内部
(命令行“ARC-PT1(极弧-PT1失速-角度-输出失速-L)”)
;否则,外部
) ;如果结束
;; 顺时针或逆时针测试
(如果(或(=ARC-DIR“CCW”)(=ARC-DIR“CCW”));区分大小写?
(程序
(重复失速计数
(命令“array”“l”“”“P”ARC-CPT“2”ARC-ROT-ANGLE“Y”)
) ;_ 重复结束
) ; 如果是ccw
(程序
(重复失速计数
(命令
“数组”
“l”
""
“P”
ARC-CPT
"2"
(-ARC-ROT-ANGLE(*2 ARC-ROT-ANGLE))
“Y”
) ;_ 命令结束
) ;_ 重复结束
) ; 其他cw
) ; 如果结束
;; 重置UCS
(命令“ucs”“p”)
(普林斯)
;; 屏幕回声打开
(setvar“cmdecho”1)
) ;_ defun结束 这个项目在2004年对我来说效果很好。
将其加载到visual lisp编辑器中并进行调试,以便您可以看到它崩溃的地方。
在AutoCAD中,依次转到“工具”、“autolisp”和“visual lisp编辑器”
在编辑器中,转到文件,然后打开文件,导航到有问题的lisp文件并加载它。
将光标放在表示(setvar“cmdecho”0)的行的左括号之前
然后按F9键以创建断点。左括号应变为红色。
然后转到“工具”并选择“在文本编辑器中加载”
更改为AutoCAD并在ARC-PARK中键入,然后按enter键
这将返回到编辑器
现在使用F8键逐行执行。当您需要回答提示时,这将返回acad,然后返回编辑器。
程序出现错误时应停止。然后,您将知道错误发生在哪里,并能够修复它或解释发生了什么。 从我这一头开始效果很好。
我建议您键入VLIDE以打开visual lisp编辑器。
然后使用除虫器,看看它停在哪里。
编辑见上文。。。。。。
....约翰打败了我。 它在这条线上崩溃了
(setq DELTA(abs(-S-ANG E-ANG)))
在(abs(-S-ANG E-ANG))) 我的情况也很好。
如果选择集与您的实体需求相匹配,并且在执行命令之后,最好测试选择集。
(setq ENT (entsel "\nSelect ARC: "))
(if (eq (cdr (assoc 0 (entget (car ENT)))) "ARC")
(progn ...........
祝你好运 这可能是因为您的输入数字对于代码来说太大或太小(没有错误捕捉)。
当它停止时,检查手表窗口中的数值(带有一副阅读眼镜的图标)
首先检查S-ANG和E-ANG的值。
如果你仍然无法计算出发生了什么,请举一个输入数字的例子。
页:
[1]