明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: gzbccy

[源码] 如何获取多义线点并输出到EXCEL?

  [复制链接]
发表于 2011-1-13 10:25 | 显示全部楼层
回复 gzxl 的帖子

这个小程序虽然长了点,但是能达到提取坐标到文件的目的。很好
发表于 2011-1-14 08:15 | 显示全部楼层
回复 xyp1964 的帖子

学院派工具箱收费吗?
发表于 2011-1-16 18:54 | 显示全部楼层
本帖最后由 xyp1964 于 2011-1-16 18:55 编辑

  1. (defun c:tt ()
  2.   (setq s1  (car (entsel "\n选择三维多段线: "))
  3.           ptn (xyp-get-Vertexs s1 0)
  4.           lst '("节点序号" "X坐标" "Y坐标" "Z坐标")
  5.           i   1
  6.   )
  7.   (foreach pt ptn
  8.     (setq plst (list (itoa i)
  9.                  (rtos (car pt) 2 3)
  10.                  (rtos (cadr pt) 2 3)
  11.                  (rtos (caddr pt) 2 3)
  12.                )
  13.           lst  (append lst plst)
  14.           i    (1+ i)
  15.     )
  16.   )
  17.   (xyp-List2Xls lst 3)
  18.   (princ)
  19. )
 楼主| 发表于 2011-1-17 21:15 | 显示全部楼层
回复 xyp1964 的帖子

你这个只能应用三维多段线吧?普通多义线可以吗?我更倾向于开始gzxl的修改后使用
发表于 2011-1-19 17:26 | 显示全部楼层
(prompt "\n---多线段端点坐标提取至文件---命令行zbtq---)
(setvar "cmdecho" 0)
(defun c:zbtq ()
    (setq sel-line (ssget '((-4 . "<OR") (0 . "LINE")
                           (0 . "LWPOLYLINE")
                           (-4 . "OR>")
                          )
                   )
    )
    (setq l-num 0
          sel-count 0
    )
    (repeat (sslength sel-line)
        (setq pts '())
        (foreach lst (entget (ssname sel-line sel-count))
            (if (= (car lst) 10)
                (setq pts (append
                              pts
                              (list (cdr lst))
                          )
                )
            )
        )
        (setq sel-count (1+ sel-count))
        (setq l-num (1+ l-num))
        (setq l-name (strcat "多线段" (rtos l-num 2 0)))
        (biaozhu l-name (car pts))
        (file_write l-name pts)
    )
    (prompt "\n多义线各条坐标文件已生成,位于D盘根目录下")
    (setvar "cmdecho" 1)
    (princ)
)
(defun file_write (file-name pt-list)
    (setq f (open (strcat "d:/" file-name ".txt") "w"))
    (if (and
            f
            pt-list
        )
        (foreach x pt-list
            (princ (car x) f)
            (princ "," f)
            (princ (cadr x) f)
            (princ "\n" f)
        )
    )
    (close f)
)
(defun biaozhu (text-name text-posi)
    (if (= (tblsearch "layer" "标注") nil)
        (command "layer" "new" "标注" "color" "11" "标注" "")
    )
    (command "layer" "s" "标注" "")
    (command "text" "j" "m" text-posi "2" "0" text-name)
)
发表于 2011-1-19 17:28 | 显示全部楼层
我这个也提取不了三维多段线的坐标,呵呵
发表于 2011-4-30 18:54 | 显示全部楼层
回复 xyp1964 的帖子

xyp-List2Xls应该也是一个lisp程序吧,没有提供这个程序怎么运行呀?!
发表于 2011-5-3 15:13 | 显示全部楼层
15楼的程序试验成功!
但是在第一行少了一个双引号.
发表于 2013-1-20 09:09 | 显示全部楼层
ljttjl 发表于 2011-1-11 21:41
http://ljttjl.ys168.com  20090805多段线上标注点号并提取坐标程序

提取坐标只能输出到txt,不能输出到excel
发表于 2013-1-23 20:24 | 显示全部楼层
香田里浪人 发表于 2013-1-20 09:09
提取坐标只能输出到txt,不能输出到excel

生成的txt数据,可以用excel直接以逗号格式打开的,和excel数据没啥区别的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-22 06:34 , Processed in 0.157092 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表