乐筑天下

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

[编程交流] 图纸错误

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:13:55 | 显示全部楼层 |阅读模式
为什么我的代码只运行一次,然后使用不同的坐标。有时,它甚至不画任何东西,除了一个小圆圈。
 
如何使中心线成为线型?(我确实使用了带负值的dimcen使其成为“Line”)
 
本来会贴照片的,但保护措施起了作用。
 
  1. (DEFUN C:U13_Bukauskas()
  2.         (setq p (getpoint "\nIveskite apskritimo centro koordinates: "))
  3. (setq x (getint "\nIveskite apskritimo skersmeni: "))
  4. (command "color" "t" "0,0,0")
  5. (setq p1 (polar p PI (* x 1.5)))
  6. (setq p1 (polar p1 (/ (* 90 PI) 180) (* 0.5 x)))
  7. (setq p2 (polar p1  (* 0.5 PI) (* x 1.5)))
  8. (setq p3 (polar p2 (* 0 PI) (* x 2)))
  9. (setq p4 (polar p3 (* 0 PI) x))
  10. (setq p5 (polar p4 (/ (* 270 PI) 180) (* x 2.5)))
  11. (setq p6 (polar p5 (/ (* 270 PI) 180) (* x 1.5)))
  12. (setq p7 (polar p6 PI (* x 2)))
  13. (setq p8 (polar p7 PI x))
  14. (setq p9 (polar p1 (* 0 PI) (* 2 x)))
  15. (setq p10 (polar p5 PI (* x 2)))
  16. (setq p11 (polar p PI (* x 0.6)))
  17. (setq p12 (polar p 0 (* x 0.6)))
  18. (setq p13 (polar p (/ (* 270 PI) 180) (* x 0.6)))
  19. (setq p14 (polar p (/ (* 90 PI) 180) (* x 0.6)))
  20. (command "Line" p1 p2 "")
  21. (setq L (entlast))
  22. (command "Line" p2 p3 p4 p5 p6 p7 p8 p1 "")
  23. (command "color" "white" "-hatch" "p" "s" "s" L p2 p3 p4 p5 p6 p7 p8 p1 "" "")
  24. (command "color" "t" "0,0,0")
  25. (command "circle" p "d" x "")
  26. (setq aps (entlast))       
  27. (command "color" "blue")
  28. (command "dimcen" "-2.5" "")
  29.        (command "dimcenter" (list (entlast) (polar p 0 x)) "")
  30. (command "color" "t" "0,0,0")
  31. (command "hatch" "s" aps "")
  32. (command "color" "t" "0,0,0")
  33. (command "Line" p9 p1 "")
  34. (setq E1 (entlast))
  35. (command "Line" p9 p3 "")
  36. (setq E2 (entlast))
  37. (command "Line" p10 p5 "")
  38. (setq E3 (entlast))
  39. (command "Line" p10 p7 "")
  40. (setq E4 (entlast))
  41. (command "fillet" "radius" (* 0.5 x))
  42. (command "fillet" "trim" "T" E1 E2)
  43. (command "fillet" "trim" "T" E3 E4)
  44. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:49:02 | 显示全部楼层
对象捕捉很可能会干扰命令调用。
 
也许可以考虑使用entmake(x)创建实体:
 
  1. (defun line ( s e )
  2.    (entmakex
  3.      (list
  4.        (cons 0 "LINE")
  5.        (cons 10 s)
  6.        (cons 11 e)
  7.      )
  8.    )
  9. )
  10. (defun circle ( c r )
  11.    (entmakex
  12.      (list
  13.        (cons 0 "CIRCLE")
  14.        (cons 10 c)
  15.        (cons 40 r)
  16.      )
  17.    )
  18. )
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 12:03:12 | 显示全部楼层
可以将对象捕捉变量设置为0,然后将其设置回当前值。这只需要对程序进行很少的编辑。
 
Add(setq oldsnap(getvar“OSMODE”))要保存当前对象捕捉,请添加(setvar“OSMODE”0)以关闭对象捕捉,然后将(setvar“OSMODE”oldsnap)添加到代码末尾以恢复以前的对象捕捉设置。
 
绘图设计和绘图服务
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:33:49 | 显示全部楼层
谢谢你的回答。天哪,我怎么错过了OSNAP功能?感谢您提供OSNAP关闭/打开的代码。现在一切正常。
至于“Line”类型的中心标记,我只需要使用-1而不是-2.5。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 11:15 , Processed in 0.319551 second(s), 60 queries .

© 2020-2025 乐筑天下

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