wojocad 发表于 2022-7-5 19:59:01

需要基于TXT文件的图层Tr

在Acad2002之前(我认为),LAYTRANS。ARX使用简单的TXT文件来记录在例程中完成的层转换集。这允许您使用记事本在各种“Rosetta Stone”TXT文件中手动添加或修改标准层名称/颜色等。然后,您可以将所选TXT翻译列表中出现的图形中的任何旧图层名称翻译为您费心设置的任何标准…非常方便!我过去在我的定制中有一个更新LAYERNAMES按钮,启动例程并调用office标准。
 
2004年后,AutoDesk将其修订版的LAYTRANS捆绑在一起,使整个场景变得复杂。ARX到他们的新型DWS格式(在我看来非常无用)。在Acad2002中,我可以重命名旧版本的LAYTRANS。ARX到TRANSLAY。ARX并手动加载。它将启动新版本,并以与旧版本相同的方式运行。在Acad2004中,我认为他们以某种方式更改了ARX格式,我最喜欢的工具之一被搁置了(典型的AutoDesk progress)。我试着问(在许多Cad论坛上)谁编写了原始LAYTRANS代码,看看是否可以让AutoDesk为我提供一个新的重新编译版本,以旧的方式工作……不走运。
 
有人知道或有人知道像旧的LAYTRANS一样工作的层转换器例程吗?这似乎是一件相当简单的事情,但我不知道如何编写这样一个例程。我为许多不同的公司做咨询工作,他们都有自己的方法和层次标准。我需要我的老朋友。有什么帮助吗?

ReMark 发表于 2022-7-5 20:05:21

您是说,在2011年之前(含2011年)的AutoCAD 2004中使用LAYTRANS命令时,它与2002年之前的命令不同?
 
对于那些不熟悉图层翻译的人来说,这是一个很好的解释,除了迈克尔·比尔本人之外,其他人都在解释它的用法。
 
http://autodesk.blogs.com/between_the_lines/2009/01/autocad-layer-translator.html

ReMark 发表于 2022-7-5 20:08:06

脚本和LayerTranslator。
 
http://cadecorner.blogspot.com/2006/08/layer-translator.html

wojocad 发表于 2022-7-5 20:11:36

对的在2002年之前,他们没有连接到DWS绘图标准thingy。旧对话框可以选择将翻译写入文本文件,您可以命名任何需要的内容,然后再次调用以稍后再次运行。您不需要将图形加载到第二个窗口。当前例程可以选择将您创建的新翻译写入日志文件,但在当前Laytrans对话框中没有位置调用日志文件并重用它。。。这就引出了一个问题。。。日志文件到底有什么好处?
 
在Acad2002中,ARX格式化仍然与最初编写和编译Express工具时相同,因此我能够将ARX文件重命名为新文件,然后将其加载到Express Tools 2002版本已经加载的较新版本上。当我打开Express Tools下拉菜单时,它会调用仍然有效的旧例程和对话框。当我尝试在Acad2004及更高版本中执行相同的操作时,它不会加载,这告诉我他们更改了ARX代码格式中的某些内容。。。只是一个猜测。

irneb 发表于 2022-7-5 20:14:14

猜对了。通常,ARX文件是使用一组库编译的。这些库的一部分(称为SDK,系统开发工具包)随后包含在ARX文件中。事情是关于ACad的每一个第二/第三版本的SDK都会被彻底检修-因此用2008年的SDK编译的ARX可能在2009年仍然可以工作,但你可以是99.99999…%当然它不会在2011年运行。 
重新执行层转换器可能有点长。如果你能找到源代码,就可以使用较新的ACad的SDK来编译它,从而使它能够在新的AC上工作。但我认为ADesk不会免费给任何人提供源代码。。。甚至是“适度”的数量。如果他们能将Express Tools ARX开源为“过时”的源代码,那就太好了,但我不会屏息以待。

BIGAL 发表于 2022-7-5 20:16:20

为什么不写一个脚本呢
 
重命名L oldlay1 newlay1 layer C 4 L虚线
重命名L oldlay2 newlay2 layer C 5 L虚线
 
您可以将其保存为txt文件或excel文件?在我看来,编写一个程序要比剪切粘贴一个scr文件花费更长的时间
 
重新阅读你的帖子,如果你已经有了txt文件,你的1/2的方式。将其放入excel,添加所需的正确列,然后保存为scr

irneb 发表于 2022-7-5 20:20:22

图纸中不存在“oldlayer”中会发生什么?重命名将失败,图层颜色和线型设置也将失败。SCR的其余部分会继续吗? 
该程序应检查oldlayer是否存在,只有存在时才执行更改。此外,如果有2个(或更多)旧图层名称应转换为一个新图层,则需要在DWG中找到的第2个和后续图层上使用LayMrg命令。这是层转换器的主要工作部分,但其大多数编码实际上是在这些对话框中显示信息。

wojocad 发表于 2022-7-5 20:22:05

我认为Irneb是对的。。。脚本在找不到东西时会暂停。。。这就是为什么老套路如此奏效。它会以某种方式对照罗塞塔石碑文本中列出的翻译行检查现有图层集。然后,它将找到翻译,并在左侧窗口中仅以奇怪的层名称结束,供您手动处理。
 
还有一个名为SCRIPTPRO的例程,您可以使用它将脚本应用于图形列表。他们可能仍然有一个左右。好几年没用了。我有一个脚本可以打开一幅画。。。启动-LAYTRANS的旧命令行版本。。。告诉它使用办公室Rosetta Stone TXT。。。保存并关闭图形,然后ScriptPro将转到下一个图形。我记得有一天洗衣服的时候,我在一个标准的细节库中转换了1500个图形上的图层集。
 
如果您使用当前的LAYTRANS,有一个选项可以让它生成日志文件。。。它看起来类似于旧的TXT文件。太可惜了,没用!

BIGAL 发表于 2022-7-5 20:26:56

你要做的不是很难,这里有很多关于读取图层表、检查现有图层和读取文本文件的示例,如果存在,请重命名。
 
一个脚本将打开多个DWG并运行lisp
 
打开dwg1(加载“mytrans”)保存Y关闭
打开dwg2(加载“mytrans”)保存Y关闭
 
我写了一些类似的东西,所以张贴你的txt文件,这样这里的人可能可以把一些东西放在一起给你。

wojocad 发表于 2022-7-5 20:28:07

自从他们改变Laytrans以来已经八年了。。。所以我需要四处挖掘,看看是否能在某个地方的CD上找到我的旧罗塞塔石文件。我很感激,很快就会回复你。
页: [1] 2
查看完整版本: 需要基于TXT文件的图层Tr