乐筑天下

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

[编程交流] Lisp从Selec创建选项卡

[复制链接]

5

主题

8

帖子

3

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 07:06:36 | 显示全部楼层 |阅读模式
你好
 
我试图在实践中加快绘图速度,并引入了选项卡和发布的使用。是的,他们没有用。相反,他们将每个绘图页放在一个选项卡上,导致内存中断和崩溃。一些绘图在一个选项卡上超过30个。打印由选择窗口完成。
 
我想将这些文件更改为选项卡式,这样我就可以对它们使用“发布”和“打印并忘记”。
 
目前,我的方法是复制此多打印布局,并删除每个选项卡创建单个图纸时不需要的所有页面。漫长的过程,尤其是当它崩溃时。
 
我的问题是,是否有一个lisp例程,我可以在其中选择一个布局(选择窗口),并将该选择中的布局发送到一个新选项卡,然后从多页选项卡中删除。然后,我可以很快地完成这个多页选项卡,选择布局,lisp创建选项卡,将信息放在上面,然后进行下一个。不得来回切换、复制和粘贴等。
 
我对lisp还很陌生,有些对我来说毫无意义,但我已经达到了目的,所以请忍受我愚蠢的问题。
 
这是我到目前为止的代码,从论坛的其他地方刷来的。
 
 
  1. ;; lay = New Layout Name  (Will be Created if non-existent)  (defun CopytoLayout (lay / ss NewLay ObjLst)   (vl-load-com)   ; Lee Mac  ~  27.01.10    (setq *acad* (cond (*acad*) ((vlax-get-acad-object)))         *adoc* (cond (*adoc*) ((vla-get-ActiveDocument *acad*))))    (cond (  (not (snvalid lay)))          (  (ssget)             (vlax-for obj (setq ss (vla-get-ActiveSelectionSet *adoc*))              (setq ObjLst (cons Obj ObjLst)))                     (vla-delete ss)             (if (vl-catch-all-error-p                  (setq NewLay (vl-catch-all-apply                                 (function vla-item)                                   (list (vla-get-Layouts *adoc*) lay))))                            (setq NewLay (vla-Add (vla-get-Layouts *adoc*) lay)))             (vla-CopyObjects *adoc*                            (vlax-make-variant                (vlax-safearray-fill                  (vlax-make-safearray vlax-vbObject                    (cons 0 (1- (length ObjLst))))                                    (reverse ObjLst)))                            (vla-get-Block NewLay)))))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:20:41 | 显示全部楼层
这将使用标题栏的边界框为每个图纸创建新布局。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:41:40 | 显示全部楼层
或者,这是我链接到的代码的缩短版本-这是使用选择的代码:
 
  1. (defun c:LayoutCutter ( / _UniqueKey acdoc aclay aclyo acpvp j nwlay objs sel )
  2. ;; © Lee Mac 2011
  3. (defun _UniqueKey ( collection seed / i key ) (setq i 0)
  4.    (while
  5.      (not
  6.        (vl-catch-all-error-p
  7.          (vl-catch-all-apply 'vla-item
  8.            (list collection (setq key (strcat seed (itoa (setq i (1+ i))))))
  9.          )
  10.        )
  11.      )
  12.    )
  13.    key
  14. )
  15. (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))
  16.        aclyo (vla-get-layouts acdoc)
  17.        aclay (vla-get-activelayout acdoc)
  18.        acpvp (vla-item (vla-get-block aclay) 0)
  19. )
  20. (if (setq sel (ssget "_:L" (list (cons 410 (getvar 'CTAB)))))
  21.    (progn
  22.      (setq nwlay (vla-add aclyo (_UniqueKey aclyo "Layout")))
  23.      (if (not (eq "MODEL" (strcase (vla-get-name aclay))))
  24.        (vla-copyfrom aclay nwlay)
  25.      )
  26.      (repeat (setq j (sslength sel))
  27.        (setq objs (cons (vlax-ename->vla-object (ssname sel (setq j (1- j)))) objs))
  28.      )
  29.      (vla-copyobjects acdoc
  30.        (vlax-make-variant
  31.          (vlax-safearray-fill
  32.            (vlax-make-safearray vlax-vbobject (cons 0 (length objs))) (cons acpvp (reverse objs))
  33.          )
  34.        )
  35.        (vla-get-block nwlay)
  36.      )
  37.      (mapcar 'vla-delete objs)
  38.    )
  39. )
  40. (princ)
  41. )
  42. (vl-load-com) (princ)
回复

使用道具 举报

5

主题

8

帖子

3

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 07:48:15 | 显示全部楼层
 
哦,是的!非常感谢你。这将节省我很多时间。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:06:20 | 显示全部楼层
 
非常欢迎。我可能会考虑把这个程序添加到我的网站上,因为它看起来很有用
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 08:15:39 | 显示全部楼层
你好
 
我尝试将此代码用于AutoCAD 2012。我为电子模式编写多页文档,能够自动生成用于打印pdf的布局将节省大量时间。
 
使用自动版本(应该循环的版本)我得到了一个自动错误,使用短版本我没有得到我应该得到的结果,但生成的布局比选定的标题栏大得多。
 
你有没有用CAD 2012测试过它?
 
谢谢
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 14:49 , Processed in 0.664512 second(s), 64 queries .

© 2020-2025 乐筑天下

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