明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1455|回复: 3

[讨论] 一个修改线型的lisp怎么才能针对所有的线型

[复制链接]
发表于 2015-1-28 17:56:58 | 显示全部楼层 |阅读模式
很简单的一个lisp将选定的线改为HIDDEN线型,但是下面这个lisp只能针对line线,怎么让它能针对各种线譬如多义线  弧线 PL线  样条曲线等,拜托论坛里的兄弟姐妹稍微指点下,如何才能针对所有的线型?
(defun c:R5( )
  (setq ss (ssget '((0 . "*line"))))
  (setq ssnum(sslength ss))
  (setq nb 0)
  (while (< nb ssnum)
  (progn (setq en (entget (ssname ss nb)))
  (setq oli (assoc 6 en))
  (setq nli (cons 6 "hidden"))
  (if (= oli nil)
  (setq en(append en(list nli)))
    (setq en (subst nli oli en))
    );endif
  (entmod en)
     (setq nb (1+ nb))
)
  ))
 楼主| 发表于 2015-1-28 18:48:44 | 显示全部楼层
这个问题好像不难啊
怎么没有人答复偶啊
发表于 2015-1-28 19:09:35 | 显示全部楼层
本帖最后由 chg 于 2015-1-28 19:12 编辑

(setq ss (ssget '((0 . "*line"))))这句改成(setq ss (ssget))不就可以了吗?如果指定要选择特定的对象,用与表达式作为过滤条件,因为最近很少写程序,具体的格式忘记了,这个在autolisp帮助文件里可以查到,你自己看看。
发表于 2020-3-16 15:02:14 | 显示全部楼层
chg 发表于 2015-1-28 19:09
(setq ss (ssget '((0 . "*line"))))这句改成(setq ss (ssget))不就可以了吗?如果指定要选择特定的对象, ...

(defun c:R5( )
  (setq ss (ssget))
  (setq ssnum(sslength ss))
  (setq nb 0)
  (while (< nb ssnum)
  (progn (setq en (entget (ssname ss nb)))
  (setq oli (assoc 6 en))
  (setq nli (cons 6 "hidden"))
  (if (= oli nil)
  (setq en(append en(list nli)))
    (setq en (subst nli oli en))
    );endif
  (entmod en)
     (setq nb (1+ nb))
)
  ))

上面的可以用,再价格颜色设定可以吗?比如转虚线颜色为8

评分

参与人数 1明经币 +1 收起 理由
freehand8008 + 1 加油

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-1 22:41 , Processed in 0.169588 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表