krampaul82 发表于 2015-12-29 10:17:16

从vba程序中打印

您好,沼泽人,新年快乐!(有点早。)
我有以下代码,可以将块作为用户在图纸空间中看到的模型空间中的块插入当前打开的图形中。现在有没有办法从代码中打印插入的内容
打印ca_JACADDOC作为AcadDocument<br>将objBlockRef作为AcadBlockReference<br>进行编辑comm_ assy_。隐藏“结束vba”插入选定的块<br>dblInsertPt(0)=0<br>TblInsertPt(1)=1<br>CblsCale=1<br<dblRotation=0<br<Set-objAcadDoc=ThisDrawing<br>Set-ObblockRef=objAcadDoc.ModelSpace。InsertBlock(dblInsertPt,strBlockName,dblScale,dblScale,dblScale,dblRotation)
“这是我想用新的块插入和程序继续绘制纸质图纸的地方。”
末端接头
可以这样做吗?感谢您的帮助…
马克
**** Hidden Message *****

Matt__W 发表于 2015-12-29 12:35:39

这是一个我们不再使用的旧程序的片段(我们现在使用图纸集绘制所有内容)。基本上,它在图形中的所有选项卡中循环,如果名称为“Model”或包含“PDF*”,它将跳过它。代码中没有包含正在使用的变量。希望您能理解其余部分。
    For Each objLayout In ThisDrawing.Layouts
      If objLayout.Name = "Model" Or UCase(objLayout.Name) Like "PDF*" Then
            Debug.Print "Skipping Model Space or PDF tab."
      ElseIf UCase$(objLayout.Name) Like (strTabID & "*") Then
            ThisDrawing.ActiveLayout = ThisDrawing.Layouts(objLayout.Name)
            ThisDrawing.ActiveLayout.RefreshPlotDeviceInfo
            ThisDrawing.ActiveLayout.ViewToPlot = strPlotView
            ThisDrawing.ActiveLayout.PlotType = acView
            ThisDrawing.ActiveLayout.RefreshPlotDeviceInfo
            With ThisDrawing.ActiveLayout
                .RefreshPlotDeviceInfo
                .ConfigName = "PDF-B&W.pc3"
                .CanonicalMediaName = strMediaName
                .StandardScale = ac1_1
                .ScaleLineweights = False
                .StyleSheet = strCTB
                .PlotRotation = ac90degrees
                .ViewToPlot = strPlotView
                .CenterPlot = True
                .PlotType = acView
            End With
            ThisDrawing.Plot.PlotToDevice
      End If
    Next objLayout

krampaul82 发表于 2015-12-31 07:47:17

马特,
我只是想花时间谢谢你。 您总是回复我的帮助查询,使我朝着正确的方向开始!话虽如此,你是沼泽的一个很好的例子。 愿你在即将到来的新年里真正得到祝福! 我已经多次使用“并屠杀”您的代码片段,以使我的日常任务更轻松,更快捷。 我只是希望我有更多的时间来真正理解VBa和 VB.net 但我的日常工作职能不允许这样做。 我将研究这一点,并可能在接下来的几周内使用其中的一些,我相信还有更多的询问。
马克
页: [1]
查看完整版本: 从vba程序中打印