| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | Erfolgreich unterwegs mit der KISTERS 3DViewStation, ein Whitepaper
|
Autor
|
Thema: Skizze einer Tasche tauschen (Sheetmetal) (2376 mal gelesen)
|
mycon Mitglied

 Beiträge: 58 Registriert: 14.02.2011 Catia V5R19
|
erstellt am: 07. Aug. 2011 17:44 <-- editieren / zitieren --> Unities abgeben:         
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
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Aug. 2011 18:09 <-- editieren / zitieren --> Unities abgeben:          Nur für mycon
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

 Beiträge: 58 Registriert: 14.02.2011 Catia V5R19
|
erstellt am: 07. Aug. 2011 19:13 <-- editieren / zitieren --> Unities abgeben:         
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
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Aug. 2011 23:40 <-- editieren / zitieren --> Unities abgeben:          Nur für mycon
|
mycon Mitglied

 Beiträge: 58 Registriert: 14.02.2011 Catia V5R19
|
erstellt am: 08. Aug. 2011 12:07 <-- editieren / zitieren --> Unities abgeben:         
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
 
 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 / zitieren --> Unities abgeben:          Nur für mycon
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 |