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 : 

ilogic - Delete sheet whith specific path

6 RÉPONSES 6
RÉSOLU
Répondre
Message 1 sur 7
denis.semeniuc
247 Visites, 6 Réponses

ilogic - Delete sheet whith specific path

Bonjour,

je essai de creer une regle quelle supprime les pages , chemain de reference de la modele contiene " Bibliotheque".

 

 

    oDoc = ThisApplication.ActiveDocument

Dim oSheet As Sheet

For Each oSheet In ThisApplication.ActiveDocument.Sheets
	
	Dim oView As DrawingViews = oDoc.ActiveSheet.DrawingViews
	oViews = oView.Item(1)
	Dim oModelDoc As Document = oViews.ReferencedDocumentDescriptor.ReferencedDocument
	Dim oFullFilePath As String = oModelDoc.FullFileName
	modelName = IO.Path.GetFileName(oModelDoc.FullFileName)
		If oFullFilePath.Contains("Bibliotheque") Then
				oSheet.Delete
		End If
Next
Balises (2)
6 RÉPONSES 6
Message 2 sur 7
CattabianiI
en réponse à: denis.semeniuc

And what's wrong with that code? you get an exception?

Try to store the sheets to be deleted in a list and then delete them.

    oDoc = ThisApplication.ActiveDocument

Dim oSheet As Sheet
Dim toBeDeleted As new List(of Sheet)()
For Each oSheet In ThisApplication.ActiveDocument.Sheets
	
	Dim oView As DrawingViews = oDoc.ActiveSheet.DrawingViews
	oViews = oView.Item(1)
	Dim oModelDoc As Document = oViews.ReferencedDocumentDescriptor.ReferencedDocument
	Dim oFullFilePath As String = oModelDoc.FullFileName
	modelName = IO.Path.GetFileName(oModelDoc.FullFileName)
		If oFullFilePath.Contains("Bibliotheque") Then
				toBeDeleted.Add(oSheet)
		End If
Next

For each ss As Sheet in toBeDeleted
  ss.Delete()
next




Message 3 sur 7
denis.semeniuc
en réponse à: CattabianiI

Problemme est que ou il fait rien ou il suprimme tous les pages

Message 4 sur 7
denis.semeniuc
en réponse à: CattabianiI

je ne comprend pas la relation

 

Message 5 sur 7
denis.semeniuc
en réponse à: CattabianiI

je pence que la detection des Fichier de la biblioteque ne pas correcte. 

 

le but de cette regle de suprimer les majes quelle contiene le dessin des pieces de la "bibliotheque" ou "centre de contenu"

Message 6 sur 7
ThomasB44
en réponse à: denis.semeniuc

Salut @denis.semeniuc 

Selon le besoin que tu décris, ta boucle n'est pas correcte, en premier tu boucles sur les feuilles, OK

For Each oSheet In ThisApplication.ActiveDocument.Sheets

Mais ensuite tu déclares la feuille active puis la 1ère vue...ce qui n'est pas correct

	Dim oView As DrawingViews = oDoc.ActiveSheet.DrawingViews
	oViews = oView.Item(1)

Il faut boucler sur chaque feuille, puis chaque vue, et enfin regarder la référence du document de la vue :

oSheets = oDoc.Sheets
For Each oSheet In oSheets
	oViews = oSheet.DrawingViews
	For Each oView In oViews
		oFullFilePath = oView.ReferencedDocumentDescriptor.FullDocumentName

Ensuite tu pourras filtrer sur la référence du chemin, et supprimer la feuille en dehors de la boucle comme conseillé par @CattabianiI , sinon ta boucle va continuer sur une feuille déjà supprimée, et le code produira une erreur.


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 7 sur 7
denis.semeniuc
en réponse à: ThomasB44

Merci. 

tres bonne point. Finalement je trouvé l'error dans mon code, je n'ai pas activer la feuille.

 

Voici la version quelle marche de mon coté: 

On Error Resume Next
Dim oDrawDoc As DrawingDocument
    oDrawDoc = ThisApplication.ActiveDocument
Dim Sheet As Inventor.Sheet
Dim Cursheet As String
     Cursheet = oDrawDoc.ActiveSheet.Name
 
For Each Sheet In oDrawDoc.Sheets
        Sheet.Activate
Dim oView As DrawingViews = oDrawDoc.ActiveSheet.DrawingViews
oViews = oView.Item(1)		
Dim oModelDoc As Document = oViews.ReferencedDocumentDescriptor.ReferencedDocument
Dim oFullFilePath As String = oModelDoc.FullFileName
		If oFullFilePath.Contains("Bibliotheque") Then
				Sheet. Delete()
				
		End If

Next

 

 

Dans mon cas dans la vue 1 que je prefer de chercher, parce que c'est la meme reference pour tous les vues.

 

Merci a tous.

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