yao2001xp 发表于 2003-10-13 17:35:00

[原创]布局的问题

请问各位大虾:
      我的图形打印是做成布局的,很方便。有一点不便的是每次更换打印机后,布局必须一张张去页面设置,选择所有布局后,但页面设置是空的,很伤脑筋。有没有更好的办法一次做好页面设置?

runkeji 发表于 2003-10-13 22:44:00

看layout 命令与PAGESETUP 页面设置,创建新的页面设置.有没有帮助?

mccad 发表于 2003-10-14 06:23:00

http://www.mjtd.com/a2/list.asp?id=350

yao2001xp 发表于 2003-10-16 20:41:00

好像用不上,因为做布局时,每张布局都要选打印机。不管将文件拷到那台机器,cad系统都记得最初设置的打印机名称,我想一次将各个布局的打印机改过来,不知如何实现?

BDYCAD 发表于 2003-10-16 21:16:00

樓主何不試試用模板文件? 你做一次, 以后就可以盡情地用了. 不用這麼麻煩.





-------------------------------------------------
我愛CAD. 多多學習. 多多進腳.

yao2001xp 发表于 2003-10-17 20:29:00

因为我经常出差,各地的打印机各不同,所以我每次四十几个布局一个个改,很伤脑筋啊。
版主可能被布局烦的时候不多吧。

mccad 发表于 2003-10-17 20:35:00

我提供链接的程序不能解决吗?
程序的思路是把你第一次打印的打印机名称记忆在注册表中,以后打印时就直接使用该名称打印,不管是新图还是以前用过其它打印机的旧图。
如果你在打印前更改了打印机,则会提示你是否将更改后的打印机保存到注册表中,你可以选择是来更改以后的打印机,或选择否来略去。
应该说这样的程序对你应该是最有帮助 的。我一直在用,因为我以前的图纸也是用其它打印机打的,现在用了新的打印机,就靠这个程序了。

yao2001xp 发表于 2003-10-18 00:56:00

首先谢谢管理员不烦其烦地为我们这样菜鸟解决问题。你是我见到的最热心的人。

再次我要明确一下我为什么要做布局,因为我的图很大很长。每次出图要出成很多张A3纸的。如果每次出图时一张张地去框选是很麻烦的。所以我做成一张张A3布局后,每次打印时,打印选项里我选所有布局,这样可以打印所有图了。不用一张张再去框选了。

我们说的可能不是一回事,这样,我把一个很简单的范例图传给你一份,布局我已做好的,我用的打印机你可能没有,能否一次把各个布局全改过来?改成你用的打印机?

mccad 发表于 2003-10-18 06:39:00

现在看清楚了,你需要的是将所有布局改过来,而该程序只是将当前布局改过来,那程序要改一下了。

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]
查看完整版本: [原创]布局的问题