Тема: LISP отрисовки 3D трубопроводов

Приветствую всех.
Помогите, пожалуйста, разобраться с LISPом. Он всегда отрисовывал трубу (выдавливал круглую область) по выбранной в чертеже линии. И эта линия была осью трубы (работал в AC2013). На новом месте AutoCad 2022 и этот же LISP выдавливает по-другому (ручки редактирования не по центру "круга", а на линии "круга", см. вложение). В результате труба отображается в каркасе без центральной линии, что очень неудобно при присоединении к трубе других сегментов. Почему так? Система координат - мировая, всё стандартно. Может, ещё какие настройки AC посмотреть?

;;;===================================================================
;;; CURVE2TUBE -Gilles Chanteau- (gile)
;;; Extrudes a "donut region" along a curve(s) object(s).
;;;===================================================================
(defun c:3D-pipe    (/       AcDoc     Space     ext_rad
             int_rad   ss         obj       start
             ext_circ  int_circ  ext_reg   int_reg
             norm
            )

  (vl-load-com)

  (defun vlen (v)
    (sqrt (vxv v v))
  )

  (defun vxv (v1 v2)
    (apply '+ (mapcar '* v1 v2))
  )

  (defun vunit (v / l)
    (if    (/= 0 (setq l (vlen v)))
      (mapcar '(lambda (x) (/ x l)) v)
    )
  )

  (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (setq    Space
     (if (= 1 (getvar "CVPORT"))
       (vla-get-PaperSpace AcDoc)
       (vla-get-ModelSpace AcDoc)
     )
  )
  (if
    (and
      (setq ext_rad (getdist "\nЗадайте внешний диаметр: "))
      (setq int_rad (getdist "\nЗадайте внутренний диаметр: "))
      (setq ss
         (ssget
           '((-4 . "<OR")
         (0 . "ARC,CIRCLE,ELLIPSE,LINE,LWPOLYLINE")
         (-4 . "<AND")
         (0 . "POLYLINE")
         (-4 . "<NOT")
         (-4 . "&")
         (70 . 112)
         (-4 . "NOT>")
         (-4 . "AND>")
         (-4 . "<AND")
         (0 . "SPLINE")
         (-4 . "&")
         (70 . 8)
         (-4 . "AND>")
         (-4 . "OR>")
        )
         )
      )
    )
     (progn
       (vla-StartUndoMark AcDoc)
       (foreach    path (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
     (setq obj (vlax-ename->vla-object path))
     (setq start (vlax-curve-getPointAtParam
               obj
               (vlax-curve-getStartParam obj)
             )
     )
     (setq ext_circ (vla-addCircle Space (vlax-3d-Point start) (/ ext_rad 2)))
     (setq int_circ (vla-addCircle Space (vlax-3d-Point start) (/ int_rad 2)))
     (setq norm (vunit (vlax-curve-getFirstDeriv
                 obj
                 (vlax-curve-getStartParam obj)
               )
            )
     )
     (vla-put-Normal ext_circ (vlax-3d-point norm))
     (vla-put-Normal int_circ (vlax-3d-point norm))
     (setq ext_reg (car (vlax-invoke Space 'addRegion (list ext_circ))))
     (setq int_reg (car (vlax-invoke Space 'addRegion (list int_circ))))
     (vla-Boolean ext_reg acSubtraction int_reg)
     (vla-addExtrudedSolidAlongPath Space ext_reg obj)
     (mapcar 'vla-delete (list obj ext_circ int_circ ext_reg))
       )
       (vla-EndUndoMark AcDoc)
     )
  )
  (princ)
)
;;;=======================================================================================

Post's attachments

2023-02-28 16 51 23_Трубы.jpg 177.78 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.