Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro aktualisieren

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
Autor Thema:  Makro aktualisieren (621 mal gelesen)
hardy1312
Mitglied



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

Beiträge: 49
Registriert: 27.12.2005

erstellt am: 06. Dez. 2006 11:19    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,

ich habe ein kleines Problem. Ich möchte einen Body, inklusive vom Benutzer eingegebene Parameter, über ein Makro erstellen. Die Eingabe soll über ein Dialog-Eingabefenster geschehen (inputbox) Bis hierhin ist erstmal alles klar.

Nachträglich soll der Body über solches Dialogfenster (inputbox) manipuliert werden. Wie kann ich sowas bewerkstelligen? Ist es überhaupt möglich. Für Anregungen wäre ich euch sehr dankbar.

Gruß
Hardy

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

Heini_K
Mitglied



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

Beiträge: 34
Registriert: 26.09.2006

Catia V5R14SP4/R16
HP- Unix- Workstation

erstellt am: 06. Dez. 2006 11:39    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 hardy1312 10 Unities + Antwort hilfreich

Hallo Hardy,

Ja, das funktioniert. Du kannst den Rückgabewert der InputBox oder MsgBox in einer If- oder Case- Alternative abfragen und dann dort entsprechend den Makro- Code zur gewünschten Manipulation hineinschreiben.

------------------
Gruß,
Matthias

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

hardy1312
Mitglied



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

Beiträge: 49
Registriert: 27.12.2005

erstellt am: 06. Dez. 2006 18: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 Matthias,

ich danke dir für deine schnelle Antwort. Aber entweder hab ich deine Lösungsvariante nicht verstanden oder es ist noch nicht das, was ich wirklich brauche
um mein Problem etwas zu verdeutlichen, habe ich folgendes Makro aufgenommen und ein wenig angepasst.

Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim bodies1 As Bodies
Set bodies1 = part1.Bodies

Dim body1 As Body
Set body1 = bodies1.Item("Hauptkörper")

Dim sketches1 As Sketches
Set sketches1 = body1.Sketches

Dim originElements1 As OriginElements
Set originElements1 = part1.OriginElements

Dim reference1 As Reference
Set reference1 = originElements1.PlaneXY

Dim sketch1 As Sketch
Set sketch1 = sketches1.Add(reference1)


Dim eingabe As Integer
eingabe = InputBox("bitte geben sie einen wertein", "wert", eingabe)

Dim arrayOfVariantOfDouble1(8)
arrayOfVariantOfDouble1(0) = 0#
arrayOfVariantOfDouble1(1) = 0#
arrayOfVariantOfDouble1(2) = 0#
arrayOfVariantOfDouble1(3) = 1#
arrayOfVariantOfDouble1(4) = 0#
arrayOfVariantOfDouble1(5) = 0#
arrayOfVariantOfDouble1(6) = 0#
arrayOfVariantOfDouble1(7) = 1#
arrayOfVariantOfDouble1(8) = 0#
Set sketch1Variant = sketch1
sketch1Variant.SetAbsoluteAxisData arrayOfVariantOfDouble1

part1.InWorkObject = sketch1

Dim factory2D1 As Factory2D
Set factory2D1 = sketch1.OpenEdition()

Dim geometricElements1 As GeometricElements
Set geometricElements1 = sketch1.GeometricElements

Dim axis2D1 As Axis2D
Set axis2D1 = geometricElements1.Item("Absolute Achse")

Dim line2D1 As Line2D
Set line2D1 = axis2D1.GetItem("H-Richtung")

line2D1.ReportName = 1

Dim line2D2 As Line2D
Set line2D2 = axis2D1.GetItem("V-Richtung")

line2D2.ReportName = 2

Dim point2D1 As Point2D
Set point2D1 = factory2D1.CreatePoint(100#, 0#)

point2D1.ReportName = 3

Dim line2D3 As Line2D
Set line2D3 = factory2D1.CreateLine(0#, 0#, 100#, 0#)

line2D3.ReportName = 4

Dim point2D2 As Point2D
Set point2D2 = axis2D1.GetItem("Ursprung")

line2D3.StartPoint = point2D2

line2D3.EndPoint = point2D1

Dim point2D3 As Point2D
Set point2D3 = factory2D1.CreatePoint(100#, 50#)

point2D3.ReportName = 5

Dim line2D4 As Line2D
Set line2D4 = factory2D1.CreateLine(100#, -0#, 100#, 50#)

line2D4.ReportName = 6

line2D4.StartPoint = point2D1

line2D4.EndPoint = point2D3

Dim point2D4 As Point2D
Set point2D4 = factory2D1.CreatePoint(-0#, 50#)

point2D4.ReportName = 7

Dim line2D5 As Line2D
Set line2D5 = factory2D1.CreateLine(100#, 50#, -0#, 50#)

line2D5.ReportName = 8

line2D5.StartPoint = point2D3

line2D5.EndPoint = point2D4

Dim line2D6 As Line2D
Set line2D6 = factory2D1.CreateLine(0#, 50#, 0#, 0#)

line2D6.ReportName = 9

line2D6.StartPoint = point2D4

line2D6.EndPoint = point2D2

Dim constraints1 As Constraints
Set constraints1 = sketch1.Constraints

Dim reference2 As Reference
Set reference2 = part1.CreateReferenceFromObject(line2D3)

Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromObject(line2D1)

Dim constraint1 As Constraint
Set constraint1 = constraints1.AddBiEltCst(catCstTypeHorizontality, reference2, reference3)

constraint1.Mode = catCstModeDrivingDimension

Dim reference4 As Reference
Set reference4 = part1.CreateReferenceFromObject(line2D5)

Dim reference5 As Reference
Set reference5 = part1.CreateReferenceFromObject(line2D1)

Dim constraint2 As Constraint
Set constraint2 = constraints1.AddBiEltCst(catCstTypeHorizontality, reference4, reference5)

constraint2.Mode = catCstModeDrivingDimension

Dim reference6 As Reference
Set reference6 = part1.CreateReferenceFromObject(line2D4)

Dim reference7 As Reference
Set reference7 = part1.CreateReferenceFromObject(line2D2)

Dim constraint3 As Constraint
Set constraint3 = constraints1.AddBiEltCst(catCstTypeVerticality, reference6, reference7)

constraint3.Mode = catCstModeDrivingDimension

Dim reference8 As Reference
Set reference8 = part1.CreateReferenceFromObject(line2D6)

Dim reference9 As Reference
Set reference9 = part1.CreateReferenceFromObject(line2D2)

Dim constraint4 As Constraint
Set constraint4 = constraints1.AddBiEltCst(catCstTypeVerticality, reference8, reference9)

constraint4.Mode = catCstModeDrivingDimension

Dim reference10 As Reference
Set reference10 = part1.CreateReferenceFromObject(line2D4)

Dim constraint5 As Constraint
Set constraint5 = constraints1.AddMonoEltCst(catCstTypeLength, reference10)

constraint5.Mode = catCstModeDrivingDimension

Dim length1 As Length
Set length1 = constraint5.Dimension

length1.Value = 50#

Dim reference11 As Reference
Set reference11 = part1.CreateReferenceFromObject(line2D5)

Dim constraint6 As Constraint
Set constraint6 = constraints1.AddMonoEltCst(catCstTypeLength, reference11)

constraint6.Mode = catCstModeDrivingDimension

Dim length2 As Length
Set length2 = constraint6.Dimension

length2.Value = 100#

sketch1.CloseEdition

part1.InWorkObject = sketch1

part1.Update

Dim shapeFactory1 As ShapeFactory
Set shapeFactory1 = part1.ShapeFactory

Dim pad1 As Pad
Set pad1 = shapeFactory1.AddNewPad(sketch1, eingabe)

part1.Update

End Sub

Mein Ziel ist es ein Makro auszuführen (es entsteht die gewünschte Geometrie). Anschließend möchte der Anwender die Geometrie verändern. Mein Ziel ist es die gewünschte Geometrie über ein Dialogfenster, ähnlich wie das der "eingabe", zu manipulieren.

Und dafür habe ich noch keine Lösung gefunden. Vielleicht hast du dafür auch eine Lösungsvariante.

Gruß
Hardy

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