Autor
|
Thema: Konstruktionslinien (11451 mal gelesen)
|
CAD-Tötti Mitglied
Beiträge: 114 Registriert: 27.09.2003 ACAD 2004
|
erstellt am: 26. Nov. 2003 21:47 Unities abgeben:
Hi Leutz,um das Thema komplett zu machen :-). Es fehlt noch die LISP für "Konstruktionslinie versetzen von Objekt". Objekt sind Linien, Polylinien, ... (auch in Blöcken und xrefs). Bis denne CAD-Tötti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 2765 Registriert: 17.05.2001 .
|
erstellt am: 22. Nov. 2003 21:33 Unities abgeben:
Hallo CAD-Tötti,mach lieber einen Schritt nach dem anderen. Die Serie geht ja noch weiter. Es ist bereits eine weitere Serie geplant, die sich dann dem Aufbau der LISP-Prgramme (Nutzung sinnvoller, variabler Programmbausteine) widmet. Ohne ein solches Konzept, würde ja auch mein (defun-Konzept, Programme über Nacht zu schreiben, nicht funktionieren. In dieser geplanten Serie, werde ich dann bestimmt auch einen Teil den Layerfunktionen widmen. Danach wirst du wissen, ob eine DEF-Datei ein für dich sinnvoller Weg ist, oder ob nicht vielleicht andere Möglichkeiten gleichermaßen zum Erfolg führen. Grüße Holger
------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 114 Registriert: 27.09.2003 ACAD 2004
|
erstellt am: 22. Nov. 2003 19:54 Unities abgeben:
Hi Holger (Grüße nach Saarbrücken aus FFM),och, verwirr mich ruhig :-). Ich überlege sowieso schon seit geraumer Zeit, wie ich die Layer in einer Lisp organisiere. Ich will dann in den Funktionen auf diese Layer-Lisp zugreifen. Bei den Layerdefinitionen möchte ich zugreifen auf eine "Layer.DEF", in der in Textform die Parameter für die Layereinstellungen (Name, Linientyp, Farbe, ...) definiert sind und in dieser DEF-datei beliebig veränderbar und erweiterbar sind. Das muß irgendwie so mit foreachitem oder so ähnlich funzen, bin mir aber nicht sicher. Grüße und besten Dank für die Hilfslinien-Aktion CAD-Tötti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 2765 Registriert: 17.05.2001 .
|
erstellt am: 22. Nov. 2003 19:31 Unities abgeben:
Hallo CAD-Tötti,wenn du mehr wissen möchtest, zum Zeichnen eines Rechtecks, dann schau mal auf meiner Seite ( http://www.defun.de ) unter Hilfe->Training sind derzeit 3 Teile einer Serie, die die Einführung in die AutoLISP-Programmierung zum Inhalt hat, verfügbar. Es folgen noch 2 weitere (jeweils Ende des Monats). Anhand dieses simplen, immer gleichen Themas (Zeichnen eines Rechtecks) wird die Programmierung mit AutoLISP erklärt. Könnte also für dich interessant sein. Deinen Code auf die schnelle geändert, sollte dann so funktionieren.
Code:
(defun c:HLA1( / altlay) ;erzeugt ein Rechteck DIN A1 auf dem Layer HELP (setq altlay (getvar "CLAYER")) (command "_layer" "_m" "HELP" "_c" 6 "HELP" "") (command "_rectang" '(0.0 0.0) '(841.0 594.0)) (setvar "CLAYER" altlay) (princ) )
Du willst ja aber sicher nicht für jeden Rahmen ein eigenes Programm schreiben müssen - oder? Deshalb so:
Code:
(defun c:hla1 () (draw_rahmen '(841.0 594.0)) ) (defun c:hla4 () (draw_rahmen '(210.0 297.0)) ) (defun draw_rahmen(pt2 / altlay);Zeichenfunktion (setq altlay (getvar "CLAYER")) (command "_layer" "_m" "HELP" "_c" 6 "HELP" "") (command "_rectang" '(0.0 0.0) pt2) (setvar "CLAYER" altlay) (princ) )
Man könnte/sollte die Layerfunktion zum Erzeugen noch rausnehmen und als extra Funktion zur Verfügung stellen, weil man das immer wieder gebrauchen kann. Ich möchte dich hier aber nicht zu sehr verwirren. Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 114 Registriert: 27.09.2003 ACAD 2004
|
erstellt am: 22. Nov. 2003 18:55 Unities abgeben:
Tach Leutz :-),habe folgendes Problem (s.u.). Das funzt nicht, weil ich mich nicht mit der getpoint-Funktion auskenne. (defun c:HLA1() ;erzeugt ein Rechteck DIN A1 auf dem Layer HELP (setq pt1 (getpoint "0,0")) (setq pt2 (getpoint "841,594")) (setq altlay (getvar "CLAYER")) (command "_layer" "_m" "HELP" "_c" 6 "HELP" "") (command "_rectang" pt1 pt2 " ") (setvar "CLAYER" altlay) (princ) ) Wie geht das richtig :-) ? Grüße CAD-Tötti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StephanJP Mitglied Techniker
Beiträge: 695 Registriert: 09.11.2000
|
erstellt am: 20. Nov. 2003 06:47 Unities abgeben:
@CAD-Tötti es macht keinen Sinn, das Ding immer wieder anzuhängen, also habe ich meinen Beitrag oben editiert ------------------ gruß Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 114 Registriert: 27.09.2003 ACAD 2004
|
erstellt am: 19. Nov. 2003 21:02 Unities abgeben:
Na, wo ist sie denn ??????????????????????????? :-)CAD-Tötti :-) Zitat: Original erstellt von StephanJP: habe meine Funktionen etwas Fehlerbereinigt. War wohl doch etwas schnell zusammengelispelt
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StephanJP Mitglied Techniker
Beiträge: 695 Registriert: 09.11.2000
|
erstellt am: 19. Nov. 2003 11:32 Unities abgeben:
habe meine Funktionen etwas Fehlerbereinigt. War wohl doch etwas schnell zusammengelispelt ------------------ gruß Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fips Mitglied Lehrer
Beiträge: 465 Registriert: 22.05.2001 AutoCAD 2010, IMOS, Pytha und VectorWorks im Novellnetz, Fachschule für Holztechnik
|
erstellt am: 15. Nov. 2003 15:23 Unities abgeben:
Nochmals zum Thema Hilfslinien löschen mit der lisp md_dellayer:Bei mir werden zunächst nur die Objekte gelöscht(!?). Der Layer muss bei Bedarf "von Hand" bereinigt werden - und genau so will ichs. Meldung in Befehlszeile: 17 Objekt(e) auf Layer HILFSLINIEN018 gelöscht. Layer HILFSLINIEN018 ist getaut, ausgeschaltet und kann bereinigt werden. Und noch was zu diesem Thema: Bei mir gibt noch einen Button "Kontur abgreifen": dabei wird der Befehl Polylinie aufgerufen und zuvor ein Layer "2D-Konturen" erzeugt. Damit zeichne ich die Kontur nach, die ich mit der Hilfslinienkonstruktion eigentlich erzielen wollte.(Beispiel: In die Ansicht einer Türe einen Glasausschnitt reinsetzen) Dann gibts noch die Buttons Extrusion und Rotation. Beide erzeugen und setzen den Layer "3D". Fips
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 114 Registriert: 27.09.2003 ACAD 2004
|
erstellt am: 15. Nov. 2003 14:43 Unities abgeben:
Greetz Leutz :-),super Thema, wie ich finde. Quält mich auch ein bisschen. Echt klasse wäre ja, wenn man das Hilfslinien-Lisp erweitern könnte um folgendes: - Hilfslinie an ein Objekt legen. Objekte können Linien, Polylinien aber auch solchige in Blöcken und XREFS sein. - Hilslinien versetzen von Objekten. Objekte können Linien, Polylinien aber auch solchige in Blöcken und XREFS sein. Natürlich sollten die Hilfslinien gleich auf dem entsprechendem Layer liegen, und wenn dieser nicht in der Zeichnung vorhanden ist, sollte dieser angelegt werden. Grüße CAD-Tötti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |