不带图案填充的图案填充
大家好,是否可以选取一个随机形状的闭合多边形或边界,用垂直线填充,从最左侧的点开始偏移100,就像图案填充一样。
不使用图案填充的原因是我想测量每条垂直线,然后创建一个列表。
提前谢谢。 简单的回答是。。。对
研究vla getboundingbox方法以提取最小和最大坐标(X和Y轴)。
选择闭合多段线后,以编程方式确定边界框,然后绘制第一条垂直线,循环偏移,直到边界框外存在下一个极坐标x,然后我相信_extrim命令将删除不需要的线段(在多段线之外)。
编辑:代替_extrim调用可以使用vla insertsectwith方法提取交点。
... 然后进入列表函数。完成。
希望这有帮助! 您可以创建图案填充并将其分解;分解将使图案填充变成线条。
不要引用我的话,因为我会否认有人建议炸掉舱门
是 啊我想那会少打字,嗯!?英雄联盟
真不敢相信我居然没想到!引爆舱口安全吗?还是被认为是坏习惯?
我仍将研究vla getboundingbox命令以查找图案填充的原点
谢谢你们俩 我会站在房间外面
糟糕的做法。任何时候我得到一个带有分解图案的图纸,都会有人得到它
绝对不是!!!
这样做将在白宫敲响警钟,你的办公室将被FBI特工包围。。。如果你问我的话,坏消息是熊。
我完全是在开玩笑!今天我又忍不住了。
凉豆;但为了澄清,边界框是整体多段线的最小值(左下)和最大值(右上)。。。图案填充的原点位于多段线的质心(不总是在所述多段线内)。
祝你好运 尤其是AR-CONC或DOT。
要细细咀嚼/让你开始的东西。。。
或者这个。。。
(defun c:Test2 (/ e p1 p4 i)
;; Alan J. Thompson, 09.14.10
(if (and (setq e (car (entsel)))
(not (initget 6))
(setq i (getdist "\nSpecify incriment distance: "))
(not (vla-getBoundingBox (vlax-ename->vla-object e) 'p1 'p4))
(setq p1 (vlax-safearray->list p1)
p4 (vlax-safearray->list p4)
)
)
((lambda (d p2 p3 dst)
(while (> dst (setq d (+ d i)))
(entmake (list '(0 . "LINE") (cons 10 (polar p1 0. d)) (cons 11 (polar p3 0. d))))
)
)
(- 0. i)
(list (car p4) (cadr p1))
(list (car p1) (cadr p4))
(abs (- (car p1) (car p4)))
)
)
(princ)
)
呵呵,希望FBI不会游泳!它只有几条直线,而不是点或弧,所以一旦爆炸,没有人会知道。。。如果你不一定要确保天平不会把事情搞砸,我不会告诉你。
当然,我也会看一看所有其他的建议,等我想好了再报告。
谢谢大家 如果选择图案填充路线,可以使用类似的方法分解并形成每个线图元的列表。
(defun foo (e / l)
(if (and (eq (type e) 'ENAME) (eq "HATCH" (cdr (assoc 0 (entget e)))))
(progn
(command "_.explode" e)
(while (setq e (entnext e)) (and (eq "LINE" (cdr (assoc 0 (entget e)))) (setq l (cons e l))))
l
)
)
)
例如(选择一块只有线条的图案填充)
(foo (car (entsel)))
页:
[1]
2