Creating array path along a polyline
is there a way i can change/ moveaway from using the command feature to do the following?
im grabbing a block from another file and plotting it onto a selected polyline with a certain distance
im grabbing a block from another file and plotting it onto a selected polyline with a certain distance
(defun c:coneline (/ d1 d2 dist pline op startpt endpt tl tot)
(defun coning(dist)
(setq cmd (getvar 'CMDECHO)) (setvar "CMDECHO" 0)
(command "_.layer" "s" "0" "")
(setq conepath "C:/.../.../Blocks/Cone.dwg")
(setq startpt (vlax-curve-getStartPoint pline)
endpt (vlax-curve-getEndPoint pline)
tot 0
op (if (minusp (- (vlax-curve-getdistatpoint pline (vlax-curve-getclosestpointto pline endpt))
(setq d1 (vlax-curve-getdistatpoint pline (vlax-curve-getclosestpointto pline startpt)))))
-
+)
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)
(command "._-insert" conepath (setq startpt (vlax-curve-getpointatdist pline d2)) 0.3 0.3 0)
(setq tot (+ tot dist)))
(setvar 'cmdecho echo)
(princ)
)
(setq pline (vlax-ename->vla-object (car (entsel "\nSelect polyline: "))))
(setq dcl_id (load_dialog "C:\\...\\...\\Dialogs\\CONELINE.dcl"))
(if (not (new_dialog "CONELINE" dcl_id))
(exit))
(action_tile "c10" "(setq spacing 1)")
(action_tile "c15" "(setq spacing 1.5)")
(action_tile "c20" "(setq spacing 2)")
(action_tile "c30" "(setq spacing 3)")
(action_tile "c45" "(setq spacing 4.5)")
(action_tile "c90" "(setq spacing 9)")
(action_tile "c18" "(setq spacing 18)")
(start_dialog)(unload_dialog dcl_id)
(coning spacing)
(princ)
)
0
Comments
-
look into
(vla-InsertBlock mspace (vlax-3d-point bpt) blockname 1 1 1 0.0)0
