Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Blöcke mit Lisp auf Layer 0 und Farbe von Block setzen

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:  Blöcke mit Lisp auf Layer 0 und Farbe von Block setzen (5536 mal gelesen)
charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 28. Nov. 2003 15:29    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

Hallöchen allerseits,

ich hatte mich schon sehr gefreut, dass ich mit meinen wenigen (kaum vorhandenen Lisp-Halbwissen) eine Lisp geändert habe, die alle Elemente innerhalb eines Blockes auf den Layer 0 legen und die Farbe von Block setzen. Das klappt auch, allerdings nicht, wenn die Elemente die Farbe von Layer haben (vermute ich, so sieht es zumindest aus). Ich habe die nuke.lsp von Cadwiesel genommen und für unsere Verhältnisse angepasst:
(defun To-0( BLCK / BNAME BLIST E EDATA SPIN TMP )
 
  ;;; Prints a pinwheel on the command line
  (defun Spin ( )
      (setq SYM
        (cond
            ((= SYM nil) "-")
            ((= SYM "-") "\\")
            ((= SYM "\\") "|")
            ((= SYM "|") "/")
            ((= SYM "/") "-")
        )
      )
      (princ (strcat "\rScanning... " SYM "                                    "))
  );end spin
 
  (if (=(type BLCK)(read "LIST"))(setq TMP(car BLCK) BLIST(cdr BLCK) BLCK TMP TMP nil))
  (setq BLCK(tblsearch "BLOCK" BLCK))
  (if
      (and
        (/=(logand(cdr(assoc 70 BLCK))1)1)  ;skips annomyous blocks
        (/= (logand(cdr(assoc 70 BLCK))4)4) ;skips xrefs
      );and
      (progn
        (setq E (cdr (assoc -2 BLCK)))
        (while E
            (if (=(cdr(assoc 0 (entget E))) "INSERT") ;If the object is a block
              (progn
                  (setq BNAME(cdr(assoc 2(entget E)))) ;save the name to a list
                  (if (not (member BNAME BLIST))
                    (if (not BLIST)(setq BLIST (list BNAME)) ;create the list if it doesn't exist
                        (setq BLIST(append BLIST(list BNAME)))
                    );if
                  );if
              );progn     
            );if
            (setq EDATA (entget E))
            (if(assoc 62 EDATA) ;Resets object color to BYLAYER if it isn't.
              (setq EDATA(subst(cons 62 "0")(assoc 62 EDATA)EDATA))
            );if
            (if(assoc 6 EDATA) ;Resets object linetype to BYBlock if it isn't.
              (setq EDATA(subst(cons 6 "BYBLOCK")(assoc 6 EDATA)EDATA))
            );if
            (setq EDATA(subst (cons 8 "0")(assoc 8 EDATA)EDATA));changes layer to 0
            (entmod EDATA);updates entity
            (setq E (entnext E));get next enitiy, nil if end of block
            (Spin)
        );end while E
      );progn
  );if
  BLIST; returns names of any nested blocks
);defun


(defun C:NUKE( / BLK_NM CHOICE E EDATA IDX PK_BLK SS)
  (command "._undo" "m")
  (setq CHOICE "S")
  (initget "G S")
  (setq CHOICE(getkword (strcat "\n<G>lobal or <S>elect block: <" CHOICE "> ")))
  (if(not CHOICE)(setq CHOICE "S"))
  (if (= (strcase CHOICE) "G")
      ;global nuke
      (while (setq BLK_NM(tblnext "BLOCK" (null BLK_NM)))
        (TO-0 (cdr(assoc 2 BLK_NM)))
      );while
      ;nuke selected block
      (progn
        (prompt "\nSelect Block(s) to Nuke: ")
        (setq SS(ssget '((0 . "INSERT"))))
        (setq IDX 0)
        (repeat (sslength SS)
            (setq BLK(cdr(assoc 2 (entget(ssname SS IDX)))))
            (cond
              (PK_BLK (setq PK_BLK(append PK_BLK (list BLK))))
              (T (setq PK_BLK(list BLK)))
            );cond
            (setq IDX(1+ IDX))
        );repeat
        (while PK_BLK
            (setq PK_BLK(To-0 PK_BLK))
        );while
      );progn
  );if
  (command "._regen")
  (princ "\rFinished                  ")
  (princ)
);defun
(prompt"\nNUKE zum Starten.")(princ)

Kann mir da jemand weiterhelfen? Wäre supernett!!!

Gruß

Charlie

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

AsSchu
Ehrenmitglied
Konstrukteur


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

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2012

erstellt am: 28. Nov. 2003 15: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 charlieBV 10 Unities + Antwort hilfreich

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 28. Nov. 2003 15: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

ich weiß, aber ich weiß nicht wie viele normalsterbliche Acad-anwender (die das ja betrifft) sich dorthin verirren?!? Deshalb hier, ausserdem tummeln sich hier ja auch Lispler...

Aber danke für den Hinweis!

Gruß

Charlie

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: 28. Nov. 2003 17: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 Nur für charlieBV 10 Unities + Antwort hilfreich

Warst du nicht heut mittag in der Lobby ?
-hatte man dir da nicht geholfen oder hast du
vergessen hier die Lösung zu posten ?

###zum nachlesen###
hat ein Objekt die Farbe "vonlayer" so ist das der Standardwert
für den gc62 und wird bei der Abfrage mit (entget) nicht mit
ausgegeben- weil er eben einen Standardwert aufweist.
wenn kein '(62 . nnn) in der eListe vorhanden ist, kann ich
ihn auch nicht mit (subst 'neu 'alt inLinste) ersetzen.

da lag/liegt wohl (ungetestet) das Problem.
----

vielleicht möchtest du doch noch deine Antwort posten ?

------------------
- Sebastian - Weitere Info´s unter F1 !

[Diese Nachricht wurde von cadffm am 28. Nov. 2003 editiert.]

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 28. Nov. 2003 17: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 charlieBV 10 Unities + Antwort hilfreich

ändere die zeile

(if(assoc 62 EDATA) ;Resets object color to BYLAYER if it isn't.
              (setq EDATA(subst(cons 62 "0")(assoc 62 EDATA)EDATA))
            );if

auf

(if (assoc 62 edata)
  (setq edata (subst (cons 62 0) (assoc 62 edata) edata))
  (setq edata (append edata (list (cons 62 0)))
)

folgender hintergrund:
bei der farbe vonlayer existiert der gruppencode 62 nicht. darum kannst du ihn mit SUBST nicht ändern, sondern musst ihn mit APPEND neu hinzufügen.

------------------
***********************************************
AutoCad 2000i, 2002, 2004 deutsch und englisch
Windows 2000, NT, XP

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

TK_KE
Mitglied



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

Beiträge: 67
Registriert: 15.07.2003

.

erstellt am: 29. Nov. 2003 00: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 charlieBV 10 Unities + Antwort hilfreich


Obj_prop.zip

 
Hallo Charlie!
Meinen Vorrednern kann ich nicht viel hinzufügen außer vielleicht
eine ( meineserachtens besser kommentierte   ) Routine mit der du vielleicht besser klarkommst.
Gruß Thomas

Noch ein Hinweis:
Lad dir den anhang nochmal runter und dann
unter Menüpunkt Hilfmittel bzw.Werkzeuge -->Autolisp-->Laden
die Datei "Obj_prop.lsp" laden und dann in der Befehlszeile "obj_prop" eingeben und abentern...

[Diese Nachricht wurde von TK_KE am 01. Dez. 2003 editiert.]

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

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 01. Dez. 2003 07:46    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

@Sebastian,

ja ich war in der Lobby, ich habe auch geschrieben dass ich rausgeflogen bin und dass mir unter Umständen etwas entgangen ist... Und jetzt mal Hand auf´s Herz, ich versuche hier mit minimalsten Lisp-Kenntnissen (rechnen habe ich schon gelernt!) eine vorhandene Lisp umzustricken. Da hilft es mir wenig, wenn in der Lobby man mir gc 62 an den Kopf wirft. Und, wenn ich eine Lisp gefunden habe, die das tut, was ich möchte, dann werde ich das schon kundtun, und ausserdem hat eben nicht jeder Internet zu Hause und muss sich bis Montags in der Firma gedulden, (was ich aber in der Lobby angekündigt habe!). Und jetzt überlege mal, was jemand mit meinem Wissensstand mit deiner Antwort anfangen kann, Ich versuche doch bei meinen Antworten die ich gebe auch so vorzugehen, dass es auch jemand verwenden kann, der das Programmteil noch nicht im Schlaf verwendet. [Ist nur meine persönliche Meinung]

@Fuchsi
Gibt folgendes auf die Mütze:
; Fehler: Falsch formatierte Liste in Eingabe
Was habe ich falsch gemacht? Hat es bei Dir funktioniert? Ich wäre sehr an deiner Antwort interessiert, da ich eigentlich am allerliebsten einfach nur diese kurze Lisp umschreiben würde...(umgeschrieben haben würde (mit Deiner Hilfe???))

@Thomas, das war nett gemeint mit der gut kommentierten Lisp, aber ich bekomme sie überhapt nicht zum laufen (wie gesagt, ich bin Lisp-technisch sehr minderbemittelt und was erschwerend dazukommt blond und ne Frau...) Was ist der Befehlsaufruf???

Gruß Charlie

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 01. Dez. 2003 08:35    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 charlieBV 10 Unities + Antwort hilfreich

Hallo charlieBV,

nun wird es schwierig. Wollte man dir eine kompetente Antwort geben, so müsste man bei den Grundlagen anfangen.
Falsch formatierte Liste in Eingabe deutet darauf, dass irgendwo in deinem Code eine Klammer fehlt.
Sind die Grundlagen als Thema abgeschlossen, so müsste man dir vermitteln, wie eine Zeichnungsdatenbank intern aufgebaut ist. DXF-Dateistruktur, (entget..), (entmake ..) (entmod ..) wären dann die Folgethemen.
Damit du aber mit dem überhaupt etwas anfangen kannst, was mit DXF und den (entxxx ..) Funktionen zu tun hat, sollte man dir auch noch den Umgang mit Listen (list ..), (cons ..), (append ..), (assoc ..), (mapcar ..), (subst ..) ...
beibringen.
Du siehst, das Thema ist sehr viel komplexer, als die Aufgabenstellung Layer und Farbe auf bestimmte Werte setzen zunächst mal vermuten lässt.
Deshalb ist die Antwort von cadffm der Schub's in die richtige Richtung. Fuchsi hat in seiner Antwort nicht's anderes stehen, nur eben als Code und nicht verbal umschrieben.

Was ich sagen will. Bei der Beantwortung der Fragen, muss man schon ein gewisses Grundwissen voraussetzen, man kann und will ja nicht ganze Bücher hier in einem Forumsbeitrag posten, was nun auch nicht Sinn eines Forums ist.

Ich denke, du hast mit den Antworten genügend Stichworte zu Themen, die dich als Lisp-Newbie die nächste Zeit beschäftigen werden. Die konkrete Aufgabenstellung selbst, kann ich mir nicht vorstellen, als Neuling mal so nebenbei lösen zu können.
Vergeht dir zu viel Zeit, bis du es selber geschafft hast, das Tool zu ändern, dann bleibt nur eins, warten bis dir jemand hier im Forum die Routine einfach mal umschreibt (wobei dabei auch nicht feststeht, wann du die Lösung in den Händen hältst), jemandem damit beauftragen (dann weißt du, wann das Programm bei dir im Einsatz ist), oder eine Schulung besuchen, damit dir der Einstieg schneller gelingt.


Grüße Holger

------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD

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: 01. Dez. 2003 08:46    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 charlieBV 10 Unities + Antwort hilfreich


xnuke.lsp.txt

 
@Charly
Ich bin schockiert !!!

Habe eigentlich gedacht das ich dir mit meiner Antwort
super helfe - falsch gedacht..

Ich bin praktisch selbst Anfänger, ich blute zwar nicht
mehr so stark     aber dennoch.

Also wenn Nuke genau das ist was du suchst, bis auf die
Sache mit vonBlock statt vonLayer, dann nimm dieses
hier im Anhang.

der Befehl heißt hier XNUKE !

(Edit:
Habe Dich/dein Problem in der Lobby nicht so verfolgt,
bin aber davon ausgegangen das es schon gelöst wird/ist.
Das Problem mit I-Net zuhause etc. kenne ich recht gut,
habe zwar Zugang, aber nur Probleme mit zZeit...

------------------
- Sebastian - Weitere Info´s unter F1 !

[Diese Nachricht wurde von cadffm am 01. Dez. 2003 editiert.]

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

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 01. Dez. 2003 08:58    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

Hi Sebastian,

hoffe, dass du nicht gekränkt bist, aber (ich sagte ja, blond und Frau(fast unvereinbar))ich bekomme deinen Anhang nicht auf (ist auch nicht der erste den ich öffnen möchte..., aber der erste bei dem´s nicht klappt. Aber vielen Dank schon mal für die Prompte Antwort. Vielleicht werde ich in 2 Jahren das verstehen, mit dem du mir helfen wolltest...
Gruß

Charlie
(Werde übrigens mit ie geschrieben, aber Cadwiesel hat das heute morgen auch noch nicht verstanden, du bist in illustrer Gesellschaft...)

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: 01. Dez. 2003 09:14    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 charlieBV 10 Unities + Antwort hilfreich


xnuke.txt

 
.

------------------
- Sebastian - Weitere Info´s unter F1 !

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

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 01. Dez. 2003 09:17    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 Holger,

dass ich nicht erwarte, dass hier spontan die Antwort auf dem Silbertablett kommt, dass weiß ich wohl, aber ich habe halt gehofft, dass jemand mir so wie Fuchsi hilft (und da wollte ich ja nur nachfragen ob das bei ihm läuft oder nicht.) Ich versuche durchaus mich durch den Lisp-Dschungel als Einzelkämpfer durchzuschlagen und habe dabei Logik-Unterstützung von unserem Admin, der Makros im Excel schreibt und uns damit auch schon weitergeholfen hat... Bisher sind wir beim umschreiben von Lisp mit Logik schon sehr weit gekommen, aber dass sich von Layer Anders verhält und man das nicht einfach logisch ersetzen kann, dass kann man ja nicht riechen, wenn man erst rechnen gelernt hat... oder?
Ich hatte auch nicht beabsichtigt, hier eine Einführungsstunde in Lisp erhalten zu wollen, ganz und gar nicht, nur einfach eine (von mir aus auch unkommentierte kurze Änderung dieser Lisp und meiner Fehler) Und wenn ich Sebastians xnuke auch noch öffnen könnte, hätte ich womöglich diese Lösung schon... 

Gruß

Charlie

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

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 01. Dez. 2003 09: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

Hi, Lass mich dir ein Chakachaka tanzen... (schade, dass es noch keinen Smilie gibt, der Purzelbäume schlägt!!! Sie würden hier nur so kullern....
DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE DANKE ...

Gruß

Charlie
(U´s kommen logischerweise!!!)

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 01. Dez. 2003 10:13    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 charlieBV 10 Unities + Antwort hilfreich

hallo charly

habe gerade gesehen, dass du ins tanzen beginnst, dürftest also dein problem schon gelöst haben

trotzdem zu meinem posting
"falsch formatierte Liste" weist darauf hin, dass eine ) fehlt.
ins lisp muss die summe der ( gleich der summe ) sein. natürlich auch in der richtigen position

(if (assoc 62 edata)
  (setq edata (subst (cons 62 0) (assoc 62 edata) edata))
  (setq edata (append edata (list (cons 62 0))))
)

wie gesagt, bei farbe vonlayer gibt es den gruppencode 62 .
darum wird mit (if (assoc 62 edate) abgeprüft, ob es den gc 62 in der liste edata gibt.
wenn ja, wird die zeile
  (setq edata (subst (cons 62 0) (assoc 62 edata) edata))
durchgeführt, hier wird mit SUBST der bestehende GC62 auf (cons 62 0) geändert.

wenn es den gc62 nicht gibt wird diese zeile durchgeführt (hier hat auch eine klammer zu gefehlt vermutlich beim reinkopieren passiert)
da es den gc62 nicht gibt wird er mit APPEND an die bestehende liste angehängt.

------------------
***********************************************
AutoCad 2000i, 2002, 2004 deutsch und englisch
Windows 2000, NT, XP
Programmiere in Lisp, VB6, VBA (Word, Excel, Acrobat, InDesign und AutoCad) und C#.NET

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

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 01. Dez. 2003 10:48    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

Danke für die Erklärung, da habe ich ja doch was gelernt...
Wenn diese Fehlermeldung kommt, dann werde ich die Klammern zählen...

Danke!!!

Gruß

Charlie

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

Balrok
Mitglied
Technischer Zeichner


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

Beiträge: 428
Registriert: 02.06.2005

Win10, 64Bit
AutoCad Architcture 2021
LiNear 2021
EPLAN P8

erstellt am: 20. Sep. 2016 07: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 Nur für charlieBV 10 Unities + Antwort hilfreich

ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!

Hallo Leute, ich muss dieses Thema nochmals aufgreifen.
Ich bin auf der Suche nach so was wie nuke oder xnuke. Diesmal soll er mir
aber nicht die Farbe auf vonBlock setzen, sondern soll einfach den Linientyp so
lassen wie er ist. Im Prinzip müsste ich dann aus nuke doch was löschen, aber
ich kann nicht finden was?  Zudem bin ich überhaupt kein Lisper!!!

Grüße
Balrok

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. Sep. 2016 08: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 Nur für charlieBV 10 Unities + Antwort hilfreich

" nicht die Farbe auf vonBlock setzen, sondern soll einfach den Linientyp so
lassen wie er ist. " HÄ?

Und hier ist die DXF-Referenz von Autodesk: DXF
Auch kannst du in deiner Hilfe(f1) die DXF-Codes nachsehen: Klick!

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

Balrok
Mitglied
Technischer Zeichner


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

Beiträge: 428
Registriert: 02.06.2005

Win10, 64Bit
AutoCad Architcture 2021
LiNear 2021
EPLAN P8

erstellt am: 20. Sep. 2016 08: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 Nur für charlieBV 10 Unities + Antwort hilfreich

Also, nuke bewirkt ja das alles auf Layer 0, Farben auf vonLayer, Linientyp auf vonLayer usw. gelegt wird.
Nun brauche ich nuke ohne das er mir den Linientyp auf vonLayer legt. Also die gestrichelte Linie soll auch
nach nuke gestrichelt bleiben!

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. Sep. 2016 09: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 charlieBV 10 Unities + Antwort hilfreich

Dann schau in der Hilfe nahc welchen DXF-Code es betrifft (oder durchwühle 20 Threads zu NUKE),
dann kommentierst du den Part aus im Programm.

DXF Linientyp: http://help.autodesk.com/view/ACD/2017/DEU/?guid=GUID-3F0380A5-1C15-464D-BC66-2C5F094BCFB9
Auskommentieren geht mit ; (davor / ganmze Zeile = ; am Zeilenanfang)
vorher so in der Art:
(wenn Linientyp gefunden
      (dann ändere diesen)
)
hinterher so
;(wenn Linientyp gefunden
;      (dann ändere diesen)

.
Ach jetzt sehe ich das oben ja der Code gepostet wurde..    aber egal. Jetzt ist es getippt und du wirst es auch so schaffen http://ww3.cad.de/foren/ubb/icons/icon14.gif

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

Balrok
Mitglied
Technischer Zeichner


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

Beiträge: 428
Registriert: 02.06.2005

Win10, 64Bit
AutoCad Architcture 2021
LiNear 2021
EPLAN P8

erstellt am: 20. Sep. 2016 09: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 Nur für charlieBV 10 Unities + Antwort hilfreich

So, habe die Stelle gefunden. Dort steht,

(if(assoc 6 EDATA) ;Resets object linetype to BYLAYER if it isn't.
               (setq EDATA(subst(cons 6 "BYLAYER")(assoc 6 EDATA)EDATA))

Einfach löschen geht nicht.
Wie muss ich diese nun ändern, so das er mir die Linentyp NICHT ändert?
ICH HABE ECHT KEINE AHNUNG!  

[Diese Nachricht wurde von Balrok am 20. Sep. 2016 editiert.]

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 20. Sep. 2016 10:15    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 charlieBV 10 Unities + Antwort hilfreich

Hallo Balrok,

Du bist fast am Ziel.
Du must die beiden von Dir gepostetetn Zeilen UND die nächste, die da lautet:

);if

auskommentieren, d. h. ein ; an den Zeilenanfang setzen.


HTH
Gruß
Thomas

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

Balrok
Mitglied
Technischer Zeichner


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

Beiträge: 428
Registriert: 02.06.2005

Win10, 64Bit
AutoCad Architcture 2021
LiNear 2021
EPLAN P8

erstellt am: 20. Sep. 2016 10:20    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 charlieBV 10 Unities + Antwort hilfreich

DANKE!!!!!!!!!!!!!!!

     

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

xxxmurdockxxx
Mitglied
techn. Zeichner


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

Beiträge: 52
Registriert: 18.12.2007

WIN10, Civil 3D 2017 SP1.1

erstellt am: 23. Mai. 2017 17: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 charlieBV 10 Unities + Antwort hilfreich

ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!

Sorry, wenn ich den alten Beitrag nochmal hochhole.

Ich möchte gerne das NUKE-Lisp-Tool verwenden um alle Elemente von versch. Blöcken auf Layer 0 zu setzen.
Funktioniert auch schön alles.

NUKE macht ja alle Farben und Linienstile auch auf "vonLayer".

Code:
(setq EDATA (entget E))
            (if(assoc 62 EDATA) ;Resets object color to BYLAYER if it isn't.
              (setq EDATA(subst(cons 62 256)(assoc 62 EDATA)EDATA))
            );if
            (if(assoc 6 EDATA) ;Resets object linetype to BYLAYER if it isn't.
              (setq EDATA(subst(cons 6 "BYLAYER")(assoc 6 EDATA)EDATA))
            );if
            (setq EDATA(subst (cons 8 "0")(assoc 8 EDATA)EDATA));changes layer to 0
            (entmod EDATA);updates entity
            (setq E (entnext E));get next enitiy, nil if end of block
            (Spin)

Lösche ich die entsprechenden Zeilen passt es und es bleiben alle Farben und Linien wie sie sind.
Nun hätte ich aber gerne dass alle Elemente von Farbe "vonLayer" auf "vonBlock" geändert werden. Ohne dabei die best. Farben zu ändern.

Wie muss ich diesen Schnipsel ändern, damit das geht?

Code:
      (if (assoc 62 edata)
  (setq edata (subst (cons 62 0) (assoc 62 edata) edata))
  (setq edata (append edata (list (cons 62 0))))
)

So wird ja einfach alles auf "vonBlock" gesetzt.

Schonmal Vielen Dank 

------------------
Viele Grüße
Stefan

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: 23. Mai. 2017 22: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 Nur für charlieBV 10 Unities + Antwort hilfreich

Nun hätte ich aber gerne dass alle Elemente von Farbe "vonLayer" auf "vonBlock" geändert werden. Ohne dabei die best. Farben zu ändern.


Du redest von der Eigenschaft Farbe und von der dargestellten Farbe am Bildschirm?

Wie soll das gehen?
Entweder dir ist bekannt das es zufällig passt, oder es geht nicht.
"Zufällig" weil es ja auch anders sein könnte.
Oder ich habe diese letzte Bemerkung nicht verstanden.

Bleiben wir beim ersten Teil:

(if (assoc 62 edata)
  (setq edata (subst (cons 62 256) (assoc 62 edata) edata))
  (setq edata (append edata (list (cons 62 0))))
)
; Truecolor mal aussen vor

Jetzt zum Farben behalten, wo du vermutlich die Anzeigefarbe am Bildschirm meinst?

Objekte welche Farbe=1 hatten, werden jetzt VonLayer die Farbe des Einfügelayers der Blockreferenz anzeigen.
Wenn das nicht zufällig ebenfalls Farbe1 ist, ändert sich die angezeigte Farbe.


Objekte welche die Farbe VonLayer hatten, werden nun in der Farbe der Blockreferenz angezeigt, bei VonLayer dann entsprechend der Farbe des Einfügelayers der Blockreferenz. Denn das Objekt ist jetzt sicher Layer0 und das Objekt erbt bei Farbe=VonBlock die Farbe der Blockreferenz.

Diese pauschale Aussage kann man ohne Kenntnis der Block und Layerstruktur machen.

Farbe ändern ohne die Farbe ändern?

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 24. Mai. 2017 08:22    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 charlieBV 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von xxxmurdockxxx:

Nun hätte ich aber gerne dass alle Elemente von Farbe "vonLayer" auf "vonBlock" geändert werden. Ohne dabei die best. Farben zu ändern.

Wie muss ich diesen Schnipsel ändern, damit das geht?

Code:
      (if (assoc 62 edata)
  (setq edata (subst (cons 62 0) (assoc 62 edata) edata))
  (setq edata (append edata (list (cons 62 0))))
)


Also ich verstehe das so: Wenn das Element eine Farbe zugewiesen hat, soll nix passieren, ansonsten soll sie auf "von Block" gesetzt werden.
Dann musst Du in der "then" Zeile Deiner "if" Konstruktion auch nix machen. Das könnt dann so aussehen:

Code:

(if (assoc 62 edata)
  (princ)
  (setq edata (append edata (list (cons 62 0))))
)

HTH
Gruß
Thomas

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



Bedarfsplaner*in - Beschäftigte*r mit abgeschlossener wiss. Hochschulbildung (d/m/w) - Entgeltgruppe 13 TV-L Berliner Hochschulen

Die TU Berlin versteht sich als international renommierte Universität in der deutschen Hauptstadt, im Zentrum Europas. Eine scharfe Profilbildung, herausragende Leistungen in Forschung und Lehre, die Qualifikation von sehr guten Absolventinnen und Absolventen und eine moderne Verwaltung stehen im Mittelpunkt ihres Agierens. Ihr Streben nach Wissensvermehrung und technologischem Fortschritt orientiert sich an den Prinzipien von Exzellenz und Qualität....

Anzeige ansehenBauwesen
xxxmurdockxxx
Mitglied
techn. Zeichner


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

Beiträge: 52
Registriert: 18.12.2007

WIN10, Civil 3D 2017 SP1.1

erstellt am: 24. Mai. 2017 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 charlieBV 10 Unities + Antwort hilfreich

Genau das wars.

Vielen Dank!


------------------
Viele Grüße
Stefan

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