| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | Qualität sichtbar gemacht, dank leistungsfähiger 3DViewStation Grafik, eine Pressemitteilung
|
Autor
|
Thema: Bestimmen der Koordinaten eines Referenzpunktes in Python (2735 mal gelesen)
|
MichaelSu25 Mitglied
 Beiträge: 7 Registriert: 18.12.2013
|
erstellt am: 10. Jan. 2014 11:30 <-- editieren / zitieren --> Unities abgeben:         
Servus miteinander, ich habe ein spezielles Problem bei der Bestimmung der Koordinaten eines Referenzpunktes in Python/Abaqus. Ich untersuche die Rückfederung eines Bleches beim freien Biegen und möchte hierfür den genauen Verfahrweg für einen Winkel über einen Referenzpunkt in das Python script einlesen um mit diesem die Simulation variieren zu können. Hierfür habe ich eine Skizze (siehe Bild) angelegt, die als Freiheitsgrad einen über Python steuerbaren Winkel Alpha besitzt, den ich am Anfang des scriptes einegeben kann. Durch die Tengentialität wird der Stempel fiktiv in die Endposition gefahren und ich habe einen Referenzpunkt auf die Unterseite des Stempels definiert (der dann mitläuft). Jetzt möchte ich die Koordinaten des Referenzpunktes, bzw. die y-Komponente, die wiederum den Verfahrweg darstellt. Diesen Wert will ich dann in Python weiterverwenden. Ich habe verschiedene Befehle verwendet, hier ein kleiner Ausschnitt aus dem script: #3D Shell Sketch Pos3D_Sketch = Simu_3D.ConstrainedSketch(name='Positionierung3D', sheetSize=200.0) Pos3D_Sketch.sketchOptions.setValues(gridOrigin=(0, 0)) Pos3D_Sketch.retrieveSketch(sketch=Positionierung_Sketch) #3D Shell part Pos3D_part = Simu_3D.Part(dimensionality=THREE_D, name='Positionierung', type=ANALYTIC_RIGID_SURFACE) Pos3D_part.AnalyticRigidSurfExtrude(depth=0.01, sketch=Pos3D_Sketch) del Pos3D_Sketch #Instance and Surface, Set Simu_3D.rootAssembly.DatumCsysByDefault(CARTESIAN) Endpos_instance = Simu_3D.rootAssembly.Instance(dependent=ON, name='Positionierung-1', part=Pos3D_part) Pos3D_part.Surface(name='Positionierung', side2Faces=Pos3D_part.faces.getSequenceFromMask(('[#1 ]', ), )) #Reference point Endpos_RP = Pos3D_part.ReferencePoint(point=Pos3D_part.InterestingPoint(Pos3D_part.edges[2], MIDDLE)) Endpos_set = Pos3D_part.Set(name='Enpos_RP_set', referencePoints=(Pos3D_part.referencePoints[3], )) #vector = ('%g,%g,%g' % (Endpos_RP.coordinates[0], Endpos_RP.coordinates[1], Endpos_RP.coordinates[2])) RP_dis_ID = Endpos_RP.id RP_dis_ID_str = str(RP_dis_ID) test1 = Simu_3D.rootAssembly.referencePoints.values('RP-4') test2 = Simu_3D.rootAssembly.features.keys('RP-4') test3 = Simu_3D.rootAssembly.referencePoints.keys()[0] test4 = Simu_3D.rootAssembly.referencePoints[RP_dis_ID] test5 = Simu_3D.rootAssembly.referencePoints.getCoordinates('RP-4') Leider erhalte ich die Koordinaten nicht, nur Fehlermeldungen unterschiedlicher Art.
Kann mir jemand helfen den Fehler zu finden und die Koordinaten zu bestimmen? MfG Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 10. Jan. 2014 22:17 <-- editieren / zitieren --> Unities abgeben:          Nur für MichaelSu25
Gib im /CAE Python Interface mal ein: print Simu_3D.rootAssembly.features['RP-4'] Dann siehst du mit welchen weiteren Befehlen du an die Koordinaten kommst. Also z.B. x_Wert_RP-4 = Simu_3D.rootAssembly.features['RP-4'].xValue Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelSu25 Mitglied
 Beiträge: 7 Registriert: 18.12.2013
|
erstellt am: 17. Jan. 2014 10:28 <-- editieren / zitieren --> Unities abgeben:         
Danke Mustaine für die Antwort, ich habe das geschrieben umgesetzt und auch sowohl den Referenzpunkt auf Part als auch auf Assembly Ebene erstellt. Auf Assembly Ebene kamen auf die Befehle, die du mir geschrieben hast, folgende Fehlermeldung: >>> print Simu_3D.rootAssembly.features['RP-1'] ({'children': '', 'id': 4, 'isOutOfDate': False, 'name': 'RP-1', 'parents': '2&', 'path': 'unknown', 'sketch': 'unknown'}) >>> print (Simu_3D.rootAssembly.features['RP-1'].xValue) AttributeError: 'Feature' object has no attribute 'xValue' Was mache ich falsch? Hoffe du hast noch einen Lösungsvorschlag:-) LG Michi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelSu25 Mitglied
 Beiträge: 7 Registriert: 18.12.2013
|
erstellt am: 09. Feb. 2014 10:55 <-- editieren / zitieren --> Unities abgeben:         
|
Mustaine Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 10. Feb. 2014 10:14 <-- editieren / zitieren --> Unities abgeben:          Nur für MichaelSu25
|
MichaelSu25 Mitglied
 Beiträge: 7 Registriert: 18.12.2013
|
erstellt am: 13. Mrz. 2014 10:45 <-- editieren / zitieren --> Unities abgeben:         
Servus, ich war leider jetzt einen Monat nicht da. Ich hoffe es klappt trotzdem noch CAE Anhänge akzeptiert die Seite nicht, ich habe von dem Python Skript eine txt.Datei erstellt, die die gesamte Simulation wiedergibt. In dem Sketch Positionierung ist der Winkel hinterlegt, der verfahren werden soll. Die vertikale Linie links von Ansammlung an Bemaßungen ist die Distanz, die ich mit dem Skript auslesen und dann wiederum später einer Variablen als Verfahrweg zuordnen möchte. Ich bin jetzt wieder täglich erreichbar und freue mich darauf das Problem endlich ad akta zu legen Liebe Grüße Michi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Seidel Mitglied Projektingenieur

 Beiträge: 45 Registriert: 30.06.2009
|
erstellt am: 19. Mrz. 2014 20:19 <-- editieren / zitieren --> Unities abgeben:          Nur für MichaelSu25
|