明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2119|回复: 1

桩号转换成数字

[复制链接]
发表于 2005-3-7 18:08 | 显示全部楼层 |阅读模式
在lisp 语言中如何把K12+325.65转换成12325.65,即把公路上专业表达桩号转换成数字型桩号? (defun c:zh(/ zh zh1 zh2 zh3 zh4 zh5 zh6 zh7 zh8 nn mm1 mm mm2 aa2)
(setq zh8 (car (entsel "选择规格")))
(setq zh1 (cdr (assoc 1 (entget zh8))));取出字串
(setq len (strlen zh1));测量字长度
(setq zh2 zh1);予存原串
(setq nn 1);记置
(setq mm1 1)
(setq mm 0)
(setq mm2 0)
(setq zh5 "")
(while (< nn len)
(setq zh3 (ascii zh2));求第n个字符asc11
(setq zh2 (substr zh2 2 (- len nn)));截去串
(if (> mm2 0) (progn (setq zh6 (substr zh1 (+ mm1 1) mm2))
(setq zh3 (atof zh6))
(setq zh5 (strcat zh6 zh5))
)
)
(setq mm1 mm)
(setq mm2 0)
(if (or (< zh3 46) (> zh3 57)) (progn (setq mm nn)
(setq mm2 (- (- mm mm1) 1))
)
)
(setq nn (1+ nn))
)
(setq aa2 (- len mm))
(setq zh4 (substr zh1 (+ mm 1) aa2));截去串
(setq zh (strcat zh5 zh4))
(setq qq (entget zh8));选象
(setq qq (subst (cons 1 zh) (assoc 1 qq) qq))
(entmod qq)
(princ)
)
发表于 2005-3-7 19:54 | 显示全部楼层
(defun c:test( / str)
(setq str "K12+325.65")
(strcat (substr str 2 2) (substr str 5 (- (strlen str) 4)))
) (defun c:test( / str)
(setq str "K12+325.65")
(setq str (vl-string-subst "" "+" str))
(setq str (vl-string-subst "" "K" str))
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-29 11:59 , Processed in 0.151949 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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