What entities support a non-uniform scale matrix?

By Gopinath Taget

AutoCAD has a number of entity types and you might wonder which entities support non-uniform scaling.

As a general rule, the AutoCAD built-in entity classes for entity types that existed before R13 (such as AcDbCircle, AcDbLine, AcDbArc, AcDb2dPolyline, etc.) require that the transformation matrix represent a uniformly scaling orthogonal transformation (if it is not, then Acad::eCannotScaleNonUniformly will be returned). Other AutoCAD built-in classes typically does not have this restrictions.

Also, here is more specific information on commonly used AutoCAD entities:

The following are entities that have a scaling restriction:

AcDb2dPolyine, AcDb3dPolyine, AcDbDimension and derived classes, AcDbArc, AcDbCircle, AcDbBlockReference, AcDbMInsert, AcDbFace, AcDbLine, AcDbPloyline, AcDbPoint, AcDbPoint, AcDbHatch, AcDbShape, AcDbText and derived classes, AcDbTrace, AcDbViewport, AcDbRegion, AcDb3dSolid, and AcDbBody.

The entities that support non-uniform scale matrix are:

AcDbLeader, AcDbMLine, AcDbMText, AcDbOle2Frame, AcDbPloyFaceMesh, AcDbPolygonMesh, AcDbRay, AcDbXline, AcDbFcf, AcDbSolid, AcDbEllipse, AcDbSpline, AcDbImage


Comments

One response to “What entities support a non-uniform scale matrix?”

  1. Why can I scale a block non-uniformly using the Insert Dialog Box, but not through the API?

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading