| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Linie zeichnen und verschieben (2972 mal gelesen)
|
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 23. Dez. 2005 17:51 <-- editieren / zitieren --> Unities abgeben:
Einen recht schönen guten Tag, 1. ich möchte gern mit einen Lispbefehl eine Linie von Anfang bis Endpunkt zeichnen,dann diese Linie mit anpicken um 3mm verschieben. 2.eine vorhandene Linie um 20mm kopiren, aber die kopierte Linie soll einen anderen Layer erhalten. Kann man sowas in zwei einzelne Lispbefehle realisieren ? Danke im vorraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 23. Dez. 2005 20:11 <-- editieren / zitieren --> Unities abgeben: Nur für stk
sorry, was soll das werden? zum verschieben und kopieren .. 3 mm (eigentlich Zeichnungseinheiten) sind der Betrag des Verschiebevektors, aber wo ist die Richtung?? prinzipiell ist in Lisp ne Menge machbar, aber du mußt schon genauer schreiben, was du willst. in etwa könnten aber die Fragmente, die du willst, so aussehen: 1: (progn (setq START(getpoint "\nStart: ")) (setq ENDE (getpoint "\nENDE: ")) (command "_line" START ENDE "") (setq LINE(entlast)) (command "_move" LINE "" '(0 0 0) '(0 3 0)) ) 2. (progn (setq LINE(car(entsel "\nLinie wählen:"))) (command "_copy" LINE "" '(0 0 0) '(0 20 0)) (setq NEWLINE(entlast)) (command "_chprop" NEWLINE "" "_layer" "0" "") ) ------------------ - 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 |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 24. Dez. 2005 09:28 <-- editieren / zitieren --> Unities abgeben:
Hallo und erstmal vielen dank für die Hilfe.Das ist fast genau was ich gesucht habe.Code 2 funktioniert super.Jedoch bei Code 1.ist die Linie beim zeichnen nicht zu sehen und der OFANG nicht mit F8 einzustellen. Kann man das auch noch hinbekommen ? Und wie kann ich diese zwei Lispdatein automatisch über einen Button laden ? Das sind meine einzigen Wünsche zum Fest. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 24. Dez. 2005 12:30 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Hallo stk, einen Teil Deiner Wünsche kann ich Dir erfüllen. Die Linie kannst Du beim Zeichnen nicht sehen, da Du nur Punkte auswählst. Allerdings läßt sich das durch eine Gummibandlinie ermogeln. Ändere die Zeile (setq ENDE (getpoint "\nENDE: ")) auf (setq ENDE (getpoint START "\nENDE: ")), das sollte helfen. Der OFANG läßt sich bei mir mit F8 problemlos einstellen (getestet auf Acad2000), da weiß ich auf Anhieb leider nicht weiter;-( Um die Routinen automatisch zu laden, gibt es mehrere Möglichkeiten. 1. Menu "Tools-Autolisp=>Load...-Startup Suite-Contents", füge da Deine *.lsp-Dateien ein; 2. Wenn Du sie nur EINmal pro Acad-Session brauchst, schreibe Pfad und Dateiname in die "acad####.lsp", vorher Datei sichern! 3. Für die Verwendung in jeder ZEICHNUNG schreibe Pfad und Name in die "acad####doc.lsp", diese wird jedesmal frisch geladen (empfohlen); vorher sichern! Beispiel: blabla-original-Datei (load "C:\\Programme\\ACAD2000\\MYlisp\\Testfunction.lsp") Ansonsten schlage ich vor, daß Du Dir in einem Werkzeugkasten ´nen eigenen Button mit den Routinen hinterlegst... Frohes Fest, hoffentlich hilft´s:-) Freddy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 24. Dez. 2005 13:17 <-- editieren / zitieren --> Unities abgeben:
super funktioniert sehr gut, aber ein kleines Problem gibt es da noch. das lisp versetzt die gezeichnete Linie immer nur in eine Richtung.Ich möchte mit dem Fadenkreuz bestimmen,in welche Richtung ich verschieben will, natürlich in allen Richtungen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 24. Dez. 2005 14:08 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Freut mich, daß es voran geht! Ich habe noch einen Lösungsvorschlag erarbeitet. Ist nicht das eleganteste Nonplusultra, sollte aber funktionieren. Code: (defun test_move (/ start ende line) (setq START (getpoint "\nStart: ") ENDE (getpoint START "\nENDE: ") ) (command "_.line" START ENDE "") (setq LINE (entlast)) (command "_.offset" 3 LINE pause "") (entdel LINE) (princ) ) Das "_move" wurde durch "_.offset" ersetzt. Die ursprüngliche Linie wird nach dem Versetzen gelöscht. Dabei gehe ich davon aus, daß Du die Linie parallel verschieben willst?! Falls nicht, müßtest Du doch mit "_.move" arbeiten und den Einfügepunkt über eine zusätzliche Benutzerabfrage definieren... Viel Vergnügen! Freddy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 24. Dez. 2005 14:16 <-- editieren / zitieren --> Unities abgeben:
die Linie soll immer paralell zur gezeichneten verschoben werden. wenn ich also eine linie i 37 grad zeichne, dann soll sie auch in 37 grad verschoben werden.aber in die richtung, wo ich das fadenkreuz hinziehe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 24. Dez. 2005 16:03 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Na, dann ist doch die Funktion genau das, was Du benötigst! Falls Du allerdings mit Buttons arbeitest und die Routine nicht woanders brauchst bzw. einbauen möchtest, dann lass´ den defun-Kram weg (vgl. Beitrag von CADmium) und verwende "progn": (progn (setq START ... ) ... (princ) ) Wohin Du die Linie verschiebst, wird über die Standardabfrage von VERSETZ (_.OFFSET) geregelt. Freddy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 24. Dez. 2005 16:09 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 24. Dez. 2005 16:15 <-- editieren / zitieren --> Unities abgeben: Nur für stk
??? Wann, wie, wo? Beim Laden einer "defun"? Vermutlich fehlt irgendwo eine Klammer oder es ist eine zuviel, prüf das mal. Sollte es sich damit nicht lösen lassen, häng einfach die .lsp als Datei an, vielleicht kann ich dann weiterhelfen. Freddy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 24. Dez. 2005 16:28 <-- editieren / zitieren --> Unities abgeben:
Wenn ich diese zeilen in autocad lade,dann zeichnen will,kommt die meldung : Falsch formatierte liste in eingabe (defun test_move (/ start ende line) (setq START (getpoint "\nStart: ") ENDE (getpoint START "\nENDE: ") ) (command "_.line" START ENDE "") (setq LINE (entlast)) (command "_.offset" 3 LINE pause "") (entdel LINE) (princ) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 24. Dez. 2005 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Seltsam. Habe Deine Zeilen in AutoCAD per Strg+C und Strg+V eingefügt; funktioniert einwandfrei! Welche Acad-Version verwendest Du (Profil)? Wie lädst Du die Funktion? Über das Menü oder aus Lisp heraus? Beschreibe bitte Dein Vorgehen etwas genauer. WANN taucht die Meldung auf? Direkt beim Laden oder erst, wenn Du "(test_move)" in der Kommandozeile eingegeben hast? Oder ist die Funktion einem Button hinterlegt? Dann könnte es an den Zeilenumbrüchen liegen... Freddy :~} Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 24. Dez. 2005 16:57 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 24. Dez. 2005 17:23 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Na schön, auch wenn Du meine Fragen (vorheriges posting) nicht wirklich beantwortet hast Selbstverständlich sind die Zeilen von CADmium O.K., sollten ja auch nur als Denkanstoß dienen. Das 90-Grad-versetzen liegt an der Zeile (command "_move" LINE "" '(0 0 0) '(0 3 0)) Der Teil ´(0 0 0) ist die Auswahl des Basispunktes mit x-, y- und z-Koordinaten. Als Einfügepunkt steht dann der Punkt '(0 3 0), was bedeutet, das ein Punkt angegeben ist, der in y-Richtung (90 Grad!) um 3 Einheiten vom Basispunkt entfernt ist. Das gleiche passiert natürlich auch bei Vorschlag Nr. 2 in der Zeile (command "_copy" LINE "" '(0 0 0) '(0 20 0)) Auch hier wird mit Fixwerten gearbeitet. Deshalb bin ich, da Du ja parallel verschieben willst, überhaupt auf _.offset umgestiegen. Auch meine "Lösung" ist, wie erwähnt, nicht der Traum aller Routinen, bei mir funktioniert es problemlos. Meine Gegenfragen zu beantworten wäre äußerst hilfreich, uns beiden ein schönes Weihnachsfest zu bescheren Freddy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 24. Dez. 2005 18:31 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 24. Dez. 2005 18:42 <-- editieren / zitieren --> Unities abgeben: Nur für stk
CADmiums Zeilen: Modifikation in Fettdruck, ungetestet 1: (progn (setq START (getpoint "\nStart: ")) (setq ENDE (getpoint START "\nENDE: ")) (command "_line" START ENDE "") (setq LINE (entlast)) (command "_.offset" 3 LINE pause "") (entdel LINE) ) Zur zweiten fällt mir spontan nichts ein; bei so wenig Entgegenkommen bin ich auch nicht sehr motiviert:-( Trotz allem - Frohes Fest! Freddy [Diese Nachricht wurde von Paulchen am 24. Dez. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 25. Dez. 2005 08:36 <-- editieren / zitieren --> Unities abgeben:
Es tut mir leid, aber ich habe bisher mit Autocad LT gearbeitet und muß mich erst in die Vollversion und Lisp reinfinden und erstmal sehen,wie das ganze so funktioniert.Hätte ich Ahnung von Lisp,dann hätte ich nicht hier nachgefragt,ob mir jemand diesen Code schreiben kann.Ich wollte Dich keinesfalls demotiviren, aber der Weihnachtsstreß war doch zuviel des guten.Oder ich habe meine Frage zum falschen Zeitpunkt gestellt. Ich entschuldige mich vielmals.Frohes Fest Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 25. Dez. 2005 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Ist zwar Weihnachten, aber da ich sowieso die Kiste mal anschalten mußte, um Software für den Digiknipser zu installieren ... wenn du dich in Lisp einarbeiten willst, sind Mapcars Seiten erste Wahl und hier gib's das Lisp-Handbuch zur 14'er Version.. ------------------ - 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 |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004
|
erstellt am: 25. Dez. 2005 15:59 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Hallo stk, die Entschuldigung ist angenommen. Man kann auch nicht behaupten, daß Du die Fragen zu einem "falschen Zeitpunkt" gestellt hast. Lass´ es langsam angehen, gerade jetzt, über die Feiertage... Bin auch wieder frisch motiviert! Freddy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 25. Dez. 2005 18:26 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Zitat: Original erstellt von stk: ... ob mir jemand diesen Code schreiben kann. ...
Hallo stk, zur Info (auch wenn Weihnachten ist) : Dies ist nicht das Wunschforum, indem man Code bestellen kann. Hier wird eine Menge Code ausgetauscht, das ist richtig. Zweck des Forums ist jedoch bei Problemen der Lisp-Programmierung Hilfe zu finden und/oder zu geben. Ein frohes Fest wünscht Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 25. Dez. 2005 20:33 <-- editieren / zitieren --> Unities abgeben:
|
startrek Mitglied Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 25. Dez. 2005 23:10 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Hi Kollege, wenn Du da mal nicht Holgers Botschaft falsch verstanden hast;-) Soll heissen hier ist nicht das 'code-mir-was-forum', aber wenn hier eigene ansätze erkennbar sind und Hilfe dazu gebraucht wird, mir fällt niemand ein hier, der keine Hilfe geben würde. Im Gegenteil, da bist heir im Paradies gelandet!;-) Also in diesem Sinne, frag' ruhig weiter, aber tue auch selber was mit dazu, das ist wirklich enorm wichtig und ausschlagebend für die Antworter;-) Gruss, nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 27. Dez. 2005 02:02 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Zitat: Original erstellt von stk: Ok , das habe ich deutlich verstanden.Ich verspreche hier nichts mehr anzufragen.
Hallo stk, vielleicht war meine Antwort wirklich zu knapp und hat Spielraum für Interpretationen gelassen, kann sein? Falls dem so ist, dann nimm Nancys Posting zur Kenntnis. Das trifft das, was ich zum Ausdruck bringen wollte. Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 27. Dez. 2005 15:53 <-- editieren / zitieren --> Unities abgeben:
|