gooday 发表于 2018-10-23 20:51:52

求修改个lsp

求大神修改个lsp,提取文字和坐标增加提取角度。提取出来的文字内容增加一个文字旋转角度的值。
;
命令:plwbsc
(defun c:plwbsc()
(princ "\n选择所需输出的文本TEXT:")
(setq ss (ssget ));;选取坐标点
(setq n (sslength ss ));计算坐标点数量
(setq ff (open (getfiled "文件保存为" "f:/" "xls" 1) "w"));保存路径
(setq i 0)
(repeat n
(setq spt (ssname ss i ))
(setq ept (entget spt))
(if (= (cdr (assoc 0 ept)) "TEXT")
(progn
(setq lxyz (cdr (assoc 10ept)))
(setq sx (rtos (nth 1 lxyz)));将坐标值实数转换成字符
(setq sy (rtos (nth 0 lxyz)))
(setq sz (cdr (assoc 1 ept)))
(setq i1 (+ i 1));计算点序号
(setq sn (rtos i1 2 0));将序号实数转换成字符
(setq sxyz (strcat sn",,"sy ","sx","sz))
(write-line sxyz ff)
)
)
(setq i (+ i 1))
);repeat
)
(prompt "* << 命令:plwbsc >> *输出格式(点号,, Y,X,Z)**")
(prin1)

生命 发表于 2018-10-24 13:22:10

表示看不懂啊

ssyfeng 发表于 2018-10-24 13:32:15

修改了一个,不知道是不是你需要的。
(defun c:plwbsc(/ angle ept ff i i1 lxyz n sn spt ss sx sxyz sy sz)
(princ "\n选择所需输出的文本TEXT:")
(setq ss (ssget ));;选取坐标点
(setq n (sslength ss ));计算坐标点数量
(setq ff (open (getfiled "文件保存为" "f:/" "xls" 1) "w"));保存路径
(setq i 0)
(repeat n
    (setq spt (ssname ss i ))
    (setq ept (entget spt))
    (if (= (cdr (assoc 0 ept)) "TEXT")
      (progn
      (setq lxyz (cdr (assoc 10ept)))
      (setq angle (rtos (* (/ (cdr (assoc 50 ept)) pi ) 180) 2 3))
      (setq sx (rtos (nth 1 lxyz)));将坐标值实数转换成字符
      (setq sy (rtos (nth 0 lxyz)))
      (setq sz (cdr (assoc 1 ept)))
      (setq i1 (+ i 1));计算点序号
      (setq sn (rtos i1 2 0));将序号实数转换成字符
      (setq sxyz (strcat sn",,"sy ","sx","sz "," angle))
      (write-line sxyz ff)
      )
    )
    (setq i (+ i 1))
);repeat
(close ff)
)
(prompt "* << 命令:plwbsc >> *输出格式(点号,, Y,X,Z , angle)**")
(prin1)

gooday 发表于 2018-10-24 20:02:08

ssyfeng 发表于 2018-10-24 13:32
修改了一个,不知道是不是你需要的。

谢谢,就是我要的。厉害

paulpipi 发表于 2019-9-14 15:17:02

就是我要的。厉害
页: [1]
查看完整版本: 求修改个lsp