
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello everyone,
I'm trying to run a lisp file. Link is what I want to draw.
https://i.hizliresim.com/7q4G25.jpg
When I run the program, dialog box is open. After OK it works like circle command is entered.
Command list:
Command: HCK
Select the starting pointcircle
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:
Specify radius of circle or [Diameter] <540.5986>: ; error: no function definition: /DCIR
Specify radius of circle or [Diameter] <540.5986>:
I hope someone can fix the code for me.
Help please.
Thank you
lsp file:
-------------------------------------------
( defun dia_circle (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq dcir (atoi deg))
(set_tile "dia_circleslider" deg)
) ))
( defun dia_circleslider (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq dcir (atoi deg))
(set_tile "dia_circle" deg)
) ))
(defun width_circle (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq wcir (atoi deg))
(set_tile "width_circleslider" deg)
) ))
(defun width_circleslider (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq wcir (atoi deg))
(set_tile "width_circle" deg)
) ))
( defun edge_sqr (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq sqr (atoi deg))
(set_tile "edge_sqrslider" deg)
) ))
( defun edge_sqrslider (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq sqr (atoi deg))
(set_tile "edge_sqr" deg)
) ))
( defun width_sqr (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq wsqr (atoi deg))
(set_tile "width_sqrslider" deg)
) ))
( defun width_sqrslider (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq wsqr (atoi deg))
(set_tile "width_sqr" deg)
) ))
( defun hole (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq ho (atoi deg))
(set_tile "holeslider" deg)
) ))
( defun holeslider (deg ned)
(if (or (= ned 2) (= ned 1) )
(progn
(setq ho (atoi deg))
(set_tile "hole" deg)
) ))
(defun c:hck (/ dcl_id)
(setq dcir 30 wcir 5 sqr 20 wsqr 4 ho 10 )
(setq dcl_id (load_dialog "hck.dcl"))
(if (not (new_dialog "hck" dcl_id)) (exit))
(set_tile "dia_circle" (rtos dcir 2 0) )
(set_tile "dia_circleslider" (rtos dcir 2 0) )
(set_tile "width_circle" (rtos wcir 2 0) )
(set_tile "width_circleslider" (rtos wcir 2 0) )
(set_tile "edge_sqr" (rtos sqr 2 0) )
(set_tile "edge_sqrslider" (rtos sqr 2 0) )
(set_tile "width_sqr" (rtos wsqr 2 0) )
(set_tile "width_sqrslider" (rtos wsqr 2 0) )
(set_tile "hole" (rtos ho 2 0) )
(set_tile "holeslider" (rtos ho 2 0) )
(action_tile "accept" "done_dialog")
(action_tile "dia_circle" "(dia_circle $value $reason)" )
(action_tile "dia_circleslider" "(dia_circleslider $value $reason)" )
(action_tile "width_circle" "(width_circle $value $reason)" )
(action_tile "width_circleslider" "(width_circleslider $value $reason)" )
(action_tile "edge_sqr" "(edge_sqr $value $reason)" )
(action_tile "edge_sqrslider" "(edge_sqrslider $value $reason)" )
(action_tile "width_sqr" "(width_sqr $value $reason)" )
(action_tile "width_sqrslider" "(width_sqrslider $value $reason)" )
(action_tile "hole" "(hole $value $reason)" )
(action_tile "holeslider" "(holeslider $value $reason)" )
(action_tile "cancel" "(exit)")
(start_dialog)
(unload_dialog dcl_id)
;draw disk
(setq pt1 (getpoint "\nSelect the starting point"))
(command "circle" pt1 (/dcir 2))
(setq e1 (entlast))
(command "extrude" e1 "" wcir "")
(setq a1 (entlast))
;draw layer
(setq pt2 (list (- (car pt1) (/sqr 2)) (- (cadr pt1) (/sqr 2)) (+ (caddr pt1) wcir)))
(setq pt3 (list (+ (car pt2) sqr) (cadr pt2) (caddr pt2)))
(setq pt4 (list (car pt3) (+ (cadr pt3) sqr) (caddr pt3)))
(setq pt5 (list (car pt2) (cadr pt4) (caddr pt4)))
(command "rectangle" pt2 pt4)
(setq e2 (entlast))
(command "extrude" e2 "" wsqr "")
(setq a2 (entlast))
(command "union" a2 a1 "")
(setq a3 (entlast))
;hole
(command "circle" pt1 (/ ho 2))
(setq e3 (entlast))
(command "extrude" e3 "" (+ wcir wsqr) "")
(setq a4 (entlast))
(command "subtract" a3 "" a4 "")
(setq a5 (entlast))
)
-------------------------------------------
dcl file:
------------------------------------------
hck : dialog {
label = "514161014";
width=40;
fixed_width=true;
:boxed_row{
fixed_width=true;
:column{
fixed_width=true;
width=20;
:text{ value="Diameter of Circle=";}
:text{ value="Depth of Circle=";}
:text{ value="Edge of Square=";}
:text{ value="Depth of Square=";}
:text{ value="Diameter of Hole=";}
}
: column {
Width=40;
fixed_width=true;
: row {
fixed_width=true;
:edit_box {
key = "dia_circle";
value = "30";
fixed_width=false;
edit_width=10;
}
:slider { key = "dia_circleslider";
value = 30;
max_value = 100;
min_value = 5;
big_increment=5;
small_increment=1;
layout =horizontal;
fixed_width=false;
width=30;
alignment=left;
}
}
: row {
fixed_width=true;
:edit_box {
key = "width_circle";
value = "5";
fixed_width=true;
edit_width=10;
}
:slider { key = "width_circleslider";
value = 5;
max_value = 25;
min_value = 1;
big_increment=3;
small_increment=1;
layout =horizontal;
width=30;
}
}
: row {
fixed_width=true;
:edit_box {
key = "edge_sqr";
value = "20";
fixed_width=true;
edit_width=10;
}
:slider { key = "edge_sqrslider";
value = 20;
max_value = 100;
min_value = 3;
big_increment=5;
small_increment=1;
layout =horizontal;
width=30;
}
}
: row {
fixed_width=true;
:edit_box {
key = "width_sqr";
value = "4";
fixed_width=true;
edit_width=10;
}
:slider { key = "width_sqrslider";
value = 4;
max_value = 25;
min_value = 1;
big_increment=3;
small_increment=1;
layout =horizontal;
width=30;
}
}
: row {
fixed_width=true;
:edit_box {
key = "hole";
value = "10";
fixed_width=true;
edit_width=10;
}
:slider { key = "holeslider";
value = 10;
max_value = 50;
min_value = 1;
big_increment=5;
small_increment=1;
layout =horizontal;
width=30;
}
}
}
}
: boxed_row{
Width=30;
fixed_width=false;
alignment=centered;
ok_cancel;}
:boxed_row{
Width=30;
fixed_width=false;
alignment=centered;
:text{ value="Designed by hck";}
}
}
--------------------------------------------------
Solved! Go to Solution.