DB007 发表于 2022-7-6 10:28:08

不带图案填充的图案填充

大家好,
 
是否可以选取一个随机形状的闭合多边形或边界,用垂直线填充,从最左侧的点开始偏移100,就像图案填充一样。
 
不使用图案填充的原因是我想测量每条垂直线,然后创建一个列表。
 
提前谢谢。

BlackBox 发表于 2022-7-6 10:32:20

简单的回答是。。。对
 
研究vla getboundingbox方法以提取最小和最大坐标(X和Y轴)。
 
选择闭合多段线后,以编程方式确定边界框,然后绘制第一条垂直线,循环偏移,直到边界框外存在下一个极坐标x,然后我相信_extrim命令将删除不需要的线段(在多段线之外)。
 
编辑:代替_extrim调用可以使用vla insertsectwith方法提取交点。
 
... 然后进入列表函数。完成。
 
希望这有帮助!

lpseifert 发表于 2022-7-6 10:35:26

您可以创建图案填充并将其分解;分解将使图案填充变成线条。
 
不要引用我的话,因为我会否认有人建议炸掉舱门

BlackBox 发表于 2022-7-6 10:40:12

 
 
是 啊我想那会少打字,嗯!?英雄联盟

DB007 发表于 2022-7-6 10:41:15

 
真不敢相信我居然没想到!引爆舱口安全吗?还是被认为是坏习惯?
 
我仍将研究vla getboundingbox命令以查找图案填充的原点
 
谢谢你们俩

lpseifert 发表于 2022-7-6 10:45:59

我会站在房间外面
 
糟糕的做法。任何时候我得到一个带有分解图案的图纸,都会有人得到它

BlackBox 发表于 2022-7-6 10:48:29

 
 
绝对不是!!!
 
这样做将在白宫敲响警钟,你的办公室将被FBI特工包围。。。如果你问我的话,坏消息是熊。
 
我完全是在开玩笑!今天我又忍不住了。
 
 
 
 
凉豆;但为了澄清,边界框是整体多段线的最小值(左下)和最大值(右上)。。。图案填充的原点位于多段线的质心(不总是在所述多段线内)。
 
祝你好运

alanjt 发表于 2022-7-6 10:52:56

尤其是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)
)

DB007 发表于 2022-7-6 10:54:58

 
呵呵,希望FBI不会游泳!它只有几条直线,而不是点或弧,所以一旦爆炸,没有人会知道。。。如果你不一定要确保天平不会把事情搞砸,我不会告诉你。
 
当然,我也会看一看所有其他的建议,等我想好了再报告。
 
谢谢大家

alanjt 发表于 2022-7-6 10:57:02

如果选择图案填充路线,可以使用类似的方法分解并形成每个线图元的列表。
 
(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
查看完整版本: 不带图案填充的图案填充