Communauté
Inventor - Français
Bienvenue sur les forums Inventor d’Autodesk. Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets Inventor populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Afficher une grille sur fichier IDW

9 RÉPONSES 9
RÉSOLU
Répondre
Message 1 sur 10
maxime-S.
1149 Visites, 9 Réponses

Afficher une grille sur fichier IDW

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 !Smiley très heureux

 

Maxime S.

9 RÉPONSES 9
Message 2 sur 10
ThomasB44
en réponse à: maxime-S.

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"

Capture.JPG

 

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
Inventor Professional EESignature

Message 3 sur 10
maxime-S.
en réponse à: ThomasB44

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 ?

 

Message 4 sur 10
ThomasB44
en réponse à: maxime-S.

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 Smiley clignant de l'œil

 

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.

Capture.JPG

 

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
Inventor Professional EESignature

Message 5 sur 10
maxime-S.
en réponse à: ThomasB44

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.

 

ILogic.jpg

 

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

View example.jpg

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.

Message 6 sur 10
ThomasB44
en réponse à: maxime-S.

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
Inventor Professional EESignature

Message 7 sur 10
maxime-S.
en réponse à: ThomasB44

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.

Message 8 sur 10
ThomasB44
en réponse à: maxime-S.

Voici le code pour centrer la 1ère vue sur toutes les feuilles, et j'ai ajouté des commentaires pour une meilleure compréhension Smiley heureux

 

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
Inventor Professional EESignature

Message 9 sur 10
maxime-S.
en réponse à: ThomasB44

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 ! Smiley très heureux

Message 10 sur 10
ThomasB44
en réponse à: maxime-S.

De rien Smiley clignant de l'œil

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
Inventor Professional EESignature

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report