很好的观点。。
这就是为什么作为一般规则,块内的实体应在“0”层中创建,以便它将继承其所在的层。 谢谢你的支持,
我曾试图完成一些事情,但得出的结论是,我想完成的事情可以做得更容易。
现在,我想将图形B中的图层导入图形A,然后将对象从某个图层更改为新导入的图层。
由于两个文件的层名称不同,因此与层名称冲突没有问题。然后在对象更改后,我想从绘图A中删除旧层。
我希望这一切在1按钮lisp代码。
如果您能提供一个示例代码,告诉我如何从一个图形中导入图层,然后告诉我如何将对象从一个图层移动到另一个图层。我想我会有足够的信息来构建代码。
如果你能给我一个示例代码,而不仅仅是一个命令,因为我是lisp中的nooby,没有足够的知识来排除一个命令所需的所有额外代码。
这对我有很大帮助。
提前感谢,
上下快速移动 要从另一个图形中提取层,您可能需要看一看Lee Mac的“从图形中窃取”。
至于将实体指定给新图层,“最简单”的方法是逐步完成每个块定义(请注意,模型空间和所有图纸空间也是块)。这可以通过vla方法实现(即ActiveX/COM,类似于在VBA中所做的)。如下所示:
我展示的内容非常简单,它只处理一个新旧层名称对。为了能够有一个新旧名称列表,您可能希望将其保存到一个文件中,以便可以更轻松地编辑它们。最好也是最简单的选择是使用Excel并保存到一个以制表符分隔的文件(具有字符串分隔符=”),其中OldLayerName位于列a中,NewName位于列B中,然后以下操作将此类文件读入列表:
现在,您应该有一个关联列表,可以将其与旧层名称结合使用。然后,这将为您提供一个包含2个元素的列表,以便您可以在其上使用cadr来获取第2个元素(即新名称)。但是请记住,assoc区分大小写。这就是我在代码中放置strcase的原因。您还需要在实体的层名称上使用它,以便在assoc中使用。 非常感谢,我将尝试构建一些代码,看看它是否有效
啊,是的。。。前一段时间,我甚至认为不可能做到这一点,这证明我错了。。很好irneb
你好
到目前为止,我已经想出了这个代码。
我用李的窃取代码来获取所有层,效果很好。
但是将对象更改到不同层的代码不起作用。
Autocad也没有显示错误,只是没有更改对象。
谁能帮我解决我忘记/做错了什么。
提前谢谢bob
2;--------------------------------------------------------------------------------- Nvm我的最后一个问题,已经发现了问题,我的defun“)在错误的位置。 我提出了一个不同的问题。我想在同一代码中更改1个特定层中文本的文本高度。
我的代码现在运行得很好。它加载图层并将图层更改为具有新特性的新图层。
但在那之后,我想编码,以改变文本高度和文本字体的文本在1层。我尝试使用Vlax命令进行层更改,但失败了,代码崩溃了。
有谁能帮助我并为我提供正确的命令/代码来做到这一点。
提前谢谢。
上下快速移动
页:
1
[2]