hang789 发表于 2006-3-17 10:11:00

谁有将多线段反向的程序

谁有将多线段反向的程序,在这先谢过了!

zyc1992 发表于 2018-3-6 16:10:15

自带的reserve命令呀

ljpnb 发表于 2006-3-17 21:33:00

论坛里有,你搜索一下。

hang789 发表于 2006-3-18 09:50:00

我只找到直线反向的,可多段线没有!

yfy2003 发表于 2006-3-23 00:04:00

<P>以前明总帖的:</P>
<P>Sub RevPline<FONT color=red>(</FONT><FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>Dim</FONT> ent <FONT color=blue>As</FONT> AcadEntity<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>Dim</FONT> pnt <FONT color=blue>As</FONT> Variant<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>Dim</FONT> NewCoord<FONT color=red>(</FONT><FONT color=red>)</FONT> <FONT color=blue>As</FONT> Double<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>Dim</FONT> i <FONT color=blue>As</FONT> Integer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>On</FONT> <FONT color=blue>Error</FONT> <FONT color=blue>Resume</FONT> <FONT color=blue><FONT color=blue>Next</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>Do</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThisDrawing.Utility.GetEntity ent, pnt, <FONT color=#880000>"选择多段线:"</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>If</FONT></FONT> Err <FONT color=blue><FONT color=blue>Then</FONT></FONT> <FONT color=blue>Exit</FONT> <FONT color=blue><FONT color=blue>Sub</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>If</FONT></FONT> <FONT color=blue>TypeName</FONT><FONT color=red>(</FONT>ent<FONT color=red>)</FONT> <FONT color=blue>Like</FONT> <FONT color=#880000>"IAcad*Polyline"</FONT> <FONT color=blue><FONT color=blue>Then</FONT></FONT> <FONT color=blue>Exit</FONT> <FONT color=blue><FONT color=blue>Do</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>Loop</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>Dim</FONT> Coord <FONT color=blue>As</FONT> Variant<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>Dim</FONT> CoordCount <FONT color=blue>As</FONT> Integer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>Dim</FONT> Bulge<FONT color=red>(</FONT><FONT color=red>)</FONT> <FONT color=blue>As</FONT> Double<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>If</FONT></FONT> <FONT color=blue>TypeName</FONT><FONT color=red>(</FONT>ent<FONT color=red>)</FONT> <FONT color=blue>=</FONT> <FONT color=#880000>"IAcadLWPolyline"</FONT> <FONT color=blue><FONT color=blue>Then</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coord <FONT color=blue>=</FONT> ent.Coordinates<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CoordCount <FONT color=blue>=</FONT> <FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>+</FONT> 1<FONT color=red>)</FONT> <FONT color=blue>/</FONT> 2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>ReDim</FONT> NewCoord<FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT><FONT color=red>)</FONT> <FONT color=blue>As</FONT> Double<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>For</FONT> i <FONT color=blue>=</FONT> 0 To <FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>-</FONT> 1 Step 2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewCoord<FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>-</FONT> i <FONT color=blue>-</FONT> 1<FONT color=red>)</FONT> <FONT color=blue>=</FONT> Coord<FONT color=red>(</FONT>i<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewCoord<FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>-</FONT> i<FONT color=red>)</FONT> <FONT color=blue>=</FONT> Coord<FONT color=red>(</FONT>i <FONT color=blue>+</FONT> 1<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>Next</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>ReDim</FONT> Bulge<FONT color=red>(</FONT>CoordCount <FONT color=blue>-</FONT> 1<FONT color=red>)</FONT> <FONT color=blue>As</FONT> Double<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>For</FONT> i <FONT color=blue>=</FONT> 0 To CoordCount <FONT color=blue>-</FONT> 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bulge<FONT color=red>(</FONT>i<FONT color=red>)</FONT> <FONT color=blue>=</FONT> ent.GetBulge<FONT color=red>(</FONT>i<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>Next</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ent.Coordinates <FONT color=blue>=</FONT> NewCoord<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>For</FONT> i <FONT color=blue>=</FONT> 0 To CoordCount <FONT color=blue>-</FONT> 2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ent.SetBulge i, -Bulge<FONT color=red>(</FONT>CoordCount <FONT color=blue>-</FONT> 2 <FONT color=blue>-</FONT> i<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>Next</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThisDrawing.Regen acActiveViewport<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>ElseIf</FONT></FONT> <FONT color=blue>TypeName</FONT><FONT color=red>(</FONT>ent<FONT color=red>)</FONT> <FONT color=blue>=</FONT> <FONT color=#880000>"IAcadPolyline"</FONT> <FONT color=blue><FONT color=blue>Then</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coord <FONT color=blue>=</FONT> ent.Coordinates<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CoordCount <FONT color=blue>=</FONT> <FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>+</FONT> 1<FONT color=red>)</FONT> <FONT color=blue>/</FONT> 3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>ReDim</FONT> NewCoord<FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT><FONT color=red>)</FONT> <FONT color=blue>As</FONT> Double<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>For</FONT> i <FONT color=blue>=</FONT> 0 To <FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>-</FONT> 1 Step 3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewCoord<FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>-</FONT> i <FONT color=blue>-</FONT> 2<FONT color=red>)</FONT> <FONT color=blue>=</FONT> Coord<FONT color=red>(</FONT>i<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewCoord<FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>-</FONT> i <FONT color=blue>-</FONT> 1<FONT color=red>)</FONT> <FONT color=blue>=</FONT> Coord<FONT color=red>(</FONT>i <FONT color=blue>+</FONT> 1<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewCoord<FONT color=red>(</FONT><FONT color=blue>UBound</FONT><FONT color=red>(</FONT>Coord<FONT color=red>)</FONT> <FONT color=blue>-</FONT> i<FONT color=red>)</FONT> <FONT color=blue>=</FONT> Coord<FONT color=red>(</FONT>i <FONT color=blue>+</FONT> 2<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>Next</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>If</FONT></FONT> ent.<FONT color=blue>Type</FONT> <FONT color=blue>=</FONT> acSimplePoly <FONT color=blue><FONT color=blue>Then</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>ReDim</FONT> Bulge<FONT color=red>(</FONT>CoordCount <FONT color=blue>-</FONT> 1<FONT color=red>)</FONT> <FONT color=blue>As</FONT> Double<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>For</FONT> i <FONT color=blue>=</FONT> 0 To CoordCount <FONT color=blue>-</FONT> 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bulge<FONT color=red>(</FONT>i<FONT color=red>)</FONT> <FONT color=blue>=</FONT> ent.GetBulge<FONT color=red>(</FONT>i<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>Next</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>End</FONT> If</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ent.Coordinates <FONT color=blue>=</FONT> NewCoord<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>If</FONT></FONT> ent.<FONT color=blue>Type</FONT> <FONT color=blue>=</FONT> acSimplePoly <FONT color=blue><FONT color=blue>Then</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>For</FONT> i <FONT color=blue>=</FONT> 0 To CoordCount <FONT color=blue>-</FONT> 2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ent.SetBulge i, -Bulge<FONT color=red>(</FONT>CoordCount <FONT color=blue>-</FONT> 2 <FONT color=blue>-</FONT> i<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>Next</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>End</FONT> If</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.Regen acActiveViewport<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue><FONT color=blue>End</FONT> If</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;<FONT color=blue><FONT color=blue>End</FONT></FONT> Sub</P>

leeyuan 发表于 2006-3-24 09:03:00

<P>有没有lisp版得呢</P>

龙龙仔 发表于 2006-3-24 16:57:00


;;By LUCAS(龙龙仔)
;;FOR LWPOLYLINE ONLY
(defun C:TEST (/ ENT ENT1 Q Q1 Q3 Q4 N)
(setq ENT (entget (setq ENT1 (car (entsel)))))
(setq Q (reverse (member (assoc 39 (reverse ENT)) (reverse ENT))))
(setq Q1 (member (assoc 10 ENT) ENT))
(setq N0
Q3 NIL
)
(repeat (/ (- (length Q1) 1) 4)
    (setq Q3 (append Q3
       (list (nth N Q1)
      (cons 42 (* -1 (cdr (nth (+ N 3) Q1))))
      (cons 41 (cdr (nth (+ N 1) Q1)))
      (cons 40 (cdr (nth (+ N 2) Q1)))
       )
      )
    )
    (setq N (+ N 4))
)
(setq Q3 (reverse Q3))
(entmake (append Q
   (member (assoc 10 Q3) Q3)
   (list (nth 0 Q3))
   (list (nth 1 Q3))
   (list (nth 2 Q3))
   (list (last Q1))
    )
)
(entdel ENT1)
(princ)
)

mycad 发表于 2006-4-3 20:18:00

<P>很好</P>

ZHONGSHENG 发表于 2006-7-31 21:34:00

<P>顶</P>
<P>&nbsp;</P>

唐僧肉 发表于 2006-9-16 22:06:00

有没有先判断方向,若符合再反向的?

董堃 发表于 2008-5-7 23:29:00

下定了
页: [1] 2
查看完整版本: 谁有将多线段反向的程序