Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Schraffurumgrenzungen anlegen - über eine bzw. über alles Schraffuren

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
Autor Thema:   Schraffurumgrenzungen anlegen - über eine bzw. über alles Schraffuren (1082 mal gelesen)
-ikarus-
Mitglied
Zeichner


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

Beiträge: 139
Registriert: 12.02.2007

ACAD 2015,PSP 2011, Showcase 2015, Mudbox 2015
Indesign CC, Illustrator CC, Photoshop CC, After Effects CC, Premiere Pro CC, Edge Animate CC, Acrobat DC Pro mit PitStop Pro,
Visual Studio 2013
Notepad++
Rechner: HP Z620 Workstation
NVIDIA Quadro K4000

erstellt am: 17. Apr. 2013 11:49    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,
kann mir jemand Hilfestellung geben?
Ich hab mir die lisp mithilfe des "AutoLISP-Handbuch - Stand 97" zusammengebastelt, sie funktioniert auch soweit.
Jetzt hab ich mir gedacht, dass es doch besser wäre, bei der Frage  "<F>enster wählen oder <A>lles?" das man nicht erst Fenster eingeben muss um dann die Auswahl zutreffen, sondern das man gleich eine Objektwahl treffen kann und wenn keine getroffen wird, dann alles gewählt wird.
Das war jetzt mein Gedanke nur irgendwie komme ich da nicht weiter.
Alle Varianten die ich ausprobierte, geben Fehler zurück.

Code:

;Anfang Unterprogramm Fensterauswahl
(defun Fenster (/ pt1 pt2 AWS I OBJ)
  (if(setq AWS(ssget (list(cons 410(getvar "CTAB"))'(0 . "HATCH"))))
    (progn
      (setq I -1)
      (repeat (sslength AWS)
        (setq OBJ (ssname AWS(setq I (1+ I))))
        (command "_-hatchedit" OBJ "_B" "_P" "_Y")
      )
    )
    )
(setq AWSzoom AWS )
)
;Ende Unterprogramm Fensterauswahl
;
;Anfang Unterprogramm Auswahl alles
(defun alles1 (/ AWS )
  (if(setq AWS(ssget "_X" (list(cons 410(getvar "CTAB"))'(0 . "HATCH"))))
    (progn
      (setq I -1)
      (repeat (sslength AWS)
        (setq OBJ (ssname AWS(setq I (1+ I))))
        (command "_-hatchedit" OBJ "_B" "_P" "_Y")
      )
    )
    )
(setq AWSzoom AWS )
)
;Ende Unterprogramm Auswahl alles
;
;
;Start Hauptprogramm Mainprogramm Aufruf mit S-Umgrenzung
(defun C:S-UMGRENZUNG(/ AWSzoom )
(vl-load-com)
;
  ;;;; Error Funktion
  (setq MD_ERR *ERROR*
*ERROR* M:FEHLER
  ) ;_ end of setq
  ;;Marke für Zurück nach Abbruch setzen
    (vla-endundomark  (vla-get-activedocument(vlax-get-acad-object)))
(vla-startundomark(vla-get-activedocument(vlax-get-acad-object)))
;;;Die eigentliche Funktion:
  (defun M:FEHLER (S)
    (print (strcat "M:fehler " S))
  (vl-cmdf "_UNDO" "_BACK")
  (setq *ERROR* MD_ERR)
  (alert "Der Befehl wurde abgebrochen!")
  (princ)
  ) ;_ end of defun
;
(setq lay1 (getvar "clayer"))
(command "-layer" "Machen" "K-Linie" "farbe" "6" "" "Ltyp" "continuous" "" "plot" "kein" "" "")
;
(initget 1 "Alles alles a A F f fenster Fenster" )
(setq prüf (getstring "\n <F>enster wählen oder <A>lles? <A>: "))
(if (or (= prüf "Alles")(= prüf "")(= prüf "a")(= prüf "alles")(= prüf "A"))
(alles1)(Fenster)
)
(command "clayer" lay1 )
(command "zoom" "objekt" AWSzoom "")
(command "regen" )
(princ)
)
;Ende Hauptprogramm

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1817
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2017 ENGLISH
Visual Studio 2015
OpenDCL.Runtime.8

erstellt am: 17. Apr. 2013 12:06    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 -ikarus- 10 Unities + Antwort hilfreich

Dann lässt du den Teil mit

Code:
(initget 1 "Alles alles a A F f fenster Fenster" )
(setq prüf (getstring "\n <F>enster wählen oder <A>lles? <A>: "))
(if (or (= prüf "Alles")(= prüf "")(= prüf "a")(= prüf "alles")(= prüf "A"))
(alles1)(Fenster)
)

weg und lässt nur die Funktion (Fenster) laufen.

Was passiert denn, wenn du nur die Funktion laufen lässt und bei ssget das "_X" rausnimmst, dann müssten eigentlich die Objekte eingegeben werden.

------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

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

-ikarus-
Mitglied
Zeichner


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

Beiträge: 139
Registriert: 12.02.2007

ACAD 2015,PSP 2011, Showcase 2015, Mudbox 2015
Indesign CC, Illustrator CC, Photoshop CC, After Effects CC, Premiere Pro CC, Edge Animate CC, Acrobat DC Pro mit PitStop Pro,
Visual Studio 2013
Notepad++
Rechner: HP Z620 Workstation
NVIDIA Quadro K4000

erstellt am: 17. Apr. 2013 12:19    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

OH,

Da hast du recht, da hab ich den Wald vor lauter Bäumen nicht gesehen.

Das heißt, man gibt in der Objektwahl "alle" ein um alles zu wählen. Die Möglichkeit, dass man mit Return weiter geht und dann alle gewählt werden funktioniert so nicht, oder?

Danke für deine Antwort.

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

-ikarus-
Mitglied
Zeichner


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

Beiträge: 139
Registriert: 12.02.2007

ACAD 2015,PSP 2011, Showcase 2015, Mudbox 2015
Indesign CC, Illustrator CC, Photoshop CC, After Effects CC, Premiere Pro CC, Edge Animate CC, Acrobat DC Pro mit PitStop Pro,
Visual Studio 2013
Notepad++
Rechner: HP Z620 Workstation
NVIDIA Quadro K4000

erstellt am: 17. Apr. 2013 13:06    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

Nochmal Danke

hab es jetzt so gemacht

Code:

;Start Hauptprogramm Mainprogramm Aufruf mit S-Umgrenzung
(defun C:S-UMGRENZUNG(/ AWS I OBJ )
(vl-load-com)
;
  ;;;; Error Funktion
  (setq MD_ERR *ERROR*
*ERROR* M:FEHLER
  ) ;_ end of setq
  ;;Marke für Zurück nach Abbruch setzen
    (vla-endundomark  (vla-get-activedocument(vlax-get-acad-object)))
(vla-startundomark(vla-get-activedocument(vlax-get-acad-object)))
;;;Die eigentliche Funktion:
  (defun M:FEHLER (S)
    (print (strcat "M:fehler " S))
  (vl-cmdf "_UNDO" "_BACK")
  (setq *ERROR* MD_ERR)
  (alert "Der Befehl wurde abgebrochen!")
  (princ)
  ) ;_ end of defun Fehler
;;;;;;Ende Error Funktion
;
;Speichert Variable aktueller Layer
(setq lay1 (getvar "clayer"))
;
;Macht einen neuen bzw. setzt den Layer K-Linie
(command "-layer" "Machen" "K-Linie" "farbe" "6" "" "Ltyp" "continuous" "" "plot" "kein" "" "")
;
;eigentliches Programm
(princ "\n" )
(princ "\n" )
(print "  [Alle] eingeben um alle Schraffuren auszuwählen! ");Kommentar
  (if(setq AWS(ssget (list(cons 410(getvar "CTAB"))'(0 . "HATCH"))));Filtert die Schraffur
    (progn
      (setq I -1);Variable für die Repeatfunktion
      (repeat (sslength AWS);schleife bis alles Schraffurobjekte abgearbeitet sind
        (setq OBJ (ssname AWS(setq I (1+ I))));arbeitet die Auswahlliste ab
        (command "_-hatchedit" OBJ "_B" "_P" "_Y");Befehl der dei Umgrenzung erzeugt
      );ende repeat
    );ende progn
    );ende if
;
;
(command "clayer" lay1 );setzt den Layer wieder zurück
(command "zoom" "objekt" AWS "");zoom auf die bearbeiteten Schraffuren
(command "regen" )
(princ)
)
;Ende Hauptprogramm

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: 17. Apr. 2013 19:40    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 -ikarus- 10 Unities + Antwort hilfreich

Zitat:
... Die Möglichkeit, dass man mit Return weiter geht und dann alle gewählt werden funktioniert so nicht, oder?

Doch - in etwa so (quick and dirty):

Code:
(princ "\nObjekte wählen / <Alle> ")
(if (not aws (ssget))
  (setq aws (ssget "X"))
)

------------------
Schöne Grüße
Ernst

www.geopaint.at

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

-ikarus-
Mitglied
Zeichner


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

Beiträge: 139
Registriert: 12.02.2007

ACAD 2015,PSP 2011, Showcase 2015, Mudbox 2015
Indesign CC, Illustrator CC, Photoshop CC, After Effects CC, Premiere Pro CC, Edge Animate CC, Acrobat DC Pro mit PitStop Pro,
Visual Studio 2013
Notepad++
Rechner: HP Z620 Workstation
NVIDIA Quadro K4000

erstellt am: 18. Apr. 2013 06:53    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

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