Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Script - alle Layer wählen

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:  Script - alle Layer wählen (2890 mal gelesen)
Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 19. Jan. 2010 15: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

Schönen guten Tag!

Ich hätte eine kleine Frage... ich verwende in einem Script den Befehl layzusf und hab immer unterschiedliche Layer, gibts einen Befehl dass ich nicht alle Layer eingeben muss, sondern einfach sage, z.B. nimm alle Layer, bis auf 0 und leg sie z.b. auf Layer Shading?

Mit freundlichen Grüßen

Franzal

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 19. Jan. 2010 15: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 Nur für Franzal 10 Unities + Antwort hilfreich

Nein , so einen Befehl gibt es nicht, man könnte sich aber mit einem Lisp o.ä. behelfen ..

Ablauf wäre dann
alle Layernamen ermitteln , (aktueller , 0 , und Ziellayer ausschließen)

Command-Aufruf zusammenbasteln
(command "LAYZUSF" "N" "AM_5" "N" "AM_4" ....)
und aufrufen

..man kann das auch alles gleich in einem Lisp realisieren.. BSP


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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 19. Jan. 2010 16:39    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

hm ... danke!
Ich häng noch eine Frage hinten dran ... Ich erstell mir in meinem script neue Layer, einer davon wär 0S-Profile EPDM , so nimmt er mir den nicht, jetzt hab ich ihn halt unter "" gesetzt, dann bekomm ich die Meldung, Unbekannter Befehl ... was is falsch?

Mit freundlichen Grüßen

Franzal

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 19. Jan. 2010 17:01    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 Franzal 10 Unities + Antwort hilfreich

"unbekannter Befehl" kann nur kommen wenn gar kein Befehl aktiv ist - somit
ist dein Makro wohl schon an anderer Stelle falsch ?

Wenn du das dann geklärt hast und es immer noch Probleme gibt: HIER wieder melden.

PS: Wenn du von einem Script sprichst dann poste es doch auch,
sonst kann man sehr schlecht prüfen an was es liegt.

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 20. Jan. 2010 08:01    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

Also mein Script sieht folgendermaßen aus:
-layer
n
"0S-Profile PVCU"
n
"0S-Shading PVCU"
n
"0S-Profile Aluminium"
n
"0S-Shading Aluminium"
n
"0S-Profile EPDM"
n
"0S-Shading EPDM"

-layzusf
n
"0S-Profile PVCU"
n
"0S-Shading PVCU"
n
"0S-Profile Aluminium"
n
"0S-Profile EPDM"
n
"0S-Shading EPDM"

n
"0S-Shading Aluminium"
j
filedia
0
ursprung
al
ursprung
al
(command "_erase" (ssget "X" (list (cons 8 "0S-Shading Aluminium"))) "")
_-layer
_s
0

_change
_all

_p
_la
0
_c
_bylayer
_lt
_bylayer
_lw
_bylayer

_-purge
_a

n
_qsave
_zoom
_e
-bereinig
al

n
_saveas
2000
_close
j

Ich möchte hier Layer deswegen erstellen, weil sie nicht in jeder Zeichnung vorhanden sind, und teilweise immer nur eine von denen verwendet wird. Die müssen aber alle aus der Zeichnung raus und da das Script dann bei (command "_erase" (ssget "X" (list (cons 8 "0S-Shading Aluminium"))) "") hängen bleibt wenn 0S-Shading Aluminium nicht vorhanden ist schreib ich halt zuerst alle zu löschenden Layer auf diesen. So nur kurz zur Erklärung, jetzt bleib ich aber schon beim definieren der Layer hängen 
Hab ich da jetzt was falsch geschrieben?

Mit freundlichen Grüßen

Franzal

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 20. Jan. 2010 08:27    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 Franzal 10 Unities + Antwort hilfreich

ziemlich umständlich .. warum nimmst du nicht für jeden zu löschenden Layer
sowas
zuerst
(setvar "CLAYER" "0")
und dann für jeden Layernamen

(if (tblobjname "LAYER" "LAYERNAME")(command "-laydel" "n" "LAYERNAME" "" "j"))

da wird getestet, ob der LAyer existiert und dann laydel aufgerufen

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 20. Jan. 2010 10: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

Ok, überzeugt!
Vielen Dank für die Hilfe!
Manche leben halt nach dem Sprichwort warum einfach wenns umständlich auch geht 

Mit freundlichen Grüßen

Franzal

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 20. Jan. 2010 10:56    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

So, hier jetzt mein momentanes Script:
(setvar "CLAYER" "0")
ursprung
al
ursprung
al
(if (tblobjname "LAYER" "0S-Shading PVCU")(command "-laydel" "n" "0S-Shading PVCU" "" "j"))
(if (tblobjname "LAYER" "0S-Profile PVCU")(command "-laydel" "n" "0S-Profile PVCU" "" "j"))
(if (tblobjname "LAYER" "0S-Shading Aluminium")(command "-laydel" "n" "0S-Shading Aluminium" "" "j"))
(if (tblobjname "LAYER" "0S-Profile Aluminium")(command "-laydel" "n" "0S-Profile Aluminium" "" "j"))
(if (tblobjname "LAYER" "0S-Shading EPDM")(command "-laydel" "n" "0S-Shading EPDM" "" "j"))
(if (tblobjname "LAYER" "0S-Profile EPDM")(command "-laydel" "n" "0S-Profile EPDM" "" "j"))
_-layer
_s
0

_change
_all

_p
_la
0
_c
_bylayer
_lt
_bylayer
_lw
_bylayer

_-purge
_a

n
_qsave
_zoom
_e
-bereinig
al

n
_saveas
2000
_close
j

Das läuft soweit, und habs auch schon brav durchlaufen lassen  nur kommt jetzt noch ein Problem dazu, scheinbar sind nicht alle Zeichnungen 2 mal verschachtelt. Gibts da auch eine Möglichkeit abzufragen, ob Ursprung möglich ist und wenn nicht dass er dann weiter geht?

Mit freundlich Grüßen

Franzal

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 20. Jan. 2010 11:03    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 Franzal 10 Unities + Antwort hilfreich

ok, jetzt "muß" ich auch mal was sagen:
(das Script sah und sieht gruselig aus)


Normalerweise solltest du einfach:

alle Layer frieren,
  die Layer die weg sollen tauen
    Löschen Alle
      restlichen Layer tauen
        Eigenschaft(Layer) aller verbiebenen Objekte auf Layer 0 legen (+ weitere Einstellungen)
PRÜFUNG
Bereinigen
(ggf. Zoom)
speichern
saveas
close

Das wäre der einfache Scriptweg bei dem man sich nichts "kaputt" machen kann(laydel).


Folgendes hatte ich angefangen zu schreiben als Antwort auf dein 1.Posting, habe es dann aber doch nicht gepostet, dies hole ich nun nach.
(wie gesagt: Antwort war eigentlich auf den Anfangspost, des wegen passt nicht mehr alles zum aktuellen Script, aber vieles)
 

Zitat:

Dein erzeugen der Layer sollte aber eigentlich funktionieren!
dennoch:

    [*] Du mußt die Quell-Layer imho  nicht erst extra erzeugen, nur der Ziel-Layerr von layzusf muß vorhanden sein.
    [*] Wofür wird Filedia=0 gesetzt (und vor allem: warum nicht wieder zurück ?)
    [*] bevor du den Layer"0" aktuell setzt sollte man sicher stellen das dieser nicht gefroren ist (und je nach Expert auch: eingeschaltet ist)
    [*] englisch(international) und deutsch mischen, warum ? - bleibt bei international !
    [*] schreibe jede Option aus, wenn man mit "Enter" die Vorgabe (blind) bestätigt kann auch mal Unsinn raus kommen.
    [*] Hast du die "saveas" Geschichte einmal vorher (in der Befehlszeile) getestet ?

Nachdem man sich das Makro (und deine Erklärung) mal als ganzes anschaut macht es SO gar keinen Sinn -> siehe CADmium

Nachtrag: Dir ist schon bekannt das du dir mit "ursprung" nicht nur Blockreferenzen zerschlägst ? dann ist ja gut.

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 20. Jan. 2010 11:42    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 cadffm,

danke für den Hinweis, dass mir Ursprung mehr als nur Blöcke zerschlägt. Das haut mich jetzt Kilometer zurück. Somit funktioniert dann auch nicht die Idee mit Layer frieren, tauen dann löschen ...
Dann steh ich wieder am Anfang. Dass man nur Blöcke auflöst, gibt es die Möglichkeit in einem Script?

Mit freundlichen Grüßen

Franzal

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 20. Jan. 2010 11:57    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 Franzal 10 Unities + Antwort hilfreich

Mit LISP ja (aber mit Lisp kann man ja soweiso "alles" machen / sich programmieren (lassen).


(setq aws (ssget "_X" '((0 . "INSERT")))) (wählt alle Blockreferenzen der Datei)
_.explode !aws (entspricht = URSPRUNG VORHER)


;script
(setq aws (ssget "_X" '((0 . "INSERT"))))
_.EXPLODE !aws


       Spätestens an dieser Stelle wird man dann aber darüber stolpern das Explode/Ursprung nicht
wie gewünscht in einem Script funktioniert ! (lese die Acadhilfe dazu: URSPRUNG)

soory     

<Beitrag wurde von CADffm editiert>

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 20. Jan. 2010 12:24    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 Franzal 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadffm:

        Spätestens an dieser Stelle wird man dann aber darüber stolpern das Explode/Ursprung nicht
wie gewünscht in einem Script funktioniert ! (lese die Acadhilfe dazu: URSPRUNG)

Dieses Problem kann man dann wie folgt umgehen (war mir nicht gleich eingefallen  ):

;scriptstart
(ssget "_X" '((0 . "INSERT")))
_xplode _P  _global _explode

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 20. Jan. 2010 13:31    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

Jetzt sind wir an einem Punkt angekommen wo ich nur noch Bahnhof versteh. Du musst davon ausgehen, dass ich ein Zeichenanweder von AutoCAD bin und 1-2 mal im Jahr ein Script schreibe, das sieht auch dann dementsprechend aus, einfach alle Befehle, die ich vorher in AutoCAD getestet hab, in eine Wurscht schreibe und damit war ich bis jetzt immer glücklich. Zumindest bis gestern. Also wenn ich das richtig interpretiere, brauch ich jetzt im Script nur den Befehl (ssget "_X" '((0 . "INSERT")))
_xplode _P  _global _explode
eingeben und er löst mir nur die Blöcke auf? - Sollte es so sein versteh ich dann das hier nicht:
Befehl: (ssget "_X" '((0 . "INSERT")))
nil

Befehl: _xplode
Aufzulösende Objekte wählen.
Objekte wählen: _P Kein vorheriger Auswahlsatz.

Objekte wählen:

Befehl:
Befehl: _global Unbekannter Befehl "GLOBAL". Drücken Sie F1-Taste für Hilfe.
Hab ich mit (ssget "_X" '((0 . "INSERT"))) alle Blöcke gewählt? Oder sollte es die Kombination sein?
(setq aws (ssget "_X" '((0 . "INSERT"))))
_xplode _P  _global _explode
bzw. hab ich da auch wieder das Problem, dass ich keinen vorherigen Auswahlsatz habe.

Hm? ok, das war jetzt mein Fehler ... grad noch eine Zeichnung ohne Block geöffnet. Aber dann kommt schon die nächste Frage auf mit "_global" erreich ich nichts (habs zwar auch schon in der netten Hilfe gefunden), aber mit "Ungültiger Optionstitel" ist dann wohl nicht ganz das erreicht was man wollte, oder?

Mit freundlichen Grüßen

Franzal

[Diese Nachricht wurde von Franzal am 20. Jan. 2010 editiert.]

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 20. Jan. 2010 13:34    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 Franzal 10 Unities + Antwort hilfreich

dann hast du keine Blockreferenzen in deiner Datei gehabt wo du das
ausprobiert hast, ganz einfach.

Um deine andere Frage zu beantworten:
DIE Version: (ssget "_X" '((0 . "INSERT"))) reicht dir aus


------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 20. Jan. 2010 13:54    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

Ok, soweit so gut. Ich hab jetzt irgendwie die Befürchtung, dass dir gleich wieder das grausen kommt. Ich hab jetzt einfach mal versucht zu kombinieren, da ich leider nicht in allen Zeichnungen Blöcke habe, und die raus zu sortieren wäre wohl eine Arbeit von 3 Wochen, habe ich das versucht.
(if(setq aws (ssget "_X" '((0 . "INSERT"))))(command "_xplode" "_P" "" "_global" "_explode)
Damit wollt ich eigentlich nur erreichen, dass er eben Blöcke auswählt, und wenn er keine hat einfach nichts tut, bzw. zum nächsten Befehl übergeht. Hat leider nicht so geklappt. Kann man das in einem Script bewerkstelligen?

Mit freundlichen Grüßen

Franzal

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 20. Jan. 2010 14:00    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 Franzal 10 Unities + Antwort hilfreich

die Zeile ist schon Lisp... mach doch gleich alles so ... alles andere wird rumgestümper... und zu alle Blockreferenzen einer Zeichnung auflösen finden sich einige codschnipsel hier im Forum ...

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 20. Jan. 2010 14:24    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

Naja, wie gesagt, mehr als zeichnen war bei mir noch nicht drin, deshalb hab ich auch immer versucht auf script auszuweichen, wo ich von lisp keine Ahnung hab.
Danke euch beiden für die tolle Hilfe, vielleicht bekomm ichs ja dann bald mal hin.

Mit freundlichen Grüßen

Franzal

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 20. Jan. 2010 14: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 Nur für Franzal 10 Unities + Antwort hilfreich

Abgesehen davon das du in der Hektik einmal " vergessen hast "wolltest" du schon
das Richtige machen, leider ist xplode dafür ein blödes Versuchsobjekt gewesen
weil dies eine Lisp-Funktion ist und da funktioniert das nicht so wie mir "richtigen"
Acad-Funktionen.

In einem Script würde man dies lösen indem man vor dem auflösen immer erst einen
(leeren)Block einfügt, somit ist gegeben das immer ein Auswahlsatz gebildet wird!
Andere Variante: mit wählt außer Blöcken noch andere Objekte welche auf jeden Fall
enthalten sind, aber durch (e)xplode nicht zerschlagen werden (Linien zB.)

Ich habe für dich mal gegoogelt um dich weiter zu bringen:

Hier zB. mal ein Treffer mit einer (Lisp)Lösung von CADmium: http://ww3.cad.de/foren/ubb/Forum52/HTML/003297.shtml 

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 20. Jan. 2010 17:32    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

Im forum wird mir das zu abenteuerlich
(vor allem weil du es schon nutzt <staun> )

Frage: Warum erstellst du vor dem xplode 2 Blöcke und fügst 2 Referenzen ein !?
Eine Blockreferenz reicht doch auch !?

Zudem: Nun nimmst du also doch "laydel" , hoffentlich hast du die
Layer wirklich nicht in Blöcken verwendet welche noch erhalten bleiben
sollen !

Auf den Rest gehe ich jetzt nicht mehr ein - schönen Feierabend 

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

Franzal
Mitglied



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

Beiträge: 63
Registriert: 21.07.2009

WIN XP Pro; AutoCAD Architecture 2010, 2011
Grafikkarte: NVIDIA Quadro FX 350M Arbeitsspeicher : 256.0 MB

erstellt am: 21. Jan. 2010 13: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

Aufgrund von _xplode _P  global _explode füge ich zwei Blöcke ein. Die Abfrage ob individuell oder global kommt bei mir erst, wenn 2 Objekte gewählt sind. Ansonst bleibt mir immer brav das Script hängen.

Mit freundlichen Grüßen

Franzal

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 21. Jan. 2010 13:37    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 Franzal 10 Unities + Antwort hilfreich

  TOP, danke für die Info  

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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