Plotting blocks along a polyline - how to speed up/ improve?
I've created a lisp function to place a block from another file to plot along a polyline at a specific distance, i've avoided using a command because of a couple reason, it takes just as long & when i try to undo the who function i either have to mass delete or ctrl + z until each block has been removed off the line
im looking for a way to speed this up, at the moment it is very slow, is there a better way i can optimise this/ do it different?
im looking for a way to speed this up, at the moment it is very slow, is there a better way i can optimise this/ do it different?
(defun c:testing () (setq pline (vlax-ename->vla-object (car (entsel "\nSelect polyline: ")))) (setq startpt (vlax-curve-getStartPoint pline)) (setq endpt (vlax-curve-getEndPoint pline)) (setq tot 0) (setq op (if (minusp (- (vlax-curve-getdistatpoint pline (vlax-curve-getclosestpointto pline endpt)) (setq d1 (vlax-curve-getdistatpoint pline (vlax-curve-getclosestpointto pline startpt))) ) ) - + ) ) (setq tl (if (= op -) (vlax-curve-getdistatparam pline (vlax-curve-getstartparam pline)) (vlax-curve-getdistatparam pline (vlax-curve-getendparam pline)) ) ) (while ((if (= op -) >= <= ) (setq d2 (op d1 tot)) tl ) (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-curve-getpointatdist pline d2) "C:\\...\\...\\...\\Cone.dwg" ;; Replace this path of drawing with yours 0.3 0.3 0.3 0 ) (setq tot (+ tot 3)) ) )
0
Comments
-
hi,
can't you use the _arraypath command?0 -
I have make layouts where you set title block scale and it makes layouts walking along a pline, it aligns the sheet to the orientation of the pline arcs ok, 40+ one go etc
It does need to be set up to suit a end user title block.
It is not free but real cheap.
Next step is have plot layout range.
0