Autor
|
Thema: Wert und Parameter gleichzeitig in eine Formel bringen (2113 mal gelesen)
|
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 01. Dez. 2017 14:51 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, mein Programm und ich haben mal wieder ein Problem. Ich habe mit Hilfe einer Schleife viele Punkte erstellt. Diese bekommen automatisch einen Wert zugeteilt. Die Idee ist nun zusätzlich zu dem konstanten Wert einen Parameter für die manuelle Anpassung zu hinterlegen. Das Problem ist nun, dass ich das nicht unter einen Hut bekomme. Entweder ich hinterlege einen Parameter oder den Wert. Beides geht nicht. Durch stöbern hier im Forum habe ich herausgefunden, dass die Zuweisung des Parameters als "String" erfolgen muss. Code:
Dim x3 As Double Dim x4 As Double Dim x6 As Double Dim x7 As String x3 = Punktkoordinaten x4 = ("Individuelle_Abstandsanpassung_" & Format(Benennung)) x6 = x3 + x4 x7 = x6 & "mm"
Das geht auch soweit, nur wird in diesem Fall der Wert des Parameters genommen und nicht der Parameter an sich. Hat jemand Ideen? Vielen Dank und im Vorfeld schonmal und ein schönes Wochenende!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 01. Dez. 2017 15:11 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Hallo, ich bin mir nicht ganz sicher was du vor hast, aber warum erstellst du nicht den Parameter, belegst ihn mit einem Wert und verknüpfst ihn dann mit der Formel? Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 01. Dez. 2017 15:33 <-- editieren / zitieren --> Unities abgeben:
Also ich brauche in meiner Formel einen Wert(wird im Makro errechnet) und einen Parameter. Diese beiden müssen dann in die Formel eingebaut werden. Beispiel: Länge = 80mm + Parameter Der Parameter soll das ganze individuell steuern. In der zugehörigen Formel soll der Berechnete wert dem zugehörigen Punkt zugewiesen werden. Problem: 80mm --> Double Parameter --> String beides muss addiert werden ohne den Parameter zu "verlieren" Code: Set length3 = parameters2.Item(x1_01) Set formula5 = relations7.CreateFormula("Formula.44", "", length3, x7)
Den Wert kann ich nicht als Parameter erstellen, da er sich nach jeder Berechnung ändert. [Diese Nachricht wurde von Student051089 am 01. Dez. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Dez. 2017 18:21 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
|
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 04. Dez. 2017 11:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, das hat mir schonmal richtig weitergeholfen. Ich habe leider nicht herausfinden können ob mit dieser Methode auch 2 Parameter addiert werden können. Geht das? Vielen Dank für deine Antworten! Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Dez. 2017 11:57 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Was hast du genau vor? Wie würdest du das manuell aussehen? (extra Parameter? extra Formel ....) Soll sich das parametrisch nachher ändern lassen (also Offset-Wert ändern und die Koordinaten ändern sich mit)? Bitte mal den Strukturbaum posten wie das manuell aussehen würde. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 04. Dez. 2017 13:54 <-- editieren / zitieren --> Unities abgeben:
Also ich habe in meinem Makro einen konstanten Abstand mehrerer Punkte errechnet und die Punkte dann platziert. Der Abstandswert kann nicht als Parameter angelegt werden, da dieser Wert sich auf die Nulllage bezieht. Nun will ich einen Parameter erstellen, der zu dem konstanten Wert eine gleichmäßige Längenanpassung aller Punkte vornimmt. Code:
Dim Individuelle_Anpassung As Dimension Set Individuelle_Anpassung = parameters1.Item("Individuelle_Abstandsanpassung_" & Format(Benennung)) Dim StrFormel As String StrFormel = parameters1.GetNameToUseInRelation(Individuelle_Anpassung & "+ Punktkoordinaten")
Mit dem Wert "+10mm" geht es und mit dem String "+ Punktkoordinaten" nicht. Weißt du eine Lösung hierfür? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Dez. 2017 15:18 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Was ist denn Punktkoordinaten denn bitte für ein Objekt (Catia-Parameter, VB-Variable, ...) Gruß Bernd PS: Schon mal so probiert: Code: StrFormel = parameters1.GetNameToUseInRelation(Individuelle_Anpassung) & "+" & CStr(Punktkoordinaten) & "mm")
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 04. Dez. 2017 15:53 <-- editieren / zitieren --> Unities abgeben:
Punktkoordinaten sind VB- Variablen Code:
StrFormel = parameters1.GetNameToUseInRelation(Individuelle_Anpassung) & "+" & CStr(Punktkoordinaten) & "mm")
Die Formel funktioniert nur beim ersten Durchlauf. (wenn die Punktkoordinate 0mm beträgt). Danach kommt ein Fehler. Ich weiß nicht weiter... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Dez. 2017 15:57 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Wie lautet der Fehler? Lass dir mal den StrFormel ausgeben. Passt die Formel? Wäre es nicht einfacher die Punkte auf einen Referenzpunkt zu beziehen (AddNewPointCoordWithReference). Dann sparst du dir die Formeln und kannst einfach den Referenzpunkt später parametrisch ändern. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 05. Dez. 2017 08:32 <-- editieren / zitieren --> Unities abgeben:
Also das geht: Code: StrFormel : "Individuelle_Abstandsanpassung + 0mm" : String
und das geht nicht: Code: StrFormel : "Individuelle_Abstandsanpassung + 81,9523028395008mm" : String
Die Formel wird immer erstellt. Bei 0mm Abstand und individueller Anpassung wird alles korrekt ausgeführt. Ab dem nächsten Schritt wird die Formel mit gelben Ausrufezeichen versehen. PS.: der Aufbau ist mit AddNewPointCoordWithReference aufgebaut. Gefordert ist aber, dass die Referenz am Anfang des Aufbaus steht. Grüße
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 05. Dez. 2017 08:56 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Welchem Parameter weißt du die Formel zu? Wie greift du auf diesen zu? Liegt es am Wert dass die Formel nicht funktioniert? (mal mit dem "ungeraden" Wert die erste Formel erzeugen) Erzeugst du für jeden Durchlauf einen neuen Parameter oder versuchst du bei jedem Durchlauf dem Parameter eine weitere Formel zugreifen? (dann ist klar das da ein Fehler kommt) (ggf mal die ersten beiden Punkte manuell erzeugen) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 05. Dez. 2017 09:38 <-- editieren / zitieren --> Unities abgeben:
Hi Bernd, also wie ich jetzt herausgefunden habe liegt es an den ungeraden Zahlen. Runde ich den Wert, kommt immer ein Ergebnis heraus. Das Problem ist nun noch, dass meine exakte Verteilung dann über den Haufen geworfen wird. Ist es möglich doch irgendwie meine exakten Werte zu übernehmen? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 05. Dez. 2017 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Wenn du mal so eine Formel von Hand erstellt hättest, hättest du festgestellt dass in einer Formel nur ein Punkt als Dezimaltrenner verwendet werden darf. Also ersetze mal das Komma durch einen Punkt. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 06. Dez. 2017 13:55 <-- editieren / zitieren --> Unities abgeben:
|