多个布局选项卡。图纸
有没有办法从中生成布局选项卡列表。您没有打开的dwg?我最初的想法是创建一个新的AutoCAD对象并链接一个文件,就像处理Excel文件一样。。然而,这样做打开了一个新的AutoCAD实例,我宁愿避免使用它。该功能必须存在,因为ADCENTER将允许您拖动内容,包括布局选项卡。有没有办法通过LISP实现这一点?
任何建议都会有帮助。^ 也许可以使用ObjectDBX访问未打开的图形?
可能是一个值得考虑的选项。 例如:
;; ObjectDBX Example, by Lee McDonnell
(defun ODBX (fname / doc dbx lst flag)
(vl-load-com)
(vlax-for doc (vla-get-Documents (vlax-get-acad-object))
(and (eq (strcase (vla-get-fullname doc)) (strcase fname))
(setq dbx doc)))
(and (not dbx) (setq flag t)
(setq dbx
(vlax-create-object
(if (< (setq acVer (atoi (getvar "ACADVER"))) 16)
"ObjectDBX.AxDbDocument"
(strcat "ObjectDBX.AxDbDocument." (itoa acVer))))))
(cond ((and flag
(vl-catch-all-error-p
(vl-catch-all-apply 'vla-open
(list dbx fname))))
(princ (strcat "\n** Error Opening: " (vl-filename-base fname) " **")))
(t
(vlax-for lay (vla-get-Layouts dbx)
(setq lst (cons (vla-get-name lay) lst)))))
(ObjRel (list dbx)) (gc) (gc)
lst)
;; Release Objects ~ Requires List of Variables
(defun ObjRel (lst)
(mapcar
(function
(lambda (x)
(if (and (eq (type x) 'VLA-OBJECT)
(not (vlax-object-released-p x)))
(vl-catch-all-apply
'vlax-release-object (list x))))) lst))
(defun c:test ( )
(odbx (getfiled "select" "" "dwg" 16)))
非常好,谢谢你,李我试了几次才弄明白发生了什么,但我想我明白了。我必须进一步研究ObjectDBX以获得更完整的理解。
再次感谢。^ 很乐意帮忙伙计 我不知道如何链接到另一个帖子,所以我从patric_35的另一个帖子中删除了这个帖子。
这会让你朝着正确的方向前进
(defun c:lstdwg(/ dirbox Ouvrir_dessin_dbx rep lst fic dbx lay)
(defun dirbox(/ cdl rep)
(if (setq cdl (vlax-create-object "Shell.Application"))
(progn
(and (setq rep (vlax-invoke cdl 'browseforfolder 0 "Choose a directory" 512 ""))
(setq rep (vlax-get-property (vlax-get-property rep 'self) 'path))
)
(vlax-release-object cdl)
)
)
rep
)
(defun Ouvrir_dessin_dbx(dwg / dbx doc lan)
(vl-load-com)
(setq dwg (findfile dwg))
(vlax-for doc (vla-get-documents (vlax-get-acad-object))
(and (eq (strcase (vla-get-fullname doc)) (strcase dwg))
(setq dbx doc lan T)
)
)
(or dbx
(progn
(if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
(setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
(setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))))
)
(vla-open dbx dwg)
)
)
(list dbx lan)
)
(vl-load-com)
(if (setq rep (dirbox))
(if (setq lst (vl-directory-files rep "*.dwg" 1))
(foreach fic lst
(if (setq dbx (ouvrir_dessin_dbx (strcat rep "/" fic)))
(progn
(princ (strcat "\n Working in " fic))(princ)
(vlax-for lay (vla-get-layouts (car dbx))
(princ (strcat "\n\t\tLayout : " (vla-get-name lay)))(princ)
)
(or (cadr dbx)(vlax-release-object (car dbx)))
)
(princ (strcat "\n Can't read file " fic))
)
)
(alert "No dwg's File")
)
)
(princ)
)
谢谢JohnM。我也会好好看看的。^。^ 作为该问题的增编。有没有vla方法可以复制布局?我不想让命令行闪开。我知道怎么做。任何帮助都将不胜感激。 我想可能是复制方法,但这是我认为唯一的设置 我将查看vla add以创建一个新的布局选项卡,然后使用ssget获取旧对象并复制以将其放入新选项卡
页:
[1]
2