xskfq 发表于 2013-11-25 15:43:01

求在圆心点打断直线

圆心好落在直线上,于圆心处打断直线。
要求框选,打断点比较多,速度快一点,
只有4个币了,倾囊相求,谢谢!

xyp1964 发表于 2013-11-25 15:43:02

flyfox1047 发表于 2013-11-25 22:09 static/image/common/back.gif
测试了下,是不行,(CAD版本2007) 如下:;; 圆心点打段线
(defun c:tt ()
(if (and (princ "\n选择圆: ")
         (setq ss (ssget '((0 . "circle")))
               i-1
         )
      )
    (while (setq s1 (ssname ss (setq i (1+ i))))
      (setq pc (cdr (assoc 10 (entget s1)))
            j-1
      )
      (if (setq ss1 (ssget "c" pc pc '((0 . "*line"))))
      (while (setq s2 (ssname ss1 (setq j (1+ j))))
          (command "break" (list s2 pc) "f" pc pc)
      )
      )
    )
)
(princ)
)

xskfq 发表于 2013-11-25 15:47:08

效果如下图,,

ZZXXQQ 发表于 2013-11-25 20:42:05

本帖最后由 ZZXXQQ 于 2013-11-26 08:13 编辑

;圆心点打断线 明经 ZZXXQQ 2013.11.26
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (princ "\n选择圆: ") (setq ss (ssget '((0 . "CIRCLE"))))) (progn
(setq i -1)
(repeat (sslength ss)
   (setq pc (cdr(assoc 10 (entget(ssname ss (setq i (1+ i)))))))
   (if (setq s1 (ssget "C" pc pc '((0 . "*LINE"))))
;    (command "_.BREAK" (list (ssname s1 0) pc) "@")
    (command "_.BREAK" (list (ssname s1 0) pc) "F" pc pc)
   )
)
))
(setvar "CMDECHO" 1)
(princ)
)

flyfox1047 发表于 2013-11-25 21:38:56

ZZXXQQ 发表于 2013-11-25 20:42 static/image/common/back.gif


Z版有求必应啊,好心人

xskfq 发表于 2013-11-25 21:41:47

测试一下,貌似不行,麻烦版主再帮看看。。

xskfq 发表于 2013-11-25 21:59:33

打断于圆心点。

flyfox1047 发表于 2013-11-25 22:09:07

测试了下,是不行,(CAD版本2007) 如下:


flyfox1047 发表于 2013-11-25 22:11:55

本帖最后由 flyfox1047 于 2013-11-25 22:16 编辑

你的另一个主题http://bbs.mjtd.com/thread-108478-1-1.html   
G版不是帮你解决了吗?

貌似G版的好像也不行

ll_j 发表于 2013-11-25 22:20:11

多点“打断”有一个次序问题,必须从直线的尾部向首部顺序打断,否则打断过程中选择的直线会发生变化。
页: [1] 2
查看完整版本: 求在圆心点打断直线