Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Formeln mit Makro erstellen

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:  Formeln mit Makro erstellen (2302 mal gelesen)
cul-david
Mitglied



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

Beiträge: 16
Registriert: 24.05.2011

Win XP Pro SP3
Pentium D 2,8GHz
FX1400
CATIA V5R19 SP3
Hot Fix 48

erstellt am: 24. Mai. 2011 21: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

Hallo,

ich möchte gerne in ein Translate das X Y Z hat eine formel erstellen. will nicht alle 200 Translates und die dazugehörigen Korrdinaten X Y Z anklichen und per Hand dann mit rechts klick eine formel erstellen sondern mit einem makro.
Ich habe es schon geschaft wenn formeln vorhanden sind das die umgeschrieben werden aber ich weis nicht wie man neue formeln erstellt.

bitte um hilfe

danke

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

CATIA V5R19

erstellt am: 24. Mai. 2011 21: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 cul-david 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum. Bitte Systeminfo ausfüllen.
Das geht mit dem Befehl CreateFormula . Ein Beispiel aus der Doku:
Code:
...
Dim CATDocs As Documents
Set CATDocs = CATIA.Documents
Dim part1 As Document
Set part1 = CATDocs.Add("CATPart")
Dim width As RealParam
Set width = part1.Part.Parameters.CreateReal("width", 1.) 
Dim height As RealParam
Set height = part1.Part.Parameters.CreateReal("height", 2.) 
Dim depth As RealParam
Set depth = part1.Part.Parameters.CreateReal("depth", 3.) 
Dim density As RealParam
Set density = part1.Part.Parameters.CreateReal("density", 1.5) 
Dim mass As RealParam
Set mass = part1.Part.Parameters.CreateReal("mass", 0.) 
Dim computemass As RealParam
Set computemass = part1.Part.Relations.CreateFormula ("computemass","Computes the cuboid mass",  mass,"(width*height*depth)*density")

Gruß
Bernd

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

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

ThomasJay
Mitglied
Dipl-Ing


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

Beiträge: 159
Registriert: 19.04.2011

CATIA V5 R19

erstellt am: 26. Mai. 2011 16:15    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 cul-david 10 Unities + Antwort hilfreich

Hallo,

Wie kann ich denn eine Formel erstellen bei der nicht nur Variablen eingegeben werden müssen, sondern Geometrien als Input verwendet werden? z.B. mein Makro erzeugt eine Fläche und von dieser möchte ich dann den Flächenschwerpunkt erhalten.

Gruß,
Thomas

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

tberger
Mitglied
Application Manager CATIA V5 / V6


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

Beiträge: 1385
Registriert: 13.01.2007

WIN 7 64bit
V5R21SP3HF49
3DX/V6 R2016x

erstellt am: 26. Mai. 2011 19: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 Nur für cul-david 10 Unities + Antwort hilfreich

Hallo ThomasJay,

du musst in der Formelbeziehung den kompletten Text abbilden, den du auch bei der manuellen Formelerzeugung vorfinden würdest.
Damit nicht irgendeine generische Nummer wie Fläche.5 entsteht und eingegeben werden müsste (die du im voraus nicht unbedingt wissen wirst), kannst du deine neu erzeugten Flächen-Elemente umbenennen mit ".Name = " und den Namen samt Auffindeort des Geosets in die Formel zuordnen.

Ich bilde dazu vorher mit einem String (Dim Formelstring As String) den kompletten Formeltext ab und setzte diesen String dann in die Formelerzeugung ein.

------------------
Grüße aus dem Thurgau
Thomas

+++++++++++++++++++++++++++++++++

CATIA - eine Laune der Natur ...

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

CATIA V5R19

erstellt am: 27. Mai. 2011 10:17    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 cul-david 10 Unities + Antwort hilfreich

Servus
Kleiner Hinwies zu Thomas Erklärung:
Mir dem Befehl "GetNameToUseInRelation" (aus dem Parameters-Objekt) kannst du direkt den Namen (mit dem Pfad) eines Objekt ausgeben lassen, sowie du das Objekt in der Formel angeben musst (ZB GeoSet1\Punkt.23)

Gruß
Bernd

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

[Diese Nachricht wurde von bgrittmann am 27. Mai. 2011 editiert.]

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



Bauzeichner Hochbau (m/w/d)

Wir sind Arvisio ? Dein Planungsbüro mit Herz und Vision. Wir konzipieren, planen und realisieren gewerbliche Aus-, Um- und Neubauprojekte.


Machst Du mit?


  • Erarbeitung von individuellen Entwurfs-, Ausführungs- und Detailplanungen (2D / 3D)
  • Erstellung von Zeichnungsunterlagen für sämtliche Anwendungsbereiche
  • Dokumentation ...
Anzeige ansehenTechnischer Zeichner, Bauzeichner
cul-david
Mitglied



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

Beiträge: 16
Registriert: 24.05.2011

Win XP Pro SP3
Pentium D 2,8GHz
FX1400
CATIA V5R19 SP3
Hot Fix 48

erstellt am: 08. Jun. 2011 09:26    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,
danke erst mal für die vielen antwortetn.
So habe ich das gemacht,


' für Y Verschiebung

K=0

For I = 580 to 699

K= K+1

Set documents1 = CATIA.Documents

Set partDocument1 = documents1.Item("SCHLEIFE_HINTEN.CATPart")

Set part1 = partDocument1.Part

Set relations1 = part1.Relations

Set formula1 = relations1.Item("Formula."+ CStr(I))

formula1.Modify "((MeasureBetween."+ CStr(K)+"\Diry* MeasureBetween."+ CStr(K)+"\Diry )  /  sqrt    ((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz  *MeasureBetween."+ CStr(K)+"\Dirz)) ) * ( sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)))  -  `minimaler Freigang beim Vorbeidrehen + 0,02mm Toleranz`)  * `Ausgleichsfaktor TEST`  / (abs(sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)) )  +  0.000001mm)"

formula1.Rename "Formula."+ CStr(I)


das funktioniert wenn die formel vorhanden ist.
Ich habe es probiert mit creat formula leider geht das nicht

' Set documents1 = CATIA.Documents

' Set partDocument1 = documents1.Item("SCHLEIFE_HINTEN.CATPart")

' Set part1 = partDocument1.Part

' Set relations1 = part1.Relations

' Set parameters1 = part1.Parameters

' For J = 121 to 240

' J=120

' J= J +1


' Set length1 = parameters1.Item("SCHLEIFE_HINTEN\Verschiebungen der Schnittpunkte für korrigierten Fugenverlauf\Translate."+CStr(J)+"\Y")

' K=0

' For I = 580 to 699

' K= K+1

' Set formula1 = relations1.CreateFormula("Formula."+ CStr(I), "", length1, "((MeasureBetween."+ CStr(K)+"\Diry* MeasureBetween."+ CStr(K)+"\Diry )  /  sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)) ) * ( sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)))  -  `minimaler Freigang beim Vorbeidrehen + 0,02mm Toleranz`)  * `Ausgleichsfaktor TEST`  / (abs(sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)) )  +  0.000001mm)")

' formula1.Rename "Formula."+ CStr(I)


vielleicht könnt ihr damit mehr anfangen als nur mit der erklärung was ich genau machen will. Es sind und die 800 formeln die ich dann per hand schreiben müsste

mfg Culd

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