乐筑天下

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

[编程交流] 多个布局选项卡。图纸

[复制链接]

20

主题

344

帖子

325

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 12:51:42 | 显示全部楼层 |阅读模式
有没有办法从中生成布局选项卡列表。您没有打开的dwg?我最初的想法是创建一个新的AutoCAD对象并链接一个文件,就像处理Excel文件一样。。然而,这样做打开了一个新的AutoCAD实例,我宁愿避免使用它。
 
该功能必须存在,因为ADCENTER将允许您拖动内容,包括布局选项卡。有没有办法通过LISP实现这一点?
 
任何建议都会有帮助。^
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:58:08 | 显示全部楼层
也许可以使用ObjectDBX访问未打开的图形?
 
可能是一个值得考虑的选项。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:07:37 | 显示全部楼层
例如:
 
  1. ;; ObjectDBX Example, by Lee McDonnell
  2.   
  3. (defun ODBX (fname / doc dbx lst flag)
  4. (vl-load-com)
  5. (vlax-for doc (vla-get-Documents (vlax-get-acad-object))
  6.    (and (eq (strcase (vla-get-fullname doc)) (strcase fname))
  7.         (setq dbx doc)))
  8. (and (not dbx) (setq flag t)
  9.       (setq dbx
  10.         (vlax-create-object
  11.           (if (< (setq acVer (atoi (getvar "ACADVER"))) 16)
  12.             "ObjectDBX.AxDbDocument"
  13.             (strcat "ObjectDBX.AxDbDocument." (itoa acVer))))))
  14. (cond ((and flag
  15.           (vl-catch-all-error-p
  16.             (vl-catch-all-apply 'vla-open
  17.               (list dbx fname))))
  18.         (princ (strcat "\n** Error Opening: " (vl-filename-base fname) " **")))
  19.        (t
  20.         (vlax-for lay (vla-get-Layouts dbx)
  21.           (setq lst (cons (vla-get-name lay) lst)))))   
  22. (ObjRel (list dbx)) (gc) (gc)
  23. lst)
  24. ;; Release Objects ~ Requires List of Variables
  25.            
  26. (defun ObjRel (lst)
  27. (mapcar
  28.    (function
  29.      (lambda (x)
  30.        (if (and (eq (type x) 'VLA-OBJECT)
  31.                 (not (vlax-object-released-p x)))
  32.          (vl-catch-all-apply
  33.            'vlax-release-object (list x))))) lst))
  34. (defun c:test ( )
  35. (odbx (getfiled "select" "" "dwg" 16)))
回复

使用道具 举报

20

主题

344

帖子

325

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 13:10:00 | 显示全部楼层
非常好,谢谢你,李我试了几次才弄明白发生了什么,但我想我明白了。我必须进一步研究ObjectDBX以获得更完整的理解。
 
再次感谢。^
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:17:42 | 显示全部楼层
很乐意帮忙伙计
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 13:24:22 | 显示全部楼层
我不知道如何链接到另一个帖子,所以我从patric_35的另一个帖子中删除了这个帖子。
这会让你朝着正确的方向前进
 
 
  1. (defun c:lstdwg(/ dirbox Ouvrir_dessin_dbx rep lst fic dbx lay)
  2. (defun dirbox(/ cdl rep)
  3.    (if (setq cdl (vlax-create-object "Shell.Application"))
  4.      (progn
  5.    (and (setq rep (vlax-invoke cdl 'browseforfolder 0 "Choose a directory" 512 ""))
  6.         (setq rep (vlax-get-property (vlax-get-property rep 'self) 'path))
  7.    )
  8.    (vlax-release-object cdl)
  9.      )
  10.    )
  11.    rep
  12. )
  13. (defun Ouvrir_dessin_dbx(dwg / dbx doc lan)
  14.    (vl-load-com)
  15.    (setq dwg (findfile dwg))
  16.    (vlax-for doc (vla-get-documents (vlax-get-acad-object))
  17.      (and (eq (strcase (vla-get-fullname doc)) (strcase dwg))
  18.    (setq dbx doc lan T)
  19.      )
  20.    )
  21.    (or dbx
  22.      (progn
  23.    (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
  24.      (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
  25.      (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))))
  26.    )
  27.    (vla-open dbx dwg)
  28.      )
  29.    )
  30.    (list dbx lan)
  31. )
  32. (vl-load-com)
  33. (if (setq rep (dirbox))
  34.    (if (setq lst (vl-directory-files rep "*.dwg" 1))
  35.      (foreach fic lst
  36.    (if (setq dbx (ouvrir_dessin_dbx (strcat rep "/" fic)))
  37.      (progn
  38.        (princ (strcat "\n Working in " fic))(princ)
  39.        (vlax-for lay (vla-get-layouts (car dbx))
  40.          (princ (strcat "\n\t\tLayout : " (vla-get-name lay)))(princ)
  41.        )
  42.        (or (cadr dbx)(vlax-release-object (car dbx)))
  43.      )
  44.      (princ (strcat "\n Can't read file " fic))
  45.    )
  46.      )
  47.      (alert "No dwg's File")
  48.    )
  49. )
  50. (princ)
  51. )
回复

使用道具 举报

20

主题

344

帖子

325

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 13:28:57 | 显示全部楼层
谢谢JohnM。我也会好好看看的。^。^
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 13:31:27 | 显示全部楼层
作为该问题的增编。有没有vla方法可以复制布局?我不想让命令行闪开。我知道怎么做。任何帮助都将不胜感激。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:37:04 | 显示全部楼层
我想可能是复制方法,但这是我认为唯一的设置
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 13:43:14 | 显示全部楼层
我将查看vla add以创建一个新的布局选项卡,然后使用ssget获取旧对象并复制以将其放入新选项卡
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 03:07 , Processed in 0.769895 second(s), 72 queries .

© 2020-2025 乐筑天下

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