Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Lisp soll nach Blöcken suchen

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:  Lisp soll nach Blöcken suchen (708 mal gelesen)
Wolli
Mitglied
Konstrukteur


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

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 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 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




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 07. Apr. 2009 13:09    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 Wolli 10 Unities + Antwort hilfreich

(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


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

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 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 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




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 07. Apr. 2009 13:41    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 Wolli 10 Unities + Antwort hilfreich

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


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

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 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 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.


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

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 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 Wolli 10 Unities + Antwort hilfreich

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

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