PDA

View Full Version : Question On Dcl



Lt Dan's legs
30th Jun 2010, 01:21 pm
Does anyone have a simple example of a dcl lisp they are willing to post?

MSasu
30th Jun 2010, 01:27 pm
May take a look on the tutorial (http://www.afralisp.net/dialog-control-language/) for examples.

Regards,

Lt Dan's legs
30th Jun 2010, 07:20 pm
I'm asking for help with this. This works but the problem is the insert button does nothing. I'd like to get a insert and cancel button going but everytime I try acad locks up. how do I get the buttons to work?

this is getting really frustrating!


Panel : dialog { //dialog name
label = "Insert Panels"; //dialog label
:boxed_radio_column { //define radio column
label = "Panel" ; //give it a label

: radio_button { //define radion button
key = "p1" ; //give it a name
label = "1" ; //give it a label
value = "1" ;

} //end definition

: radio_button { //define radio button
key = "p2" ; //give it a name
label = "2" ;
//give it a label
} //end definition

: radio_button { //define radio button
key = "p3" ; //give it a name
label = "3" ;
//give it a label
} //end definition

: radio_button { //define radio button
key = "p4" ; //give it a name
label = "4" ;
//give it a label
}
}
: button
{
key = "accept";
label = "INSERT";
is_default = true;
fixed_width = true;
alignment = centered;
}

: row { //define row

: image { //define image tile
key = "im" ; //give it a name
height = 1.0 ; //and a height
width = 3.0 ; //and now a width
} //end image

: paragraph { //define paragraph
: text_part { //define text
label = "Created by Reid Booe"; //give it some text
}

} //end paragraph

} //end row

} //end dialog


(defun C:test ( )
(setq dcl_id (load_dialog "Panel.dcl"))
(if (not (new_dialog "Panel" dcl_id))
(exit)
);if

(setq w (dimx_tile "im") ;get image tile width
h (dimy_tile "im") ;get image tile height

);setq

(start_image "im") ;start the image
(fill_image 0 0 w h 5) ;fill it with blue
(end_image) ;end image

(action_tile "p1" "(setq panel \"1\")") ;store hole type
(action_tile "p2" "(setq panel \"2\")") ;store hole type
(action_tile "p3" "(setq panel \"3\")") ;store hole type
(action_tile "p4" "(setq panel \"4\")") ;store hole type
(action_tile "accept"
"(done_dialog)"
);action_tile

(start_dialog)
(unload_dialog dcl_id)
(command "_insert" panel pause "" "" pause)
(princ)

MSasu
30th Jun 2010, 07:28 pm
You need to test the method used to exit the dialog - may use the DIASTAT system variable for this; I made some changes to your code:


(defun C:test ( )
(setq dcl_id (load_dialog "Panel.dcl"))
(if (not (new_dialog "Panel" dcl_id))
(exit)
);if

(setq w (dimx_tile "im") ;get image tile width
h (dimy_tile "im") ;get image tile height

);setq

(start_image "im") ;start the image
(fill_image 0 0 w h 5) ;fill it with blue
(end_image) ;end image

(action_tile "p1" "(setq panel \"1\")") ;store hole type
(action_tile "p2" "(setq panel \"2\")") ;store hole type
(action_tile "p3" "(setq panel \"3\")") ;store hole type
(action_tile "p4" "(setq panel \"4\")") ;store hole type
(action_tile "accept" "(done_dialog 1)");action_tile
(action_tile "cancel" "(done_dialog 0)");action_tile

(start_dialog)
(unload_dialog dcl_id)
(if (= (getvar "DIASTAT") 1)
(command "_insert" panel pause "" "" pause)
)
(princ)
)Regards,

Lt Dan's legs
30th Jun 2010, 07:46 pm
Thank you soo much! I was pulling my hair out over here.

MSasu
30th Jun 2010, 07:49 pm
You're welcome!

Another way is to test the value returned by START_DIALOG statement (1 for OK and 0 for Cancel).

Regards,

Lt Dan's legs
1st Jul 2010, 03:25 pm
question. on new drawings I get this: ; error: Automation Error. Filer error

But when I try it again and It works. What's wrong with the code?

Not the same code as above but I do have the code you given me inside

Lt Dan's legs
2nd Jul 2010, 03:42 pm
I figured it out. Nevermind