| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | | |  | erp4cad: Das ERP für komplexe CAD-Projekte!, eine Pressemitteilung
|
Autor
|
Thema: max Winkelstellung eines Verstellbereiches als Parameter auslesene/ausgeben (2292 mal gelesen)
|
Frank... Mitglied

 Beiträge: 27 Registriert: 25.04.2008
|
erstellt am: 29. Okt. 2008 11:26 <-- editieren / zitieren --> Unities abgeben:         
Hallo. Ich hab versucht die maximale Winkelstellung eines Verstellbereiches als Parameter auszugeben. Leider komme ich nun nicht weiter. Kann mir jemand helfen? Zum besseren Verständnis: Eine Ebene, die im Bereich von z.B. -30° bis +30° einstellbar ist (nicht mehr und nicht weniger, festgelegt mit "Range"). Nun möchte ich, den max. Wert (30°) und den min. Wert (-30°) auslesen und einem Parameter zuweisen, so dass ich diese weiterverwenden kann. Merci. Gruß, Frank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deyhawaii Mitglied Konstrukteur
 
 Beiträge: 236 Registriert: 17.09.2005 Catia V4 Catia V5 R19 UG NX3; NX5; NX7.5 Fides 4.2
|
erstellt am: 29. Okt. 2008 11:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Frank...
Wenn ich Dich richtig verstanden habe suchste Du das: Neuen Parameter des Typs Angel anlegen. Dann im Ebenenfenster beim Winkel über rechte Maustaste Edit Formula und einfach auf Deinen Parameter im Baum klicken. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank... Mitglied

 Beiträge: 27 Registriert: 25.04.2008
|
erstellt am: 29. Okt. 2008 13:29 <-- editieren / zitieren --> Unities abgeben:         
Hi deyhawaii, merci für Deine Antwort, ist aber nicht das, was ich gemeint hatte. Wenn ich das so mache, wie Du beschrieben hast, dann bekomm ich zwar ne Meldung, dass ich den Bereich verlasse den ich mit der Range definiert hab, aber der erstellte Parameter gibt immer genau den Wert aus, den die Ebene gerade hat. Ich hätte nun aber gerne die beiden Endwerte der Range als Parameter ausgegeben. Wenn ich eine neue Ebene über "Angle/Normal to plane" erstelle, dann steht da der verstellbare Winkelparameter darunter. Wenn ich dann einen Doppelklick darauf mache und mit RMT auf das Winkelfenster, dann kann ich ne Range von bis definieren. Diese beiden Werte möchte ich als Parameter im Baum unter dem Zweig Parameter ausgeben. Gruß, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deyhawaii Mitglied Konstrukteur
 
 Beiträge: 236 Registriert: 17.09.2005 Catia V4 Catia V5 R19 UG NX3; NX5; NX7.5 Fides 4.2
|
erstellt am: 29. Okt. 2008 13:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Frank...
Du kannst doch über RM und Add Multiple Values Deine beiden Bereiche festlegen. Also einmal 30° und -30°. Dann kannst Du im Parameter nur die beiden Werte auswählen und die Ebene verändert sich dementsprechend. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Okt. 2008 13:55 <-- editieren / zitieren --> Unities abgeben:          Nur für Frank...
Servus Also so weit war Frank auch schon. Allerdings wollte er den min und max Wert des Bereiches auslesen (und durch einen anderen Parameter steuern). AFIAK geht das nicht (lasse mich aber gerne eines Besseren belehren). Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 Ehrenmitglied V.I.P. h.c. Manager
     
 Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 30. Okt. 2008 10:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Frank...
Hallo, ich habe einen Vorschlag der genau das erledigen sollte das du auch brauchst. Leider muss dafür einen KWA-Lizenz vorhanden sein, denn mein Vorschlag beruht auf einer "Reaction". Dazu eine kurze Erklärung: Immer wenn die Plane.X upgedated wird (also bei jeder Wertänderung, Rangeänderung, etc.) läuft im Hintergrund ein VB-Makro ab und ließt sich die Werte für Min und Max-Range aus. Sind die zwei gewünschten Parameter im Part noch nicht enthalten, werden sie neu erstellt. Sind sie schon erstellt, dann werden die Werte mit den upgedateten Werten verglichen. Haben Sie sich geändert, wird dies dem Anwender durch ein MsgBox visualisiert und anschließend die beiden (bzw. nur ein Parameter) geändert. So kannst du definitiv weiterarbeiten. Die beiden Paramter haben zwar keine Formel hinterlegt, sind aber dennoch flexibel und passen sich an die Range der Plane an. So nun genügend getippt. Hier nun der Quelltext mit kurzer Erklärung und Screenshot: Code:
Sub mainDim oPlane Dim MinRangePara Dim MaxRangePara Set oDoc = CATIA.ActiveDocument Set oPart = oDoc.Part Set hybBodies = oPart.HybridBodies Set hybBody = hybBodies.Item("Design") Set hybShapes = hybBody.HybridShapes Set oPlane = hybShapes.Item("Plane.1") Set PlaneAngle = oPlane.Angle Set oPara = oPart.Parameters MinRangeValue = PlaneAngle.RangeMin MaxRangeValue = PlaneAngle.RangeMax On Error Resume Next Set MinRangePara = oPara.GetItem("Plane1MinRange") If Err.Number <> 0 Then On Error GoTo 0 Set MinRangePara = oPara.CreateDimension ("","ANGLE", "0#") MinRangePara.Value = MinRangeValue MinRangePara.Rename "Plane1MinRange" Box = MsgBox("Es wurde ein neuer Parameter für den Minimal-Wert von Plane.1 erstellt",vbInformation,"Minimalwert Plane1") Else If MinRangePara.Value <> MinRangeValue then MinRangePara.Value = MinRangeValue Box = MsgBox("Der Wert des bestehenden Parameters für den Minimal-Wert von Plane.1 wurde angepasst",vbInformation,"Minimalwert Plane1") End If End If On Error Resume Next Set MaxRangePara = oPara.GetItem("Plane1MaxRange") If Err.Number <> 0 Then On Error GoTo 0 Set MaxRangePara = oPara.CreateDimension("", "ANGLE", "0#") MaxRangePara.Value = MaxRangeValue MaxRangePara.Rename "Plane1MaxRange" Box = MsgBox("Es wurde ein neuer Parameter für den Maximal-Wert von Plane.1 erstellt",vbInformation,"Maximalwert Plane1") Else If MaxRangePara.Value <> MaxRangeValue then MaxRangePara.Value = MaxRangeValue Box = MsgBox("Der Wert des bestehenden Parameters für den Maximal-Wert von Plane.1 wurde angepasst",vbInformation,"Maximalwert Plane1") End If End If oPart.Update End sub
How to do? 1. Das Part öffnen in dem dieses Makro laufen soll. 2. Start -> Knowledgeware -> Knowledge Advisor 3. Reaction anklicken (Toolbar Reactive Features) (siehe Screenshot) 4. Einstellungen (im oberen Bereich) wie auf dem Screenshot vornehmen 5. Im unteren Bereich auf "VB-action" umstellen 6. Code reinkopieren ACHTUNG WICHTIG der Code muss natürlich noch angepasst werden. Unter anderem muss der Name des geometrischen Sets (in dem deine Plane liegt) angepasst werden. Des weiteren müssen die Namen der Parameter sowie der Name der Ebene auf die die Reaction ablaufen soll angepasst werden. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank... Mitglied

 Beiträge: 27 Registriert: 25.04.2008
|
erstellt am: 31. Okt. 2008 09:31 <-- editieren / zitieren --> Unities abgeben:         
Servus Daniel, merci für Deine Hilfe und die Arbeit, die Du Dir gemacht hast. Genau so hab ich mir das vorgestellt. Auf meinem Rechner Zuhause läuft es einwandfrei! Nur in der Firma funktioniert es leider nicht - keine KWA-Lizenz . Ist jetzt halt echt sch..., weil ich nun trotz dem Makro nicht weiter machen kann. Gibt es noch ne andere Möglichkeit? Gruß, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 Ehrenmitglied V.I.P. h.c. Manager
     
 Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 31. Okt. 2008 09:43 <-- editieren / zitieren --> Unities abgeben:          Nur für Frank...
Hy, nein leider nicht. Das Problem ist das du mit dem "normalen" Formeleditor nicht auf die Ranges von Parametern zugreifen kannst. Das geht leider nur über die Methoden von VB bzw. gleich über Knowledgeware Sprache und die ist nur mit der KWA-Lizenz verfügbar. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |