CaesarXXI
Guest
全てに
私はilogicルールの助けを必要とし、私は専門家ではありませんし、このコードは、ネット上で撮影した接着剤のコピーを作成し、少し直感を起こすことによって作られています。
最終結果は「環境」シートでファイルを保存する際に、特定のフォルダ(ルールで作成される)内のdwgにフラットモデルを自動保存し、「環境」シートでファイルを保存するときに、コマンドと一緒に「環境」で実行します。 モディフカ (ファイルを再オープンすることなく)
私はシートファイル内の3つのルールを作成し、最初の「マスター」はイベントトリガーでファイルを保存した後に活性化します。 このルールは、彼らが「環境」シートにいるかどうかを確認し、そしてその後、dwgをエクスポートするために結合ルールをロードする必要があります。 おそらくあなたは単一のルールですべてを行うことができますが、私の試みの間に、これは私の期待に最も近い結果です。
すべてがうまく機能し、私はシートでそれを望むが、私は軸線で変更しようとすると、私は間違いを取得し、新しい幾何学を保存しません。
エラーメッセージは次のようになります。

マスターの規則:
lamieraごとのregola:
一緒にルール:
解決策を教えてください。 お問い合わせ
私はilogicルールの助けを必要とし、私は専門家ではありませんし、このコードは、ネット上で撮影した接着剤のコピーを作成し、少し直感を起こすことによって作られています。
最終結果は「環境」シートでファイルを保存する際に、特定のフォルダ(ルールで作成される)内のdwgにフラットモデルを自動保存し、「環境」シートでファイルを保存するときに、コマンドと一緒に「環境」で実行します。 モディフカ (ファイルを再オープンすることなく)
私はシートファイル内の3つのルールを作成し、最初の「マスター」はイベントトリガーでファイルを保存した後に活性化します。 このルールは、彼らが「環境」シートにいるかどうかを確認し、そしてその後、dwgをエクスポートするために結合ルールをロードする必要があります。 おそらくあなたは単一のルールですべてを行うことができますが、私の試みの間に、これは私の期待に最も近い結果です。
すべてがうまく機能し、私はシートでそれを望むが、私は軸線で変更しようとすると、私は間違いを取得し、新しい幾何学を保存しません。
エラーメッセージは次のようになります。


Code:
マスター
odoc をドキュメント = thisdoc.document
odoc.documenttype = inventor.documenttypeenum.kpartdocumentobject と odoc.subtype = "{9c464203-9bae-11d3-8bad-0060b0ce6bb4}" の場合、
このアプリケーションのtypeofの場合。 Activeeditobjectはスケッチです
messagebox.show("部分ファイルでアクティブなスケッチを持っている"、"スケッチを停止")
その他
ilogicvb.runrule("salva_modellopiatto")
端 もし
'アセンブリファイル
odoc.documenttype = inventor.documenttypeenum.kassemblydocumentobject それから
odoc.componentdefinition.isiassemblyfactory なら、
messagebox.show("this is iassemblyfactory"、"i will stop")
フィードバック
odoc.componentdefinition.isiassemblymember なら、
messagebox.show("this is iassemblymember", "i will stop")
フィードバック
端 もし
このアプリケーションのtypeofの場合。 Activeeditobjectはスケッチです
messagebox.show("アセンブリファイルでアクティブにスケッチを持っている"、"スケッチを停止")
その他
ilogicvb.runrule("salva_modellopiatto_01")
端 もし
端 もし
Code:
'salva_modellopiatto さん
rusure = メッセージボックス.show( _)
"salva dwg dal modello piatto." ツイート
・vblf & "premere Yes per continuare" ツイート
& vblf & "premere no per abortire." ツイート
& vblf & "attenzione il cambio di spessore deve essere gestito a mano.", "ilogic - elabora dwg ファイル ",messageboxbuttons.yesno"
rusure = vbno なら、
フィードバック
端 もし
opath = このドキュメント.path
現在のスタイル = シートメタル.getactivestyle()
codice_regola = 右(currentstyle, 10)
num_part=iproperties.value("プロジェクト", "部品番号")
codiceinizio = left(num_part), 3) 3)
'specifica la cartella di destinazione per il dwg
ofolder = thisdoc.path と "\" と "laserdwg" と "\" と codiceinizio と "_" と codice_regola
'controlla se la cartella esiste, oppure la crea
system.io.directory.exists(ofolder)でなければ、
system.io.directory.createdirectory(フォルダ)
端 もし
' --inizio--- questa parte funziona solo per la parte lamiera e non で modifica da assieme
dim odoc = このアプリケーション.activedocument
dim ocompdef シートメタルコンポンデンプション = 何も
odoc.documenttype = documenttypeenum.kassemblydocumentobject の場合 それから
dim assemdoc として アセンブリドキュメント = odoc
'dim odoc = thisapplication.documents.open(iptpathname, false) と
ocompdef = assemdoc.componentdefinition.sheetmetalcomponentdefinition
odoc.documenttype = documenttypeenum.kpartdocumentobject それから
パートドキュメントをpartdocument = odoc
ocompdef = partdoc.componentdefinition'.sheetmetalcomponentdefinition
端 もし
'controlla se esiste un modello piatto; altrimenti lo crea
ocompdef.hasflatpattern = false の場合、
ocompdef.unfoldの
その他
ocompdef.flatpattern.edit は、
端 もし
' --fine--- questa parte funziona solo per la parte lamiera e non で modifica da assieme
' --inizio-- ソロ per lamiera
'controlla se esiste un modello piatto; altrimenti lo crea
'dim odoc をpartdocumentとして
'odoc = このアプリケーション.activedocument
'dim ocompdef シートメタルコンポンデント定義
'ocompdef = odoc.componentdefinition
'if ocompdef.hasflatpattern = false 以降
'ocompdef.unfold ディレクティブ
エルシー
'ocompdef.flatpattern.edit は、
もしも
' --fine-- - ラミララあたりのソロ
'settaggioのdwg
dim オプションリストをリスト(文字列) = new list(of string)()
optionlist.add("acadversion=2004")
optionlist.add("outerprofilelayer=0")
optionlist.add("interiorprofileslayer=0")
dim sout を文字列として
dim spath 文字列として
sout = "フラットパターンdwg?acadversion=2004&outerprofilelayer=iv_interior_profiles"_
+ "&invisiblelayers=iv_tangent;iv_feature_profiles_down;iv_arc_center;iv_bend;iv_bend_down;iv_tool_center;iv_tool_center_down;iv_feature_profiles;iv_feature_profiles_down"
各オプションリストで選択
sout = sout と "&" と sout = sout と "&" のオプション
次へ
dim sfname 文字列
sfname = ofolder & "\" & thisdoc.filename(false) & ".dwg"
'esporta il ファイル dwg
ocompdef.dataio.writedatatofile( sout, sfname) のファイル
dim osmdef として シートメタルコンポンデント定義
osmdef = odoc.componentdefinition
osmdef.flatpattern.exitedit は、
messagebox.show("dwg salvato in: "&sfname, "lamiera - esportazione completata!",messageboxbuttons.ok)
Code:
'salva_modellopiatto_01 さん
このapplication.activedocument.documenttype <> ドキュメントtypeenum.kassemblydocumentobject の場合、
messagebox.show("e' un'assieme") は、 (non fa niente, ma la regola viene eseguita; messaggio da eliminare), "controllo")
出口のサブ
端 もし
opath = このドキュメント.path
現在のスタイル = シートメタル.getactivestyle()
codice_regola = 右(currentstyle, 10)
num_part=iproperties.value("プロジェクト", "部品番号")
codiceinizio = left(num_part), 3) 3)
'specifica la cartella di destinazione per il dwg
ofolder = thisdoc.path と "\" と "laserdwg" と "\" と codiceinizio と "_" と codice_regola
'controlla se la cartella esiste, oppure la crea
system.io.directory.exists(ofolder)でなければ、
system.io.directory.createdirectory(フォルダ)
端 もし
' --inizio--- questa parte funziona solo per la parte lamiera e non で modifica da assieme
dim odoc = このアプリケーション.activedocument
dim ocompdef シートメタルコンポンデンプション = 何も
odoc.documenttype = documenttypeenum.kassemblydocumentobject の場合 それから
dim assemdoc として アセンブリドキュメント = odoc
'dim odoc = thisapplication.documents.open(iptpathname, false) と
ocompdef = assemdoc.componentdefinition.sheetmetalcomponentdefinition
odoc.documenttype = documenttypeenum.kpartdocumentobject それから
パートドキュメントをpartdocument = odoc
ocompdef = partdoc.componentdefinition'.sheetmetalcomponentdefinition
端 もし
'controlla se esiste un modello piatto; altrimenti lo crea
ocompdef.hasflatpattern = false の場合、
ocompdef.unfoldの
その他
ocompdef.flatpattern.edit は、
端 もし
' --fine--- questa parte funziona solo per la parte lamiera e non で modifica da assieme
' --inizio-- ソロ per lamiera
'controlla se esiste un modello piatto; altrimenti lo crea
'dim odoc をpartdocumentとして
'odoc = このアプリケーション.activedocument
'dim ocompdef シートメタルコンポンデント定義
'ocompdef = odoc.componentdefinition
'if ocompdef.hasflatpattern = false 以降
'ocompdef.unfold ディレクティブ
エルシー
'ocompdef.flatpattern.edit は、
もしも
' --fine-- - ラミララあたりのソロ
'settaggioのdwg
dim オプションリストをリスト(文字列) = new list(of string)()
optionlist.add("acadversion=2004")
optionlist.add("outerprofilelayer=0")
optionlist.add("interiorprofileslayer=0")
dim sout を文字列として
dim spath 文字列として
sout = "フラットパターンdwg?acadversion=2004&outerprofilelayer=iv_interior_profiles"_
+ "&invisiblelayers=iv_tangent;iv_feature_profiles_down;iv_arc_center;iv_bend;iv_bend_down;iv_tool_center;iv_tool_center_down;iv_feature_profiles;iv_feature_profiles_down"
各オプションリストで選択
sout = sout と "&" と sout = sout と "&" のオプション
次へ
dim sfname 文字列
sfname = ofolder & "\" & thisdoc.filename(false) & ".dwg"
'esporta il ファイル dwg
ocompdef.dataio.writedatatofile( sout, sfname) のファイル
dim osmdef として シートメタルコンポンデント定義
osmdef = odoc.componentdefinition
osmdef.flatpattern.exitedit は、
messagebox.show("dwg salvato in: "&sfname, " assieme - esportazione completata!",messageboxbuttons.ok)