Autolisp小程序有bug,求大神解惑

2025-01-18 18:20:35
推荐回答(1个)
回答1:

(setq ss1 (ssget "X" '((0 . "TEXT"))))
  (setq ss2 (ssget "X" '((0 . "MTEXT"))))
  修改为:
  (setq ss1 (ssget "X" '((0 . "TEXT,MTEXT"))));选择文字和多行文字
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;如果要合并选择集ss1,ss2
(if (and (/= ss1 nil) (/= ss2 nil))
 (progn
  (setq e1 (ssname ss1 0));取得第一个对象
  (while e1
   (setq ss2 (ssadd e1 ss2));这个对象加入选择集ss2
   (setq ss1 (ssdel e1 ss1));这个对象从ss1选择集里取消
   (setq e1 (ssname ss1 0));取得选择集ss1里面一个对象
  );注意e1顺序;选择集加入不得为nil;你选择为第二个对象,会出现nil所以不对
 )
);合并后选择集为ss2