spshchen 发表于 2005-4-7 16:52:00

[求助]如何把多段线和其他线的交点改为多段线的顶点?

如何把多段线和其他线的交点改为多段线的顶点?

ljpnb 发表于 2005-4-7 17:54:00

不太明白意思,顶点指多段线的那个点,起点还是终点,还是当中某个点?

spshchen 发表于 2005-4-8 06:57:00

交点 肯定是在这根线上的,就是在不改变线的外观的情况下,把交点改为顶点


用PEDIT       E       I                       再后面就要判断插入哪个顶点后面了,如果2个顶点之间只有1个交点,那还好解决,如果有多个的话,如果通过循环是可以解决的,但是总感觉很别扭.

龙龙仔 发表于 2005-4-8 08:06:00

本帖最后由 作者 于 2005-4-11 12:38:15 编辑

;;By 龙龙仔
;;(ADD_INTPT <POLYLINE线> <相交线>)
;;回传值: ENAME(POLYLINE线)
(defun C:TT ()
   (ADD_INTPT (car (entsel "\n选POLYLINE线: "))
         (car (entsel "\n选相交线: "))
   )
   (princ)
)(defun C:TTT (/ HOLDECHO LINE1 SS N)
   (if (and (setq LINE1 (car (entsel "\n选POLYLINE线: ")))
       (progn (redraw LINE1 3)
       (prompt "\n选相交线: ")
       (setq SS (ssget '((0 . "*LINE,CIRCLE,ARC,ELLIPSE"))))
       (if (and SS (> (sslength SS) 0))
         t
         (redraw LINE1 4)
       )
       )
         )
       (progn
         (setq HOLDECHO (getvar "CMDECHO"))
         (setvar "CMDECHO" 0)
         (command "_.UNDO" "_GROUP")
         (setq N 0)
         (repeat (sslength SS)
(setq LINE1 (ADD_INTPT LINE1 (ssname SS N)))
(setq N (1+ N))
         )
         (command "_.UNDO" "_END")
         (setvar "CMDECHO" HOLDECHO)
       )
   )
   (princ)
)
更新2005-04-11 pm12:30

spshchen 发表于 2005-4-8 14:12:00

谢谢龙龙仔


经常有:; 错误: 除数为零的提示 我不知道是什么缘故<BR>不过好像对 交点在顶点上的交点没有做处理,可惜我看不到源代码,能不能返回一个判断的变量给我,


因为我是对选择集内的 线都做处理的,所以不能判断交点就在顶点上

清风明月名字 发表于 2012-5-29 16:28:31

谢谢龙龙仔,下载使用了
页: [1]
查看完整版本: [求助]如何把多段线和其他线的交点改为多段线的顶点?