yjpyjp 发表于 2025-1-13 00:26:06

求大神看看,我导出文字及坐标,为什么会有空行

本帖最后由 yjpyjp 于 2025-1-13 01:36 编辑


(defun c:dcwzzb ()
(setq i 0)
(princ "\n选择需输出坐标的文字: ")
(if (and (setq ss (ssget '((0 . "text"))))
                        (setq ff (open (getfiled "文件保存为" "C:/Users/Administrator/Desktop" "dat" 1) "w")) ;保存路径
                )
    (repeat (sslength ss)
      (setq en (entget (ssname ss i))
                                sn (itoa (+ i 1))
                                pt (cdr (assoc 10 en))
                                x(rtos (cadr pt) 2 4)
                                y(rtos (car pt) 2 4)
                                z(cdr (assoc 1 en))
                                i(1+ i)
      )
      (write-line (strcat sn ",," y "," x "," z) ff);;;sn是序号,不需要的话就删了
    )
)
(princ)
)




烟花丝雨 发表于 2025-1-13 08:32:13

文字中有换行符

弥勒 发表于 2025-1-13 08:53:32

[i

yjpyjp 发表于 2025-1-13 12:11:31

怎么修改代码能过滤掉文字本身的\n符号

kozmosovia 发表于 2025-1-13 13:24:39

z(cdr (assoc 1 en))
=>
z (vl-string-subst "" "\n" (cdr (assoc 1 en)))

xyp1964 发表于 2025-1-13 13:28:42

yjpyjp 发表于 2025-1-13 12:11
怎么修改代码能过滤掉文字本身的\n符号

(defun c:tt ()
(setq i 0)
(princ "\n选择需输出坐标的文字: ")
(if (and (setq ss (ssget '((0 . "text"))))
         (setq ff (open (getfiled "文件保存为" "" "dat" 1) "w"))
      )
    (repeat (sslength ss)
      (setq en (entget (ssname ss i))
            sn (itoa (1+ i))
            pt (cdr (assoc 10 en))
            x(rtos (cadr pt) 2 4)
            y(rtos (car pt) 2 4)
            z(cdr (assoc 1 en))
            z (if (setq n(vl-string-search "\n" z))(substr z 1 n)z)
            i(1+ i)
      )
      (write-line (strcat sn "," y "," x "," z) ff);sn是序号
    )
)
(princ)
)

yjpyjp 发表于 2025-1-13 13:34:31

xyp1964 发表于 2025-1-13 13:28


技术工作室 发表于 2025-1-13 20:26:52

是86.25 后面有一个空格字符造成的,删出即可,不用修改代码。
页: [1]
查看完整版本: 求大神看看,我导出文字及坐标,为什么会有空行