Here I have added some bugs in AutoCAD I have run into and when possible a workaround for it as well.
- Q: I get the following error:
"FATAL ERROR: Unhandled Access Violation Reading 0x0004 Exception at 3009fd10h"
A: This is related to objects from ADT in the drawing. It might also be in connection with use of dbConnect. It could be either visual or not visual ADT objects within the drawing. To fix the drawing run RECOVER. Then -WBLOCK using *.
- Q: When using TRIM or EXTEND I get the following error:
"FATAL ERROR: Unhandled Access Violation Reading 0x0000 Exception at 892a7ch".
A: (Fixed in 2004) This occurs when there is an xref with custom arx-objects (could be from ADT, MDT or some 3:rd party application) that you try to trim to and you don't have that application installed or an Object Enabler for it. There is an error in AutoCAD's TRIM and EXTEND code in which it doesn't handle trimming or extending against a proxy in an xref properly. Workaround is to draw a temporary object and trim or extend to that one instead of the one inside the xref.
- +OPTIONS default value doesn't work correctly. (Found in 2002 and is still there in 2006)
Enter the command +OPTIONS and press enter you would suppose to get to the first tab but you comes to the second. To solve this you have to enter 0 as the Tab index to get it correct.
- When creating a PDF with Adobe PDF Writer there might be problems if you're using TTF-fonts. You can notice the bug if you have TTF-text in modelspace and in paperspace having a viewport that clips the text. The text doesn't event have to be clipped, just close to the edge to be invisible in the PDF-file. Solution is to use Distiller instead.
- Sometimes Adobe PDF Writer can crop/cut TTF-font-text even in paperspace. Solution is to use Distiller instead.
- Q: True Type fonts plot beyond boundary of floating viewport when plotting layout. This only affects True Type Fonts.
A: This might happen with some HP and OCE plotters. http://support.autodesk.com/getdoc.asp?id=TS47944
- If you create a connection with dbConnect to a SQL Server you will run into problems if the table name is starting with numbers. Prefix the table name with a letter and it will work better.
- Q: I have freestanding labels, linked to a database, in a drawing containing multiple lines of text
(Description, Part Number, etc..). The labels are setup to be a specific width (i.e. 3").
Is there a way to maintain the width of the labels when they are reloaded or can you
programmatically restore certain properties of the label (i.e. the width) after reloading the label.
A: After you reload, open the label edit dialog box and press OK. - Q: The scenario is the following. I have an Access 97 database with values that is not showed correctly with
dbConnect. To reproduce it make a simple database with a table with values in a series
like this: 0.01,0.02,0.03,...When looking at the values in Data View of dbConnect the values shows up
like below:
0.01,2.9999999999999999E-2,4.0000000000000001E-2,....,0.10000000000000001,
etc.
A: dbConnect is just reporting the number that Access stores. Access is storing the number in industry-standard binary form, which entails conversion from and to the decimal numbers people keep insisting on using. Many numbers which are easily represented exactly in decimal form are infinitely repeating decimals in binary form and cannot be represented exactly in a finite number of binary digits. When you convert such a number from decimal to binary and than back again, what you get out is not exactly what you put in. The ultimate problem lies in the fact that you're using a binary digital computer. At http://www.fmsinc.com/tpapers/math/ it's described in detail.
There is a bug in AutoCAD 2002 (fixed in AutoCAD 2004) that don't let you save changes to the registry by code. According to an Autodesk developer: "Looking at the code, we only save these settings via the Options dialog, closing down AutoCAD, or when we close all documents and enter a "zero-doc" state."
You will notice the problem by using any API command (Visual LISP or VBA) that should save the settings to the registry profile.
This workaround solves the problem. Run this code below before exporting a profile or setting it current or something like that by code, otherwise many setting will not be saved.
1) (getenv "Toolbars\\ACAD.TB_zoom")
2) Move the toolbar "zoom" manually
3) (getenv "Toolbars\\ACAD.TB_zoom")
4) Nothing happens
5) (startapp "wscript" "R:/OptionsClose.vbs")
6) (getenv "Toolbars\\ACAD.TB_zoom")
7) Now it works and you can see that the changes where saved to the registry!
But the above code will not work within one Lisp/VBA session since Options command can't be called transparently. The external code has to end with calling the rest of the internal code.
Below is an example how to do it from within VBA code:
Public Sub subExportProfile() Shell "wscript R:\OptionsClose.vbs" End Sub Public Sub subImportProfile() Dim preferences As AcadPreferences Dim currActiveProfile As String Dim strProfileToImport As String Set preferences = ThisDrawing.Application.preferences currActiveProfile = preferences.Profiles.ActiveProfile preferences.Profiles.ExportProfile currActiveProfile, _ "r:\TestProfile.arg" strProfileToImport = "TestProfile" On Error Resume Next preferences.Profiles.DeleteProfile strProfileToImport preferences.Profiles.ImportProfile strProfileToImport, _ "r:\TestProfile.arg", True preferences.Profiles.ActiveProfile = strProfileToImport End Sub
Save the following code to a vbs file named OpenAndCloseOptions.vbs or you can make an exe-file in VB of it.
' Start from AutoCAD with ' (startapp "wscript" "r:/OptionsClose.vbs") ' or from VBA with Shell "wscript R:\OptionsClose.vbs" On Error Resume Next Set AcadApp = GetObject(, "AutoCAD.Application") Set AcadDoc = AcadApp.ActiveDocument AcadApp.Visible = True Set WshShell = CreateObject("WScript.Shell") WshShell.AppActivate AcadApp.Caption WshShell.SendKeys "OPTIONS ", True WshShell.SendKeys "{Esc}", True ' Call the rest of the VBA code to continue WshShell.SendKeys "{(}vl-vbarun ""subImportProfile""{)} ", True
I got a problem with the dialog boxes where AutoCAD 2002 and AutoCAD LT 2002 browses for files. It took more time than before and for folders with hundreds of files it took forever. It was so slow.
I checked with File Monitor from www.systeminternals.com and found the following. Compared to a PC where this problem where nonexistent AutoCAD where not reading the file stream information like SummaryInformation on each file in the folder.
4809 0.01369895 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg: Raec25ph4sudbf0hAaq5ehw3Nf: $DATA FILE NOT FOUND Attributes: N Options: Open 4810 0.01348607 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: {4c8cc155-6c1e-11d1-8e41-00c04fb9386d}: $DATA FILE NOT FOUND Attributes: N Options: Open 4811 0.01341148 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4812 0.01337544 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: Docf_SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4813 0.01347238 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4814 0.01371934 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: Docf_SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4815 0.01354194 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4816 0.01362073 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: Docf_SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4817 0.01338829 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: DocumentSummaryInformation: $DATA FILE NOT FOUND Attributes: N Options: Open 4818 0.01355787 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: Docf_DocumentSummaryInformation: $DATA FILE NOT FOUND Attributes: N Options: Open 4819 0.03258022 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4820 0.01330169 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: Docf_SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4821 0.01346875 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4822 0.01358357 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: Docf_SummaryInformation:$DATA FILE NOT FOUND Attributes: N Options: Open 4823 0.02074817 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: SebiesnrMkudrfcoIaamtykdDa: $DATA FILE NOT FOUND Attributes: N Options: Open 4824 0.01414593 acad.exe:1376 IRP_MJ_CREATE R:\4108\003.dwg\: Docf_SebiesnrMkudrfcoIaamtykdDa: $DATA FILE NOT FOUND Attributes: N Options: Open
Solution at last!
I hunted this down. I don't know what else this setting is for but by changing it everything works fine. Do you know what this byte do?
Set the two-digit value in the 17:th byte to 00. Many of the other bytes are controlled by settings that is controlled via Explorer > Tools > Folder Options > View.
Observe that you have to manually change this one byte in REGEDIT. You have to restart AutoCAD to have the effect.
Correct key below:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer] "ShellState"=hex:24,00,00,00,20,28,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ,\ 01,00,00,00,0a,00,00,00,00,00,00,00,00,00,00,00
Erroneous key below:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer] "ShellState"=hex:24,00,00,00,73,a8,00,00,00,00,00,00,00,00,00,00,05,00,00,00 ,\ 01,00,00,00,0a,00,00,00,00,00,00,00,00,00,00,00
Update: the bug still exists in AutoCAD 2004. Latest news is that I cannot replicate it. It might been fixed in a Service Pack.
I can't get the all different values extracted from the attributes.
I would like to have the three values STND-N-YY-1015;STND-N-YY-1010;STND-N-YY-1011 extracted.
The result below means nothing to me. How can it? I don't know in what drawing 'STND-N-YY-1010' comes from and the value 'STND-N-YY-1011' isn't showed at all, except as a number included in row 1. But that value shows 'STND-N-YY-1010'.
Block Name;Count;Attribute;AttributeValue
BLANKETTA4S;2;DN;STND-N-YY-1010
BLANKETTA4S~F:\try\STND-N-YY-1015-0.dwg;1;DN;STND-N-YY-1015
The result below looks more correct in my eyes then.
I get the attribute DN with it's value on each drawing. But this result doesn't come from EATTEXT
Block Name;Count;Attribute;AttributeValue
BLANKETTA4S~F:\try\STND-N-YY-1015-0.dwg;1;DN;STND-N-YY-1015
BLANKETTA4S~F:\try\STND-N-YY-1010-0.dwg;1;DN;STND-N-YY-1010
BLANKETTA4S~F:\try\STND-N-YY-1011-0.dwg;1;DN;STND-N-YY-1011
Autodesk answer on the above bug was:
"The reason why the CSV file looked something strange is because the same Block Name is existed in several files. So the same Block Name after the second file will append the filename at the end of the Block Name with a '~' in between. This is the behavior of the design for this command."
Another problem I have in a Swedish environment is that XLS-file from EATTEXT creates everything in one column instead of multiple ones.
Conclusion is that EATTEXT is useless for at least my needs.
Update: Unfortunately this was not making it to be solved for AutoCAD 2004 or AutoCAD 2005. But for AutoCAD 2006 it's almost solved. Everything seems to work well except it's not possible to get the file path and name extracted.