.NET でブロックに含まれる属性の値と位置を所得できるか試してみました。
属性値は AttributeReference.TextString Propertyで、位置は AttributeReference.Position Property で取得できました。
位置に関しては、ブロックが入れ子になっているときは、TransformBy Method で Matrix3d を使用してあげるとちゃんとした位置を取得できるようです。
サンプル コードでは、入れ子は 1 階層まで見るようになってます。また、ブロックに尺度が付いている場合は、X と Y が同じ尺度になっている場合にうまく行くようになっています。X と Y の尺度が違う時は、正しい場所を取得してくれないと思います。もし、X と Y の尺度が違う時も対応したいときは、別のマトリックスの指定をする必要があると思います。
サンプル コードは こちら です。
DLL は こちら です。
試してみた図面は こちら です。
0 件のコメント:
コメントを投稿