对象附着多重引线
我正在尝试创建一个lisp,它读取一个对象的Z高程,并将其写入多重引线的文本中,同时使多重引线(带文本)与该对象相关联。我首先尝试读取高程并将其写入多重引线文本。该对象是一段管道,具有顶部和底部标高。有没有办法只读其中一个?如果是这样,有没有办法只读取数字而不读取前缀和数字?例如
(defun PeelString (st / s)
(if (eq (type st) 'STR)
(progn (foreach x (vl-string->list st)
(if (not (or (< 65 x 90) (< 97 x 122)))
(setq s (cons x s))
)
)
(vl-list->string (reverse s))
)
)
)
(peelstring"TOP 11'-7 1/4\", BOT 10' -10 5/8\"")
后果
" 11'-7 1/4\",10' -10 5/8\"" 我建议您首先创建一个字段,该字段指向您指定的对象。
一旦确定了该对象,将在
字段定义对话框。
我想你可以从这个列表中选择一个。
此外,如果您愿意,可以在该信息中添加前缀或后缀,
我相信它将完全以数字的形式显示出来。
一旦你掌握了场创建的诀窍,你就可以
创建自定义多重引线,并将此类字段插入或作为属性包含在内。
从Ammobake看到这篇文章http://www.cadtutor.net/forum/showthread.php?75747-是否可以选择圈出多重引线文本
因为这可能会有帮助。
塔瓦去救援!
塔瓦特很可能使我的建议过时了,这是一件好事。
管道是用第三方程序绘制的,当我尝试使用字段时,这些属性不可用。不过谢谢你的建议。
@塔瓦-谢谢你的帮助。PeelString接受通配符吗?
不客气,
不,没有,你对通配符有什么想法? 下面是一个“控制台演示”,为您指明了正确的方向:
_$ (setq s "TOP 11'-7 1/4\", BOT 10'-10 5/8\"")
"TOP 11'-7 1/4\", BOT 10'-10 5/8\""
_$ (setq i (vl-string-position 44 s))
14
_$ (setq a (substr s 5 (- i 4)))
"11'-7 1/4\""
_$ (setq b (substr s (+ i 7)))
"10'-10 5/8\""
_$ (distof a 4)
139.25
_$ (distof b 4)
130.625
如果前缀“BOT”更改,我可以在其位置上使用通配符来捕捉其位置上的任何内容。
我的函数PeelString从字符串中删除所有字母字符,不管字符是什么,它都会被删除。
页:
[1]