• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

カラーラインテーブル発明家

  • Thread starter Thread starter cavallo
  • Start date Start date

cavallo

Guest
お問い合わせ
カラーラインでボードを作る必要があります。 現在、ブラウザからコンポーネントを選択し、右側のボタンを使用して、プロパティから色を設定することによって進めます。 しかし、複数のビューでコンポーネントを持っている場合、私はそれらをすべて着色する必要があります, フィルターを使用しても少し長いです....より速い方法はありますか? ilogicを使用する方法がわかりません。
3dコンポーネントに何かを設定し、テーブルのカラーラインを見つけますが、できるかどうかはわかりません。 . . .
皆様のお越しをお待ちしております。
 
何世紀前に、私はこのマクロの動作方法に適応しました:
デザインビューを選択し、パターン色を「コピー」して、標準とは異なる場合は、黒色にします。 問題は、それが非常にかかる大きなアセンブリのために、ので、注意して使用し、軸線がいっぱいであれば、長い待ち時間の準備が整います。
とにかく(私に)作品です。
Code:
パブリックサブ associacolore()
' アクティブな描画文書を取得します。
ドロードドキュメントをドロードドキュメントとして
drawdoc = thisapplication.activedocument の設定

' は描画ビューを選択します。
dim ドロービュー として ドロービュー
set ドロービュー = thisapplication.commandmanager.pick() _
kdrawingviewfilter, "図面ビューを選択します。"

dim docdesc ドキュメント記述子として
docdesc = drawview.referenceddocumentdescriptor を設定する

'選択した図面ビューがアセンブリであることを確認します。
docdesc.referenceddocumenttype <> kassemblydocumentobject の場合、
msgbox 「選択したビューはアセンブリでなければなりません」
出口のサブ
端 もし

'アセンブリのコンポーネント定義を取得します。
アセンブリcomponentdefinition として asmdef
asmdef = docdesc.referenceddocument.componentdefinition

' 発生を処理し、トランザクションでラップする
「プロセス全体が単一のundo操作で元に戻すことができます。
トランザクションとしてダイムトランス
set trans = thisapplication.transactionmanager.starttransaction(_) をセットします。
ドロードック「図画の色を変える」

'すべての作業を行う再帰関数を呼び出します。
コール プロセスアセンブリ色(drawview、asmdef.occurrences)
トランスエンド
エンドサブ


プライベートサブプロセスアセンブリーカラー(drawview as Drawingview, _
コンポーネントとして発生します。
' 発生の現在のコレクションを通して反復します。
occ を componentoccurrence として薄暗くして下さい
dim opartとしてpartdocument

発生中の各occに対して
occ.suppressed = false の場合
'この発生が部分かアセンブリであるかどうか確認して下さい。
occ.definitiondocumenttype = kpartdocumentobject の場合、
'** 色を処理する部分です。

' 出現のレンダリング様式を得て下さい。
レンダースタイルとしての薄暗い色
stylesourcetypeenum としてソースコード型
カラー = occ.getrenderstyle(sourcetype)

レンダースタイルとして薄暗い材料色
opart = occ.definition.document を設定する

dim omaterial として materialasset
omaterial = opart.activematerial を設定する



'set Materialcolor = omaterial.appearanceasset.name
debug.print opart.displayname
debug.print "colore attivo:", opart.activeappearance.name
debug.print "coloremateriale:", omaterial.appearanceasset.name
' opart.activeappearance.name <> omaterial.appearanceasset.name がなければ、
occ.appearance.name <> omaterial.appearanceasset.name なら、
' は、後ほど使用するために、transientsobjects オブジェクトを取得します。
transientobjects として dim のtransobjs
transobjs の設定 = thisapplication.transientobjects

「レイヤーがこの色に存在するかを確認します。
層を層として薄暗くして下さい
レイヤー = ドロービュー.parent.parent.stylesmanager.layers

ドロードドキュメントをドロードドキュメントとして
set ドローク = ドロービュー.parent.parent.parent

エラーで次の再開
層として薄暗いcolorlayer
colorlayer=layer.item(color.name)を設定

もし err.number <> 0 それから
エラーのgoto 0
' はレンダースタイルの拡散色を取得します。
バイトとして赤を薄暗くする
バイトとして緑色を薄暗くして下さい
バイトとして青を薄暗くして下さい

' 拡散色である色のオブジェクトを作成します。
コールcolor.getdiffusecolor(赤、緑、青)
色として新しい色を薄くして下さい
set newcolor = transobjs.createcolor(赤、緑、青)

' 任意のレイヤーをコピーして名前を付けます
' のレンダースタイル。
colorlayer=layer.item(1).copy(color.name)を設定

' レイヤーの属性を色を使うように設定します。
' は固体ライン タイプおよび特定の幅を持っています。
colorlayer.color = 新しい色
colorlayer.linetype = kcontinuouslinetype
colorlayer.lineweight = 0.02
端 もし
エラーのgoto 0

' この発生に関連する曲線のすべてを取得します。
エラーで次の再開
ドローカブをドローカブとして
ドローカーブ = ドロービュー.drawingcurves(occ)
err.number = 0 の場合
エラーのgoto 0

'空のコレクションを作成します。
dim objcoll として objectcollection
objcoll = transobjs.createobjectcollection() の設定

' コレクションに曲線セグメントを追加します。
dim はデッサンカーブとして引くこと
ドローカブの各ドローカブのために
ドローカベスメントとしてのディムセグメント
ドローカーブの各セグメント セグメント
ログイン セグメントを追加
次へ
次へ

' すべてのセグメントのレイヤーを変更します。
呼出しdrawview.parent.changelayer(objcoll、colorlayer)
端 もし
エラーのgoto 0
その他

'それはアセンブリなので、その内容を処理します。
occ.suboccurrences.count の場合 > 0 それから
コール プロセスアセンブリ色(drawview、occ.suboccurrences)
端 もし
端 もし
端 もし
端 もし
次へ
エンドサブ
 
3dプロパティでテーブルレイヤーを関連付けることは可能ですか?
3dにプロパティを作成し、カラー要素を関連付けると、レイヤーに色だけ変更します。
autocadのようなビット...
 
3dからフィールドを選択するか、テーブルのグラフィックラインだけを回復することができますか?
お問い合わせ
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top