Python Script ノードで intersectwith 関数は使えないでしょうか。

Python Script ノードで intersectwith 関数は使えないでしょうか。

buf_fa
Advocate Advocate
1,126件の閲覧回数
9件の返信
メッセージ1/10

Python Script ノードで intersectwith 関数は使えないでしょうか。

buf_fa
Advocate
Advocate

intersectwith 関数を使おうとすると、エラーになります。

 

                points = []
                line = Line3d(obj.StartPoint, obj.EndPoint)
                intersection_result = line.IntersectWith(plane)

0 件のいいね
解決済み
1,127件の閲覧回数
9件の返信
返信 (9)
メッセージ2/10

katsuhisa.shibataJUJVG
Collaborator
Collaborator

planeは何クラスで,エラーはどういうエラーでしょうか。

メッセージ3/10

buf_fa
Advocate
Advocate

コメントありがとうございます。

planeのクラスはよくわかっていません。

エラーは No method match ・・・でした。

もう少し、勉強してみます。

0 件のいいね
メッセージ4/10

katsuhisa.shibataJUJVG
Collaborator
Collaborator
解決済み

print(type(plane))

してみてください。

AutoCADのヘルプ で リソース の下の 開発用ドキュメント を押し,右上の日本語を英語にして Managed .NET/ObjectARX/JavaScript の Managed .NET の下の Reference Guide を押します。自分はLine3dというオブジェクトを知りませんでしたが,Autodesk.AutoCAD.Geometry Namespaceにありますね。IntersectWith MethodはLine3dクラスにはなく,一つ上のLinearEntity3dクラスですね。変種が4つありますが,引数がplaneですから型はPlanarEntityです。PlanarEntityクラスを見ると下にBoundedPlaneとPlaneがありますので,IntersectWith Methodの引数の型はPlanarEntity,BoundedPlane,Planeの3つのうちのどれかでなければならない,ということになります。

メッセージ5/10

buf_fa
Advocate
Advocate

ありがとうございます。少なくとも関数が使えると確信いたしましたので、少し粘って勉強致します。

 

メッセージ6/10

katsuhisa.shibataJUJVG
Collaborator
Collaborator

ここはCIMフォーラムなので,ひょっとして,で。

TINサーフェスと点があり,点からサーフェスに向かってある方向に進んでいくとどこかでTINサーフェスに当たりますが,その点を求めたい,ということではないでしょうか。

Civil 3D関係のAPIは Civil 3Dのヘルプ のAPI Reference Guideですが,TINサーフェスはAutodesk.Civil.DatabaseServices NamespaceのTinSurface Classで,GetIntersectionPoint Methodがそれです。

メッセージ7/10

buf_fa
Advocate
Advocate

ありがとうございます。

今回の目的はちょっと違いましたが、大変参考になります。

0 件のいいね
メッセージ8/10

buf_fa
Advocate
Advocate

解決としましたが、添付のpython script の交点座標があっていません。

どこがおかしいでしょうか?

0 件のいいね
メッセージ9/10

katsuhisa.shibataJUJVG
Collaborator
Collaborator

確かに変ですね。

2Dだと正しく出ました。

メッセージ10/10

buf_fa
Advocate
Advocate

返信ありがとうございます。

2dで計算する事にします。

0 件のいいね