| |
| Gut zu wissen: DraftSight - Warum hat ein 2D-CAD System einen solchen Erfolg? |
Autor
|
Thema: DIESEL VARIABLE zu DEFINIEREN (1431 mal gelesen)
|
RaEli Mitglied Consultant
Beiträge: 12 Registriert: 22.03.2017
|
erstellt am: 17. Jul. 2017 11:08 <-- editieren / zitieren --> Unities abgeben:
|
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003 Win7-64,Win10-64 SWX 2010/11/12/13/14/15/16/17/18,19,20,21,22 Immer das aktuellste SP Autodesk Product Design Suite Standard 2020 DraftSight Énterprise 2021SP2 CIM Database 11.3 32GB RAM. NVIDIA Quadro P1000
|
erstellt am: 17. Jul. 2017 11:44 <-- editieren / zitieren --> Unities abgeben: Nur für RaEli
...geht IMHO nur über Makro oder Lisp. Edit: wofür brauchst du denn sowas? ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) [Diese Nachricht wurde von jörg.jwd am 17. Jul. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Jul. 2017 13:14 <-- editieren / zitieren --> Unities abgeben: Nur für RaEli
Um (Menü)Makros geht es hier ja bereits? Zum einen: Weder mit Lisp noch irgendwie über Menümakros kann man eine Datei um (Zeichnungs-)SystemVariablen ergänzen. Mit Lisp hätte man jedoch die Möglichkeit Lispvariablen (zu Laufzeit) zu generieren, auf die zugegriffen werden könnte. Mit dem Laden der Datei müssen die LispVariablen gesetzt werden (setqvar "Layer1" "ET_EG"), im Makro wäre dann einfach !Layer1 zu schreiben. Wenn man jedoch Lisp zur Verfügung hat und nutzt, dann wäre eine LISTE sinnvoller. <- break -> Erst mal die Antwort des TO abwarten. (da ich praktisch keine Erfahrung mit DS&Lisp habe: Die Befehlszeile wertet doch hoffentlich die Lispeingaben wie in Acad direkt aus / laufen über den Lispinterpreter?) !var oder auch (getvar "var") würden also im Makro funktionieren? Ich nehme es bisher stark an, korrigiert mich wenn ich es falsch im Kopf habe. Ohne Lisp Lisp wäre es möglich die (temporären) Variablen USERS1-5 zu nutzen, das Setzen der Variablen muß jedoch auch hier jedes Mal zur Laufzeit erneut erfolgen. In diesem Fall, wer also nicht auf Lisp zurückgreifen kann/möchte: USERS mit den benötigten WErten füllen(über ein Script zB.), dann über DieselFunktionen GETVAR und INDEX abrufen. Blöder Nachteil: Man kann die Werte nicht mit variablen Namen verknüpfen, sondern nur auf das 1. 2. ... 5. Element einer Liste verweisen. USERS1=L1,L2,L3,L4,L5,L6 $M=$(index,1,$(getvar,USERS1)) liefer "L2" zurück.
-- Wie Jörg schon geschrieben hat: Erzähle doch zunächst einmal etwas mehr über das eigentliche Vorhaben, denn deine Anfrage lenkt die sache ja schon in eine Richtig und die muß ja nicht die Beste sein Beschreibe so viel wie möglich von der Arbeit und der Struktur der Dateien/Layer. Vielleicht ist die USERS1 Variante perfekt, evtl. gibt es aber auch ganz andere Wege, je nach Aufgabe und vorliegender Struktur. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RaEli Mitglied Consultant
Beiträge: 12 Registriert: 22.03.2017
|
erstellt am: 17. Jul. 2017 13:32 <-- editieren / zitieren --> Unities abgeben:
Hallo ich möchte mir ein kleines Tool basteln um Elektro istalations Pläne schnell zu erstellen. Und ich hab keine Lust jedes Symbol für jeden Layer anzulegen. Ich stell mir das so vor, das ich mir Ribbons mit den Symbolen erstelle und Butten oder listen auswahl habe wo ich den Layer setzen kann wohin die Blöcke hin platziert werden. Ich möchte wie Folgt arbeiten. Ich wähle die Etage aus und die User1= KG,EG,OG_1,OG_2,OG_3,OG_4..... Und was ich wähle den Leitungstyp aus User2=E-Instalation,Datenleitung...... Aus diesen beiden soll sich dann der Layername zussamen setzen Dan Wähle ich eine Butten aus z.B. Leitung (eine PolyLinie)die auf den Entsprechenden Layer liegt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Jul. 2017 13:52 <-- editieren / zitieren --> Unities abgeben: Nur für RaEli
Ein Tool? Klingt mehr nach einer angepassten Benutzeroberfläche, also nur Menüanpassung. (als ein Tool verstehe ich ein Programm, daher an dieserr Stelle noch einmal nachgehakt) 1. Habt Ihr die Pro-Version auf allen Arbeitsplätzen = Kann man dir auch mit einer Lisp etc. Lösung helfen? Dann fallen die Antworten anders aus.
2. Nach aktueller Beschreibung reicht dir also ein Menü in dem man die Etage auswählen kann. [EDIT GELÖSCHT - Da ging etwas bei Copy&Paste schief, ich ergänze kurzfristig mit neuem Antwort-Posting, sorry] ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RaEli Mitglied Consultant
Beiträge: 12 Registriert: 22.03.2017
|
erstellt am: 17. Jul. 2017 13:59 <-- editieren / zitieren --> Unities abgeben:
Alles Klar, Danke für deine hilfe! Gibt es eine Samlung von Diesel Macros mit Beschreibuneng wie diese Funktionieren? Oder eine Auflistung der Befehle mit Beispielen. Am besten mit Verschachtelungen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Jul. 2017 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für RaEli
Mir ist für Draftsight keine Dokumentation bekannt, jedoch dürften die Funktionen sich wie andere Dinge auch sehr nahe an dem Programm AutoCAD von AutoDESK anlehnen. Dazu kann ich dir gerne einen Link zur Hilfe senden: KLICK! und einen Link der ein paar mehr Themen listet KLICK! Beispiele zur Verwendung gibt es millionenfach (aber da verweise ich nur auf Google oder ALTE AutoCAD-Bücher), es gibt nur wenige Funktionen, das was man lernen möchte sind zunächst die CAD-Befehle und wie man diese anwendet. Dann kann man Menümakros stricken und erst dann kommt DIESEL als i-Tüpfelchen onTop. Die wenigsten Dinge betreffen als "DIESEL" direkt, man hängt eher an den anderen Dingen. Lesetip: http://www.crlf.de/Dokumente/Diesel/Diesel.html Hinweis damit man sich zu zwei Funktionen nicht unnötig den VersuchsHals bricht: Wenn man Bücher und Internetseiten zu Autocad als Quelle nutzt, was ja automatisch schon bedeutet das es Abweichungen geben kann, dann kommt ein Punkt noch erschwerend hinzu: SETENV und GETENV gibt es nur in AutoCAD-LT, diese Möglichkeit gibt es wohl in Draftsight ebenso wenig wie in AutoCAD (ohne LT). Grundsätzlich wäre aber alles leichter wenn man sich einer Programmierschnittstelle bedient, welche es in der Draftsight Pro Version gibt. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Jul. 2017 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für RaEli
Zitat: Original erstellt von cadffm: [EDIT GELÖSCHT - Da ging etwas bei Copy&Paste schief, ich ergänze kurzfristig mit neuem Antwort-Posting, sorry]
Ich bin leider über einen kleinen Fehler in DS in Bezug auf Diesel gestossen, zumindest bei meiner Installation. Zunächst wollte ich dir folgende Makrobeispiele posten: Teil1_Layername 'USERS1;ET_EG;'_-Layer;_make;$M=$(getvar,Users1)_$M=$(getvar,Users2);; Teil2_Layername 'USERS2;ET_DG;'_-Layer;_make;$M=$(getvar,Users1)_$M=$(getvar,Users2);; Die crashed jedoch meine DS-Sitzung Daher eine weniger elegante Möglichkeit: 'USERS1;ET_EG;'_-Layer;_make;ET_EG_$M=$(getvar,Users2);; 'USERS2;Leitung1;'_-Layer;_make;$M=$(getvar,Users1)_Leitung1;; In der Menüoberfläche erstellt man sich dann zwei Flyouts, in dem einen ist die Liste für den Teil1 und im anderen für Teil2, so hat man immer alle Layer "dabei". (um Layer und Objektfarben sollte man sich auch kümmern, dies hier sind nur einfache funktionierende Beispiele) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 17. Jul. 2017 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für RaEli
Zitat: Original erstellt von cadffm: (da ich praktisch keine Erfahrung mit DS&Lisp habe: Die Befehlszeile wertet doch hoffentlich die Lispeingaben wie in Acad direkt aus / laufen über den Lispinterpreter?) !var oder auch (getvar "var") würden also im Makro funktionieren? Ich nehme es bisher stark an, korrigiert mich wenn ich es falsch im Kopf habe.
Hallo cadffm die Lispschnittstelle im DraftSight ist nahezu identisch mit AutoCAD. Wie du ja weißt heißen die meisten Sysvars anders wie auch der eine oder andere Befehl. Wobei die Originalbefehle fast alle 1:1 funktionieren. Ich habe auch schon diverse Lisp-Routinen aus dem Netz getestet. Die meisten funktionieren im DS auch ohne irgendwelche Änderungen daran machen zu müssen HTH ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Jul. 2017 15:27 <-- editieren / zitieren --> Unities abgeben: Nur für RaEli
Die Frage speziell auf die Befehlszeile bezogen, ob hier wie in Acad eine öffnende Klammer ebenfalls als Lispausdruck verarbeitet wird. Also !a die Lispvariable a evaluiert oder (/ 6 2) die 3 als Eingabe annimmt. Danke für die Bestätigung. Ich sollte im Forum mal für 99€+19% ein kleines AuftragsTool anbieten damit ich mir privat DSpro zulegen kann. Bisher gab es noch keinen Gönner (Dessault oder ein Vertrieb darf mir oder "CAD.de" gerne so eine Lizenz als Leihgabe bereitstellen, habe ich nichts dagegen Sebastian ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Zeichner / Technischer Systemplaner (w/m/d) Schwerpunkt Revit | Die RBS wave GmbH ist eines der großen Ingenieurunternehmen in Baden-Württemberg. Mehr als 170 Mitarbeitende arbeiten in den Geschäftsfeldern Energie, Wasser und Infrastruktur. Das Dienstleistungsangebot der RBS wave GmbH richtet sich vorwiegend an Versorger, Stadtwerke, Kommunen und Wasserzweckverbände in Baden-Württemberg sowie den angrenzenden Regionen. Die RBS wave GmbH ist ein Unternehmen der EnBW Energie Baden-Württemberg AG.... | Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 18. Jul. 2017 06:21 <-- editieren / zitieren --> Unities abgeben: Nur für RaEli
Zitat: Original erstellt von cadffm: Die Frage speziell auf die Befehlszeile bezogen, ob hier wie in Acad eine öffnende Klammer ebenfalls als Lispausdruck verarbeitet wird. Also !a die Lispvariable a evaluiert oder (/ 6 2) die 3 als Eingabe annimmt.Danke für die Bestätigung. Ich sollte im Forum mal für 99€+19% ein kleines AuftragsTool anbieten damit ich mir privat DSpro zulegen kann. Bisher gab es noch keinen Gönner (Dessault oder ein Vertrieb darf mir oder "CAD.de" gerne so eine Lizenz als Leihgabe bereitstellen, habe ich nichts dagegen Sebastian
Hi Sebastian, ja das funktioniert nahezu gleich wie in AutoCAD. Ich benutze immer (entget (entlast)) um die dxf-Gruppencodes rauszufinden (über die Befehlszeile). Ich habe bis jetzt noch nichts festgestellt was nicht tut wie in AutoCAD (was nicht heißt dass es 100% gleich ist). ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |