自动建图层lsp
(DEFUN C:TC ()<BR> (COMMAND "LAYER" "M" "base" "C" "8" "" "")<BR> (COMMAND "LAYER" "M" "Cp" "C" "214" "" "")<BR> (COMMAND "LAYER" "M" "d1b" "C" "21" "" "")<BR> (COMMAND "LAYER" "M" "D01A" "C" "1" "" "")<BR> (COMMAND "LAYER" "M" "D02A" "C" "5" "" "")<BR> (COMMAND "LAYER" "M" "D03A" "C" "6" "" "")<BR> (COMMAND "LAYER" "M" "DD" "C" "150" "" "")<BR> (COMMAND "LAYER" "M" "S01A" "C" "3" "" "")<BR> (COMMAND "LAYER" "M" "S1B" "C" "62" "" "")<BR> (COMMAND "LAYER" "M" "SB" "C" "112" "" "")<BR> (COMMAND "LAYER" "M" "S02A" "C" "74" "" "")<BR> (COMMAND "LAYER" "M" "P01A" "C" "2" "" "")<BR> (COMMAND "LAYER" "M" "P02A" "C" "201" "" "")<BR> (COMMAND "LAYER" "M" "P03A" "C" "75" "" "")<BR> (COMMAND "LAYER" "M" "P04A" "C" "30" "" "")<BR> (COMMAND "LAYER" "M" "DIM" "C" "4" "" "")<BR> (COMMAND "LAYER" "M" "yb" "C" "171" "" "")<BR> (COMMAND "LAYER" "M" "zm" "C" "240" "" "")<BR> (COMMAND "LAYER" "M" "tk" "C" "141" "" "")<BR> (COMMAND "LAYER" "M" "DB" "C" "202" "" "")<BR> (COMMAND "LAYER" "M" "p1b" "C" "54" "" "")<BR> (COMMAND "CLAYER" "0")<BR>) 最后一行是不是应该是(setvar "clayer" 0)啊? <P>用command也可以的</P> 谢谢分享! 其实用脚本也是非常方便的 ;;;根据提供的列表建立图层及对应线型<br>(DEFUN C:NLAYS (/ LAYER_LIST LAYER_NUM I<br> LAYER LAYER_NAME LAYER_COLOR CHK_LAYER<br> )<br> ;;图层列表<br> (SETQ LAYER_LIST<br> (LIST<br> '("图框标签" 8) '("框架外形" 64)<br> '("标高标注" 251) '("框架标注" 6)<br> '("钢筋编号" 3) '("梁柱钢筋" 1)<br> '("图形名称" 7) '("文字说明" 7)<br> '("埋铁布置" 5) '("填充图案" 91)<br> '("辅助线条" 2) '("材料表格" 7)<br> '("详图标注" 3) '("其它图层" 7)<br> )<br> )<br> (SETQ LAYER_NUM (LENGTH LAYER_LIST))<br> (SETQ I 0)<br> (REPEAT LAYER_NUM<br> (SETQ LAYER (NTH I LAYER_LIST))<br> (SETQ LAYER_NAME (CAR LAYER)<br> LAYER_COLOR (CADR LAYER)<br> )<br> (SETQ CHK_LAYER (TBLSEARCH "LAYER" LAYER_NAME))<br> (IF (= CHK_LAYER NIL)<br> (PROGN<br> (ENTMAKE (LIST<br> '(0 . "LAYER")<br> '(100 . "AcDbSymbolTableRecord")<br> '(100 . "AcDbLayerTableRecord")<br> '(6 . "continuous") ;线型<br> (CONS 62 LAYER_COLOR) ;颜色<br> '(70 . 0) ;图层状态<br> (CONS 2 LAYER_NAME) ;图层名<br> )<br> )<br> )<br> ) ;END IF<br> (SETQ I (1+ I))<br> ) ;END VLAX-FOR<br><br> ;;建立轴线层<br> (SETQ CHK_LAYER (TBLSEARCH "LAYER" "轴线"))<br> (IF (= CHK_LAYER NIL)<br> (PROGN<br> (IF (NOT (TBLSEARCH "LTYPE" "CENTER"))<br> (ENTMAKE<br> '(<br> (0 . "LTYPE")<br> (100 . "AcDbSymbolTableRecord")<br> (100 . "AcDbLinetypeTableRecord")<br> (2 . "CENTER")<br> (70 . 0)<br> (3 . "Center ____ _ ____ _ ____ _ ____ _ ____ _ ____")<br> (72 . 65)<br> (73 . 4)<br> (40 . 2.0)<br> (49 . 1.25)<br> (74 . 0)<br> (49 . -0.25)<br> (74 . 0)<br> (49 . 0.25)<br> (74 . 0)<br> (49 . -0.25)<br> (74 . 0)<br> )<br> )<br> )<br><br> (EntMake (LIST<br> '(0 . "LAYER")<br> '(100 . "AcDbSymbolTableRecord")<br> '(100 . "AcDbLayerTableRecord")<br> '(6 . "CENTER") ;线型<br> '(62 . 1) ;颜色<br> '(70 . 0) ;图层状态<br> (CONS 2 "轴线") ;图层名<br> )<br> )<br> )<br> )<br> ;;END 轴线<br><br> ;;建立虚线层<br> (SETQ CHK_LAYER (TBLSEARCH "LAYER" "虚线"))<br> (IF (= CHK_LAYER NIL)<br> (PROGN<br> (IF (NOT (TBLSEARCH "LTYPE" "HIDDEN"))<br> (ENTMAKE<br> '(<br> (0 . "LTYPE")<br> (100 . "AcDbSymbolTableRecord")<br> (100 . "AcDbLinetypeTableRecord")<br> (2 . "HIDDEN")<br> (70 . 0)<br> (3 . "Hidden __ __ __ __ __ __ __ __ __ __ __ __ __ _")<br> (72 . 65)<br> (73 . 2)<br> (40 . 0.375)<br> (49 . 0.25)<br> (74 . 0)<br> (49 . -0.125)<br> (74 . 0)<br> )<br> )<br> )<br> (ENTMAKE (LIST<br> '(0 . "LAYER")<br> '(100 . "AcDbSymbolTableRecord")<br> '(100 . "AcDbLayerTableRecord")<br> '(6 . "HIDDEN") ;线型<br> '(62 . 8) ;颜色<br> '(70 . 0) ;图层状态<br> (CONS 2 "虚线") ;图层名<br> )<br> )<br> )<br> )<br> ;;END 虚线<br><br> (PROMPT<br> "\n图层初始化完毕! BY HB.LEE . 2006-11-03."<br> ) ;_ 结束PROMPT<br> (PRINC)<br>) ;END DEFUN <P>你这就是脚本,我用LISP内部命令。</P><P>;;;============<BR>;;;= 设置图层 =<BR>;;;============</P>
<P>.(defun addtranslayer (/ styleobj1 layerobj1<BR> layerobj2 layerobj3 layerobj4<BR> layerobj5 layerobj6 layerobj7<BR> layerobj8 layerobj9 layerobj10<BR> )<BR> (vl-catch-all-apply<BR> 'vla-load<BR> (list p2c::linetypes<BR> "center"<BR> "acadiso.lin"<BR> )<BR> )<BR> (vl-catch-all-apply<BR> 'vla-load<BR> (list p2c::linetypes<BR> "DASHED"<BR> "acadiso.lin"<BR> )<BR> )<BR> (setq styleobj1 (vla-add p2c::textstyles "GB"))<BR> (vla-put-fontfile styleobj1 "gbenor.shx")<BR> (vla-put-bigfontfile styleobj1 "gbcbig.shx")<BR> (setq layerobj1 (vla-add p2c::layersobj "KERFLEFT")<BR> layerobj2 (vla-add p2c::layersobj "KERFRIGHT")<BR> layerobj3 (vla-add p2c::layersobj "KERFOFF")<BR> layerobj4 (vla-add p2c::layersobj "MARKING")<BR> layerobj5 (vla-add p2c::layersobj "PLATE")<BR> layerobj6 (vla-add p2c::layersobj "ZSQ")<BR> layerobj7 (vla-add p2c::layersobj "CENTER")<BR> layerobj8 (vla-add p2c::layersobj "DASHED")<BR>;;;<BR> layerobj9 (vla-add p2c::layersobj "INSIDE")<BR> layerobj10 (vla-add p2c::layersobj "OUTSIDE")<BR> )<BR>;;;KERFLEFT<BR> (vla-put-color layerobj1 acred)<BR> (vla-put-lineweight layerobj1 aclnwt025)<BR> (vla-put-linetype layerobj1 "continuous")<BR>;;;KERFRIGHT<BR> (vla-put-color layerobj2 acred)<BR> (vla-put-lineweight layerobj2 aclnwt025)<BR> (vla-put-linetype layerobj2 "continuous")<BR>;;;KERFNO<BR> (vla-put-color layerobj3 acred)<BR> (vla-put-lineweight layerobj2 aclnwt025)<BR> (vla-put-linetype layerobj3 "continuous")<BR>;;;MARKING<BR> (vla-put-color layerobj4 accyan)<BR> (vla-put-lineweight layerobj4 aclnwt025)<BR> (vla-put-linetype layerobj4 "continuous")<BR>;;;PLATE<BR> (vla-put-color layerobj5 acblue)<BR> (vla-put-lineweight layerobj2 aclnwt030)<BR> (vla-put-linetype layerobj5 "continuous")<BR>;;;ZSQ<BR> (vla-put-color layerobj6 acwhite)<BR> (vla-put-linetype layerobj6 "continuous")<BR>;;;CENTER<BR> (vla-put-color layerobj7 acred)<BR> (vla-put-linetype layerobj7 "CENTER")<BR>;;;DASHED<BR> (vla-put-color layerobj8 acgreen)<BR> (vla-put-linetype layerobj8 "DASHED")<BR>;;;INSIDE<BR> (vla-put-color layerobj9 acgreen)<BR> (vla-put-lineweight layerobj9 aclnwt025)<BR> (vla-put-linetype layerobj9 "continuous")<BR>;;;OUTSIDE<BR> (vla-put-color layerobj10 acred)<BR> (vla-put-lineweight layerobj10 aclnwt025)<BR> (vla-put-linetype layerobj10 "continuous")<BR>;;;END<BR> (princ)<BR>)</P> 忙了一下午,才看到这还有现成的 本帖最后由 林霄云 于 2013-12-28 17:22 编辑
批量生成图层用mapcar和lambda命令,语句可以简练很多。示例setup_layers(defun setup_Layers()
(mapcar '(lambda(layname laycolor linetype linewidth)
(command "layer" "m" layname
"c" laycolor layname
"l" linetype layname
"lw" linewidth layname
""
)
(princ layname)
);lambda
'("G-AXIS(主轴线)""G-AXIS_TEXT(轴线号)""G-LABEL(引线)""G-SLAB-HATCH(板填充)""G-STAIR(楼梯)"
)
'("9""255""3""11""2"
)
'("_AXIS100""CONTINUOUS""CONTINUOUS""CONTINUOUS""CONTINUOUS"
)
'("0.13""0.3""0.13""0.13""0.13"
)
);mapcar
(setvar "clayer" "0"); 当年图层置为“0”
);defun
楼主是做冲压模具设计?
页:
[1]
2