乐筑天下

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

[编程交流] 双线软风管

[复制链接]

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 14:27:06 | 显示全部楼层 |阅读模式
我在不同的网站上找到了很多lisp,但不符合我们办公室的标准,也不符合他们喜欢的外观(是的,他们很挑剔),现在我正在努力学习lisp,我想我会尝试得到一个他们将使用的lisp。
 
  1. (defun c:dflex (/ A B C)
  2. (setq A(getint "\n Duct Length?: "))
  3. (setq B(ssget "\n Select duct: "))
  4. (setq C(); want it to allow user to pick start point dont know if i need a variable or not
  5. (command "_.circle" C (/ A 2.0)")

 
这就是我目前所拥有的。我用变量C表示多段线/直线的端点,该端点将作为软风管的起点。在端点上创建第一个圆后,我想沿着选定的多段线/直线从中心复制一个距离为a+1的圆,我不知道该怎么做。任何在正确方向上的帮助都将是巨大的(我再次尝试写这篇文章,但不希望有人为我写它),也愿意接受关于另一种方式的建议。附件是一张我希望决赛看起来像什么的图片
152711np2w21w44ff4sufw.jpg
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 14:44:29 | 显示全部楼层
你的表现真的很难。
 
可以使用“测量”复制圆。通过偏移路径样条线进行修剪可能是一种解决方案,但这将很棘手-大卫
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

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

铜币
254
发表于 2022-7-6 14:49:36 | 显示全部楼层
这将是一个艰难的Lisp程序。祝你好运眨眼:
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 15:02:57 | 显示全部楼层
是的,在你的回答之后,我可能会推迟一点,直到我深入了解它
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 15:08:10 | 显示全部楼层
一个答案是,在多段线中,可以创建一条具有多条弧的多段线。我从另一个未经测试的程序中剪切了这个,但它被设置为绘制90mm的圆弧。
 
  1. (setq insul_ht (getint "\nEnter Insulation ht mm :<90> "))
  2. (if (= insul_ht nil)
  3. (setq insul_ht 90)
  4. )
  5. (setq p1 (getpoint "\n1st point: "))
  6. (setq p9 (getpoint P1 "\nend point : "))
  7. (setq ang1 (angle p1 p9))
  8. (setq p1 (polar p1 ang1 45))   
  9. ; routine to set N as number of pline segments as a factor of 90 mm.
  10. ; 90 mm 25 arc's with straights
  11. (setq N (fix (/ (distance p1 p9) 90.0)))
  12. (setq d1 (- insul_ht 25.0))
  13. (setq d2 25.0)
  14. (setq d3 (- d1 25))
  15. (setq d4 40.0)
  16. (setq p2 (polar p1 (+ 1.5708 ang1)  d1))
  17. (command "pLINE"  p2 "w" 0.0 0.0)
  18. (setq m 0)
  19. (while (< m N)
  20. (setq p3 (polar p2 ang1 d2))
  21. (setq p4 (polar p3 ang1 d2))
  22. (setq p5 (polar (polar p3 ang1 20)(+ ang1 4.71239) d3))
  23. (setq p6 (polar p5 ang1 d2 ))
  24. (setq p7 (polar p6 ang1 d2))
  25. (setq p8 (polar p4  ang1 d4))
  26. ; now put pts 3,4,5,6
  27. (command "a" "ce" p3 "a" "-180" "l" p5 "a" "ce" p6 p7 "l" p8)
  28. ; parallel lines now drawn
  29. (setq m (+ 1 m))
  30. (setq p2 p8)
  31. )
  32. (command "")   
  33. ; ends pline
  34.          
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 15:22:43 | 显示全部楼层
好的,第二步,lisp代码有5种不同的模式
 
[code](setq N(固定(/(距离p1 p9)(*90.0(/绝缘ht 90.0)))(setq d1(/绝缘ht 2.0))(setq p2(极性p1(+1.5708 ang1)d1))(命令“pLINE”p2“w”0.0 0“a”)(setq m 1)(而(
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 15:27:27 | 显示全部楼层
谢谢大艾,我会看看这些,看看我是否能弄清楚发生了什么,以及如何修改以满足我的需要
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-1 08:47 , Processed in 0.494142 second(s), 69 queries .

© 2020-2025 乐筑天下

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