明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9295|回复: 21

[已解答] 多段线各端点批量标注坐标并编号然后把各点坐标导出到文本上

[复制链接]
发表于 2015-12-29 16:32:37 | 显示全部楼层 |阅读模式
20明经币
本帖最后由 88641787 于 2015-12-30 11:12 编辑

多段线各端点标注坐标并编号然后把各点坐标导出到文本上        
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

;;;多段线坐标标注并导出 (defun c:zbbzdc() (setq ps_cmdecho (getvar "cmdecho") ps_osmode (getvar "osmode") ps_luprec (getvar "luprec") ) (setvar "cmdecho" 0) (setvar "osmode" 0) (setvar "luprec" 0) (setq TextHeight (getdist "\n请输入文字高度:")) (command "-layer" "n" "坐标标注" "c" "4" "坐标标注" "") (setvar"dimzin"0);;保留小数 ...
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-12-29 16:32:38 | 显示全部楼层
本帖最后由 香田里浪人 于 2015-12-30 18:40 编辑

  ;;;多段线坐标标注并导出
(defun c:zbbzdc()
   (setq ps_cmdecho (getvar "cmdecho")
         ps_osmode  (getvar "osmode")
         ps_luprec  (getvar "luprec")   
     )
     (setvar "cmdecho" 0)
     (setvar "osmode" 0)
     (setvar "luprec" 0)
(setq TextHeight (getdist "\n请输入文字高度:"))
     (command "-layer" "n" "坐标标注" "c" "4" "坐标标注" "")
      (setvar"dimzin"0);;保留小数位数时如果位数不足可以补零     
     (princ "\n输入引线长度 (建议")(princ (* TextHeight 10))(princ ")")
     (princ "<上次长度为")(princ long)(princ ">:")
     (setq long (getreal))
     (setq sunmer (ssget '((-4 . "<OR")
                           (0 . "POLYLINE")
                           (0 . "LWPOLYLINE")
                           (-4 . "OR>")
                          )
                   )
     )
     (setq germeip (sslength sunmer))
      (setq pianju (* TextHeight 0.1))
     (setq somode 0)
     (while (< somode germeip)
        (setq limes (entget (ssname sunmer somode)))
        (setq limun (length limes))
        (setq aobel 0)
        (while (< aobel limun)
          (if (= (car (nth aobel limes)) 10)
            (progn
               (command "layer" "s" "坐标标注" "")
               (setq pt (cdr (nth aobel limes)))
               (setq pt1 (polar pt (+ 0 (* 0.4 pi)) long))
               (setq pt2 (polar pt1 0 (* TextHeight 7.5)))
               (command "line" pt pt1 pt2 "")
               (setq xx (strcat "Y=" (rtos (car pt) 2 3)))
               (setq yy (strcat "X=" (rtos (cadr pt) 2 3)))            
               (setq ptx (list (+ (car pt1) 0.1) (- (cadr pt1) TextHeight)))
               (setq pty (list (+ (car pt1) 0.1) (+ (cadr pt1) pianju)))
               (command "text" pty TextHeight 0 yy)
               (command "text" ptx TextHeight 0 xx)
            )
          )
          (setq aobel (1+ aobel))
        )
          (setq somode (1+ somode))
     )
(defun vxs (e / i v lst)
  (setq i -1)
  (while
    (setq v (vlax-curve-getpointatparam e (setq i (1+ i))))
     (setq lst (cons v lst))
  )
  (reverse lst)
)
(setq ss sunmer  i 0
        filex (getfiled "指定输出文件路径" "" "xls" 1)        file (open filex "w"))
  (repeat (sslength ss)
    (setq j 1  ent (entget (ssname ss i))  p (cdr (assoc 10 ent)))
    (write-line (strcat "线段" (itoa (1+ i))) file)
    (write-line "点号\tX\tY\tZ" file)
    (entmake (list '(0 . "TEXT") (cons 1 (strcat  (itoa (1+ i))"#线段")) (cons 10 (list (car p) (- (cadr p) TextHeight)))(cons 7 "宋体") (cons 40 TextHeight)))
    (while (setq p (assoc 10 ent))
      (setq ent (cdr (member p ent)) p (cdr p))
      (entmake (list '(0 . "TEXT") (cons 1 (itoa j)) (cons 10 (list (+ (car p) 0.01) (- (cadr p) 0.01)))(cons 7 "宋体") (cons 40 TextHeight)(cons 8 "编号")(cons 62 3) ))
      (write-line (strcat (itoa j) "\t" (rtos (cadr p) 2 3) "\t" (rtos (car p) 2 3) "\t"
                          (if (caddr p) (rtos (caddr p) 2 3)"0.0")) file )
      (setq j (1+ j))
    )
    (setq i (1+ i))
  )
  (close file)
   (princ)
)

评分

参与人数 1明经币 +1 收起 理由
88641787 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2015-12-29 19:30:46 | 显示全部楼层
一个求助帖,标题怎么写[源码]?
回复

使用道具 举报

发表于 2015-12-29 19:52:26 | 显示全部楼层


本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-12-29 20:05:27 | 显示全部楼层
标注坐标引线都是一个方向,楼主的标注都向“外”
回复

使用道具 举报

 楼主| 发表于 2015-12-29 21:44:38 | 显示全部楼层
zzyong00 发表于 2015-12-29 20:05
标注坐标引线都是一个方向,楼主的标注都向“外”

一个在左一个在右   要不就是一个在上一个在下
回复

使用道具 举报

 楼主| 发表于 2015-12-29 21:46:11 | 显示全部楼层
香田里浪人 发表于 2015-12-29 21:13
;;;多段线坐标标注并导出
(defun c:zbbzbdc()
   (setq ps_cmdecho (getvar "cmdecho")

你好版主     这个只是标注坐标   没有标注序号    也没有把坐标导出至记事本里  
回复

使用道具 举报

 楼主| 发表于 2015-12-30 11:13:19 | 显示全部楼层
88641787 发表于 2015-12-29 21:44
一个在左一个在右   要不就是一个在上一个在下

其实图片上那种效果已经很好了
回复

使用道具 举报

发表于 2015-12-30 18:41:28 | 显示全部楼层
本帖最后由 香田里浪人 于 2015-12-30 18:42 编辑
88641787 发表于 2015-12-29 21:46
你好版主     这个只是标注坐标   没有标注序号    也没有把坐标导出至记事本里


我不是版主,88641787先生,五楼程序已经修改,这下应该可以用了
回复

使用道具 举报

发表于 2015-12-31 20:08:02 | 显示全部楼层
5楼程序可以满足楼主要求。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 06:24 , Processed in 0.167351 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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