Annonces
La communauté Autodesk sera en lecture seule du 26 avril au 27 avril, le temps de réaliser une maintenance essentielle. Nous retirerons cette bannière une fois l’opération terminée. Merci pour votre compréhension.

Inventor : Detection du symbole et leur remplacement dans la meme position par un autre

denis.semeniuc
Advocate

Inventor : Detection du symbole et leur remplacement dans la meme position par un autre

denis.semeniuc
Advocate
Advocate

Bonjour,

j'ai une code quel remplace le symbole nomé sur tous les pages par une autre.

Il y a une possibilite de detecter la position du symbole et placer la nouvel dans la meme position?

 

Voici mon code:

Dim oSheets As Sheets= ThisDoc.Document.sheets
Dim oSheet As Sheet
For Each oSheet In oSheets
oSheet.Activate
Dim oSymbol As SketchedSymbol
Dim oSymbols As SketchedSymbols
' Obtain a reference to the desired sketched symbol definition.
Dim oSketchedSymbolDef1 As SketchedSymbolDefinition = ThisDrawing.Document.SketchedSymbolDefinitions.Item("PE_PRÉLIMINAIRE_FR")
Dim oSketchedSymbolDef2 As SketchedSymbolDefinition = ThisDrawing.Document.SketchedSymbolDefinitions.Item("PE_SOUMISSION_FR")
Dim oSketchedSymbolDef3 As SketchedSymbolDefinition = ThisDrawing.Document.SketchedSymbolDefinitions.Item("PE_CONSTRUCTION_FR")
Dim oSketchedSymbolDef4 As SketchedSymbolDefinition = ThisDrawing.Document.SketchedSymbolDefinitions.Item("PE_ConsigneSoudure_FR")
 
'create insertion point, coordinates - in cm !
Dim oTG As TransientGeometry = ThisApplication.TransientGeometry
Dim oInsertionPoint1 As Point2d = oTG.CreatePoint2d(30,5)
Dim oInsertionPoint2 As Point2d = oTG.CreatePoint2d(10.2, 2.2)
 
' Add an instance of the sketched symbol definition to the sheet.
For Each oSymbol  In oSheet.SketchedSymbols
	If oSymbol.Name="PE_PRÉLIMINAIRE_FR"
		oSymbol.Delete
		Dim oSketchedSymbol1 As SketchedSymbol = oSheet.SketchedSymbols.Add(oSketchedSymbolDef2, oInsertionPoint1,0.261799, 1, Nothing)
		iProperties.Value("Project", "Engr Date Approved") = Now
		iProperties.Value("Project", "Revision Number") = 0
	ElseIf oSymbol.Name="PE_SOUMISSION_FR"
	oSymbol.Delete
	Dim oSketchedSymbol1 As SketchedSymbol = oSheet.SketchedSymbols.Add(oSketchedSymbolDef3, oInsertionPoint1,0.261799, 1, Nothing)
		iProperties.Value("Project", "Mfg Date Approved") = Now
		iProperties.Value("Project", "Revision Number")=1
  End If   
 Next

ThisApplication.ActiveView.Fit


Next
InventorVb.DocumentUpdate(False)

ThisApplication.ActiveDocument.Sheets(1).Activate()

 

 

P.S. - vous povez lui corriger si il y a une fasson de faire tout ca plus semple.

 

Merci. 


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
Detection du symbole et leur remplacement dans la meme position par un autre

0 J'aime
Répondre
Solutions acceptées (1)
275 Visites
1 Réponse
Reply (1)

ThomasB44
Mentor
Mentor
Solution acceptée

Salut @denis.semeniuc 

Oui, il suffit d'enregistrer sa position et de le replacer au même endroit (ou un autre).

Pour lire la position du symbole, tu peux par exemple lire ses positions en X et Y.

Pour enregistrer et changer sa position il faut un Point2D.

 

Dim oSymbol As Inventor.SketchedSymbol
oSymbol = oSheet.SketchedSymbols.Item(1)
Dim oTG As Inventor.TransientGeometry
oTG = ThisApplication.TransientGeometry
Dim oPosition As Inventor.Point2d

'Show position
MessageBox.Show("Actual position : " _
& vbNewLine & "oSymbol.X : " & oSymbol.Position.X _
& vbNewLine & "oSymbol.Y : " & oSymbol.Position.Y, "iLogic")

'Record a new position
oPosition = oTG.CreatePoint2d(oSymbol.Position.X+1, oSymbol.Position.Y+1)

'Set new position
oSymbol.Position = oPosition

'Show position
MessageBox.Show("New position : " _
& vbNewLine & "oSymbol.X : " & oSymbol.Position.X _
& vbNewLine & "oSymbol.Y : " & oSymbol.Position.Y, "iLogic")

 


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime