乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 66|回复: 5

[编程交流] ; 错误:错误的参数类型:nu

[复制链接]
jpl

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:21:15 | 显示全部楼层 |阅读模式
我在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结束
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 10:34:29 | 显示全部楼层
这个项目在2004年对我来说效果很好。
将其加载到visual lisp编辑器中并进行调试,以便您可以看到它崩溃的地方。
在AutoCAD中,依次转到“工具”、“autolisp”和“visual lisp编辑器”
在编辑器中,转到文件,然后打开文件,导航到有问题的lisp文件并加载它。
将光标放在表示(setvar“cmdecho”0)的行的左括号之前
然后按F9键以创建断点。左括号应变为红色。
然后转到“工具”并选择“在文本编辑器中加载”
更改为AutoCAD并在ARC-PARK中键入,然后按enter键
这将返回到编辑器
现在使用F8键逐行执行。当您需要回答提示时,这将返回acad,然后返回编辑器。
程序出现错误时应停止。然后,您将知道错误发生在哪里,并能够修复它或解释发生了什么。
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:47:28 | 显示全部楼层
从我这一头开始效果很好。
我建议您键入VLIDE以打开visual lisp编辑器。
然后使用除虫器,看看它停在哪里。
 
编辑见上文。。。。。。
....约翰打败了我。
回复

使用道具 举报

jpl

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:06:06 | 显示全部楼层
它在这条线上崩溃了
(setq DELTA(abs(-S-ANG E-ANG)))
 
在(abs(-S-ANG E-ANG)))
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 11:19:45 | 显示全部楼层
我的情况也很好。
 
如果选择集与您的实体需求相匹配,并且在执行命令之后,最好测试选择集。
 
  1. (setq ENT (entsel "\nSelect ARC: "))
  2. (if (eq (cdr (assoc 0 (entget (car ENT)))) "ARC")
  3. (progn ...........

 
祝你好运
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 11:21:21 | 显示全部楼层
这可能是因为您的输入数字对于代码来说太大或太小(没有错误捕捉)。
当它停止时,检查手表窗口中的数值(带有一副阅读眼镜的图标)
首先检查S-ANG和E-ANG的值。
 
如果你仍然无法计算出发生了什么,请举一个输入数字的例子。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 21:05 , Processed in 0.575971 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表