Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  DCL - popup_list steuern

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:  DCL - popup_list steuern (645 / mal gelesen)
Maier2018
Mitglied
Schlaumaier


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

Beiträge: 25
Registriert: 15.01.2018

Autocad 2021

erstellt am: 02. Nov. 2021 15:25    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

Moin zusammen,

ich versuche mich gerade in DCL einzuarbeiten und bräuchte bei einem Problem hilfe.

Ich möchte, dass bei einem bestimmten Wert einer popup_list eine andere popup_list deaktiviert wird. Idealerweise sollte dieser wieder aktiviert werden, wenn man einen anderen Wert wählt.

Mein Ansatz:

Code:
  (action_tile "CB"
  "(if (= (get_tile \"CB\") \"ohne\")
(mode_tile \"BD\" 1)
(mode_tile \"BD\" 0))")

"CB" ist hierbei die popup_list die überwacht und "BD" die, die deaktivert/aktiviert werden soll.

-> Und noch eine allgemeine Frage zu DCL: Kann mir jemand eine gute Quelle empfehlen, wo die DCL-Programmierung gut erklärt ist?
Bisher lerne ich nur durch Forumsbeiträge oder Beispielprogramme von anderen. Die DCL-Codes schreibe ich mit Notepad++.

Danke!

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 02. Nov. 2021 21: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 Maier2018 10 Unities + Antwort hilfreich

ich fand die damals ganz gut
https://autolisp-exchange.com/Tutorials/MyDialogs.htm

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."
-Lots of irritating superfluous parentheses!-

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 03. Nov. 2021 08:09    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 Maier2018 10 Unities + Antwort hilfreich

Hallo Meier2018,
die Funktion GET_TILE gibt die Positionsangabe als STRING wieder, beginnend bei "0".

Um also Deinen Wert "ohne" zu erhalten musst Du an Deine ursprüngliche Liste ran, mit der Du die POPUP_LIST gefüllt hast:

(nth (atoi (get_tile "CB"))PopupListe)

es geht auch mit der Variablen $value, die ebenfalls die Positionsangabe als STRING beinhaltet:
(nth (atoi $value)PopupListe)

Und ich würde mir inzwischen immer eigene Funktion für die Action_Tile-Anweisung schreiben (das muss aber nicht so sein, kann aber)

Code:

(action_tile "CB" "(Dbox:Action:cb)")
...
(defun DBox:Action:cb ( / )
(if (= (nth (atoi $value)PopupListe) "ohne")
    (mode_tile "BD" 1)
    (mode_tile "BD" 0)
  )
)

Wenn Du eine eigene Funktion nimmst mußt Du auch nicht die viele BackSlashes für die Anführungstriche verwenden.

Ist alles nur schnell reigetippt und ungetestet, probier einfach mal.


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Bosse_tools-Überblick

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

Maier2018
Mitglied
Schlaumaier


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

Beiträge: 25
Registriert: 15.01.2018

Autocad 2021

erstellt am: 03. Nov. 2021 08: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 Jörn,

funktioniert wunderbar! Besten Dank auch für die Erklärung! 

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