找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1079|回复: 4

[VBA程序]:请问怎么用VBA预览CAD图形啊?

[复制链接]
发表于 2007-10-18 12:41:55 | 显示全部楼层 |阅读模式

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

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

×
我想做一个程序,可以有预览CAD图形的功能,请各位大哥给点方法啊!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-10-23 09:21:05 | 显示全部楼层
支持一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-10-23 11:12:19 | 显示全部楼层
我很早之前九提过,现在还不知道怎么弄
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2007-10-29 17:51:17 | 显示全部楼层
使用DisplayPlotPreview方法,不过很复杂。
随便贴一段代码,是在VB中使用的
Dim ptMin As Variant, ptMax As Variant
Dim ent As AcadEntity
Dim i As Integer, N As Integer
For i = 0 To lstPlotFiles.ListCount - 1
N = 1
If Len(Dir(lstPlotFiles.List(i))) = 0 Then '检查文件是否存在
MsgBox "文件" & lstPlotFiles.List(i) & "不存在!"
End If
Call OpenFile(lstPlotFiles.List(i))        '打开或激活第i个图形文件
Set objDoc = acadapp.ActiveDocument.Application.ActiveDocument
acadapp.ActiveDocument.Application.ZoomExtents    '实现范围缩放
'确保当前布局是模型空间
Set objLayout = objDoc.Layouts.Item("Model")
Set objPlot = objDoc.Plot
Call SetPlotConfiguration                  '设置打印选项(☆必须步骤)
objLayout.CopyFrom objPlotConfiguration    '将打印设置应用到当前图形
objDoc.Regen acAllViewports                '所有视口重生成当前图形
For Each ent In acadapp.ActiveDocument.ModelSpace '对当前图形模型空间中的所有打印区域进行完全预览
ent.GetBoundingBox ptMin, ptMax            '获得每个Document(图形)对象最小包围框的两个角点
objLayout.SetWindowToPlot ptMin, ptMax     '设置打印窗口
objDoc.Regen acAllViewports                '所有视口重生成当前图形
objPlot.DisplayPlotPreview acFullPreview   '完全预览当前的区域
N = N + 1
If N > 1 Then                              '每次只预览当前激活窗口
objLayout.CopyFrom objOriginalPC           '恢复原来的打印设置
Form8.Show                                 '显示打印界面
Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, 3)    '某窗体始终最上层显示
Call SetWindowPos(Me.hwnd, -2, 0, 0, 0, 0, 3)    '某窗体恢复正常状态
Exit Sub
End If
Next ent

请到“测量空间”下载“横纵断面图及施工测量”,其中有一“批量打印”模块中有打印预览功能。
黄玉宏 二○○七年十月二十九日
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 14:03 , Processed in 0.287753 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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