乐筑天下

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

[编程交流] 打印所有选项卡

[复制链接]

2

主题

261

帖子

20

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-5 17:22:30 | 显示全部楼层
埃亚尔
如果模型空间中有多种格式,则在任何情况下都必须打开图形。这是选择框架所必需的。
可以一次打印所有内容,并指定打印设置,但需要您的示例进行检查。
附上文件示例。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:28:00 | 显示全部楼层
这会将模型空间标题栏转换为图纸空间布局,然后您可以打印所有布局,这样就可以绕过打印所有问题,只重新定位标题栏,将所有其他对象留在模型空间中。如果你看这个,它也是一个布局的绘图范围。”http://www.cadtutor.net/forum/showthread.php?69132-正在打印LISP帮助&高亮显示=打印LISP。
 
  1. ; make layouts using title blocks from mspace
  2. ; by Alan H April 2017
  3. ; title blocks can be any scale
  4. ; this code is for metric and may need modification for feet
  5. ; the code is hard coded for a A1 title block with a mview window
  6. ; of 800x500
  7. ; the manual pick is to ensure layouts are created in correct order.
  8. ; the cnr1 is based on the size of the title block and correct mview size
  9. ; the L & H is outside title block size in true size
  10. ; use a cond to check for various title blocks
  11. (defun convmodel-pspace ( / L H cnr1 cnr2 cenx ceny obj obj1 objent ins xsc ysc cen laynum x lay)
  12. (setq L 801.0) ;sheet size
  13. (setq h 554.0)
  14. (setq cnr1 (list 1.0 51.0)) ; mview corners
  15. (setq cnr2 (list 800.0 553.0))
  16. (setq cenx 400.05) ; centre of mview
  17. (setq ceny 302.00)
  18. ; end of titleblock params
  19. (setq oldsnap (getvar "osmode"))
  20. (setvar "osmode" 0)
  21. ; pick title blocks
  22. (while (setq objent (car (entsel "\nPick title block")))
  23. (setq obj (vlax-ename->vla-object objent))
  24. (setq ins (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint obj)))) ; expects lower left as insert
  25. (setq xsc (vla-get-xscalefactor obj))
  26. (setq ysc (vla-get-xscalefactor obj))
  27. (setq cen (list (+ (car ins) (* xsc cenx))(+ (cadr ins) (* ceny ysc)))) ;adjust cen pt to model co-ords
  28. (command "layout" "n" "")
  29. (setq alllayouts (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object))))
  30. (setq num 999) ; dummy max value
  31. (SETQ LAYNUM 0)
  32. (vlax-for x alllayouts
  33. (Setq laynum (+ 1 laynum))
  34. )
  35. (if (> num laynum)
  36. (setq num (- laynum 1))
  37. )
  38. (vlax-for lay alllayouts
  39. (if (= num (vla-get-taborder lay))
  40. (setvar "ctab" (vla-get-name lay))
  41. )
  42. )
  43. ; find any mviews and erase make sure to have a true blank layout found in testing
  44. (command "erase" "W" (list -100 -100)(list 1000 1000) "")
  45. (command "mview" (list -10 -10) (list 900 900)) ; new mview adjust for bigger sheet
  46. (setq objl (entlast))
  47. (command "zoom" "e")
  48. (command "mspace")
  49. (command "zoom" "c" ins 100)
  50. (command "chspace" objent "")
  51. (command "erase" objl "")
  52. (setq ins (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint obj))))
  53. (command "move" objent "" ins (list 0 0)) ; put title block to 0,0
  54. (vla-put-xscalefactor obj 1) ; make title true size
  55. (vla-put-yscalefactor obj 1)
  56. (vla-put-zscalefactor obj 1)
  57. ; put correct layer here for mview
  58. (command "mview" cnr1 cnr2)
  59. (command "mspace")
  60. (command "zoom" "C" cen 1)
  61. (command "zoom" (strcat (rtos (/ 1.0 xsc) 2 0) "xp"))
  62. ; end of repeat
  63. (setvar "ctab" "Model")
  64. ) ; while
  65. (setvar "osmode" oldsnap)
  66. ) ; defun
  67. (convmodel-pspace)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-20 21:55 , Processed in 2.110400 second(s), 55 queries .

© 2020-2025 乐筑天下

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