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 : 

Détection de faces supérieures ou inférieures dans une règle ILogic

2 RÉPONSES 2
RÉSOLU
Répondre
Message 1 sur 3
Anonymous
413 Visites, 2 Réponses

Détection de faces supérieures ou inférieures dans une règle ILogic

Bonjour à tous,

 

Je viens poster ma question relative à une règle ILogic que j'ai crée que je souhaiterais améliorer :

 

J'aimerais pouvoir caractériser des faces nommées selon si leur orientation (comprendre par là si la projection orthogonale de cette face se fait vers le haut ou vers le bas). Cela me permettrais de simplifier l'utilisation de ma règle. Je souhaite ainsi créer un tableau à une rangée avec le nom de mes faces ( Face 1, Face 2,...) en rajoutant le texte, selon son orientation, "Up" ou "Down" (Face 1Up, Face 2Down,...). (les faces verticales seront considérées comme "Up" le cas échéant.

Je cherche a savoir comme dans un slicer pour imprimante 3D si une face nécessite des supports et serait donc orientée vers le plateau d'impression. Pour cela ma règle calcul les angles entre les faces d'une pièce à imprimer et la face supérieur du plateau d'impression qui est à rajouter dans le fichier pièce tel un nouveau solide.

Cependant, la mesure d'angle est toujours inférieur ou égal à 90° et ne permet donc pas de différencier les faces supérieures et inférieures. Pour l'instant l'utilisateur doit donc faire lui-même l'étape de nommer les faces selon une numérotation et si ces dernières sont "UP" ou "Down", ce qui est fastidieux lorsque l'on change d'orientation la pièce à imprimer par rapport au plateau d'impression.

 

Merci d'avance de m'éclairer si vous pensez cela possible dans une règle ILogic ou non,

Loris Roesler, Etudiant en travail de bachelor à la HES-SO, en tant qu'ingénieur méchanique.

 

Version Inventor : 2020

 

Photo de mon exemple test : la face jaune est "Up" par rapport au plateau d'impression qui est en rouge.

lorisroesler_0-1626075350847.jpeg

 

Code source de ma règle ILogic : ( ceci est ma première création, je ne maîtrise pas encore bien ce langage !)

Dim Up As Integer
Dim Down As Integer
Dim i As Integer
i = 1

csv_filename = "Mesures d'inclinaison.csv"
fileheader = "Mesure automatique d'angles, repertoire : "& ThisDoc.Path & csv_filename 'first line header of csv file
description = "Liste des inclinaisons des Faces en Up skin et Down skin" 'use this variable in the body of the html

Up = InputBox("Nombre de faces en Up skin ?", "Paramètre", 3,100,100)
Down = InputBox("Nombre de faces en Down skin ?", "Paramètre", 3, 100, 100)

Dim TableMembers(Up + Down) As Object
TableMembers (0) = "Face Up" & i.ToString 'parameters (names) to include in table

While i < Up
	i= i+1
	TableMembers (i-1) = "Face Up" & i.ToString
End While
j = i
i = 1
TableMembers (j) = "Face Down" & i.ToString
While i < Down
	i = i + 1
	j = j + 1
	TableMembers (j) = "Face Down" & i.ToString
End While

delimiter = "," 'character to separate the names and values on each line

'CSV filename uses this documents path and filename with a .csv extention
Dim oFile As System.IO.File
Dim oWrite As System.IO.StreamWriter


oWrite = oFile.CreateText(csv_filename) 'name and path of csv file to create/overwrite
oWrite.WriteLine(fileheader) 'include the fileheader on the first line
oWrite.WriteLine(description) 'include the description on the second line
oWrite.WriteLine(NOW()) 'include the current date and time on the third line
oWrite.WriteLine() 'blank line

'write the parameter name , value for each parameter in the TableMembers Arraylist
i=0
While i< UBound(TableMembers)
	oWrite.WriteLine(TableMembers(i))
	oWrite.WriteLine("Inclinaison [deg]" & delimiter & Measure.Angle(TableMembers(i), "Plateau"))
	oWrite.WriteLine("Rugosite Ra [µm]")
	oWrite.WriteLine("Supports ? OUI/NON")
	
	i = i + 1

End While

oWrite.Close()

'option to view report
go = MessageBox.Show("Voulez-vous ouvrir le fichier CSV ?", "iLogic CSV Output", MessageBoxButtons.YesNo)
If go = 6 
	ThisDoc.Launch(csv_filename)
Else
	MessageBox.Show("Fichier CSV a été correctement sauvegardé dans le répertoire :"&Chr(13) & Chr(10) &Chr(13) & Chr(10) & ThisDoc.Path &"\"& csv_filename)
End If

 

Étiquettes (4)
2 RÉPONSES 2
Message 2 sur 3
ThomasB44
en réponse à: Anonymous

Salut @Anonymous 

Je ne m'estime pas expert en programmation, mais je pense que ce que tu cherches à réaliser est très complexe et nécessite des compétences +++ en VBA et VB.NET.

Les manipulations sur les faces d'un objet sont plutôt difficiles. Les mesures également...

Tu trouveras quelques exemples si tu cherches bien ici : https://forums.autodesk.com/t5/inventor-customization/bd-p/120


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 3 sur 3
Anonymous
en réponse à: ThomasB44

Merci beaucoup @ThomasB44  pour votre avis sur le sujet, je pense bien que mon problème nécessite des connaissances bien plus poussées que je ne possède pas encore

Je pense que pour mon projet se terminant dans un mois, je vais devoir laisser en l'état.

 

Merci et bonne journée,

 

Loris Roesler

 

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