ynhh 发表于 2014-2-7 11:18:15

用变量名达到同时画点和写变量名字的功能

本帖最后由 ynhh 于 2014-2-7 16:02 编辑

在编写地形点位的局部变量名比如为

AA BB CC DD EE

我想在这些变量名的位置画一个点并同时写入变量名字

这样好查看变量名的位置和编号

在输入变量名 AA BB CC DD EE

之后我是分两步走要输入两次变量名

感觉有点麻烦

请教大师,

能不能只输入一次变量名就达到同时画点和写变量名字的功能?

ll_j 发表于 2014-2-7 11:51:36

不太明白是怎样一种情况下使用,如果必须,可以看看函数read和vl-symbol-name。
另外要说的是,不管是不是使用局部变量,使用太多的变量名都不是好方法,太多的变量名占用的内存空间太多,即使及时释放,仍旧会有“碎片”,会使得系统速度减慢,所以,对于名称和点对应的情况,最好是构建关联表,便于管理也不太占太多内存。
如果一定要用多变量,不妨再看看函数set和eval,或许能有些帮助。

ynhh 发表于 2014-2-7 12:41:15

ll_j 发表于 2014-2-7 11:51 static/image/common/back.gif
不太明白是怎样一种情况下使用,如果必须,可以看看函数read和vl-symbol-name。
另外要说的是,不管是不是 ...

感谢大师的指点
我所想的只是把编写程序是的一些点位的变量名
很方便的在草图中标上点号及名字
以便将来程序修改时好对上位置

xyp1964 发表于 2014-2-7 13:29:39

;; 未经测试(foreach a (list "AA" "BB" "CC" "DD" "EE")
(command "text" "j" "mc" (read a) 300 0 a "")
)

ynhh 发表于 2014-2-7 16:02:23

感谢大师的指点,我想达到的是这样的效果
当已知如下点位时

(setq AA '(3 0 ))
(setq BB '(5 6 ))
(setq CC '(8 4 ))
(setq DD '(2 7 ))

用一个命令同时达到如下图,同时画点并在点位上写入变量名字的功能

xyp1964 发表于 2014-2-7 19:53:27

ynhh 发表于 2014-2-7 16:02 static/image/common/back.gif
感谢大师的指点,我想达到的是这样的效果
当已知如下点位时



(defun c:tt ()
(setq AA '(3 0)
        BB '(5 6)
        CC '(8 4)
        DD '(2 7)
)
(setvar "pdmode" 35)
(foreach a (list "AA" "BB" "CC" "DD")
    (setq pt (eval (read a))
          p1 (polar pt (* pi 0.5) 0.5)
    )
    (command "point" pt)
    (command "text" "j" "mc" p1 0.5 0 a)
)
(princ)
)

重慶崽兒 发表于 2014-2-7 20:26:07

赞同沙发上大大的见解,最好用set函数和eval函数来录入
但按照楼主的问题的话,楼上版主大大的代码无疑是很好的,但同样会有一个问题,就是会面临无限制增加变量,我觉得还是用set函数和eval逐个录入比较好!

蓝图测绘 发表于 2014-2-7 20:26:24

就是测量上的展野外测点点号的效果

lyqiezi 发表于 2014-2-7 22:51:40

是否把数据做成excel表格,再读取表格内容会更好一点

ynhh 发表于 2014-2-10 15:18:40

xyp1964 发表于 2014-2-7 19:53 static/image/common/back.gif


衷心感谢版主的热心指点,谢谢您。
你的程序很好,也能正常运转,但我的初衷想法是这样的
(setq        AA '(3 0)
        BB '(5 6)
        CC '(8 4)
        DD '(2 7)
);这部分是编程过中的已知变量(已含赋值)
(setq A-D '(AA BB CC DD));这是把各个变量编号方便输入成表
再根据表 A-D 来达到同时画点及编号功能

请您有空时再指点一下,谢谢
页: [1] 2
查看完整版本: 用变量名达到同时画点和写变量名字的功能