| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation: Geniale 3D-Visualisierung für intuitiven HMI Einsatz, eine Pressemitteilung
|
Autor
|
Thema: Erstellte punkte nicht unter Fläche hängen (1193 mal gelesen)
|
joshuader6 Mitglied Technischer Produktdesigner

 Beiträge: 17 Registriert: 06.03.2014 Catia V5R19 Inventor 2014
|
erstellt am: 28. Mai. 2014 11:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Vielleicht kann mir ja hier jemend weiter helfen. Ich habe folgendes Problem. Dieser Code nimmt ein Geoset und macht auf jeden Punkt darin einen neuen Punkt mit Koordinaten 0,0,0 und dann eine Sphäre darauf. Code:
Sub CATMain()Dim Document, Part, Selection, HybridShapeFactory, HybridBodies, HybridBody, OriginElements, Plane, PlaneReference, Status Dim InputObjectType(0), PointIndex, PointReference, HybridShapeSymmetry Set Document = CATIA.ActiveDocument: Set Part = Document.Part: Set Selection = Document.Selection Set HybridShapeFactory = Part.HybridShapeFactory InputObjectType(0) = "HybridBody" Status = Selection.SelectElement3(InputObjectType, "Select geometrical set containing points", _ True, CATMultiSelTriggWhenSelPerf, False) If (Status = "Cancel") Then Exit Sub Set hybridbody1 = Selection.Item(1).Value Dim Dia As String Dia = InputBox("Radius Size in mm") DiaMm = Dia Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridbody1.HybridShapes For s = 1 To hybridShapes1.Count Dim hybridShapePointCoord1 As HybridShape Set hybridShapePointCoord1 = hybridShapes1.Item(s)
Dim reference1 As Reference Set reference1 = Part.CreateReferenceFromObject(hybridShapePointCoord1) Dim hybridShapeFactory1 As Factory Set hybridShapeFactory1 = Part.HybridShapeFactory Dim hybridShapePointCoord2 As HybridShapePointCoord Set hybridShapePointCoord2 = hybridShapeFactory1.AddNewPointCoordWithReference(0#, 0#, 0#, reference1) hybridShapePointCoord2.Name = "Test" Dim reference2 As Reference Set reference2 = Part.CreateReferenceFromObject(hybridShapePointCoord2) Dim hybridShapeSphere1 As HybridShapeSphere Set hybridShapeSphere1 = hybridShapeFactory1.AddNewSphere(reference2, Nothing, DiaMm, -45#, 45#, 0#, 180#) If DiaMm = "2,5" Then hybridShapeSphere1.Name = "2-WSP-S" ElseIf DiaMm = "3,5" Then hybridShapeSphere1.Name = "3-WSP-S" Else End If hybridShapeSphere1.Limitation = 1 Part.Update Next End Sub
Das Problem was ich nun habe ist, das er den "Test" Punkt immer unter die Sphäre hängt(Siehe Screenshot). Das soll er aber nicht tun. Kann mir jemand sagen warum er das macht oder wie man das ändern kann. Noch ein paar sachen die ganz nett wären wenn sie schnell umsetzbar sind - kann man die neuen Punkte in ein Neues Gesoset hängen oder sogar die Sphären und die Punkte in ein jewails eigenes? - und kann man den Teil wo ich der Sphäre einen Namen gebe noch erweitern so das er eine farbe mit einstellt? Danke im vorraus  Gruß Josh [Diese Nachricht wurde von joshuader6 am 28. Mai. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Mai. 2014 11:31 <-- editieren / zitieren --> Unities abgeben:          Nur für joshuader6
Servus Zum Anordnen des Punktes in einem GeoSet: Code: hybridbody1.AppendHybridShape hybridShapePointCoord2
Dadurch dass du beim "Appenden" unterschiedliche GeoSet angibst kann du die Elemente entsprechend anordnen. Zum einfärben: Objekt (zB die Späre) selektieren und über VisProperties die Farbe angeben (siehe Makrorekorder, Doku oder Forensuche) Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joshuader6 Mitglied Technischer Produktdesigner

 Beiträge: 17 Registriert: 06.03.2014 Catia V5R19 Inventor 2014
|
erstellt am: 28. Mai. 2014 12:23 <-- editieren / zitieren --> Unities abgeben:         
Danke für die schnelle Antwort das mit dem Appenden klappt super nur die vis properties bekomm ich net zum laufen. bzw es hängt am selektieren. Hier mal der Part wo die Sphären generiert werden. Code: Dim hybridShapeSphere1 As HybridShapeSphere Set hybridShapeSphere1 = hybridShapeFactory1.AddNewSphere(reference2, Nothing, DIaMm, -45#, 45#, 0#, 180#) hybridbody3.AppendHybridShape hybridShapeSphere1 Dim objsel As Selection Set ojselect = hybridShapeSphere1 If DIaMm = "2,5" Then hybridShapeSphere1.Name = "2-WSP-S" objsel.VisProperties.SetRealColor 0, 0, 255, 0 ElseIf DIaMm = "3,5" Then hybridShapeSphere1.Name = "3-WSP-S" End If
Ich hab diverse mehtoden probiert, aber keine selektiert mir das Objekt. Danke im Vorraus
Gruß Josh Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Mai. 2014 12:26 <-- editieren / zitieren --> Unities abgeben:          Nur für joshuader6
Servus Du musst das Element der Selektion hinzufügen: Code: Dim objsel As Selection Set ojselect = Document.Selection ojselect.clear ojselect.add hybridShapeSphere1 If DIaMm = "2,5" Then hybridShapeSphere1.Name = "2-WSP-S" objsel.VisProperties.SetRealColor 0, 0, 255, 0 ElseIf DIaMm = "3,5" Then hybridShapeSphere1.Name = "3-WSP-S" End If ojselect.clear
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joshuader6 Mitglied Technischer Produktdesigner

 Beiträge: 17 Registriert: 06.03.2014 Catia V5R19 Inventor 2014
|
erstellt am: 28. Mai. 2014 13:27 <-- editieren / zitieren --> Unities abgeben:         
Aaaaah vielen danke jetzt läuft es aber die die visproperties Zeile ändert die Farbe nicht  weist du woran das liegen kann ? ich hab es mit realcolor und visiblecolor versucht aber die Farbe bleibt die Standardfarbe Danke im Vorraus Gruß Josh Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joshuader6 Mitglied Technischer Produktdesigner

 Beiträge: 17 Registriert: 06.03.2014 Catia V5R19 Inventor 2014
|
erstellt am: 04. Jun. 2014 08:20 <-- editieren / zitieren --> Unities abgeben:         
Okay das hab ich nun auch gelöst bekommen. ich musste nur das Objekt erst updaten und dann die Farbe setzen. Aber jetzt noch eine Frage ist es möglich das man alle punkte in dem geoset auswählt auch die in geosets darunter ? vielen dank im Vorraus Gruß Josh Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Jun. 2014 08:33 <-- editieren / zitieren --> Unities abgeben:          Nur für joshuader6
Servus Root-GeoSet selektieren und über die Suche in der Selektion nach den Punkten suchen. (Makrorekorder liefert passenden Suchstring) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joshuader6 Mitglied Technischer Produktdesigner

 Beiträge: 17 Registriert: 06.03.2014 Catia V5R19 Inventor 2014
|
erstellt am: 04. Jun. 2014 09:51 <-- editieren / zitieren --> Unities abgeben:         
Okay hab ich gemacht er sucht auch richtig allerdings habe ich nun das Problem das er mir einen Type mismatch in der "set" zeile ausspuckt. Code: 'SetPoints Selection.Search "CATGmoSearch.Point,sel"Dim hybridShapes1 As HybridShapes Set hybridShapes1 = Selection.Item(1)
Das lieget denk ich daran, das er nicht nur Punkte sondern auch Symmetries und Intersects findet. Diese sind zwar auch punkte also ist die Selektion richtig aber ich glaube damit kommt er nicht klar. Also kann ich die gefundenen elemente dem hybridshapes1 zuweisen ? Gruß Josh
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Jun. 2014 09:55 <-- editieren / zitieren --> Unities abgeben:          Nur für joshuader6
Servus Das nur bestimmte Punkte gefunden werden musst du die Suche einschränken (siehe hier). Müsste die Zeile nicht: Code: Set hybridShapes1 = Selection.Item(1).value
heißen? Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joshuader6 Mitglied Technischer Produktdesigner

 Beiträge: 17 Registriert: 06.03.2014 Catia V5R19 Inventor 2014
|
erstellt am: 04. Jun. 2014 10:12 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Jun. 2014 11:51 <-- editieren / zitieren --> Unities abgeben:          Nur für joshuader6
Servus Über .item(1).value wird das erste Element zurück geliefert. Dies kann nicht vom Typ "HybridShape s" sein eher zB hybridShape oder HybridPoint Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joshuader6 Mitglied Technischer Produktdesigner

 Beiträge: 17 Registriert: 06.03.2014 Catia V5R19 Inventor 2014
|
erstellt am: 04. Jun. 2014 19:20 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Jun. 2014 22:07 <-- editieren / zitieren --> Unities abgeben:          Nur für joshuader6
Servus Zwischenspeichern musst du die Selektion nur wenn du weiter parallel wieder was selektierten oder suchen willst. Zwischenspeichern geht über das Füllen zB eines Arrays mit den Objekten der Selektion: Code:
selection.Search "CATGmoSearch.Point,sel" Dim oSelArray() As Variant ReDim oSelArray(selection.Count2) For i = 1 To selection.Count2 Set oSelArray(i) = selection.Item2(i).Value Next
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |