| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Happy CADing mit ZWCAD Mechanical – Wie man eine Zeichnung eines Scheinwerferreflektors schneller und besser anfertigt |
Autor
|
Thema: iLogic und Regeln etwas anders verwenden (5259 mal gelesen)
|
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 21. Nov. 2011 10:10 <-- editieren / zitieren --> Unities abgeben:
Hey Leute, wie ist es denn möglich, einen Nennwert + Toleranz in einer Schleife mehrmals zu ändern? Es gibt folgende Möglichkeit einen Wert einmal zu ändern: param = Parameter.Param("d0") If (param IsNot Nothing) Then param.Expression = "5.0 mm" param.Tolerance.SetToDeviation(0.002 * 2.54, -0.004 * 2.54) param.Comment = "Equation and Tolerance set by a rule" End If Wie schaffe ich es, das ich diesen Wert mehrmals, bis unendlich verändern kann, ohne das ich auf Aktualisieren klicken muss und er mir das Visualisiert? Quasi wie eine Iteration. Wichtig ist nur, das ich es sehen kann. Ich stelle mir eine Schleife vor, die bestimmte Werte durchläuft und dann nach x Werten endet. Dabei wäre es noch schön, wenn diese Werte mit den Toleranzen in eine Excel Tabelle geschrieben werden. Hat jemand eine Idee oder wenigstens einen Ansatz? Gruß, Defender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 21. Nov. 2011 11:37 <-- editieren / zitieren --> Unities abgeben:
Ein stückchen bin ich voran gekommen. Wie kann ich denn folgenden Code ändern, damit eine Pause nach ablauf der Schleife generiert wird? Ausserdem möchte ich das Bauteil automatisch aktualisieren und nicht immer klicken müssen. trigger = iTrigger0 param = Parameter.Param("d0") If (param IsNot Nothing) Then param.Expression = "15 mm" param.Tolerance.SetToDeviation(0.002 * 2.54, -0.004 * 2.54) RuleParametersOutput() param.Comment = "Equation and Tolerance set by a rule" End If Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
invhp Ehrenmitglied V.I.P. h.c. MB Techniker, AE, WKZmacher
Beiträge: 5552 Registriert: 16.05.2002 (fast) alles, was Autodesk im Mechanikbereich anbietet ;)
|
erstellt am: 21. Nov. 2011 20:53 <-- editieren / zitieren --> Unities abgeben: Nur für Defender19862
|
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 22. Nov. 2011 08:37 <-- editieren / zitieren --> Unities abgeben:
|
kugelgetuem Mitglied Konstrukteur
Beiträge: 8 Registriert: 06.09.2010 Win7 x64 Iv2013
|
erstellt am: 22. Nov. 2011 10:38 <-- editieren / zitieren --> Unities abgeben: Nur für Defender19862
Hallo ihr scheint euch ja mit Ilogic auszukennen wie kann ich denn die Sichtbarkeit einer Skizze über ILogic steuern wenn ich nur F10 drücke ist die Skizze zwar weg aber bei der erstellung einer DWG wieder da ich habe ein Konstrukt das vollig durch Excel und ILogic gesteuert wird jedoch ist eben das Problem bei der Übergabe mit der Skizzensichtbarkeit da. Hoffe ihr habt eine Idee!!! MfG Kugelgetuem
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 22. Nov. 2011 13:17 <-- editieren / zitieren --> Unities abgeben:
Ich habe nicht wirklich Ahnung, aber selbst ein Problem. Was mache ich falsch? Es ist eine Endlosschleife! Will ich aber nicht. Code: trigger = iTrigger0 mass = iProperties.Mass 'Startwert 0,028 kg x = Durchmesser y = 0 a = Innendurchmesser + 0.016 i = 0 Do While Not EqualWithinTolerance(mass, 1, 0.05) x = x - 0.01 y = y + 1 a = a + 0.001 i = i + 1 Parameter ("Durchmesser") = x Parameter ("Innendurchmesser") = a InventorVb.DocumentUpdate() ThisApplication.ActiveView.Update() mass = iProperties.Mass If y = 13 And i = 18 Then Exit Do Loop x = 26.37 y = 0 a = 17.784 i = 0 Do While Not EqualWithinTolerance(mass, 1, 0.05) x = x + 0.01 y = y + 1 a = a - 0.001 i = i + 1 Parameter ("Durchmesser") = x Parameter ("Innendurchmesser") = a InventorVb.DocumentUpdate() ThisApplication.ActiveView.Update() mass = iProperties.Mass If y = 13 And i = 18 Then Exit Do Loop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 22. Nov. 2011 23:52 <-- editieren / zitieren --> Unities abgeben: Nur für Defender19862
Wie soll denn da jemals gleichzeitig y=13 und i=18 werden Grundsätzlich sind Gleichungen keine guten Abbruchkriterien. Besser sind immer Ungleichungen. Und noch besser sind Schleifen, die von selber aufhören. ------------------ Roli www.Das-Entwicklungsbuero.de [Diese Nachricht wurde höchstwahrscheinlich nach ihrer Erstellung von Doc Snyder noch ein Mal editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 23. Nov. 2011 08:59 <-- editieren / zitieren --> Unities abgeben:
|
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 23. Nov. 2011 10:16 <-- editieren / zitieren --> Unities abgeben:
Notgedrungen gehts so, is aber eigentlich nich richtig: trigger = iTrigger0 x = Durchmesser y = 0 a = Innendurchmesser + 0.016 i = 0 Do While Not EqualWithinTolerance(mass, 1, 0.05) x = x - 0.01 y = y + 1 a = a + 0.001 i = i + 1 Parameter ("Durchmesser") = x Parameter ("Innendurchmesser") = a InventorVb.DocumentUpdate() ThisApplication.ActiveView.Update() If y = 13 Then Exit Do Loop x = 26.487 y = 0 a = 17.784 i = 0 Do While Not EqualWithinTolerance(mass, 1, 0.05) x = x + 0.01 y = y + 1 a = a - 0.001 i = i + 1 Parameter ("Durchmesser") = x Parameter ("Innendurchmesser") = a InventorVb.DocumentUpdate() ThisApplication.ActiveView.Update() If y = 13 Then Exit Do Loop Durchmesser = 26.500 Innendurchmesser = 17.750 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 23. Nov. 2011 23:39 <-- editieren / zitieren --> Unities abgeben: Nur für Defender19862
Zitat: Original erstellt von Defender19862: ...der Durchmesser 13 Schritte macht, der Innendurchmesser 18 Schritte...
Die werden aber doch immer nur praktisch gleichzeitig um 1 hochgezählt und fangen beide bei Null an. Wenn Du so was Grundlegendes auch nach einem gezielten Hinweis nicht verstehst, solltest Du erst mal mit einfacheren Aufgaben üben. ------------------ Roli www.Das-Entwicklungsbuero.de [Diese Nachricht wurde höchstwahrscheinlich nach ihrer Erstellung von Doc Snyder noch ein Mal editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 24. Nov. 2011 07:15 <-- editieren / zitieren --> Unities abgeben:
Ich vermute du hast das Programm nicht verstanden! Die Durchmesser werden um bsp. 0,01mm hochgesetzt! Die andere Variable ist nur ein Zähler, der dann die Schleife abbrechen soll. Es funktioniert ja auch alles, wenn man nur einen Zähler verwendet. Was aber, wenn ich für jeden Duchmesser einen anderen Zähler verwende!? Ich bin eben Diplomand Maschinenbau und kein Informatiker, sonst müsste ich ja auch nicht fragen. Ich glaube zu verstehen was du meinst. Eine Lösung habe ich auch erstmal gefunden, um wenigstens alles anzeigen zu lassen. Das funktioniert dann aber auch nur mit einem Zähler. [Diese Nachricht wurde von Defender19862 am 24. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 25. Nov. 2011 02:43 <-- editieren / zitieren --> Unities abgeben: Nur für Defender19862
|
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 25. Nov. 2011 07:40 <-- editieren / zitieren --> Unities abgeben:
das war nur eine vermutung und kein vorwurf! nur schade, das man keine antworten von dir bekommt, sondern nur hinweise und den vorwurf, das ich die grundlagen nicht beherrsche. sinn eines solchen forums ist definitiv ein anderer. ich hab jetzt einen Informatiker gefunden, der mir zur seite steht! trotzdem danke. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
irvine Mitglied Techniker Maschinenbau / Produktmanager
Beiträge: 68 Registriert: 07.04.2005 Rhino3D 5 SR14 64-bit Win10.0.15063 - 16GB
|
erstellt am: 25. Nov. 2011 09:10 <-- editieren / zitieren --> Unities abgeben: Nur für Defender19862
Schönen Tag auch! also ich möchte hier noch eine Lanze für unseren geschätzten Doc brechen. Seine Antworten sind stets präzise, angenehm hilfsbereit und fachlich sehr kompetent. Dieses Lob möchte ich ebenfalls für das Forum aussprechen, ich verfolge mit großem Interesse Eure guten Beiträge! Schönes Wochenende allerseits, erwin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Defender19862 Mitglied
Beiträge: 20 Registriert: 24.08.2011
|
erstellt am: 25. Nov. 2011 09:16 <-- editieren / zitieren --> Unities abgeben:
|