找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 947|回复: 7

[VBA程序]:VBA打印图形时的设置问题?

[复制链接]
发表于 2005-8-28 15:10:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
VBA编写打印图形的程序,如何得到和修改图纸的方向?
然后再确定图形的方向。

VBA可以对布局layout对象设置打印机,打印样式,打印纸尺寸等,但我确无法找到用什么代码控制打印纸张纵向或横向布置?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 4805个

财富等级: 富可敌国

发表于 2005-8-29 08:37:50 | 显示全部楼层
Layout.PlotRotation = ac0degrees或Layout.PlotRotation = ac90degrees
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-29 09:26:09 | 显示全部楼层
二楼说得应该只是把图形旋转了,但并不能得到或设置图纸的方向呀。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4805个

财富等级: 富可敌国

发表于 2005-8-30 08:14:17 | 显示全部楼层
老兄,不能得到你的效果?下图中的图纸方向就是通过这个方法实现的,最终的图纸方向还和打印机的设置有关,你试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-30 09:31:22 | 显示全部楼层
楼上,我就是想得到并设置打印机的纸张方向。并不是在CAD中设置图形的方向。

[打印机中的纸张方向]!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-30 15:15:13 | 显示全部楼层
我试过了,二楼说的对,的确可以改变打印的方向,你用我写的这个试试看!

Public Sub PlotYDF()

    Dim point1(0 To 1) As Double
    Dim point2(0 To 1) As Double
    '定义打印的左下角点和右上角点
    point1(0) = 0: point1(1) = 0
   
    point2(0) = 210: point2(1) = 297
   
    '确定活动空间为模型空间
    If ThisDrawing.ActiveSpace = acPaperSpace Then
        ThisDrawing.MSpace = True
        ThisDrawing.ActiveSpace = acModelSpace
    End If
   
   
    '指定打印机(需要指明你的打印机名称)
    ThisDrawing.ModelSpace.Layout.ConfigName = "\\Scadzgy\HP LaserJet 1100 (MS)"
    '指定纸张
    ThisDrawing.ModelSpace.Layout.CanonicalMediaName = "A4"
    '指定打印样式
    ThisDrawing.ModelSpace.Layout.StyleSheet = "acad.ctb"
    '指定打印范围
    ThisDrawing.ModelSpace.Layout.SetWindowToPlot point1, point2
    '接收打印范围
    ThisDrawing.ModelSpace.Layout.GetWindowToPlot point1, point2
    '指定为窗口打印
    ThisDrawing.ModelSpace.Layout.PlotType = acWindow
    '指定为横向打印
    ThisDrawing.ModelSpace.Layout.PlotRotation = ac90degrees
    '设置打印份数
    ThisDrawing.plot.NumberOfCopies = 1
   
    ThisDrawing.plot.PlotToDevice

End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-30 19:59:59 | 显示全部楼层
图纸方向就是通过这个方法实现的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-31 09:01:02 | 显示全部楼层
我在说得清楚些,你们遇到过这种情况吗:

系统有两台A3的打印机,一台帐帐方向为“横向”,另一台纸张方向为“纵向”。
用楼上的那个程序,如果先选择了第一台打印机出图,然后其它设置不变但是打印机换为第二台,则图形在图纸上的方向和位置都是错误的(掉用CAD的打印程序不会出现这种问题,只是自己写的程序会)!

自己写的程序
ThisDrawing.ModelSpace.Layout.PlotRotation = ac90degrees
这句难道你们没有发现他只是把图形旋转了90度,但是如果打印的图纸方向是纵向的,那么用ThisDrawing.Plot.DisplayPlotPreview acFullPreview 预览的时候纸是纵向放置的[/COLOR];而在CAD自己的打印程序中不管打印机的纸张方向是横是纵,只要设置了横向打印则预览时纸的方向[/COLOR]一定为横向的。



每人能搞定吗?
斑竹大人,帮帮忙!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-28 23:25 , Processed in 0.234759 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表