Dear helpers,
I got a lisp code that is asking for block name as user input instead of block selection as user input.
Please help to modify this code for block selection for user input
Code:
(defun C:PUT (/ os ce bm blk ent obj ppt dst ept ref len ipt par slp ang)
(command "_.undo" "_be")
(setq os (getvar "osmode")
ce (getvar "cmdecho")
bm (getvar "blipmode")
blk ""
);;setq
(if (not bk)(setq bk ""))
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(while (not (setq ent (entsel "\nSelect object near reference end: "))))
(while
(and
(not (tblsearch "block" blk))
(not (findfile (strcat blk ".dwg")))
);;and
(setq blk (getstring (strcat "\nBlock to use <" bk ">: ")))
(if (> blk "")(setq bk blk)(setq blk bk))
);;while
(while (setq obj (car ent)
ppt (osnap (cadr ent) "nea")
dst (getdist "\nDistance to Block Insertion: ")
ept (vlax-curve-getEndPoint obj)
ref (vlax-curve-getDistAtPoint obj ppt)
len (vlax-curve-getDistAtPoint obj ept)
);;setq
(if (> ref (/ len 2.0))
(setq dst (- len dst))
);;setq
(setq ipt (vlax-curve-getPointAtDist obj dst)
par (vlax-curve-getParamAtPoint obj ipt)
slp (vlax-curve-getFirstDeriv obj par)
ang (atan (/ (cadr slp)(car slp)))
);;setq
(entmake
(list
'(0 . "INSERT")
(cons 2 blk)
(cons 10 ipt)
(cons 50 ang)
);;list
);;entmake
)
(princ)
)
Regards,
T.Brahmanandam