Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  DATUM AUTOMATISCH USW.

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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:  DATUM AUTOMATISCH USW. (1710 mal gelesen)
michelangelo
Mitglied



Sehen Sie sich das Profil von michelangelo an!   Senden Sie eine Private Message an michelangelo  Schreiben Sie einen Gästebucheintrag für michelangelo

Beiträge: 158
Registriert: 08.04.2004

Win XP, ACAD 2002 ExpressTool vom ACAD 2000

erstellt am: 11. Mai. 2004 09:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich gebe pro Tag tausendmal folgendes ein "10.05.2004 Fab" ("Fab" ist mein Kürzel). Gibt es ein Lisp das ich in der Attributeingabe nur ein Icon drücken kann und es schreibt mir das akktuelle datum mit meinem Kürzel hin?? das wäre toll.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

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: 11. Mai. 2004 09:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für michelangelo 10 Unities + Antwort hilfreich

Wie wäre es mit 'ner Lisp-Funktion die Dir den String als
Attributwert auf Knopfdruck einträgt?
Nachfolgenden Code als z.B. Att.lsp im Acad Suchpfad speichern.
Folgendes Makro auf Button legen:
^c^c(if (null GET-SFELD)(load "att.lsp"))(GET-SFELD '(("ATTRIBUTNAME" . "ATTRIBUTWERT")) "BLOCKNAME");
Code:

;; Argumente:
;; Attributliste = Liste aus cons-Paaren wobei der 1. Wert den Attributnamen, der 2. Wert den Attributwert enthält
;; Beispiel: '(("ID" . "1284")("DATUM" . "12.01.04")("NAME" . "Wer bin ich?"))
;; Blockname = Name des zu modifizierenden Blocks
(defun GET-SFELD (ATTRIBUTLISTE BLOCKNAME / BOBJ)
  (if (not (setq BOBJ (ssget "x"
                            (list (cons 0 "Insert")
                                  (cons 2 BLOCKNAME)
                                  (cons 410 (getvar "ctab"))
                            ) ;_ end of list
                      ) ;_ end of ssget
          ) ;_ end of setq
      ) ;_ end of not
    (princ (strcat "\nKeine Blockeinfügung mit dem Namen >"
                  BLOCKNAME
                  "< gefunden. Funktionsende."
          ) ;_ end of strcat
    ) ;_ end of princ
    (if (> (sslength BOBJ) 1)
      (princ
        (strcat "\nMehr als eine Blockeinfügung >"
                BLOCKNAME
                "< im aktuellen Bereich gefunden."
                "\nKeine Änderungen vorgenommen. Funktionsende."
        ) ;_ end of strcat
      ) ;_ end of princ
      (ED-ATT2 ATTRIBUTLISTE (ssname BOBJ 0))
    ) ;_ end of if
  ) ;_ end of if
  (princ)
)


;; Funktion tauscht evtl. vorhandenen Attributwerte für Attributnamen aus
;; Argumente cons-Attliste z.B.: (("NR" . "10")("BAUART" . "Peitschenleuchte")) und Elementname
(defun ED-ATT2 (ATTLST ENAME / ATTOBJ ATTS MODIFIED OLD RETVAL VAL)
  (setq ENAME (->VLA-OBJECT ENAME))
  (if (setq VAL (ALL-BL-TXT ENAME))
    (progn
      (foreach NEW ATTLST
        (if (setq OLD (assoc (car NEW) VAL))
          (if (not (equal NEW OLD))
            (setq VAL      (subst NEW OLD VAL)
                  MODIFIED (cons NEW MODIFIED)
            ) ;_ end of setq
          ) ;_ end of if
        ) ;_ end of if
      ) ;_ end of foreach
      (if MODIFIED
        (progn
          (setq ATTS (vlax-safearray->list
                      (vlax-variant-value
                        (vlax-invoke-method ENAME 'GETATTRIBUTES)
                      ) ;_ end of vlax-variant-value
                    ) ;_ end of vlax-safearray->list
          ) ;_ end of setq
          (while ATTS
            (if (setq VAL (assoc (VLAX*GET-PROPERTY
                                  (setq ATTOBJ (car ATTS))
                                  'TAGSTRING
                                ) ;_ end of VLAX*GET-PROPERTY
                                MODIFIED
                          ) ;_ end of assoc
                ) ;_ end of setq
              (VLAX*PUT-PROPERTY ATTOBJ 'TEXTSTRING (cdr VAL))

            ) ;_ end of if
            (setq ATTS (cdr ATTS))
          ) ;_ end of while
          (setq RETVAL ENAME)
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ 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

;;; Funktion durchsucht den Block, der über ename übergeben wird,
;;; nach ATTRIB's und erzeugt 'ne Textliste
;;; Retval: Liste der Texte oder nil
;; Hier vl-Version
(defun ALL-BL-TXT (ENAME / EDATA RETVAL ATTS)
  (setq ENAME  (->VLA-OBJECT ENAME)
        RETVAL '() ;_ Liste initialiseren
  ) ;_ end setq
  (if (= (VLAX*GET-PROPERTY ENAME 'HASATTRIBUTES) :vlax-true)
    (progn
      (setq ATTS (vlax-safearray->list
                  (vlax-variant-value
                    (vlax-invoke-method ENAME 'GETATTRIBUTES)
                  ) ;_ end of vlax-variant-value
                ) ;_ end of vlax-safearray->list
      ) ;_ end of setq
      (while ATTS
        (setq RETVAL
              (cons (cons
                      (VLAX*GET-PROPERTY (car ATTS) 'TAGSTRING)
                      (VLAX*GET-PROPERTY (car ATTS) 'TEXTSTRING)
                    ) ;_ end of cons
                    RETVAL
              ) ;_ end of cons
        ) ;_ end of setq
        (setq ATTS (cdr ATTS))
      ) ;_ end of while
      (setq RETVAL (reverse RETVAL))
    ) ;_ end progn
  ) ;_ end if
  RETVAL
)

;;; Mapcar-Magie!
;;; Eigenschaftswerte aus Objekten lesen
;;; Beispiel:
;;; Layerfarbe des aktuellen Layers abfragen:
;;; (vlax*get-property nil '(Color ActiveLayer ActiveDocument))
;;;
;;; Abfragen, ob eine Polylinie geschlossen ist:
;;; (VLAX*GET-PROPERTY (vlax-ename->vla-object (car (entsel))) 'CLOSED)
(defun VLAX*GET-PROPERTY (OBJ PROPS /)
  (if (->VLA-OBJECT OBJ) ;_ Wenn vla-Objekt draus gemacht werden kann...
    (setq OBJ (->VLA-OBJECT OBJ)) ;_ mache auf jeden Fall eines draus
  ) ;_ end of if
  (if (null OBJ)
    (setq OBJ (vlax-get-acad-object))
  ) ;_ end of if
  (if (and (listp PROPS) (cdr PROPS))
    (vlax-get-property
      (VLAX*GET-PROPERTY OBJ (cdr PROPS))
      (car PROPS)
    ) ;_ end of vlax-get-property
    (vlax-get-property
      OBJ
      (if (listp PROPS)
        (car PROPS)
        PROPS
      ) ;_ end of if
    ) ;_ end of vlax-get-property
  ) ;_ end of if
) ;_ end of defun

;;; Mapcar-Magie!
;;; Eigenschaftswerte für Objekte setzen
;;; Beispiel:
;;; Layerfarbe des aktuellen Layers auf 'Rot' setzen:
;;; (vlax*put-property nil '(Color ActiveLayer ActiveDocument) 1)
;;;
;;; Polylinie schliessen:
;;; (VLAX*PUT-PROPERTY (vlax-ename->vla-object (car (entsel))) 'CLOSED :vlax-true)
(defun VLAX*PUT-PROPERTY (OBJ PROPS VALUE /)
  (if (->VLA-OBJECT OBJ) ;_ Wenn vla-Objekt draus gemacht werden kann...
    (setq OBJ (->VLA-OBJECT OBJ)) ;_ mache auf jeden Fall eines draus
  ) ;_ end of if
  (if (null OBJ)
    (setq OBJ (vlax-get-acad-object))
  ) ;_ end of if
  (if (and (listp PROPS) (cdr PROPS))
    (vlax-put-property
      (VLAX*GET-PROPERTY OBJ (cdr PROPS))
      (car PROPS)
      VALUE
    ) ;_ end of vlax-put-property
    (vlax-put-property
      OBJ
      (if (listp PROPS)
        (car PROPS)
        PROPS
      ) ;_ end of if
      VALUE
    ) ;_ end of vlax-put-property
  ) ;_ end of if
) ;_ end of defun
(princ)



..


------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 11. Mai. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4187
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 11. Mai. 2004 09:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für michelangelo 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von marc.scherer:
Wie wäre es mit 'ner Lisp-Funktion die Dir den String als
Attributwert auf Knopfdruck einträgt?


Bitteschön:
Code:

(defun c:tragein (/ dat att)
  (entmod
    (subst
      (cons 1 (setq dat (rtos(getvar "CDATE") 2 0)
    dat (strcat
  (substr dat 7)
  "."
  (substr dat 5 2)
  "."
  (substr dat 1 4)
  " Fab"
  )
    )
    )
      (assoc 1 (setq att (entget(car (nentsel)))))
      att
      )
    )
  (entupd (cdr(assoc 330 att)))
  )

Quick and dirty, ohne Fehlerabfang, falls kein Attribut gewählt wird.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD
Da weiß man, wann man's hat!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

WolfgangE
Mitglied



Sehen Sie sich das Profil von WolfgangE an!   Senden Sie eine Private Message an WolfgangE  Schreiben Sie einen Gästebucheintrag für WolfgangE

Beiträge: 1006
Registriert: 29.01.2003

Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung.
Programmierung, Wartung und Administration von MSSQL2000-Datenbanken.
Grundlegende Kenntnisse in AutoLisp-Programmierung.

erstellt am: 11. Mai. 2004 09:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für michelangelo 10 Unities + Antwort hilfreich


GetDate.txt

 
Hallo michelangelo,

versuchs mal damit als Vorlage ...

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

[Diese Nachricht wurde von WolfgangE am 11. Mai. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



Sehen Sie sich das Profil von tunnelbauer an!   Senden Sie eine Private Message an tunnelbauer  Schreiben Sie einen Gästebucheintrag für tunnelbauer

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 11. Mai. 2004 09:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für michelangelo 10 Unities + Antwort hilfreich

Eine andere Möglichkeit wäre ja auch wie hier auf den Afra-Lisp-Seiten beschrieben. (Hat aber nichts mit Lisp im eigentlichen Sinn zu tun)

------------------
Grüsse

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

michelangelo
Mitglied



Sehen Sie sich das Profil von michelangelo an!   Senden Sie eine Private Message an michelangelo  Schreiben Sie einen Gästebucheintrag für michelangelo

Beiträge: 158
Registriert: 08.04.2004

Win XP, ACAD 2002 ExpressTool vom ACAD 2000

erstellt am: 11. Mai. 2004 09:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich danke euch für eure schnellen Antworten.

Das von Brischke ist genau das was ich suchte, vielen danke. das gibt doch gleich 10 U's.

danke

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz