乐筑天下

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

[编程交流] 嵌套桥

[复制链接]

2

主题

17

帖子

15

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:04:40 | 显示全部楼层 |阅读模式
你找到解决办法了吗?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:15:43 | 显示全部楼层
我认为你可以在两个物体EGDE上拖动一条线,然后做相隔5mm的平行线并自动修剪。
 
此刻什么都不会想。
170443fk39a03f9uyx1qf1.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:21:09 | 显示全部楼层
在两个对象内尝试此拾取。您可能需要注意选择两个具有正交等的点。
 
  1. ; Create two paralell lines between two objects
  2. ; by crossing objects
  3. ; By Alan H Sep 2017
  4. (defun c:brid ( / pt1 pt2pt3 pt4 ss obj1 obj3 obj4)
  5. (setq oldsnap (getvar "osmode"))
  6. (setvar "osmode" 0)
  7. (setq pt1 (getpoint "pick inside pt1"))
  8. (while (/= (setq pt2 (getpoint pt1 "pick inside pt2")) nil)
  9. (setq ss (ssget "f" (list pt1 pt2)))
  10. (if (and (/= ss nil)(< 3 (sslength ss)))
  11. (progn
  12. (alert "do again more than two objects")(exit)
  13. ))
  14. (setq obj1 (vlax-ename->vla-object (ssname ss 0)))
  15. (setq obj2 (vlax-ename->vla-object (ssname ss 1)))
  16. (command "line" pt1 pt2 "")
  17. (setq obj3 (entlast))
  18. (command "offset" 2.5 obj3 (polar pt1 (+ (/ pi 2.0)(angle pt1 pt2)) 5) "")
  19. (setq obj4 (vlax-ename->vla-object (entlast)))
  20. (setq pt3  (vlax-invoke obj1 'intersectWith obj4 acExtendThisEntity))
  21. (setq pt4  (vlax-invoke obj2 'intersectWith obj4 acExtendThisEntity))
  22. (vla-delete obj4)
  23. (command "line" pt3 pt4 "")
  24. (setq obj5 (entlast))
  25. (command "offset" 2.5 obj3 (polar pt1 (+ (/ pi 2.0)(angle pt2 pt1)) 5) "")
  26. (setq obj4 (vlax-ename->vla-object (entlast)))
  27. (setq pt5  (vlax-invoke obj1 'intersectWith obj4 acExtendThisEntity))
  28. (setq pt6  (vlax-invoke obj2 'intersectWith obj4 acExtendThisEntity))
  29. (vla-delete obj4)
  30. (command "line" pt5 pt6 "")
  31. (setq obj6 (entlast))
  32. (vla-delete (vlax-ename->vla-object obj3))
  33. (command "trim" obj5 obj6 "" "f" pt1 pt2 "" "")
  34. (setvar 'osmode oldsnap)
  35. (setq pt1 pt2)
  36. )
  37. (princ)
  38. )
回复

使用道具 举报

2

主题

17

帖子

15

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:28:41 | 显示全部楼层
谢谢你,比格尔。非常有用的代码。我会试着根据我的要求修改。检查附件,需要用两条线连接所有零件。非常乏味的工作。
170445gq7k7cmq1qztbjcg.jpg
170447o77dc67jczj3aobi.jpg
170448hnnnm7mgg1of4ax4.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:39:09 | 显示全部楼层
这与我认为你想要的不同,你应该提到激光切割,好的,你可以使用我所做的,只需使用我计算的点和正确的obj id在代码中添加2次中断。它需要一段时间,所以可以进行大量中断,模式的随机性使得很难以某种简单的方式添加连接,但也就是说,可能有人已经这样做了。连接的检查可以是使用一个大窗口进行Pedit和连接,并说更改颜色。
 
更改代码以匹配您发布的内容。
170450qi8o6llx89x186x2.jpg
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 16:45:40 | 显示全部楼层
你在使用什么嵌套软件?
回复

使用道具 举报

2

主题

17

帖子

15

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:53:28 | 显示全部楼层
我们在autocad中手动嵌套,然后导入。OmniWin(MesserSoft)软件中的dwg文件,用于生成CNC代码。
本练习(零件到零件连接桥)的目的是减少数控机床的穿孔次数(连续切割,无引入/引出),以节省切割时间。
 
@比加尔
 
我得到了你的关注。可以通过在lisp末尾添加(命令“trim”“”“f”pt1 pt2”“”“)来完成中断。
参考图A是我们的要求,每个零件应该只有一个输入和一个输出。
图B,我的计划是手动添加行,如红色所示。因此,可以为每个零件识别pt1和pt2。我正在努力。
170451zx0aewm9docpdkn0.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:58:51 | 显示全部楼层
ggservers是我更新的你想要的代码,很抱歉现在有两个人请求。
 
Dipesh我在考虑它,是的,做一个普林路径是一条路要走,这将需要一个大的重写,因为你需要在一个大循环中逐步通过线词和对象。我发布的代码将是一个很好的起点,使一些defuns循环工程。现在一个简单的修复方法是在中断后将pt2设置为pt1等,并请求新的pt2。这就像绘制pline一样,在while之前放置get pt1。
 
我再次更改了代码,使其工作方式类似于普林线选择其静态手册,但与您建议的方式相同。唯一的打嗝是一条两点线,有些形状你可能需要停下来重新开始。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 17:04:44 | 显示全部楼层
为什么不买一个好的嵌套软件呢?原始线程是一个与您想要的完全不同的请求,因此我将使其成为一个单独的线程AutoLISP、Visual LISP和DCL>嵌套桥。
 
BIGAL,OP请求(ggservers)来自5年前。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:08 , Processed in 2.205011 second(s), 72 queries .

© 2020-2025 乐筑天下

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