| |
 | 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: Hilfe zu Lispprog. (1638 mal gelesen)
|
CADLUIS Mitglied
 
 Beiträge: 278 Registriert: 31.01.2008 HICAD 2023
|
erstellt am: 05. Jan. 2009 17:39 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Ich habe im Netz ein kleines Lisp gefunden das fast geneu meinen Wünschen entspricht. Dieses Prog. benennt mir die Layout nach der Plannunmmer um, und nummeriert diese dann fortlaufend. Nun brauche ich eure Hilfe um es für mich perfekt zu machen. 1.) Nur es bringt mir eine Fehlermeldung (; Fehler: no function definition: VLAX-GET-ACAD-OBJECT) 2.) Wie kann ich dem Prog. sagen das es nicht bei Nummer 1 beginnen soll, sondern eine Abfrage der 1. Nummer für die Nummerierung. (Die erste Nummer ist nicht immer 1.) --------------------------------------------------------------------------- (defun c:AlleLayoutsUmbenennen () (vlax-for i (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument ) 'Layouts ) (if (/= 0 (vlax-get-property i 'TabOrder)) (if (vl-catch-all-error-p (vl-catch-all-apply 'vlax-put-property (list i 'Name (strcat (vl-filename-base (getvar "DWGNAME")) "_" (itoa (vlax-get-property i 'TabOrder)) ) ) ) ) (princ (strcat "\nLayout " (vlax-get-property i 'Name) " konnte nicht umbenannt werden, weil der Name bereits verwendet wurde." ) ) ) ) ) ) ;;; Kurzbefehl ALU (defun c:ALU () (c:AlleLayoutsUmbenennen) ) (princ "\n\"AlleLayoutsUmbenennen.lsp\" wurde geladen. Zum Starten \"AlleLayoutsUmbenennen\" oder \"ALU\" eingeben." ) (princ)
Danke im Voraus
Alois
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten

 Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 05. Jan. 2009 17:49 <-- editieren / zitieren --> Unities abgeben:          Nur für CADLUIS
Hi, zu 1): vorher einmal (vl-load-com) ausführen. zu 2): Am Anfang: (setq n (1- (getint "Startnummer:"))) und dann statt (itoa (vlax-get-property i 'TabOrder)) dieses: (itoa ( + n (vlax-get-property i 'TabOrder))) ;(erhöht die Nummer um n.) Grüsse, Henning PS: Hab' ich jetzt nur "runtergeschrieben", ohne Test, eventuelle Fehler kannst Du behalten  ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de
[Diese Nachricht wurde von wronzky am 05. Jan. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADLUIS Mitglied
 
 Beiträge: 278 Registriert: 31.01.2008
|
erstellt am: 05. Jan. 2009 18:10 <-- editieren / zitieren --> Unities abgeben:         
|
CADLUIS Mitglied
 
 Beiträge: 278 Registriert: 31.01.2008 HICAD 2023
|
erstellt am: 05. Jan. 2009 18:25 <-- editieren / zitieren --> Unities abgeben:         
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
  
 Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 05. Jan. 2009 18:38 <-- editieren / zitieren --> Unities abgeben:          Nur für CADLUIS
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten

 Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 05. Jan. 2009 19:45 <-- editieren / zitieren --> Unities abgeben:          Nur für CADLUIS
Hallo Alois, Also dann doch noch mal "integriert" in ?!Deine!? Routine: Code: (defun c:AlleLayoutsUmbenennen ( / n i) (vl-load-com) (or ;Startnummer setzen (if (setq n (getint "Startnummer <1>:")) (setq n (1- n)) ) (setq n 0) ) ;Für jedes Layout in der aktuellen Zeichnung (vlax-for i (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument ) 'Layouts ) (if (/= 0 (vlax-get-property i 'TabOrder));Layout ist NICHT Modellbereich (taborder = 0) (if ;Versuchen, Layout umzubenennen (vl-catch-all-error-p ;Fehler abfragen: T, wenn Versuch fehlschlägt (vl-catch-all-apply ;Fehler abfangen 'vlax-put-property;Eigenschaft "Name" des Layouts "i" (list i 'Name (strcat ;ändern in "Zeichnungsname" + "_" + "Nummer des Tabs + Startnummer" (vl-filename-base (getvar "DWGNAME")) "_" (itoa (+ n (vlax-get-property i 'TabOrder))) ) ) ) ) (princ;Rückmeldung, wenn Fehler auftrat (strcat "\nLayout " (vlax-get-property i 'Name) " konnte nicht umbenannt werden, weil der Name bereits verwendet wurde." ) ) ) ) ) )
Es wäre im Übrigen ganz nett, wenn Du den Urheber der Routine nennen würdest, und nicht nur "hab' da im Netz was gefunden".Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADLUIS Mitglied
 
 Beiträge: 278 Registriert: 31.01.2008
|
erstellt am: 05. Jan. 2009 20:30 <-- editieren / zitieren --> Unities abgeben:         
Hallo Henning! Hab es grade geschaft habe aber nur die 1 Zeile geändert (setq n (- (getint "Startnummer:") 1)) zum Urheber habe ich keine Angabe sehe gerade das das ganze neu geschrieben wurde. Jedenfals nochmals DANKE !!!!!!!! Grüsse aus der Steiermark
Alois Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |