Autor
|
Thema: Punkt im Schwerpunkt einer beliebigen Fläche erstellen (2798 / mal gelesen)
|
student1992 Mitglied Student
Beiträge: 98 Registriert: 03.05.2017
|
erstellt am: 18. Jan. 2018 09:49 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen zusammen, ich möchte gerne ein Punkt auf einer Fläche erstellen, der im Mittelpunkt liegt. Am besten im Schwerpunkt. Wenn ich die Fläche manuell messe, besteht die Möglichkeit unter Create Geometry ein Punkt in der Mitte zu erstellen. Soweit ich weiß, kann diese Auswahl in VBA nicht programmiert werden, richtig? Gibt es eine andere Möglichkeit einen Punkt in der mitte einer Fläche zu erstellen? Vielen Dank im Voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 18. Jan. 2018 10:07 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
Servus Du könntest einen Punkt per Formel definieren (siehe Bild). Also entweder Parameter vom Typ Punkt anlegen, oder Punkt erstellen und dann isolieren. Diesen Punkt kannst du dann mit einer Formel versehen. Oder falls der Punkt nicht assoziativ sein soll: Schwerpunkt messen und Punkt mit den Koordinaten erstellen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KADv5 Mitglied Ingenieur
Beiträge: 13 Registriert: 22.01.2018 Intel Xeon E5-2643 3,4Ghz 12,0 GB Ram Win 7 Enterprise 64-bit Catia V5R26 SP3 HF21
|
erstellt am: 29. Jan. 2018 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
Hi, einen Punkt im Schwerpunkt der Fläche zu erzeugen geht auch mit: hybridShapePointOnSurface1 mit distance = 0mm Das folgende Makro fragt den Nutzer nach einem Input (Fläche) und erzeugt ein GeoSet mit dem Namen "{Punkt_auf_Fläche}" und darin einen Punkt mit dem Namen "{Schwerpunkt}" EDIT 30.01.2018: Das hier stehende Makro erzeugt nicht den Schwerpunkt sondern den Mittelpunkt Für Schwerpunkt siehe unten (Antwort 5) Code:
Sub CATMain() Dim myDoc As Document Set myDoc = CATIA.ActiveDocument Dim MyPart As Part Set MyPart = myDoc.Part Dim Factory As HybridShapeFactory Set Factory = MyPart.HybridShapeFactory Dim HBodies As HybridBodies Set HBodies = MyPart.HybridBodies Dim myobj1 As Object Dim ref1 As Reference Dim Flaeche(0) Flaeche(0) = "HybridShape" Dim Usersel1 As Object Set Usersel1 = myDoc.Selection Usersel1.Clear Dim E1 As String E1 = Usersel1.SelectElement2(Flaeche, "Fläche wählen!", False) If E1 = "Normal" Then Set myobj1 = Usersel1.Item(1).Value Set ref1 = MyPart.CreateReferenceFromObject(myobj1) Usersel1.Clear Dim GeoPunkt As HybridBody Set GeoPunkt = HBodies.Add GeoPunkt.Name = "{Punkt_auf_Flaeche}" Dim hybridShapeDirection1 As HybridShapeDirection Set hybridShapeDirection1 = Factory.AddNewDirectionByCoord(0#, 1, 1) Dim hybridShapePointOnSurface1 As HybridShapePointOnSurface Set hybridShapePointOnSurface1 = Factory.AddNewPointOnSurface(ref1, hybridShapeDirection1, 0#) GeoPunkt.AppendHybridShape hybridShapePointOnSurface1 hybridShapePointOnSurface1.Name = "{Schwerpunkt}" MyPart.InWorkObject = hybridShapePointOnSurface1 MyPart.Update Else MsgBox ("Abbruch durch Benutzer") End If End Sub
[Diese Nachricht wurde von KADv5 am 30. Jan. 2018 editiert.] [Diese Nachricht wurde von KADv5 am 30. Jan. 2018 editiert.] [Diese Nachricht wurde von KADv5 am 30. Jan. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
C.Samer Mitglied CAD Administrator
Beiträge: 72 Registriert: 03.05.2017
|
erstellt am: 29. Jan. 2018 15:43 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
Zitat: Original erstellt von KADv5: Hi,einen Punkt im Schwerpunkt der Fläche zu erzeugen geht auch mit: hybridShapePointOnSurface1 mit distance = 0mm
KADv5 hat meiner Meinung nach den richtigen Ansatz. Eine Fläche hat keine Stärke und daher auch keinen Schwerpunkt. Da Punkte auf Flächen bei der Standardeinstellung von der Mitte weg erzeugt werden werden, reicht es den Abstand auf 0 zu setzen. Liebe Grüße aus Wien, Christoph [Diese Nachricht wurde von C.Samer am 29. Jan. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JPF Mitglied Programmierer
Beiträge: 128 Registriert: 17.08.2001 CATIA V5R19 SP9--HP420,Intel(R) Xeon(R) CPU E5-1620 3.60GHz,32 GB Ram, NVIDIA Quadro 2000--Windows 7 Enterprise 64bit
|
erstellt am: 30. Jan. 2018 07:36 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
|
KADv5 Mitglied Ingenieur
Beiträge: 13 Registriert: 22.01.2018 Intel Xeon E5-2643 3,4Ghz 12,0 GB Ram Win 7 Enterprise 64-bit Catia V5R26 SP3 HF21
|
erstellt am: 30. Jan. 2018 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
Du hast Recht Mir war nicht Bewusst dass es bei einer Fläche einen Unterschied zwischen Mittelpunkt und Schwerpunkt gibt. Ich habe das Makro umgeschrieben. Jetzt erzeugt es den Schwerpunkt der Fläche - allerdings nicht assoziativ. Code:
Sub CATMain() Dim myDoc As Document Set myDoc = CATIA.ActiveDocument Dim MyPart As Part Set MyPart = myDoc.Part Dim Factory As HybridShapeFactory Set Factory = MyPart.HybridShapeFactory Dim HBodies As HybridBodies Set HBodies = MyPart.HybridBodies Dim myobj1 As Object Dim ref1 As Reference Dim Flaeche(0) Flaeche(0) = "HybridShape" Dim Usersel1 As Object Set Usersel1 = myDoc.Selection Usersel1.Clear Dim E1 As String E1 = Usersel1.SelectElement2(Flaeche, "Fläche wählen!", False) If E1 = "Normal" Then Set myobj1 = Usersel1.Item(1).Value Set ref1 = MyPart.CreateReferenceFromObject(myobj1) Usersel1.Clear Dim GeoPunkt As HybridBody Set GeoPunkt = HBodies.Add GeoPunkt.Name = "{Schwerpunkt_auf_Flaeche}" Dim TheSPAWorkbench, TheMeasurable Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench") Set TheMeasurable = TheSPAWorkbench.GetMeasurable(ref1) Dim Coordinates(2) TheMeasurable.GetCOG Coordinates Dim hybridShapePointCoord1 As HybridShapePointCoord Set hybridShapePointCoord1 = Factory.AddNewPointCoord(Coordinates(0), Coordinates(1), Coordinates(2)) GeoPunkt.AppendHybridShape hybridShapePointCoord1 hybridShapePointCoord1.Name = "{Schwerpunkt}" MyPart.InWorkObject = hybridShapePointCoord1 MyPart.Update Else MsgBox ("Abbruch durch Benutzer") End If End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
C.Samer Mitglied CAD Administrator
Beiträge: 72 Registriert: 03.05.2017
|
erstellt am: 08. Feb. 2018 08:56 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
@JPF: Ich dachte immer Geometrischer Schwerpunkt = Flächenmittelpunkt Hab's jedoch gerade in Catia probiert und tatsächlich ist der Punkt "On Surface" mit Abstand 0 (Default (Middle)) nicht das Center Of Gravity! Keine Ahnung wie Catia das Origin der Fläche definiert. Liebe Grüße aus Wien, Christoph [Diese Nachricht wurde von C.Samer am 08. Feb. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |