yshf 发表于 2005-11-14 23:44:00

[原创]封闭多段线顶点排序

;;;测试程序<BR>;;;将下载的文件“dbxddpx.fas”<BR>;;;存到“L”盘中,如存入其它地方,<BR>;;;请更改程序中第二行中的相应路径名。<BR>(defun c:cc()<BR>&nbsp;&nbsp; (if (null dbxddpx)(load "L:dbxddpx.fas"));请注意文件“dbxddpx.fas”存盘路径名<BR>&nbsp;&nbsp; (setq xtblm '("cmdecho" "osmode")<BR>&nbsp; xtblz (mapcar 'getvar xtblm)<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp; (mapcar 'setvar xtblm '(0 0))<BR>&nbsp;&nbsp; (command "_undo" "be")<BR>&nbsp;&nbsp; (while (setq en <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (sel "\n请选择封闭多段线(LWPOLYLINE/POLYLINE)(按Esc键退出程序)" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "LWPOLYLINE,POLYLINE"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (initget 1 "1 2 3 4")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq pjd (getkword "\n西北角(1)/西南角(2)/东南角/(3)东北角(4):"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (initget 1 "1 2")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq snj (getkword "\n顺时针(1)/逆时针(2):"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;返回按要求排好序的顶点列表,并赋值给fhb<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq fhb (dbxddpx (car en) (read pjd) (read snj))<BR>&nbsp;&nbsp;&nbsp;&nbsp; i 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (foreach pt0 fhb<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "_circle" pt0 1 "_chprop" (entlast) "" "c" 1 ""<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "_text" (mapcar '+ pt0 '(0.7 0.7)) 2.5 0 (itoa i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "_chprop" (entlast) "" "c" 3 ""<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq i (1+ i))<BR>&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp; (command "_undo" "e")<BR>&nbsp;&nbsp; (mapcar 'setvar xtblm xtblz)(princ)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>)<BR>

wb0815 发表于 2005-11-15 12:41:00

楼主只要判断一下顺逆时针就好了然后就标注这样搞太麻烦了吧

xiaxiang 发表于 2011-3-10 10:44:22

回复 yshf 的帖子

顶出这个贴来,不知道楼主还能看到吗?
1.就想问问能不能框选多个多段线进行顶点排序,这样在某些场合可能有用。
2.dbxddpx.fas这个排序的核心代码能共享吗?
路过的高手有没有其它招呢?

vlisp2012 发表于 2012-5-8 22:37:18

我也想要这样功能的程序,批量处理一些多段线。哪位大侠能提供一下,多谢了!
页: [1]
查看完整版本: [原创]封闭多段线顶点排序