Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  VBA: Multisection

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co.
  
KISTERS 3DViewStation: Unterstützung für 3D CAD Kollaboration mit Lieferanten, eine Pressemitteilung
Autor Thema:  VBA: Multisection (2039 mal gelesen)
martinINPRO
Mitglied
Dipl.-Ing.


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

Beiträge: 21
Registriert: 24.06.2008

erstellt am: 04. Jul. 2008 15: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

Hallo!

Ich möchte eine Multisection erzeugen. Überlicherweise muss man bei geschlossenen Profilen(Sketch) einen Closing Point definieren. Ich habe bereits mehrere Varianten ausprobiert aber bisher ohne Erfolg. Folgender Code-Schnipsel funktioniert fast:

        Dim ref_sketch0, ref_sketch1, ref_sketch2 As Object
        Dim hsfLoft As MECMOD.HybridShape
        Dim ref_spine As Object
        ref_spine = Intf.GetPart().CreateReferenceFromObject(spine)
        ref_sketch0 = Intf.GetPart().CreateReferenceFromObject(sketch0)
        ref_sketch1 = Intf.GetPart().CreateReferenceFromObject(sketch1)
        ref_sketch2 = Intf.GetPart().CreateReferenceFromObject(sketch2)

        hsfLoft = Intf.GetHSFactory().AddNewLoft()

        hsfLoft.SectionCoupling = 1
        hsfLoft.Relimitation = 1
        hsfLoft.CanonicalDetection = 2

        Dim ref_pt0, ref_pt1, ref_pt2 As Object
        ref_pt0 = Intf.GetPart().CreateReferenceFromObject(ref_sketch0.GeometricElements.GetItem("Point.5"))
        ref_pt1 = Intf.GetPart().CreateReferenceFromObject(ref_sketch1.GeometricElements.GetItem("Point.5"))
        ref_pt2 = Intf.GetPart().CreateReferenceFromObject(ref_sketch2.GeometricElements.GetItem("Point.5"))


        hsfLoft.SetSpine(ref_spine)
        hsfLoft.AddSectionToLoft(ref_sketch0, 1, ref_pt0)
        hsfLoft.AddSectionToLoft(ref_sketch1, 1, ref_pt1)
        hsfLoft.AddSectionToLoft(ref_sketch2, 1, ref_pt2)

        Intf.GetHybridBody().AppendHybridShape(hsfLoft)


Das Loft-Feature (Multisection) wird angelegt. Die Geometrie wird aber nicht erzeugt. Die Fehlermeldung besagt, dass der Punkt.5 nicht mit der Skizze assoziiert ist. Was mache ich hier falsch?

Gruß, Martin

[Diese Nachricht wurde von martinINPRO am 04. Jul. 2008 editiert.]

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

Jens Hansen
Mitglied
CAx-Spezialist


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

Beiträge: 1056
Registriert: 05.08.2000

CATIA V5 R32
VB.Net
C#
WPF

erstellt am: 04. Jul. 2008 18:00    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 martinINPRO 10 Unities + Antwort hilfreich

Hallo,
ohne es jetzt nachgeprüft zu haben aber kann es sein, dass du ein und den selben Punkt für alle 3 Skizzen als Closing Point definierst?
Müssen es nicht 3 verschiedene Punkte sein, die jeweils auch auf der jeweiligen Skizzen liegen müssen?

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing

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

martinINPRO
Mitglied
Dipl.-Ing.


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

Beiträge: 21
Registriert: 24.06.2008

erstellt am: 07. Jul. 2008 08:32    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,

dadurch, dass ich die GetItem()-Funktion auf jeweils unterschiedlichen Skizzen anwende, wird meines erachtens der jeweilige Punkt der Skizze referenziert.

@Jens: Hast Du einen funktionsfähigen Code-Schnipsel?


Gruß, Martin

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

Jens Hansen
Mitglied
CAx-Spezialist


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

Beiträge: 1056
Registriert: 05.08.2000

CATIA V5 R32
VB.Net
C#
WPF

erstellt am: 07. Jul. 2008 12:11    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 martinINPRO 10 Unities + Antwort hilfreich

Ja schon, aber liegen denn auch real 3 Punkte mit dem Namen "Point.5" vor, die auf den jeweiligen Skizze liegen?
Meines verständnisses nach müssen 3 Punkte da sein; für jede Skizze einer.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing

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

martinINPRO
Mitglied
Dipl.-Ing.


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

Beiträge: 21
Registriert: 24.06.2008

erstellt am: 07. Jul. 2008 13:05    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

Ich habe drei Skizzen mit einem Skript erzeugt. Alle drei Skizzen sind somit gleichartig aufgebaut. In jeder Skizze ist somit ein "Punkt.5" vorhanden. Wie bereits am Anfang erwähnt, wird das Feature in CATIA angelegt. Die Fläche wird allerdings nicht erzeugt. Man kann das Feature mit Doppelklick öffnen und sich auch die Definition ansehen. Diese ist quasi in Ordnung. CATIA merkt aber folgendes an: "Part1: Element Point.5 has no associated geometry. Recreate the geometry."

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

martinINPRO
Mitglied
Dipl.-Ing.


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

Beiträge: 21
Registriert: 24.06.2008

erstellt am: 07. Jul. 2008 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

Ich glaube ich habe erstmal eine Hilfslösung gefunden. Mit der ich vielleicht weiterkomme, aber die noch nicht richtig tut! Im CATScribt kann man beipielsweise in der Funktion .AddSectionToLoft(skizze,1,nothing) das Wort "nothing" übergeben. In VBA bekommt man hier einen Typ-Konflikt. Wie kann ich nun in VBA hier ein "nichts" übergeben!?

Danke und Gruß, Martin

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

Jens Hansen
Mitglied
CAx-Spezialist


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

Beiträge: 1056
Registriert: 05.08.2000

CATIA V5 R32
VB.Net
C#
WPF

erstellt am: 07. Jul. 2008 17:32    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 martinINPRO 10 Unities + Antwort hilfreich

Versuchs mal mit ""

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing

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

martinINPRO
Mitglied
Dipl.-Ing.


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

Beiträge: 21
Registriert: 24.06.2008

erstellt am: 08. Jul. 2008 08:12    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

@Jens:

Das hatte ich bereits schon mal ausprobiert. Zur Sicherheit jetzt ein weiteres Mal. Es geht leider nicht!

hsfLoft.AddSectionToLoft(ref_sketch0, 1, "nothing")


Fehlermeldung: Typkonflikt. (Ausnahme von HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))

Ich behaupte, das "nothing" ein bestimmter Typ sein muss. Ein String tut nicht!


Gruß, Martin

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 08. Jul. 2008 08:45    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 martinINPRO 10 Unities + Antwort hilfreich


Hallo

hsfLoft.AddSectionToLoft(ref_sketch0, 1, "")

nur anführungszeichen ohne nothing !!

Gruß

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

martinINPRO
Mitglied
Dipl.-Ing.


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

Beiträge: 21
Registriert: 24.06.2008

erstellt am: 08. Jul. 2008 08: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

Nach einem Testlauf mit folgenden Versuchen:

hsfLoft.AddSectionToLoft(ref_sketch0, 1, "")        : Typkonflikt
hsfLoft.AddSectionToLoft(ref_sketch0, 1, 0)        : Typkonflikt
hsfLoft.AddSectionToLoft(ref_sketch0, 1, nothing)  : Typkonflikt
hsfLoft.AddSectionToLoft(ref_sketch0, 1, "nothing") : Typkonflikt
hsfLoft.AddSectionToLoft(ref_sketch0, 1, )          : Parameter nicht optional

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

ThomasJay
Mitglied
Dipl-Ing


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

Beiträge: 159
Registriert: 19.04.2011

CATIA V5 R19

erstellt am: 12. Jul. 2011 14:58    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 martinINPRO 10 Unities + Antwort hilfreich

Du musst die Klammern weglassen:

loft.AddSectionToLoft refline, 1, Nothing


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

therp
Mitglied



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

Beiträge: 23
Registriert: 31.08.2010

Precision M4600
Intel(R) Core™ i5-2520M CPU @ 2.50GHz 8145 MB
NVIDIA Quadro 2000M
Microsoft Windows 7 Enterprise Service Pack 1
Catia V5 R19 SP09 HF069

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

Guten Tag,

die Sache mit den Klammern weglassen funktioniert bei mir auch...

ich habe allerdings ein anderes Problem und dachte, ich füge es mal hier ein. Habe diesbzgl. leider nichts im Forum gefunden.

Ich habe ein Multisectionsurface über hybridshapeloft erstellt. Es basiert auf zwei (toten) Splines. Jetzt möchte ich das MSS kopieren, wieder tot einfügen und danach das MSS editieren.
Im MSS soll eine weitere Spline eingefügt werden und die erste soll gelöscht werden. Eigentlich funktioniert alles, ich bekomme die erste Spline allerdings nicht zu packen um sie zu löschen.

Ich hoffe ihr wisst was ich meine und könnt mir helfen.

MfG therp

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)2024 CAD.de | Impressum | Datenschutz