ksperopoulos 发表于 2022-7-5 23:59:17

从多行文字中删除字符

我正在尝试从多行文字中删除连字符。连字符并不总是在同一位置。这是我试图做的一个例子:
 
12-1/4英寸至12 1/4英寸
 
有人能告诉我如何实现这一目标的正确方向吗?非常感谢。

Lee Mac 发表于 2022-7-6 00:20:46

[列表]
[*]提示用户选择多行文字(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->字符串)
[/列表]

ksperopoulos 发表于 2022-7-6 00:46:22

谢谢李。我会给这些一个镜头,并张贴更新后。

ksperopoulos 发表于 2022-7-6 01:10:57

李-这似乎有效。谢谢你的帮助!
 
(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]
查看完整版本: 从多行文字中删除字符