Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Skizze einer Tasche tauschen (Sheetmetal)

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:  Skizze einer Tasche tauschen (Sheetmetal) (2276 mal gelesen)
mycon
Mitglied



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

Beiträge: 58
Registriert: 14.02.2011

Catia V5R19

erstellt am: 07. Aug. 2011 17:44    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,

ich versuche gerade die Skizze einer Tasche durch eine andere bereits existierende zu ersetzen mittels VB.NET.
Den Body sowie mein Feature finde ich mit

Code:

        Dim CutOut As Object
        CutOut = oPart.part.mainbody.shapes.item("MeineTasche")

So, wenn ich das aber durch ein TypeName() jage und mir das ergebnis ausgeben lasse, bekomme ich "Solid" zurück. Nach Recherche hier sollte es doch eigentlich als "Pocket" oder ähnliches erkannt werden.
So wie es momentan ist bekomme ich Fehlermeldungen wenn ich versuche mit CutOut.Sketch.Name ausgeben zu lassen, ganz zu schweigen von einem Austausch der Skizze.

Die verschiedenen Skizzen die je nach Fall durchgewechselt werden sollen befinden sich in einem GeoSet. Die "alte" Skizze soll nicht gelöscht werden, sie soll nach wie vor in diesem GeoSet verbleiben.

Kann mich da mal jemand in die richtige Richtung stupsen wie ich da jetzt weiter kommen kann?

[Diese Nachricht wurde von mycon am 07. Aug. 2011 editiert.]

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: 07. Aug. 2011 18:09    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 mycon 10 Unities + Antwort hilfreich

Servus
Was ist bei dir oPart? (sollte nach dem Code nach das PartDocument sein) Hat es einen Grund warum du die Tasche nicht als Pocket dimensionierst?
Das Ausstaschen der Skizze sollten (wenn dein anderes Problem gelöst ist) über:
Code:
CutOut.SetProfileElement RefZurSkizze

gehen.

Gruß
Bernd

PS: mit VB.net kenne ich mich leider nicht aus.

Edit: Ich lese gerade, dass du dich im SheetMetal befindest: dann kann ich dir nicht weiterhelfen (SheetMetal scheint per Script nicht unterstützt zu werden)

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

[Diese Nachricht wurde von bgrittmann am 07. Aug. 2011 editiert.]

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

mycon
Mitglied



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

Beiträge: 58
Registriert: 14.02.2011

Catia V5R19

erstellt am: 07. Aug. 2011 19:13    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

Schön das Dassault die Erreichbarkeit für Scripte so konsequent durchzieht -.-

oPart ist das PartDocument, richtig.
Ich bekomme leider die Skizze nicht ausgetauscht.
Der Nachteil wenn man mit Visual Studio arbeitet ist der, das die Codecompletion nur sehr stark eingeschränkt funktioniert und das man alles allgemein definieren muss. Ich kann es nicht als Pocket oder ähnliches definieren, nur als Object.

Gibt es dann evntl. wenigstens eine Möglichkeit dieses Feature zu deaktivieren?
Ich habe schon die Hilfe zu "Solid" befragt, aber ich finde dort leider nichts un befürchte das schlimmste.

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: 07. Aug. 2011 23:40    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 mycon 10 Unities + Antwort hilfreich

Servus
Versuch mal den CutOut über:
Code:
oPart.part.InActivate CutOut
zu deaktivieren.

Gruß
Bernd

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

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

mycon
Mitglied



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

Beiträge: 58
Registriert: 14.02.2011

Catia V5R19

erstellt am: 08. Aug. 2011 12:07    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

Ok, das funktioniert immerhin.
Jetzt muss ich zwar etwas rumtricksen, aber das reicht mir denke erstmal.
Trotzdem sehr schade das das Dassault nicht besser unterstützt.

Vielen Dank für deine Hilfe.

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

meisterlumpi
Mitglied



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

Beiträge: 118
Registriert: 15.04.2011

Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64

erstellt am: 09. Aug. 2011 10:10    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 mycon 10 Unities + Antwort hilfreich

Hallo

Zitat:
Der Nachteil wenn man mit Visual Studio arbeitet ist der, das die Codecompletion nur sehr stark eingeschränkt funktioniert und das man alles allgemein definieren muss.

kann es sein, dass du im VS die entsprechenden Namespaces nicht importiert hast? Ansonsten kann ich diese Aussage nicht nachvollziehen

importiert werden:

Code:

Imports INFITF
Imports MECMOD

...

Hab mir grad ein simples Dokument mit einem Stück Blech gemacht, dann zwei skizzen darauf erstellt (Skizze.1, Skizze.2) und eine Tasche auf Skizze.1 definiert.
der folgende Code für den Klick auf Button1 tauscht dann die skizze.1 mit skizze.2 für die Tasche (und wieder zurück beim 2ten Klick). Das funktioniert auch in der Sheetmetal-Umgebung.
(oPart heißt hier partDocument1)

Code:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '---- Anfang des Auflösungsscripts für Objekt: MeineTasche
        Dim partDocument1 As PartDocument
        partDocument1 = CATIA.ActiveDocument

        Dim part1 As Part
        part1 = partDocument1.Part

        Dim bodies1 As Bodies
        bodies1 = part1.Bodies

        Dim body1 As Body
        body1 = bodies1.Item("Hauptkörper")

        Dim shapes1 As Shapes
        shapes1 = body1.Shapes

        Dim CutOut As Pocket
        CutOut = shapes1.Item("MeineTasche")
        '---- Ende des Auflösungsscripts

        Dim pSketch As Sketch
        pSketch = CutOut.Sketch

        '---- Anfang des Auflösungsscripts für Objekt: Skizze.1 und Skizze.2
        Dim sketches1 As Sketches
        sketches1 = body1.Sketches

        Dim sketch1 As Sketch
        sketch1 = sketches1.Item("Skizze.1")

        Dim sketch2 As Sketch
        sketch2 = sketches1.Item("Skizze.2")

        Dim sketch1Ref As Reference
        sketch1Ref = part1.CreateReferenceFromObject(sketch1)

        Dim sketch2Ref As Reference
        sketch2Ref = part1.CreateReferenceFromObject(sketch2)
        '---- Ende des Auflösungsscripts


        If pSketch Is sketch1 Then
            CutOut.SetProfileElement(sketch2Ref)
        Else
            CutOut.SetProfileElement(sketch1Ref)
        End If
        part1.Update()
    End Sub


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