• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

Macro pour ajouter une note sur la trémie multifoil

IronCad

Guest
Bonjour,
J'essaie de créer une macro pour automatiser le processus d'ajout d'une note spécifique à toutes les feuilles d'un fichier. Slddrw,
J'aimerais qu'en lançant la macro sur les feuilles du fichier, j'ai ouvert une note.
J'attache ce que j'ai réalisé que je ne peux pas le faire fonctionner parce que le système me donne une erreur de temps d'exécution que j'attache.

Merci qui peut m'aider.1732199434834.png
 

Pièces jointes

Ciao J'ai examiné votre macro, trouvé quelques erreurs, la principale était que les méthodes que vous utilisiez pour rappeler les feuilles font partie du document de table (drawingdoc) tandis que vous les rappelez dans le document générique (objet), en fait, je vous recommande lors de l'écriture d'une macro pour écraser les deux objets principaux de cette façon, donc vous activez également le menu des méthodes en appuyant sur le point:
dim échange comme objet devient
dim échange comme sldworks. Soldworks
'pour le tableaudim swdraw comme objet 'diventa
dim swdraw comme sldworks.drawingdoc
'pour la partiedim swpart comme objet 'diventa
Dim swpart comme sldworks. Partiedoc
'per l'assiemedim swasm comme objet 'diventa
dim swasm comme sldworks.assemblydoc



ad ogni modo ho riscritto tutto e ti ho inserito i commenti così capisci cosa sta facendo la macro nelle varie fasi.

dim échange comme sldworks. Soldworks
dim swdraw comme sldworks.drawingdoc
dim boolstatus en tant que booléen
dim longstatus aussi longtemps, longs avertissements
dim sheetcount aussi longtemps, i aussi longtemps
Dim swsheet comme sldworks. Feuille


Sous-main()

définir swapp = application. Soldworks
set swdraw = swapp.activedoc

' J'ai utilisé la feuille active en ce momentset swsheet = swdraw.getcurrentsheet
vsheetnamarr = swdraw.getsheetnames
' J'ai utilisé le nom de la feuille active en ce moment' J'en ai besoin à la fin du rapport après le cycle d'insertion des notes
'active la feuille de départ
dim nsheet en chaîne
nsheet = swsheet.getname
'ciclo i brumelipour chaque nom vsheet dans vsheetnamarr
bret = swdraw.activatesheet(vsheetname): debug.assert bret

dim mynote comme objet
dim myannotation comme objet
dim mytextformat comme objet
«J'insère la notedéfinir mynote = swdraw.insertnote("<font size="72pts" style="b">Bozza")
</font> « Je définit les caractéristiques, l'emplacement, la couleur, etc.Si pas ma note n'est rien alors
mynote.lockposition = faux
mynote.angle = 0
boolstatus = mynote.setballoon(0, 0)

définir myannotation = mynote.getannotation()

si pas la myannotation n'est rien alors
longstatus = myannotation.setleader3(swleaderstyle_f.swno_leader, 0, vrai, faux, faux, faux)


boolstatus = myannotation.setposition(0,115, 0,07, 0)

définir mytextformat = swdraw.getuserpreferencetextformat(0)
mytextformat.italic = faux
mytextformat.underline = faux
mytextformat.strikeout = faux
mytextformat.bold = vrai
mytextformat.escapement = 0
mytextformat.linespacing = 0,001
mytextformat.charheightinpts = true
mytextformat.typefacename = "gothique du siècle"
mytextformat.widthfactor = 1
mytextformat.obliqueangle = 0
mytextformat.linelongueur = 0
mytextformat.vertical = faux
mytextformat.backwards = faux
mytextformat.upsidedown = faux
mytextformat.charspacingfactor = 1
' J'applique les caractéristiques à la noteboolstatus = myannotation.settextformat(0, false, mytextformat)

'deseleziono qualsiasi selezione attiva e aggiorno la grafica
swdraw.clearselection2 vrai
swdraw.windowredraw
fin si
fin si
suivant vsheetname
«Réactivez la feuille initiale, sinon elle reste sur la feuille utimobret = swdraw.activatesheet(nsheet)

fin sous
 
Je vous remercie. @jenuaire, surtout pour des explications.
J'essaie d'étudier comment les macros pour les œuvres solides sont écrites, mais je suis un peu en avance.
Auriez-vous des conseils pour me donner ou du matériel pour étudier ce thème ?

Merci encore...
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut