|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | 
|  |  | 
|  | KISTERS 3DViewStation: verbesserte Effizienz durch optimierte Bedienoberfläche, eine Pressemitteilung 
 | 
| Autor | Thema:  Skizze einer Tasche tauschen (Sheetmetal) (2419 mal gelesen) | 
 | mycon Mitglied
 
 
  
 
      Beiträge: 58Registriert: 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: 12117Registriert: 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: 58Registriert: 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: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 07. Aug. 2011 23:40  <-- editieren / zitieren -->    Unities abgeben:           Nur für mycon   | 
                        | mycon Mitglied
 
 
  
 
      Beiträge: 58Registriert: 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: 118Registriert: 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 Partpart1 = partDocument1.Part
         Dim bodies1 As Bodiesbodies1 = part1.Bodies
         Dim body1 As Bodybody1 = bodies1.Item("Hauptkörper")
         Dim shapes1 As Shapesshapes1 = body1.Shapes
         Dim CutOut As PocketCutOut = shapes1.Item("MeineTasche")
 '---- Ende des Auflösungsscripts
         Dim pSketch As SketchpSketch = CutOut.Sketch
         '---- Anfang des Auflösungsscripts für Objekt: Skizze.1 und Skizze.2Dim sketches1 As Sketches
 sketches1 = body1.Sketches
         Dim sketch1 As Sketchsketch1 = sketches1.Item("Skizze.1")
         Dim sketch2 As Sketchsketch2 = sketches1.Item("Skizze.2")
         Dim sketch1Ref As Referencesketch1Ref = part1.CreateReferenceFromObject(sketch1)
         Dim sketch2Ref As Referencesketch2Ref = 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 |