Notice: Undefined index: moes_p in /home/elpanov/elpanov.com/docs/index.php(3) : eval()'d code on line 1
ElpanovEvgeniy | Дуговые сегменты полилиний и дуги
elpanov.com » Элементарная геометрия » Дуговые сегменты полилиний и дуги

Новая версия сайта, доступна здесь.




Дуговые сегменты полилиний и дуги

Площадь сегмента круга

Площадь дугового сегмента, заданного центральным углом дуги и радиусом

Площадь дугового сегмента полилинии, заданного двумя точками и кривизной

Длинна дугового сегмента полилинии, заданного кривизной и длинной хорды

Радиус дугового сегмента полилинии, заданного кривизной и длинной хорды (вариант 1)

Радиус дугового сегмента полилинии, заданного кривизной и длинной хорды (вариант 2)

Радиус и центр дугового сегмента полилинии, заданного двумя точками и кривизной

Центр дуги, заданной тремя точками

Тангенс четверти угла(bulge) дуги, заданной тремя точками

Радиус дуги, заданной тремя точками

Центр и радиус дуги, заданной тремя точками

Создание списка для создания полилинии, по геометрии дуги

Нахождение тангенса четверти угла дуги (bulge), по начальному и конечному углу дуги

Принадлежность точки дуге, заданной тремя точками

Замена линейного сегмента полилинии дуговым сегментом

Замена дугового сегмента полилинии линейным сегментом




Площадь сегмента круга


eea-s_circle_segment.jpg (47 KБ)



;;	eea-s_circle_segment.lsp


(defun eea-s_circle_segment (r a)
                                ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Площадь сегмента круга

r - радиус круга
а - угол сегмента

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

The area of a segment of a circle

r - circle radius
a - angle segment

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n Select centre circle")
          p2 (getpoint p1 "\n Select start point")
          p3 (getpoint p1 "\n Select end point")
          r  (distance p1 p2)
          a1(angle p1 p3)
          a2 (angle p1 p2)
          a (if (< a1 a2)(+ pi pi (- a1 a2))(- a1 a2))
 ) ;_  setq
    
(eea-s_circle_segment r a)

*****************************************************************************************
|;
 (* a r r 0.5)
) ;_  defun

Наверх




Площадь дугового сегмента, заданного центральным углом дуги и радиусом


eea-s_arc.jpg (45 КБ)



(defun eea-s_arc (r a)
                                ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Площадь дугового сегмента, заданного центральным углом дуги и радиусом

r - радиус дуги
а - центральный угол дуги

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

The area of the arc segment set by the central angle of an arch and radius

r - arc radius
a - center arc angle

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n Select centre arc")
          p2 (getpoint p1 "\n Select start point")
          p3 (getpoint p1 "\n Select end point")
          r  (distance p1 p2)
          a1(angle p1 p3)
          a2 (angle p1 p2)
          a (if (< a1 a2)(+ pi pi (- a1 a2))(- a1 a2))
    ) ;_  setq
    
(eea-s_arc r a)

*****************************************************************************************
|;
 (if (< a 0)
  (setq a (+ a pi pi))
 ) ;_  if
 (* r r 0.5 (- a (sin a)))
) ;_  defun

Наверх




Площадь дугового сегмента полилинии, заданного двумя точками и кривизной


eea-s_lw_segment.jpg (52 КБ)



(defun eea-s_lw_segment (p1 p2 b / a)
                                ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Площадь дугового сегмента полилинии, заданного двумя точками и кривизной

Положительная, при повороте дуги, против часовой стрелки.


p1 - начальная точка дугового сегмента
p2 - конечная точка дугового сегмента
b  - кривизна дугового сегмента (тангенс четверти центрального угла дуги).

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

The area of a arc segment of lwpolyline
Positive, at arch turn, counter-clockwise.

p1 - start segment point 
p2 - end segment point 
b  - bulge is the tangent of 1/4 of the included angle for the arc segment

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq e  (entsel "\n Specify a polyline, in the necessary arc segment...")
      b  (cdr
          (nth
           (fix
            (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
           ) ;_  fix
           (vl-remove-if-not (function (lambda (x) (= (car x) 42))) (entget (car e)))
          ) ;_  nth
         ) ;_  cdr
      d  (fix
          (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
         ) ;_  fix
      p1 (vlax-curve-getPointAtParam (car e) d)
      p2 (vlax-curve-getPointAtParam (car e) (1+ d))
) ;_  setq

    
(eea-s_lw_segment p1 p2 b)

*****************************************************************************************
|;
 (if (zerop b)
  0.0
  (progn (setq b (* 4 (atan b))
               a (expt (/ (distance p1 p2) 2.82842712474619 (sin (/ b 2))) 2)
         ) ;_  setq
         (* a (- b (sin b)))
  ) ;_  progn
 ) ;_  if
) ;_  defun

Наверх




Длинна дугового сегмента полилинии, заданного кривизной и длинной хорды


eea-lw_arc_len.jpg (50 KБ)



(defun eea-lw_arc_len (b d)
                                ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Длинна дугового сегмента полилинии, заданного кривизной и длинной хорды

d  - расстояние между начальной и конечной точкой дугового сегмента
b  - кривизна дугового сегмента (тангенс четверти центрального угла дуги)

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

It is length the arc segment of a polyline set by bulge and a length chord

d  - length chord
b  - bulge is the tangent of 1/4 of the included angle for the arc segment

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq e (entsel "\n Specify a polyline, in the necessary arc segment...")
      b (cdr
         (nth
          (fix
           (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
          ) ;_  fix
          (vl-remove-if-not (function (lambda (x) (= (car x) 42))) (entget (car e)))
         ) ;_  nth
        ) ;_  cdr
      d (fix
         (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
        ) ;_  fix
      d (distance (vlax-curve-getPointAtParam (car e) d)
                  (vlax-curve-getPointAtParam (car e) (1+ d))
        ) ;_  distance
) ;_  setq

    
(eea-lw_arc_len b d)

*****************************************************************************************
|;
 (* (atan b) d (+ b (/ 1. b)))
) ;_  defun

Наверх




Радиус дугового сегмента полилинии, заданного кривизной и длинной хорды (вариант 1)


eea-lw_arc_len.jpg (50 KБ)



(defun eea-lw_arc_Rad_1 (b d)
                        ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Радиус дугового сегмента полилинии, заданного кривизной и длинной хорды
Вариант 1.


d  - расстояние между начальной и конечной точкой дугового сегмента
b  - кривизна дугового сегмента (тангенс четверти центрального угла дуги)

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

It is radius the arc segment of a polyline set by bulge and a length chord
Variant 1.

d  - length chord
b  - bulge is the tangent of 1/4 of the included angle for the arc segment

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq e (entsel "\n Specify a polyline, in the necessary arc segment...")
      b (cdr
         (nth
          (fix
           (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
          ) ;_  fix
          (vl-remove-if-not (function (lambda (x) (= (car x) 42))) (entget (car e)))
         ) ;_  nth
        ) ;_  cdr
      d (fix
         (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
        ) ;_  fix
      d (distance (vlax-curve-getPointAtParam (car e) d)
                  (vlax-curve-getPointAtParam (car e) (1+ d))
        ) ;_  distance
) ;_  setq

    
(eea-lw_arc_Rad_1 b d)

*****************************************************************************************
|;
 (* d (+ b (/ 1. b)) 0.25)
) ;_  defun

Наверх




Радиус дугового сегмента полилинии, заданного кривизной и длинной хорды (вариант 2)


eea-lw_arc_len.jpg (50 KБ)



(defun eea-lw_arc_Rad_2 (b d)
                        ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Радиус дугового сегмента полилинии, заданного кривизной и длинной хорды
Вариант 2.


d  - расстояние между начальной и конечной точкой дугового сегмента
b  - кривизна дугового сегмента (тангенс четверти центрального угла дуги)

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

It is radius the arc segment of a polyline set by bulge and a length chord
Variant 2.

d  - length chord
b  - bulge is the tangent of 1/4 of the included angle for the arc segment

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq e (entsel "\n Specify a polyline, in the necessary arc segment...")
      b (cdr
         (nth
          (fix
           (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
          ) ;_  fix
          (vl-remove-if-not (function (lambda (x) (= (car x) 42))) (entget (car e)))
         ) ;_  nth
        ) ;_  cdr
      d (fix
         (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
        ) ;_  fix
      d (distance (vlax-curve-getPointAtParam (car e) d)
                  (vlax-curve-getPointAtParam (car e) (1+ d))
        ) ;_  distance
) ;_  setq

    
(eea-lw_arc_Rad_1 b d)

*****************************************************************************************
|;
 (/ d (sin (* 2 (atan b))) 2)
) ;_  defun

Наверх




Радиус и центр дугового сегмента полилинии, заданного двумя точками и кривизной


eea-cen-lw-seg.jpg (52 KБ)



(defun eea-cen-lw-seg (p1 p2 b)
                      ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Радиус и центр дугового сегмента полилинии, заданного двумя точками и кривизной

p1 - начальная точка дугового сегмента
p2 - конечная точка дугового сегмента
b  - кривизна дугового сегмента (тангенс четверти центрального угла дуги).

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Radius and the centre of an arc segment of the polyline set by two points and bulge

p1 - start segment point 
p2 - end segment point 
b  - bulge is the tangent of 1/4 of the included angle for the arc segment

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq e  (entsel "\n Specify a polyline, in the necessary arc segment...")
      b  (cdr
          (nth
           (fix
            (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
           ) ;_  fix
           (vl-remove-if-not (function (lambda (x) (= (car x) 42))) (entget (car e)))
          ) ;_  nth
         ) ;_  cdr
      p1 (fix
          (vlax-curve-getParamAtPoint (car e) (vlax-curve-getClosestPointTo (car e) (cadr e)))
         ) ;_  fix
      p1 (vlax-curve-getPointAtParam (car e) d)
      p2 (vlax-curve-getPointAtParam (car e) (1+ d))
) ;_  setq

    
(eea-cen-lw-seg p1 p2 b)

*****************************************************************************************
|;
 ((lambda (a v r)
   ((lambda (c s vx vy r)
     (list (list (+ (* (- (* vx c) (* vy s)) r) (car p1))
                 (+ (* (+ (* vx s) (* vy c)) r) (cadr p1))
           ) ;_  list
           r
     ) ;_  list
    ) ;_  lambda
    (cos a)
    (sin a)
    (cos v)
    (sin v)
    r
   )
  ) ;_  lambda
  (- 1.570796326794897 (* (atan b) 2.))
  (angle p1 p2)
  (/ (distance p1 p2) 2. (sin (* (atan b) 2.)))
 )
) ;_  defun

Наверх




Центр дуги, заданной тремя точками


eea-cen_3pt.jpg (37 KБ)



(defun eea-cen_3pt (p1 p2 p3 / x1)
                   ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Центр дуги, заданной тремя точками


p1, p3  - конечные точки дуги порядок не важен
p2  - любая точка, лежащая на дуге

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

The centre of the arc set by three points

p1, p3 - finishing points of an arc the order is not important
p2 - Any point laying on an arc

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n Start or end point")
      p3 (getpoint "\n Start or end point")
      p2 (getpoint "\n Any point laying on an arc")
) ;_  setq

(eea-cen_3pt p1 p2 p3)

*****************************************************************************************
|;
 (polar p3
        (+ (angle p3 p2) (setq x1 (- (angle p1 p3) (angle p1 p2))) (* pi -0.5))
        (/ (distance p2 p3) (sin x1) 2.)
 ) ;_  polar
) ;_  defun

Наверх




Тангенс четверти угла(bulge) дуги, заданной тремя точками


eea-cen_3pt.jpg (37 KБ)



(defun eea-bulge_3pt (p1 p2 p3)
 
                   ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Тангенс четверти угла(bulge) дуги, заданной тремя точками


p1 - начальная точка дугового сегмента
p2 - любая точка, лежащая на дуге
p3 - конечная точка дугового сегмента


Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Bulge is the tangent of 1/4 of the included angle for the arc segment set by three points

p1  - start points of an arc segment
p2  - Any point laying on an arc
p3  - End points of an arc segment

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n Start point")
      p2 (getpoint "\n Any point laying on an arc")
      p3 (getpoint "\n End point")
) ;_  setq

(eea-bulge_3pt p1 p2 p3)

*****************************************************************************************
|;
 ((lambda (a) (/ (sin a) (cos a)))
  (/ (- (angle p2 p3) (angle p1 p2)) 2.)
 )
) ;_  defun

Наверх




Радиус дуги, заданной тремя точками


eea-cen_3pt.jpg (37 KБ)



(defun eea-radius_3pt (p1 p2 p3)
                      ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Радиус дуги, заданной тремя точками

p1, p3  - конечные точки дуги порядок не важен
p2  - любая точка, лежащая на дуге

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Radius of the arc set by three points

p1, p3 - finishing points of an arc the order is not important
p2 - Any point laying on an arc

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n Start or end point")
      p2 (getpoint "\n Any point laying on an arc")
      p3 (getpoint "\n Start or end point")
) ;_  setq

(eea-radius_3pt p1 p2 p3)

*****************************************************************************************
|;             
 (/ (distance p2 p3) (sin (- (angle p1 p3) (angle p1 p2))) 2.)
) ;_  defun

Наверх




Центр и радиус дуги, заданной тремя точками


eea-cen_3pt.jpg (37 KБ)



(defun eea-cen_radius_3pt (p1 p2 p3 / x)
                          ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Центр и радиус дуги, заданной тремя точками

p1, p3  - конечные точки дуги порядок не важен
p2  - любая точка, лежащая на дуге

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Center and radius of the arc set by three points

p1, p3 - finishing points of an arc the order is not important
p2 - Any point laying on an arc

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n Start or end point")
      p2 (getpoint "\n Start or end point")
      p3 (getpoint "\n Any point laying on an arc")
) ;_  setq

(eea-cen_radius_3pt p1 p2 p3)

*****************************************************************************************
|;
 (list (polar p3
              (+ (angle p3 p2) 
			  (setq x (- (angle p1 p3) (angle p1 p2))) 
			  (* pi -0.5)
			  )
              (setq x (/ (distance p2 p3) (sin x) 2.))
       ) ;_  polar
       (abs x)
 ) ;_  list
) ;_  defun

Наверх




Создание списка для создания полилинии, по геометрии дуги




(defun eea-lw_lst_arc (e / A A1 A2 PT R)
                      ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Создание списка для создания полилинии, по геометрии дуги

e  - дуга

возвращает список:
'("Начальная точка" "Тангенс" "Конечная точка")


Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Creation of the list for a polyline, on arc geometry

e  - arc entity

Returns the list:
' ("Start point" "bulge" "End point")

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq e (car (entsel "\n Select arc ")))

(eea-lw_lst_arc e)

*****************************************************************************************
|;
 (setq e  (entget e)
       r  (cdr (assoc 40 e))
       pt (cdr (assoc 10 e))
       a1 (cdr (assoc 50 e))
       a2 (cdr (assoc 51 e))
 ) ;_  setq
 (if (minusp (setq a (- a2 a1)))
  (setq a (/ (+ pi pi a) 4))
  (setq a (/ a 4))
 ) ;_  if
 (list (polar pt a1 r) (/ (sin a) (cos a)) (polar pt a2 r))
) ;_  defun

Наверх




Нахождение тангенса четверти угла дуги (bulge), по начальному и конечному углу дуги


eea-bulge_start-a_end-a.jpg (46 KБ)



(defun eea-bulge_start-a_end-a (a1 a2 / A)
                               ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Нахождение тангенса четверти угла дуги (bulge), по начальному и конечному углу дуги

a1  - начальный угол дуги
a2  - конечный угол дуги

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Bulge is the tangent of 1/4 of the included angle for the arc segment,
set by on an start and end angle of an arc

a1 - An start angle of an arc
a2 - A end angle of an arc

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq e  (car (entsel "\n Select arc "))
      a1 (cdr (assoc 50 (entget e)))
      a2 (cdr (assoc 51 (entget e)))
) ;_  setq

(eea-bulge_start-a_end-a a1 a2)
*****************************************************************************************
|;
 (if (minusp (setq a (- a2 a1)))
  (setq a (/ (+ pi pi a) 4))
  (setq a (/ a 4))
 ) ;_  if
 (/ (sin a) (cos a))
) ;_  defun

Наверх




Принадлежность точки дуге, заданной тремя точками


eea-cen_3pt.jpg (37 KБ)



(defun eea-is-point-on-arc (P P1 P2 P3 fuzz)
                        ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Принадлежность точки дуге, заданной тремя точками

p   - проверяемая точка
p1, p3  - конечные точки дуги порядок не важен
p2  - любая точка, лежащая на дуге
fuzz - Точность

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Membership of a point to an arc set by three points

p - a checked point
p1, p3 - finishing points of an arc the order is not important
p2 - Any point laying on an arc


Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p (getpoint "\n Any point")
      p1 (getpoint "\n Start or end point")
      p2 (getpoint "\n Any point laying on an arc")
      p3 (getpoint "\n Start or end point")
      fuzz 1e-3
      )

    
(eea-is-point-on-arc P P1 P2 P3 fuzz)

*****************************************************************************************
|;
 (or (equal p p1 fuzz)
     (equal p p3 fuzz)
     (equal (- (angle p2 p3) (angle p1 p2)) (- (angle p p3) (angle p1 p)) fuzz)
 ) ;_  or
)

Наверх




Замена линейного сегмента полилинии дуговым сегментом


LW_ARC.gif (244 КБ)



(defun C:LW_ARC (/ I LW P1 P2 P3)
                ;|
*****************************************************************************************

by ElpanovEvgeniy

Замена линейного сегмента полилинии дуговым сегментом

Впервые опубликована
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=20707ki

Дата создания   19.09.2005
Последняя редакция 04.06.2006
*****************************************************************************************

Replacement of a linear segment of a polyline with an arc segment

For the first time it is published
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=20707ki

Date of creation   19.09.2005
Last edition       04.06.2006
*****************************************************************************************


(C:LW_ARC)

*****************************************************************************************
|;
 (vl-load-com)
 (or doc (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))))
 (if (and (setq lw (entsel "\n Select segment in a polyline. "))
          (= (cdr (assoc 0 (entget (car lw)))) "LWPOLYLINE")
     ) ;_  and
  (progn
   (setq i  (fix (vlax-curve-getParamAtPoint
                  (car lw)
                  (vlax-curve-getClosestPointTo (car lw) (cadr lw))
                 ) ;_  vlax-curve-getParamAtPoint
            ) ;_  fix
         p1 (vlax-curve-getPointAtParam (car lw) i)
         p3 (vlax-curve-getPointAtParam (car lw) (1+ i))
         lw (vlax-ename->vla-object (car lw))
   ) ;_  setq
   (princ "\n Set visually curvature of a segment. ")
   (vla-StartUndoMark doc)
   (while (and (setq p2 (grread 5)) (= (car p2) 5))
    (vla-SetBulge
     lw
     i
     ((lambda (a) (/ (sin a) (cos a)))
      (/ (- (angle (cadr p2) p3) (angle p1 (cadr p2))) 2.)
     )
    ) ;_  vla-SetBulge
   ) ;_  while
   (vla-EndUndoMark doc)
  ) ;_  progn
  (princ "\n It is select nothing or object not a polyline. ")
 ) ;_  if
) ;_  defun

Наверх




Замена дугового сегмента полилинии линейным сегментом


lw-arc-.gif (160 КБ)



(defun c:lw-arc- (/ lw)
                 ;|
*****************************************************************************************

by ElpanovEvgeniy

Замена дугового сегмента полилинии линейным сегментом

Впервые опубликована
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=20707ki

Дата создания   19.09.2005
Последняя редакция 04.06.2006
*****************************************************************************************

Replacement of a arc segment of a polyline with an linear segment

For the first time it is published
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=20707ki

Date of creation   19.09.2005
Last edition       04.06.2006
*****************************************************************************************


(C:LW_ARC-)

*****************************************************************************************
|;
(vl-load-com)
 (or doc (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))))
 (if (and (setq lw (entsel "\n Select arc segment in a polyline. "))
          (= (cdr (assoc 0 (entget (car lw)))) "LWPOLYLINE")
     ) ;_  and
  (progn
   (vla-StartUndoMark doc)
   (vla-SetBulge
    (vlax-ename->vla-object (car lw))
    (fix (vlax-curve-getParamAtPoint
          (car lw)
          (vlax-curve-getClosestPointTo (car lw) (cadr lw))
         ) ;_  vlax-curve-getParamAtPoint
    ) ;_  fix
    0.
   ) ;_  vla-SetBulge
   (vla-EndUndoMark doc)
  ) ;_  progn
  (princ "\n It is select nothing or object not a polyline. ")
 ) ;_  if
) ;_  defun

Наверх