jmerch 发表于 2022-7-6 07:09:52

更改线型

是否有一种简单的方法(可能是LISP)全局更改线型设置为“Bylayer”的对象,并将线型更改为该图层的实际线型?

BlackBox 发表于 2022-7-6 07:19:32


(defun c:CLT () (c:ChangeLinetypes))

(defun c:ChangeLinetypes (/ ss layerItem lineType)
(princ "CHANGE LINETYPES")
(vl-load-com)
(if
    (and (setq eName (car (entsel "\nSelect object on desired layer: ")))
         (setq ss
                (ssget "_x"
                     (list (setq layerName (assoc 8 (entget eName)))))))
   (if (and (setq layerItem
                     (vla-item (vla-get-layers
                                 (cond (*activeDoc*)
                                       ((setq *activeDoc*
                                             (vla-get-activedocument
                                                 (vlax-get-acad-object))))))
                               (vla-get-layer (vlax-ename->vla-object eName))))
            (= :vlax-false (vla-get-lock layerItem)))
       (progn
         (vla-startundomark *activeDoc*)
         (vlax-for x (setq ss (vla-get-activeselectionset *activeDoc*))
         (vla-put-linetype
             x
             (cond (lineType)
                   ((setq lineType (vla-get-linetype layerItem))))))
         (vla-delete ss)
         (vla-endundomark *activeDoc*))
       (prompt "** Layer is locked ** "))
   (prompt "\n** Nothing selected ** "))
(princ))

eldon 发表于 2022-7-6 07:23:53

 
我不太明白你的要求。如果对象的线型已设置为“BYLAYER”,则无需对其进行更改。也许我读得不对,但伦德曼似乎很在行。

BlackBox 发表于 2022-7-6 07:27:42

 
我同意你的观点;但我很无聊,所以我很快就写了。英雄联盟
 
干杯

jmerch 发表于 2022-7-6 07:35:54

我非常欣赏LISP RenderMan!我今天要试一试。
 
有足够的理由从“Bylayer”更改线型。当我清理进入的建筑文件时,我会把它们的500层缩小到我自己的6层。在将所有线型设置为“Bylayer”的情况下,我希望它与原来的一样。例如,它们可能有3个不同的家具层,其中1个有隐藏的线型,其他两个没有。我将所有这些放在我的1层上,但希望每个对象保持其线型,而不是成为我的Bylayer。
 
有道理?

BlackBox 发表于 2022-7-6 07:37:50

 
我发布的代码最初会提示用户选择一个对象,并导致修改该层上的所有对象。但是,我的理解正确吗?您希望打开一个外部图形,并简单地修改该图形中的所有对象(意味着所有层)?
 
*如果是这样,那么我可以改进我发布的代码,不再提示您(用户)一次选择一个层,相反,它(代码)将自动为所有对象(即所有层)按顺序执行此过程。。。你的选择。

jmerch 发表于 2022-7-6 07:42:58

是的,我注意到了你的代码。我有一个类似的代码,我运行每个选择改变层(我的不是可视化的,只是为我模仿了LISP)。我想我希望更改线型是一个全局过程,我可以在整个图形中运行。。。。我本来不想用它来打扰你,今天我打算玩一玩,但如果你不忙也不介意的话:D
 
非常感谢。

BlackBox 发表于 2022-7-6 07:50:57

 
别担心;我们都从某个地方开始。
 
 
... 我这么认为;我很快就会发回修改后的代码。

alanjt 发表于 2022-7-6 07:54:34

又是一个缓慢的一天。。。如果我踩了你的脚,我道歉,马特。
 
解锁图层是您的责任:眨眼:

BlackBox 发表于 2022-7-6 08:00:00

 
 
我不确定我什么时候能完成当前的任务;谢谢艾伦。
 
单独(和离线?),你不想和我分享任何指针来帮助我的“领航员”t交叉路口,是吗?
(^^你知道,因为你很慢,而且^^)
 
 
我认为这是一个谨慎的步骤;一个我也应该采用的(特别是对于论坛代码)。
页: [1] 2
查看完整版本: 更改线型