乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 122|回复: 3

[编程交流] ActiveX Api-复制页面设置f

[复制链接]

2

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
12
发表于 2022-7-6 21:56:34 | 显示全部楼层 |阅读模式
我正在用VB构建一个独立的应用程序。Net在AutoCAD 2012中使用COM ActiveX API创建图形。我正在将页面设置从模板图形复制到我创建的具有多个布局的图形。在我的代码中,我通过调用
  1. Document.Plot.SetLayoutsToPlot(obj)
  2. Document.Plot.PlotToDevice()

使用我复制的页面设置可以很好地工作。
 
但是,在保存图形并在AutoCAD中直接打开图形后(不使用我的应用程序)。当您尝试使用Publish命令时,它无法打印,错误为未找到页面设置。
225636pv0fdy96vvj9x093.jpg
所以基本上对Plot有效,但对Publish无效。你知道为什么它不能发布吗?我还需要做些什么才能让发布正常工作吗?
 
这是我用来复制页面设置的代码。
  1. For Each oPage As clsMDA_Page In colPages
  2. If oPage.LayoutName = PageType.Assembly Then
  3. Dim PlotConfigDeleted As Boolean = DeletePlotConfigurations(AutoCAD_Document)
  4. Dim PageSetupsCopied As Boolean = CopyPageSetups(AutoCAD_Application, AutoCAD_Document, MDA_PageSetupLibrary, "A Size")
  5. PageSetupsCopied = CopyPageSetups(AutoCAD_Application, AutoCAD_Document, MDA_PageSetupLibrary, "B Size")
  6. End If
  7. Dim LayoutSet As Boolean
  8. Select Case oPage.PageSize
  9. Case PageSize.SizeA
  10.         LayoutSet = SetLayoutPlotConfiguration(AutoCAD_Document, AutoCAD_Document.ActiveLayout, conPageSetupCopyRoomBlackASizeLandscape)
  11. Case PageSize.SizeB
  12.         LayoutSet = SetLayoutPlotConfiguration(AutoCAD_Document, AutoCAD_Document.ActiveLayout, conPageSetupCopyRoomBlackBSizeLandscape)
  13. End Select
  1. Private Function DeletePlotConfigurations(ByVal Document As AcadDocument) As Boolean
  2. Try
  3.         For Each plot As AcadPlotConfiguration In Document.PlotConfigurations
  4.                 plot.Delete()
  5.         Next
  6.         DeletePlotConfigurations = True
  7. Catch ex As Exception
  8.         DeletePlotConfigurations = False
  9. End Try
  10. 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
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 22:32:04 | 显示全部楼层
欢迎来到CADTutor。
 
你也许可以从这件旧衣服中挑选出你需要的东西。NET应用程序:
 
http://forums.augi.com/showthread.php?80461-页面设置管理器&p=1219546&viewfull=1#post1219546
 
 
 
干杯
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 22:52:43 | 显示全部楼层
此外,您可以考虑通过ReadDwgFile()而不是DBX打开图形作为侧数据库。
回复

使用道具 举报

2

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
12
发表于 2022-7-6 23:04:38 | 显示全部楼层
 
除非我遗漏了什么,否则我所做的与将打印配置复制到布局中的操作类似。您只是在使用数据库字典对象。这个Net库在AutoCAD之外不可用,独立应用程序只能使用COM Api,这有一些限制。ReadDwgFile也不可用,这就是我使用AxDB实现的原因。
 
Plot和Publish之间有区别吗?绘图工作。。。但是Publish找不到我的页面设置。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 13:34 , Processed in 0.355088 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表