Message 1 of 2
Dynamic DCL
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Looking for help on the coding for this. I'm trying to create a DCL that will display frozen, thawed and layer buttons from the drawing. The layers will change, and the setup of the buttons will need to be dynamic. Heres what I'm going for and the function to write the dcl that I have so far.
(setq layer-list00 '((layer1,1)(layer2,1)(layer3,0)(layer4,1)))
(defun write-layer-dcl (/ layer-info layer-name frozen-status frozen-label thawed-label)
(if (= layer-list00 nil)
(princ "\nNo active layers found.")
(progn
(setq fname01 (vl-filename-mktemp "mylayerdialog.dcl"))
(if (and fname01 (setq fn01 (open fname01 "w")))
(progn
(write-line
"LAYERS_dcl1 : dialog {"
" label = \"LAYERS\";"
" : row {"
" children_alignment = top;"
" children_fixed_height = true;"
" : boxed_column {"
" label = \"FROZEN\";" fn01)
(foreach layer-info layer-list00
(setq layer-name (car layer-info))
(setq frozen-status (cadr layer-info))
(if (= frozen-status 1)
(setq frozen-label "X")
(setq frozen-label "")
)
(write-line
(strcat " : button {"
" label = \"" frozen-label "\";"
" key = \"FRZ1_" layer-name "\";"
" }" fn01)
)
)
(write-line
" }"
" : boxed_column {"
" label = \"THAW\";" fn01)
(foreach layer-info layer-list00
(setq layer-name (car layer-info))
(setq frozen-status (cadr layer-info))
(if (= frozen-status 1)
(setq thawed-label "")
(setq thawed-label "X")
)
(write-line
(strcat " : button {"
" label = \"" thawed-label "\";"
" key = \"THW1_" layer-name "\";"
" }" fn01)
)
)
(write-line
" }"
" : boxed_column {"
" label = \"LAYERS IN USE [SELECT TO ISOLATE] \";"
" children_fixed_height = true;" fn01)
(foreach layer-info layer-list00
(setq layer-name (car layer-info))
(write-line
(strcat " : button {"
" label = \"" layer-name "\";"
" key = \"LayoutHeader_" layer-name "\";"
" }" fn01)
)
)
(write-line
" }"
" }"
" ok_only;"
"}" fn01)
(if fn01 (close fn01))
)
)
)
)
)