乐筑天下

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

[编程交流] 电气本垒打Lisp

[复制链接]

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:38:45 | 显示全部楼层 |阅读模式
大家好。我正在使用AutoCAD 2016,我正在尝试使用下面的Homerun lisp,但没有成功。其他使用旧版本CAD的用户可以使用。
我希望这个网站上有人能帮我找到解决方法。
 
 
(定义C:HR(/ORTM P1 P2 P3 AR AL RA P4 AN2 AN3 A3 AN P5 AN4 AR1)
(SETQ ORTM(GETVAR“正交模式”))
(SETVAR“ORTHOMODE”0)
(提示“\n点击开始点”)
(SETQ P1(GETPOINT))
(提示“\n点击箭头”)
(SETQ P2(GETPOINT))
(命令“ARC”P1“E”P2“D”暂停)
(SETQ P3(OSNAP P1“QUI,MID”))
(SETQ AR(ENTLAST))
(SETQ AL(ENTGET(ENTLAST)))
(SETQ RA(CDR(ASSOC 40 AL)))
(SETQ P4(CDR(ASSOC 10 AL)))
(SETQ AN2(角度P4 P2))
(SETQ AN3(角度P4 P3))
(SETQ A3(角度P4 P3))
(SETQ AN(角度P1 P2))
(条件
((或(>AN(*PI 1.5))(
(如果(和(>A3 0.0)(
(SETQ AN2(角度P4 P2))
(SETQ AN2(角度P2 P4))
)
)
((和(AN(*PI 0.5));;;进行了修改
(如果(和(>A3 0.0)(
(SETQ AN2(角度P2 P4))
(SETQ AN2(角度P4 P2))
)
)
)
(SETQ P5(极性P2(+AN2(*PI 0.5))(*0.15(GETVAR“DIMSCALE”)))
(SETQ AN4(角度P4 P5))
(SETQ P5(极性P4 AN4 RA))
 
 
 
(命令“PLINE”P2“W”“0”(*0.06(GETVAR“DIMSCALE”))P5“W”“0”“0”P2“”)
(SETQ AR1(ENTLAST))
(命令“PEDIT”AR“Y”“J”AR1”““X”)
(setq ar(entlast))
(SETVAR“正交模式”ortm)
)
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 18:46:26 | 显示全部楼层
以后请正确张贴代码。抛出了什么错误消息?
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:53:08 | 显示全部楼层
很抱歉粘贴不好。
 
 
我得到的错误是:
 
 
指定圆弧的中心点(按住Ctrl键切换方向)或[角度/方向/半径]:D
指定圆弧起点的切线方向(按住Ctrl键切换方向):
命令:;错误:错误的参数类型:2D/3D点:nil
我试着用vlisp调试它,但似乎在线上失败了:
(SETQ AN3(角度P4 P3))
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:56:55 | 显示全部楼层
osnap是一个保留字,lisp在这里寻找defun
  1. (SETQ P3 (OSNAP P1 "QUI,MID")) ;wrong
  2. (SETQ P3 (GETPOINT P1 "QUI,MID")) ;works
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:04:52 | 显示全部楼层
谢谢你,比格尔,但我一定做错了什么。
 
 
我替换了
 
 
(SETQ P3(OSNAP P1“QUI,MID”))
 
 
具有
 
 
(SETQ P3(获取点P1“QUI,MID”))
 
 
但还是没有运气。你能在2016年ACAD上试试吗?
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 19:13:10 | 显示全部楼层
比格尔,这是错误的:
(setq p3(获取点p1“QUI,MID”))
由于点后字符串规范仅表示消息,而不表示OSNAP-s。。。相反,尝试在调用(getpoint)之前设置(setvar'OSMODE num),或直接在(getpoint)之前使用命令设置OSNAP-s:(命令“_.OSNAP”“QUI,MID”)
 
M、 R。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:19:48 | 显示全部楼层
谢谢你,M.R。
 
 
我不擅长lisp,所以我不确定您是如何修改lisp的。
 
 
你介意在修改的部分之前和之后张贴一个帖子吗?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 19:24:33 | 显示全部楼层
  1. (SETQ P3 (OSNAP P1 "QUI,MID"))

 
如果p1是可以从当前拾取框孔径大小中提取中点的实体上的有效点列表,则应可行。否则(osnap)将返回nil,并应将“错误:错误参数类型:2D/3D点:nil”返回给任何需要点列表值参数的函数。ie(角度)
 
-达武德
回复

使用道具 举报

8

主题

81

帖子

45

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
76
发表于 2022-7-5 19:28:41 | 显示全部楼层
只要用另一种方法得到你的中点。
这里有一种方法:
 
  1. (DEFUN C:HR (/ ORTM P1 P2 P3 AR AL RA P4 AN2 AN3 A3 AN P5 AN4 AR1)
  2. (SETQ ORTM (GETVAR "ORTHOMODE"))
  3. (SETVAR "ORTHOMODE" 0)
  4. (PROMPT "\nPICK POINT TO START FROM")
  5. (SETQ P1 (GETPOINT))
  6. (PROMPT "\nPICK POINT FOR ARROW HEAD")
  7. (SETQ P2 (GETPOINT))
  8. (COMMAND "ARC" P1 "E" P2 "D" PAUSE)
  9. [color="red"](SETQ P3 (POLAR P1 (ANGLE P1 P2)(/ (DISTANCE P1 P2) 2.0)))[/color]
  10. ;(SETQ P3 (OSNAP P1 "QUI,MID"))
  11. (SETQ AR (ENTLAST))
  12. (SETQ AL (ENTGET(ENTLAST)))
  13. (SETQ RA (CDR (ASSOC 40 AL)))
  14. (SETQ P4 (CDR (ASSOC 10 AL)))
  15. (SETQ AN2 (ANGLE P4 P2))
  16. (SETQ AN3 (ANGLE P4 P3))
  17. (SETQ A3 (ANGLE P4 P3))
  18. (SETQ AN (ANGLE P1 P2))
  19. (COND
  20. ((OR (> AN (* PI 1.5)) (< AN (* PI 0.5)))
  21. (IF (AND (> A3 0.0) (< A3 PI))
  22. (SETQ AN2 (ANGLE P4 P2))
  23. (SETQ AN2 (ANGLE P2 P4))
  24. )
  25. )
  26. ((AND (< AN (* PI 1.5)) (> AN (* PI 0.5))) ;;;Modifications were done
  27. (IF (AND (> A3 0.0) (< A3 PI)) ;;;here
  28. (SETQ AN2 (ANGLE P2 P4))
  29. (SETQ AN2 (ANGLE P4 P2))
  30. )
  31. )
  32. )
  33. (SETQ P5 (POLAR P2 (+ AN2 (* PI 0.5)) (* 0.15 (GETVAR "DIMSCALE"))))
  34. (SETQ AN4 (ANGLE P4 P5))
  35. (SETQ P5 (POLAR P4 AN4 RA))
  36. (COMMAND "PLINE" P2 "W" "0" (* 0.06 (GETVAR "DIMSCALE")) P5 "W" "0" "0" P2 "")
  37. (SETQ AR1 (ENTLAST))
  38. (COMMAND "PEDIT" AR "Y" "J" AR1 "" "X")
  39. (setq ar(entlast))
  40. (SETVAR "ORTHOMODE" ortm)
  41. )
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:38:45 | 显示全部楼层
jvillarreal你太棒了!!!!非常感谢你。该脚本在ACAD 2016中运行良好。你再次摇滚!!!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:41 , Processed in 0.760427 second(s), 72 queries .

© 2020-2025 乐筑天下

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