【KAIXIN】 发表于 2011-12-15 15:37:03

【KAIXIN】 发表于 2011-12-15 15:38:29

GamIng 发表于 2012-3-2 14:43:44

本帖最后由 GamIng 于 2012-3-2 15:22 编辑

chpmould 发表于 2011-6-18 13:16 http://bbs.mjtd.com/static/image/common/back.gif
Andyhon的方法就是你需要的按交点插入块,你可以直接就这样用

就这方法,再找个交点集的子函数就ok了!

七七0707的交点集
http://bbs.mjtd.com/forum.php?mod=redirect&goto=findpost&ptid=87639&pid=469538&fromuid=38464

;;选择集求交点子程序
(defun interss (ss / n1 ssl aobj1 aobj2 n2 ipts pts)
(setq    n10
    ssl (sslength ss)
)
(while (< n1 (1- ssl))
    (setq aobj1    (ssname ss n1)
      aobj1    (vlax-ename->vla-object aobj1)
      n2    (1+ n1)
    )
    (while (< n2 ssl)
      (setq aobj2 (ssname ss n2)
      aobj2 (vlax-ename->vla-object aobj2)
      ipts(vla-intersectwith
            aobj1
            aobj2
            0
          )
      ipts(vlax-variant-value ipts)
      )
      (if (> (vlax-safearray-get-u-bound ipts 1) 0) ;是否有交点
    (progn
      (setq    ipts
         (vlax-safearray->list ipts)
      )
      (while (> (length ipts) 0)
      (setq pts (cons (list (car ipts)
                  (cadr ipts)
                  (caddr ipts)
                )
                pts
            ) ;此处可以在添加时判断是否有重合点
      )
      (setq ipts (cdddr ipts))
      )
    )
      )
      (setq n2 (1+ n2))
    )
    (setq n1 (1+ n1))
)
pts
)

asd19400 发表于 2013-4-3 22:19:58

【KAIXIN】 发表于 2011-12-15 15:37 static/image/common/back.gif


有时候会出错,块的插入点已经是圆心了,但最后生成的插入点会偏移交点位置,有些地方根本就无法生成,个人觉得可能是与ucs有关

荒野孤行 发表于 2015-6-7 21:21:37

asd19400 发表于 2013-4-3 22:19 static/image/common/back.gif
有时候会出错,块的插入点已经是圆心了,但最后生成的插入点会偏移交点位置,有些地方根本就无法生成,个 ...

把交点捕捉给关掉   (setvar "osmode" 0)

戏男 发表于 2015-6-19 10:13:10

呵呵 学习了

liaobin 发表于 2015-6-19 11:47:18

谢谢zyhandw已经收藏了

墨者 发表于 2018-3-27 23:48:36

谢谢楼主分享

arno_tm 发表于 2019-2-9 14:08:08

谢谢分享,很牛X
页: 1 [2]
查看完整版本: 在交点上插入图块或圆的lisp程序