[原创]布局的问题
请问各位大虾:我的图形打印是做成布局的,很方便。有一点不便的是每次更换打印机后,布局必须一张张去页面设置,选择所有布局后,但页面设置是空的,很伤脑筋。有没有更好的办法一次做好页面设置? 看layout 命令与PAGESETUP 页面设置,创建新的页面设置.有没有帮助? http://www.mjtd.com/a2/list.asp?id=350 好像用不上,因为做布局时,每张布局都要选打印机。不管将文件拷到那台机器,cad系统都记得最初设置的打印机名称,我想一次将各个布局的打印机改过来,不知如何实现? 樓主何不試試用模板文件? 你做一次, 以后就可以盡情地用了. 不用這麼麻煩.
-------------------------------------------------
我愛CAD. 多多學習. 多多進腳. 因为我经常出差,各地的打印机各不同,所以我每次四十几个布局一个个改,很伤脑筋啊。
版主可能被布局烦的时候不多吧。 我提供链接的程序不能解决吗?
程序的思路是把你第一次打印的打印机名称记忆在注册表中,以后打印时就直接使用该名称打印,不管是新图还是以前用过其它打印机的旧图。
如果你在打印前更改了打印机,则会提示你是否将更改后的打印机保存到注册表中,你可以选择是来更改以后的打印机,或选择否来略去。
应该说这样的程序对你应该是最有帮助 的。我一直在用,因为我以前的图纸也是用其它打印机打的,现在用了新的打印机,就靠这个程序了。 首先谢谢管理员不烦其烦地为我们这样菜鸟解决问题。你是我见到的最热心的人。
再次我要明确一下我为什么要做布局,因为我的图很大很长。每次出图要出成很多张A3纸的。如果每次出图时一张张地去框选是很麻烦的。所以我做成一张张A3布局后,每次打印时,打印选项里我选所有布局,这样可以打印所有图了。不用一张张再去框选了。
我们说的可能不是一回事,这样,我把一个很简单的范例图传给你一份,布局我已做好的,我用的打印机你可能没有,能否一次把各个布局全改过来?改成你用的打印机? 现在看清楚了,你需要的是将所有布局改过来,而该程序只是将当前布局改过来,那程序要改一下了。
Option Explicit
Dim PrintName As String
'打印或页面设置开始前调用GetPrintName过程
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
If CommandName = "PAGESETUP" Or CommandName = "PLOT" Then
Call GetPrintName
End If
End Sub
'打印或页面设置结束后调用SetPrintName过程
Private Sub AcadDocument_EndCommand(ByVal CommandName As String)
If CommandName = "PAGESETUP" Or CommandName = "PLOT" Then
Call SetPrintName
End If
End Sub
'检查默认打印机选项,如果设置与默认选项不同,则更改过来
Private Sub GetPrintName()
PrintName = GetSetting("MCCAD", "DrawingSetting", "PrintName")
If PrintName <> "" Then
Dim i As Integer
For i = 0 To ThisDrawing.Layouts.Count - 1
If ThisDrawing.Layouts(i).ConfigName <> PrintName Then
ThisDrawing.Layouts(i).RefreshPlotDeviceInfo
ThisDrawing.Layouts(i).ConfigName = PrintName
End If
Next
End If
End Sub
'保存默认打印机选项到注册表中
Private Sub SetPrintName()
If PrintName = "" Then
SaveSetting "MCCAD", "DrawingSetting", "PrintName", ThisDrawing.ActiveLayout.ConfigName
Else
If ThisDrawing.ActiveLayout.ConfigName <> PrintName Then
If MsgBox("是否将“" & ThisDrawing.ActiveLayout.ConfigName & "”打印机做为默认打印机?", vbYesNo) = vbYes Then
SaveSetting "MCCAD", "DrawingSetting", "PrintName", ThisDrawing.ActiveLayout.ConfigName
End If
End If
End If
End Sub
页:
[1]