mchernecki 发表于 2022-7-6 21:56:34

ActiveX Api-复制页面设置f

我正在用VB构建一个独立的应用程序。Net在AutoCAD 2012中使用COM ActiveX API创建图形。我正在将页面设置从模板图形复制到我创建的具有多个布局的图形。在我的代码中,我通过调用
Document.Plot.SetLayoutsToPlot(obj)
Document.Plot.PlotToDevice()
使用我复制的页面设置可以很好地工作。
 
但是,在保存图形并在AutoCAD中直接打开图形后(不使用我的应用程序)。当您尝试使用Publish命令时,它无法打印,错误为未找到页面设置。

所以基本上对Plot有效,但对Publish无效。你知道为什么它不能发布吗?我还需要做些什么才能让发布正常工作吗?
 
这是我用来复制页面设置的代码。
For Each oPage As clsMDA_Page In colPages
If oPage.LayoutName = PageType.Assembly Then
Dim PlotConfigDeleted As Boolean = DeletePlotConfigurations(AutoCAD_Document)
Dim PageSetupsCopied As Boolean = CopyPageSetups(AutoCAD_Application, AutoCAD_Document, MDA_PageSetupLibrary, "A Size")
PageSetupsCopied = CopyPageSetups(AutoCAD_Application, AutoCAD_Document, MDA_PageSetupLibrary, "B Size")
End If
Dim LayoutSet As Boolean
Select Case oPage.PageSize
Case PageSize.SizeA
        LayoutSet = SetLayoutPlotConfiguration(AutoCAD_Document, AutoCAD_Document.ActiveLayout, conPageSetupCopyRoomBlackASizeLandscape)
Case PageSize.SizeB
        LayoutSet = SetLayoutPlotConfiguration(AutoCAD_Document, AutoCAD_Document.ActiveLayout, conPageSetupCopyRoomBlackBSizeLandscape)
End Select
Private Function DeletePlotConfigurations(ByVal Document As AcadDocument) As Boolean
Try
        For Each plot As AcadPlotConfiguration In Document.PlotConfigurations
                plot.Delete()
        Next
        DeletePlotConfigurations = True
Catch ex As Exception
        DeletePlotConfigurations = False
End Try
End Function

私有函数CopyPageSetups(ByVal AutoCAD_应用程序作为AcadApplication,ByVal Document作为AcadDocument,ByVal PageSetupFile作为String,ByVal PageSize作为String)作为BooleanTry Dim ACDbx作为AxDbDocument Dim colConfig作为AcadPlotConfigurations ACDbx=AutoCAD_应用程序。GetInterfaceObject(“ObjectDBX.AxDbDocument.18”)ACDbx。打开(PageSetupFile)colConfig=ACDbx。PlotConfigurations Dim i As Integer=0,对于每个PLOTCONFIGURATION,如果PlotConfig为COLCONIG中的AcadPlotConfiguration。名称包含(PageSize)然后i+=1 End If Next If(i

BlackBox 发表于 2022-7-6 22:32:04

欢迎来到CADTutor。
 
你也许可以从这件旧衣服中挑选出你需要的东西。NET应用程序:
 
http://forums.augi.com/showthread.php?80461-页面设置管理器&p=1219546&viewfull=1#post1219546
 
 
 
干杯

BlackBox 发表于 2022-7-6 22:52:43

此外,您可以考虑通过ReadDwgFile()而不是DBX打开图形作为侧数据库。

mchernecki 发表于 2022-7-6 23:04:38

 
除非我遗漏了什么,否则我所做的与将打印配置复制到布局中的操作类似。您只是在使用数据库字典对象。这个Net库在AutoCAD之外不可用,独立应用程序只能使用COM Api,这有一些限制。ReadDwgFile也不可用,这就是我使用AxDB实现的原因。
 
Plot和Publish之间有区别吗?绘图工作。。。但是Publish找不到我的页面设置。
页: [1]
查看完整版本: ActiveX Api-复制页面设置f