Message 1 of 1
Check status of AcDbRasterImage

Not applicable
01-26-2015
06:32 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi All, I am trying to repath all the xrefs (including "AcDbRasterImage") in multiple files using Objectdbx and autolisp I have more or less the following code for dealing with "AcDbRasterImage"s
; Set up our paths. (setq path_base "Q:\\Trial\\problematic2\\" ) (setq dbx_master ( vla-getinterfaceobject(vlax-get-acad-object) (strcat "ObjectDBX.AxDbDocument." (substr (getvar 'AcadVer) 1 2)) ) ) (foreach drawing (vl-directory-files path_base "*.dwg") (setq checkIfOpenMaster (vl-catch-all-apply 'vla-open (list dbx_master (strcat path_base drawing)))) (princ (strcat "Got File '" path_base drawing "\n")) (if (= (type checkIfOpenMaster)'VL-CATCH-ALL-APPLY-ERROR) (progn (princ (strcat "Master File '" (strcat path_base drawing) "' cannot be opened \n")) ) (progn ; Loop though each layer to search for xref in formats other than dwg (setq LOCol (vla-get-Layouts dbx_master)) (princ (strcat "Got layouts in File '" path_base drawing "\n")) (vlax-for LO LOCol (vlax-for Obj (vla-get-Block LO) (if (= (vla-get-ObjectName Obj) "AcDbRasterImage") (progn (princ "Inner Loop \n") (setq image (vla-get-ImageFile Obj)) (princ "Got Image \n") (setq imageName (vl-filename-base image)) (princ "Got Image Name \n") (setq imageExtn (vl-filename-extension image)) (princ "Got Image Extn \n") (vla-put-ImageFile Obj (strcat "./" path_processed_other_refs (vl-filename-base image) imageExtn)) ) ) ) ) ) ) )
But then it crashes when I encounter a file containing an image with status "Not Found". How can I implement the equivalent of vl-catch-all-apply....thing for that? Additionally, is there a general way for me to process these non-dwg format xrefs? For the batch of AutoCAD drawings that I have to process, there are also PDFs, .doc(x)s, .xls(x) etc as xrefs. Thanks a lot in advance.