明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1296|回复: 1

[源码] 怎么把这段源码提取的坐标加上高程?最好帮忙注释下代码

[复制链接]
发表于 2017-11-27 10:38:14 | 显示全部楼层 |阅读模式
本帖最后由 sunqv 于 2017-11-27 10:40 编辑

(defun C:DIANHAO()
  (SETVAR "OSMODE" 0)
  (SETVAR "CMDECHO" 0)
  (SETVAR "SNAPMODE" 0)
  (setq ONE_ENTZ nil)
  (setq        ONE_ENTZ
         (SSGET "X" (LIST (CONS 8 (STRCAT "*TEXT")) '(0 . "TEXT")))
  )
  (setq LONE_ENTZ (SSLENGTH ONE_ENTZ))
  (setq I 0)
  (setq FNEXP "C:/Users/Administrator/Desktop/点号注记坐标.txt")
  (setq F (OPEN FNEXP "W"))
  (while (< I LONE_ENTZ)
    (setq ONE_ENT (SSNAME ONE_ENTZ I))
    (setq ENT1 (ENTGET ONE_ENT))
    (setq P1 (CDR (ASSOC 10 ENT1)))
    (setq X (NTH 0 P1))
    (setq Y (NTH 1 P1))
    (setq TFH1 (XY2TFH Y X))
    (setq TFH1 (NTH 0 (LN_LST TFH1)))
    (PRINC (STRCAT ;(CDR (ASSOC 5 ENT1))
;                   ","
                   (CDR (ASSOC 1 ENT1))
;                   ","
                   ","
                   (RTOS Y 2 3)
                   ","
                   (RTOS X 2 3)
                   ","
;                   TFH1
                   "\n"
           )
           F
    )
    (setq I (+ I 1))
  )
  (setq ONE_ENT nil)
  (setq ONE_ENTZ nil)
  (CLOSE F)
  (ALERT "点号坐标输出结束")
)

***********************分割线***************************
输出的点号只有X坐标和Y坐标,想把高程H坐标也提取出来,另外,想把自动提取所有坐标改成只提取框选的坐标,麻烦大神帮帮忙了,最好帮忙给注释下代码,不胜感激...



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2018-11-4 20:57:51 | 显示全部楼层
批量坐标提取程序
;命令:plzbsc
(defun c:plzbsc()
   (princ "\n选择所需输出的点(point):")
   (setq ss (ssget ));;选取坐标点
   (setq n (sslength ss ));计算坐标点数量
        (setq ff (open (getfiled "档保存为" "d:/" "txt" 1) "w"));保存路径
   (setq i 0)
   (repeat n
  (setq spt (ssname ss i ))
    (setq ept (entget spt))
    (if (= (cdr (assoc 0 ept)) "POINT")
     (progn
       (setq lxyz (cdr (assoc 10  ept)))
       (setq sx (rtos (nth 1 lxyz)));将坐标值实数转换成字符
       (setq sy (rtos (nth 0 lxyz)))
       (setq sz (rtos (nth 2 lxyz)))
                                        (setq i1 (+ i 1));计算点序号
                                        (setq sn (rtos i1 2 0));将序号实数转换成字符
       (setq sxyz (strcat sn",,"  sx ","  sy  ","  sz))
       (write-line sxyz ff)
    )
    )
    (setq i (+ i 1))
   );repeat
)
(prompt "* << 命令:plzbsc >> *输出格式(点号,, x,y,Z)**")
(prin1)

试试这个研究一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 03:08 , Processed in 0.167672 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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