Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Abschlussarbeit - Makroprogrammierung

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
  
Erfolgreich unterwegs mit der KISTERS 3DViewStation, ein Whitepaper
Autor Thema:  Abschlussarbeit - Makroprogrammierung (2080 mal gelesen)
denniszappi
Mitglied
Bachelorand


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

Beiträge: 16
Registriert: 19.06.2015

Windows 7 SP1,
64 bit,
CATIA V5 R24

erstellt am: 19. Jun. 2015 16:37    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,

im Rahmen meiner Abschlussarbeit bin ich auf dieses tolle Forum gestoßen.
Thema der Arbeit ist die Programmierung eines Makros.
Ziel dessen Automation soll sein, ein Konstruktionselement entlang einer Spline, im vom User gewählten Abstand, mehrfach aus einer Powercopy heraus einzufügen.
Der Konstrukteur soll anhand von Eingabemasken die Variante des einzufügenden Elements, die Spline und die Abstände wählen können.

Ich beschäftige mich erst seit wenigen Wochen mit dem Thema und würde als Einstieg gern einen allgemeinen VBA-Code schreiben, welcher eine Powercopy in ein Part einfügt (KT1-Lizenz vorhanden).

Ganz allgemein gefragt: Wie funktioniert die Übergabe eines, z.B. einfachen Blocks mittels einer Powercopy an eine bestimmte Stelle eines Parts?

Würde gern klein anfangen. Ich bin für eure Hilfe sehr dankbar.

Viele Grüße und ein schönes Wochenende.

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: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 19. Jun. 2015 16: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 Nur für denniszappi 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum.
Schon mal hier im Forum und in der Doku nach "InstanceFactory" geschaut. Da solltest du ein Beispiel finden.
Gemäß Doku sollte mit "PutInputData" der Input für die PowerCopy (zB den Einfügepunkt, Referenzebene je nach dem was in der PowerCopy als Input notwendig ist) definiert werden können.

Gruß
Bernd

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

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

denniszappi
Mitglied
Bachelorand


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

Beiträge: 16
Registriert: 19.06.2015

Windows 7 SP1,
64 bit,
CATIA V5 R24

erstellt am: 23. Jun. 2015 11:16    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

Vielen lieben Dank!
Das Einfügen einer Powercopy via Makro hab ich nun mit Hilfe des Beispiels verstanden und erledigt.

Als nächstes brauche ich einen einfachen Weg, der es mir erlaubt die vorkonstruierte Geometrie, je nach Userwunsch beliebig oft an Punkten einzufügen (der Code zeigt exemplarisch 5 Punkte).

Anbei der Code, so wie ich ihn mir vorgestellt hatte. Jedoch wird das Template immer nur am zuletzt genannten Punkt eingefügt.


Sub CATMain()

Dim PartDocument1 As PartDocument
Set PartDocument1 = CATIA.ActiveDocument

Dim Part1 As Part
Set Part1 = PartDocument1.Part
'------------------------------------------------------------------
Dim factory As InstanceFactory
Set factory = Part1.GetCustomerFactory("InstanceFactory")
'------------------------------------------------------------------
factory.BeginInstanceFactory "Retainer", "L:\MACROS\Clip_Retainer\CLIP_RETAINER.CATPart"
'------------------------------------------------------------------
factory.BeginInstantiate
'------------------------------------------------------------------
Dim Point1, Point2, Point3, Point4, Point5 As Object

Set Point1 = Part1.FindObjectByName("Point.1")
Set Point2 = Part1.FindObjectByName("Point.2")
Set Point3 = Part1.FindObjectByName("Point.3")
Set Point4 = Part1.FindObjectByName("Point.4")
Set Point5 = Part1.FindObjectByName("Point.5")

factory.PutInputData "Point.1", Point1
factory.PutInputData "Point.1", Point2
factory.PutInputData "Point.1", Point3
factory.PutInputData "Point.1", Point4
factory.PutInputData "Point.1", Point5
'------------------------------------------------------------------
Dim Instance As ShapeInstance
Set Instance = factory.Instantiate
'------------------------------------------------------------------
factory.EndInstantiate
'------------------------------------------------------------------
factory.EndInstanceFactory
'------------------------------------------------------------------
Part1.Update
End Sub

Vielen Dank im Voraus!

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: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 23. Jun. 2015 11: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 Nur für denniszappi 10 Unities + Antwort hilfreich

Servus
Vermutlich muss du für jeden einzeln Punkt folgende Zeilen ausführen (hab die Lizenz nicht um es zu testen:
Code:
actory.BeginInstantiate
factory.PutInputData "Point.1", Point1
Dim Instance As ShapeInstance
Set Instance = factory.Instantiate
factory.EndInstantiate
Gruß
Bernd

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

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

denniszappi
Mitglied
Bachelorand


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

Beiträge: 16
Registriert: 19.06.2015

Windows 7 SP1,
64 bit,
CATIA V5 R24

erstellt am: 23. Jun. 2015 13:43    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

Grandios, voll ins Schwarze!
Der Tipp hat mich an mein 2. Zwischenziel gebracht.

Als nächstes möchte ich, dass der User die gewünschten Positionen für die Clip-Retainer entlang einer Linie, Kurve, Spine, Pattern..., je nach Bauteilgeometrie, im gewünschten Abstand per UserForm festlegen kann. Falls hier jemand Denkanstöße hat, weil er Vergleichbares bereits programmiert hat, gern raus damit. Bin dankbar für Alles!

Vielen Dank an Dich, Bernd, für die schnelle und wertvolle Antwort.
Beste Grüße

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

denniszappi
Mitglied
Bachelorand


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

Beiträge: 16
Registriert: 19.06.2015

Windows 7 SP1,
64 bit,
CATIA V5 R24

erstellt am: 24. Jun. 2015 09: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


2015-06-24_091815.png

 
Gibt es eine Möglichkeit im 3D Punkte mit einer Linie/Spline deckungsgleich zu schieben?

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

denniszappi
Mitglied
Bachelorand


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

Beiträge: 16
Registriert: 19.06.2015

Windows 7 SP1,
64 bit,
CATIA V5 R24

erstellt am: 25. Jun. 2015 09:43    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

Guten Morgen allerseits!
Ich habe eine Powercopy mit Parametern erstellt, welche ich gern mit in meinem Part einfügen möchte. Unter Relations steht vor jedem Parameter ein "deleted". Die Verknüpfung wird also irgendwie nicht hergestellt. Anbei mein Code:

Sub CATMain()

Dim PartDocument1 As PartDocument
Set PartDocument1 = CATIA.ActiveDocument

Dim Part1 As Part
Set Part1 = PartDocument1.Part
'------------------------------------------------------------------
Dim factory As InstanceFactory
Set factory = Part1.GetCustomerFactory("InstanceFactory")
'------------------------------------------------------------------
factory.BeginInstanceFactory "PowerCopy.1", "L:\MACROS\Clip_Retainer\CLIP_RETAIN.CATPart"
'------------------------------------------------------------------
Dim Point1, Point2, Point3, Point4, Point5 As Object
Dim Instance As ShapeInstance

'Parameter erzeugen
'------------------------------------------------------------------
Dim parameters1 As Parameters
Set parameters1 = Part1.Parameters

Dim Wert As Double
Wert_material_thickness = InputBox("Bitte die Materialstärke eingeben [0,8 mm]:")
Wert_ball_corner = InputBox("Bitte den Radius eingeben [0,5 mm]:")
Wert_width_out = InputBox("Bitte die Breite eingeben [18 mm]:")
Wert_length_out = InputBox("Bitte die Länge eingeben [36 mm]:")
Wert_offset_out = InputBox("Bitte die Y-Lage eingeben [11 mm]):")

Dim length1 As Dimension
Set length1 = parameters1.CreateDimension("material_thickness", "LENGTH", Wert_material_thickness)
Set length1 = parameters1.CreateDimension("ball_corner", "LENGTH", Wert_ball_corner)
Set length1 = parameters1.CreateDimension("width_out", "LENGTH", Wert_width_out)
Set length1 = parameters1.CreateDimension("length_out", "LENGTH", Wert_length_out)
Set length1 = parameters1.CreateDimension("offset_out", "LENGTH", Wert_offset_out)

'Einfügepunkte ermitteln und Powercopy einfügen
'------------------------------------------------------------------
Set Point1 = Part1.FindObjectByName("Point.1")
Set Point2 = Part1.FindObjectByName("Point.2")
Set Point3 = Part1.FindObjectByName("Point.3")
Set Point4 = Part1.FindObjectByName("Point.4")
Set Point5 = Part1.FindObjectByName("Point.5")

factory.BeginInstantiate
factory.PutInputData "Point.1", Point1
Set Instance = factory.Instantiate
factory.EndInstantiate

factory.BeginInstantiate
factory.PutInputData "Point.1", Point2
Set Instance = factory.Instantiate
factory.EndInstantiate

factory.BeginInstantiate
factory.PutInputData "Point.1", Point3
Set Instance = factory.Instantiate
factory.EndInstantiate

factory.BeginInstantiate
factory.PutInputData "Point.1", Point4
Set Instance = factory.Instantiate
factory.EndInstantiate

factory.BeginInstantiate
factory.PutInputData "Point.1", Point5
Set Instance = factory.Instantiate
factory.EndInstantiate
'------------------------------------------------------------------
factory.EndInstanceFactory
'------------------------------------------------------------------
Part1.Update
End Sub

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3437
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 25. Jun. 2015 10: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 denniszappi 10 Unities + Antwort hilfreich

Hallo denniszappi,

wenn du Formeln in der PC hast musst du diese in der PC im Ursprung einbinden.
RelationSet in die PC und entsprechende Formeln reinhängen.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

denniszappi
Mitglied
Bachelorand


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

Beiträge: 16
Registriert: 19.06.2015

Windows 7 SP1,
64 bit,
CATIA V5 R24

erstellt am: 25. Jun. 2015 11: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

1000 Dank, Uwe!!!
Hat sofort funktioniert

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

denniszappi
Mitglied
Bachelorand


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

Beiträge: 16
Registriert: 19.06.2015

Windows 7 SP1,
64 bit,
CATIA V5 R24

erstellt am: 02. Jul. 2015 11:33    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

Salut liebe Leute,

ich möchte einen Abzugskörper per Powercopy in ein Part einfügen.
Ein Koordinatensystem ist sowohl im Zielpart, als auch in der Powercopy vorhanden. Im Prinzip sollen dessen Achsen nur übereinander geleget werden und eine Plane als Offset ist auch noch im Input der Powercopy. Klappt manuell wunderbar. Ich möchte das ganze per Makro ablaufen lassen.
Wie muss der Code für die Inputkomponenten aussehen. Habe es leider nicht gefunden.

Punkt auf Punkt ist kein Problem, dafür nutze ich folgenden Code:

Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

'------------------------------------------------------------------
Dim factory As InstanceFactory
Set factory = part1.GetCustomerFactory("InstanceFactory")
'------------------------------------------------------------------
factory.BeginInstanceFactory "PowerCopy.1", "L:\MACROS\Clip_Retainer\ABZUG_CLIP_RETAIN.CATPart"
'------------------------------------------------------------------
'Einfügepunkte ermitteln
'------------------------------------------------------------------
Dim Point1 As Object
Set Point1 = part1.FindObjectByName("Point.1001")
'------------------------------------------------------------------
'Einfügen
'------------------------------------------------------------------
factory.BeginInstantiate
factory.PutInputData "Point.6", Point1
Dim Instance As ShapeInstance
Set Instance = factory.Instantiate
factory.EndInstantiate
'------------------------------------------------------------------
factory.EndInstanceFactory
'------------------------------------------------------------------
part1.Update
End Sub

Aber für dieses Part müssen die Achsen berücksichtigt sein und als Input angewählt werden.
Vielen Dank für eure Tipps

Viele Grüße

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