Hey, Batleo, je suis désolé de vous déranger parce que la discussion est assez récente.
Entre-temps Je vous remercie de partager votre code et de vous demander une mise à jour si vous le pouvez.
à l'intérieur du même idw je pourrais avoir plusieurs tables (même plus de trente)... est-il possible de planifier la substitution du cartilage dans toutes les tables simultanément et pas seulement dans la table active?
Je vous remercie.
Samuèle
ciao ho provato e dovrebbe funzionare devi solo sostituire il percorso del file template e il nome del cartiglio
public ()
' controlla il titolo nel documento attivo
essayer
dim odrawdoc comme document de dessin
odrawdoc = cette application.documentactif
« verifica se lo stato di déferimento degli aggiornamenti è abilitato
si odrawdoc.drawingsettings.deferupdate alors
msgbox("non è possibile modificare il cartiglio perché il file di disegno è in modalità di aggiornamento differito.")
sortie sous
fin si
' simboli dal disegno
essayer
supprimersymboles()
captures ex exception
msgbox("errorte dure la cancellazione dei simboli: " & ex. message)
fin de l'essai
Autres
Dim title as string = "nome cartiglio"
call remplacetitle(title)
captures ex exception
msgbox("errorte dure la sostituzione del cartiglio: " & ex. message)
fin de l'essai
fin sous
sub remplacetitle(byref title as string)
dim odrawdoc comme document de dessin
odrawdoc = cette application.documentactif
dim template as string = "n:\settaggi inventeur\inventeur 2022\templates\tuo file.idw"
dim otemplate comme document de dessin
dim osourcetitleblockdef comme titleblockdefinition
dim onewtitleblockdef comme titleblockdefinition
essayer
' apre il template
otemplate = cette application.documents.open(template, false)
' verifica se il cartiglio esiste nel template
si non otemplate.titleblockdéfinitions.item(title) n'est rien alors
osourcetitleblockdef = otemplate.titleblockdéfinitions.item(title)
Copia la definizione del cartiglio nel disegno
onewtitleblockdef = osourcetitleblockdef.copyto(odrawdoc, true)
' chiude il modèle
otemplate.close
' scorre tutti i brumli nel documento di disegno e applica il nuovo cartiglio
pour chaque feuille comme feuille en odrawdoc. Feuilles
' elimina il cartiglio corrente e inserisce quello nuovo
si osheet. titleblock n'est pas rien alors
osheet.titleblock.delete()
fin si
osheet.addtitleblock(newtitleblockdef)
suivant
msgbox("cartiglio aggiornato a: " & title & " su tutti i brumli.")
Autre
msgbox("cartiglio non trovato nel template.")
otemplate.close
fin si
captures ex exception
msgbox("errorte durant l'aggiornamento del cartiglio: " & ex. message)
fin de l'essai
fin sous
sous supprimersymboles()
dim odoc comme dessin document = cedoc.document
dim osksymdefs comme esquisses définitionsymbol = odoc.sketchedsymboldéfinitions
pour chaque osksymdef comme définition de symboles esquisses dans les osksymdefs
si pas osksymdef. est référencé alors
osksymdef.delete()
fin si
suivant
fin sous
sous-copysymbols()
dim strselectestamp en chaîne = "result2"
dim strstamplist comme nouvelle liste de tableaux
strstamplist.add("nome cartiglio")
strselectestamp = inputlistbox("s'il vous plaît sélectionner un timbre.", strstamplist, strselectestamp, "stamp selection", "samps disponibles")
dim strdrawdoc comme dessin document = cette application.document actif
dim sourcefile en tant que chaîne = "n:\settaggi inventeur\inventeur 2022\templates\tuo file.idw"
essayer
' apre il fichier sorgente dei simboli
dim strsourceidw comme dessin document = thisapplication.documents.open(sourcefile, false)
' copie i simboli nel documento corrente
pour chaque symboldef comme définition de symboles esquisses dans les définitions strsourceidw.sketchedsymbol
symboldef.copyto(strdrawdoc, true)
suivant
Stresourceidw.close()
captures ex exception
msgbox("errorte durant la copie dei simboli: " & ex.message)
fin de l'essai
fin sous[/ICODE]