CAD图层LISP命令待优化

我这里有一串自制图层操作命令,我想改成1、当有选择对象时,则改变对象的图层;2、当没有选择对象时,则设置该图层为当前图层;待更改的命令内容:(defunc:1A(/tc)... 我这里有一串自制图层操作命令,我想改成
1、当有选择对象时,则改变对象的图层;
2、当没有选择对象时,则设置该图层为当前图层;
待更改的命令内容:
(defun c:1A (/ tc)
(setq tc (ssget))
(command "change" tc "" "p" "la" "1-A建筑墙体" "c" "bylayer" "")
(command "clayer" "1-A建筑墙体")
)
展开
 我来答
朱06CAD
2019-04-01 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18067
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(defun C:XG ( / k1 kw1 obj tc1)
 (setvar "cmdecho" 0)
 (setvar "blipmode" 0)
 (if (null vlax-dump-object) (vl-load-com) )
 (if (setq tc1 (entsel "\n请选择参考图层或默认为当前图层"))
  (setq tc1 (cdr (assoc 8 (entget (car tc1)))));选择的对象为参考图层
  (setq tc1 (getvar "clayer"))
 )
 (if (setq kw1 (ssget));选择对象
  (progn
   (while (setq k1 (ssname kw1 0))
    (setq kw1 (ssdel k1 kw1))
    (setq obj (vlax-ename->vla-object k1))
    (vla-put-layer obj tc1)
    ;(vla-put-layer obj "1-A建筑墙体");修改对象图层为"1-A建筑墙体"
   );while
  )
 )
 (princ)
)
  1. 上面的程序是选择对象的图层为参考图层

  2. 如果不选择对象,就默认为当前图层。

追问

该程序不是我想要的效果。

我想要的是:

  1. 如果在命令输入之前鼠标已选择了对象(如对象tc),则将对象tc的图层改变为"1-A建筑墙体";

  2. 如果鼠标未选择任何对象时,则将当前图层改变为"1-A建筑墙体"。

追答
(defun C:tes ( / #g k1 kw1)
 (setvar "cmdecho" 0)
 (setvar "blipmode" 0)
 (if (null (tblsearch "layer" "1-A建筑墙体"))
  (entmake (list '(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord") (CONS 6  "Continuous") (cons 62 8) '(370 . 0) '(70 . 0) (cons 2 "1-A建筑墙体")))
 );检查图层"1-A建筑墙体",如果没有建立,就建立新图层
 (princ "\n请选择要改变图层的对象")
 (if (setq kw1 (ssget));选择对象
  (progn
   (while (setq k1 (ssname kw1 0))
    (setq kw1 (ssdel k1 kw1))
    (setq #g (entget k1))
    (setq #g (subst '(8 . "1-A建筑墙体") (assoc 8 #g) #g));修改图层为"1-A建筑墙体"
    (entmod #g);刷新图元
   );while
  )
  (setvar "clayer" "1-A建筑墙体");设置图层为当前
 )
 (princ)
)
xl筱蓝莓
2019-04-01
知道答主
回答量:31
采纳率:33%
帮助的人:3.4万
展开全部
cad的指令有太多,其实真正用得到的只有十几个。下面是cad的指令大全,但是具体用那几个,要你自己定夺了。 CAD快捷键 L, *LINE 直线 ML, *MLINE 多线(创建多条平行线) PL, *PLINE 多段线 PE, *PEDIT 编辑多段线 SPL, *SPLINE 样条曲线 SPE, *SPLINEDIT 编辑样条曲线 XL, *XLINE 构造线(创建无限长的线) A, *ARC 圆弧 C, *CIRCLE 圆 DO, *DONUT 圆环 EL, *ELLIPSE 椭圆 PO, *POINT 点 DCE, *DIMCENTER 中心标记 POL, *POLYGON 正多边形 REC, *RECTANG 矩形 REG, *REGION 面域 H, *BHATCH 图案填充 BH, *BHATCH 图案填充 -H, *HATCH HE, *HATCHEDIT 图案填充...(修改一个图案或渐变填充) SO, *SOLID 二维填充(创建实体填充的三角形和四边形) *revcloud 修订云线 *ellipse 椭圆弧 DI, *DIST 距离 ME, *MEASURE 定距等分 DIV, *DIVIDE 定数等分 DT, *TEXT 单行文字 T, *MTEXT 多行文字 -T, *-MTEXT 多行文字(命令行输入) MT, *MTEXT 多行文字 ED, *DDEDIT 编辑文字、标注文字、属性定义和特征控制框 ST, *STYLE 文字样式 B, *BLOCK 创建块... -B, *-BLOCK 创建块...(命令行输入) I, *INSERT 插入块 -I, *-INSERT 插入块(命令行输入) W, *WBLOCK “写块”对话框(将对象或块写入新图形文件) -W, *-WBLOCK 写块(命令行输入)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式