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

マクロ vba の自動実行

  • Thread starter Thread starter Catafratto
  • Start date Start date

Catafratto

Guest
voglio condividere la soperta che ho fatto oggi: come far eseguire le macro vba automaticamente.
in passato, si poteva farlo, ma nelle ultime versioni di inventor la possibilità era stata rimossa (in vecchi post la cosa è stata ampiamente trattata) ed introdotto ilogic che offre molte possibilità ma per il quale sostanzialmente bisogna riscrivere quello che prima funzionava perfettamente. non mi ero però mai accorto di questo comando:

inventorvb.runmacro("progettoapplicazione", "modulo1", "testautorun")

che permette a ilogic di far "partire" la macro "testautorun" (nome della macro preferita) contenuta nel "modulo1" di "progettoapplicazione" (alt-f11 per andare all'editor vba)

in pratica si può creare una regola ilogic, attivata dal trigger di evento preferito (es. prima del salvataggio), che fa partire una o più macro, come quella che esportava pdf/dxf/dwg o quella delle scale in cartiglio tanto per capirsi.

la cosa può essere davvero utile per recuperare vecchie utility che erano automatiche e non lo sono più, senza bisogno di rifare tutto.

spero la cosa sia utile a qualcuno e se la cosa era già nota... ignorate il post!
buon venerdì a tutti!
 
ciao, non era per niente nota, ti ringrazio per la dritta, a breve proverò il sistema :)

grazie!
 
e' un artificio per attivare una qualunque macro vba in seguito ad un evento, la cosa migliore è fare un test
 
istruzione "veloce":
gestione>aggiungi regola
metti il nome che vuoi, si apre la finestra dove copi la riga (con le modifiche che servono in base al modulo e nome macro) postata all'inizio

trigger di evento > scegli quali eventi attivano la regola

per descrizioni più dettagliate serve più tempo

la regola purtroppo è legata al file, quindi se il test fa quello che vuoi si può mettere nei template per i pezzi nuovi ma per la roba vecchia è più un problema
 
catrafatto, ho un problema!

ho creato la regola e funziona tutto bene però mi da un errore.

creodelle lamiere, a ogni modifica lo sviluppo si modifica da solo nelle ipropietes grazie alla regola...e fin qui tutto bene!...il problema nasce quando sono in un assieme, inserisco le mie lamiere, salvo, chiudo e mi esce l'errore!

esce l'errore "run-time, faccio "debug" e mi manda alla macro dello sviluppo con evidenziate le righe che sarebbero sbagliate (penso)...cosa può essere?

allego degli screenshot.

grazie

errore.JPG
run time.JPGerrore FlatPattern.JPG
 
mah!
chi può dirlo... :redface:

la segnalazione di errore che ricevi mi pare indichi che la macro sia attivata quando non c'è niente di aperto...

a che evento/i hai legato l'esecuzione della regola ilogic? forse a "chiudi il documento" (potrebbe spiegare il problema)
la regola ilogic è presente solo nelle lamiere?
 
si, l'ho fatto solo nella lamiera e ho anche impostato "chiudi il documento"

pensi che vada fatto in tutte le tipologie di file? lamiera, parti, assieme, ecc...
 
ma la regola non si può esportare e importare dove mi serve? al momento la creo ogni volta....
 
io la imposterei su "prima di salvare il documento", così fa il suo lavoro al salvataggio: con chiudi può trovarsi appunto la parte chiusa e non sapere che fare

- la cosa dello sviluppo lo lascierei sulle sole lamiere.
- si possono creare regole "esterne" (guarda bene i tab delle regole) che scrivi una volta ma poi devi comunque collegare in ogni file, con il vantaggio però che ogni modifica sarà fatta una volta per tutte, altrimenti ogni parte ha la sua regola locale. certe regole le imposterei nel template.
 
incuriosito dall'argomento ho guardato meglio ilogic: in realtà la soluzione più diretta è usare questa regola al posto della macro:

Code:
dim sviluppo as string
dim lungh as integer
dim largh as integer

lungh = ceil(sheetmetal.flatextentslength)
largh = ceil(sheetmetal.flatextentswidth)
sviluppo = lungh & " x " & largh


iproperties.value("custom", "sviluppo") = sviluppo

fa la stessa cosa usando gli automatismi di ilogic
 
sei un genio! :4425:

questa è meglio e non crea nessun problema!!!

ho visto però che arrotonda in eccesso...ad esempio se faccio 20,1 lo sviluppo lo fa 21....
 
round(n, 1) arrotonda n a un decimale
ceil sempre all'intero superiore
floor sempre all'intero inferiore
scegliti ciò che più ti garba :tongue:

se vuoi i decimali nelle prime righe dim... al posto di integer metti double
 
・・・
規則は残念なことにファイルに縛られているので、テストが新しい部分のためにテンプレートに入れることができるものを行うならば、古いものがより問題です
外部ルールを自動的に実行できないため、すべてのファイルで実行できるので、組み込むことなく実行できますか?
ルール変更ではオプションタブでは、ルールを想定したオプション「自動で実行しない」がありますが、外部のものでも自動的に実行できますが、動作しないようです。

あるいは、マクロ vba の (例えばファイルを開くときなど) を自動的に実行することはできますか?
 
古くから綺麗なニュースが紹介されました。 . . .1594188966926.pngトリガーを見ると、すべてのドキュメントの外部ルールをアクティブにしたり、特定のタイプのルールをアクティブにすることができます。
 
しかし、あなたが使用している発明者のバージョンは何ですか?
私は18thを使用し、自分自身にこの誤ったマスクを見つけます。
Trigger.JPG
 

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