| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Lisp soll nach Blöcken suchen (750 mal gelesen)
|
Wolli Mitglied Konstrukteur
  
 Beiträge: 704 Registriert: 28.02.2001 Win7 64Bit+32Bit VM-Ware I7 12GB ACAD Mech 2010 Inventor Pro 2010 + 2012 Ansys 13 NLS
|
erstellt am: 07. Apr. 2009 13:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, leider kann ich kein lisp und werde es auch nicht mehr lernen, darum meine Bitte an einen der Damen und Herren hier im Forum. In unserem PDM-System wird bei Statuswechsel ein Lisp zum erstellen von tiff-Dateien ausgeführt... Für das PDM haben wir neue Zeichnungsrahmen mit neuen Namen erstellt. Wird jetzt ein Stautswechsel ausgelöst mit einem alten Rahmen dann gibt es anschließend beim Plotten und im PDM erhebliche Probleme Jetzt meine Bitte: ich brauchen ein paar Zeilen Lisp die ich in das vorhandene Lisp einfüge die folgendes machen. Suchen nach einem Blocknamen A-Format oder B-Format oder C-Format wenn du keinen solchen Block findes dann geht das Programm weiter. Wenn ein solchen Blockname (im Modell oder in Layouts) gefunden wird dann melde "Falscher Rahmen, bitte korrigieren" und das Lisp wird abgebrochen. Hätte jemand Lust dazu mir das zu schreiben? Danke und Gruß Wolfgang ------------------ "Früher war die Zukunft besser" -Karl Valentin- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 07. Apr. 2009 13:09 <-- editieren / zitieren --> Unities abgeben:          Nur für Wolli
(if(or(tblobjname "BLOCK" "A-RAHMEN") (tblobjname "BLOCK" "B-RAHMEN") ) (alert "Falscher Rahmen") ) die Zeilen in der acaddoc.lsp integriert sollten genügen ... sucht jetzt nur nach Blockdefinitionen, nicht nach Referenzierungen ... aber ein Bereinigen schadte ja auch nicht ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wolli Mitglied Konstrukteur
  
 Beiträge: 704 Registriert: 28.02.2001 Win7 64Bit+32Bit VM-Ware I7 12GB ACAD Mech 2010 Inventor Pro 2010 + 2012 Ansys 13 NLS
|
erstellt am: 07. Apr. 2009 13:25 <-- editieren / zitieren --> Unities abgeben:         
Hallo Thomas, Danke das ging aber schnell. Ganz funktioniert es noch nicht. Ich bekomme wenn so ein Block vorhanden ist folgende AutoCAD-Meldung: "216176810001-.scr" Kann Datei nicht finden. Wenn ich dann OK klicke geht es weiter und es erscheint nicht die gewünschte Meldung. In der ACAD Befehlszeile steht dann folgendes: Scriptdateinamen eingeben <C:\cdb_local\cdb_work\216176810001-.scr>: cdb_plot.scr Befehl: (setvar "filedia" 1) 1 Befehl: (if(or(tblobjname "BLOCK" "A-Format")) (_> (tblobjname "BLOCK" "B-Format")) nil Befehl: SCRIPT Scriptdateinamen eingeben <C:\cdb_local\cdb_work\216176810001-.scr>: P.S. 216176810001 ist der Dateiname der DWG Ichgenwie wird nach einem Script gesucht das wie der Dateiname heist oder? Auch wenn der Block nicht eingefügt ist und auch wenn der Block F-Formate bereinigt ist kommt jezt der Fehler ------------------ "Früher war die Zukunft besser" -Karl Valentin- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 07. Apr. 2009 13:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Wolli
was haste denn da noch alles zu laufen ? am besten ganz am Ende der acaddoc.lsp die Zeilen einfügen... du kannst sie auch einfach durch Kopieren in die Befehlszeile testen .. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wolli Mitglied Konstrukteur
  
 Beiträge: 704 Registriert: 28.02.2001 Win7 64Bit+32Bit VM-Ware I7 12GB ACAD Mech 2010 Inventor Pro 2010 + 2012 Ansys 13 NLS
|
erstellt am: 07. Apr. 2009 13:52 <-- editieren / zitieren --> Unities abgeben:         
Hallo Thomas, in die ACADdoc.lsp kann ich es nicht reinstellen da wenn ohne PDM gearbeitet wird die alten Rahmen erlaubt sind. Es soll nur bei Statuswechsel im PDM geprüft werden. Dann wird folgendes Lisp abgearbeitet. ; support script for plotting HPGL with cdb acad integration ; ; The following symbols will be passed to this script: ; ; cdb_erzeug_system: cdb application this doc was created with ; layout_names: the name of all layouts to generate sec reps for ; layout_files: the file names to use thereby ; layout_formats: the cdb-format (the frame names) for the layouts ; ; for debugging ; ; (setq layout_names (quote ("Model" "Layout1"))) ; (setq layout_files (quote ("x:\\Modell.dwf" "x:\\Layout1.dwf"))) ; ; reset the filedia variable, which is set to 0 in the integration ; (setvar "filedia" 1) ; ; the plot parameter to use ; (setq PLOTTER "PDM-TIFF.pc3" DETAILED_MODE "_Y" PAPER "" UNITS "_m" UPSIDE_DOWN "_n" AREA_TO_PLOT_MSPACE "_extents" AREA_TO_PLOT_LAYOUT "_extents" SCALE_MODEL "_fit" SCALE_LAYOUT "_fit" OFFSET_MODEL "_center" OFFSET_LAYOUT "_center" USE_PLOT_STYLES "_Y" PLOT_STYLE "SHS_TB2.ctb" USE_LINE_THICKNESS "_Y" SCALE_LINES "_N" PLOT_PAPER_FIRST "_Y" HIDE_PAPERSPACE_OBJECTS "_n" SHADOW_PLOT_SETTING "" PLOT_TO_FILE "_Y" SAVE_PAGESETUP_CHANGES "_n" CONTINUE "_Y" i 0 ) ; ; plot each layout in the layout_names list ; unfortunately, the plot command varies dependend on the type of drawing space ; (while (nth i layout_names) (setq loname (nth i layout_names)) (setq framename (nth i layout_formats)) (setq orientation "H" plotterPaper "A-Format") (command "-layer" "P" "k" "SHS-plot-aus" "" ) (command "-layer" "fr" "am_9,am_n9,am_paref,am_12N" "" ) (cond ( (= framename "A") (setq orientation "H" UPSIDE_DOWN "_y" plotterPaper "A-Format" )) ( (= framename "B") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "B-Format" )) ( (= framename "C") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "C-Format" )) ( (= framename "D") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "D-Format" )) ( (= framename "E") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "E-Format" )) ( (= framename "F") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "F-Format" )) ( (= framename "FX125") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "F-Format+25%" )) ( (= framename "FX150") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "F-Format+50%" )) ( (= framename "FX175") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "F-Format+75%" )) ( (= framename "FX200") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "F-Format+100%")) ( (= framename "FX250") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "F-Format+150%")) ( (= framename "FX300") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "F-Format+200%")) ( (= framename "FX400") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "F-Format+300%")) ( (= framename "Quer_A3") (setq orientation "Q" UPSIDE_DOWN "_y" plotterPaper "ISO A4 (297.00 x 210.00 mm)")) ) (print plotterPaper) (if (= loname "Model") ; Modelspace (command "_plot" DETAILED_MODE loname PLOTTER plotterPaper UNITS orientation UPSIDE_DOWN AREA_TO_PLOT_MSPACE SCALE_MODEL OFFSET_MODEL USE_PLOT_STYLES PLOT_STYLE USE_LINE_THICKNESS SHADOW_PLOT_SETTING (nth i layout_files) SAVE_PAGESETUP_CHANGES CONTINUE ) ; Paperspace (command "_plot" DETAILED_MODE loname PLOTTER plotterPaper UNITS orientation UPSIDE_DOWN AREA_TO_PLOT_LAYOUT SCALE_LAYOUT OFFSET_LAYOUT USE_PLOT_STYLES PLOT_STYLE USE_LINE_THICKNESS SCALE_LINES PLOT_PAPER_FIRST HIDE_PAPERSPACE_OBJECTS (nth i layout_files) SAVE_PAGESETUP_CHANGES CONTINUE ) ) (setq i (+ i 1)) ) ; ; give the control back to the integration ; cimdb_zvs_plot_do_rest Wo wäre jetzt die richtige stelle wo ich Deine Zeilen reinkopieren soll. Ich meine eher oben da ich ja ggf abbrechen möchte bevor im PDM was ausgeführt wird.
Danke und Gruß Wolfgang
------------------ "Früher war die Zukunft besser" -Karl Valentin- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Geos Mitglied Vermessungstechniker i.R.
   
 Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 09. Apr. 2009 07:21 <-- editieren / zitieren --> Unities abgeben:          Nur für Wolli
Die Zeilen von Thomas - erweitert um exit Code: (if(or(tblobjname "BLOCK" "A-RAHMEN") (tblobjname "BLOCK" "B-RAHMEN") ) (progn (alert "Falscher Rahmen") (exit) ;bricht nach der Meldung ab ) )
am besten vor Code: (setvar "filedia" 1)
einfügen ------------------ Schöne Grüße Ernst www.geopaint.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |