首页 > 其他分享 >解决方案 | 获取所有的打印输出的图纸尺寸的名称GetCanonicalMediaNames返回为空的原因竟然是官方帮助文件给我带来了误导-CAD VBA

解决方案 | 获取所有的打印输出的图纸尺寸的名称GetCanonicalMediaNames返回为空的原因竟然是官方帮助文件给我带来了误导-CAD VBA

时间:2024-04-22 22:00:54浏览次数:31  
标签:GetCanonicalMediaNames Dim VBA Layout 打印输出 mediaNames plotDevices styleNames nam

 

巨大的坑,该代码来自于acadauto_2014--AutoCAD2014 ActiveX Reference Guide.chm 但是存在一个巨大的bug。

'获取所有的打印输出的图纸尺寸的名称 ,但是事前必须设置【打印机对象】也就是 Layouts("Model").ConfigName = "DWF Classic.pc3" 这样的代码,否则返回为空。
也就是说,先设置打印机,才能知道可打印图纸的尺寸。这个逻辑才是对的。这里是采用的vba ,其他的语音比如Python也是一样的


Sub Example_GetCanonicalMediaNames() '获取所有的打印输出的图纸尺寸的名称 ,但是事前必须设置【打印机对象】也就是 Layouts("Model").ConfigName = "DWF Classic.pc3" 这样的代码,否则返回为空
    ' This example gets the current plot device information
    ' and then displays the list of plot device names,
    ' media names, localized media names, and plot style
    ' table entries.
    Dim Layout As ACADLayout
    Set Layout = ThisDrawing.ModelSpace.Layout
    
    ' Refresh the current plot information for
    ' this session.
    Layout.RefreshPlotDeviceInfo
    
    ' List all the valid device names for the system
    Dim plotDevices As Variant
    plotDevices = Layout.GetPlotDeviceNames()
    
    Dim x As Integer
    For x = LBound(plotDevices) To UBound(plotDevices)
        MsgBox plotDevices(x)
    Next
    
    ' List all the media names, and their localized version
    Dim mediaNames As Variant
    mediaNames = Layout.GetCanonicalMediaNames()
    
    For x = LBound(mediaNames) To UBound(mediaNames)
        MsgBox mediaNames(x)
        MsgBox Layout.GetLocaleMediaName(mediaNames(x))
    Next
    
    ' List all the entries in the plot style table
    Dim styleNames As Variant
    styleNames = Layout.GetPlotStyleTableNames()
    
    For x = LBound(styleNames) To UBound(styleNames)
        MsgBox styleNames(x)
    Next
    
End Sub

 

标签:GetCanonicalMediaNames,Dim,VBA,Layout,打印输出,mediaNames,plotDevices,styleNames,nam
From: https://www.cnblogs.com/issacnew/p/18151656

相关文章

  • 新手学习记录丨Excel VBA(1)
    准备工作:开启ExcelVBA工作环境在MicrosoftExcel中,按键Alt+F11(或者Alt+Fn+F11)即可打开VBA编辑器。如下图所示,右键插入“模块”,即可开始在右侧的编辑器中编辑代码。实现最基本的任务:打印Helloworld在ExcelVBA中,字符串用双引号包围。我们可以使用MsgBox函数输出文......
  • 如何使用VBA关闭Excel后台进程?
    以下是使用VBA关闭Excel后台进程的示例代码: SubCloseExcelProcess()   DimobjWMIServiceAsObject  DimcolProcessesAsObject  DimobjProcessAsObject  DimstrComputerAsString  DimstrExcelAsString     '设置要关闭的进......
  • WPS Excel VBA 按条件(小区名称、部门名称)统计业主满意度调查表(二维表格)数据
    WPSExcelVBA按条件(小区名称、部门名称)统计业主满意度调查表(二维表格)数据Excel->开发工具->查看代码->插入模块'''''''''''''''''''''''''''''......
  • Python-VBA函数之旅-abs()函数
            abs函数是绝对值函数(absolutevaluefunction)的缩写,在编程中有多种实际应用场景,因为它能够方便地处理需要忽略数值符号的情况。常见的应用场景有:1、数值处理:在数据分析和科学计算中,经常需要处理各种数值。使用abs函数可以确保获得的数值是非负的,从而避免产......
  • Excel VBA工程模块-网络工具
     启用开发工具   把开发工具移到右边 进入VBA  导入模块文件  然后就可以使用模块里的函数了,非常好用 ......
  • CorelDraw (CDR) VBA 实现导出贴图坐标
    创作上位机动画时,喜欢用Corel做画面设计,毕竟不管是亚控还是力控还是wincc,画图都太难受了.贴图动画要贴准的话,最好用坐标精确对齐.所以写了这段代码,用来把Corel中的坐标写入文本文件,做上位机画面时,就可以使用这些坐标进行贴图了.上代码1SubMacro1()2Di......
  • 关于《完全手册Excel VBA典型实例大全——通过368个例子掌握》随书样例的下载
    按照早先下载的电子教程查看和编写vba,有些例子使用运行错误,想着看看原始文件。容易看到,网上有提供的doc或者pdf文档,都不完整,可能是{完全手册Excel_VBA典型实例大全:通过368个例子掌握}.{doc,pdf}这样命名的,139页或者134页的样子。搜索发现很多一些链接要么失效,要么是需要相应的积......
  • Python-VBA编程500例-020-02(入门级)
    第k个组合(ThekthCombination)的问题在实际应用中具有广泛的用途,它涉及从n个不同元素中选出k个元素的所有可能组合。这种组合的概念在许多领域都有重要的应用,常见的一些具体应用有:1、彩票与赌博:在某些彩票或赌博游戏中,参与者需要选择特定数量的号码或符号。这些号码或符号的......
  • Python-VBA编程500例-017(入门级)
    数组剔除元素后的乘积(TheProductResultingFromAnArrayWithElementsExcluded)在多个领域具有实际应用价值。常见的应用场景有:1、金融数据分析:在金融领域,数组通常用来存储股票价格、交易量或其他相关金融指标。当分析人员需要剔除某个异常数据点或某个时间段的数据以进......
  • cad vba 打开excel并弹窗打开指定文件
     CADvba代码实现打开excel,并通过对话框选择xls文件,并打开此文件进行下一步操作。代码如下:OptionExplicit#IfVBA7ThenPrivateDeclarePtrSafeFunctionts_apiGetOpenFileNameLib"comdlg32.dll"Alias"GetOpenFileNameA"(tsFNAstsFileName)AsBooleanPriva......