Stimey 发表于 2022-7-6 22:07:42

打印模型空间标题栏

我希望选择一组标题栏,并让他们根据页码(属性值)按顺序打印。。。。1,2,3,4... 我有一些东西可以绘制它们,它们只是根据插入序列绘制的。是否可以按顺序放置选择集,然后进行打印?给我一点东西,把我推向正确的方向会很好。提前感谢!!!(从图纸空间发布不是选项。)

BIGAL 发表于 2022-7-6 22:33:25

这将绘制一系列布局,您可以修改并检查每个布局的页码和打印
 


;Plots layouts by range
; By Alan H Feb 2014
(defun AH:pltlays ( / lay numlay numend)
(setq numlay (getint "\nEnter Start tab number"))
(setq numend (getint "\nEnter last tab number"))
(setq len (+ (- numend numlay) 1))
(repeat len
(vlax-for lay (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object)))
(if (= numlay (vla-get-taborder lay))
(setvar "ctab" (vla-get-name lay))
) ; if
) ; for
(setq lay nil)
(princ name)
(COMMAND "-PLOT" "Y" "" "\\\\PRODPRN03\\100B-Lev5-01-CLR-PRN03" "A3 (297 x 420 mm)" "m" "LANDSCAPE" "N"
"W" "-6,-6" "807,560" "1=2" "C" "Y" "DesignLaserCOLOUR.ctb" "Y" "N" "N" "N" "N" "N" "y")
(setq numlay (+ numlay 1))
) ; end repeat
); defun
(AH:pltlays)

Stimey 发表于 2022-7-6 23:04:28

比加尔,谢谢你的回复,但我做了一个新手动作&没有正确解释。。。。
 
我目前有一个VBA例程,允许我在模型空间中选择一组标题栏,并将它们打印到预定的页面设置,该例程允许我停止并选择。
问题是,它绘制它们的方式与它们添加到图形中的方式相反。简单地颠倒顺序是不行的,因为他们会不时地在屏幕上被删除和重组。
 
所以。。。。。我想添加一些东西,将他们的绘图顺序编号属性。我可以强制编号始终为1,2,3。。。。。但如果可能的话,希望是字母数字。

BIGAL 发表于 2022-7-6 23:17:42

另一个版本是在模型空间中绘制所有标题栏,因此在VBA中获取标题栏列表,然后循环浏览该列表并检查版本号是否与开始号匹配,然后打印,添加1以开始,再次扫描列表立即绘制2号,依此类推,只需继续重新搜索标题栏列表,这是VBA的一个简单读取属性。
 

FilterDXFCode(0) = 0
FilterDXFVal(0) = "INSERT"
'FilterDXFCode(1) = 2
'FilterDXFVal(1) = "SCHEDTEXT"
Set SS = ThisDrawing.SelectionSets.Add("pit1sel")
SS.Select acSelectionSetAll, , , FilterDXFCode, FilterDXFVal

For Cntr = 0 To SS.Count - 1
If SS.Item(Cntr).Name = BLOCK_NAME Then
attribs = SS.Item(Cntr).GetAttributes
    If attribs(0).TextString = sheetnum Then ' the ablock attribs start at (0) 4 atrribs = (0) (1) (2) (3)
do your plot thing here
页: [1]
查看完整版本: 打印模型空间标题栏