Originally Posted by
BCrouse
Is the a lisp out there lat will Divide a line in 3'-0" increments?
Thank you,
Brad
Hi Brad
Here is my old routine change it what you want
Spell my prompts and change point size by your needs
Thank you
f.
Code:
(defun C:divc (/ acsp dist dist_list div_len
ept inc_dist ln_ent ln_obj pt pt_list
spt st_par
)
(vl-load-com)
(setq acsp (vla-get-modelspace
(vla-get-activedocument
(vlax-get-acad-object)
)
)
)
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setvar "pdsize" 25.000);change by suit
(setvar "pdmode" 34)
(setq
ln_ent (entsel
"\nSelect line near from you want start to divide it \n"
)
)
(setq ln_obj (vlax-ename->vla-object (car ln_ent)))
(setq pt (vlax-curve-getclosestpointto ln_obj (cadr ln_ent)))
(if (> (distance pt (setq spt (vlax-curve-getstartpoint ln_obj)))
(distance pt (setq ept (vlax-curve-getendpoint ln_obj)))
)
(progn
(vlax-put ln_obj 'Startpoint ept)
(vlax-put ln_obj 'Endpoint spt)
)
)
(setq div_len (getdist "\nEnter increment in inches <3>\n"))
(if (not div_len)
(setq div_len 3.)
)
(setq div_len (cvunit 3.0 "inch" "millimeters")
inc_dist div_len
st_par 0.0
ln_len (vla-get-length ln_obj)
)
(setq dist_list (list st_par)
dist 0.0
cnt 0
)
(while (< dist ln_len)
(setq pt (vlax-curve-getpointatparam
ln_obj
(setq dist (+ dist (* cnt div_len)))
)
)
(setq dist_list (cons dist dist_list))
(if pt
(setq pt_list (cons pt pt_list))
)
(setq cnt (1+ cnt)
pt nil
)
)
(foreach i pt_list
(vlax-invoke acsp 'Addpoint i)
)
(setvar "cmdecho" 0)
(setvar "osmode" 703);change by suit
(princ)
)
(prompt "\n | Programm is loaded.\n")
(prompt "\n ------------------------------\n")
(prompt " | Type DIVC to execute.")