| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für BricsCAD |
| |
| Chrome-Browser-Plugin für CADSOMA, eine Pressemitteilung
|
Autor
|
Thema: Benötige einfache Lisp Anwendung (1726 / mal gelesen)
|
mheinz Mitglied
Beiträge: 5 Registriert: 29.07.2020 Software: BricsCad Pro 20 (mit BBSoft Tiefbau)
|
erstellt am: 29. Jul. 2020 10:41 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe mich mit Lisp bisher nur als reiner Anwender beschäftigt und nur fertige Lisp Anwendungen verwendet. Jetzt würde ich selber eine Lösung benötigen, die Problemstellung ist im Grunde einfach, ich dachte ich könnte das über ein Script lösen, aber SAUSWAHL klappt da leider nicht soweit ich sehe? Ich habe aktuell leider nicht die Zeit mich in LISP einzuarbeiten, wobei mich das schon sehr interessieren würde. Was ich lösen müsste: - Auswahl von allen Elementen der Zeichnung mit dem Layer $Schnitt_KM_Haltung sowie der Farbe RGB 255,200,200 - ändern der Farbe dieser ausgewählten Elemente nach Farbe 10 Das war es auch schon mit der ganzen Problemstellung, mehr wäre nicht zu machen. Vielleicht kann mir jemand von den Profis den Lisp Befehl erstellen, das wäre echt klasse!!! Viele Grüße, Matthias ------------------ Software: BricsCad Pro (mit BBSoft Tiefbau) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BricsCADSupport Moderator CAD Software
Beiträge: 151 Registriert: 31.05.2017 BricsCAD V21.1.05 Deutsch
|
erstellt am: 29. Jul. 2020 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für mheinz
|
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 29. Jul. 2020 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für mheinz
@ Reza Hallo Nachbar, wie der TO anfangs bereits erwähnte: Dieser Weg ist nicht Script-fähig (was wohl zugleich bedeutet das eine Scriptfähige Lösung gesucht ist)
@mheinz Für die Änderung der Eigenschaften kannst du gazu normal den Befehl EIGÄNDR oder ÄNDERN nutzen, für die Objektwahl gibt es aber in der Tat keinen Befehl mit dem diese zu bewerkstelligen wäre.
Läuft im Original, ungetestet mit BricsCAD Code: (sssetfirst ; Nur als Testhilfe um gleich zu sehen was gewählt wurde (ssget "_X" (list '(8 . "$Schnitt_KM_Haltung"); Layer '(420 . 16763080) ; 255,200,200 (cons 410 (getvar 'CTAB)) ; Da die Objekte mit AutoCAD-Befehlen bearbeitet werden und diese ohnehin nur Objekte im aktuellen Bereich berücksichtigen '(430 . "") ; Objekte mit Farbbuch-Farbe ignorieren ) ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 29. Jul. 2020 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für mheinz
|
mheinz Mitglied
Beiträge: 5 Registriert: 29.07.2020 Software: BricsCad Pro 20 (mit BBSoft Tiefbau)
|
erstellt am: 29. Jul. 2020 14:06 <-- editieren / zitieren --> Unities abgeben:
Hallo, schon mal vielen Dank für die Antworten. Der manuelle Weg ist kein Problem, das ist an sich auch schnell erledigt mit der Schnellauswahl. Ich hätte es aber halt gerne per Knopfdruck, weil ich diesen Vorgang öfter brauche. Meine Kanallängsschnitte werden aus einer Datenbank generiert. Sobald ich etwas ändere, z.B. im Lageplan, wird der Schnitt aktualisiert und somit auch die Farbe. Im Lageplan bestehen die Leitungen aus 3 Linien, die mittlere Linie ist mehr oder weniger nur eine Füllung. Je nach Kanalsystem werden unterschiedliche Farben und Linien gezeichnet, das klappt alles wunderbar. Bei der Erstellung des Schnittes wird aber die Farbe der mittleren Fülllinie aus dem Lageplan verwendet, diese hat diesen Pastellton den ich in rot benötigen würde. Das öfter aktualisiert wird, hätte ich das gerne soweit wie möglich automatisiert @cadffm: Mit dem Code komme ich leider nicht weiter, es wird mir eine Meldung wie folgt angezeigt? <Selection set: 00000000772A02E0> Ansonsten passiert nichts? Soweit ich das verstehe sollten diese Objekte ausgewählt werden mit dem Befehl? Viele Grüße, Matthias ------------------ Software: BricsCad Pro Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 29. Jul. 2020 14:25 <-- editieren / zitieren --> Unities abgeben: Nur für mheinz
Schreibe hinter das sssetfirst noch ein nil (Mind. ein Leerzeichen Abstand) Details zu SSGET und SSSETFIRST - siehe F1 EDIT: Oder du lässt die Zeile mit SSSETFIRST weg, ebenso die letzte Klammer, der SSGET Ausdruck funktioniert dann auch (dieser erstellt einen Auswahlsatz um den es dir geht). In einem Makro oder Script kannst du dann in deiner darauffolgenden Anwendung von ÄNDERN oder EIGÄNDR auf den vorherigen Auswahlsatz zugreifen um die Objekte zu wählen. Also einfach mit V oder VORHER (siehe die ganz normalen Objektwahlmethoden wie sie beim Befehl WAHL erklärt sind [F1] [Diese Nachricht wurde von cadffm am 29. Jul. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 29. Jul. 2020 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für mheinz
cadffm hat dir einen Ausdruck zur generierung eines Auswahlsatzes vorgeschlagen. Jetzt müsstest du nur noch diesen Auswahlsatz bearbeiten. das würde z.b. so gehen: Code: (if(setq aws (ssget "_X" (list '(8 . "$Schnitt_KM_Haltung"); Layer '(420 . 16763080) ; 255,200,200 (cons 410 (getvar 'CTAB)) ; Da die Objekte mit AutoCAD-Befehlen bearbeitet werden und diese ohnehin nur Objekte im aktuellen Bereich berücksichtigen '(430 . "") ; Objekte mit Farbbuch-Farbe ignorieren ) ) ) (command"_change" aws "" "_p""_c" 10 "") )
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mheinz Mitglied
Beiträge: 5 Registriert: 29.07.2020 Software: BricsCad Pro 20 (mit BBSoft Tiefbau)
|
erstellt am: 29. Jul. 2020 14:44 <-- editieren / zitieren --> Unities abgeben:
Hallo, herzlichen Dank schon mal, das sieht schon mal vielversprechend aus, das mit der Auswahl geht jetzt soweit! @cadffm TOP! @cadwiesel, vielen Dank, ich werde mir das gleich mal ansehen! Auch hierfür ein großes Danke !! Ich sehe schon, ich muss mich da mal ein wenig einarbeiten, die Möglichkeiten sind einfach immens! EDIT: Ich habs jetzt angepasst und 2 weitere Layer hinzugefügt, KM ist Kanal-Mischwasser, Schmutz und Regenwasser werden jetzt auch geändert, mit Button im Werkzeugkasten ist das jetzt eine tolle Erleichterung! Vielen Dank nochmal an euch !!! Viele Grüße, Matthias ------------------ Software: BricsCad Pro [Diese Nachricht wurde von mheinz am 29. Jul. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mheinz Mitglied
Beiträge: 5 Registriert: 29.07.2020 Software: BricsCad Pro 20 (mit BBSoft Tiefbau)
|
erstellt am: 29. Jul. 2020 17:15 <-- editieren / zitieren --> Unities abgeben:
Kurze Frage noch, wie bekomme ich denn am einfachsten von den RGB Farben die Truecolor Werte? Falls sich da mal was an den Farben ändert könnte ich das selber anpassen, oder falls noch ein Layer hinzukommt? Besten Dank vorab? PS: Ich hab schon mal gesucht, aber ist gar nicht so einfach mit den Farben ------------------ Software: BricsCad Pro Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 29. Jul. 2020 17:46 <-- editieren / zitieren --> Unities abgeben: Nur für mheinz
Da du es ja mit dem Programmieren NOCH nicht so hast, wird die einfachste Sache sein einem Objekt die gewünschte TC-Farbe zu geben und dann nachsehen welcher Wert dafür gespeichert wird im Objekt. (entget (car(entsel)) '("*")) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2799 Registriert: 02.05.2006 BricsCAD V11 - V24 Pro Visual Basic
|
erstellt am: 30. Jul. 2020 13:59 <-- editieren / zitieren --> Unities abgeben: Nur für mheinz
|
mheinz Mitglied
Beiträge: 5 Registriert: 29.07.2020 Software: BricsCad Pro 20 (mit BBSoft Tiefbau)
|
erstellt am: 30. Jul. 2020 15:19 <-- editieren / zitieren --> Unities abgeben:
@Klak: Vielen Dank Ich hätte dann noch eine kleine Frage, ist es möglich Truecolor Werte setzen zu lassen? Hier hab ich ja leider nur die ACI Farben. (command"_change" aws "" "_p""_c" 10 "") Viele Grüße, Matthias ------------------ Software: BricsCad Pro Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 30. Jul. 2020 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für mheinz
Zitat: Original erstellt von mheinz: Hier hab ich ja leider nur die ACI Farben.
Abgesehen von der Änderung der Objekte über ein API kannst du auch mit den von mir genannten Befehlen die Farbe auch auf TrueColor ändern. einfach mal testen, dort steht "Neue Farbe" und dann gibst du diese einfach an:
255,200,500 255,200,200 Und weil ich es gerade sehe: Du übergibst den Farbwert 10 als Zahl, 255,200,200 ist natürlich keine Zahl und muß daher als string übergeben werden "255,200,200" [Diese Nachricht wurde von cadffm am 30. Jul. 2020 editiert.] [Diese Nachricht wurde von cadffm am 30. Jul. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |