| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
Autor
|
Thema: Connect (968 mal gelesen)
|
Mrole Mitglied
Beiträge: 118 Registriert: 02.04.2003
|
erstellt am: 31. Mai. 2011 17:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Programmierer, ich möchte in der API (ST1 Trad.) ExTruded/Revolved-Protrusions bzw.ExTruded/Revolved-Cutouts erstellen lassen. Das Profil ergibt sich aus vorhandenen Skizzen. Ich habe festgestellt, dass wenn ich ein Polygon aus zusammenhängenden Elementen skizziere und das Feature austrage/rotiere, gibt es soweit kein Problem. Wenn die Skizze aus nicht-zusammenhängenden Elementen (aber dennoch gechlossenes Polygon) aufbaue, schlägt die Erstellung fehl. Erst wenn die Elemente (Line2d oder Arc2d) alle einzeln Connected werden (manuell), geht die Feature-Erstellung. Geht das Connecten auch im Programm automatisch? Schon mal vielen Dank für Eure Hilfe! Grüße Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 31. Mai. 2011 18:03 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
Ich habe das noch nicht per Programm ausprobiert. Aber interaktiv ist das direkte Verwenden der Skizzenelemente doch ohne Connect möglich, während Profilelemente innerhalb des Formelements immer connected sein müssen. Vielleicht ist das ein Ansatz. ------------------ Arne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mrole Mitglied
Beiträge: 118 Registriert: 02.04.2003
|
erstellt am: 01. Jun. 2011 09:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Arne, ich erstelle das Profil neu, da die Skizzen nicht auf der gewünschten Ebene liegen, also alle Skizzenelemente werden auf einer beliebigen Ebene neu gezeichnet, diese sind dann erst mal nicht connected. Wenn die Elemente dann nicht zusammenhängend liegen, geht es so nicht. Grüße Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wksyspro Mitglied Dipl.-Ing.
Beiträge: 200 Registriert: 19.11.2004
|
erstellt am: 01. Jun. 2011 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
Hallo Mrole, in der Solid Edge Programmierhilfe von ST3 findest Du unter "Walkthrough: Part and SheetMetal Documents" auch ein Code-Beispiel, wie Du mit Relations2D-Objekten notwendig geschlossene Polygonzüge erstellst. Hier ein Auszug des entscheidenden Bereichs: Code:
' Add a new profile objProfile = objProfiles.Add(objRefplanes.Item(3)) ' Get a reference to the lines2d collection objLines2d = objProfile.Lines2d ' Draw the Base Profile objLine2d = objLines2d.AddBy2Points(0, 0, 0.08, 0) objLine2d = objLines2d.AddBy2Points(0.08, 0, 0.08, 0.06) objLine2d = objLines2d.AddBy2Points(0.08, 0.06, 0.064, 0.06) objLine2d = objLines2d.AddBy2Points(0.064, 0.06, 0.064, 0.02) objLine2d = objLines2d.AddBy2Points(0.064, 0.02, 0.048, 0.02) objLine2d = objLines2d.AddBy2Points(0.048, 0.02, 0.048, 0.06) objLine2d = objLines2d.AddBy2Points(0.048, 0.06, 0.032, 0.06) objLine2d = objLines2d.AddBy2Points(0.032, 0.06, 0.032, 0.02) objLine2d = objLines2d.AddBy2Points(0.032, 0.02, 0.016, 0.02) objLine2d = objLines2d.AddBy2Points(0.016, 0.02, 0.016, 0.06) objLine2d = objLines2d.AddBy2Points(0.016, 0.06, 0, 0.06) objLine2d = objLines2d.AddBy2Points(0, 0.06, 0, 0) ' Define Relations among the Line objects to make the Profile closed objRelations2d = objProfile.Relations2d objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(1), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(2), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(2), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(3), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(3), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(4), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(4), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(5), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(5), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(6), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(6), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(7), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(7), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(8), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(8), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(9), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(9), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(10), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(10), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(11), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(11), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(12), _ KeypointIndexConstants.igLineStart) objRelation2d = objRelations2d.AddKeypoint( _ objLines2d.Item(12), _ KeypointIndexConstants.igLineEnd, _ objLines2d.Item(1), _ KeypointIndexConstants.igLineStart) ' Close the profile objProfile.End( _ SolidEdgePart.ProfileValidationType.igProfileClosed)
------------------ Viele Grüße, Wolfgang Kunert www.wksyspro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 01. Jun. 2011 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
|
wksyspro Mitglied Dipl.-Ing.
Beiträge: 200 Registriert: 19.11.2004
|
erstellt am: 01. Jun. 2011 10:47 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
@Arne, wenn man es nicht weiß, dann muss man sich z.B. zwei Koordinatenlisten erzeugen, eine mit den Anfangspunkten, eine mit den Endpunkten, und passende Paare (evtl. etwas Toleranz vorsehen) mit der gewünschten Beziehung versehen. ------------------ Viele Grüße,
Wolfgang Kunert www.wksyspro.de [Diese Nachricht wurde von wksyspro am 01. Jun. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
Beiträge: 453 Registriert: 23.01.2002 Win10 Office 365 SE 2019
|
erstellt am: 01. Jun. 2011 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
Roland, mit Profile.Relations2d.AddKeypoint kannst du die Enden verbinden. Eine Schleife über alle Lines2d und Arcs2d und eine untergeordnete Schleife, die die passenden Endpunkte findet und verknüpft wäre eine Möglichkeit. Ein Programmierbeispiel für das Verknüpfen ist in PolyPro auf der Seite von Klaus. http://incobase.de/Download_Soft.html#polygon oops, da war ich etwas zu langsam pablo [Diese Nachricht wurde von pablo am 01. Jun. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 01. Jun. 2011 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
Zitat: Original erstellt von wksyspro: @Arne,wenn man es nicht weiß, dann muss man sich z.B. zwei Koordinatenlisten erzeugen, eine mit den Anfangspunkten, eine mit den Endpunkten, und passende Paare (evtl. etwas Toleranz vorsehen) mit der gewünschten Beziehung versehen.
Si.
------------------ Arne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|