Stephen Shafer 发表于 2022-7-6 09:25:34

AutoLISP将文本转换为bl

好的,我四处搜索了一下,但显然没有正确的方法来表达这个。基本上我有电流AL来处理电流块。我有一个新客户,他向我提供了我通常会亲自输入的信息。我想让涉及AutoLISP的东西获取一段文本并将该信息放入当前块,或者当前AutoLISP可以处理的类似内容,这样我仍然可以从现在向我提供此信息的客户那里获得好处

wizman 发表于 2022-7-6 09:36:48

托尼·霍奇基斯先生收到了短信2att。LSP看看cadalyst。通用域名格式

Stephen Shafer 发表于 2022-7-6 09:43:04

维斯曼,这是一个很好的开始,谢谢你的领导。这实际上做了很多我需要它做的事情。它看起来也正是我需要的样子。现有块有三个属性,这有一个。基本上,我的当前块有街道名称(通过选择当前街道名称的块派生),然后是地址和单元数。我想做的是选择街道名称,然后选择一系列地址(当前在文本中),然后将所有这些信息放置在一个块中,每个文本块将类似于我的当前块,这样我就可以在其上使用另一个LISP。谢谢

wizman 发表于 2022-7-6 09:45:48

斯蒂芬,请你贴一张带有属性块的示例图。所以这里的人可以看看你的目标。

cadplayer 发表于 2022-7-6 09:54:54

我找不到lisp
 
内容提供商

Lee Mac 发表于 2022-7-6 10:00:12

你想成为什么样的球童?

cadplayer 发表于 2022-7-6 10:04:34

 
我认为用attribute在块中转换文本会很好。我在cadalyst上找不到这个工具。

Lee Mac 发表于 2022-7-6 10:09:40

 
在块上使用BEDIT,然后使用它将文本转换为属性定义:
 

;;-------------------=={ Text 2 Attribute }==-----------------;;
;;                                                            ;;
;;Converts single-line text to an attribute definition.   ;;
;;------------------------------------------------------------;;
;;Author: Lee Mac, Copyright © 2011 - www.lee-mac.com       ;;
;;------------------------------------------------------------;;

(defun c:txt2att ( / el i ss st ) (vl-load-com)

(if (setq ss (ssget "_:L" '((0 . "TEXT"))))
   (repeat (setq i (sslength ss))
   (setq el (entget (ssname ss (setq i (1- i))))
         st (vl-string-translate " " "_" (cdr (assoc 1 el)))
   )
   (if
       (entmakex
         (append '((0 . "ATTDEF"))
         (vl-remove-if '(lambda ( pair ) (member (car pair) '(0 100 73))) el)
         (list
             (cons 700)
             (cons 74 (cdr (assoc 73 el)))
             (cons2 st)
             (cons3 st)
         )
         )
       )
       (entdel (cdr (assoc -1 el)))
   )
   )
)
(princ)
)

cadplayer 发表于 2022-7-6 10:17:10

是的,这很好。可以在一个块中做属性吗。
这意味着转换attribute中的文本并粘贴到块中。

Lee Mac 发表于 2022-7-6 10:25:06

我想你的要求与我刚才提供的相反?是的,这是可能的,遵循与我之前代码中相同的方法。
页: [1] 2
查看完整版本: AutoLISP将文本转换为bl