找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2208|回复: 36

[求助] (rtos 变量 2 1)转字符号串,求教

[复制链接]
发表于 2017-2-8 19:35:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
(defun c:qq ()
(setq cd (getstring "\n长度:"))
(setq kd (getstring "\n宽度:"))
(setq ck (strcat" (rtos kd 2 1) * (rtos cd 2 1) "))
(princ "\n ck")
(setq p0 (getpoint))
(command "text" "ml" p0 3 "0" ck)
(princ))

两个 (getstring 分别输入:20 和 30 。 变量ck想转换成 “20*30”的字符,弄了好久,实在没办法,不得以来求教大家。。

另请问(rtos 变量 2 1)里面的 2 1或 2 3分别代表什么意思?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 17个

财富等级: 恭喜发财

发表于 2017-2-8 19:51:44 | 显示全部楼层
数值转字符串
(RTOS 数值参数[模式[小数点位数]])
模式设定值 1=科学记号   2=十进制  3=英尺 4=英心分数 5=分数
(setq ck (strcat" (rtos kd 2 1) * (rtos cd 2 1) "))
以(十进制读取KD 小数点1位*十进制读取CD 小数点1位)的字符串赋值给CK
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-2-8 19:55:31 | 显示全部楼层
(setq ck (strcat" (rtos kd 2 1) * (rtos cd 2 1) "))

这句, (rtos ....)本身就是字符串变量了,就不要前后加 "" 了, *是字符常量,这个要加""

改:(setq ck (strcat (rtos kd 2 1) "*" (rtos cd 2 1) ))

(rtos 2 1),  2表示小数,1 表示小数位数, 多看看函数手册


--------------------------
将数字转换成字符串

(rtos number [mode [precision]])
根据 mode、precision 参数和系统变量 UNITMODE、DIMZIN、LUNITS 和 LUPREC 的设置,rtos 函数返回代表 number 的字符串。

参数

number

数值。

mode

整数,指定现行单位模式。mode 的取值对应于 AutoCAD 系统变量 lunits 的允许值,如下所示:

1 科学

2 小数

3 工程(英尺和十进制英寸)

4 建筑(英尺和分数英寸)

5 分数

precision

整数,指定精度。

mode 和 precision 参数对应于系统变量 LUNITS 和 LUPREC。如果省略这两个参数,rtos 函数使用 LUNITS 和 LUPREC 的当前值。

返回值

字符串。当选择了工程记数格式、建筑记数格式或分数单位格式时(即 mode 值为 3、4 或 5),UNITMODE 系统变量对返回的字符串有影响。

示例

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-8 20:09:51 | 显示全部楼层
本帖最后由 行雲 于 2017-2-8 20:11 编辑

谢谢楼上二位,解答非常详细,,辛苦二位了

还有一个问题,现在(command "text" "ml" p0 3 "0" ck)输出的文本,直接就是 (rtos kd 2 1) * (rtos cd 2 1) 。而非理想中getstring输入值的组合 “20*30”

不想想在(command "text",,,,)里面直接用(strcat" (rtos kd 2 1) * (rtos cd 2 1) ")
想先单独做个变量(setq ck
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-2-8 20:18:31 | 显示全部楼层

你这么写是错误的  (strcat" (rtos kd 2 1) * (rtos cd 2 1) ")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 17个

财富等级: 恭喜发财

发表于 2017-2-8 20:18:36 | 显示全部楼层
1940462323  我QQ  我现在也学lsp呢   我试试做,咱俩正好有个研究,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-2-8 20:29:49 | 显示全部楼层
试试:(strcat (rtos kd 2 1) "*" (rtos cd 2 1))
strcat是针对字符串操作,参数数量不限(其实是255个),你试着把每一个参数都变成字符串,应该就行了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-8 20:37:51 | 显示全部楼层

你好,请问这句怎么写啊,弄了个种形式,不是参数类型错误,(command "text"直接打印代码出来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-8 20:39:14 | 显示全部楼层

谢谢你,这样报错误: 参数类型错误: numberp: "20"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 17个

财富等级: 恭喜发财

发表于 2017-2-8 20:52:46 | 显示全部楼层
(defun c:qq ()
(setq PT (getpoint "\n文字放置位置 : "))
(setq cd (getstring "\n长度:"))
(setq kd (getstring "\n宽度:"))
(setq PTT (list (car PT) (cadr PT)))
(setq ckd (strcat cd "*" kd))
(command "text" PTT "" "" ckd "" "")
(princ)
)

是不是要实现这样的效果,你试下,希望对你有帮助。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-2-8 21:25:11 | 显示全部楼层

不好意思,喝酒了,没仔细看你的代码,你的长度cd和宽度kd已经直接用字符串输入了(getstring),后面就不再需要rtos了,应该是(strcat kd "*" cd))即可。
不过值得说一句,交互输入时,每种类型的输入值,最好使用相匹配的输入方式,比如输入长度和宽度,最好使用getdist,其次是geitreal,使用getreal的时候,一般是在输入正负值有象限区别的时候(不多解释,以后会理解)。
顺便说一句,getstring应该是交互输入中最少使用的函数,如果能使用其它的函数,最好不使用getstring。
另一句提醒:initget在交互输入时很重要,尤其需要理解后面的控制位值,不同的位值,表达的意义会有很大差别。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-8 21:46:06 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-8 21:48:44 | 显示全部楼层

谢谢你,每次都是不辞劳苦,从原理开始讲起。。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-2-8 21:50:21 | 显示全部楼层

每层括号都会有个返回值,你要先把每个语句的返回值是什么,什么类型先弄清楚。rtos 是把实数转换成字符串,你不给实数做参数是要错的。
getstring的返回值是什么类型,心里有数了吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-8 22:20:44 | 显示全部楼层
多谢楼上各位。

另有一个想法
(setq ck (strcat" (rtos kd 2 1) * (rtos cd 2 1) "))
这个 ck 组合“ 00*00 ”想再组合一次组合成“ 00*00*00  ”
最后一组数字由(findfile "外部数值.txt")赋值,这个"外部数值.txt"的文件内部该如何规划呀?
在lsp代码内部又如何连接这个"外部数值.txt"文件内部的某个特定数值?

各位老大可否提供一些范本抄袭一下,,,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 06:28 , Processed in 0.598415 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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