Тема: Макрос на разбивку кривой

Задача следующая: нужно разбить дугу командой Measure с шагом, но не от начала до конца, а от двух концов к середине. Желательно сделать так, чтобы выполнялось одной командой

Re: Макрос на разбивку кривой

Нижеследующий текст сохранить как MO.lsp

(defun C:MO ()
  (if (setq e1 (entsel "Выберите объект"))
    (progn (setq obj (vlax-ename->vla-object (car e1))
         fpt (vlax-curve-getStartPoint obj)
         spt (vlax-curve-getEndPoint obj)
       )
       (setq mpt (vlax-curve-getPointAtDist
               obj
               (* 0.5 (vlax-curve-getDistAtPoint obj spt))
             )
         fpt (trans fpt 0 1)
         fpt (trans fpt 0 1)
         mpt (trans mpt 0 1)
       )
       (command "_.BREAK" e1 "_F" mpt mpt)
       (initget 7)
       (terpri)
       (setq e2  (entlast)
         dst (getdist "Длина сегмента:")
       )
       (command "_measure" (list (car e1) fpt) dst)
       (command "_measure" (list e2 spt) dst)
    ))
  (princ))

Макрос на кнопку

^C^C(if (null C:MO)(load "mo.lsp"));MO;

Re: Макрос на разбивку кривой

ЗЫ О значениях PDMODE и PDSIZE позаботиться самостоятельно