tiffanysml 发表于 2022-7-6 08:50:14

是否有条件声明

嗨,我有一堆图形,其中一些包含xclipped的外部参照,而另一些没有。我想在使用xclip生成xclip帧多段线的文件上运行一个命令
 
因此:
(如果使用(**xclip**)
(命令“xclip”“all”“”“p”)
)
 
是否有方法编写条件语句来证明xclip在dwg中使用/激活?使用xclip是否会在dwg文件上留下任何类型的标记?
 
非常感谢。

Lee Mac 发表于 2022-7-6 09:10:45

使用我已经编写的一些代码:
 
(defun HasXClip ( / a b c d e f )
   (and
       (while (setq a (tblnext "BLOCK" (null a)))
         (if (= 4 (logand 4 (cdr (assoc 70 a))))
               (setq b (cons "," (cons (cdr (assoc 2 a)) b)))
               b
         )
       )
       (setq c (ssget "_X" (list '(0 . "INSERT") (cons 2 (apply 'strcat (cdr b))))))
       (setq d -1)
       (progn
         (while (and (not f) (setq e (ssname c (setq d (1+ d)))))
               (setq f (LM:XClipBoundary e))
         )
         f
       )
   )
)            

(defun LM:XClipBoundary ( ename / xdict )
   (if
       (setq xdict (cdr (assoc 360 (entget ename))))
       (LM:XClipBoundary xdict)
       (if
         (and
               (eq "SPATIAL_FILTER" (cdr (assoc 0 (setq ename (entget ename)))))
               (eq 1 (cdr (assoc 71 ename)))
         )
         (   (lambda ( massoc ) (massoc 10 ename))
               (lambda ( key elist / item )
                   (if (setq item (assoc key elist))
                     (cons (cdr item) (massoc key (cdr (member item elist))))
                   )
               )
         )
       )
   )
)
 
致电:
 
(HasXClip)
 
如果图形包含带有XClip的外部参照,则返回T。
 
因此,在您的IF声明中:
 
(if (HasXClip)
...
)

tiffanysml 发表于 2022-7-6 09:30:29

哇,非常感谢李!你是最棒的!

Lee Mac 发表于 2022-7-6 10:08:59

不客气tiffanysml
页: [1]
查看完整版本: 是否有条件声明