desiree 发表于 2022-7-6 12:06:30

标题栏

大家好。。。
我想知道是否有人有lisp或批处理例程可以帮助我。在我们图纸的标题栏中,有一部分是对勾首字母和日期。我们有大约600张需要填写的图纸,我们不想一张一张地看所有的图纸。
 
我知道批处理命令可以处理相当多的图形,但不知道是否可以更改我们需要的位。
 
谢谢你的帮助。
Des公司

Freerefill 发表于 2022-7-6 12:12:26

如果你能写,我可以批量处理。
 
编写一个LISP来用属性填充块中的数据很容易,只需要知道属性的名称和要填充的数据(以及用户将如何输入该数据,它是动态的还是LISP的一部分?),街区的名字之类的。
 
出于批量目的,我的签名中有一个批量引擎,您可以查看。我承认它不太友好,但它对我很有用,我毫不怀疑我可以在几分钟内将块属性编辑LISP应用到它。

desiree 发表于 2022-7-6 12:13:50

我也需要Lisp程序的帮助。我还没有掌握它们,老实说,我还没有写一个有效的。
 
如果有人能写一个让我知道需要的信息,我会提供它。
 
这将是一个很大的帮助

Freerefill 发表于 2022-7-6 12:18:24

试试这个。它会提示您选择所需的块,但我们可以进行操作。我只是想看看这是否在做你想做的事情。
 
注意,它会要求您输入属性标记,因此在运行LISP之前,您应该知道它是什么。
 
如果可行,我们可以调整它,使其自动选择要编辑的块。
 

(defun c:blkEdit( / ent attTag attVal)
(setq ent (car (entsel "\nSelect block: "))
   attTag (getstring "\nEnter attribute tag: ")
   attVal (getstring "\nEnter desired value for attribute: "))
(blkTagEdit ent attTag attVal)
)

(defun blkTagEdit(blkEnt attTag attVal / attEnt attLst)
(if (= (cdr (assoc 66 (entget blkEnt))) 1)
   (progn
   (setq attEnt (entnext blkEnt))
   (while (/= (cdr (assoc 0 (entget attEnt))) "SEQEND")
   (if attEnt (setq attLst (cons (cons (cdr (assoc 2 (entget attEnt))) attEnt) attLst)))
   (setq attEnt (entnext attEnt)))
   (if attLst (mapcar '(lambda (x) (vla-put-textString (vlax-ename->vla-object (cdr x)) attVal))
            (vl-remove-if-not '(lambda (x) (= (car x) attTag)) attLst)))
   )
   )
(princ)
)

autouser 发表于 2022-7-6 12:19:33

嗨,freerefill,
 
我也在寻找作为属性输入回块的方法。我已经用eattext创建了excel文件。有没有办法导入excel文件以阻止修改后的属性图形?谢谢

Freerefill 发表于 2022-7-6 12:25:25

我没有太多使用eattext,但我相信你应该能够导入你需要的任何东西。你只需要知道如何把一切联系在一起,也就是说,什么信息去哪里。

fixo 发表于 2022-7-6 12:25:53

 
我有一个类似的关于你需要什么的
不幸的是,我不是源代码的所有者
-我把它给了我的朋友,所以我也不能编辑它
看看它将如何为你工作-首先尝试你的备份文件夹!
 
~'J'~
咖啡拉链

fixo 发表于 2022-7-6 12:31:17

忘了说我在两台机器上测试了它(A2008eng)
 
~'J'~

autouser 发表于 2022-7-6 12:34:16

你好,谢谢。。。。但我实际上是如何做到的,因为我不太熟悉autocad中的编码。我只想导出标题栏中的一些属性,修改它们并将它们导入到完全相同的位置。谢谢

fixo 发表于 2022-7-6 12:36:12

 
您可以尝试使用此例程导出标题栏
 
~'J'~
tex.LSP
页: [1] 2
查看完整版本: 标题栏