乐筑天下

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

[编程交流] 按clic对实体排序和编号

[复制链接]

3

主题

10

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 18:19:35 | 显示全部楼层 |阅读模式
大家好!
 
我在寻求帮助:我需要用激光切割有机玻璃。该表单由Autocad绘制,带有许多圆形和弧形。
 
知道有人能用例程或lisp单击实体来重新排序排序吗?其次,在实体中添加一个累进的数字,以直观地控制它们的排序,这将是非常棒的!
 
(我希望我提出的问题很清楚。我的英语很差)。
 
再见,
Daveacad公司
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:27:25 | 显示全部楼层
 
你说的“重新排序”是什么意思?
 
为了帮助我们理解,您能解释一下您是如何手动执行此操作的吗?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:28:00 | 显示全部楼层
听起来像是筑巢以减少浪费
回复

使用道具 举报

3

主题

10

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 18:32:40 | 显示全部楼层
嗨,李,
看图片!
 

                               
登录/注册后可看大图

 
如你所见,右边是我绘制的图,实体的顺序是通过绘制来实现的(这只是一个例子。我没有检查正确的顺序!!!)。
在左侧,相同的图形具有相同的实体,但为了让激光切割效果更好。
在下面,我画出了激光的路径。
 
我需要的是选择实体的可能性,并决定在另一个实体之前“绘制”哪个实体。这是因为激光切割的路径取决于图形中插入实体的顺序。
 
第二张图片是第一次剪切的结果:
 

                               
登录/注册后可看大图

 
P、 我想这些弧是在一条直线上连接起来的!
 
 
再见,
达维德
191944vkrk7zppzn0pkkz7.jpg
191946hzabd0vapawbphdp.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:37:31 | 显示全部楼层
不确定是否可以对dwg数据库中的图元重新排序,但可以复制到另一个dwg,因此顺序正确,可能需要使用复制粘贴。使用拾取对象和一些智能工具可以自动执行拾取顺序。ssget“F”将按正确顺序拾取所有圆。
 
需要一个测试代码来查看订单是否正常工作,比如说每个对象上的数字可能使用assoc 10。
 
(setq ss(ssget))(命令“copyclip”ss“”)有效,因此需要使用SSADD创建智能选择集。
 
现在就可以了,但是在岳母生日那天出去吃午饭,让岳母的笑话开始吧。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:42:03 | 显示全部楼层
请尝试以下操作:
  1. ;; OE (Order Entities)  -  Lee Mac
  2. (defun c:oe ( / cnt ent enx new sbx sub )
  3.    (setq cnt 1)
  4.    (while
  5.        (progn
  6.            (setvar 'errno 0)
  7.            (setq ent (car (entsel (strcat "\nSelect object " (itoa cnt) " <done>: "))))
  8.            (cond
  9.                (   (= 7 (getvar 'errno))
  10.                    (princ "\nMissed, try again.")
  11.                )
  12.                (   (null ent)
  13.                    nil
  14.                )
  15.                (   (= 4 (logand 4 (cdr (assoc 70 (tblsearch "layer" (cdr (assoc 8 (setq enx (entget ent)))))))))
  16.                    (princ "\nSelected object is on a locked layer.")
  17.                )
  18.                (   (and
  19.                        (setq new (entmakex enx))
  20.                        (or (/= 1 (cdr (assoc 66 enx)))
  21.                            (progn
  22.                                (setq sub (entnext ent)
  23.                                      sbx (entget  sub)
  24.                                )
  25.                                (while (/= "SEQEND" (cdr (assoc 0 sbx)))
  26.                                    (entmake sbx)
  27.                                    (setq sub (entnext sub)
  28.                                          sbx (entget  sub)
  29.                                    )
  30.                                )
  31.                                (entmake sbx)
  32.                            )
  33.                        )
  34.                    )
  35.                    (entdel ent)
  36.                    (redraw new 3)
  37.                    (setq   cnt (1+ cnt))
  38.                )
  39.                (   (princ "\nUnable to reorder selected object."))
  40.            )
  41.        )
  42.    )
  43.    (command "_.regen")
  44.    (princ)
  45. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:46:51 | 显示全部楼层
李,那将是19选择我的想法4为圆圈最后1为外普林形状掉出来。5根镐。需要一个智能围栏或一次一个。
191948ywbg2nyn0gbqzpgb.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:51:38 | 显示全部楼层
第2部分测试我使用带数字的文本来检查对象的顺序。其硬编码以匹配测试模式,但方法存在。
 
  1. (defun c:test ( / pt1 pt2 pt3 pt4 pt5 ss x)
  2. (setq pt1 (getpoint))
  3. (setq pt2 (getpoint))
  4. (setq pt3 (getpoint))
  5. (setq pt4 (getpoint))
  6. (setq pt5 (getpoint))
  7. (setq ss (ssget "F" (list pt1 pt2 pt3 pt4 pt5)))
  8. (setq x (sslength ss))
  9. (repeat (sslength ss)
  10. (princ (vla-get-textstring (vlax-ename->vla-object(ssname ss (setq x ( - x 1))))))
  11. (princ "\n")
  12. )
  13. )

191949yi8c65mbzvj986mc.jpg
回复

使用道具 举报

3

主题

10

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 18:54:00 | 显示全部楼层
大家好,
谢谢你的工作!!!
 
李编写的代码运行正常。它将非常有用的所有正常选择选项;有200多个实体,需要时间逐一挑选。
 
关于比格尔的代码,我什么都不能说。。。我Lisp程序!我试过用它,但我不明白它是怎么工作的。无论如何,再次感谢您的关注。
 
现在,李先生,您可以添加使用AutoCAD所有选择选项的功能吗?用数字标记项目也很好,只是用普通文本。
 
我希望你有一个美好的结局!!!
Grazie,
大卫
回复

使用道具 举报

2

主题

53

帖子

57

银币

初来乍到

Rank: 1

铜币
14
发表于 2022-7-5 18:59:10 | 显示全部楼层
嗨,李,
 
我认为这可能对我有用。我会尽快给它做个测试。
 
我的测量仪器可以导入dxf,实体在dxf中的顺序对应于指定的顶点和块的点编号。我发现我可以通过两次反转线路来设置线路工作顺序。
 
P
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:54 , Processed in 0.475305 second(s), 74 queries .

© 2020-2025 乐筑天下

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