Thanks to all that replied, but I guess I was not explaining myself very well as none of the answers came close to what I was needing. And only Sea_Haven provided any code. After hours of searching through the forums (as hak_vz suggested) I still found nothing to help (that's why I posted the question). So I worked the problem myself and found the solution. I was trying to call the next dialog from the current and that couldn't work because the dialog was closing before completion of the lisp code. So, I realized I could do it through the main dialog that called the page 1 of the settings dialog, and when that page of settings closed the main dialog would take over to show page 2 of the settings.
Here's the test code that worked for me.
TEST_PAGES : dialog {
label = "Test Pages";
: boxed_column {
label = "Pages";
: button { key = "d:testpage"; label = "Settings"; width = 15; fixed_width = true; }
ok_cancel;
}
}
PAGE01 : dialog {
label = "Page 1";
: row {
: button { key = "d:page1"; label = "Page 1"; width = 15; fixed_width = true; }
: button { key = "d:page2"; label = "Page 2"; width = 15; fixed_width = true; }
: button { key = "d:page3"; label = "Page 3"; width = 15; fixed_width = true; }
}
: text_part { label = "Page 1"; }
ok_cancel;
}
PAGE02 : dialog {
label = "Page 2";
: row {
: button { key = "d:page1"; label = "Page 1"; width = 15; fixed_width = true; }
: button { key = "d:page2"; label = "Page 2"; width = 15; fixed_width = true; }
: button { key = "d:page3"; label = "Page 3"; width = 15; fixed_width = true; }
}
: text_part { label = "Page 2"; }
ok_cancel;
}
PAGE03 : dialog {
label = "Page 3";
: row {
: button { key = "d:page1"; label = "Page 1"; width = 15; fixed_width = true; }
: button { key = "d:page2"; label = "Page 2"; width = 15; fixed_width = true; }
: button { key = "d:page3"; label = "Page 3"; width = 15; fixed_width = true; }
}
: text_part { label = "Page 3"; }
ok_cancel;
}
(defun C:TESTPAGES (/)
(setq INT:DCLMAIN (load_dialog "TESTPAGES.dcl"))
(if (not (new_dialog "TEST_PAGES" INT:DCLMAIN)) (exit))
(action_tile "d:testpage" "(setq INT:PAGE 11)(LOAD_PAGE)")
(action_tile "accept" "(done_dialog)")
(start_dialog)
(unload_dialog INT:DCLMAIN)
)
;;Choose page to load
(defun LOAD_PAGE (/)
(while (> INT:PAGE 1)
(cond ((= INT:PAGE 11)
(setq INT:DCL_11 (load_dialog "TESTPAGES.dcl"))
(if (not (new_dialog "PAGE01" INT:DCL_11)) (exit))
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "d:page1" "(done_dialog 11)")
(action_tile "d:page2" "(done_dialog 12)")
(action_tile "d:page3" "(done_dialog 13)")
(setq INT:PAGE (start_dialog))
(unload_dialog INT:DCL_11)
)
((= INT:PAGE 12)
(setq INT:DCL_12 (load_dialog "TESTPAGES.dcl"))
(if (not (new_dialog "PAGE02" INT:DCL_12)) (exit))
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "d:page1" "(done_dialog 11)")
(action_tile "d:page2" "(done_dialog 12)")
(action_tile "d:page3" "(done_dialog 13)")
(setq INT:PAGE (start_dialog))
(unload_dialog INT:DCL_12)
)
((= INT:PAGE 13)
(setq INT:DCL_13 (load_dialog "TESTPAGES.dcl"))
(if (not (new_dialog "PAGE03" INT:DCL_13)) (exit))
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "d:page1" "(done_dialog 11)")
(action_tile "d:page2" "(done_dialog 12)")
(action_tile "d:page3" "(done_dialog 13)")
(setq INT:PAGE (start_dialog))
(unload_dialog INT:DCL_13)
)
)
)
)
Civil 3D 2022,
Windows 10 Pro, x64, Nvidia Quadro P1000
Intel Core i9-11900k; 3.50GHz, 32 GB RAM, 500GB WD BLACK M.2