yhly555 发表于 2015-2-5 21:47:48

关于多段线生成数据文件排列问题

本帖最后由 yhly555 于 2015-2-6 10:24 编辑

;这是一个多段线生成数据文件的程序,从论坛上收集的,
;现在的问题是这个程序提取出来的坐标排列按逆时针输出,
;且似乎是以多段线的底点坐标开始输出的,
;现在我想让它实现以西北方向起点,按顺时针方向输出
;请各位大神帮忙实现一下,谢谢了
(defun c:ppl (/ s filename e n fn jd pt pts);多段线生成数据文件
(if (setq s (ssget ":S" '((0 . "*POLYLINE")))) ;点选带过滤形式
    (progn
      (setq e (ssname s 0))
      (setq bihe (cdr(assoc 70 (entget e))))
      (if (= 128 bihe)
      (setq n ( + 1 (fix (vlax-curve-getendparam e))));如果不闭合就在vlax函数上加1
      (setq n (fix (vlax-curve-getendparam e)))       ;如果闭合就不在vlax函数上加1
    )
      (if (not (setq filename
      (getfiled "选择文件存储目录" "多段线生成数据文件.csv" "csv" 5)
       )
)
(setq filename "c:\\多段线生成数据文件.csv")
      )
      (setq fn (open filename "w")
         jd n
      )
      (setvar "dimzin" 0);;;;;;;;;;;;;;;;;;;;;;;;;;;;

      (repeat n
(setq pt (vlax-curve-getpointatparam e (setq jd (1- jd))))

(if (null pts)
(setq pts (list pt))
(if (not (equal pt (car pts) 1e-3));(> (distance pt (car pts)) 1e-3)
    (setq pts (cons pt pts))
);if
) ;_去除重复if;;;;;;;;;;;;;;;;;;;;;;;这一步无效

      );repeat

      (setq n 1)
      (mapcar '(lambda (x)
(write-line
   (strcat
   (itoa n)
   ","   
   (rtos (car x));;;;;;;;;;;;;;;;已经修改为测量,地质等使用模式   xy调换
   ","
   (rtos (cadr x)) ;_与前面的 dimzin 配合采用用户 UNITS 精度设置
   )
   fn
)
(setq n (1+ n))
       )
      pts
      )
      (close fn)
    )
)
;(startapp "Notepad.EXE" filename);此句可调用记事本程序并打开该文件
(princ)
)


;补充一下,我用的AutoCAD2006版的,因有某些软件的必要性,所以我只能用2006版。


fan_zh 发表于 2015-2-6 09:05:14

本帖最后由 fan_zh 于 2015-2-6 09:08 编辑


fan_zh 发表于 2015-2-6 09:11:09

(defun c:tt()
(setq e(car(entsel)))
(setq pt(plinexy e))
(setq pt(if(pldir pt)pt(reverse pt)));;如果pt不是顺时针方向将其反向
(modplver e(clockwise pt));;将pt(clockwise pt)的起点调整为西北角
)以上为部分代码
收个币吧

鱼与熊掌 发表于 2015-2-6 09:21:28

以某点为起点从新排列

yhly555 发表于 2015-2-6 10:01:13

fan_zh 发表于 2015-2-6 09:11 static/image/common/back.gif
以上为部分代码
收个币吧

多谢你们的热情,可惜我没有明经币,不然两个我都愿意给你……

yhly555 发表于 2015-2-6 10:02:18

鱼与熊掌 发表于 2015-2-6 09:21 static/image/common/back.gif
以某点为起点从新排列

谢谢你指点,具体怎么操作可以说一下吗?谢谢!

llsheng_73 发表于 2015-2-9 17:10:46

本帖最后由 llsheng_73 于 2015-2-9 17:13 编辑

多线段处理
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=108947&fromuid=202795
沙发兄弟的原贴
其中 PoInPl和pldir两个函数都可以进一步优化,毕竟那是一年多以前写的了

yhly555 发表于 2015-2-9 23:17:06

本帖最后由 yhly555 于 2015-2-9 23:31 编辑

llsheng_73 发表于 2015-2-9 17:10 static/image/common/back.gif
多线段处理
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=108947&fromuid=202795
沙发兄弟的原贴

你太帅了,我想把坐标点的XY对调后(测量用的坐标)写入到TXT中,坐标标保留3位有效数据,可否帮忙实现一下,太感谢了!快到春节了,祝您和您的家人身体健康,万事如意,阖家欢乐!

fan_zh 发表于 2015-2-10 09:33:21

fan_zh 发表于 2015-2-6 09:11 static/image/common/back.gif
以上为部分代码
收个币吧

拿别人的码收币不太好,但我记得好多码我也是花币下载的,不确定这个是不是
收币只是希望大家能多来论坛赚币,有什么不妥?
论坛是给大家学习用的,不是刚注册就伸手来拿程序的

llsheng_73 发表于 2015-2-10 11:44:05

yhly555 发表于 2015-2-9 23:17 static/image/common/back.gif
你太帅了,我想把坐标点的XY对调后(测量用的坐标)写入到TXT中,坐标标保留3位有效数据,可否帮忙实现一 ...

一些简单的可以自己试着弄一下,慢慢的你自己就会了。。。。。
页: [1] 2
查看完整版本: 关于多段线生成数据文件排列问题