yunfengning 发表于 2013-10-21 11:21:11

选择图中的若干物体,则凡与这些物体相接触或相交的其它物体被自动改到“图层1”。

本帖最后由 yunfengning 于 2013-10-23 11:41 编辑

申请一个lsp程序:选择图中的若干物体,则凡与这些物体相接触或相交(即粘连)的其它物体被自动改到“图层1”。

补充上传测试的DWG文件,期待高手出手。

llsheng_73 发表于 2013-10-21 11:21:12

本帖最后由 llsheng_73 于 2013-10-23 16:53 编辑

针对你所给的图形测试没问题,但对于一些其它内容,比如图块等下边的代码肯定行不通
(defun SStoES(s / m n e)
(if s(progn
   (setq n(sslength s)m 0)
   (while(< m n)
   (setq e(if e(append e(list(ssname s m)))(list(ssname s m)))m(1+ m))))
    )e)

(defun C:tt(/ s1 s e f)
(VL-LOAD-COM)
(setq la"临时图层1")
(setq s1(ssget'((0 . "LINE,LWPOLYLINE,POLYLINE,SPLINE,CIRCLE")(62 . 4))))
(if s1(progn
    (setq s1(SStoES s1)
    s(SStoES(ssget"X"(list(cons -4 "<NOT")(cons 8 la)(cons -4 "NOT>")))))
    (foreach e s1(if(member e s)(setq s(vl-remove e s))))
    (foreach e s1
      (foreach f s
      (if(vlax-invoke(vlax-ename->vla-object e)'IntersectWith(vlax-ename->vla-object f)0)
    (vlax-put-property(vlax-ename->vla-object f)'Layer la))
      )
      )
    )
    )
)

Andyhon 发表于 2013-10-21 13:57:24

这些物体 ? 那些?
相接触或相交?公差容忍度?

上述 得有验证的样本文件 为依据,请上传 (*.Dwg)

wau2000022 发表于 2013-10-22 15:20:34

联系我QQ496968041

Andyhon 发表于 2013-10-23 14:14:06

本帖最后由 Andyhon 于 2013-10-23 14:15 编辑

;;; 请依实务修订补强
(defun C:try ()
   (setq ss (ssget '((0 . "Lwpolyline,Circle")))
          i-1
   )
   (while (setq ee (ssname ss (setq i (1+ i))))
   (setq dat (entget ee))
   (cond
      ((= (dxf 0 dat) "CIRCLE")
       (setq po (dxf 10 dat)
             rr (dxf 40 dat)
             vv 0.0
             aa (/ Pi 64)             ; maybe something
            pts nil
       )      
       (repeat 128          ; 360
         (setq pts (cons (polar po (setq vv (+ vv aa)) rr) pts))
      ))
      (T          ; LwPolyLine
       (setq pts (acet-geom-pline-point-list ee nil))
   ))
   (setq ss2 (ssget "CP" pts))
   (ssdel ee ss2)
   (command "Chprop" ss2 "" "La" "1" "c" "ByLayer" "")
    )
)

yunfengning 发表于 2013-10-23 14:34:37

CAD2004测试无反应。大侠加油哈。

Andyhon 发表于 2013-10-23 14:56:47

看来有些功课得补上
1. (defun dxf ....
2. ET (acet-***) 得靠它
论坛上有很多资料 加油

yunfengning 发表于 2013-10-24 14:07:17

7楼llsheng_73的程序CAD2004测试符合要求,多谢哈。

emk 发表于 2013-10-26 10:03:25

这样改,图层不是乱了,
页: [1]
查看完整版本: 选择图中的若干物体,则凡与这些物体相接触或相交的其它物体被自动改到“图层1”。