Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Punkt mit CommandButton

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Punkt mit CommandButton (971 mal gelesen)
sawah
Mitglied



Sehen Sie sich das Profil von sawah an!   Senden Sie eine Private Message an sawah  Schreiben Sie einen Gästebucheintrag für sawah

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 30. Jun. 2011 10:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 30. Jun. 2011 10:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sawah 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von sawah an!   Senden Sie eine Private Message an sawah  Schreiben Sie einen Gästebucheintrag für sawah

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 30. Jun. 2011 11:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 30. Jun. 2011 11:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sawah 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von sawah an!   Senden Sie eine Private Message an sawah  Schreiben Sie einen Gästebucheintrag für sawah

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 30. Jun. 2011 16:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Bernd,

nee klappt auch net. Danke.

Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 30. Jun. 2011 16:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sawah 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von sawah an!   Senden Sie eine Private Message an sawah  Schreiben Sie einen Gästebucheintrag für sawah

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 01. Jul. 2011 09:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 01. Jul. 2011 09:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sawah 10 Unities + Antwort hilfreich

Servus
Ups, ändere mal die Zeile in:
Set intPointCoordObj = hybridBody1.HybridShapes.Item("Punkt_b")

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Konstrukteur (m/w/d)
<...
Anzeige ansehenKonstruktion, Visualisierung
sawah
Mitglied



Sehen Sie sich das Profil von sawah an!   Senden Sie eine Private Message an sawah  Schreiben Sie einen Gästebucheintrag für sawah

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 01. Jul. 2011 09:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

ja genau  . VIELEN DANK

Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz