(defun c:fs_brkln (/ a a1 a2 b b1 b2 DRAW)
  (setq a (entsel "\n请选取圆柱的第一条线或 <退出>:"))
  (or a (fsxm-silenceexit))
  (setq a1 (vlax-curve-getclosestpointto (car a) (trans (cadr a) 1 0)))
  (fsxm-pt-grdraw (trans a1 0 1) 1)
  (setq b (entsel "\n请选取圆柱的第二条线或 <退出>:"))
  (redraw)
  (or b (fsxm-silenceexit))
  (setq b1 (vlax-curve-getclosestpointto (car b) (trans (cadr b) 1 0)))
  ;;
  (setq a2 (vlax-curve-getclosestpointto (car b) a1 t))
  (setq b2 (vlax-curve-getclosestpointto (car a) b1 t))
  (defun draw (p1 p2 / mp)
    (setq mp (fsxm-midpt p1 p2))
    (entmake
      (list '(0 . "LWPOLYLINE")
	    '(100 . "AcDbEntity")
	    '(410 . "Model")
	    '(100 . "AcDbPolyline")
	    '(90 . 4)
	    (cons 10 p1)
	    '(42 . -0.267949)
	    (cons 10 mp)
	    '(42 . 0.267949)
	    (cons 10 p2)
	    '(42 . 0.267949)
	    (cons 10 mp)
	    '(42 . 0.419873)
      )
    )
    (entlast)
  )
  (vla-StartUndoMark *doc*)
  (draw a1 a2)
  (draw b1 b2)
  (setvar "cmdecho" 0)
  (command ".break"
	   (list (car a) (trans a1 0 1))
	   "non"
	   (trans b2 0 1)
  )
  (command ".break"
	   (list (car b) (trans a2 0 1))
	   "non"
	   (trans b1 0 1)
  )
  (vla-EndUndoMark *doc*)
  (princ)
)