striver 发表于 2023-12-9 14:36:20

绘两线段中心线

本帖最后由 striver 于 2023-12-9 14:38 编辑

;;;绘两线段中心线
(defun C:lxzx ()
(if (and (setq ss (ssget '((0 . "*LINE"))))
         (= (sslength ss) 2)
      )
    (progn
      (setq s1      (ssname ss 0)
            s2      (ssname ss 1)
            p1a      (vlax-curve-getStartPoint s1)
            p1b      (vlax-curve-getEndPoint s1)
            p2a      (vlax-curve-getStartPoint s2)
            p2b      (vlax-curve-getEndPoint s2)
      )

      (setq v3 (getvar "osmode"))
      (setvar "cmdecho" 0)
      (setvar "osmode" 0)
      
      (if (inters p1a p2a p1b p2b)
      (command "line" (midPnt p1a p2b) (midPnt p1b p2a) "")
      (command "line" (midPnt p1a p2a) (midPnt p1b p2b) "")
      )
      (command "chprop" (entlast) "" "C" 1 "LT" "CENTER2" "")
      (setvar "osmode" v3)
      (setvar "cmdecho" 1)
    )
)
(princ)
)
(defun midPnt (pnt1 pnt2)
(list      (/ (+ (nth 0 pnt1) (nth 0 pnt2)) 2)
      (/ (+ (nth 1 pnt1) (nth 1 pnt2)) 2)
      (/ (+ (nth 2 pnt1) (nth 2 pnt2)) 2)
)
)

kmliro_2017 发表于 2023-12-25 08:32:10

谢谢分享!!!!!

shuaier 发表于 2023-12-28 08:34:18



好像有问题,红线线是程序画的中线,蓝色是示意的中线

xdzcp 发表于 3 天前

这种效果能实现吗
页: [1]
查看完整版本: 绘两线段中心线