(defun c:try( / p);定义命令行命令“try”,定义局部变量“p”
(setq p (getpoint "from point: "));利用交互获得一个点,将该点坐标存入变量“p”当中
(command "PLINE");利用命令行启动“PLINE”多段线命令,
(while p;循环开始,当p不为空(即交互时一直给出下一点)时,无限循环。
(command p);将p的值(用户给出或选定的坐标点)输入至命令行,做为“PLINE”命令的参数。
(setq p (getpoint "to point: "));获取下一点坐标,重新存入变量p中
)
(command);等同于按下空格或回车键,用于结束“PLINE”命令
)
你指的是否CASS的地物编码?如果是就好办了。
CASS把地物编码储存在名为SOUTH的扩展数据里。获取扩展数据可用ENTGET搭配扩展数据名称来获取。
如下:
(defun $getCASSProperty(#elementName / @ElementList @CASSAppList @CASSProperty)(setq @ElementList
(entget #elementName '("SOUTH"))
)
(setq @CASSAppList (assoc -3 @ElementList))
(setq @CASSProperty (cdr(cadadr @CASSAppList)))
(if (not @CASSproperty)
(princ "\n该图元CASS属性不存在。")
(princ (strcat "\nCASS属性为:" @CASSProperty))
)
)
定义函数$getCASSProperty获取指定图元的CASS属性,如果要做成CAD命令,再加上以下:
(defun c:GCASS(/ @myElement)(setq @myElement (car(entsel "\n选择需要获取CASS属性的图元:")))
($getCASSProperty @myElement)
(princ)
)
之后用CAD命令GCASS即可。
应当可以吧,思路就是命令是唯一的,查找这个命令就能够找到文件夹:
按CAD里面的lisp为例,首先搜索acaddoclsp为后缀的文件,这个文件是自动加载文件,打开文件,读取内容,得到文件名,然后按文件名搜索,搜索一个文件就打开,读取字串符,如果命令为(DEFUN C:TES ,注意里面有空格,把字串符全部变大写进行比较,那么搜索这个字串符内容,如果找到,那么就是你要搜索的文件全路径了。如果是子命令也同样这样搜索。我想,在CAD里面使用命令也是这样来搜索的。
具体的没有测试。
请参考下列程序:
;把字符串表示的表转化成实数表示的表
(defun release (l / flag count slength single data itemlist temp)
(if l (progn
(foreach item l
(setq count 1 flag T slength (strlen item) itemlist nil )
(while (<= count slength)
(setq single (substr item count 1))
(if (member single '("X" "x" ""))
(progn
(setq data (atof (substr item 1 (1- count))))
(repeat (atoi (substr item (1+ count)))
(setq itemlist (append itemlist (list data))))
(setq count (1+ slength) flag nil)
);progn
(setq count (1+ count))
);if
);while
(if flag
(setq temp (append temp (list (atof item))))
(setq temp (append temp itemlist))
);if-flag
);foreach
temp
));if-progn
);release
以上就是关于CAD lisp程序注释解析全部的内容,包括:CAD lisp程序注释解析、怎么用lisp代码提取cass属性、有没有方法可以获取正在执行的LISP文件的全路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)