Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  ACADM Lisp titleexg.lsp abändern

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
Autor Thema:  ACADM Lisp titleexg.lsp abändern (1398 mal gelesen)
Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


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

Beiträge: 1731
Registriert: 06.04.2002

erstellt am: 11. Sep. 2014 17:30    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

Hallo
Hmm bei Lisp stehe ich ja echt auf dem Schlauch 
Also folgendes Problem.
Es gibt das schöne ACADM Script "titleexg.lsp".
Ich habe dies simpel geändert
(defun c:titleexg-first ( /
BLONEW EXIST
)
damit es auch als Kommando gestartet werden kann (also ohne AMSCRIPT).
Soweit so gut (ist übrigens Acad Version 2011).
nun ist es aber so das bei Start logischerweise ein Dialog zum bestimmen der neuen DWG kommt.
Ist auch klar da "blonew" nicht belegt ist.
Ich habe jedoch eine fixe datei welche dort genommen werden soll also zum Beispiel
c:\NewTB.dwg
Könnt ihr mal schauen ob man das bestehende so umstricken kann das der Dialog nicht erscheint und die gewünschte Vorbelegung genommen wird ?

Danke für eure Hilfe
Hier die bisherige Datei
********************************************************
;this function will be called only once when the script starts
(defun c:titleexg-first ( /
BLONEW EXIST
)
;startfunction to set the variables
(gen1sv)
(setq blonew (gencfgget "gen@user@blonew"))
(prompt (genmsg "genscr" 81))
;read new blockname from the configuration
(if (not blonew)(progn
  (gencfgnew "gen@user@blonew" '(("TYPE""GenCfgString")("dwg" nil)("cfg" nil))
  (setq blonew "")
)))
(setq exist nil)
;new block must exist
(while (not exist)
  (setq blonew(getfiled (genmsg "genscr" 74) "" "dwg" 2))
  (setq blonew (strcat(gendwgohne blonew) ".dwg"))
  (setq exist(findfile blonew))
  (if (not exist)(prompt (strcat (genmsg "genscr" 63) blonew (genmsg "genscr" 64))))
)
;store blocknames in configuration
(gencfgset "gen@user@blonew" blonew)
;now exchange block
(titleexg)
(gen1un)
)

;this is the function for each dwg from the script
(defun titleexg ( /
ATTLIS BLONEW BLONEWCFG ENTLIS LIS OBJ OBJLIS OK OLDENAME XDATA
)
(gen1sv)
;read from configuration
;why is it made so complicated ?
;because the title is included inside an object
(setq
  blonewcfg (gencfgget "gen@user@blonew")
  ;blonew is the pure blockname (no path, no .dwg)
  blonew (gendwgohne(gendwgfilter blonewcfg))
)
;makes sense only if the old block is there
  ;make selectionsset
  (setq objlis (genobjssgetx '(("SORT" ("TIT"))))  )
  ;read attributes
  (foreach obj objlis
    ;data of object
    (setq xdata(gencdrlese"xdata"(gentitgetdata obj)))
    (print xdata)
    ;when the first dwg is touched again entget=nil
    (if(and
      xdata
      (setq oldename(gencdrlese "htit" xdata))
      (setq oldename(handent oldename))
      (setq xdata (genlistexchg "htit" xdata oldename))
      (setq bename(gencdrlese "hra" xdata))
      (setq bename(handent bename))
      (setq xdata (genlistexchg "hra" xdata bename))
      (genentget oldename)
      )
    (progn
    ;change entity list
    (setq entlis (entget oldename '("*")))
    ;reenter the attributes
    (setq attlis (genal-al oldename))
    (command "_.ucs" "_w")
    (setvar "attdia" 0)(setvar "attreq" 0)
    ;insert the block with the old data from the block
    ;genalblock also activates the translator
    ;this is the genius function to exchange attributes
    (genlade "gen" "genbas7" genalblock)
    (setq ok (genalblock (list
      (list "BLOCK" blonewcfg)
      (list "INS" (cdr(assoc 10 entlis)))
      (list "SIZE"
        (cdr(assoc 41 entlis))
        (cdr(assoc 42 entlis))
        (cdr(assoc 43 entlis))
      )
      (list "ANGR" (cdr(assoc 50 entlis)))
      (list "TRANS" 2)
      (list "CHECK" 1)
    )))
    (if ok (progn
      (setq xdata (genlistexchg "TITLE" xdata blonewcfg))
      (genobjedit (list
                    (list "OBJ" obj)
                    (list "XAPPL" "GENTITLE")
                    (list "XVER"  "13")
                    (list "XDATA" xdata)
                    (list "XFLAG" 1)
                    (list "XART" T)
                  )
      )
      ;attribute
      ;set attributes of new title
      (genalexchg(list(list"ENAME"(entlast))(list"ATTRI"attlis)))
      ;the new titleblock gets the ename from the old
      (genswapid oldename (entlast) 1 1)
      ;the old one has now the new ename
      (entdel (entlast))
      (command "_.save" "")
    ));if ok
  ));if progn
);foreach
(gen1un)
)


------------------
************************************
 

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 11. Sep. 2014 19: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 Nur für Frank_Schalla 10 Unities + Antwort hilfreich

Anstatt Titleexg.lsp abzuändern, ergänze im nachfolgende Programmcode noch eigenen Pfad zur Titelblock DWG und lade das Programm zusätzlich.
(speichern gern auch in eigener Datei)
starte dann
Befehl: TITEX

Code:
(Defun C:TITEX () ; no Comment
  ; für Frank Schalla - auf Nachfrage bei CAD.de  11.09.14
 
  ; ist die Konfigurationsvariable noch nicht angelegt
  (if (not (gencfgget "gen@user@blonew"))
    ; dann erzeugen
    (gencfgnew "gen@user@blonew" '(("TYPE""GenCfgString")("dwg" nil)("cfg" nil)))
  )
  ; dann in jedem Fall mit gewünschter Titelblock DWG überschreiben - Pfad und Datei müssen vorhanden sein!

  (gencfgSet "gen@user@blonew" "C:\\Users\\CAD-Huebner\\Desktop\\UDO_TITLE.dwg")

; jetzt noch den Titelblock der aktuellen Zeichnung tauschen, dazu originale Funktion aus
  ; titleexg.lsp aufrufen
  (titleexg)
)


 

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


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

Beiträge: 1731
Registriert: 06.04.2002

erstellt am: 12. Sep. 2014 09:52    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

Guten Morhen Uwe

danke für deine Hilfe 
Aber so ganz klappt es noch nicht.
Lade beide Lisp's
Starte dann TITEX
Hier mal meine Command Fenster
*************
Befehl: (load
"Y:/DCAG_CAD/DCAG_CAD_GPT/2D/ACAD_M/CUSTOMIZE/LISP/TPS_TB_UPDATE.lsp")
TITLEEXG

Befehl: (load "Y:/DCAG_CAD/DCAG_CAD_GPT/2D/ACAD_M/CUSTOMIZE/LISP/TITEX.lsp")
C:TITEX

Befehl: TITEX

(("BORDER" "Y:\\DCAG_CAD\\DCAG_CAD_GPT\\2D\\ACAD_M\\BORDERS\\A2") ("TITLE"
"Y:\\DCAG_CAD\\DCAG_CAD_GPT\\2D\\ACAD_M\\TB\\TEREX_PS_GPT") ("ADDITIONAL1" "")
("ADDITIONAL2" "") ("SCALE" "1:1") ("TITLESTD" "GPT_MASCHINENBAU") ("HRA"
"1DD1") ("HTIT" "1E90") ("GENIUSID" "1EAB") ("INVTXTID" "0") ("UNCHG"
("GEN-TITLE-SIZ" "GEN-TITLE-SCA")))

Getauscht wird jedoch leider nicht 

------------------
************************************
 

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 12. Sep. 2014 12:51    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 Frank_Schalla 10 Unities + Antwort hilfreich

Schade, aber das muss dann eine andere Ursache (aktuelle DWG, Pfade oder Vorlagen) haben.
Bei mir funktioniert der Tausch problemlos.
Getestet mit leerer AM_DIN.dwt Vorlage und eingefügten Standard DIN_TITLE Schriftfeld (und Rahmen A3)
Befehl: TITEX
(("BORDER" "DIN_A3") ("TITLE" "DIN_TITLE") ("ADDITIONAL1" "") ("ADDITIONAL2" "") ("SCALE" "1:1") ("TITLESTD" "DIN") ("HRA" "5F2") ("HTIT" "5F3") ("INVTXTID" "0") ("UNCHG" ("GEN-TITLE-SIZ" "GEN-TITLE-SCA")) ("GENIUSID" "606"))

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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)2023 CAD.de | Impressum | Datenschutz