

IJCAD 2018で.Net開発をしています。行列計算のメソッドが機能していないようなので質問させていただきます。再現コードはこちら。

[code]

    [CommandMethod("test", CommandFlags.Session)]
    public static void test()
    {
        var d = new double[]
        {
            0.99359167957899042,-0.11302908595313337,0,316450.20558663277,
            0.11302908595313337, 0.99359167957899042, 0, 37145.293791644872,
            0,0,1,0,
            0,0,0,1
        };
    
        var mat  = new Matrix3d(d);
        Debug.Print(mat.CoordinateSystem3d.ToString());
    
        // CoordinateSystem3dが計算前のままになっている
        var mat2 = mat.Transpose();
        Debug.Print(mat2.CoordinateSystem3d.ToString());
    }
    
[/code]

Matrix3d.Transpose()の実行結果でMatrix3d.CoordinateSystem3dの値が計算前のままになっているのですが、この問題を回避するにはどうしたらよいでしょうか？


CC BY-SA 4.0
2018-08-21T09:40:14.117
47698
2018-08-31T07:21:19.737
29128
question
.net ijcad
IJCADの.Netで行列計算が行われない


お疲れさまです。  
このAPIは不具合のようですね。

解決方法としては自前で以下のような手続きを行えば解決できます。

計算前行列---------------------------------  
Origin = (14,24,34),  
Xaxis = (11,21,31),  
Yaxis = (12,22,32),  
Zaxis = (13,23,33)

計算後行列---------------------------------  
Origin = (41,43,43),  
Xaxis = (11,12,13),  
Yaxis = (21,22,23),  
Zaxis = (31,32,33))


CC BY-SA 4.0
2018-08-31T07:21:19.737
47970
2018-08-31T07:21:19.737
29030
47698
answer