Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Makro in Sketch wechseln innerhalb einer Baugruppe

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: Multitalent für Branchen und Nischenmärkte, eine Pressemitteilung
Autor Thema:  Makro in Sketch wechseln innerhalb einer Baugruppe (1030 mal gelesen)
Dennis030186
Mitglied
Design Engineer


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

Beiträge: 121
Registriert: 19.01.2007

NX 5,6,7 ; CATIA V5 R-21

erstellt am: 12. Mai. 2011 10:36    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 liebe CADler,
ich habe folgendes Problem. Ich möchte mit Hilfe eines Makros einfach in einen Sketch springen innerhalb einer Baugruppenstrukur. Alles was ich bisher gefunden und ausprobiert habe hat mich nicht zum Ziel gebracht. ich hoffe Ihr könnt mir helfen.

Nochmal, ich habe eine Baugruppe, mit z.B. Part1,2 und 3 und ich möchte die Skizze Sketch.1 öffnen, d.h. die Sketcherumgebung soll geöffnet werden. Bei einem normalen Part klappt es hiermit:

CATIA.ActiveDocument.Selection.Add CATIA.ActiveDocument.Product.Part. MainBody.Sketches.Item("DER NAME DES SKETCHES")

CATIA.StartCommand "sketch"

Aber in der Baugruppe muss man ja ersteinmal sagen wie man vorgehen muss, also welcher Teil in Work Object sein soll etc.pp

Danke für die Hilfe im Voraus

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

Dennis030186
Mitglied
Design Engineer


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

Beiträge: 121
Registriert: 19.01.2007

NX 5,6,7 ; CATIA V5 R-21

erstellt am: 12. Mai. 2011 15:23    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

Keiner eine Antwort parat? Hänge an dem Problem jetzt schon ewig dran :-(

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

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 12. Mai. 2011 15:52    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 Dennis030186 10 Unities + Antwort hilfreich

Hallo,
du kannst nicht aus einem Produkt heraus direkt in den Sketcher wechseln eines beliebigen Parts wechseln. Das Problem was du hast, ist dass die Selection die des Produktes ist und die des Parts sein muss. Außerdem weis das Makro garnicht, welcher Sketch.1 verwendet werden soll...

Daher müsste es von der Logik her erstmal ungefähr so aussehen:
> Part im Produkt suchen
> Partdocument aktivieren
> sketch selektieren
> in den sketcher wechseln

Das was du da machst, ist so oder so nicht schön... Ma übergibt Objekte eigentlich und bildet nicht unendliche Objektketten.

z.B.

Code:

Dim Product1 As Product
Set Product1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = Product1.Selection

Dim Part1 As PartDocument
Set Part1 = Product1.GetItem("Partname")

... und so weiter


Dim Product1 As Product
Dim selection1 As Selection
Dim Part1 As PartDocument

Set selection1 = Product1.Selection
Set Product1 = CATIA.ActiveDocument
Set Part1 = Product1.GetItem("Partname")


------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Dennis030186
Mitglied
Design Engineer


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

Beiträge: 121
Registriert: 19.01.2007

NX 5,6,7 ; CATIA V5 R-21

erstellt am: 13. Mai. 2011 07:27    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 erstmal für die Antwort. Das mit den langen Ketten bilden ist klar, sieht auch übersichtlicher aus in deinem Fall. Da ich aber noch recht am Anfang stehe mit der Programmierung, ist das alles noch teilweise unverständlich für mich. Könntest Du deinen Code mit Kommentaren versehen und was kommt hinein wo und so weiter steht (wann muss ich das ausfüllen). Meine Schwierigkeit besteht halt darin, dass ich nicht sehe, wie diese ganzen Befehle aufgebaut werden, sprich:

woher weiß ich dass vor ActiveDocument, dass Catia kommt. Warum muss ich da ein Objekt Produkt zuweisen. Genau so mit den ganzen anderen Ausdrücken. Ich hoffe es ist verständlich. Es ist einfach das Problem, wie komme ich genau auf dies Ausdrücke und wo kann ich es exakt erkennen. Habe die V5 Automation gelesen Hansen und Ziethen auch immer zwischendurch, aber irgendwie stolpere ich immer über die selbe Stelle.

Zu dem Aufbau. Genau so wie Du es beschreiben hast, habe ich es auch bemerkt. Mit dem Quelltext würde es funktionieren, aber ich muss mich im Part befinden, also es muss aktiv sein und somit im PartDesign sich befinden. Vom Product aus funktioniert das Ganze dann aber nicht, weil ja im Assembly auch der Befehl Sketch überhaupt nicht vorhanden ist. Wie kann ich das jetzt richten? Wie macht man diesen Quelltext jetzt noch schön und korrekt, so dass das Part auch aktiviert wird, damit es funktioniert?
Bin für die Hilfe sehr dankbar.   

CATIA.ActiveDocument.Selection.Add CATIA.Documents.Item("Masterpart.CATPart").Part.Bodies.Item("PartBody").Sketches.Item("Schale")

Wenn ich den von Dir geposteten Code so nutze, bekomme ich in der Zeile CATIA.Active Document Type mismatch?!

[Diese Nachricht wurde von Dennis030186 am 13. Mai. 2011 editiert.]

Hier habe ich es mal versucht wie im vorigen Post, aber das ist noch nichts leider :-(

Sub Catmain()


'CATIA.ActiveDocument.Selection.Add CATIA.Documents.Item("Masterpart.CATPart").Part.Bodies.Item("PartBody").Sketches.Item("Schale")

Dim Product1 As Product
Set Product1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = Product1.Selection

'Dim Part1 As PartDocument
'Set Part1 = Product1.GetItem("Part2")

Dim eins As Boolean
Set eins = selection1.Add

Dim zwei As Application
Set zwei = eins CATIA

Dim drei As Documents
Set drei = zwei.Documents

Dim vier As Item
Set vier = drei.Item("Masterpart.CATPart")

Dim fuenf As Part
Set fuenf = vier.Part

Dim sechs As Bodies
Set sechs = fuenf.Bodies

Dim sieben As Item
Set sieben = sechs.Item("PartBody")

Dim acht As Sketches
acht = sieben.Sketches

Dim neun As Item
Set neun = neun.Item("Schale")


End Sub
[Diese Nachricht wurde von Dennis030186 am 13. Mai. 2011 editiert.]

[Diese Nachricht wurde von Dennis030186 am 13. Mai. 2011 editiert.]

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

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 13. Mai. 2011 10:01    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 Dennis030186 10 Unities + Antwort hilfreich

Hallo Dennis,
ich werde dir jetzt nicht simultan in 2 Threads antworten.

Ich habe das mit dem Wechsel der Workbench folgendermaßen gelöst.

Code:

selection.clear
Selection.Add Part
catia.startworkbench ("Workbenchname")
...
catia.getworbenchid ' mit diesem Befehl erfährst du, in welcher Workbench du dich befindest

...noch ein Punkt zu dir bzw. deiner Hilfestellung. Nimm es mir bitte nicht übel, aber wir können hier nicht babysitten. Daher kann ich nicht jeden Befehl erklären. Analysieren musst du schon selbst und wenn du Code hast, der in einen Fehler läuft, helfen wir dir gerne bei einzelnen Befehlen weiter. Das 1x1 des Programmierens werde aber zumindestens ich dir nicht beibringen... Mir scheint so als hättest du den Hintergrund des Programmierens und das Finden der Befehle bzw. richtige Suchen etc. noch nicht verstanden. Wenn du sagst, dass du das Buch von Jens Hansen und Ziethen hast, dann mach doch erstmal Übungen aus diesen Büchern. Kleiner Tipp: Wenn du eine Variable deklariert hast, dann hast du eine Autovervollständigung, die dir die vorhandenen Befehle und Eigenschaften anzeigt. Mit F1 kann man dann in die Hilfe springen und durch ausprobieren, kann man dann die Funktionen prüfen. In der Regel sind die Namen schon fast selbsterklärend und den Rest bekommt man aus der Hilfe oder mit Google. So finde ich die Befehle, die ich brauche. Der Rest ist reine Logik, die man ohne Zweifel für das Programmieren haben muss.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Dennis030186
Mitglied
Design Engineer


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

Beiträge: 121
Registriert: 19.01.2007

NX 5,6,7 ; CATIA V5 R-21

erstellt am: 13. Mai. 2011 11: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

Das nehme ich nicht persönlich, weshalb auch. Jeder fänt irgendwomit mal an. das Grundprinzip vom Programmieren ist mir schon klar, ich verstehe auch das meiste wenn irgendwo was steht, das Problem stellt sich aber, wenn ich etwas selber aufbauen möchte. Ich erkenne aus der V5 Automation und den Büchern nicht, wo die Befehle stehen, wie ich diese exakt einsetze und das steht auch nirgendwo so erklärt, dass es mir weiterhilft...

Also ich habe jetzt das Ganze in mein Programm eingebettet und ein Ausschnitt schaut dann so aus. Das war eigentlich zufall, dass ich es jetzt dort eingesetzt habe und plötzlich klappt das. Verstehs noch nicht so wirklich. Vorallem weil die Zeilen mit selection von Dir überhaupt nciht vorkommen...?!?!

If Housing = True Then

CATIA.ActiveDocument.Selection.Add CATIA.Documents.Item("Masterpart.CATPart").Part.Bodies.Item("PartBody").Sketches.Item("Schale")

    'Selection.Clear
    'Selection.Add Part
CATIA.StartWorkbench "PrtCfg"
    'MsgBox ("open sketch Housing") 'Im Masterpart Schale öffnen!
    'CATIA.ActiveDocument.Selection.Add CATIA.Documents.Item("Masterpart.CATPart").Part.Bodies.Item("PartBody").Sketches.Item("Schale")
    'CATIA.ActiveDocument.Selection.Add CATIA.ActiveDocument.Part.mainbody.Sketches.Item(Eingabe)

CATIA.StartCommand "Sketch"

End If

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

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 13. Mai. 2011 11:50    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 Dennis030186 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von Dennis030186:

if Housing = True Then

CATIA.ActiveDocument.Selection.Add CATIA.Documents.Item("Masterpart.CATPart").Part.Bodies.Item("PartBody").Sketches.Item("Schale")
CATIA.StartWorkbench "PrtCfg"
CATIA.StartCommand "Sketch"

End If


Naja das ist klar... Du selektierst den Sketch und damit automatisch auch das Part, da der Sketch Inhalt des Parts ist und du dich im Produkt befindest. Dann öffnest du das Part Design, mit dem markierten Part und danach folgend den Sketcher mit dem markierten Sketch. Daher funktioniert es... Sauber ist es allerdings nicht und übersichtlich schon garnicht. Du wirst merken, wenn du Dateiübergreifend verarbeiten musst, dass es besser ist, die einzelnen Elemente auszugliedern. Sprich in eigene deklarierte Objekte zu packen und vor allem die Selektion der einzelnen Dokumente zu verwenden. Sprich immer wieder für jedes Dokument eine eigene Selektion zu deklarieren.

Beispiel:

Code:

set Selection1 = Part1.selection
set Selection2 = Part2.selection
set Selection3 = Product1.selection
und so weiter...

Die Codebeispiele, die ich dir gebe passen übrigens nicht eins zu eins. Daher sind es auch immer nur Codebeispiele!!! Wenn du einen konkreten Code hast, der vernünftig gestaltet ist und einen Fehler verursacht, dann können wir darüber reden diese Fehler auszumerzen  

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

   

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