shailujp 发表于 2022-7-5 17:14:49

使用脚本转换样式

你好
 
我有一些绘图需要运行CONVERTPSTYLES才能使用打印样式。ctb文件。否则显示缺失。
 
因此,我在下面创建了一个脚本(顺便说一句,这是我有史以来的第一个脚本)。
 

CONVERTPSTYLES
QSAVE
QUIT


 
如果文件夹中的所有文件都存在缺少打印样式的问题,则该脚本运行良好。如果任何一个文件没有此问题,则脚本停止。我注意到CONVERTPSTYLES有两个不同的响应,如果文件没有任何问题,那么它会弹出不同的窗口,导致脚本停止。
 
第一个图像是正常的弹出窗口,一旦确定。命令关闭有问题的文件(工作正常)。
 
第二个图像是当文件没有问题时查找某些文件的额外弹出窗口。
 
有什么建议吗

ripuz 发表于 2022-7-5 17:33:20

嗨,shailujp,
 
首先,我将参考AutoCAD帮助:
图形可以使用命名打印样式或颜色相关打印样式,但不能同时使用两者。
CONVERTPSTYLES将当前打开的图形从颜色相关打印样式转换为命名打印样式,或从命名打印样式转换为颜色相关打印样式,具体取决于图形当前使用的打印样式方法。
转换图形时,CONVERTPSTYLES将PSTYLEMODE系统变量设置为适当的设置(0=命名,1=颜色相关)。
例如,使用颜色相关打印样式的图形按颜色为对象和图层指定打印特性。换句话说,具有相同颜色的所有对象具有相同的打印特性。CONVERTPSTYLES将图形转换为使用命名打印样式,该样式可以应用于与颜色指定无关的对象或图层。换句话说,具有相同颜色的所有对象可以具有不同的打印特性。
 
脚本文件不是根据条件生成的。你不能写一个脚本来检查一条线是否是蓝色的,然后把它变成红色。
不管发生什么,脚本都会变成红色。
 
但是如果你写一个lispfile,你可以设置条件。
 
以下代码检查系统变量PSTYLEMODE是否为0(命名打印样式),如果为0,则运行命令CONVERTPSTYLES,否则不运行。

(if (= (getvar "PSTYLEMODE") 0)
(command "convertpstyles")
)
(command "_.qsave")

 
 
如果您想从脚本文件加载lispfile,那么可以在脚本文件中这样编写。

(load "c:\\temp\\lispfile.lsp")


 
也许可以消除问题的根源,而不是像这样修复它,但我不太擅长使用ctb和stb文件。

shailujp 发表于 2022-7-5 17:44:04

谢谢你,里普兹。
 
你的建议对我有效。现在,当我运行这个脚本时,它运行得很平稳,没有停止。
 
今天我又学到了一件关于lisp的事情。我的印象是LISP文件必须包含DEFUN,但我错了。
 
但在批处理文件中有一个问题。目前,我正在为批处理文件使用以下代码。我复制所有文件以转换到此文件夹并运行该实用程序。是否可以选择文件夹,这样我就不会将图纸复制/粘贴到此文件夹?或者我应该每次更改批处理中的文件夹名称吗?只是想知道别人是怎么做的?
 
还有,如何添加多个文件夹,这样我就可以在五个不同的文件夹上运行。
 
如果可能的话,有人能描述一下批次代码下面列出的功能吗。
 

FOR %%V IN (C:\Myfolder\*.dwg) DO start "T" /w "C:\Program Files\AutoCAD 2008\acad.exe" %%V /b "FIXPSTYLE.scr"

shailujp 发表于 2022-7-5 17:54:30

我在一些网站上做了一些基本的阅读,但找不到START,“T”和/W代表什么。有线索吗?

oreussa 发表于 2022-7-5 17:55:23

大家好。
 
对不起,我没有看到代码,。
你能寄给我吗。。。或者直接使用lisp文件。
 
谢谢

BIGAL 发表于 2022-7-5 18:07:11

为什么不呢?

(if (= (getvar "PSTYLEMODE") 0)
(setvar "Pstylesmode" 1)
)

 
您可以使用Lee mac scriptwriter并从Autocad内部运行它,也可以在lisp FINDFILE中使用并编写脚本,这样目录就不会硬编码。
 
我我会用
命令
cd\myfolder
目录*。图纸>目录/b
在word use Replace中打开目录列表,脚本完成。
 
打开dwg1 z e(if(=(getvar“PSTYLEMODE”)0)(setvar“Pstylesmode”1))qsave
打开dwg2 z e(如果(=(getvar“PSTYLEMODE”)0)(setvar“Pstylesmode”1))qsave
打开dwg3 z e(if(=(getvar“PSTYLEMODE”)0)(setvar“Pstylesmode”1))qsave

oreussa 发表于 2022-7-5 18:18:09

非常感谢BIGAL!
 
页: [1]
查看完整版本: 使用脚本转换样式