(defun c:GETCAM ( / ALLCAMS CNT CAMLIST CAM CAMNAME CAMSEL)
(setq ALLCAMS (ssget "x" (list '(0 . "CAMERA")))) ;selecteer alle camera's in de tekening
(if ALLCAMS ;als er camera's gevonden zijn ga dan door
(progn ;er komt een serie opdrachten
(setq CNT 0 ;maak een teller aan
CAMLIST '()) ;maak een lege lijst aan
(while (< CNT (sslength ALLCAMS)) ;zolang de teller kleiner is dan het aantal geselecteerde camera's ga dan door
(setq CAM (ssname ALLCAMS CNT)) ;selecteer de camera uit de lijst op basis van de teller
(setq CAMNAME (vlax-get-property (vlax-ename->vla-object CAM) 'name)) ;pak de naam van de geselecteerde camera
(setq CAMLIST (append CAMLIST (list CAMNAME))) ;voeg de naam toe aan de lijst
(setq CNT (1+ CNT)) ;hoog de teller op met 1 waarna WHILE opnieuw begint
);_while
(setq CAMSEL (LM:listbox "Kies een camera" CAMLIST 2)) ;start een selectiebox
(if CAMSEL ;is er een selectie gemaakt?
(command "pselect" (ssname ALLCAMS (car CAMSEL)) "") ;zo ja: selecteer de camera in de tekening
);_if
);_progn
(prompt "\nGeen camera's in de tekening gevonden.") ;indien in het begin geen camera's zijn gevonden geef dan een melding
);_if
(print)
);_defun
;; Listbox funtie Lee-mac
;; https://www.lee-mac.com/listbox.html
(defun LM:listbox ( msg lst bit / dch des tmp rtn )
(cond
( (not
(and
(setq tmp (vl-filename-mktemp nil nil ".dcl"))
(setq des (open tmp "w"))
(write-line
(strcat "listbox:dialog{label=\"" msg "\";spacer;:list_box{key=\"list\";multiple_select="
(if (= 1 (logand 1 bit)) "true" "false") ";width=50;height=15;}spacer;ok_cancel;}"
)
des
)
(not (close des))
(< 0 (setq dch (load_dialog tmp)))
(new_dialog "listbox" dch)
)
)
(prompt "\nError Loading List Box Dialog.")
)
( t
(start_list "list")
(foreach itm lst (add_list itm))
(end_list)
(setq rtn (set_tile "list" "0"))
(action_tile "list" "(setq rtn $value)")
(setq rtn
(if (= 1 (start_dialog))
(if (= 2 (logand 2 bit))
(read (strcat "(" rtn ")"))
(mapcar '(lambda ( x ) (nth x lst)) (read (strcat "(" rtn ")")))
)
)
)
)
)
(if (< 0 dch)
(unload_dialog dch)
)
(if (and tmp (setq tmp (findfile tmp)))
(vl-file-delete tmp)
)
rtn
)