Daniel Bull Posted May 5, 2009 Share Posted May 5, 2009 Hi there, Currently I'm facing a big problem as below: 1. I xrefed 5 file to a main drawing, say, A, B, C, D, E to Main.dwg 2. I opened Main.dwg in AutoCAD 2008, edited A.dwg via "refedit", then saved it via "refclose". 3. One of my workmates opened Main.dwg in AutoCAD 2005. (We always save dwg files in AutoCAD 2004 mode, so it works.) He tried to edit A.dwg via "refedit" but failed. it came the error alert as "Object reference missing: AcDbXrecord, to AcDbDictionary". 4. He tried B.dwg and it worked. But when I opened B.dwg via Autocad 2008 then "saveas" it to 2004 mode, He failed to "refedit" it. 5. We tried for several times. then it is clear that once open a dwg file via 2008, it can't be refedited in 2006 or 2005. Are there anyone else who have had similar problems? Any comment is totally welcomed... Quote Link to comment Share on other sites More sharing options...
Tiger Posted May 5, 2009 Share Posted May 5, 2009 When you say that you open the dwg's, do you mean via Open? or via Ref-edit? I can imagine that when you do Refedit and Refclose and save the X-ref that way, then AutoCAD save it as 2008-version (2007 actually but same thing). try putting the error message in Google and search for it, might find something. Quote Link to comment Share on other sites More sharing options...
feargt Posted May 5, 2009 Share Posted May 5, 2009 http://usa.autodesk.com/adsk/servlet...linkID=9240617 I found this link when I did a search on this site for "Object reference missing: AcDbXrecord" I needed it last week or so. I first needed to do reg app purge to find out the names of the applications that had been used. Then edit the script file so that it works for each application name that you find after using the -purge Regapps command Quote Link to comment Share on other sites More sharing options...
Daniel Bull Posted May 5, 2009 Author Share Posted May 5, 2009 When you say that you open the dwg's, do you mean via Open? or via Ref-edit? I can imagine that when you do Refedit and Refclose and save the X-ref that way, then AutoCAD save it as 2008-version (2007 actually but same thing). try putting the error message in Google and search for it, might find something. ------------------------------------------------------------------ I've changed the configeration of AutoCAD 2008 so when a dwg file is closed it is always saved as 2004-version(It works even via "refedit"). So it is not the key to the problem. I guess that it might be a bug of AutoCAD 2008, so... Quote Link to comment Share on other sites More sharing options...
Daniel Bull Posted May 5, 2009 Author Share Posted May 5, 2009 I found this link when I did a search on this site for "Object reference missing: AcDbXrecord" I needed it last week or so. I first needed to do reg app purge to find out the names of the applications that had been used. Then edit the script file so that it works for each application name that you find after using the -purge Regapps command ------------------------------------------------------------------- Many thanks for the prompt reply. The only thing is that I've no idea about the "APPNAME" mentioned in the script file in the link. It would be even helpful if Feargt could say a little bite more about how to "do reg app purge to find out the names of the applications that had been used." BTW, the scription file is a solution to the ERR-Object reference missing: AcDbLayerTableRecord, to AcDbPlaceHolder, it might not work to the ERR-Object reference missing: AcDbXrecord, to AcDbDictionary. Quote Link to comment Share on other sites More sharing options...
feargt Posted May 5, 2009 Share Posted May 5, 2009 Firstly it should work for you..... Secondly do the following on the command line Type "-purge" enter Type "R" enter Type "*" enter Type "Y" eneter Autocad will then return the name of any Regappl (these are names of other applications which were used in the creation of the drawing ie. another software may have created the drawing and it was exported to a dwg file) You need to take a note of each of the names that Autocad returns so that you can then edit the script file. I have attached the script file that I required recently. In it you will see that I have replaced the term "Appname" from the original script file as found in the link with the actual names that I wanted. An example is "ACAD_PSEXT" instead of Appname In my case I had to adjust the script file for 4 different types of "Appname" ;;;Start of Script file ;;;Removes APPNAME associated with Layers created by use of later release of Autocad ( (lambda (/ lay ent) (while (setq lay (tblnext "layer" (not lay))) (if (and (setq ent (entget (tblobjname "layer" (cdr (assoc 2 lay))) '("ACAD_EXEMPT_FROM_CAD_STANDARDS"))) (assoc -3 ent) ) (entmod (subst '(-3 ("ACAD_EXEMPT_FROM_CAD_STANDARDS")) (assoc -3 ent) ent)) ) ) ) ) ( (lambda (/ lay ent) (while (setq lay (tblnext "layer" (not lay))) (if (and (setq ent (entget (tblobjname "layer" (cdr (assoc 2 lay))) '("ACAD_PSEXT"))) (assoc -3 ent) ) (entmod (subst '(-3 ("ACAD_PSEXT")) (assoc -3 ent) ent)) ) ) ) ) ( (lambda (/ lay ent) (while (setq lay (tblnext "layer" (not lay))) (if (and (setq ent (entget (tblobjname "layer" (cdr (assoc 2 lay))) '("AcadAnnoPO"))) (assoc -3 ent) ) (entmod (subst '(-3 ("AcadAnnoPO")) (assoc -3 ent) ent)) ) ) ) ) ( (lambda (/ lay ent) (while (setq lay (tblnext "layer" (not lay))) (if (and (setq ent (entget (tblobjname "layer" (cdr (assoc 2 lay))) '("AeccLand50"))) (assoc -3 ent) ) (entmod (subst '(-3 ("AeccLand50")) (assoc -3 ent) ent)) ) ) ) ) (alert "Layer states cleared.") ;;;End of Script file If need further assistance, just let me know. Quote Link to comment Share on other sites More sharing options...
Daniel Bull Posted May 6, 2009 Author Share Posted May 6, 2009 Many thanks. I can totally understand the script file, the only thing is that this is only for errors referring to layers, just as mentioned in the err discription"ERR-Object reference missing: AcDbLayerTableRecord, to AcDbPlaceHolder". It doesn't work for "ERR-Object reference missing: AcDbXrecord, to AcDbDictionary". I tried to open the main.dwg in AutoCAD 2008, "saveas" to AutoCAD 2004, then I opened it in AutoCAD 2006, unfortunately nothing better... Quote Link to comment Share on other sites More sharing options...
feargt Posted May 6, 2009 Share Posted May 6, 2009 This here is the message our users were getting. They were using Autocad 2006 in another office to edit drawings that we had produced in Autocad 2008 in our office. They got this message everytime they wanted to edit an xref via refedit Object reference missing AcDbXrecord to AcDbDictionary It worked for us in this case. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.