明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1711|回复: 9

[已解答] 判断是否为CAD命令的简写

[复制链接]
发表于 2014-11-3 10:56 | 显示全部楼层 |阅读模式
我们可以用(getcname "ERASE")判断"ERASE"是CAD系统内置命令;
可以用(member(strcase"car"))(atoms-family 1))判断"car"是CAD内置函数;
请问:我们有何简单办法判断如:"E"是命令"ERASE"的简写
谢谢!

点评

支持!  发表于 2016-11-20 22:42
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

 楼主| 发表于 2014-11-5 22:51 | 显示全部楼层
ghxc 发表于 2014-11-4 08:14
应该只能通过pgp了

目前还没有发现更好的方法,现采取读ACAD.PGP,看有无与所给字符匹配的。
回复 支持 0 反对 1

使用道具 举报

发表于 2014-11-3 11:29 | 显示全部楼层
搜索acad.pgp文件,查找对应的命令
发表于 2014-11-3 11:30 来自手机 | 显示全部楼层
查看.Pgp文件是不是简写
 楼主| 发表于 2014-11-3 14:12 | 显示全部楼层
自贡黄明儒 发表于 2014-11-3 11:30
查看.Pgp文件是不是简写

请问有无更简便的方法?
发表于 2014-11-4 08:14 来自手机 | 显示全部楼层
应该只能通过pgp了来自: Android客户端
 楼主| 发表于 2014-11-7 08:09 | 显示全部楼层
贴子浮出了水面,证明还有些朋友关心,那就将有关函数贴上:
  1. ;;;=======================================================================
  2. ;;; 检查字符串CMD是不是CAD内置命令、"acad.pgp"文件中定义过的命令简写、CAD内置函数之一, 如是返回T, 否nil.
  3. ;| Ex:
  4. (xxx-get-pgp "mi")  ==> T
  5. (xxx-get-pgp "mirror")  ==> T
  6. (xxx-get-pgp "XXX")  ==> T  ;已经加载了C:XXX函数。
  7. (xxx-get-pgp "car")  ==> T
  8. (xxx-get-pgp "123wer")  ==> nil
  9. |;
  10. (defun xxx-get-pgp (cmd / f_n o_p str rtn )
  11.   (if (and (= (type cmd) 'STR)
  12.       (or (<= 48 (ascii cmd) 57) (<= 65 (ascii cmd) 90) (<= 97 (ascii cmd) 122)
  13.     (= (ascii cmd) 45) (= (ascii cmd) 95)) ;"-"、"_"、
  14.      (setq f_n (findfile"acad.pgp"))
  15.      (setq o_p (open f_n "r"))
  16.      )
  17.     (progn
  18.       (while (and (setq str (read-line o_p))
  19.       (or (= str "") (= (substr str 1 1) " ") (wcmatch str ";*")
  20.           (not (wcmatch (strcase str) (strcat (strcase cmd) "`,*`**")))
  21.           )))
  22.       (if (and str (wcmatch (strcase str) (strcat (strcase cmd) "`,*`**")))
  23.   (setq rtn t)
  24.   (setq rtn nil)
  25.   )
  26.       (if o_p (close o_p))
  27.       )
  28.     (setq rtn nil)
  29.     )
  30.   (cond
  31.     (rtn (princ (strcat "\n函数名"" CMD ""\t与ACAD.PGP中命令的简写重名了;")))
  32.     ((or (= (eval (read (strcat "(type c:" cmd ")"))) 'SUBR)
  33.    (= (eval (read (strcat "(type c:" cmd ")"))) 'USUBR)
  34.    )
  35. ;     (princ (strcat "\n函数名"C:" CMD ""\t已定义,并已加载到系统了;"))
  36.      (setq rtn t)
  37.      )
  38.     ((getcname cmd)
  39.      (princ (strcat "\n"" CMD ""\t是CAD系统内置命令;"))
  40.      (setq rtn t)
  41.      )
  42.     ((member (strcase CMD) (atoms-family 1))
  43.      (princ (strcat "\n"" CMD ""\t是CAD系统内置函数;"))
  44.      (setq rtn t)
  45.      )
  46.     (T (setq rtn nil))
  47.     )
  48.   rtn)
  49. ;;;=======================================================================
发表于 2015-11-5 09:56 | 显示全部楼层
感谢你的分享
发表于 2015-11-5 12:09 | 显示全部楼层
感谢你的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 00:49 , Processed in 0.201745 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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