flexifloat 发表于 2022-7-6 09:09:21

更改mu的打印机名称

我已经搜索了很长时间,没有找到我要找的,我知道你们有一个简单的答案。我们已经改变了我们的打印机命名约定,我(我们)需要更新大约10000张图纸。我们有4个默认打印机名称,需要逐步完成每个布局,并用新的打印机名称替换旧的打印机名称。
我并不是要创建一个lsp路由,我们可以在启动时添加/运行它,只是根据需要更新所有的布局。
最终,我们将把它合并到一个脚本中,解析目录中的所有文件,并让它们运行。
现在,当我们打开现有图纸时,我们将满足于手动过程
谢谢你的帮助

DANIEL 发表于 2022-7-6 09:32:34

您可以创建一个将所有新打印机设置为不同页面设置的图形,然后通过publish命令导入这些图形。一旦将所有图形加载到“发布”对话框中,点击页面设置/三维dwf下设置的默认页面旁边的小箭头,选择“导入”,然后选择具有所有新页面设置的图形,它将加载所有图形,然后您只需选择适当的设置,如果您选择了所有图形,它将把该页面设置应用于您正在发布的所有图形,但遗憾的是,它不会为您更改图形的默认页面设置。

flexifloat 发表于 2022-7-6 09:35:24

谢谢你的帮助-我不熟悉发布过程,我们这里不使用它。我已经开始了lsp程序,这就是我现在的位置。
 
我是新手,我们开始吧
 

(defun UpdatePlotDevice_AllLayouts (DvcNme)
; Created by C McMurtry & K Garcia
; 7/2011
(GETPLOTDEVICES) ;List layout and plot devices before update
(foreach lay (layoutlist) : Loop through Layout List
(setvar "CTAB" lay)
(command "psltscale" "0") ;Set PTSCALE REI Std
( If (= “Canon_PCL” DeviceName) ; Update Plotter Names
(Set Device Name = “Engineering Printer”))
( If (= “Xerox 8825” DeviceName)
(Set Device Name = “Engineering Wide Format Printer”))
( If (= “HP Laserjet 6P” “Local Printer”)
(Set Device Name = “Engineering Printer”))
( If (= “Canon_PCL” DeviceName)
(Set Device Name = “Engineering Printer”))
) ; End of Loop
(GETPLOTDEVICES) ;List layout and plot devices after update

(defun GetPlotDevices (/ dvc)
(vl-load-com)
;; Lee Mac ~ 26.02.10
(vlax-map-collection
(vla-get-layouts
(vla-get-ActiveDocument
(vlax-get-acad-object)))
(function
(lambda (layout)
(vla-RefreshPlotDeviceInfo layout)
(setq dvc
(cons
(cons
(vla-get-name layout)
(vla-get-ConfigName layout)) dvc)))))
(reverse dvc))

Lee Mac 发表于 2022-7-6 09:49:48

您好,FLEXIFOAT,
 
尝试一下:
 
假设新设备名称有效-如有必要,可以使用getplotdevicenames方法获取布局的可用设备名称列表。
 
我注意到符号“和”出现在您的代码中。这些不是有效的字符串标记,应替换为“(ASCII 34)。我强烈建议您使用AutoCAD提供的Visual LISP IDE来编写代码(或其他代码编辑器,如Notepad++),如果您还没有这样做,因为此类编辑器将提供语法高亮显示,允许您轻松发现上述无效字符的使用。
 
此外,Visual LISP IDE为LISP提供了出色的调试功能,并可以直接访问帮助文档。我已经写了一些短小的教程,让初学者开始,这些可以在这里找到。
 
我希望这有帮助,
 

BIGAL 发表于 2022-7-6 09:57:35

我确信我看到了一个变化,打印机读取一个dwg文件,并设置当前我试图找到。也许在Lakose的例子中

flexifloat 发表于 2022-7-6 10:19:18

谢谢大家的帮助。
 
我已经修改/定制了Lee Mac的代码snipet——正如我所料,这是一个很大的帮助。
 
我们下一步将强制对目录中的一组图形运行此操作,但这是另一天的任务。
 
当我们打开每个图形并运行GetPlotDevices以验证图形是否已更新时,我们已将此功能添加到自动加载中,如果未更新,则简单的UPDPlotsTD将使我们达到当前的绘图仪/设置标准。
 
以下是我们在绘图启动时看到的内容:
 
加载绘图更新例程UpdPlotStds。lsp。
UPDPlotstd已加载
 
应用程序将加载2个模块
***UpdPlotStds***用于更新绘图仪名称和psltscale
***GetPlotDevices***用于列出带有布局选项卡的绘图仪名称
 
(“布局1”“HP LaserJet 6P”)(“型号”“HP LaserJet 6P”))
命令:命令行
命令:
命令:
 
 
 
我还附上了修改后的脚本在这里,非常感谢大家的建议和帮助。
 
 
2
页: [1]
查看完整版本: 更改mu的打印机名称