Bonjour,
Lorsque j'utilise un fichier IDW, pour faire une instruction d'assemblage par exemple, je créé plusieurs sheet qui affichent chacune une vue tiré d'un fichier IPN (fichier pour faire un affichage explosé).
Le problème c'est que lorsque je mets ma première vu sur mon sheet, je la place un peu au hasard en essayant de la centré et pareil pour les suivantes. Ce qui veut dire que lorsque je créé un fichier PDF qui rassemble tous les sheet pour former une instruction d'assemblage, il y a toujours un décallage entre les vues, ca ne fait pas du tout professionnel.
J'ai essayé de me créer des axes à l'aide d'une esquisse mais impossible d'enlever la visibilité dans un fichier IDW et je ne veux pas garder ses axes quand je créé mon PDF.
Le top serait de créer un point sur lequel ma vue pourrait s'accrocher mais si vous avez une autre astuce qui évite de créer une esquisse et de la supprimer sur chaque feuille, je suis preneur !
Je vous remercie d'avance !
Maxime S.
Résolu ! Accéder à la solution.
Résolu par ThomasB44. Accéder à la solution.
Résolu par ThomasB44. Accéder à la solution.
Salut,
Alors plusieurs possibilités :
Ne pas tracer les traits de ton esquisse qui te servent de repères, pour cela aller dans les calques et cocher "ne pas tracer"
Sinon utiliser iLogic pour positionner la vue sélectionnée au centre de la feuille :
SyntaxEditor Code Snippet
oView = ThisApplication.ActiveDocument.SelectSet.Item(1).Name
ActiveSheet.View(oView).SetCenter(ActiveSheet.Width / 2, ActiveSheet.Height / 2)
Thomas
Mechanical Designer / Inventor Professionnal 2023
Merci à toi d'avoir répondu,
Pour ta première proposition, lorsque je sauvegarde ce sheet avec la grille (créé depuis une esquisse) en tant que gabarit, lorsque je l'ouvre en tant que gabarit, le sketch n'existe plus, je ne sais pas comment faire pour garder un sketch dans un gabarit. J'aimerai aussi que ce sketch ne soit pas sélectionnable puisqu'il sert à placer des vues. Si le sketch est sélectionnable quand il est dans le gabarit, cela peut malheureusement permettre au personne qui vont l'utiliser de déplacer cette grille, ce que je ne veux pas.
Pour ta deuxième proposition, je ne connais pas beaucoup le système de iLogic. Lorsque que je créé une rule avec comme syntaxe ce que tu m'as écris, une boite de dialogue s'ouvre avec écrit "The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))". Mais si je comprends bien, ta fonction pourrait me permettre de centrer les vues automatiquement ?
Humm, alors pour la 1ère proposition il faudrait que tu traces la grille dans un cadre de ton gabarit de dessin.
Les traits de ta grille devront être placés dans un calque masqué à l'impression, comme montré au-dessus sur ma capture d'écran.
Pour la 2ème proposition, il faut sélectionner une vue pour que le code fonctionne.
Ici un code corrigé avec message d'invite pour être plus clair
SyntaxEditor Code Snippet
Try oView = ThisApplication.ActiveDocument.SelectSet.Item(1).Name Catch MessageBox.Show("Veuillez d'abord sélectionner une vue de dessin.", "iLogic") Return End Try ActiveSheet.View(oView).SetCenter(ActiveSheet.Width / 2, ActiveSheet.Height / 2)
Ensuite au choix, l'utilisateur lance manuellement la règle,
Ou alors, tu peux sélectionner un évènement déclencheur "avant l'enregistrement", pour que la règle se lance automatiquement.
Edit : l'évènement déclencheur avec ce code n'est pas vraiment approprié, puisqu'il faut sélectionner une vue de dessin...
Si tu as une seule vue par feuille je peux te fournir un code qui fonctionnera sans avoir à selectionner la vue.
Thomas
Mechanical Designer / Inventor Professionnal 2023
J'ai transformé ton code pour que à la place d'afficher le texte "Veuillez d'abord sélectionner une vue de dessin", il me déplace donc ma vue qui porte le nom View1.
J'ai deux questions :
Je n'arrive pas à centrer ma vue, le ILogic me déplace en fait le centre de ma vue dans l'angle bas gauche de mon sheet
Comment faire en sorte que le centre de ma vue se place au centre de mon sheet?
Ma deuxième question est de savoir si il est possible de mettre dans la commande que c'est la 1ère vue affiché dans mon sheet qui doit être centré, sans avoir à préciser son nom, donc en enlevant la sélection de la View1 dans la ligne de commande.
Ta modification de code comporte une erreur.
Essaie ceci :
Try oView = ThisApplication.ActiveDocument.ActiveSheet.DrawingViews(1).Name Catch MessageBox.Show("Il n'y a pas de vue de dessin sur la feuille active.", "iLogic") Return End Try ActiveSheet.View(oView).SetCenter(ActiveSheet.Width / 2, ActiveSheet.Height / 2)
Thomas
Mechanical Designer / Inventor Professionnal 2023
C'est presque parfait ! Que faut il que je rajoute dans la commande pour que le ILogic s'applique à toutes les feuilles du fichier. J'ai choisi d'appliquer la commande avant une sauvegarde mais il n'y a que la vue du sheet 1 qui se déplace.
Voici le code pour centrer la 1ère vue sur toutes les feuilles, et j'ai ajouté des commentaires pour une meilleure compréhension
SyntaxEditor Code Snippet
Dim oDrawDoc As DrawingDocument = ThisDrawing.Document
'Sauvegarde le nom de la feuille actuelle
aSheet = ActiveSheet.Name
'Regarde depuis la feuille 1 jusqu'au nombre total de feuilles
For i = 1 To odrawdoc.Sheets.Count
'Active la feuille "i"
oDrawDoc.sheets.item(i).Activate
Try
'Essaie de lire le nom de la 1ère vue dans l'arborescence
oView = oDrawdoc.Sheets.item(i).DrawingViews.Item(1).Name
Catch
'Si il n'y a pas de vue, retourne un message
MessageBox.Show("Il n'y a pas de vue de dessin sur la feuille " _
& Chr(34) & oDrawdoc.Sheets.item(i).Name & Chr(34) _
& vbNewLine & "Fin de la règle...", "iLogic")
Return 'Fin de la règle
End Try
'Centre la vue
ActiveSheet.View(oView).SetCenter(ActiveSheet.Width / 2, ActiveSheet.Height / 2)
Next i 'Feuille suivante
'Active la feuille sauvegardée
ActiveSheet = ThisDrawing.Sheet(aSheet)
Thomas
Mechanical Designer / Inventor Professionnal 2023
Un grand merci à toi pour cette aide!!
Je pense que je vais m'entrainer à faire des lignes de commande, je vois à quel point ca peut être utile !
De rien
C'est sur que c'est utile lorsque tu as des tâches répétitives !
Tu trouveras pleins d'exemples de codes sur le forum ici :
http://forums.autodesk.com/t5/inventor-customization/bd-p/120
Thomas
Mechanical Designer / Inventor Professionnal 2023
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.