Autor
|
Thema: Punkt mit CommandButton (971 mal gelesen)
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 30. Jun. 2011 10:42 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich bitte um Hilfe, und zwar ich habe ein Code zu erzeugen von Punkt_b mit CommandButton, die Koordinaten vom Punkt werde ich ändern können. die Frage ist wie kann ich das optimieren das nur eine Punkt erzeugt wird(jedes mal wenn ich Koordinaten ändere un drauf klicke dann machte neue Punkt) Code: Set intPointCoordObj = intHybShapeFacObj.AddNewPointCoord((ws.Cells(38, 2).Value), (ws.Cells(38, 3).Value), (ws.Cells(38, 4).Value)) intHybBodyObj.AppendHybridShape intPointCoordObj Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part1.HybridBodies Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("Geometrical Set.1") Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridBody1.HybridShapes Dim hybridShapePointOnCurve1 As HybridShapePointOnCurve Set hybridShapePointOnCurve1 = hybridShapes1.Item("KOS_origin") Dim reference1 As Reference Set reference1 = part1.CreateReferenceFromObject(hybridShapePointOnCurve1) intPointCoordObj.PtRef = reference1 Dim axisSystems1 As AxisSystems Set axisSystems1 = part1.AxisSystems Dim axisSystem1 As AxisSystem Set axisSystem1 = axisSystems1.Item("KOS_1") Dim reference2 As Reference Set reference2 = part1.CreateReferenceFromObject(axisSystem1) intPointCoordObj.RefAxisSystem = reference2 intPointCoordObj.Name = "Punkt_b" Call update
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: 30. Jun. 2011 10:56 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Bitte Systeminfo ausfüllen. Du solltest zunächst prüfen, ob der Punkt mit dem Namen Punkt_b schon vorhanden ist, wenn ja nur die Koordinaten ändern. Wenn nein über "addNewPointCoord" den Punkt erzeugen. Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 30. Jun. 2011 11:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd ich habe das hier versucht klappt aber nicht. Code: Dim punkt_vorhanden As Boolean punkt_vorhanden = False Dim intPointCoordObj1 As HybridShapePointCoord For Each intPointCoordObj1 In CATIA.ActiveDocument.Part ????????FEHLER If intPointCoordObj.Name = "Punkt_b" Then punkt_vorhanden = True Set intPointCoordObj1 = intPointCoordObj End If Next intPointCoordObj1 If Not punkt_vorhanden Then Set intPointCoordObj1 = intHybShapeFacObj.AddNewPointCoord((ws.Cells(38, 2).Value), (ws.Cells(38, 3).Value), (ws.Cells(38, 4).Value)) intPointCoordObj1.Name = "Punkt_b" End If
Gruß Sawah 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: 30. Jun. 2011 11:35 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Anbei (ein ungetestetes) Beispiel über die Fehlerbehandlung festzustellen, ob der Punkt vorhanden ist: Code:
... 'Fehlbehandlung ausschalten, Objekt versuchen zuzuweisen dim intPointCoordObj as HybridShapePointCoord on error resume next err.clear Set intPointCoordObj = hybridBody1.item("Punkt_b") on error goto 0'Falls erfolgreich, Koordinaten ändern if err.number = 0 then intPointCoordObj.X.value = ws.Cells(38, 2).Value intPointCoordObj.Y.value = ws.Cells(38, 3).Value intPointCoordObj.Z.value = ws.Cells(38, 4).Value elseif 'Im Fehlerfall den Punkt neu erzeugen 'Hier Punkt erzeugen end if ....
Gruß Bernd------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 30. Jun. 2011 16:53 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 30. Jun. 2011 16:55 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Und was klappt nicht? Verfolge mal den Ablauf mit dem Watch-Fenster. Gruß Bernd EDIT: Verschieb mal das On Error GoTo 0 nach der If-Anweisung und ändere Else if in else. ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 30. Jun. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 01. Jul. 2011 09:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, ich habe das hier versucht:
Code: On Error Resume Next Err.Clear Set intPointCoordObj = hybridBody1.Item("Punkt_b") !!! hier err.Number 438 'Falls erfolgreich, Koordinaten ändern If Err.Number = 0 Then intPointCoordObj.X.Value = ws.Cells(38, 2).Value intPointCoordObj.Y.Value = ws.Cells(38, 3).Value intPointCoordObj.Z.Value = ws.Cells(38, 4).Value Else: Set intPointCoordObj = intHybShapeFacObj.AddNewPointCoord((ws.Cells(52, 2).Value), (ws.Cells(52, 3).Value), (ws.Cells(52, 4).Value)) intHybBodyObj.AppendHybridShape intPointCoordObj 'Im Fehlerfall den Punkt neu erzeugen 'Hier Punkt erzeugen End If On Error GoTo 0
Err.Number in Watches ist immer =! 0 punkt_b wird immer wieder erzeugt!! Gruß 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: 01. Jul. 2011 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
| |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 01. Jul. 2011 09:53 <-- editieren / zitieren --> Unities abgeben:
|