i-logic add overlay function

i-logic add overlay function

denis.semeniuc
Advocate Advocate
459 Visites
6 Réponses
Message 1 sur 7

i-logic add overlay function

denis.semeniuc
Advocate
Advocate

Bonjour,

 

je essay de ajuter la function "Superposition" avec ilogic 

oView2 = oSheet.DrawingViews.AddOverlayView(oViewISO, "Master", "Par défaut", 0, DrawingViewStyleEnum.kShadedDrawingViewStyle, 0)

denissemeniuc_0-1723058227479.png

Mon assamblage ne contien pas les position. L'arborecence et vide dans assamblage. 

 

Quand il exist une , je indique son nom et ca marche.

 

Ques-ce que je doit indiqué dans cette option quand il n'y a pas?

 

 

 

0 J'aime
Solutions acceptées (1)
460 Visites
6 Réponses
Replies (6)
Message 2 sur 7

ThomasB44
Mentor
Mentor

Salut @denis.semeniuc 

Il faut regarder d'abord s'il y a des représentations de position dans ton modèle.

S'il n'y en a pas, le compteur de représentation positionnelles renvoie 1

Le nom par défaut de cette représentation positionnelle est "[Principale]"

 

Tu pourrais ajouter une vue de superposition réglée sur "[Principale]", mais je n'en vois pas l'intérêt...

 

Dim oApp As Inventor.Application = ThisApplication
Dim oAsm As Inventor.AssemblyDocument = oApp.ActiveDocument
Dim oAsmCompDef As Inventor.AssemblyComponentDefinition = oAsm.ComponentDefinition
Dim oRepMng As Inventor.RepresentationsManager = oAsmCompDef.RepresentationsManager
Dim oPosReps As Inventor.PositionalRepresentations = oRepMng.PositionalRepresentations

Logger.Info("PosRep count :" & oPosReps.Count)

For Each oPosRep As Inventor.PositionalRepresentation In oPosReps
	Logger.Info("PosRep Name :" & oPosRep.Name)
Next

Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 3 sur 7

denis.semeniuc
Advocate
Advocate

Bonjour,

 

C'est exactement ca le problème.

Je mis "[Principale], je mis "Master", aucun qui marche.

oView2 = oSheet.DrawingViews.AddOverlayView(oViewISO, "Master", "Par défaut", 0, DrawingViewStyleEnum.kShadedDrawingViewStyle, 0)

Une message d'erreur quand ilogic essaye d'insérer la vue de superposition par dessus de la vue oViewISO.

 

Je aucun position dans modèle. 

Quand je fait manuellement la zone de sélection est ne pas active .

Quand je vérifie le nom avec le code, la nom du vue positionnel est [Principale].

 

Si c' est nécessaire je peux envoyer le code complet, sauf c' est simple code pour incerer deu vue. Une ISO et une vue en plan. Sur la vue iso je veux metre superposition.

 

Merci 

0 J'aime
Message 4 sur 7

ThomasB44
Mentor
Mentor

Comme je l'expliquais, il faut faire un test sur le nombre de représentation positionnelles.

S'il n'y en a qu'une,

C'est qu'il s'agit de la représentation Principale,

Ne pas placer de vue de superposition.


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 5 sur 7

denis.semeniuc
Advocate
Advocate

Bonjour,

 

exactement ca ete fait. quand la presentation positionelle est cree, tous marche comme il faut.

denissemeniuc_0-1723468792679.png

denissemeniuc_1-1723468841848.png

par contre quand il n'y a pas, je une message de errors.

denissemeniuc_3-1723469009092.png

 

 

denissemeniuc_2-1723468962651.png

en mode manuele cette case ne pas active(gris):

denissemeniuc_4-1723469299199.png

 

Sub main
	

Dim oAsmCompDef As AssemblyComponentDefinition
oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition

'define pos rep 
Dim oPosRep As PositionalRepresentation
Dim sPosRep As String

'__________________________________________________________________________________
	
TemplateFile="L:\001\Q2023\Inventor\Templates\Procede_equip\PE-Dessin (FR).idw"

	Dim oDrawingDoc As DrawingDocument = ThisApplication.Documents.Add(DocumentTypeEnum.kDrawingDocumentObject,TemplateFile,True)

	oDrawingDoc.Activate()
	Dim oSheet As Sheet = oDrawingDoc.Sheets.Item(1)

	Dim oPoint1 As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oSheet.Width/4, oSheet.Height/1.25)
	Dim oPointIso As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oSheet.Width/1.25, oSheet.Height/3)

	oViewISO = oSheet.DrawingViews.AddBaseView(oAsmDoc,  oPointIso,  1/6,  ViewOrientationTypeEnum.kIsoTopRightViewOrientation,DrawingViewStyleEnum.kShadedDrawingViewStyle	)
	oView = oSheet.DrawingViews.AddBaseView(oAsmDoc, oPoint1, 1 / 6, ViewOrientationTypeEnum.kTopViewOrientation, DrawingViewStyleEnum.kHiddenLineRemovedDrawingViewStyle, )
        oView2 = oSheet.DrawingViews.AddOverlayView(oViewISO, "[Principale]", "Par défaut", 0, DrawingViewStyleEnum.kHiddenLineRemovedDrawingViewStyle, 0)

	Dim V2Point2D As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X, oView.Center.Y + 10)
	
End Sub

 

 

0 J'aime
Message 6 sur 7

ThomasB44
Mentor
Mentor
Solution acceptée

Cela semble être une limitation.

Manuellement il est possible d'ajouter une superposition même sans représentation positionnelle, ce qui est déjà un non-sens.

En code, il faut spécifier la chaîne textuelle, qui semble exister, puisque

oPosReps.Item(1).Name

Retourne [Principale]

Mais lorsque l'on spécifie cette chaîne, l'erreur se produit car la représentation positionnelle n'existe pas...

 

A part créer une représentation positionnelle vide pour contourner le problème, je ne vois pas.


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 7 sur 7

denis.semeniuc
Advocate
Advocate
Merci,
exectement, je pencé qui il y a une solution pour ca.

Merci de votre temps.
0 J'aime