| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| CAD-Automatisierung: Effizienzsteigerung durch smarte Methoden, ein Webinar am 11.10.2024
|
Autor
|
Thema: Wer hilf mir ? (476 mal gelesen)
|
gcat Mitglied Bau-Ing.
Beiträge: 31 Registriert: 05.08.2003
|
erstellt am: 05. Aug. 2003 15:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute ! Dieses Lisp übernimmt die Eigenschaften eines angeklickten Objektes. Es fehlt aber nur noch Plotstil. Wer kann das ergänzen ? wäre ganz dankbar ! (defun C:ANPASS (/ olderr ocmd L L1 L2 L3 F LF a) (princ) (setq a nil) (setq olderr *error* *error* dellerr) (setq ocmd (getvar "CMDECHO")) (setvar "CMDECHO" 0) ;;;;-------------------------------------------------------- (setq L (entsel "<<Waehlen Sie bitte ein Element>> :")) ;------------------LAYER----------------------------------- (setq L1 (assoc 8 (entget (car L)))) (setq L1 (cdr L1)) (princ) (command "layer" "setzen" L1 "") ; ;;-----------------FARBE------------------------------------- (setq F (assoc 62 (entget (car L)))) (setq F (cdr F)) (if (not F) (setq F "VONLAYER")) (if (/= F "nil") (progn (if (= F 0) (setq F "VONBLOCK")) ) ) (COMMAND "FARBE" F) ;;;-----------------LINIENTYP------------------------------ (setq L2 (assoc 6 (entget (car L)))) (setq L2 (cdr L2)) (if (not L2) (setq L2 "Vonlayer")) (command "linientyp" "setzen" L2 "") ; (setq a (tblsearch "layer" L1))) (princ) ;;; (if a (progn (setq L2(cdr (assoc 6 a ))) (command "linientyp" "setzen" L2 "") ) ) ;-------------------Liniendicke-------------------------- (setq L3 (assoc 370 (entget (car L)))) (setq L3 (cdr L3)) (if (not L3) (setq L3 "-1")) (command "setvar" "celweight" L3 ) ; ;Aktuelles Linienfaktor-------------------------------- (setq LF (assoc 48 (entget (car L)))) (setq LF (cdr LF)) (if (not LF) (setq LF "1")) (command "setvar" "celtscale" LF ) ;ende Linienfaktor----------------------------------- ; ; (setq L nil) (setq F nil) (setq a nil) (setq L1 nil) (setvar "CMDECHO" ocmd) (setq *error* olderr) (princ) ) ;;; --------------------------------------------------------------------------; Gruss RA
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Rausch Mitglied
Beiträge: 1200 Registriert: 26.03.2001 Intel Xeon 3,6 GHz 32 GB RAM NVIDIA Quadro P2000 Windows 10 Enterprise AutoCADmap 3D 2023 WS-Landcad 2023 QGIS 3.28.5
|
erstellt am: 05. Aug. 2003 15:29 <-- editieren / zitieren --> Unities abgeben: Nur für gcat
|
marvin101010 Mitglied ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)
Beiträge: 562 Registriert: 22.01.2003 Pentium 4 Windows XP Autocad 2006 Autocad 2006LT + Extender ADT 2007 ArchiCAD
|
erstellt am: 05. Aug. 2003 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für gcat
was er damit sagen will, ist, dass die frage eigentlich ins LISP-forum gehört... damit hat er ja eigentlich auch recht! trotzdem...ich versteh nicht wirklich was du willst...kann aber durchaus auch an mir liegen. ich arbeite entweder mit layerabhängigen- oder mit farbabhängigen plotstilen. beides hast du im prinzip abgedeckt... also wozu??? ------------------ .......good vibrations make the world go round Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gcat Mitglied Bau-Ing.
Beiträge: 31 Registriert: 05.08.2003
|
erstellt am: 05. Aug. 2003 15:46 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Aug. 2003 16:47 <-- editieren / zitieren --> Unities abgeben: Nur für gcat
|
gcat Mitglied Bau-Ing.
Beiträge: 31 Registriert: 05.08.2003
|
erstellt am: 05. Aug. 2003 17:06 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Aug. 2003 17:13 <-- editieren / zitieren --> Unities abgeben: Nur für gcat
also ich wiederhole die Antwort von Marvin die sich darauf bezog. --> was er damit sagen will, ist, dass die frage eigentlich ins LISP-forum gehört... damit hat er ja eigentlich auch recht! aber naja, nun ist es eben doch hier. ------------------ Gruß Sebastian Der Feind des Guten ist das Bessere. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pan Mitglied
Beiträge: 141 Registriert: 18.01.2003 HP Z200 Win 7 prof ADT 2012
|
erstellt am: 05. Aug. 2003 17:46 <-- editieren / zitieren --> Unities abgeben: Nur für gcat
|
TK_KE Mitglied
Beiträge: 67 Registriert: 15.07.2003 .
|
erstellt am: 05. Aug. 2003 18:16 <-- editieren / zitieren --> Unities abgeben: Nur für gcat
|
T. Bürger Mitglied Technischer Angestellter
Beiträge: 201 Registriert: 30.01.2001 AcadCAD MEP 2008 (D A CH)
|
erstellt am: 05. Aug. 2003 19:09 <-- editieren / zitieren --> Unities abgeben: Nur für gcat
@TK_KE, Das was Du meinst ist die "Plotstiltabelle" und die wird im jeweiligen Layout gespeichert. Hallo gcat, ich nehme an Du meinst den Plotstil dem ein Objekt zugewiesen werden kann. Dieses wird soweit ich das herausfinden konnte in diesen Gruppencodes gespeichert: (Online-Hilfe) 380–389 Zähler des Typs PlotStyleName (AcDb::PlotStyleNameType). Wird als 16-Bit-Ganzzahl gespeichert und verschoben. Benutzerspezifische Objekte (außer Elemente) können den gesamten Wertebereich für die Darstellung nutzen, Elementklassen dagegen lediglich die DXF-Gruppencodes 381 bis 389 (Begründung siehe Lineweight). 390–399 Zeichenfolge für den Referenzwert des PlotStyleName-Objekts. Hard-Zeiger, der einen abweichenden Wertebereich aufweist, so daß die Abwärtskompatibilität erleichtert wird. Wird als Objekt-ID (Referenz in DXF-Dateien) sowie als spezieller Typ in AutoLISP gespeichert und verschoben. Benutzerspezifische Objekte (außer Elemente) können den gesamten Wertebereich für die Darstellung nutzen, Elementklassen dagegen lediglich die DXF-Gruppencodes 391 bis 399 (Begründung siehe Lineweight). Vielleicht kommst Du ja damit weiter, habe leider im Moment kein Zeit (Abgabetermin)
------------------ Grüße T. Bürger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Aug. 2003 23:19 <-- editieren / zitieren --> Unities abgeben: Nur für gcat
Hier aufgezeigt um an die Info zu kommen: Objekt wählen: ((-1 . <Objektname: 4006bda8> ) (0 . "LWPOLYLINE") (330 . <Objektname: 4006bcf8> ) (5 . "35") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (390 . <Objektname: 4006bda0> ) (100 . "AcDbPolyline") (90 . 3) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 41.0345 27.7161) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 82.4966 69.1783) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 123.959 27.7161) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0 1.0)) Befehl: (setq q2 (entget(cdr(assoc 390 q1)))) ((-1 . <Objektname: 4006bda0> ) (0 . "ACDBPLACEHOLDER") (5 . "34") (102 . "{ACAD_REACTORS") (330 . <Objektname: 4006bc70> ) (102 . "}") (330 . <Objektname: 4006bc70> )) Befehl: (setq q3 (entget(cdr(assoc 330 q2)))) ((-1 . <Objektname: 4006bc70> ) (0 . "ACDBDICTIONARYWDFLT") (5 . "E") (102 . "{ACAD_REACTORS") (330 . <Objektname: 4006bc60> ) (102 . "}") (330 . <Objektname: 4006bc60> ) (100 . "AcDbDictionary") (280 . 0) (281 . 1) (3 . "Normal") (350 . <Objektname: 4006bc78> ) (3 . "Stil 1") (350 . <Objektname: 4006bda0> ) (3 . "Stil 2") (350 . <Objektname: 4006bd60> ) (3 . "Stil 3") (350 . <Objektname: 4006bd90> ) (100 . "AcDbDictionaryWithDefault") (340 . <Objektname: 4006bc78> )) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Wie du siehst sind im letzten Objekt ((0 . "ACDBDICTIONARYWDFLT")) die Plotstile enthalten, in dieser liste mußt du den Objektnamen des ((0 . "ACDBPLACEHOLDER")) suchen, der GC 3 Eintrag davor ist der des Objektes ((0 . "LWPOLYLINE")). mit diesen Schritten kommst du hin, wie es aussieht wenn man´s schön macht, zeigst dafür (bitte) du ;;; SUB zum übertragen des Objekt-Plotstiles ;;; (defun take_plstyle ( entity_list / x1 x2 x3 ) ;erwartet Entityliste (setq x1 (entget(cdr(assoc 390 entity_list))) x2 (cons 350 (cdr(assoc -1 x1))) x3 (cadr(member x2 (reverse(entget(cdr(assoc 330 x1))))))) (setvar "cplotstyle" (cdr x3)) );defun ------------------ Gruß Sebastian Der Feind des Guten ist das Bessere. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gcat Mitglied Bau-Ing.
Beiträge: 31 Registriert: 05.08.2003
|
erstellt am: 06. Aug. 2003 08:20 <-- editieren / zitieren --> Unities abgeben:
|