819534890 发表于 2014-12-9 02:07:14

复制线的一部分简单实现

(vl-load-com)
(defun c:py1(/ oo st_pt end_pt pt1 pt2 pt_tmp l_ss)
(setq oo (entsel "请选择线"))
(setq ss (car oo))
(setq pt1 (osnap (cadr oo) "near"))
(setq st_pt (vlax-curve-getStartPoint ss)
      end_pt (vlax-curve-getEndPoint ss)
      pt2 (getpoint "线上第二个点")
      )
      
      (if (>(vlax-curve-getParamAtPoint ss pt1) (vlax-curve-getParamAtPoint ss pt2))
      (setq pt_tmp pt2
             pt2 pt1
             pt1 pt_tmp)
          )
          (command "undo" "be")
          (command "_break" ss st_pt pt1)
            (command "_break" ss end_pt pt2)
          (command ".copy" ss "" '(0 0) '(0 0))
          (setq l_ss (entget (entlast)))
          (command "undo" "end")
          (command "undo" "")
          (entmake l_ss)
            (setq ss (entlast))
          (vla-put-Color (vlax-ename->vla-object ss) 1)
                (command "_move"ss "" pt1 )
)


http://bbs.mjtd.com/data/attachment/album/201412/09/020045nh08efmhe9ewwkfh.gif


yoyoho 发表于 2014-12-9 07:46:01

感谢 819534890 分享程序!

香田里浪人 发表于 2014-12-9 08:34:48

有特色,感谢 819534890 分享程序!“请选择线”应该是请选择线上第一点“”

434939575 发表于 2014-12-9 08:58:14

必须支持。谢谢!

伪书虫86 发表于 2014-12-9 11:38:47

虽然用不上,但是好东西还是得顶顶

不能再嘴馋 发表于 2014-12-9 16:24:17

这个好玩,不错,学习了,谢谢分享

不能再嘴馋 发表于 2014-12-9 16:24:54

多来这里学习,刚学lisp,觉得很好玩。

zlg258369 发表于 2014-12-9 23:24:23

这个有意思,支持一下

emk 发表于 2014-12-10 20:37:37

支持下,很给力,留脚印,以后再研究

freehand8008 发表于 2014-12-11 09:10:54

哈哈,这个有点意思
页: [1] 2
查看完整版本: 复制线的一部分简单实现