
如何通过 cad 里面的lisp 获得数据;该如何书写
如何通过点击cad里面的文字获得以下数据1。如何获得例如%%1328@100中的8100(注其中%%132为刚钢筋等级代号)2..如何获得例如2%%13218;3%%13...
如何通过点击cad里面的文字获得以下数据
1。如何获得例如 %%1328@100 中的8 100 (注其中%%132为刚钢筋等级代号)
2..如何获得例如 2%%13218;3%%13216 里面的2%%13218 展开
1。如何获得例如 %%1328@100 中的8 100 (注其中%%132为刚钢筋等级代号)
2..如何获得例如 2%%13218;3%%13216 里面的2%%13218 展开
4个回答
展开全部
请参考下列程序:
;*把字符串表示的表转化成实数表示的表
(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
;*把字符串表示的表转化成实数表示的表
(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
展开全部
获取单行文字内容,用LISP的话是(cdr(assoc 10 (entget en)))
用VLISP的话是(vla-get-textstring obj)
文字内容的截取可以用substr函数
用VLISP的话是(vla-get-textstring obj)
文字内容的截取可以用substr函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可否补充下你的问题,你是想获得数据后进行什么操作呢?替换?还是仅仅只是获取?推荐答案的兄弟回答的只是将已知变量字串中的固定字符串取出并赋值给另一个变量,我想应该不是你要的结果吧。望补充,好为您解答。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、
(setq a "%%1328@100"
b (vl-string-subst "" "%%132" a)
c (vl-string-subst " " "@" b)
e (read (strcat "(" c ")"))
)
2、
(setq a1 "2%%13218;3%%13216"
b1 (vl-string-subst " " ";" a1)
c1 (read (strcat "(" b1 ")"))
e1 (mapcar '(lambda(x)(vl-prin1-to-string x)) c1)
)
(setq a "%%1328@100"
b (vl-string-subst "" "%%132" a)
c (vl-string-subst " " "@" b)
e (read (strcat "(" c ")"))
)
2、
(setq a1 "2%%13218;3%%13216"
b1 (vl-string-subst " " ";" a1)
c1 (read (strcat "(" b1 ")"))
e1 (mapcar '(lambda(x)(vl-prin1-to-string x)) c1)
)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询