ksperopoulos 发表于 2022-7-6 07:09:35

对象附着多重引线

我正在尝试创建一个lisp,它读取一个对象的Z高程,并将其写入多重引线的文本中,同时使多重引线(带文本)与该对象相关联。我首先尝试读取高程并将其写入多重引线文本。该对象是一段管道,具有顶部和底部标高。有没有办法只读其中一个?如果是这样,有没有办法只读取数字而不读取前缀和数字?

Tharwat 发表于 2022-7-6 07:20:56

例如
 

(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\""

Dadgad 发表于 2022-7-6 07:30:27

我建议您首先创建一个字段,该字段指向您指定的对象。
一旦确定了该对象,将在
字段定义对话框。
我想你可以从这个列表中选择一个。
此外,如果您愿意,可以在该信息中添加前缀或后缀,
我相信它将完全以数字的形式显示出来。
一旦你掌握了场创建的诀窍,你就可以
创建自定义多重引线,并将此类字段插入或作为属性包含在内。
 
从Ammobake看到这篇文章http://www.cadtutor.net/forum/showthread.php?75747-是否可以选择圈出多重引线文本
因为这可能会有帮助。
 
塔瓦去救援!
塔瓦特很可能使我的建议过时了,这是一件好事。

ksperopoulos 发表于 2022-7-6 07:36:58

 
管道是用第三方程序绘制的,当我尝试使用字段时,这些属性不可用。不过谢谢你的建议。
 
@塔瓦-谢谢你的帮助。PeelString接受通配符吗?

Tharwat 发表于 2022-7-6 07:44:34

 
不客气,
 
 
不,没有,你对通配符有什么想法?

Lee Mac 发表于 2022-7-6 07:52:50

下面是一个“控制台演示”,为您指明了正确的方向:
 
_$ (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

ksperopoulos 发表于 2022-7-6 08:09:04

 
如果前缀“BOT”更改,我可以在其位置上使用通配符来捕捉其位置上的任何内容。

Tharwat 发表于 2022-7-6 08:16:19

 
我的函数PeelString从字符串中删除所有字母字符,不管字符是什么,它都会被删除。
页: [1]
查看完整版本: 对象附着多重引线