| |
| KISTERS 3DViewStation: Mit 3D-Montageanleitungen werden Produkte bei der Fertigung lebendig, eine Pressemitteilung
|
Autor
|
Thema: Isolierte Punkte (1271 mal gelesen)
|
aendue Mitglied
Beiträge: 1 Registriert: 16.03.2016 CATIA V5-6 R2014
|
erstellt am: 16. Mrz. 2016 15:32 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein CATPart mit mehreren Isolierten Punkten vom Type HybridshapePointExplicit. Da die Punkte ja isoliert sind (Roter Blitz) kann ich die Koordinaten nicht abfragen, bzw. das Objekt hat die Values dafür nicht. Wenn ich einen Doppelklick auf den Punkt machen, ist es möglich den diesen neu zu definieren zb als hybridshapePointCoords. Die Koordinaten werden dabei vorgegeben Da das bei vielen punkten mühsam ist, würde ich das gerne als VBA Skript schreiben. Hat jemand vielleicht eine Idee, wie ich an die Koordinaten herankomm oder kann ich einen neuen Punkt mit einer Referenz auf den alten erstellen erstellen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 16. Mrz. 2016 15:47 <-- editieren / zitieren --> Unities abgeben: Nur für aendue
Servus Willkommen im Forum. Bitte Systeminfo ausfüllen. Vielleicht ist es einfach die Punktekoordinaten zu exportieren und danach aus dem Export die Punkte neu anlegen zu lassen. Schau dir mal auf Catia.cad.de nach, ob die Makros dort auch isolierte Punkte exportieren können. Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ptit.tom Mitglied CAD-Berater
Beiträge: 115 Registriert: 11.02.2005 win10, CATIA R19 bis R30
|
erstellt am: 17. Mrz. 2016 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für aendue
Guten Morgen, Über SPAWorkbench können die Koordinaten gemessen werden. Anschließen sollte die Punkte neu erzeugt werden. Ich kenne keinen Weg die Punkt umzuwandeln (also explizit -> Koordinaten ). Hier ein Beispiel (VBA), um die Koordinaten eines selektierten Punkt (zerodim) zu lesen:
Code: Sub CATMain() Dim oDoc As Document Dim cSelection 'As Selection Dim oPart As Part Set oDoc = CATIA.ActiveDocument Set cSelection = oDoc.Selection Set oPart = oDoc.Part Dim SPAWwb 'As SPAWorkbench Set SPAWwb = oDoc.GetWorkbench("SPAWorkbench") Dim InputObjectType(1) Dim oPoint 'As Point Dim sFilter(0) As Variant Dim sReturn As String
sFilter(0) = "ZeroDim" 'um beliebige Punkte zu selektieren, auch intersection, Projection, usw. cSelection.Clear Dim RefPoint As Reference sReturn = cSelection.SelectElement2(sFilter, "Select a Point", False) Debug.Print cSelection.Item(1).Type Debug.Print "Point selected: " & cSelection.Item(1).Value.Name Set oPoint = cSelection.Item(1).Value Set oRefPoint = oPart.CreateReferenceFromObject(oPoint) Dim Coordinates(2) As Variant Dim NewMeasurable 'As Measurable Set NewMeasurable = SPAWwb.GetMeasurable(oRefPoint) On Error Resume Next NewMeasurable.GetPoint Coordinates If Err.Number <> 0 Then 'first element isn't a point feature Debug.Print "Error" Exit Sub End If On Error GoTo 0 Debug.Print "Name: " & oRefPoint.DisplayName Debug.Print "X: " & Coordinates(0) Debug.Print "Y: " & Coordinates(1) Debug.Print "Z: " & Coordinates(2) End Sub
[Diese Nachricht wurde von ptit.tom am 17. Mrz. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Mitglied Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 17. Mrz. 2016 13:00 <-- editieren / zitieren --> Unities abgeben: Nur für aendue
Hi aendue, probier's mal so:
Code:
Sub CATMain() Dim oAD As PartDocument Dim oSel As Selection Dim oPT As HybridShape Dim ptcoord(2) Set oAD = CATIA.ActiveDocument Set oSel = oAD.Selection oSel.Clear oSel.Search "CATGmoSearch.Point,all" For n = 1 To oSel.Count2 Set oPT = oSel.Item2(n).Value oPT.GetCoordinates ptcoord Debug.Print oPT.Name, ptcoord(0), ptcoord(1), ptcoord(2) Next End Sub
Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 17. Mrz. 2016 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für aendue
|
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 17. Mrz. 2016 13:43 <-- editieren / zitieren --> Unities abgeben: Nur für aendue
Servus Uwe Achsensysteme kann man direkt wieder auf "Standard" setzen. zB Code: Sub CATMain()Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim selection1 As Selection Set selection1 = partDocument1.Selection selection1.Search "CATPrtSearch.AxisSystem,all" dim i as integer dim oAxissystem as AxisSystem if selection1.count2 <> 0 then for i = 1 to selection1.count2 set oAxissystem = selection1.item2(i).value if oAxissystem.Type = 3 then oAxissystem.Type = 0 end if next end if End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Mitglied Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 17. Mrz. 2016 13:47 <-- editieren / zitieren --> Unities abgeben: Nur für aendue
Hi Uwe, was genau? Die Lage und Ausrichtung? Eines isolierten Achsensystems? Gleiches Schema:
Code:
Sub CATMain2() Dim oAD As PartDocument Dim oSel As Selection Dim oAx As Object 'AxisSystem Dim ptcoord(2) Dim arrX(2) Dim arrY(2) Dim arrZ(2) Set oAD = CATIA.ActiveDocument Set oSel = oAD.Selection oSel.Clear oSel.Search "CATGmoSearch.AxisSystem,all" For n = 1 To oSel.Count2 Set oAx = oSel.Item2(n).Value oAx.GetOrigin ptcoord Debug.Print oAx.Name, ptcoord(0), ptcoord(1), ptcoord(2) oAx.GetXAxis arrX Debug.Print oAx.Name, arrX(0), arrX(1), arrX(2) oAx.GetYAxis arrY Debug.Print oAx.Name, arrY(0), arrY(1), arrY(2) oAx.GetZAxis arrZ Debug.Print oAx.Name, arrZ(0), arrZ(1), arrZ(2) Next End Sub
Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 17. Mrz. 2016 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für aendue
|