| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Durchgängige CAD-Daten in der Produktkonfiguration, eine Pressemitteilung
|
Autor
|
Thema: Linientypfaktor zuweisen. (1155 mal gelesen)
|
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 26. Jan. 2005 13:19 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Jan. 2005 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
|
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 26. Jan. 2005 13:39 <-- editieren / zitieren --> Unities abgeben:
Danke. Nur es hilft mir leider nicht weiter. Ich habe eine Lisp-Datei und da setze ich Werte einer Linie ein und möchte Linientypfaktor auch zuweisen (z.B. für verdeckte Linie), klappt leider nicht ( Beispiel: ID_GW_AR [Möbel]^C^C-layer;neu;xxx-AR-Moebel;se;xxx-AR-Moebel;fa;11;;lt;Continuous;;ls;0.3;;; 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: 26. Jan. 2005 13:51 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Ach du ... Nenne demnächst doch den Befehl um den es evtl geht wollte ich mit dem Zwinker ansprechen.. Meine LTF war im übrigen eine Option des Befehles ÄNDERN / _CHANGE ###### als die aktuelle Objektlinientypfaktor-Einstellung ist die Sysvar "celtscale" wenn dir das was hilft. Warum postest du ein MAKRO ? Wenn es wirklich um LISP gehen sollte, warum nicht im LISPforum ? & Ich glaube hier läuft einiges durcheinander..
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 26. Jan. 2005 14:22 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Jan. 2005 14:27 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
noch nicht... oder sollte das bedeuten das es tatsächlich um LISP geht ? du hast schließelich ein Non-Lisp-Button-Makro als Beispiel gepostet ?? Wenn Lisp, dann Beitrag verschieben.. klare Sache Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 26. Jan. 2005 14:32 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Jan. 2005 14:36 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
na dann bleibe "hier" 1. dein Makro veranlasst keinen eine Linie zu erstellen ? das verwirrt.. 2. vor Linie erstellen celtscale einstellen, nach Linienerstellung wieder zurückstellen oder 3. mit _change das letzte element ändern... Schwierig: das funktioniert dann aber nur wenn NUR EIN OBJEKT erstellt wird Du solltest es entweder noch genauer beschreiben was du vorhast, oder ich kann nicht weiterhelfen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 26. Jan. 2005 15:03 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Jan. 2005 15:18 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
aaaalso: Ein Layer hat keinen "Linientypfaktor" Beim erstellen eines Objektes wird der Faktor aus CELTSCALE genommen.Das bestehende Makro hat ja noch nichts mit "Linie" zutun.. du könntest also hinten an das Makro dies anhängen: CELTSCALE;"LTF-WERT"; (wobei "LTF-WERT" eine Zahl (nämlich der Faktor) sein muß / ohne Anführungszeichen) dann wird der Layer erstellt/gewählt und ALLE danch erstellten Objekte werden mit diesem Linientypfaktor versehen !! - solange bis celtscale einen anderen Wert bekommt - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 26. Jan. 2005 15:44 <-- editieren / zitieren --> Unities abgeben:
das gilt dann aber für alle Layer, und nicht nur für ein bestimmten. ID_GW_AG [Verd_Kanten]^C^C-layer;neu;Verd_Kanten;se;Verd_Kanten;fa;7;;lt;Strichlinie;;ls;0.3;;;CELTSCALE;15; Schade ... na ja. Trotzdem danke 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: 26. Jan. 2005 15:52 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Zitat: Original erstellt von AutoCAD-Nutzer: [B]das gilt dann aber für alle Layer...B]
jaEIN ! [für die Recherchetreibenden , die das evtl nur überfliegen (wollten) ]
[NEIN] Die Variable hat nichts mit Layern zutun ! - Sie besteht Datei-weit (gespeichert in Zeichnungsdatei) [JA] Weil man immer ein Layer "aktuell" ist, gilt das "auf jedem Layer" Die Beschreibung ist also nicht korrekt weil Layer nichts mit den Objekt-Linientypfaktoren zutun haben ..
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 26. Jan. 2005 16:13 <-- editieren / zitieren --> Unities abgeben:
>?> Zitat: -------------------------------------------------------------------------------- Original erstellt von AutoCAD-Nutzer: [B]das gilt dann aber für alle Layer...B] -------------------------------------------------------------------------------- >?>?> Die Variable hat nichts mit Layern zutun - das ist klar ... Ich häte es gerne aber gewußt ob man u.a. NUR für ein bestimmten Layer Linientypfaktor einstellen kann, ohne dabei die Variablen zu ändern ? Wenn ja - dann wie ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 26. Jan. 2005 17:18 <-- editieren / zitieren --> Unities abgeben:
Was soll das den sein ??? Neue Makro-Erfindung ? Zitat: -------------------------------------------------------------------------------- Original erstellt von AutoCAD-Nutzer: [B]das gilt dann aber für alle Layer...B] --------------------------------------------------------------------------------
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: 26. Jan. 2005 17:21 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
|
Kodat Mitglied Architekt
Beiträge: 310 Registriert: 27.01.2004
|
erstellt am: 27. Jan. 2005 10:01 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Hallo. Also ich habe mir einfach ein Flyout erstellt und dort verschiedene Objekt-Linientypfaktoren eingestellt. Der Befehl sieht so aus : ^C^C_change EI LTF 20 ;; Die 20 steht für den Faktor und ist entsprechend zu verändern für verschieden Werte. Dabei besteht nur ein Problem das ich vorher das Objekt (z.b. Linie) auswählen muss und dann auf den Button klicke. Danach hat die Linie den LTF-Faktor 20. Wer mir noch die richtige Syntax für wenige "Geklicke " verraten kann bekommt die Loorbeeren. Gruß Carsten ------------------ Vielen Dank für jeden Hinweis. Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 27. Jan. 2005 12:01 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Hi Kodat, mit u.a. Code, kannst Du das klicken minimieren. Edit: Es ist übrigens egal, ob Du vor dem klicken Objekte mit Griffen markiert hast oder nicht. Hast Du, werden die markierten Objekte geändert. Hast Du nicht, wirst Du zur Objektwahl aufgefordert. Gegebenheiten: # u.a. Code in der Datei "ltf.lsp" im AutoCAD Suchpfad unterbringen # In Deine Buttonmakros schreibst Du dann: (if (null cad:de:ltf)(load "ltf"))(princ);(cad:de:ltf 20.5); (Die 20.5 sind nur stellvertretend für einen Wert, für jeden gewünschten Faktor legst DU Dir 'n Button an und änderst den Wert entsprechend ab) Code:
(VL-LOAD-COM)(defun CAD:DE:LTF (REAL-FAKTOR / sget) (if (setq SGET (MS:SSGET (strcat "Objekte zum Ändern des LTFaktors auf >" (rtos REAL-FAKTOR 2 3) "< wählen: " ) NIL ) ) (if (setq SGET (DT:SELSET->VLA-OBJECTLIST SGET)) (foreach ELEM SGET (if (vlax-property-available-p ELEM 'LINETYPESCALE 't) (vlax-put-property ELEM 'LINETYPESCALE REAL-FAKTOR) ) ) ) ) ) (defun DT:SELSET->VLA-OBJECTLIST (SELSET / RETVAL) (if (eq (type SELSET) 'PICKSET) (if (setq RETVAL (DT:SELSET->ENAMELIST SELSET)) (setq RETVAL (mapcar (function (lambda (X) (->VLA-OBJECT X) ) ) RETVAL ) ) ;_ end of setq ) ;_ end of if ) ;_ end of if RETVAL )
;;; z.B. (DT:SELSET-LIKE-DEFINITION (list (cons 0 "IMAGE")(cons 8 "*$BILD$@*"))) (defun DT:SELSET->ENAMELIST (SELSET / INDEX RETVAL) (if (eq (type SELSET) 'PICKSET) (progn (setq INDEX 0) (repeat (sslength SELSET) (setq RETVAL (cons (ssname SELSET INDEX) RETVAL) INDEX (1+ INDEX) ) ;_ end of setq ) ;_ end of repeat ) ;_ end of progn ) ;_ end of if retval ) ;_ end of defun ;;; Funktion gibt vla-Objekt zurück, wenn Lisp-Objekt oder vla-Objekt ;;; übergeben worden sind. Ansonsten nil (defun ->VLA-OBJECT (ENAME /) (cond ((= (type ENAME) 'ENAME) (vlax-ename->vla-object ENAME) ) ((= (type ENAME) 'VLA-OBJECT) ENAME ) (t NIL ) ) ;_ end of cond ) ;_ end of defun (defun MS:SSGET (QUESTION FILTERLIST / SGET) (if (not (setq SGET (IMPLIZIT?+FILTER FILTERLIST))) (progn (setq QUESTION (strcat "\n" QUESTION)) ;_ end of setq (princ QUESTION) (setq SGET (MS:SAFE-EVAL (list 'ssget FILTERLIST))) ) ;_ end of progn (sssetfirst nil nil) ) ;_ end of if SGET ) (defun IMPLIZIT?+FILTER (FILTERLIST) (ssget "_I" FILTERLIST) ) ;_ end of defun ;; Funktion zum sicheren Ausführen von Code ;; Beispiel: ;; Normaler Aufruf: ;; (setq value (MS_multiList "Titel" "Aufforderung" '("C" "F") '("A" "B" "C" "D" "E" "F" "G"))) ;; Safe Aufruf: ;; (setq retval (MS:SAFE-EVAL '(MS_multiList "Titel" "Aufforderung" ("C" "F") ("A" "B" "C" "D" "E" "F" "G")))) ;; oder ;; (setq retval (MS:SAFE-EVAL (list 'MS_multiList "Titel" "Aufforderung" '("C" "F") '("A" "B" "C" "D" "E" "F" "G")))) (defun MS:SAFE-EVAL (EVALFUNCTION / ARGLST FUNCNAME RETVAL) (if EVALFUNCTION (if (setq FUNCNAME (car EVALFUNCTION)) ;|(and (setq FUNCNAME (car EVALFUNCTION)) (setq ARGLST (cdr EVALFUNCTION)) ) ;_ end of and |; (progn (setq ARGLST (cdr EVALFUNCTION)) (if (vl-catch-all-error-p (setq RETVAL (vl-catch-all-apply FUNCNAME ARGLST ) ) ) ;_ end of vl-catch-all-error-p (setq RETVAL NIL) ) ;_ end of if ) ;_ end of progn ) ;_ end of if ) ;_ end of if RETVAL ) ;_ end of defun (princ)
Viel Spaß damit :-) ------------------ Ciao, Marc [Diese Nachricht wurde von marc.scherer am 27. Jan. 2005 editiert.] [Diese Nachricht wurde von marc.scherer am 27. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |