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.
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
(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!!
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
Zoals ge hebt gemerkt zijn er meerdere oplossingen.
Nu kunt ge kiezen.
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
(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";}
Webracer het switchen werkt maar waar zet ik nu ("do_stempel")
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)
)
)
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")
)
)
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?
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
En met die?
(action_tile "stempel" (do_stempel))
Ging het daarmee tervoren?
Daar kan ik kort in zijn Ja.
En als je dit nu terug plaatst?
Lukt het dan nog?
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.
Dat had ik al gedacht. :D
Best een extra knopje aanmaken daarom. :wink:
En hoe pakken we dat dan aan.?
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:
Welke versie gebruik je? 2005 of 2006?
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:
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)))")
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
Heren ik wil jullie bedanken,het werkt en wat een geweldig forum.
Groeten Marcel