明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1085|回复: 3

VBA的CAD打印程序转VB该怎么实现!

[复制链接]
发表于 2016-5-2 14:04:19 | 显示全部楼层 |阅读模式
本帖最后由 MTC 于 2016-5-2 14:09 编辑

原文件是VBA编写的一个批量打印程序中的一段,在VB 中使用时如果引用了CAD的类型库是没有问题的,如果我不引用的话,也想这句语句可以执行,该怎么改一下了。
原VBA程序语句如下(截取部分)
    On Error Resume Next
    Dim ptMin As Variant, ptMax As Variant
    Dim Ent  as Object
    Dim PlotCount As Integer
     
    Set objDoc = ThisDrawing.Application.ActiveDocument
    Set objLayout = objDoc.Layouts.Item("Model")
    Set objPlot = objDoc.Plot
     ThisDrawing.Application.ZoomExtents


        For Each Ent In objDoc.ModelSpace
        If TypeOf Ent Is AcadBlockReference Then                               '
            If IsFrame(Ent, AutoFrame) = True And objDoc.Blocks(Ent.Name).count > 0 Then
                 Ent.GetBoundingBox ptMin, ptMax
                 Debug.Print Ent.Name & "--" & objDoc.Blocks(Ent.Name).count
                 
                ' 将三维点转化为二维点坐标
                ReDim Preserve ptMin(0 To 1)
                ReDim Preserve ptMax(0 To 1)
                ' 设置打印窗口
                 ThisDrawing.ActiveLayout.SetWindowToPlot ptMin, ptMax
                 objLayout.PlotType = acWindow
                ' 完全预览并提示打印
                 'objPlot.DisplayPlotPreview acFullPreview
                 objPlot.PlotToDevice objLayout.ConfigName
             End If
        End If
        Next Ent


不引用CAD类型库时出错的语句为   If TypeOf Ent Is AcadBlockReference Then 中的“AcadBlockReference”,有没有其他方法替代这句的功能。
发表于 2016-5-2 21:03:37 | 显示全部楼层
ObjectName 属性
发表于 2016-5-2 21:05:22 | 显示全部楼层
 楼主| 发表于 2016-5-14 22:54:40 | 显示全部楼层
非常感谢,应用ObjectName 属性可以解决掉的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-29 01:46 , Processed in 0.168438 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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