从多行文字中删除字符
我正在尝试从多行文字中删除连字符。连字符并不总是在同一位置。这是我试图做的一个例子:12-1/4英寸至12 1/4英寸
有人能告诉我如何实现这一目标的正确方向吗?非常感谢。 [列表]
[*]提示用户选择多行文字(entsel)
[*]检索多行文字DXF数据(entget)
[*]检索多行文字内容(DXF组1:cdr/assoc)
[*]检索连字符在字符串中的位置(如果存在)(vl字符串搜索/vl字符串位置)
[*]从字符串中删除连字符(substr)*
[*]用新内容更新DXF数据(subst)
[*]修改多行文字实体(entmod)
[/列表]
*有几种替代方法可以实现这一步骤:
[列表]
[*]用连字符替换空字符串(vl string subst)
[/列表]
或:
[列表]
[*]将字符串转换为ASCII字符列表(vl string->list)
[*]删除连字符(vl Remove)
[*]将ASCII字符列表转换回字符串(vl list->字符串)
[/列表] 谢谢李。我会给这些一个镜头,并张贴更新后。 李-这似乎有效。谢谢你的帮助!
(defun c:testsize ( / obj lay sz1 sz2)
(vl-load-com)
(setq obj (entget (car (entsel "\nSelect Object"))))
(setq lay (cdr (assoc 8 obj)))
(setq sz1 (cdr (nth 9 obj)))
(setq sz2 (vl-string-subst " " "-" sz1))
(command "clayer" (strcat lay "-SIZE"))
(command "mleader" pause pause (strcat sz2 "\""))
(princ)
)
页:
[1]