Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Automatische Zuweisung einer Skizze

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung
Autor Thema:  Automatische Zuweisung einer Skizze (1557 mal gelesen)
Dussel86
Mitglied
Kooperativer Student

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

Beiträge: 8
Registriert: 14.07.2009

erstellt am: 21. Jul. 2009 17:38    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 miteinander.

Ich schreibe gerade meine Bachelorarbeit, mit dem Zeil, Abläufe im NC-Bereich (PrismaticMachining) zu automatisieren.

Dazu würde ich gern zunächst eine Taschenfräsoperation kopieren und anschließend dieser kopierten Operation eine neue Kontur (Skizze) zuweisen. Das Kopieren der Operation funktioniert, jetzt hänge ich an der Konturzuweisung. Mein Problem dabei ist ziemlich grundsätzlicher Natur:
Die "Automation.chm" durchschaue ich mal gar nicht  . Deshalb habe ich auch keine Ahnung, wie und über welches Objekt ich auf die Kontur zugreifen kann. Was mir fehlt, sind also letztlich (wie ich vermute) nur zwei Zeilen:


Dim Variable As ...
Set Variable.... = ... (selektierte Skizze)


Die Skizze wähle ich der Einfachheit halber zunächst selbst aus, die Automatisierung erfolgt dann noch in einem seperaten Schritt, wenn ich dieses Probelm behoben habe.

Ich arbeite mit CatiaV5R18, es erfolgt in Kürze aber eine Umstellung auf R19. Ich programmiere noch mit CATSript. Meine Programmiererfahrung ist eher gering, während des Studiums hatte ich zwar Informatik (Programmierung in C), aber in der Makroprogrammierung bin ich offensichtlich ein absoluter Neuling.

Folgenden Thread - Programmierung mit NC - habe ich bereits gefunden. Grob hab ich den Ablauf auch verstanden, die Details bleiben mir bisher aber noch verschlossen. Als Grundlagen arbeite ich zunächst mit dem Buch von Ziethen ("Effiziente Konstruktion mit Makros") und dem Macro-Rekorder.

Ich hoffe, mir wird hier weitergeholfen. Vorweg schonmal schönen Dank.

Simon

------------------
Original von Grummel:
"Polen gehört zwar mittlerweile zur EU, aber deshalb haben sie noch lange nicht unseren DSL-Standard erreicht."
(06.2005)

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

DanielFr.
Ehrenmitglied V.I.P. h.c.
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 21. Jul. 2009 19:20    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 Dussel86 10 Unities + Antwort hilfreich

Hallo,

du hast eine Skizze selektiert und brauchst jetzt das SKizzenobjekt?

Code:
Dim mySkizze as Sketch
Set mySkizze = mySel.Item(1).Value


(wenn du zuvor die Skizze im 3D oder im Sktrukturbaum selektiert hast).

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

Dussel86
Mitglied
Kooperativer Student

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

Beiträge: 8
Registriert: 14.07.2009

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

Danke dir für die zügige Antwort, Daniel.

Allerdings brauche ich nicht die Skizze, sondern ich möchte diese Skizze jetzt einer Bearbeitungsoperation zuweisen. In etwa so:

Code:
Dim mySkizze as Sketch
Set mySkizze = mySel.Item(1).Value

Dim myBearbeitung as ManufacturingOperation
Set myBearbeitung.Kontur = mySkizze


Und diese fett-geschriebene Definition bleibt aufgrund der für mich undurchschaubaren V5Automation.chm vollkommen verborgen.

Vielleicht könnte mir ja jemand in Kürze erklären, wie ich mit dieser Hilfe arbeiten kann, damit ich solche Fragen auch allein herausfinden kann  .

Und nochmals herzlichen Dank,

Simon

------------------
Original von Grummel:
"Polen gehört zwar mittlerweile zur EU, aber deshalb haben sie noch lange nicht unseren DSL-Standard erreicht."
(06.2005)

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 22. Jul. 2009 18:51    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 Dussel86 10 Unities + Antwort hilfreich

Hallo Simon,

im V5Automation.chm ist die Objektstruktur von CATIA beschrieben.
Ganz hilfreich sind da die Beispiele (Use cases), die man unter Inhalt - Getting started... - Working with ... - Use Cases findet. Hier ist auch eine Grafik der Objekte zu finden ... Objects, wo man die Struktur der Objekte sehen kann und man zu den einzelen Objekten navigieren kann, wo dann die Properties und Methods dokumentiert sind.
Es gibt auch einige Beispiele bei den jeweiligen Objekten, da muss man aber schon aufpassen, weil die an vielen Stellen Tippfehler/falsche Deklarationen enthalten.
Ganz viel geholfen hat mir das Watch-Fenster im VBA. Einfach ins VBA wechseln (Alt+F11), Debug - Add watch... CATIA.Activedocument - All Modules - All Procedures eingeben und schon kann man in der Objektstruktur vieles sehen.

Man muss sich aber etwas in der Programmierung und Objekte auskennen, um damit was anfangen zu können.

Gruß,
Zoltan

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

Dussel86
Mitglied
Kooperativer Student

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

Beiträge: 8
Registriert: 14.07.2009

erstellt am: 23. Jul. 2009 15:06    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 Dir Zoltan,

der Tipp mit den "Use Cases" ist wirklich sehr hilfreich, da kann man schon einiges herausziehen. So richtig klar sind mir die Dinge zwar noch nicht, aber das wird schon  .

Das ursprüngliche Problem hab ich durch Deine Hilfe habe ich schon insofern eingrenzen können, dass ich dne passenden Befehl schonmal gefunden habe:

Code:

Dim UserArea As ManufacturingPrismaticMachiningArea
Dim UserFeature As ManufacturingFeature

Hilsvariable = UserSel.SelectElement2(Ref_Skizze, "Skizze", false)
Set UserFeature = UserSel.Item(1).Value

Set UserArea = ?

Call UserArea.SetGeometries("Contours", 0, 1, UserFeature, Product?, 0)


Ich muss also - wenn ich mich nucht irre - die UserArea noch einem Objeakt zuordnen und das Product definieren. Ist das richtig?

------------------
Original von Grummel:
"Polen gehört zwar mittlerweile zur EU, aber deshalb haben sie noch lange nicht unseren DSL-Standard erreicht."
(06.2005)

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

Dussel86
Mitglied
Kooperativer Student

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

Beiträge: 8
Registriert: 14.07.2009

erstellt am: 23. Jul. 2009 17:06    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

Irgendwie habe ich es jetzt ans Laufen bekommen:

Code:
Sub CATMain()

Dim Process_Doc As ProcessDocument
Set Process_Doc = Catia.ActiveDocument

Dim Produkt as Product
Set Produkt = Process_Doc.PPRDocument

Dim Ref_Operation(0)
Ref_Operation(0) = "ManufacturingOperation"

Dim Ref_Skizze(0)
Ref_Skizze(0) = "Sketch"

Dim UserSel As Selection
Set UserSel = Catia.ActiveDocument.Selection
UserSel.Clear

Dim Hilfsvariable
Dim Operation As ManufacturingOperation

Hilfsvariable = UserSel.SelectElement2(Ref_Operation, "Operation", false)

Set Operation=UserSel.Item(1).Value

Dim UserFeature As ManufacturingFeature

Dim Skizze As Sketch

Hilsvariable = UserSel.SelectElement2(Ref_Skizze, "Skizze", false)

Set Skizze = UserSel.Item(1).Value

Set UserFeature = Operation.MachinableFeature

Call UserFeature.RemoveAllGeometry("Contours")
Call UserFeature.SetGeometries("Contours", 0, 1, Skizze, Produkt, 0)

End Sub


Warum es funktioniert, verstehe ich zwar nicht und vermutlich ist es auch ein schlechter Programmierstil, aber ich freue mich trotzdem  .

------------------
Original von Grummel:
"Polen gehört zwar mittlerweile zur EU, aber deshalb haben sie noch lange nicht unseren DSL-Standard erreicht."
(06.2005)

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 23. Jul. 2009 18: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 Nur für Dussel86 10 Unities + Antwort hilfreich

Hallo Dussel86,

in den NC-Modulen kenne ich mich überhaupt nicht aus, aber aus der Sicht der allgemeinen Programmierung sieht dein Code schon nicht so schlecht aus.
Du hast die Variablen deklariert, wo es möglich war mit Datentypen.
Folgende Zeile könntest du vereinfachen:
Call UserFeature.RemoveAllGeometry("Contours")
UserFeature.RemoveAllGeometry "Contours"
Wenn ein Sub (Method) aufgerufen wird, darf man keine Klammern verwenden, dann geht es auch ohne Call.

Gruß,
Zoltan

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

Dussel86
Mitglied
Kooperativer Student

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

Beiträge: 8
Registriert: 14.07.2009

erstellt am: 29. Jul. 2009 13:59    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 dir Zoltan  .

------------------
Original von Grummel:
"Polen gehört zwar mittlerweile zur EU, aber deshalb haben sie noch lange nicht unseren DSL-Standard erreicht."
(06.2005)

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