muck 发表于 2022-7-6 11:48:04

使用页面进行VBA批量绘图

AutoCAD 2010
 
我对我为绘制图形而编写的以下代码有问题
使用现有页面设置。批处理例程读取文件c:/VBDWG文件列表中的图形列表。txt文件
创建批处理循环。它使用FitLayoutCanon2870GE11x17进行页面设置
名称例程在绘图处停止。DisplayPlotPreview acFullPreview
此图纸。情节PlotToDevice。谁能告诉我我做错了什么?
我想我需要重置对象,因为我正在循环不同的图形
但我可能错了。我不知道如何在vba中重置对象。任何人都可以
帮助
 
非常感谢。
 
 
 
专用子绘图例程()
我隐藏
如果batchloopcount=0,则
Dim lstName作为字符串
Dim PlotConfiguration作为ACADPlotConfiguration
将绘图变暗为AcadPlot
将Activelayout设置为AcadLayout
如果结束
 
设置PlotConfigurations=ThisDrawing。打印配置
设置绘图=此绘图。情节
设置Activelayout=ThisDrawing。活动布局
Activelayout。刷新PlotDeviceInfo
lstName=“FitLayoutCanon2870GE11x17”
'lstName=“FitLayoutCanon2870GELetter”
'lstName=ComboBox1。价值
lstName=组合框1。价值
如果lstName=,则lstName=“FitLayoutCanon2870GE11x17”
Activelayout。从绘图配置复制。项目(lstName)'lstName。值是用户选择的页面设置
Activelayout。刷新PlotDeviceInfo
此图纸。Regen Acall视口
'绘图。DisplayPlotPreview acFullPreview
此图纸。情节绘图仪
“我。显示
末端接头
私有子命令按钮8_Click()
我隐藏
'出错时转到文件错误
Dim DrawingName作为字符串
AutoCAD。文件。关
batchloopcount=0
打开“c:/VBdwgFilelist.txt”作为#6'输入,打开文件进行输入。
执行EOF(6)循环,直到文件结束。
输入#6,提取名称'将数据读入两个变量。
'调试。打印MyString“将数据打印到调试窗口”。
“If drawingName”“,则此绘图。打开(DrawingName)
如果提取名称“”,则
AutoCAD。文件。打开(DrawingName)
此图纸。Regen Acall视口
'MsgBox(“打印提示”)
用于上述打印的PlotRoutine
batchloopcount=batchloopcount+1
此图纸。Save“保存图形
此图纸。关
如果结束

关闭#6’关闭文件。
我显示
出口接头
文件错误:
关闭#6
MsgBox“文件错误”
“progerror”程序错误
'继续下一步
末端接头

muck 发表于 2022-7-6 12:36:03

对于任何感兴趣的人。以下是我更正的批次图例程:
 
私有子BatchPlotRoutine()
我隐藏
如果batchloopcount=0,则
Dim lstName作为字符串
Dim PlotConfiguration作为ACADPlotConfiguration
将绘图变暗为AcadPlot
将Activelayout设置为AcadLayout
如果结束
设置PlotConfigurations=ThisDrawing。打印配置
设置绘图=此绘图。情节
设置Activelayout=ThisDrawing。活动布局
Activelayout。刷新PlotDeviceInfo
lstName=“FitLayoutCanon2870GE11x17”
'lstName=“FitLayoutCanon2870GELetter”
'lstName=ComboBox1。价值
lstName=组合框1。价值
如果lstName=,则lstName=“FitLayoutCanon2870GE11x17”
Activelayout。从绘图配置复制。项目(lstName)'lstName。值是用户选择的页面设置
此图纸。Regen Acall视口
'绘图。DisplayPlotPreview acFullPreview
情节绘图仪
'此绘图。情节绘图仪
“我。显示
末端接头
私有子命令按钮8_Click()
我隐藏
变暗背景图
背景图=此图纸。GetVariable(“背景图”)
此图纸。SetVariable“BACKGROUNDPLOT”,0
'出错时转到文件错误
Dim DrawingName作为字符串
AutoCAD。文件。关
batchloopcount=0
打开“c:/VBdwgFilelist.txt”作为#6'输入,打开文件进行输入。
执行EOF(6)循环,直到文件结束。
输入#6,提取名称'将数据读入两个变量。
'调试。打印MyString“将数据打印到调试窗口”。
“If drawingName”“,则此绘图。打开(DrawingName)
如果提取名称“”,则
AutoCAD。文件。打开(DrawingName)
此图纸。Regen Acall视口
'MsgBox(“打印提示”)
用于上述打印的BatchPlotRoutine
batchloopcount=batchloopcount+1
此图纸。Save“保存图形
此图纸。SetVariable“BACKGROUNDPLOT”,BackPlot
此图纸。关
如果结束

关闭#6’关闭文件。
我显示
出口接头
文件错误:
关闭#6
MsgBox“文件错误”
“progerror”程序错误
'继续下一步
末端接头

asos2000 发表于 2022-7-6 13:00:52

你能上传DVB文件或与此DVB兼容的dwg吗?
页: [1]
查看完整版本: 使用页面进行VBA批量绘图