IntelliCAD 9.1/9.2 DCL quesion

#1
I am migrating some Acad routines to ICAD and have an issue with a couple of my DCL boxes. They have worked fine in ACAD from R14 to 2016 and have last save date around 1999 but in ICAD they 'snap' to the top left corner as per my attached screen grabs. I thought all DCL launched centre screen by default. Any thoughts??
Attachments
icd dcl.jpg
icd dcl.jpg (111.54 KiB) Viewed 1535 times

Re: IntelliCAD 9.1/9.2 DCL quesion

#3
Sure, after selecting for example TABLE E FLANGE from the first DCL, the second one pops up but as per my screen grab, both are minimal and snapped to the top RH corner of my screen.
Flgsize.dcl
dcl_settings : default_dcl_settings { audit_level = 0; }
cancel : column {
: row {
fixed_width = true;
alignment = centered;
cancel_button;
}
}
FLGsize : dialog {
label = "AUST. STD PIPE FLANGES";
: column {
: boxed_column {
label = " Select Flange Type:";
: button {
height = 2;
label = "TABLE D FLANGE";
key = "PJSTABD";
}
: button {
height = 2;
label = "TABLE E FLANGE";
key = "PJSTABE";
}
: button {
height = 2;
label = "TABLE F FLANGE";
key = "PJSTABF";
}
: button {
height = 2;
label = "TABLE H FLANGE";
key = "PJSTABH";
}
: button {
height = 2;
label = "TABLE J FLANGE";
key = "PJSTABJ";
}
: button {
height = 2;
label = "TABLE R FLANGE";
key = "PJSTABR";
}
}
}
cancel;
: errtile {
width = 20;
}
}
****************************************************************
FLGsize.lsp
(defun C:FLGSIZE ( / id)
(setq id (load_dialog "FLGsize"))
(setq FLGsize_pt (if FLGsize_pt FLGsize_pt '(-1 -1)))
(new_dialog "FLGsize" id "" FLGsize_pt)
(action_tile "PJSTABD" "(setq FLGsize_pt (done_dialog) sect_type \"PJSTABD\")")
(action_tile "PJSTABE" "(setq FLGsize_pt (done_dialog) sect_type \"PJSTABE\")")
(action_tile "PJSTABF" "(setq FLGsize_pt (done_dialog) sect_type \"PJSTABF\")")
(action_tile "PJSTABH" "(setq FLGsize_pt (done_dialog) sect_type \"PJSTABH\")")
(action_tile "PJSTABJ" "(setq FLGsize_pt (done_dialog) sect_type \"PJSTABJ\")")
(action_tile "PJSTABR" "(setq FLGsize_pt (done_dialog) sect_type \"PJSTABR\")")
(action_tile "accept" "(progn (done_dialog)(setq sect_type nil))")
(action_tile "cancel" "(progn (done_dialog)(setq sect_type nil))")
(start_dialog)
(unload_dialog id)
(if (/= sect_type nil)
(progn
(load sect_type)
(eval (read (strcat "(" sect_type ")")))
)
)
(if (= sect_type nil)(Co_TCW))
(princ)
)

*****************************************************************
After selecting the 'Flange Type' a second lsp and dcl are called. The dcl is below. The lsp is long and has a bunch of Before and After settings so may not be worth posting. Also the functionality works fine in ICAD, just the DCL boxes are screwed up.

FLG_sect.dcl
dcl_settings : default_dcl_settings { audit_level = 0; }
FLG_sect : dialog {
label = "Steel Pipe Flanges";
: popup_list {
label = "Size";
key = "size";
edit_width = 28;
}
: boxed_row {
label = "Start Point";
: radio_button {
label = "Cen";
key = "cen";
}
}
: image {
key = "steel_image";
aspect_ratio = 1;
height = 7;
width = 6;
color = -2;
}
ok_cancel;
: errtile {
width = 15;
}
}

Re: IntelliCAD 9.1/9.2 DCL quesion

#4
Yes, I see the IntelliCAD don't use the default location (as AutoCAD), it set the location of the dialog at specifies coordinates, In your case, it's (-1 -1).

If you want to the dialog box appears at the center of the IntelliCAD window, please use:
(setq FLGsize_pt (if FLGsize_pt FLGsize_pt (list(/ (car(getvar "screensize"))2) (/ (cadr(getvar "screensize"))2))))
instead of
(setq FLGsize_pt (if FLGsize_pt FLGsize_pt '(-1 -1)))