乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 137|回复: 3

[编程交流] 打印模型空间标题栏

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 22:07:42 | 显示全部楼层 |阅读模式
我希望选择一组标题栏,并让他们根据页码(属性值)按顺序打印。。。。1,2,3,4... 我有一些东西可以绘制它们,它们只是根据插入序列绘制的。是否可以按顺序放置选择集,然后进行打印?给我一点东西,把我推向正确的方向会很好。提前感谢!!!(从图纸空间发布不是选项。)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:33:25 | 显示全部楼层
这将绘制一系列布局,您可以修改并检查每个布局的页码和打印
 
  1. ;Plots layouts by range
  2. ; By Alan H Feb 2014
  3. (defun AH:pltlays ( / lay numlay numend)
  4. (setq numlay (getint "\nEnter Start tab number"))
  5. (setq numend (getint "\nEnter last tab number"))
  6. (setq len (+ (- numend numlay) 1))
  7. (repeat len
  8. (vlax-for lay (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object)))
  9. (if (= numlay (vla-get-taborder lay))
  10. (setvar "ctab" (vla-get-name lay))
  11. ) ; if
  12. ) ; for
  13. (setq lay nil)
  14. (princ name)
  15. (COMMAND "-PLOT" "Y" "" "\\\\PRODPRN03\\100B-Lev5-01-CLR-PRN03" "A3 (297 x 420 mm)" "m" "LANDSCAPE" "N"
  16. "W" "-6,-6" "807,560" "1=2" "C" "Y" "DesignLaserCOLOUR.ctb" "Y" "N" "N" "N" "N" "N" "y")
  17. (setq numlay (+ numlay 1))
  18. ) ; end repeat
  19. ); defun
  20. (AH:pltlays)
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

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

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 23:17:42 | 显示全部楼层
另一个版本是在模型空间中绘制所有标题栏,因此在VBA中获取标题栏列表,然后循环浏览该列表并检查版本号是否与开始号匹配,然后打印,添加1以开始,再次扫描列表立即绘制2号,依此类推,只需继续重新搜索标题栏列表,这是VBA的一个简单读取属性。
 
  1. FilterDXFCode(0) = 0
  2. FilterDXFVal(0) = "INSERT"
  3. 'FilterDXFCode(1) = 2
  4. 'FilterDXFVal(1) = "SCHEDTEXT"
  5. Set SS = ThisDrawing.SelectionSets.Add("pit1sel")
  6. SS.Select acSelectionSetAll, , , FilterDXFCode, FilterDXFVal
  7. For Cntr = 0 To SS.Count - 1
  8. If SS.Item(Cntr).Name = BLOCK_NAME Then
  9.   attribs = SS.Item(Cntr).GetAttributes
  10.     If attribs(0).TextString = sheetnum Then ' the ablock attribs start at (0) 4 atrribs = (0) (1) (2) (3)
  11. do your plot thing here
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 11:19 , Processed in 0.595788 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表