找出文件被xreffed到哪些图纸
如果我有一个用作基本外部参照的图形。有什么方法可以找出哪些图形使用此基础图形作为外部参照?当我更改此“基础平面图”时,我正在尝试跟踪哪些图纸将会更改(我认为如果我们使用Projectwise,我可以做到这一点,但我正在尝试确定没有该软件是否可以做到这一点)
非常感谢
**** Hidden Message ***** 我一直在设计中心使用搜索功能。 将“查找”框更改为外部参照。 对我来说似乎工作正常。
我也看到其他人在VBA中这样做。 Andy,
感谢您的回复,我非常希望这对我有用,但我一定是做错了什么,因为如果我在下拉框中选择xrefs,我无法让它找到任何xrefs... 它还没有让我失望,你在按图示搜索吗? 这是我在@CADTutor;当时我得到了LCE的很多帮助。他说它仍在开发中,因为他正在尝试添加对图像/OLE/等的支持 " msg))
)
)
;----------------------------------------------------------
(defun FindXrefs (doc str / tempName tempList)
(vlax-for i (vla-get-Blocks doc)
(if
(and
(= (vla-get-IsXref i) :vlax-true)
(or
(wcmatch (strcase (setq tempName (vla-get-Name i))) (strcase str))
(= str "")
)
)
(setq tempList (cons tempName tempList))
)
)
tempList
)
;-------------------------------------------------
(defun Directory-Dia ( Message / sh folder folderobject result)
;; By Tony Tanzillo
;; Modified by Tim Willey
;; 16 Will let you type in the path
;; 64 Will let you create a new folder
(vl-load-com)
(setq sh
(vla-getInterfaceObject
(vlax-get-acad-object)
"Shell.Application"
)
)
(setq folder
(vlax-invoke-method
sh
'BrowseForFolder
(vla-get-HWND (vlax-get-Acad-Object))
Message
0 ; This is the bit number to change.
)
)
(vlax-release-object sh)
(if folder
(progn
(setq folderobject
(vlax-get-property folder 'Self)
)
(setq result
(vlax-get-property FolderObject 'Path)
)
(vlax-release-object folder)
(vlax-release-object FolderObject)
(if (/= (substr result (strlen result)) "\\")
(setq result (strcat result "\\"))
result
)
)
)
)
;----------------------------------------------------------------
(defun MultiSelect (Listof Message Toggle / DiaLoad tmpStr tmpTog tmpList)
(setq DiaLoad (load_dialog "MyDialogs.dcl"))
(if (new_dialog "MultiSelect" DiaLOad)
(progn
(start_list "listbox" 3)
(mapcar 'add_list Listof)
(end_list)
(if Message
(set_tile "text1" Message)
)
(if (not Toggle)
(mode_tile "toggle1" 1)
)
(mode_tile "listbox" 2)
(action_tile "accept"
"(progn
(setq tmpStr (get_tile \"listbox\"))
(if Toggle
(setq tmpTog (get_tile \"toggle1\"))
)
(done_dialog 1)
)"
)
(action_tile "cancel" "(done_dialog 0)")
(if (= (start_dialog) 1)
(progn
(if tmpStr
(setq tmpList (read (strcat "(" tmpStr ")")))
)
(if (= tmpTog "1")
(cons T tmpList)
tmpList
)
)
)
)
)
)
;----------------------------------------------------------------
(if
(and
(setq CkStr (getstring "\n Enter name to check for [*]: "))
(setq DirPath (Directory-Dia "Select directory to search for xrefs."))
(setq DwgList (vl-directory-files DirPath "*.dwg" 1))
(setq DwgList (vl-sort DwgList '(lambda (a b) ( " msg))
)
)
;----------------------------------------------------------
(defun FindXrefs (doc str / tempName tempList)
(vlax-for i (vla-get-Blocks doc)
(if
(and
(= (vla-get-IsXref i) :vlax-true)
(or
(wcmatch (strcase (setq tempName (vla-get-Name i))) (strcase str))
(= str "")
)
)
(setq tempList (cons tempName tempList))
)
)
tempList
)
;-------------------------------------------------
(defun Directory-Dia ( Message / sh folder folderobject result)
;; By Tony Tanzillo
;; Modified by Tim Willey
;; 16 Will let you type in the path
;; 64 Will let you create a new folder
(vl-load-com)
(setq sh
(vla-getInterfaceObject
(vlax-get-acad-object)
"Shell.Application"
)
)
(setq folder
(vlax-invoke-method
sh
'BrowseForFolder
(vla-get-HWND (vlax-get-Acad-Object))
Message
0 ; This is the bit number to change.
)
)
(vlax-release-object sh)
(if folder
(progn
(setq folderobject
(vlax-get-property folder 'Self)
)
(setq result
(vlax-get-property FolderObject 'Path)
)
(vlax-release-object folder)
(vlax-release-object FolderObject)
(if (/= (substr result (strlen result)) "\\")
(setq result (strcat result "\\"))
result
)
)
)
)
;----------------------------------------------------------------
(defun GetAllFiles (dir ext / FileList)
(if (/= (substr dir (strlen dir)) "\\")
(setq dir (strcat dir "\\"))
)
(if (setq tempList (vl-directory-files dir ext 1))
(setq FileList (append FileList (mapcar '(lambda (x) (strcat dir x)) tempList)))
)
(if (setq tempList (cddr (vl-directory-files dir "*" -1)))
(foreach i tempList
(setq FileList (append FileList (GetAllFiles (strcat dir i) ext)))
)
)
FileList
)
;----------------------------------------------------------------
(if
(and
(setq CkStr (getstring "\n Enter name to check for [*]: "))
(setq DirPath (Directory-Dia "Select directory to search for xrefs."))
(setq DwgList (GetAllFiles DirPath "*.dwg"))
(setq Opened (open (setq tempFile (strcat Dirpath "XrefFindReport.txt")) "w"))
(setq dbxApp
(if (< (atoi (setq oVer (substr (getvar "acadver") 1 2))) 16)
(vla-GetInterfaceObject (vlax-get-acad-object) "ObjectDBX.AxDbDocument")
(vla-GetInterfaceObject (vlax-get-acad-object) (strcat "ObjectDBX.AxDbDocument." oVer))
)
)
)
(foreach i DwgList
(if (vl-catch-all-error-p (vl-catch-all-apply 'vla-Open (list dbxApp i)))
(write-line (strcat "++ Error opening file: " i "\n") Opened)
(if (setq XrFound (FindXrefs dbxApp CkStr))
(progn
(write-line (strcat "- " i) Opened)
(foreach j XrFound
(write-line (strcat " " j) Opened)
)
(write-line "\n" Opened)
)
)
)
)
)
(prompt (strcat "\n Log file: " tempFile))
(*error* nil)
(princ)
)
这很光滑的蒂姆
页:
[1]