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建筑墙体")
) 展开
1、当有选择对象时,则改变对象的图层;
2、当没有选择对象时,则设置该图层为当前图层;
待更改的命令内容:
(defun c:1A (/ tc)
(setq tc (ssget))
(command "change" tc "" "p" "la" "1-A建筑墙体" "c" "bylayer" "")
(command "clayer" "1-A建筑墙体")
) 展开
2个回答
2019-04-01 · 知道合伙人软件行家
关注
展开全部
(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)
)
上面的程序是选择对象的图层为参考图层
如果不选择对象,就默认为当前图层。
追问
该程序不是我想要的效果。
我想要的是:
如果在命令输入之前鼠标已选择了对象(如对象tc),则将对象tc的图层改变为"1-A建筑墙体";
如果鼠标未选择任何对象时,则将当前图层改变为"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)
)
展开全部
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 写块(命令行输入)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询