sono finito per caso に questo ポスト に quanto stvo cercando 来る fare girare una regola dall'assieme.
io ho trovato questa soluzione al post で アンケート:
e' una regola ilogic (interna o エステルナ)
snippet は、現在の部分のドキュメントを取得します。
パートドキュメントをpartdocument = thisdoc.document
' はトランジェントのオブジェクトとトランジェントのオブジェクトを取得します。
transientbrep = thisapplication.transientbrep として dim のtransbrep
トランスジェントメトリック = このアプリケーション.transientgeometry
' は 1 つの一時的な表面ボディに部品のすべてのボディを結合します。
表面体としてのダイムコンバイドボディ = 何も
各サーフェスボディはpartdoc.componentdefinition.surfacebodiesのサーフェスボディとして
Combinbodiesが何もないならば、
Combinbodies = transbrep.copy(サーフボディ)
その他
transbrep.doboolean(combinedbodies, サーフボディ, booleantypeenum.kbooleantypeunion)
端 もし
次へ
' 部分のすべての体の指向のミニナムの範囲箱を得て下さい。
'注記: "指向minimumrangebox" は、発明者 2020.3/2021 に追加されました。
dim minbox を 指向箱 = 結合ボディ.指向minimumrangebox
' 最小範囲ボックスの各側面の長さを取得します。
dim dir1 をダブル = minbox.directionone.length
dim dir2倍 = minbox.directiontwo.length
dim dir3 をダブル = minbox.directionthree.length
' は長さを文書の長さの単位に変えます。
dim uom を unitofmeasure = partdoc.unitsofmeasure
dir1 = uom.convertunits(dir1, "cm", uom.lengthunits)
dir2 = uom.convertunits(dir2, "cm", uom.lengthunits)
dir3 = uom.convertunits(dir3、"cm"、uom.lengthunits)
'最小から最大に長さをソートします。
{dir1, dir2, dir3 から新しいリスト(ダブル)として dim の長さ
長さ.ソート
倍 = 長さ(0) として薄暗い長さ
ダブル = 長さ(1)
ダブル = 長さ(2)
' 指向の範囲の箱を表すために表面を作成します。...
' 指向の rangebox の次元の開始箱を作成して下さい。
ボックス = transgeom.createbox()
dim boxmaxpoint as point = transgeom.createpoint(minbox.directionone.length、minbox.directiontwo.length、minbox.directionthree.length)
startbox.extend(boxmaxpoint) リリース
' 変換行列を作成し、ボックスを正しい位置/方向に移動します。
行列 = このアプリケーション.transientgeometry.creatematrix
transmatrix.setcoordinatesystem(minbox.cornerpoint、minbox.directionone.asunitvector.asvector、minbox.directiontwo.asunitvector.asvector、minbox.directionthree.asunitvector.asvector)
' は範囲箱のための表面ボディを作成します。
サーフェスボディ = thisapplication.transientbrep.createsolidblock(startbox)
'は正しい位置/オリエンテーションに範囲箱の表面ボディを変形させます。
このアプリケーション。transientbrep.transform(minboxsurface、transmatrix)
' スクリーンの表示範囲箱。
トランザクション = thisapplication.transactionmanager.starttransaction(partdoc, "displayrangebox")
クライアント・グラフィックスとしてのシンフォグラフィック
お問い合わせ
cgraphics = partdoc.componentdefinition.clientgraphicscollection.add("指向rangebox")
グラフノード = cgraphics.addnode(1)
サーフェスグラフィックス = Surfacesnode.addsurfacegraphics(minboxsurface)
アセットとしてのダイムターゲアランス
お問い合わせ
targetappearance=partdoc.assets.item("clear - blue")
キャッチ
アセット = thisapplication.assetlibraries.item("314de259-5443-4621-bfbd-1730c6cc9ae9").appearanceassets.item("invgen-001-1-2") 'クリア - ブルー"
targetappearance = sourceappearance.copyto(partdoc) の処理
エンドトライ
Surfacesnode.appearance = ターゲット出現
このアプリケーション。activeview.update
' 最低の rangebox のサイズのメッセージを表示して下さい。
messagebox.show("dimensioni:"&")
minlength.tostring("#####") と "x "&midlength.tostring("######") と "x "&maxlength.tostring("#######")、
"profilato"、メッセージボックスbuttons.ok、メッセージボックスicon.information
ついに
'画面から範囲ボックスを削除します。
トランスアラウンド
このアプリケーション。activeview.update
エンドトライ
'scrive la misura massima nelle iproprierties del modello.
iproperties.value("custom", "lunghezza") = maxlength.tostring("#.##")
una proprietà Personalizzata la lunghezza で aa 罰金 scrive で