| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| SAP PLM zentraler Bestandteil des Lösungsangebots, eine Pressemitteilung
|
Autor
|
Thema: wenn Funktion im Autocad? (1688 mal gelesen)
|
Noivet Mitglied Bautechniker
Beiträge: 173 Registriert: 05.09.2007 Vista Autocad 2010 Version3 Inventor 2011 NVIDIA Quadro 3000M
|
erstellt am: 24. Jan. 2008 08:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, gibt es im Autocad so etwas wie eine "wenn" Funktion? Ich habe im Planstempel ein Attribut, das aus den Dateieigenschaften die Planart ausließt. Jetzt möchte ich einen Zusatz hinzufügen, der sich nach der Planart richtet. Also, "wenn Planart 1 dann Zusatz 1 sonst Zusatz 2". Liebe Grüße Noivet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 24. Jan. 2008 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für Noivet
IMHO(ungetestet) Du könntest ein Attribut mit Feld anlegen und darin einen LISPausdruck auswerten .. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Noivet Mitglied Bautechniker
Beiträge: 173 Registriert: 05.09.2007 Vista Autocad 2010 Version3 Inventor 2011 NVIDIA Quadro 3000M
|
erstellt am: 24. Jan. 2008 08:37 <-- editieren / zitieren --> Unities abgeben:
|
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 24. Jan. 2008 08:56 <-- editieren / zitieren --> Unities abgeben: Nur für Noivet
|
Noivet Mitglied Bautechniker
Beiträge: 173 Registriert: 05.09.2007 Vista Autocad 2010 Version3 Inventor 2011 NVIDIA Quadro 3000M
|
erstellt am: 24. Jan. 2008 11:02 <-- editieren / zitieren --> Unities abgeben:
Ich versteh fast nichts von dem was da geschrieben steht. Der Ausdruck sollte wohl so in etwa aussehen: $(if, $(!=, Wert1, Wert2), ausf_wahr [, ausf_falsch]) Kann ich jetzt einfach Texte Schreiben? $(if, $(!=, Wert1, Ausführungsplanung), Freigabe [, keine Freigabe]) Und wie bekomme ich das Arttibut in den "Wert1" rein? Wenn ich für Wert1 auch Ausführungsplanung schreibe kommt das raus: $(IF,??) Liebe Grüße Noivet [Diese Nachricht wurde von Noivet am 24. Jan. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Noivet Mitglied Bautechniker
Beiträge: 173 Registriert: 05.09.2007 Vista Autocad 2010 Version3 Inventor 2011 NVIDIA Quadro 3000M
|
erstellt am: 24. Jan. 2008 15:12 <-- editieren / zitieren --> Unities abgeben:
Hab es jetzt mal als Rtext versucht: $(if, $(!=, $(getprop, %DWG_TYPE), Ausführungsplanung), Freigabe [, keine Freigabe]) %DWG_TYPE = Benutzerspezifische Eigenschaft Klappt aber auch nicht. Sind vielleicht irgendwelche Zeichen zu viel oder zu wenig?? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 24. Jan. 2008 15:53 <-- editieren / zitieren --> Unities abgeben: Nur für Noivet
Hi, naja, so kann's auch nicht gehen. Es gibt einen Unterschied zwischen $(= und $(eq und Ausdrücke, die in der Hilfe in eckigen Klammern stehen, sind i.d.R. optional, soll heißen, die eckigen Klammern werden nicht im DIESEL-Ausdruck selbst verwendet. Grundsätzlich ist die Idee über RTEXT nicht schlecht, weil man damit direkt auf die Zeichnungseigenschaften zugreifen kann. Schau mal hier: http://ww3.cad.de/foren/ubb/Forum145/HTML/002325.shtml Das dürfte dir auf die Sprünge helfen. Damit du siehst, dass ich dich nicht am ausgetreckten Arm verhungern lasse: Bei mir funktioniert der RText schon. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Noivet Mitglied Bautechniker
Beiträge: 173 Registriert: 05.09.2007 Vista Autocad 2010 Version3 Inventor 2011 NVIDIA Quadro 3000M
|
erstellt am: 24. Jan. 2008 17:58 <-- editieren / zitieren --> Unities abgeben:
Danke für deine Hilfe CADchup. So hab ich es hin bekommen: $(if,$(=,1,$(eq,$(substr,$(getprop, %Kategorie),1,3),Aus)),freigegeben, nicht freigegeben) Nach einmal regen ist der andere Text dann da. Aber das Problem das ich nicht bedacht habe ist, das wir ein EDM System haben, und da bekomme ich die Eigenschaften nicht so einfach raus. Also muß ich doch wieder auf das Attribut im Block zugreifen. Wie bekomme ich das in meinen Dieselausdruck rein? Mit getvar und getprop wird das nicht gehen, oder? Liebe Grüße Noivet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 25. Jan. 2008 10:42 <-- editieren / zitieren --> Unities abgeben: Nur für Noivet
Hi, Zitat:
Also muß ich doch wieder auf das Attribut im Block zugreifen. Wie bekomme ich das in meinen Dieselausdruck rein? Mit getvar und getprop wird das nicht gehen, oder?
nein, damit geht's nicht, aber es ist viel einfacher. Du brauchst dafür auch keinen RText mehr: Schriftfelder können Eigenschaften von Objekten anzeigen. Also ganz einfach im Schriftfelddialog unter der Kategorie Objekt das Schriftfeld Objekt wählen und das Attibut, dessen Inhalt du anzeigen willst, auswählen. Auch dazu gibt's schon einige Beispiele hier. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Noivet Mitglied Bautechniker
Beiträge: 173 Registriert: 05.09.2007 Vista Autocad 2010 Version3 Inventor 2011 NVIDIA Quadro 3000M
|
erstellt am: 25. Jan. 2008 10:58 <-- editieren / zitieren --> Unities abgeben:
Und wo ist dann die "wenn" Funktion? Das Attribut wird doch schon angezeigt. Ich brauch doch einen Zusatz der sich nach dem Inhalt des Attributes richtet. Das Attribut bekommt den Inhalt Planart 1 oder Planart 2 aus unserem EDM-System. Und je nach Planart soll der Zusatz sich ändern. Also, wenn im Attribut steht "Planart1" dann soll im Zusatz "Zusatz1" stehen und analog dazu "Planart2" mit dem Zusatz "Zusatz2" Oder hab ich jetzt was falsch verstanden? Liebe Grüße Noivet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 25. Jan. 2008 14:26 <-- editieren / zitieren --> Unities abgeben: Nur für Noivet
Zitat:
Oder hab ich jetzt was falsch verstanden?
Nee, ich. Schriftfelder können, soweit ich weiß, keine Bedingungen prüfen. Dumm gelaufen. D.h. hoffen auf die nächste Version. Schlägt sich die Planart denn wirlich nur in diesem einen Attribut nieder und nicht zum Beispiel auch im Dateinamen? Hast du irgendeinen Einfluss darauf, wohin euer EDM die Planart ausgibt? Ein (setenv "PLANART" "Ausführung") vom EDM und dein Problem wäre mit einem Diesel-Ausdruck gelöst. Und damit wären wir wieder bei CADmiums LISP-Vorschlag. Allerdings können Schriftfelder IMHO nur Lisp-Variablen, nicht aber Lisp-Ausdrücke auswerten, d.h. du brauchst eine Lisp-Datei, die bei jedem Öffnen einer Zeichnung ausgeführt wird. Die sucht dann das betreffende Attribut, wertet es aus und schreibt den gewünschten Inhalt dahin, wo du es brauchst. Ist allerdings kein Dreizeiler, soviel ist sicher. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Noivet Mitglied Bautechniker
Beiträge: 173 Registriert: 05.09.2007 Vista Autocad 2010 Version3 Inventor 2011 NVIDIA Quadro 3000M
|
erstellt am: 28. Jan. 2008 10:08 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADchup: Hast du irgendeinen Einfluss darauf, wohin euer EDM die Planart ausgibt? Ein (setenv "PLANART" "Ausführung") vom EDM und dein Problem wäre mit einem Diesel-Ausdruck gelöst. [/i]
Ein kleines Tool ließt die Planart aus dem EDM aus und gibt diese Info an das Attribut weiter. Kann man denn nicht über die Bezeichnung des Attributes oder den ausgefüllten Inhalt was machen? Über den Dateinamen geht es leider nicht. Es gibt zwar Vorgaben, von denen aber u.U. abgewichen werden kann. Was macht "setenv" denn genau? Gibt es irgendwo eine umfassende Liste der Dieselausdrücke mit Beschreibung? Die Autocadhilfe ist da ja leider etwas sparsam. Liebe Grüße Noivet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 28. Jan. 2008 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für Noivet
Hi, Zitat:
Ein kleines Tool ließt die Planart aus dem EDM aus und gibt diese Info an das Attribut weiter. Kann man denn nicht über die Bezeichnung des Attributes oder den ausgefüllten Inhalt was machen?
Natürlich kann man, aber eben nicht mit DIESEL. Dazu braucht's ein Tool in LISP, VBA, etc., das den o.g. Weg geht. Dieses kleine Tool zum Planartauslesen könnte nicht mit einer Zeile erweitert werden? Zitat:
Was macht "setenv" denn genau?
setenv erzeugt eine "Umgebungsvariable". Vereinfacht gesagt ist das sowas ähnliches wie eine Systemvariable, deren Namen du vergibst. In DIESEL kannst du diese Umgebungsvariable abfragen. Zitat:
Gibt es irgendwo eine umfassende Liste der Dieselausdrücke mit Beschreibung? Die Autocadhilfe ist da ja leider etwas sparsam.
Das ist wahr, aber mehr Funktionen bietet DIESEL nun mal nicht. Im Netz gibt's ein paar Seiten zu DIESEL. Eine davon ist die von Dietmar Rudolph. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Noivet Mitglied Bautechniker
Beiträge: 173 Registriert: 05.09.2007 Vista Autocad 2010 Version3 Inventor 2011 NVIDIA Quadro 3000M
|
erstellt am: 28. Jan. 2008 11:22 <-- editieren / zitieren --> Unities abgeben:
|
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 28. Jan. 2008 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Noivet
Generell eine kleine Anmerkung zu diesem Thema: Wenn es sich um einen halbwegs fähigen EDM-Hersteller handelt dann programmiert er euch eine Schnittstelle zwichen AutoCAD/Word (was auch immer) um diesen Datenaustausch zu ermöglichen. Das DMS das wir im Einsatz haben, kann sich ins AutoCAD einklinken und dieses dann mit Werte für Attribute beschicken (umgekehrt kann auch AutoCAD die Attributwerte aus dem DMS abfragen). Auf jedenfall handelt es sich bei uns um "stinknormale" Attribute - normal sollte die Beschickung dieser aber ein Fall des DMS sein. ------------------ Grüsse Thomas Korrekturen zum Kochbuch AutoLISP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |