russell84 发表于 2022-7-6 10:46:50

导入标准图层

嘿伙计们
 
我正在寻找一个小lisp,我可以扩展到适合我们的标准层
 
我正在寻找一个lisp,可以在一个图形中设置新的图层-名称-颜色和线型
 
但是如果层名称已经存在,不要要求用户重新定义
 
有人知道现有的lisp吗?
 
干杯

azzro10 发表于 2022-7-6 10:53:53

你为什么不用你在其中创建的所有标准图层来设置一个模板文件呢?

russell84 发表于 2022-7-6 10:59:00

我已经设置了一个-但每个人都希望有一个简单的按钮来导入层。
 
 
不过谢谢你
\

russell84 发表于 2022-7-6 11:08:01

我宁愿使用lisp来添加层,而不是引入模板
 
有什么想法吗?
 
lisp中引入图层的函数是什么?设置图层的颜色和线型
 
我会把剩下的写下来,寄回来给你,让你把它撕成碎片,并就我犯的所有错误向我提出建议
 

 
干杯

lpseifert 发表于 2022-7-6 11:12:31

使用Design Center从模板中拖动层会更容易,但这应该可以让您开始。。。

(command "-layer" "m" "layername" "c" "color" "" "l" "linetype" "" "")

[/颜色]

russell84 发表于 2022-7-6 11:19:07

我曾想过用这样的方法来导入层并设置它们-但对每个层都这样做对pc来说会有很多工作-有更简单的方法吗?还是我应该创建一个lisp来导入模板文件并删除它,从而设置所有层等等
 
 
有什么想法吗?
 
干杯
 
(if(not(tblsearch "LTYPE" "EX_GAS"))
   (command "-linetype" "_l" "EX_GAS" "services" "")
    ); end if

(if(not(tblsearch "LAYER" "EXSRV_GAS"))
    (command "-layer" "new" "EXSRV_GAS" "Color" 251 "EXSRV_GAS" "LTYPE" "EX_GAS" "EXSRV_GAS" "")
    );end if

ASMI 发表于 2022-7-6 11:26:33

看看这个函数:
 
(defun CreateLayers(layLst / layCol nLay)
(vl-load-com)
(setq layCol(vla-get-Layers
        (vla-get-ActiveDocument
          (vlax-get-Acad-object))))
(foreach itm layLst
   (if
   (not(vl-catch-all-error-p
(setq nLay(vl-catch-all-apply 'vla-Add
          (list layCol(car itm))))))
   (vla-put-Color nLay(cadr itm))
   ); end if
   ); end foreach
(princ)
); end of CreateLayers
 
并使用列表((“LayerName1”颜色)进行尝试:
 
(CreateLayers '(("MyLayer1" 1)("MyLayer2" 2)("MyLayer3" 3)))

russell84 发表于 2022-7-6 11:34:20

再次感谢阿斯米-我会看看这个方法
 
干杯,伙计

N_461 发表于 2022-7-6 11:37:53

那么,例程如何加载线型呢?我从代码中看到,你可以指定图层、颜色和线型名称。。。它是从阿卡迪索拉过来的吗。林?或acad。林?你能指定它从哪里加载吗?
 
刚刚开始学习Lisp程序。。。
 
谢谢

fixo 发表于 2022-7-6 11:41:55

 
检查测量单位系统变量
请参阅帮助
 
~'J'~
页: [1] 2
查看完整版本: 导入标准图层