图纸集图纸编号
首先,我要说的是,我在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 它是文本还是块属性?单个图纸?所有视口都是一个,但不同?
我不确定这是否有帮助,但。。。
(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
)
)
)
) 它既不是文本也不是块属性。它们都是具有不同视口的单个dwg。我基本上只需要更改sheetset中的sheet number属性 选项卡名称?或图纸(dwg)名称?原谅我的无知,我已经80年没有处理床单了 每个图纸集都有子集(我认为您称之为选项卡)。子集中包含图纸。图纸集中的每个图纸有2个属性;图纸编号和图纸标题。我需要运行的代码影响图纸编号。 仅适用于活动文档。
对于多个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"))
)
)
)
谢谢你的帮助。在我在我制作的测试图纸集上运行它之前,它如何选择它运行的图纸集?是当前处于活动状态的集合吗? 查看gif。我希望这就是你想要的(祈祷吧)
我真的完全迷路了。我阅读了如何加载LSP文件。我将文本粘贴到记事本中,并用一个。LSP扩展。然后我将其加载到autocad中,并在提示符中键入名称。结果如下。
很抱歉Lisp还是新手http://imgur.com/QCeXiC2 Dan,虽然图纸集无法修改,或者换句话说AutoLISP根本无法访问图纸集,但图纸集与布局不同。
页:
[1]
2