如何将隐藏acad.lin更改为隐藏acadiso.lin
我们有一些使用acad.lin线型创建的度量图,有人知道如何用vba更改它吗?我收到一个“重复记录名称”错误
ThisDrawing.Linetypes.Load “HIDDEN”,“acadiso.lin”
**** Hidden Message *****
您需要检查linetype是否尚未加载...
我在一些c#函数中所做的是:
LinetypeTable tbl = tr.GetObject(db.LinetypeTableId, OpenMode.ForRead, false) as LinetypeTable;
if (!tbl.Has(linetypeName))
db.LoadLineTypeFile(linetypeName, "acad.lin");
我知道这是一个vba问题......:丑陋:
Luis我正在尝试重新加载每个linetype,它将被加载。
Cad提供了这个重新加载选项(Linetype Yada已经加载,您想重新加载吗?)
但我在vba中没有看到重新加载选项 我甚至不知道如何向它发送命令,因为在“-linetype l hidden”之后出现了一个框。 "-linetype l"&sName&vbCr&vbCr&"y"似乎适用于esc或2。
我忘记先设置filedia(有一段时间没有使用sendCommand)
Luis我以为你发布了一些C#,如果我记得的话,我会试一试。 什么版本的autocad?我关闭了filedia,它加载了w/o要求我覆盖,它就这样做了
我删除了该代码,因为不正确.... 设置
Thisdrawing.setvariable "EXPERT", 3
之前
hth~'J'~ 我使用的是2008200720062004。
当存在同名的现有线型时,我会请求覆盖
Thisdrawing.setvariable "EXPERT", 3
这确实可以解释
如果这种情况发生在其他人身上,以下操作(结合w/a文件夹功能)似乎可行。
Sub ChangeLinetypes()
Dim L As AcadLineType
Dim Ls As AcadLineTypes
Dim sName As String
Dim sPath As String
Dim sCommand As String
ThisDrawing.SetVariable "filedia", 0
ThisDrawing.SetVariable "celtscale", 1
ThisDrawing.SetVariable "PSLTSCALE", 1
ThisDrawing.SendCommand "insunits 4 "
sPath = "C:\Documents and Settings\Your handle\Application Data\Autodesk\AutoCAD Mechanical 2008\R17.1\enu\Support\acadiso.lin"
sCommand = "-linetype l "
Set Ls = ThisDrawing.Linetypes
For Each L In Ls
sName = L.Name
If InStr(1, sName, "|", vbTextCompare)0 Then GoTo skip
Select Case sName
Case "ByBlock", "ByLayer", "Continuous"
GoTo skip
End Select
sCommand = "-linetype l " & sName & vbCr & vbCr & "y "
ThisDrawing.SendCommand sCommand
esc
esc
esc
skip:
Next
esc
esc
ThisDrawing.SetVariable "filedia", 1
End Sub
嗨Bryco
只有一个问题,据我所知
acadiso.lin他们只用公制单位
也许我错了
~'J'~
页:
[1]
2