tender138 发表于 2025-3-13 20:18:18

各位大师,请问这个程序为啥剪切不了块内圆包围的线?

(defun c:aa(/ plEnt ss n blockEn pt0 pt1 pt2)
(setq plEnt (car (entsel "\n选择线:")))
(setq ss (ssget (list (cons 0 "insert"))))
(setq n (sslength ss))
(repeat n
    (setq blockEn (ssname ss (setq n (1- n))))
    (vla-getboundingbox(vlax-ename->vla-object blockEn) 'a 'b)
    (setq pt0 (mapcar'(lambda(x y)(*(+ x y)0.5))(vlax-safearray->list a)(vlax-safearray->list b)))
    (command "trim" blockEn "" (list plEnt pt0) "")
    (setq plEnt (entlast))
)
)

你有种再说一遍 发表于 2025-3-13 20:54:01

如果可以剪的话,要怎么才不允许剪呢?
要不弄一个功能来防止吧,就叫它组块如何?

组块是什么?
就是层次模型.

那要怎么才能剪呢?
要递归进去才能剪啊

kozmosovia 发表于 2025-3-13 23:14:48

块内圆加个遮罩。完全不需要裁剪

自贡黄明儒 发表于 2025-3-14 12:55:52

kozmosovia 发表于 2025-3-13 23:14
块内圆加个遮罩。完全不需要裁剪

有没有办法将遮罩后面的东西,自动变成虚线?

xyp1964 发表于 2025-3-14 14:29:18



块内修剪

tender138 发表于 2025-3-14 20:25:04

kozmosovia 发表于 2025-3-13 23:14
块内圆加个遮罩。完全不需要裁剪

遮罩不行,我要用线长进行后续计算

tender138 发表于 2025-3-14 20:26:08

你有种再说一遍 发表于 2025-3-13 20:54
如果可以剪的话,要怎么才不允许剪呢?
要不弄一个功能来防止吧,就叫它组块如何?



要递归进去怎么指定图元呢?各个图块里面的图元名一样的

你有种再说一遍 发表于 2025-3-14 21:53:12

tender138 发表于 2025-3-14 20:26
要递归进去怎么指定图元呢?各个图块里面的图元名一样的

图元名不可能是一样的,块层次要学会.

llsheng_73 发表于 2025-3-14 22:03:53

本帖最后由 llsheng_73 于 2025-3-14 22:05 编辑

tender138 发表于 2025-3-14 20:26
要递归进去怎么指定图元呢?各个图块里面的图元名一样的
要从线的止点往起点剪才能一直用那个线的图元名,不然能剪的线是第一次trim后新生的图元,不再是最开始的图元,所以只能执行一次

qazxswk 发表于 2025-3-15 05:44:59

如果是用浩辰CAD的话,浩辰自带这个插件。
页: [1]
查看完整版本: 各位大师,请问这个程序为啥剪切不了块内圆包围的线?