Bryco 发表于 2007-8-13 18:58:49

如何将隐藏acad.lin更改为隐藏acadiso.lin

我们有一些使用acad.lin线型创建的度量图,有人知道如何用vba更改它吗?
我收到一个“重复记录名称”错误
ThisDrawing.Linetypes.Load “HIDDEN”,“acadiso.lin”
**** Hidden Message *****

Bryco 发表于 2007-8-13 19:07:26


您需要检查linetype是否尚未加载...
我在一些c#函数中所做的是:
LinetypeTable tbl = tr.GetObject(db.LinetypeTableId, OpenMode.ForRead, false) as LinetypeTable;
if (!tbl.Has(linetypeName))
   db.LoadLineTypeFile(linetypeName, "acad.lin");

我知道这是一个vba问题......:丑陋:

Bryco 发表于 2007-8-13 19:44:08

Luis我正在尝试重新加载每个linetype,它将被加载。
Cad提供了这个重新加载选项(Linetype Yada已经加载,您想重新加载吗?)
但我在vba中没有看到重新加载选项

Bryco 发表于 2007-8-13 19:46:23

我甚至不知道如何向它发送命令,因为在“-linetype l hidden”之后出现了一个框。

Fatty 发表于 2007-8-14 10:07:26

"-linetype l"&sName&vbCr&vbCr&"y"似乎适用于esc或2。
我忘记先设置filedia(有一段时间没有使用sendCommand)
Luis我以为你发布了一些C#,如果我记得的话,我会试一试。

Bryco 发表于 2007-8-14 10:13:08

什么版本的autocad?我关闭了filedia,它加载了w/o要求我覆盖,它就这样做了

Fatty 发表于 2007-8-14 10:14:01


我删除了该代码,因为不正确....

Bryco 发表于 2007-8-14 14:25:52

设置
Thisdrawing.setvariable "EXPERT", 3
之前
hth~'J'~

Fatty 发表于 2007-8-14 16:21:22

我使用的是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 发表于 2007-8-15 10:36:54

嗨Bryco
只有一个问题,据我所知
acadiso.lin他们只用公制单位
也许我错了
~'J'~
页: [1] 2
查看完整版本: 如何将隐藏acad.lin更改为隐藏acadiso.lin