在 AutoCAD? .net api里,部分實體,像文字、屬性、插入塊等,是不支持非等比縮放的。
如需對AutoCAD中圖形進行xyz方向不等比縮放,則需進行額外的函數封裝。
選擇圖元,指定縮放基準點,scaleX = 0.5, scaleY = 3;// X軸縮放因子0.5倍,Y軸縮放因子3倍,數值也可人工指定。
效果如下:
?
附部分代碼如下:
創建不比例變換矩陣
/// <summary>/// 返回不等比例變換矩陣/// </summary>/// <param name="point">基點</param>/// <param name="x">x方向比例</param>/// <param name="y">y方向比例</param>/// <param name="z">z方向比例</param>/// <returns>三維矩陣</returns>public static Matrix3d GetScaleMatrix(this Point3d point, double x, double y, double z){var matdata = new double[16];matdata[0] = x;matdata[3] = point.X * (1 - x);matdata[5] = y;matdata[7] = point.Y * (1 - y);matdata[10] = z;matdata[11] = point.Z * (1 - z);matdata[15] = 1;return new(matdata);}