Message 1 of 6
Help in lisp for bind dwg
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello 🙂
I am trying to code a lisp to bind xrefs of several dwgs.
My code is this:
(defun c:XBD ()
(setvar "FILEDIA" 0)
(setvar "SDI" 1)
(setq dwgl (LM:directoryfiles "C:\\Users\\usr\\Desktop\\New folder" "*.dwg" nil))
(foreach dwg dwgl
(c:PD dwg)
)
;(setvar "FILEDIA" 1)
;(setvar "SDI" 0)
(princ)
)
(defun LM:directoryfiles ( dir typ sub )
(setq dir (vl-string-right-trim "\\" (vl-string-translate "/" "\\" dir)))
(append
(mapcar '(lambda ( x ) (strcat dir "\\" x))
(vl-directory-files dir typ 1))
(if sub
(apply 'append
(mapcar
'(lambda ( x )
(if (not (wcmatch x "`.,`.`."))
(LM:directoryfiles (strcat dir "\\" x) typ sub)))
(vl-directory-files dir nil -1))))))
(defun c:PD (dwgp)
(command "_.OPEN" dwgp)
(foreach ln (layoutlist)
(c:PLN ln)
)
;(setvar "FILEDIA" 1)
;(setvar "SDI" 0)
(c:DP dwgpath)
(command "_.close" "y")
(c:CP)
)
(defun c:PLN (LN)
(cond
((or (= LN "Layout2") (= LN "Layout1"))
(command "-LAYOUT" "_d" LN)
)
(T
)
)
)
(defun c:CP ( / )
(setvar "PUBLISHALLSHEETS" 0)
(setvar "FILEDIA" 0)
(setvar "CMDDIA" 0)
(command "_.PUBLISH")
(setvar "FILEDIA" 1)
(setvar "CMDDIA" 1)
)
(defun c:DP (dwgpath)
(command "_purge")
(command "_.QSAVE")
(command "_.CLOSE")
)
My current issues:
- I do know how to delete unreferenced or missing xref's for each drawing;
- I cannot make publish command work (using the current settings);
- I cannot make it work for all files. Once it opens the first file. it stops.
Also it only works on a blank project without changes...
Can someone help me please?
Many thanks 🙂