明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1415|回复: 2

[已解决]popup_list

[复制链接]
发表于 2009-7-6 19:00:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-7-9 19:24:32 编辑

我做了一个popup_list用来切换文字样式,各种切换都没有问题

只是默认的选择有点问题,我想将文字样式保存一个全局变量,以便下次运行命令时默认选择文字样式

但popup_list用"set_tile"设定的值是序列号,非实际内容,所以……

问题如下:

(setq a "RMC")

(setq b (LIST "RMS" "DIMTXT" "RMC" "NM"))

麻烦帮忙写个函数,返回变量A在变量B里的位置,

最好返回的是整数,我才能用nth直接提取表来获得文字样式

照理来说这个应该是个很简单的函数才对,可是我写了一下午都不行……

麻烦各位了

还有,全局变量有个问题,我在一个图档获取文字样式的变量后,再重新打开一个图档

再运行这个命令的时候,文字样式的变量还存在,但这个新打开的图档中可能不存在这个文字样式了

能不能在每次重新打开图档的时候将全局变量设定为Nil,如何实现?

发表于 2009-7-6 21:09:00 | 显示全部楼层
多看看书再问
vl-position
 

返回指定表项目的索引

(vl-position  symbol list)

参数

symbol

任意 AutoLISP 符号。

list

表。

返回值

整数,包含 symbol 在 list 中的索引位置。如果在表中不存在 symbol,则返回 nil。

请注意表中第一个元素的索引为 0,第二个元素的索引为 1,依此类推。

示例

_$ (setq stuff (list "a" "b" "c" "d" "e"))
("a" "b" "c" "d" "e")
_$ (vl-position "c" stuff)
2
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2009-7-6 22:31:00 | 显示全部楼层
本帖最后由 作者 于 2009-7-6 22:53:47 编辑

谢谢不死猫

不是我看书,只是书的归类里面没有这个

所有字符串处理函数,所有表处理函数都不包括这个

翻了我一下午的书,白弄了一个下午

不过总之是解决了,谢谢不死猫

不过:问题又来了:怎么让函数不区分大小写?

_$ (setq stuff (list "a" "b" "c" "d" "e"))
("a" "b" "c" "d" "e")
_$ (vl-position "C" stuff)
nil
单个字母的话好说,但如果是一组字符呢?
(想一想,还是在把字符样式组成表之前转成大写,应该就OK了,嗯嗯。理论上应该是这样没错)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 15:19 , Processed in 0.156543 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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