Autor
|
Thema: Intersection automatisch deaktivieren (3237 mal gelesen)
|
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010 Solid Works 2013 Professional Win7 SP1 Intel Xeon 2,67GHz 12GB Ram
|
erstellt am: 29. Mrz. 2010 14:37 <-- editieren / zitieren --> Unities abgeben:
|
DanielFr. Moderator 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: 29. Mrz. 2010 14:53 <-- editieren / zitieren --> Unities abgeben: Nur für Chrisma
|
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010
|
erstellt am: 29. Mrz. 2010 17:07 <-- editieren / zitieren --> Unities abgeben:
Ne bekomms nicht hin. Hab eine reaction erstellt : Source type: Selection Sources: Aktivitaet_Intersection Available events: ValueChange Jetzt müsste ich wahrscheinlich noch eine Action formulieren, aber ich weiß nicht mal ob ich nun mit true oder false arbeiten soll. if Aktivitaet_Intersection == true {Aktivitaet_Intersection = true} else {Aktivitaet_Intersection = false} Das macht selbst für mich keinen Sinn. Kann mir jemand noch helfen?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dusches Mitglied
Beiträge: 26 Registriert: 26.03.2010
|
erstellt am: 30. Mrz. 2010 08:44 <-- editieren / zitieren --> Unities abgeben: Nur für Chrisma
Hallo Chrisma, ich habe im Prinzip das gleiche Problem (gehabt) --> mein thread "Geometrie mit Regel löschen/deaktivieren " ist auch noch ziemliich neu... wenn du die akttivity der intersection in einen boolschen parameter packst und das ganze in eine regel(rule) schreibst klappt das auch. ich habe das folgendermaßen geschrieben und bei mir klappts. der parameter boolean.2 ist dabei mit dem intersect verknüpft. let i(curve)
i = intersect( `Geometrical Set.1\Flaeche_2` ,`yz plane` ) if (i.Error==true) { `Boolean.2` = false } else { `Boolean.2` = true }
gruß dusches Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010 Solid Works 2013 Professional Win7 SP1 Intel Xeon 2,67GHz 12GB Ram
|
erstellt am: 30. Mrz. 2010 11:57 <-- editieren / zitieren --> Unities abgeben:
Danke. Sehr gut. Beginne langsam das System zu verstehen. Naja, dachte ich bis zum nächsten Prob. habe jetzt folgendes für einen Split geschrieben, da meine Intersection immer da ist. Nun hab ich das Problem, dass mir der Split 15, den ich aktiviere/deaktiviere, in einem Update circle steckt. Der Split 15 splittet die Intersection die vorher geschieht. Ich verstehe es aber nicht. Beim ersten Mal hatte es funktioniert. Text:
let i(curve) i=split( `Intersect.48` , `Extrude.48`, false)
if (i.Error==true) { `Split.15\Activity` = false } else { `Split.15\Activity` = true }
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: 30. Mrz. 2010 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für Chrisma
Servus Du könntet mal probieren über den bestehenden boole'schen Parameter gleich den Split aktivieren/deaktivieren (einfache Formel): `Split.15\Activity` = `Boolean.2`Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010
|
erstellt am: 30. Mrz. 2010 13:17 <-- editieren / zitieren --> Unities abgeben:
Den Tip von Bgrittmann geht leider nicht `Split.15\Activity` = `Boolean.2` Für Boolean.2 muss ich ja eine Funktion erstellen um den Boolscehn Wert vom Split in den Parameter Boolean.2 zu bekommen. Dann kann ich aber keine Rule mehr erstellen, da, sobald ich mit dem Code aus dem letzten Post eine erstelle, die Funktion zwischen Boolean.2 und Split deaktiviert wird. Es hat also keine Auswirkung. Oder hab ich da was falsch verstanen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dusches Mitglied
Beiträge: 26 Registriert: 26.03.2010
|
erstellt am: 30. Mrz. 2010 14:17 <-- editieren / zitieren --> Unities abgeben: Nur für Chrisma
|
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010 Solid Works 2013 Professional Win7 SP1 Intel Xeon 2,67GHz 12GB Ram
|
erstellt am: 30. Mrz. 2010 14:53 <-- editieren / zitieren --> Unities abgeben:
So hier mein Versuch den ich auch schon angestellt hatte. Aber wie schon oben beschrieben bekomme ich eine Fehlermeldung: Automatic update? This relation has links to non parameters features and so will not be updated when inputs will. Do you want this relation to be updated when global Update is performed?... Ich hab yes geclickt und dadurch hat sich meine Rule deaktiviert. Ich raste aus. So ein popelprob... Naja... let i(curve) i=split( Intersect.66 , Extrude.66, false)
if (i.Error==true) { Aktivitaet_Split_30 = false } else { Aktivitaet_Split_30 = true }
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010
|
erstellt am: 30. Mrz. 2010 14:58 <-- editieren / zitieren --> Unities abgeben:
|
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010 Solid Works 2013 Professional Win7 SP1 Intel Xeon 2,67GHz 12GB Ram
|
erstellt am: 14. Apr. 2010 22:55 <-- editieren / zitieren --> Unities abgeben:
So ich hab mich mal wieder damit beschäftigt das Intersectionprob zu lösen. Code steht unten. Mein Prob ist, dass ich sehr viele Intersects habe. Ich habe also versucht eine Schleife zu schreiben. Diese habe ich als Rule in KWA eingefügt. Ich befürchte aber ich schmeiße gerade die Programmiersprache von Catia durcheinander. Ich bekomme auf jeden Fall einen Syntaxfehler um den Token X angezeigt. On error resume next For X = 1 to 11 'mir egal, dass es nicht variabel ist, die Linie sind imemr die gleichen let i(point) i=intersect( `Geometrical Set.1\Line.`+X ,`Geometrical Set.1\Plane.1` ) 'bin mir nicht sicher ob man so weiter zählt. In VB müsste es gehen. if (i.Error==true) { `Geometrical Set.1\Multi Output.1 (Intersect)\Intersect.`+X`\Activity` = false } else { `Geometrical Set.1\Multi Output.1 (Intersect)\Intersect.`+X`\Activity` = true }
i.clear next X ------------------ Hihihi, lol, hihihi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LukasToni Mitglied
Beiträge: 7 Registriert: 19.11.2012 WIN 7 Enterprise SP1 Intel(R) Xeon(R) CPU W3550 @3.07GHz 3.06GHz 12GB RAM 64 Bit-Betriebssystem CATIA V5 R19 SP9
|
erstellt am: 30. Nov. 2012 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für Chrisma
Ich habe ein weiterführendes Problem zu dem Thema. Ich habe eine ähnliche Rule erstellt wie bereits beschrieben... Code:
let i(point)i=intersect(`Linie1` ,`Plane1` ) if (i.Error==true) { `Boolean1` = false } else { `Boolean1` = true }
Das ganze funktioniert soweit einwandfrei. Jedoch erscheint immer die Warnung: Rule.1 Update failed :: No Solution There is no solution for this operation Ich schätze das liegt daran das keine Verschneidung vorhanden ist und CATIA aber genau dies in der Rule ja macht. Frage: Kann man CATIA irgendwie sagen, dass die Verschneidung erst geprüft werden soll und wenn diese nicht vorhanden ist soll direkt der Parameter Boolean1 auf false gesetzt werden? Das ganze ohne die Verschneidung zu versuchen, also auch ohne Warnmeldung. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LukasToni Mitglied
Beiträge: 7 Registriert: 19.11.2012 WIN 7 Enterprise SP1 Intel(R) Xeon(R) CPU W3550 @3.07GHz 3.06GHz 12GB RAM 64 Bit-Betriebssystem CATIA V5 R19 SP9
|
erstellt am: 03. Dez. 2012 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für Chrisma
Ich hab das ganze selber lösen können... Für alle die es interessiert: Ich habe einfach geprüft ob ein Abstand existiert. Wenn Ja ist keine Verschneidung vorhanden und der Parameter wird auf false gesetzt. Die Rule wird vor dem Intersect geprüft, somit wird das intersect in dem Falle das es keine Verschneidung hat deaktiviert bevor es auf einen Fehler/eine Warnung läuft. Code:
If distance(Plane1 ,Curve1)==0mm { Boolean1 = true } else { Boolean1 = false }
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |