yonderbob 发表于 2022-7-6 09:01:39

请求帮助!想要口齿不清的ro

大家好,
 
首先,我要感谢你花时间阅读我的问题,如果可以的话,请回答。
 
您好,我是lisp新手,需要以下程序/lisp例程:
 
我希望它加载一个预定义的dwg文件,在该文件中,我将所有图层/属性预设到不同的图形中(我要在其中使用例程),然后将该图形中的所有图层更改为我在预定义dwg中预设的图层。预定义dwg文件中的图层与我要更改的图形中的图层具有不同的名称。因此,我希望它将此图形中的某些层链接到我在另一个图形中预定义的层。这样对我来说更容易进行更改,然后我只需要编辑预定义的dwg,而不需要编辑代码。
希望你理解我的意思,并能帮助我正确的代码/命令,我需要。
 
提前谢谢。
 
上下快速移动

pBe 发表于 2022-7-6 09:05:31

欢迎来到那边的论坛
 
我认为模板(dwt)和laytrans足以在不需要lisp代码的情况下完成所需的任务。根据图层命名约定,您可能只需要设置一次
 
仔细考虑一下,然后决定是否仍然需要代码
 
 
干杯

yonderbob 发表于 2022-7-6 09:11:00

感谢您的awnser pBe,
 
但我确实想要lisp代码,因为我想为我的大学简化一些事情。
我只想让他们按一个按钮就完成了,因为我会在代码中添加更多的东西,我只想从这个开始。
 
谢谢
 
上下快速移动

pBe 发表于 2022-7-6 09:15:28

 
你愿意换一种方式吗?
使用预设图层/属性将目标图形加载到模板中。
 
您需要记住,在将“stuff”导入现有图形时,具有相同名称的块(属性)/层将跟随潮流,因此采用另一种方式将是更好的方法
 
 
 
使用lisp代码,您仍然需要硬编码层名称。否则程序怎么知道什么去了哪里,什么去了哪里。
 
您可以使用lisp代码或laytrans实现这一点
 
如果我们能更好地理解你想要实现的目标,我们可以为你写一封信。
 
但是首先尝试在搜索按钮上搜索laytrans,看看你能找到什么,然后我们会从那里获取
 
干杯

yonderbob 发表于 2022-7-6 09:18:24

感谢您的awnser,但我们不希望采用其他方式,因为我们已经这样做了,我们打开了模板端外部参照/绑定/在预定义的dwg中插入图形。我们希望摆脱这个过程,用lisp例程加快速度。
 
我不要求你为我写程序,我宁愿自己写,这样我就能理解正在运行的是什么。这样我可以在将来解决问题。
 
我将对所有层名称进行硬编码,因为我们讨论的是100多个层。我只是想要设置,这样我就知道怎么做了。
 
简单来说就是这样。我想把A图中的第1层改成B图中的第1-A层,与B图中的相同。
因为我找到的所有代码都与当前层一起工作,而当前层无法工作,那么代码是什么呢。
 
谢谢
 
上下快速移动

pBe 发表于 2022-7-6 09:19:48

 
很好,鲍勃
 
 
您的问题:
你说的属性是指属性?
 
您是否希望通过这样做将层1重命名为层“1A”。它将保留图层“1”的属性,即颜色、线型、覆盖?
 
或将所有实体从层“1”移动到层“1A”,并继承层“1A”的属性
 
或者重命名层“1”并“重置”其属性以匹配“1A”?

yonderbob 发表于 2022-7-6 09:25:25

是的,我是说房产,
 
我希望它成为A1层,重命名是不可能的,因为我想画B是我说的模板。
 
所以我会尝试更好地解释,在绘制一个我想要运行lisp例程的地方。我希望它将图纸B中的图层加载到图纸A中,并将图纸A中的图层更改为我从图纸B中获得的图层。因此,图层1(来自图纸A)从图纸B更改为图层1-A,具有其所有属性。这是你提到的第二种选择。或将所有实体从层“1”移动到层“1A”,并继承层“1A”的属性
"
 
谢谢
 
上下快速移动

pBe 发表于 2022-7-6 09:27:38

好啊
这是你需要做的。
 
层提取:
有几种方法可以做到这一点:
[开箱即用]
设计中心:快速便捷
图层状态管理器:一次性导出/导入

编写代码,从“图纸B”或
源头
http://www.cadtutor.net/forum/showthread.php?54830-层提取器和高亮显示=层+提取器
 
层转换:
[开箱即用]
_Laytrans公司
_复制层

编写代码以转换图层名称
与_Laytrans的行为相同,但正如您之前所说,您需要“一键”应用程序。
 
比较:您需要一个代码来将“what”转换为“where”
(希望层名称没有我想的那么糟糕,因为这就是它开始变得糟糕的地方)。
 
*_复制层行为代码(这意味着使用层过滤器(cons 8“层”)选择对象),将实体从一个层转移到另一个层
 
*\u laytans行为代码(要求在列表面板上选择层名称。有点重命名层并修改其属性
结合图层提取代码,您也可以在当前图形“drawing A”上运行它,这样您可以生成一个图层列表,以与“drawing B”相同的格式进行比较
 
我建议从“图纸a”和“图纸B”生成一个文件,在两个列表中查找匹配项,如果找到,修改“图纸a”的列表,保留图层名称
“第1层”属性,颜色:蓝色/线型:隐藏
“Layer 1A”属性,颜色:红色/线型:连续
将“Layer 1”更改为颜色:红色线型:Continuous,转到下一个,然后使用编辑的特性重新绘制修改后的“Drawing A”列表,并以重命名图层例程结束。
 
所有这些都可以在不选择单个对象或在列表中选择名称的情况下完成。

irneb 发表于 2022-7-6 09:31:45

当你有两个(或更多)层(比如Layer1和Layer2)必须成为一个层(比如NewLayer)时该怎么办。您需要调用LayMrg命令吗?我知道LayTrans在内部处理这个问题,但我可以看到一个非常复杂的lisp来尝试在块内执行这个操作(即使这样也可能破坏DB之类的东西)!

pBe 发表于 2022-7-6 09:33:33

这就是我害怕的Irneb。这可能是一个问题,您需要将这些对象“移动”到合并的图层名称
这也是为什么我希望层名称没有那么糟糕。。
 
Anyhoo。。在调用代码之前,他可能需要运行一个预例程来整合“绘图a”中的层,使比例为1:1,而不是2层到1或moer(希望不是)
页: [1] 2
查看完整版本: 请求帮助!想要Lisp程序的ro