adamsdr3 发表于 2022-7-5 18:33:17

图纸集图纸编号

首先,我要说的是,我在excel VBA方面比在autoCAD VBA方面熟练得多。
 
我有大约200张图纸。一半的页码只是数字,另一半是末尾带D的数字。如果页码有一个破折号,我想在D前面加一个破折号。基本上,我需要做这个
 
1.
1D
2.
2D
3.
3D
 
看起来像这样
 
1.
1-D
2.
2-D
3.
三维
 
如果有帮助的话,我在excel中写了一些东西,但我不知道如何为每个图形指定图纸集甚至图纸编号属性。。。以下是我在excel中写的内容。它很简单,效果很好。
 
Public Sub demolition()

For Each cell In Range("E6:E13")

If Right(cell.Text, 1) = "D" Then

cell.Value = Left(cell.Text, Len(cell.Text) - 1)

End If

Next cell


End Sub

Lt Dan's l 发表于 2022-7-5 18:43:05

它是文本还是块属性?单个图纸?所有视口都是一个,但不同?
 
 
 
 
我不确定这是否有帮助,但。。。

(setq lst '("1" "1D" "2" "3" "3D" "4"))

(repeat (setq n (length lst))
(and (wcmatch (strcase (nth (setq n (1- n)) lst)) "*D")
   (setq lst
   (subst (vl-string-subst "-D" "D" (nth n lst))
       (nth n lst) lst
   )
   )
)
)

adamsdr3 发表于 2022-7-5 18:44:50

它既不是文本也不是块属性。它们都是具有不同视口的单个dwg。我基本上只需要更改sheetset中的sheet number属性

Lt Dan's l 发表于 2022-7-5 18:51:57

选项卡名称?或图纸(dwg)名称?原谅我的无知,我已经80年没有处理床单了

adamsdr3 发表于 2022-7-5 18:53:46

每个图纸集都有子集(我认为您称之为选项卡)。子集中包含图纸。图纸集中的每个图纸有2个属性;图纸编号和图纸标题。我需要运行的代码影响图纸编号。

Lt Dan's l 发表于 2022-7-5 19:02:49

仅适用于活动文档。
 
对于多个DWG,
(vlax-for x (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object)))
(and (setq n (strcase (vla-get-name x)))
   (eq (substr n (setq nl (strlen n)) 1) "D")
   (vla-put-name x (strcat (substr n 1 (1- nl)) "-D"))
)
)


(vlax-for d (vla-get-documents (vlax-get-acad-object))
(vlax-for x (vla-get-Layouts d)
   (and (setq n (strcase (vla-get-name x)))
      (eq (substr n (setq nl (strlen n)) 1) "D")
   (vla-put-name x (strcat (substr n 1 (1- nl)) "-D"))
   )
)
)

adamsdr3 发表于 2022-7-5 19:06:07

谢谢你的帮助。在我在我制作的测试图纸集上运行它之前,它如何选择它运行的图纸集?是当前处于活动状态的集合吗?

Lt Dan's l 发表于 2022-7-5 19:10:26

查看gif。我希望这就是你想要的(祈祷吧)

adamsdr3 发表于 2022-7-5 19:13:22

我真的完全迷路了。我阅读了如何加载LSP文件。我将文本粘贴到记事本中,并用一个。LSP扩展。然后我将其加载到autocad中,并在提示符中键入名称。结果如下。
 
很抱歉Lisp还是新手http://imgur.com/QCeXiC2

Tharwat 发表于 2022-7-5 19:21:49

Dan,虽然图纸集无法修改,或者换句话说AutoLISP根本无法访问图纸集,但图纸集与布局不同。
页: [1] 2
查看完整版本: 图纸集图纸编号