| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für BricsCAD |
| | |
 | TRICAD MS Stahlbau / Steel Construction 3D , eine App
|
|
Autor
|
Thema: NUKE by Block (293 / mal gelesen)
|
Mr.Zuk Mitglied technischer Planer

 Beiträge: 19 Registriert: 18.04.2023 BricsCAD BIM V24
|
erstellt am: 15. Okt. 2025 09:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Die "NUKE.lsp" ist bei uns schon Standard. Jetzt wäre es noch super wenn man die Eigenschaften (Farbe/Linien) auf "vonBlock" setzen kann. Oder noch besser "flexibel" - also die Eigenschaften von Farbe, Linienart u. Linienstärke separat auf "VonLayer" oder "VonBlock" - eben eine LISP für jeden Fall. Irgendwo hier im Forum habe ich schon solche Ansätze gelesen aber finde es einfach nicht mehr. Vielen Dank schonmal... Grüße Daniel ------------------ "Willst du etwas erledigt haben, geh selbst; wenn nicht, schicke andere." (Benjamin Franklin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general

 Beiträge: 3471 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 16. Okt. 2025 12:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
Servus, Das LSP ist gut kommentiert, wenns von Cadwiesel ist. Bitte Quelle angeben. Farbe 0 > BYBLOCK Linientyp BYBLOCK Code:
(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
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22718 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 16. Okt. 2025 12:31 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
|
Mr.Zuk Mitglied technischer Planer

 Beiträge: 19 Registriert: 18.04.2023 BricsCAD BIM V24
|
erstellt am: 16. Okt. 2025 16:14 <-- editieren / zitieren --> Unities abgeben:         
Ja super Tip mit der Google-Suche. Geht sehr gut So konnte ich einen Thread finden der auch noch die Transparenz auf "VonBlock" setzt. Danke soweit für die Eure Tipps. Jetzt habe ich 2 Nuke-Befehle geladen aber immer nur der letzte ist aktiv. Wie muss ich jetzt die Befehlsnamen richtig eintragen? So reicht es offensichtlich nicht: (defun C:NUKE_BB( / BLK_NM CHOICE E EDATA IDX PK_BLK SS) . . . );defun (prompt"\nNUKE_BB zum Starten.")(princ) ------------------ "Willst du etwas erledigt haben, geh selbst; wenn nicht, schicke andere." (Benjamin Franklin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22718 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 16. Okt. 2025 16:35 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
Doch, genau so! "immer nur der letzte ist aktiv" Weil bei gleichnamigen Funktionen die zuletzt definierte Funktion, die Funktion mit selben Namen, neudefiniert. Genau
Aber schau dir die Zeilen in Nuke.lsp noch einmal an, darin sind zwei Funktionen
1. C:NUKE 2. To-0 In C:NUKE wird die Funktion To-0 aufgerufen und das ist ja auch die eigentliche Funktion, welche du geändert hast. Du benötigst also zwei Nuke und zwei To-0
zB. c:NUKE und c:NUKE_BB und später sicher auch noch andere sowie To-0 und To-0_bb Neben den Zeilen (defun c:nuke und (defun To-0 änderst du also auch noch den schönen prompt am Ende (hast du schon gemacht, top) UND innerhalb von (defun c:Nuke.............) änderst du dann noch den Aufruf der anderen Funktion Nuke_bb soll ja To-0_bb aufrufen.. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mr.Zuk Mitglied technischer Planer

 Beiträge: 19 Registriert: 18.04.2023 BricsCAD BIM V24
|
erstellt am: 16. Okt. 2025 17:19 <-- editieren / zitieren --> Unities abgeben:         
Irgendwie hab ich wohl noch einen Fehler. Habe mal meine nuke_bb angehängt... ------------------ Schöne Grüße, Daniel "Willst du etwas erledigt haben, geh selbst; wenn nicht, schicke andere." (Benjamin Franklin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22718 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 16. Okt. 2025 18:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
wie ärgerlich, aber du hast es schon richtig gemacht, nur Zitat: Original erstellt von cadffm: Aber schau dir die Zeilen in Nuke.lsp noch einmal an, darin sind zwei Funktionen1. C:NUKE 2. To-0 In C:NUKE wird die Funktion To-0 [EDIT]ZWEI MAL[/EDIT] aufgerufen und das ist ja auch die eigentliche Funktion, welche du geändert hast.
SORRY! Für den GLOBALen Teil hast du den Aufruf geändert, jedoch gibt es einen zweiten für die SELECT Variante! (setq PK_BLK (To-0 PK_BLK))(setq PK_BLK (To-0_bb PK_BLK))
[Diese Nachricht wurde von cadffm am 16. Okt. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mr.Zuk Mitglied technischer Planer

 Beiträge: 19 Registriert: 18.04.2023 BricsCAD BIM V24
|
erstellt am: 17. Okt. 2025 10:41 <-- editieren / zitieren --> Unities abgeben:         
Super - läuft! Vielen Dank. Zum Schluss würde ich noch meine bestehende Original-Nuke um die Eigenschaft "ByLayer" für Linienstärke und Transparenz erweitern. Das müsste der Schnipsel sein (aus meiner Nuke_BB): -- (if(assoc 370 EDATA) ;Resets object Linienstärke to BYBLOCK if it isn't. (setq EDATA(subst(cons 370 -2)(assoc 370 EDATA)EDATA)) (setq edata (append edata (list (cons 370 -2)))) ) (if (assoc 440 edata) (setq edata (subst (cons 440 16777216) (assoc 440 edata) edata)) (setq edata (append edata (list (cons 440 16777216)))) -- Welcher Code(Zahl) ist hier zu ändern für "ByLayer"? ------------------ Schöne Grüße, Daniel "Willst du etwas erledigt haben, geh selbst; wenn nicht, schicke andere." (Benjamin Franklin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22718 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Okt. 2025 11:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
|
Mr.Zuk Mitglied technischer Planer

 Beiträge: 19 Registriert: 18.04.2023 BricsCAD BIM V24
|
erstellt am: 17. Okt. 2025 13:10 <-- editieren / zitieren --> Unities abgeben:         
Das war der Punkt auf dem "i"  Danke für die Hilfestellung! Anbei meine beiden Nuke's für alle Interessierten. ------------------ Schöne Grüße, Daniel "Willst du etwas erledigt haben, geh selbst; wenn nicht, schicke andere." (Benjamin Franklin) [Diese Nachricht wurde von Mr.Zuk am 17. Okt. 2025 editiert.] [Diese Nachricht wurde von Mr.Zuk am 17. Okt. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22718 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Okt. 2025 13:17 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
|
Mr.Zuk Mitglied technischer Planer

 Beiträge: 19 Registriert: 18.04.2023 BricsCAD BIM V24
|
erstellt am: 06. Nov. 2025 14:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo! - Nach längerer erfolgreicher Arbeit mit "NUKE" hab ich mich gefragt ob man den Befehl soweit anpassen könnte, dass nur bestimmte Objekte im Block spezielle Eigenschaften bekommen? Also z.B. - alle Linien in einer Farbe u. Schraffuren auf einen Layer oder eine Transparenz... Ist so etwas möglich? Gruß Daniel ------------------ Schöne Grüße, Daniel "Willst du etwas erledigt haben, geh selbst; wenn nicht, schicke andere." (Benjamin Franklin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
     

 Beiträge: 2000 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 06. Nov. 2025 14:30 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
Natürlich ist das Möglich. Du musst dann nur die Blocktabelle durchgehen und da den Elementen der jeweiligen Blockdefinitionen die Eigenschaften verpassen. Im Moment (mit dem Code) werden ja nur die Inserts behandelt ------------------ Gruß
CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mr.Zuk Mitglied technischer Planer

 Beiträge: 19 Registriert: 18.04.2023 BricsCAD BIM V24
|
erstellt am: 06. Nov. 2025 14:45 <-- editieren / zitieren --> Unities abgeben:         
Ich wollte eben nicht einzeln alle Blöcke durchgehen sondern so bequem wie mit der NUKE ein paar Eigenschaften anpassen. Oder ich hab die Antwort nicht verstanden... ------------------ Schöne Grüße, Daniel "Willst du etwas erledigt haben, geh selbst; wenn nicht, schicke andere." (Benjamin Franklin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22718 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 06. Nov. 2025 15:03 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
|

| |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22718 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 06. Nov. 2025 15:19 <-- editieren / zitieren --> Unities abgeben:          Nur für Mr.Zuk
Zitat: Original erstellt von Mr.Zuk: Ich wollte eben nicht einzeln alle Blöcke durchgehen sondern so bequem wie mit der NUKE ein paar Eigenschaften anpassen.
Was meinst du denn was Nuke macht, es geht alle entsprechenden Blöcke einzeln durch. Zitat: Original erstellt von Mr.Zuk: Oder ich hab die Antwort nicht verstanden...
Vermutlich, denn e s war ein Programmierhinweis. _ Ja, kann man NATÜRLICH. Aber man muss es halt können. AutoLISP Funktion COND
[Diese Nachricht wurde von cadffm am 06. Nov. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |