关于vba二次开发
各位大侠好,我是新来的!首先我本科不是学CAD开发的,我是学计算机的。最近为了帮助朋友做些插件,学了些简单的AUTOCAD VBA,突然觉得CAD非常的有意思,所以到此向大家多学习学习。
希望以后各位能给与多多的帮助。
问题:我最近在做批量打印CAD图到PDF图的过程中发现,自动打印出来的文档名称是CAD文档默认的名称,这样的话一张CAD图中有如果有N>2张图纸的话就会在默认的存储路径中覆盖掉已有的PDF文档,有没有什么好办法在不自动存储CAD文档的前提下改变打印出PDF文档的名称呢。(因为文档内容较多,如果每次都另存为太费时间) 其中的核心代码如下:
For Each returnobj In doc.ModelSpace
If returnobj.ObjectName = "AcDb2dPolyline" Then
If Round(returnobj.Area, 4) >= 62370 Then
returnobj.GetBoundingBox minext, maxext
point1(0) = minext(0): point1(1) = minext(1)
point2(0) = maxext(0): point2(1) = maxext(1)
doc.ActiveLayout.CenterPlot = True '中心打印
doc.ActiveLayout.StandardScale = acScaleToFit '合适比例
doc.ActiveLayout.SetWindowToPlot point1, point2
doc.ActiveLayout.PlotRotation = ac0degrees '旋转90度
doc.ActiveLayout.PlotType = acWindow
doc.Plot.PlotToDevice "D:\plot\pdfFactory Pro.pc3" '打印机pc3文件,或者打印机名称,我这里用到的事PDFfactory pro
End If
End If
Next
上面的代码是搜索面积大于一定值的2dPolyline,并以他的最大点和最小点作为Window打印模式的边界点 doc是autcad.activedocument 有两个办法:
一.使用2007及以上版本.打印机使用CAD自带的"DWG To PDF",打印到文件,自行指定PDF文件名.
二.使用低版本(2000或以上),把需要打印的内容复制到图纸空间,按需要修改所在布局的名称,从图纸空间打印,打印到设备时PDF文件名是文档名和布局名的组合.
页:
[1]