Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The following code reserves a specified number of object handle values in an OdDbDatabase , and then supplies a custom handle value for an entity that is added to the database:

...

When the Microsoft VC /MT static library version of DWGdirect is linked into an appliation application that uses the MFC Static Library (/MT configuration), the linker may issue errors described in the MS KB article Q148652: http://support.microsoft.com/default.aspx?scid=kb;[LN];Q148652.

This error occurs because TD_XXXX_Alloc.lib contains definitions for of the following functions:

  • odrxAlloc

  • odrxRealloc

  • odrxFree

  • operator new

  • operator delete

MFC provides its own versions of "new" and "delete", " thus causing the error.

This error can be resolved by not linking To resolve this error, do not link TD_XXXX_Alloc.lib into to the client application, and by instead including . Instead, include the following code somewhere in the client application:

...

Most likely you have the (/Zc:wchar_t) compiler option set. This causes wchar_t to be defined as its own type. Since the DWGdirect libraries are not built with this option, the linker is treating wchar_t (from your application) as a separate type from the one used to compile the DWGdirect libraries internally (there , where it is defined as unsigned short).If you remove this option from your language settings, the error

will go awayDisabling (/Zc:wchar_t) compiler option eliminates the error.

Working with DWG Files

When I convert a DWG 2004 file back to R15, why do my gradient fills disappear and other items look different, such as colors?

DWG 2004 files can store a direct color or an RGB value, which allows a single drawing to store millions of unique color values to be stored in a single drawing. DWG files from R15 files and earlier versions can only store a color table index, which is a number representing one of 255 possible colors. When saving you save a DWG 2004 file back as DWG R15 or earlier, you must map each RGB value must be mapped to the closest color table entry and stored as a color table index. As a result, the colors in the DWG R15 file may look bleak or dreary when compared to the original DWG 2004 file. DWG R15 files saved from AutoCAD 2004 exhibit have the same behavior.

Similarly, gradient fills from DWG 2004 gradient fills are not supported in DWG R15. When saving a hatch with a gradient fill to a DWG R15 file, the fill is converted to a solid fill using the first of the 2 two gradient colors.

MText in DWG 2004 files can might contain tabs tab and indentation values . These items that are not supported in DWG R15 and earlier files, so they will be , and therefore, are lost when saving from DWG 2004 back to these earlier versions. This loss can change the The formatting and appearance of MText may change.

Also note that Note: AutoCAD R14 supports only a single paper space layout , and it does not support lineweights (lineweights were added in , as lineweights are available starting with AutoCAD 2000).

Working with Drawings

How do I determine the drawing units (millimeters, inches, feet, or kilometers) of a drawing?

There are Any drawing stores a number of system variables stored in a drawing that are responsible for units and their display. The It is important to know the DWG version in which the system variables were introduced is important. Some As some DWG file versions do not store all of the system variables so if , loading an older file is loaded, assigns default values to the newer system variables are assigned default values.

MEASUREMENT is a read-only system variable that was introduced in DWG R14. This system variable controls hatch pattern and linetype files used in the drawing.

OdDb::MeasurementValue OdDbDatabase::getMEASUREMENT()

The Returned values returned are:

  • kEnglish — Uses files with ANSI Hatch and Linetype definitions (acad.pat and
    acad.lin).

  • kMetric — Uses files with ISO Hatch and Linetype definitions (acadiso.pat and acadiso.lin).

...

OdDb::UnitsValue OdDbDatabase::getINSUNITS()

The Returned values returned are:
kUnitsUndefined = 0
kUnitsInches = 1
kUnitsFeet = 2
kUnitsMiles = 3
kUnitsMillimeters = 4
kUnitsCentimeters = 5
kUnitsMeters = 6
kUnitsKilometers = 7
kUnitsMicroinches = 8
kUnitsMils = 9
kUnitsYards = 10
kUnitsAngstroms = 11
kUnitsNanometers = 12
kUnitsMicrons = 13
kUnitsDecimeters = 14
kUnitsDekameters = 15
kUnitsHectometers = 16
kUnitsGigameters = 17
kUnitsAstronomical = 18
kUnitsLightYears = 19
kUnitsParsecs = 20
kUnitsMax = kUnitsParsecs

...

AUNITS was introduced before DWG R12. It controls how angle values display the units for angle measurements (decimal degrees, degrees/minutes/seconds, or radians). This system variable affects only the display of values. API functions always return angles in radians.

...

NOTE: Altering the values of INSUNITS, LUNITS, or AUNITS does not effect any coordinates stored in the drawing. The contents of the drawing are not scaled.

Why

...

linetypes do not display when using OdDb3dPolyline?

Linetypes do not display for 3D polylines. In AutoCAD, OdDb3dPolylines (AcDb3dPolylines) always display with a SOLID linetype.

You can use OdDb2dPolyline or OdDbPolyline for planar polylines or OdDbLine for a single line segment.

Note that linetype : Linetype generation for planar polylines can be different. See OdDb2dPolyline::isLinetypeGenerationOn() and OdDbPolyline::hasPlinegen().

...

It depends. The rendering works differently in 2D wireframe and 3D render modes, as follows:

  • 3D render modes — The appearance depends on which of the two entities is closer to the camera. If the entities are in the same plane, the result is unpredictable.

  • 2D wireframe render mode — The appearance depends on the drawing order. By default, the entity that appears in the file first is rendered first. But this The order can be changed using OdDbSortentsTable methods. If The value of the SORTENS system variable determines whether OdDbSortentsTable is taken into account or not depends on value of the SORTENTS system variable.

The Sort Table is returned by OdDbBlockTableRecord::getSortentsTable() for Layout blocks.

Note that : OdDbBlockTableRecord::newIterator() can return a "sorted" iterator, which takes into account the Sort Table.