明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1608|回复: 7

[函数] 如何增添插入任意文字注记 已解决

[复制链接]
发表于 2011-3-30 07:11 | 显示全部楼层 |阅读模式
本帖最后由 461045462 于 2011-3-30 10:51 编辑

  在cad编辑时,有时需要添加后缀备注,为了操作方便,采用字母来代替文字,例如我编写了如下语句:
   (if f
                   ()
                   (setq f "")
                     )
               (setq nf (getstring (strcat "\n请输入备注<" f ">: " )))
                     (if (/= nf "")
                   (setq f nf)
                  )
                (if (= f "0")  ;f等于0
                       (setq f "")
                        )
(setq lx "")
   (setq ks '(("S" . "水泥地") ("W" . "围墙")("F" . "房角")("H" . "花圃")("Y" . " ")))
   (initget "S W F H")
   (setq s1 (getkword (strcat "s水泥地 w围墙 f房角 H花圃 <" lx "> :")))
   (if (assoc s1 ks)
   (setq rtn (cdr (assoc s1 ks)))
   (setq rtn lx)
   )      

运行后,当提示输入时,我输入 (setq s1 (getkword (strcat "s水泥地 w围墙 f房角 H花圃 <" lx "> :")))
内有的字母,如:h ; 后缀文字就会加上,
请输入备注<>: a s水泥地 w围墙 f房角 H花圃 <> :h
选取点: 1   F1 房角      10.728    231.983 a花圃
如果敲入另外的文字,就会重复提示输入,不会添加后缀:
  请输入备注<a>:  s水泥地 w围墙 f房角 H花圃 <> :棚房
无效的选项关键字。
  s水泥地 w围墙 f房角 H花圃 <>

如果我将 (initget "S W F H")改为 (initget  128),运行的结果还是一样,请问高手这段语句要如何修改?
才能实现增添插入任意文字注记?
望指教
谢谢
        
   已解决



"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-3-30 08:06 | 显示全部楼层
将getkword改为getstring
发表于 2011-3-30 08:17 | 显示全部楼层
函数设定为 输入字符串 可以解决。
发表于 2011-3-30 08:19 | 显示全部楼层
刚刚还想说从你的程序上看楼主是搞测量的,看仔细了原来是好友呵呵
 楼主| 发表于 2011-3-30 10:13 | 显示全部楼层
本帖最后由 461045462 于 2011-3-30 10:38 编辑
Gu_xl 发表于 2011-3-30 08:06
将getkword改为getstring


谢谢斑竹
曾经使用过getstring,视乎不行,等会我再试试,看看
谢谢
  改为getstring后,备注项可以实现注记,但是后面的后缀不能加上。
我想得到的结果是:
  请输入备注<a>: 棚房 s水泥地 w围墙 f房角 H花圃 <> :h
选取点: 1   F1 房角      22.501    155.219 棚房花圃
选取点: 2   F2 房角      58.814    280.111 棚房花圃
选取点: 3   F3 房角      62.971    305.089 棚房花圃
改为getstring,运行就只有:
选取点: 1   F1 房角      22.501    155.219 棚房
没有后缀 花圃
如果敲入的字母是没有说明的,还是运行同前
谢谢斑竹的回复

 楼主| 发表于 2011-3-30 10:16 | 显示全部楼层
jackynine 发表于 2011-3-30 08:19
刚刚还想说从你的程序上看楼主是搞测量的,看仔细了原来是好友呵呵

使用过 請求輸入一字串命令,好像不行,我再试试,找找原因。
是搞测量的。向你多学习
谢谢
发表于 2011-3-30 10:25 | 显示全部楼层
回复 461045462 的帖子

  1. (if f
  2.   ()
  3.   (setq f "")
  4. ) ;_ if
  5. (setq nf (getstring (strcat "\n请输入备注<" f ">: ")))
  6. (if (/= nf "")
  7.   (setq f nf)
  8. ) ;_ if
  9. (if (= f "0")                                ;f等于0
  10.   (setq f "")
  11. ) ;_ if
  12. (setq lx "")
  13. (setq ks '(("S" . "水泥地")
  14.            ("W" . "围墙")
  15.            ("F" . "房角")
  16.            ("H" . "花圃")
  17.            ("Y" . " ")
  18.           )
  19. ) ;_ setq
  20. (setq s1 (getstring (strcat "s水泥地 w围墙 f房角 H花圃 <" lx "> :")))
  21. (if (setq rtn (assoc (strcase s1) ks))
  22.   (setq rtn (cdr rtn))
  23.   (setq rtn s1)
  24. ) ;_ if
 楼主| 发表于 2011-3-30 10:46 | 显示全部楼层
回复 Gu_xl 的帖子

谢谢斑竹
运行ok。
收藏了。分析看看学习学习。
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 19:28 , Processed in 0.220114 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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