CADsite forum

AutoCAD => Autolisp => Topic gestart door: Marcel op do 25 08 2005, 18:01:52

Titel: Wel/Niet greyed out.
Bericht door: Marcel op do 25 08 2005, 18:01:52
Mischien kan iemand mij vertellen hoe ik dit moet aanpakken.?

Ik heb in mijn DCL een toggle knop en vier popup lijsten.Ik wil graag dat deze vier popup listen bij het niet aangevinkt zijn van de toggle  greyed-out zijn, en pas werken als de toggle wel is aangevinkt.Zonder dat de betreffen dialog box van het scherm verdwijnd.

Hoe doe ik dat.

Alvast bedankt voor de suggesties.
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op do 25 08 2005, 19:02:20
Dag Marcel,

Allereerst sorry voor laat antwoord.
Ik heb morgen mijn eerste herexamen.  :twisted:

Citeer(set_tile "Keytoggle" naam)
 (if (= "0" naam)
   (progn
     (mode_tile "keypop" 1)
     (mode_tile "keypop" 1)
     (mode_tile "keypop" 1)
     (mode_tile "keypop" 1)
   )
   (progn
     (mode_tile "keypop" 0)
     (mode_tile "keypop" 0)
     (mode_tile "keypop" 0)
     (mode_tile "keypop" 0)
   )
 )
naam is willekeurig te kiezen
Keytoggle is de key van de toggle knop die ge gebruikt in uw dcl
keypop zijn de keys van de popups die ge gebruikt in uw dcl

Hopend u te hebben geholpen :!:

MVG

Kenny
Titel: Wel/Niet greyed out.
Bericht door: WebRacer op do 25 08 2005, 19:09:27
(https://cadsite.be/smf/proxy.php?request=http%3A%2F%2Fimg14.imageshack.us%2Fimg14%2F3664%2F10oe.png&hash=f3207564ebe0eefc3c84ce8203a32f93bb8338bc) (http://imageshack.us)  (https://cadsite.be/smf/proxy.php?request=http%3A%2F%2Fimg14.imageshack.us%2Fimg14%2F984%2F26bc.png&hash=7fef14b2d9525546ba0dfcce4ed91464f9ce3e21) (http://imageshack.us)

    Voorbeeld in DCL-->

       :boxed_row {label= "Prefix";
           : toggle {alignment=left;
              fixed_width = true;
              key="prefix1";}
         : edit_box {alignment=left;
                edit_width=10;
                is_enabled=false;
                key="prefix";}
          }

    Voorbeeld in lisp dan -->

       (action_tile "prefix1" "(mode_tile \"prefix\" (- 1 (atoi $value)))")
       (action_tile "prefix" "(SETQ prefix (GET_TILE \"prefix\"))")

Het is dus de is_enabled=false/true die het doet, en de (mode_tile \"prefix\" (- 1 (atoi $value))) aan de toggle die het grijs/wit zet!!
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op do 25 08 2005, 19:10:46
Nog een beetje info over de mode_tile

Citeer(mode_tile key mode)

Arguments

key

A string that specifies the tile. The key argument is case-sensitive.

mode

An integer that can be one of the following:

0 Enable tile

1 Disable tile

2 Set focus to tile

3 Select edit box contents

4 Flip image highlighting on or off
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op do 25 08 2005, 19:13:03
Zoals ge hebt gemerkt zijn er meerdere oplossingen.

Nu kunt ge kiezen.
Titel: Wel/Niet greyed out.
Bericht door: Marcel op vr 26 08 2005, 10:40:06
Citaat van: Kenny HZoals ge hebt gemerkt zijn er meerdere oplossingen.

Nu kunt ge kiezen.
Dat heb ik gedaan maar kom er niet uit.
Hier is een stuk uit mijn code.
Het is dus de bedoeling dat pas na aanvinken stempel de vier popuplisten(architect,projectleider,tekenaar en fase te verwerken zijn en bij niet aangevinkt zijn grayed-out zijn.



;                Definieer akties
 (set_tile   "error"
         "            Default     Schaal 1:20     Formaat A0"
 )

 (if (= toggletest 2)
   (progn
     (mode_tile "n_schaal" 0)
     (mode_tile "n_lagen" 0)
     (mode_tile "ja" 1)
     (mode_tile "list_formaat" 1)
     (mode_tile "stempel" 1)
   )
)

 (if (= toggletest 1)
   (progn
     (mode_tile "n_schaal" 1)
     (mode_tile "n_lagen" 1)
     (mode_tile "ja" 0)
     (mode_tile "list_formaat" 0)
     (mode_tile "stempel" 0)
   )
)


 (if (= 3duser 1)
   (mode_tile "3dopzet" 0)
 )

 (if (= 3duser nil)
   (mode_tile "3dopzet" 1)
 )

;(done_dialog 1)

 (action_tile "Ge_lagen" "(progn (setq Milagen nil)(setq Stlagen nil)(setq Allagen nil))"
 )
 (action_tile "Mi_lagen" "(progn (setq Milagen 1)(setq Stlagen nil)(setq Allagen nil))"
 )
 (action_tile "St_lagen" "(progn (setq Milagen 1)(setq Stlagen 1)(setq Allagen nil))"
 )
 (action_tile "Al_lagen" "(progn (setq Milagen 1)(setq Stlagen 1)(setq Allagen 1))"
 )
 (action_tile "3dopzet" "(setq opzet3D 1)(dried)")
 (action_tile
   "list_schaal"
   "(setq schaalecht (nth (atoi $value) displistschaal))(schaalid)"
 )
 (action_tile
   "list_formaat"
   "(setq formaatecht (nth (atoi $value) listformaat))"
 )

 (action_tile "stempel" "(do_stempel)")
 (action_tile "list_architect"   "(setq architect (nth (atoi $value) displistarchitect))"  )
 (action_tile "list_projectleider" "(setq projectleider (nth (atoi $value) displistprojectleider))"  )  
 (action_tile "list_tekenaar" "(setq tekenaar (nth (atoi $value) displisttekenaar))"  )
 (action_tile "list_fase" "(setq fase (nth (atoi $value) displistfase))" )


 (action_tile "n_lagen" "(setq Lx 1)")
 (action_tile "ja" "(do_kader)")
 (action_tile "accept" "(done_dialog 1)")
 (action_tile "path" "(paden)")
 (action_tile "opzetinfo" "(info_dialog)")
 (set_tile "route" route1)
 (set_tile "St_lagen" "1")
 (set_tile "dwgnaam" dwgnaam)
 (set_tile "list_schaal" schnr)
 (if (= lx 1)
   (set_tile "list_formaat" "7")
 )

 (princ layland)

 (setq what_next (start_dialog))
 (cond ((= 1 what_next) (do_opzet)))

 (action_tile "exit" "(exit)")
 (start_dialog)
 (unload_dialog dcl_id)
 (princ)
)

Reacties wederom welkom.

Marcel
Titel: Wel/Niet greyed out.
Bericht door: WebRacer op vr 26 08 2005, 12:27:39
(action_tile "stempel" "(mode_tile \"list_architect\" (- 1 (atoi $value)))
                       (mode_tile \"list_projectleider\" (- 1 (atoi $value)))
                       (mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
                       (mode_tile \"list_fase\" (- 1 (atoi $value)))")

dit zou moeten lukken...
als je in je dcl ook dit hebt >
: popup_list {alignment=left;
        edit_width=36;
        fixed_height=true;
        fixed_width=true;
                    is_enabled=false;
        key="list_architect";
        label="Lijst Architecten";}
Titel: Wel/Niet greyed out.
Bericht door: Marcel op vr 26 08 2005, 13:52:53
Webracer  het switchen werkt maar waar zet ik nu ("do_stempel")
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op vr 26 08 2005, 13:56:30
Beste marcel,

Wil jij ook eens uw dcl plaatsen?
Indien uw lsp persoonlijk is, pm ze dan. :wink:

Al 1 probleem gevonden  :!:
Gij ontbreekt hier nog een set-tile voor die toggletest !

(if (= toggletest 2)
(progn
(mode_tile "n_schaal" 0)
(mode_tile "n_lagen" 0)
(mode_tile "ja" 1)
(mode_tile "list_formaat" 1)
(mode_tile "stempel" 1)
)
)
Titel: Wel/Niet greyed out.
Bericht door: Marcel op vr 26 08 2005, 14:09:13
Kenny/Webracer
Dit stond er.

(action_tile "stempel" "(do_stempel)")
(action_tile "list_architect" "(setq architect (nth (atoi $value) displistarchitect))" )
(action_tile "list_projectleider" "(setq projectleider (nth (atoi $value) displistprojectleider))" )
(action_tile "list_tekenaar" "(setq tekenaar (nth (atoi $value) displisttekenaar))" )
(action_tile "list_fase" "(setq fase (nth (atoi $value) displistfase))" )

Dit is heb ik er van gemaakt.
(action_tile "stempel" "(mode_tile \"list_architect\" (- 1 (atoi $value)))
(mode_tile \"list_projectleider\" (- 1 (atoi $value)))
(mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
(mode_tile \"list_fase\" (- 1 (atoi $value)))")

Het commando do_stempel wat er stond staat niet in het nieuwe stukje code.Dit word dus niet uitgevoerd,waar moet ik dat plaatsen.?
Verder werkt alles goed zoals het hoort.




Dit is de code voor do_stempel.


(defun do_stempel ()
 (if (= (get_tile "stempel") "1")
   (setq stempel "J")
 )
 (if (/= (get_tile "stempel") "1")
   (setq stempel "N")
 )
)
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op vr 26 08 2005, 14:17:48
Als je op op de knop stempel drukt dan moet die do_stempel starten?

(action_tile "stempel" "(mode_tile \"list_architect\" (- 1 (atoi $value)) "(do_stempel)")
(mode_tile \"list_projectleider\" (- 1 (atoi $value)))
(mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
(mode_tile \"list_fase\" (- 1 (atoi $value)))")

Lukt het nu?
Titel: Wel/Niet greyed out.
Bericht door: Marcel op vr 26 08 2005, 14:41:01
Neen dit had ik ook bedacht,en dan verdwijnt de dialog box net zo snel als dat het op het scherm komt.Met de melding
; error: too many arguments
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op vr 26 08 2005, 14:44:36
En met die?

(action_tile "stempel" (do_stempel))

Ging het daarmee tervoren?
Titel: Wel/Niet greyed out.
Bericht door: Marcel op vr 26 08 2005, 14:45:54
Daar kan ik kort in zijn Ja.
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op vr 26 08 2005, 14:46:59
En als je dit nu terug plaatst?
Lukt het dan nog?
Titel: Wel/Niet greyed out.
Bericht door: Marcel op vr 26 08 2005, 14:50:52
Nu staat er dit.

(action_tile "stempel" "(do_stempel)")  
(action_tile "stempel" "(mode_tile \"list_architect\" (- 1 (atoi $value)))
(mode_tile \"list_projectleider\" (- 1 (atoi $value)))
(mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
(mode_tile \"list_fase\" (- 1 (atoi $value)))")

Dialog verdwijnt niet ,maar voert het do_stempel ook niet uit.
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op vr 26 08 2005, 14:53:00
Dat had ik al gedacht.  :D

Best een extra knopje aanmaken daarom. :wink:
Titel: Wel/Niet greyed out.
Bericht door: Marcel op vr 26 08 2005, 14:55:13
En hoe pakken we dat dan aan.?
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op vr 26 08 2005, 14:57:11
kan ik eventueel uw programma krijgen?
dcl, lsp
Dan kan ik ook uit proberen.
Gaat sneller gaan dan telkens hier te posten of het gaat of niet.  :wink:
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op vr 26 08 2005, 14:58:14
Welke versie gebruik je? 2005 of 2006?
Titel: Wel/Niet greyed out.
Bericht door: Kenny H op vr 26 08 2005, 15:30:57
Wat moet stempel juist doen?

 (action_tile
   "stempel"
   "(mode_tile \"list_architect\" (- 1 (atoi $value)))
(mode_tile \"list_projectleider\" (- 1 (atoi $value)))
(mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
(mode_tile \"list_fase\" (- 1 (atoi $value)))"
 )
 (do_stempel)

Of

(action_tile
   "stempel"
   " (do_stempel) (mode_tile \"list_architect\" (- 1 (atoi $value)))
(mode_tile \"list_projectleider\" (- 1 (atoi $value)))
(mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
(mode_tile \"list_fase\" (- 1 (atoi $value)))"
 )



do_stempel gaat nu  :wink:
geen " " gebruiken voor een appart programma te laden.
Was mij niet meteen opgevallen.  :oops:
Titel: Wel/Niet greyed out.
Bericht door: WebRacer op vr 26 08 2005, 15:46:22
dit is het enige wat je moet aanpassen:

(action_tile
   "stempel"
   "(do_stempel)(mode_tile \"list_architect\" (- 1 (atoi $value)))
                (mode_tile \"list_projectleider\" (- 1 (atoi $value)))
                (mode_tile \"list_tekenaar\" (- 1 (atoi $value)))
                (mode_tile \"list_fase\" (- 1 (atoi $value)))")
Titel: Wel/Niet greyed out.
Bericht door: Marcel op vr 26 08 2005, 16:33:01
Webrace en Kenny

Ik heb nu geen beschikking over een PC met AutoCAD2006.
A.s. maandag zal ik het proberen en rapport uitbrengen.
Alvast bedankt voor de tijd die jullie er ingestoken hebben en wat is een forum zoals deze toch handig.

groeten Marcel
Titel: Wel/Niet greyed out.
Bericht door: Marcel op ma 29 08 2005, 07:38:44
Heren ik wil jullie bedanken,het werkt en wat een geweldig forum.

Groeten Marcel