乐筑天下

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

[编程交流] 将实体压缩为块

[复制链接]

37

主题

125

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
190
发表于 2022-7-6 15:13:12 | 显示全部楼层 |阅读模式
大家好
 
假设您有4个实体,分别命名为ent(1-4)ent 1、ent 2和ent 3。Ent 4触摸Ent 2和3。
 
有谁能提出一种方法,将这些转化为一个选择集et,而不选择其中的多个。最终,图形中会有多组实体
 
可悲的是,这台计算机上没有autocad,所以我求助于mspaint进行了一个糟糕的快速修复
 
谢谢
奥利
161316cm73xa78xipcmzpu.jpg
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 15:31:08 | 显示全部楼层
你好奥利,
 
如果安装了Express Tools,请尝试快速选择例程
 
从菜单中
 
快速>>选择工具>>快速选择
 
或FS型
 
素描很好!
 
当做
 
杰米
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:34:05 | 显示全部楼层
虽然如果您想在LISP中使用Jammie的解决方案可能会有问题,但Express工具在LISP中很难操作。。。
回复

使用道具 举报

37

主题

125

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
190
发表于 2022-7-6 15:45:35 | 显示全部楼层
 
谢谢,这是一个令人难以置信的方便工具,不幸的是,它并没有帮助我这个感谢虽然。
 
到目前为止,这与预期的最终结果不同的是,用户在开始时选择一个实体,而不是在窗口层上找到第一条非块的2点线。此外,添加到列表中还有几个警报。最终,如果满足这些条件,则当前实体将添加到包含第一个实体的连接实体的选择集。
 
  1. (Defun C:test()
  2. ;Cleaning your variables
  3. (setq temp_ent_dxfgroup nil)
  4. ;Load vlax support
  5. (vl-load-com)
  6. ;Begin scriptiong
  7. (Setq window_id_cntr 0)
  8. (setq ent_test(car(entsel)))
  9. (setq ent_test(vlax-ename->vla-object ent_test))
  10. (setq ent_orientation (vlax-get-property ent_test 'angle))
  11. (setq ent_length (vlax-get-property ent_test 'length))
  12. (Setq ent_orientation(angtos ent_orientation 0))        ;Angle in degrees of first object
  13. (setq ent_orientation(atoi ent_orientation))
  14. (setq ent_start (vlax-curve-getStartPoint ent_test))        ;Get object start  point
  15. (if(or (= ent_orientation 0) (= ent_orientation 180))        ;Get orientation of the line horizontal or vertical
  16.    (progn
  17.            (setq  alignment "x")                    ;Use this to determine which axis to set range scope
  18.        (setq static_val (cadr ent_start))
  19.            (setq start_val (car ent_start))
  20.          (if (= ent_orientation 0)
  21.            (progn
  22.              (setq param1 start_val)
  23.                         (setq param2 (+ start_val ent_length))
  24.              )
  25.        )
  26.        (if (= ent_orientation 180)
  27.            (progn
  28.              (setq param1 start_val)
  29.                         (setq param2 (+ start_val ent_length))
  30.              )
  31.        )
  32.    )
  33. )
  34. (if(or (= ent_orientation 90) (= ent_orientation 270))
  35.     (progn
  36.            (setq  alignment "y")
  37.            (setq static_val (car ent_start))
  38.            (setq start_val (cadr ent_start))
  39.           (if (= ent_orientation 90)
  40.              (progn
  41.              (setq param1 start_val)
  42.                         (setq param2 (+ start_val ent_length))
  43.              )
  44.          
  45.        )
  46.        (if (= ent_orientation 270)
  47.              (progn
  48.              (setq param1 start_val)
  49.                         (setq param2 (+ start_val ent_length))
  50.              )
  51.        )
  52.    )                                ; the first parameters have been derived now loop through
  53. )                                    ; each of the remaining entites
  54. ; first entity parameters defined create selection set and check points against definitions
  55. (Setq sset_ent (ssget "X"
  56.            '(
  57.              (-4 . "<OR")
  58.              (-4 . "<AND")
  59.              (8 . "Windows")
  60.              (-4 . "AND>")
  61.              (-4 . "<NOT")
  62.              (0 . "INSERT")
  63.              (-4 . "NOT>")
  64.              (-4 . "OR>")
  65.             )
  66.             )
  67. )
  68. (setq cntr 0)
  69. (while (< cntr (sslength sset_ent))
  70.       (setq temp_ent(ssname sset_ent cntr))
  71.     (setq temp_ent_dxfgroup(entget temp_ent))
  72.     (foreach c  temp_ent_dxfgroup
  73.            (if (= 10 (car c))
  74.                    (setq p_list
  75.                  (append p_list
  76.                  (list
  77.                     (cdr c)
  78.                      )
  79.                 )
  80.             )
  81.           )
  82.       )
  83.       (foreach c p_list
  84.        (Setq x_point (car c))
  85.          (Setq y_point(cadr c))
  86.          (if (= alignment "x")
  87.              (progn
  88.                  (if (= y_point static_val)
  89.                           (progn
  90.                        (if (and (>= x_point param1)(<= x_point param2))
  91.                             (alert "WORKING UPTO AND HERE")
  92.                        )
  93.                     )
  94.                )
  95.            )
  96.        )
  97.          (if (= alignment "y")
  98.              (progn
  99.                  (if (= x_point static_val)
  100.                           (progn
  101.                        (if (and (>= y_point param1)(<= y_point param2))
  102.                             (alert "WORKING UPTO HERE")
  103.                        )
  104.                     )
  105.                )
  106.            )
  107.        )
  108.    )
  109.    (Setq cntr (+ cntr 1))        ;exit while loop
  110. )
  111. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:59:06 | 显示全部楼层
 
可悲的是,并不是每一幅画都是我自己画的。用于绘制窗口的其他一些方法包括重叠线和矩形。
回复

使用道具 举报

37

主题

125

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
190
发表于 2022-7-6 16:12:59 | 显示全部楼层
 
啊,不用担心,我只是想把这个想法说出来
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:14:28 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:10 , Processed in 0.372581 second(s), 69 queries .

© 2020-2025 乐筑天下

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