Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Problem mit dem Befehl: AddNewLinePtPt

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:  Problem mit dem Befehl: AddNewLinePtPt (1076 mal gelesen)
tonka
Mitglied



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

Beiträge: 59
Registriert: 18.07.2006

erstellt am: 18. Jul. 2006 10:21    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

Hy @ all!

Ich hoffe jemand von euch kann mir helfen.

Vorab:Ich benutze CATIA V5 R14 Service Pack 4 und ich programmieren mit VBA(CATIA)

Aufgabenstellung: Ich habe in einem Part eine Fläche. Ich möchte das ich zwischen zwei Eckpunkten dieser Fläche, die vom Benutzer mittels SelectElement2-Function ausgewählt werden, eine Linie erzeugen.

Ich habe es schon auf viel Arten versucht z.B. mit CreateReferenceFromObject,BRepName,Name,Geometry doch nichts funktioniert wirklich. Zum Schluss habe ich es mit Stringmanipulation probiert, wie man es im nachfolgenden Codeausschnitt auch sieht. Dieser funktioniert nur selten. Ich muss diese Problem dringen lösen, da ich es in meiner Arbeit benötige.

Die beiden Punkte werden über ein Interface abgefragt und sind daher im folgenden Code schon vorhanden.

=> hier treten immer diverse Fehlermeldungen auf

Function zeichnen()

    Dim Bauteil As Part
    Set Bauteil = CATIA.ActiveDocument.Part
    Dim Wzk3D As Factory
    Set Wzk3D = Bauteil.HybridShapeFactory
   
    Dim HBody As HybridBody
    Set HBody = Bauteil.InWorkObject
   
    Dim RefP1, RefP2 As Reference
   
    Dim text, text2 As String
    text = AuswahlPunkt1.Name
    text = Replace(text, "GSMAssemble.1", "WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14), hybridShapeAssemble1")
    text = Replace(text, "GSMAssemble.1", "hybridShapeAssemble1")
    text = Replace(text, "Selection_", "")
    text2 = AuswahlPunkt2.Name
    text2 = Replace(text, "GSMAssemble.1", "WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14), hybridShapeAssemble1")
    text2 = Replace(text, "Selection_", "")
    AuswahlPunkt1.Name = text //Hier wird im die Fehlermeldung ausgegeben, dass das Verfahren Name nicht möglich ist. WARUM???

    Set RefP1 = Bauteil.CreateReferenceFromName(text) '(AuswahlPunkt1.Name)
    Set RefP2 = Bauteil.CreateReferenceFromName(text2) '(AuswahlPunkt2.Name)
   
    Dim Linie As HybridShapeLinePtPt
    Set Linie = Wzk3D.AddNewLinePtPt(RefP1, RefP2)
   
    HBody.AppendHybridShape Linie
   
    zeichnen = 0
   
    Bauteil.Update

End Function


DANKE im vorhinein

MFG
Tonka

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 18. Jul. 2006 13:08    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 tonka 10 Unities + Antwort hilfreich

Hallo Tonka,

wenn die 2 Punkte schon ausgewählt sind, muß man doch keine Referenz mehr bilden.
Über Selection.Item(1).Reference erreicht man die Referenz auf das ausgewählte Objekt.

Beispiel:

    Dim Inp(0)
    Inp(0) = "Vertex"
    oSel.Clear
    oSel.SelectElement2 Inp, "Eckpunkt 1 auswählen", False
    Dim oRef1 As Reference
    Set oRef1 = oSel.Item(1).Reference
    oSel.Clear
    oSel.SelectElement2 Inp, "Eckpunkt 2 auswählen", False
    Dim oRef2 As Reference
    Set oRef2 = oSel.Item(1).Reference
    oSel.Clear

    Dim Linie As HybridShapeLinePtPt
    Set Linie = Wzk3D.AddNewLinePtPt(oRef1, oRef2)
    HBody.AppendHybridShape Linie

Gruß
Steffen

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

tonka
Mitglied



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

Beiträge: 59
Registriert: 18.07.2006

erstellt am: 18. Jul. 2006 13:33    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

Danke Steffen!

Danke für deine Antwort, jedoch hat das leider nichts geändert. Bekommen trotzdem diese Fehlermeldung: "Object doesn't support this property or method".


Function zeichnen()

    Dim Bauteil As Part
    Set Bauteil = CATIA.ActiveDocument.Part
    Dim Wzk3D As Factory
    Set Wzk3D = Bauteil.HybridShapeFactory
   
    Dim HBody As HybridBody
    Set HBody = Bauteil.InWorkObject
   
    Dim RefP1 As Reference, RefP2 As Reference, Ref As Reference
    Dim Punkt As HybridShapePointCoord
   
    Set RefP1 = AuswahlPunkt1.Reference
    Set RefP2 = AuswahlPunkt2.Reference
   
    Dim Linie As HybridShapeLinePtPt
    Set Linie = Wzk3D.AddNewLinePtPt(RefP1, RefP2)

End Function

Setzte ich deinen Source-Code ein, bekomme ich in der gleichen Zeile den Fehler: "Object required"

Function zeichnen()

    Hinterschnitt.Hide
    Dim oSel As Object
    Set oSel = CATIA.ActiveDocument.Selection
    Dim Inp(0)
    Inp(0) = "Vertex"
    oSel.Clear
    oSel.SelectElement2 Inp, "Eckpunkt 1 auswählen", False
    Dim oRef1 As Reference
    Set oRef1 = oSel.Item(1).Reference
    oSel.Clear
    oSel.SelectElement2 Inp, "Eckpunkt 2 auswählen", False
    Dim oRef2 As Reference
    Set oRef2 = oSel.Item(1).Reference
    oSel.Clear

    Dim Linie As HybridShapeLinePtPt
    Set Linie = Wzk3D.AddNewLinePtPt(oRef1, oRef2)
    Hinterschnitt.Show

End Function

Hast vielleicht noch eine andere Lösung bzw. Erklärung

MfG
Tonka

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 18. Jul. 2006 13:43    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 tonka 10 Unities + Antwort hilfreich

Hallo tonka,

es fehlt die Definition von Wzk3D.

    Dim Wzk3D As Factory
    Set Wzk3D = Bauteil.HybridShapeFactory

Gruß
Steffen

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

tonka
Mitglied



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

Beiträge: 59
Registriert: 18.07.2006

erstellt am: 18. Jul. 2006 13: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

Hey Steffen!

Danke für deine schnell Anwort, leider gehts trotzdem nicht, aber die Fehlermeldung hat sich geändert: "Object doesn't support this property or method". Könnte das eventuell an den Lizenzen liegen oder durch irgendetwas anderes gesperrt sein? Oder kann es daran liegen, das die Flächen "tote" Flächen sind. Diese wurden nämlich mittels igs-format eingespielt! Das Problem is zum Verzweifeln


Function zeichnen()

    Hinterschnitt.Hide
    Dim Wzk3D As Factory
    Set Wzk3D = CATIA.ActiveDocument.Part.HybridShapeFactory
    Dim oSel 'As Object
    Set oSel = CATIA.ActiveDocument.Selection
    Dim Inp(0)
    Inp(0) = "Vertex"
    oSel.Clear
    oSel.SelectElement2 Inp, "Eckpunkt 1 auswählen", False
    Dim oRef1 As Reference
    Set oRef1 = oSel.Item(1).Reference
    oSel.Clear
    oSel.SelectElement2 Inp, "Eckpunkt 2 auswählen", False
    Dim oRef2 As Reference
    Set oRef2 = oSel.Item(1).Reference
    oSel.Clear

    Dim Linie As HybridShapeLinePtPt
    Set Linie = Wzk3D.AddNewLinePtPt(oRef1, oRef2)
    Hinterschnitt.Show

End Function

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 18. Jul. 2006 14:18    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 tonka 10 Unities + Antwort hilfreich

Hallo tonka,

probier es mal damit:

Function zeichnen()

    Hinterschnitt.Hide
    Dim oDoc As PartDocument
    Set oDoc = CATIA.ActiveDocument
    Dim Wzk3D As Factory
    Set Wzk3D = oDoc.Part.HybridShapeFactory
    Dim oSel 'As Object
    Set oSel = oDoc.Selection
    Dim Inp(0)
    Inp(0) = "Vertex"
    oSel.Clear
    oSel.SelectElement2 Inp, "Eckpunkt 1 auswählen", False
    Dim oRef1 As Reference
    Set oRef1 = oSel.Item(1).Reference
    oSel.Clear
    oSel.SelectElement2 Inp, "Eckpunkt 2 auswählen", False
    Dim oRef2 As Reference
    Set oRef2 = oSel.Item(1).Reference
    oSel.Clear

    Dim Linie As HybridShapeLinePtPt
    Set Linie = Wzk3D.AddNewLinePtPt(oRef1, oRef2)
    Hinterschnitt.Show

End Function

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 18. Jul. 2006 14:27    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 tonka 10 Unities + Antwort hilfreich

Und zum Schluß nicht das AppendHybridShape vergessen!

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

tonka
Mitglied



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

Beiträge: 59
Registriert: 18.07.2006

erstellt am: 18. Jul. 2006 14:33    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

Hey Steffen!

Das mit dem AppendHybridShape war klar. Super großes danke, es funktioniert. DANKE,DANKE,DANKE   

Schönen Tag noch.

MfG
Tonka

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