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

(setqss1(ssget"X"'((0."TEXT"))))(setqss2(ssget"X"'((0."MTEXT"))));合并"TEXT""MTEXT"层选择集... (setq ss1 (ssget "X" '((0 . "TEXT"))))
(setq ss2 (ssget "X" '((0 . "MTEXT"))))
;合并 "TEXT""MTEXT"层选择集
(if (and ss1 ss2)
(progn
((setq n1 1)
(while (setq e1 (ssname ss2 n1));每次这里(ssname ss2 n1)都过不去,
;提示错误: 参数类型错误: numberp: nil
(ssadd e1 ss1)
(setq i (1+ i))
)
(setq ss3 ss1)
)
)
(progn
(if (= nil ss1)
(setq ss3 ss2)
(setq ss3 ss1)
)
)
)
展开
 我来答 举报
朱06CAD
推荐于2016-09-23 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18070
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(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
意法半导体(中国)投资有限公司
2023-08-25 广告
单片机是一种集成处理器,通常包含微控制器、存储器、通信接口和其他外设。它们通常用于嵌入式系统,如智能家居设备、汽车电子系统、工业自动化和消费电子产品等。单片机可以通过编程来实现各种功能,如数据处理、输入输出控制、通信等。由于单片机体积小、功... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式