| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| CIDEON Whitepaper: Elektronik und Mechanik redundanzfrei vereinen: Der Weg zur mechatronischen Stückliste, ein Whitepaper
|
Autor
|
Thema: Schraffur effektiv erstellen (2842 mal gelesen)
|
obergaertner Mitglied Landschaftsarchitekt
Beiträge: 41 Registriert: 07.11.2003 Win XP Pro, SP 2 AutoCAD 2006 Lt
|
erstellt am: 13. Jan. 2004 11:26 <-- editieren / zitieren --> Unities abgeben:
Habe folgendes Problem: Wenn ich einem Objekt eine Schraffur zu weisen will gehe ich immer über Schraffur und wähle dann das Objekt (Polylinie) und bestätige mit enter. um das nächste objekt zu schraffieren bestätige ich wieder mit enter und erhalte wieder das fenster "schraffur" um dann wieder mit enter zu bestätigen, das objekt zu marieren und dann wieder mit enter usw. Mir scheint dass zu umständlich. Ziel ist es aber, dass ich jedes Objekt einzeln schraffiere um mir eventuelle Ändereungen zu erleichtern. gibt es einen trick? Obergaertner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kramer24 Ehrenmitglied V.I.P. h.c. Architekt
Beiträge: 5896 Registriert: 09.11.2001 Acad Architecture 2023 WIN 10
|
erstellt am: 13. Jan. 2004 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Hallo, hier hast Du ein Super-1a-Lisp. Es schraffiert alle Objekte auf ein mal, sind aber dann einzelnd editierbar... Lothar ;;; ;;; ;;; Funktionen zum Hatchen von Objekten (geschlossene Polylines u.ä.) ;;; Mit Buttondefinitionen für die, die Buttons wollen, ;;; HATCHT ALLE GEWÄHLTEN OBJEKTE UNABHÄNGIG VONEINANDER ;;; AUF VOREINGESTELLTEN LAYERN ;;; ;;; - Wolfgang Sünder - ;;; - 10/17/01 - ;;; - VERSION 2.0 - ;;; ;;; (prompt "\n| | sw_hatch wurde geladen. \"sw_hb001\" oder \"sw_hv001\" zum Ausführen Eingeben") (defun c:sw_hb001 (/ idx ss sc clayer) (command "_UNDO" "_BEGIN") (command "_ucs" "w") (setq ss (ssget)) (setq idx 0) (repeat (sslength ss) (command "_-bhatch" "_A" "_A" "_Y" "" "_P" "SOLID" "_S" (ssname ss idx) "" "" ) (setq idx (1+ idx)) ) (command "_ucs" "VO") (command "_UNDO" "_END")(princ) )
------------------ "Stellt Euch vor, es geht, und keiner kriegt's hin." (Neuss) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schachtelmacher Mitglied Verpackungsmittelmechaniker, Entwicklung
Beiträge: 86 Registriert: 07.01.2004
|
erstellt am: 13. Jan. 2004 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Hi, wenn Du mit Autocad 2004 arbeitest, kannst Du in den Werkzeugpaletten verschiedene Schraffuren mit voreingestellten Werten erstellen und dann klickst Du nur noch auf die Schraffur und in den zu schraffierenden Bereich - fertig, dann Rechstsklick (Befehl wiederholen) und wieder in die nächste Fläche klicken... ! Solange bis Du alle fertig hast. Rklick, klick, Rklick klick ... das ist superschnell! Gruss Ralf ------------------ "Es gibt keine Probleme, sondern nur Lösungen" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JosefG Mitglied Bauzeichner (Hoch- u. Tiefbau)
Beiträge: 127 Registriert: 14.04.2003 Windows 7 AutoCAD MAP 3D 2013
|
erstellt am: 13. Jan. 2004 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Hallo Lothar! Erstmal Danke für das Lisp-Programm. Dies Lisp-Programm bezieht sich auf "Solid-Schraffuren". Kannst Du das Programm so ändern, dass ich es auch für "Ansi31- bzw. Ansi33-Schraffuren" benutzen kann? Danke und noch einen schönen Arbeitstag ... JosefG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2012
|
erstellt am: 13. Jan. 2004 13:35 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Hallo, Entschuldigung, dass ich mich einmische. glaube Kramer24 is gerade nicht online das kannst du doch selbst ändern (command "_ucs" "w") (setq ss (ssget)) (setq idx 0) (repeat (sslength ss) (command "_-bhatch" "_A" "_A" "_Y" "" "_P" "SOLID" diese Zeile ändern(Name) "_S" (ssname ss idx) "" ""
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JosefG Mitglied Bauzeichner (Hoch- u. Tiefbau)
Beiträge: 127 Registriert: 14.04.2003
|
erstellt am: 14. Jan. 2004 19:18 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Hallo AsSchu! Danke für Deinen Tipp. Aber dies habe ich auch schon ausprobiert ... funktioniert aber nicht so wie mit "SOLID"!. Ich kann die Schraffuren (Ansi31/Ansi33) nicht einzeln bearbeiten! Probier es selber mal aus! Vielleicht hast Du ja einen anderen Tipp für mich! Danke und einen schönen Abend ... Josef Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2012
|
erstellt am: 15. Jan. 2004 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
|
loppy Mitglied Architekt
Beiträge: 39 Registriert: 23.04.2003 AutoCAD 2004, NT4.0
|
erstellt am: 30. Jan. 2004 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Hi! Lässt sich dieses "Lisp" ev. auch zur Insel-Erkennung ausbauen? Wäre fast ein Nobelpreis wert ;-) cheers Christoph ------------------ "If you don't fail now or then, it's a sign you're playing it safe (Woody Allen)" 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. Feb. 2004 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
hier mal ein geändertes Lisp, arbeitet mit Flächeninternen Punkten und nicht mit Objekten, die schraffiert werden sollen, da klappt dann auch die Inselerkennung... nicht das nonplusultra, aber villeicht hilft's in deinem Fall weiter... (prompt "\n| | sw_hatch wurde geladen. \"sw_hb001\" zum Ausführen Eingeben") (defun c:sw_hb001 (/ idx ss sc clayer PKT PKTLIST) (command "_UNDO" "_BEGIN") (command "_ucs" "w") (setq PKTLIST '()) (while (setq PKT (getpoint "\rInternen Punkt wählen <Enter=Abbruch>: ")) (setq PKTLIST (cons PKT PKTLIST)) (Princ PKT) ) ;;(setq ss (ssget)) ;;(setq idx 0) ;;(repeat (sslength ss) (while PKTLIST (command "_-bhatch" "_A" ; assosiativ "_A" "_Y" "" "_A" "_I" ; Inselerkennung "_Y" "" "_P" "ANSI31" ; Schraffurtyp 0.1 ; Maßstab 0 ; Winkel (car PKTLIST) ;"_S" ;(ssadd(ssname ss idx)) "" "" ) (setq PKTLIST (cdr PKTLIST)) ;(setq idx (1+ idx)) ) (command "_ucs" "VO") (command "_UNDO" "_END")(princ) ) ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
loppy Mitglied Architekt
Beiträge: 39 Registriert: 23.04.2003 AutoCAD 2004, NT4.0
|
erstellt am: 26. Feb. 2004 10:16 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Hi CADmium Danke für Deine Anpassungen! Unities kriegst Du noch ;-) Auf was meine Frage abzielte war folgendes: wir müssen sehr oft, sehr viele ganze Grundrisse zum Schluss schraffieren. Mit der ersten Version des Lisps kan man alle Objekte (geschlossene Polylinien = Wände) anwählen. Die werden dann alle auf einmal schraffiert. Der Vorteil ist das aber alle Objekte einzeln schraffiert sind, sprich die Schraffur nicht über alle Objekte hinweg geht, was das nachbearbeiten/ändern mühselig macht. Die Frage nach der Inselerkennung rührt daher, dass in den Grundrissen immer auch Kamine, Schächte, usw vorkommen, welche dann Inseln bilden innerhalb der Polylinien resp. Wände. Das ultimative "Tool" wäre jetzt natürlich, dass man einfach alle Objekte auswählen kann und das Lisp dann merkt, dass sich Polylinien innerhalb einer anderen befinden und diese dann als Insel ausspart... Wünsche über wünsche, ich weiss ;-) Vielleicht ist es auch zu aufwendig oder unmöglich das in ein Lisp zu packen... aber da wären ne Menge Unities drin ;-) Grüsse Christoph
------------------ "If you don't fail now or then, it's a sign you're playing it safe (Woody Allen)" 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: 26. Feb. 2004 10:26 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Nein, das was du wünscht geht so nicht (obwohl mir schon klar ist, was und warum du sowas willst): ...wenn man einfach alle Objekte auswählt... Woher soll das Programm wissen, ob die Polylinie /Kreis, was auch immer eine "Insel" sein soll oder nicht... Klar ließe sich vielleicht abfragen , ob eine Kontur drumrum liegt,.. aber die Lösung ist das dann bestimmt auch nicht... ein wenig Handarbeit bleibt immer
------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 17. Aug. 2004 15:37 <-- editieren / zitieren --> Unities abgeben: Nur für obergaertner
Hallo Leute Hab mal ein bischen für mich gebastelt. Wer´s brauchen kann: (defun c:xschraff ( / schl ) (setq schl 1) (while schl (setq schl (getpoint "\nPunkt wählen")) (if (= schl nil)()(progn (command "_-bhatch" "_A" ; assosiativ "_A" "_Y" "" "_A" "_I" ; Inselerkennung "_Y" "" "_P" "SOLID" ; Schraffurtyp schl "" ))) ) (princ) )
------------------ Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |