Bryco 发表于 2006-7-11 15:31:40

ARCHTICK问题

当我使用以下设置my1/16“时1'-0“ 标注参数时,我无法将标注记号显示为Archtick,它始终显示为倾斜。本人'我已经尽我所能尝试过了
我错过了什么
Private-Sub-optarrow16th\u Click()将文本样式0设置为AcadTextStyle将新的DIMStyle设置为AcadDimStyle
将当前的DIMSTyle设置成AcadDimStyleSet TextStyle0=ThisDrawing.TextStyles.Add("DIMTXT")
TextStyle0.fontFile="单工.shx“
此绘图。SendCommand“_文本样式&vbCr&amp&引用;DIMTXT“&vbCr本图。SendCommand“_dimcen“&vbCr&3/32&vbCr作为变量Dim varData作为整数;DIMSCALE“
varData=ThisDrawing。GetVariable(sysVarName)
设置新的DIMSTYLE=ThisDrawing.DimStyles.Add(“My\u Arch”)
本图纸。SendCommand“_“图形”&vbCr本图。ActiveDimStyle=newDimStile此绘图。SendCommand“;DIMADEC“&vbCr&2&vbCr本图。SendCommand“;DIMALT“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMALTD“&vbCr&2&vbCr本图。SendCommand“;DIMALTF“&vbCr&25.4和;vbCr本图。SendCommand“;“DIMALTRND”&vbCr&0&vbCr本图。SendCommand“;DIMALTTD“&vbCr&2&vbCr本图。SendCommand“;DIMALTTZ“&vbCr&0&vbCr本图。SendCommand“;“DIMALTU”&vbCr&2&vbCr本图。SendCommand“;“DIMALTZ”&vbCr&0&vbCr本图。SendCommand“;DIMAPOST“&vbCr&amp&引用&引用&vbCr本图。SendCommand“;DIMASSOC“&vbCr&1&vbCr本图。SendCommand“;DIMASZ“&vbCr&1/8和;vbCr本图。SendCommand“;DIMATFIT“&vbCr&0&vbCr本图。SendCommand“;“DIMAUNIT”&vbCr&0&vbCr本图。SendCommand“;“地马津”&vbCr&2&vbCr本图。SendCommand“;DIMBLK“&vbCr&amp&引用_ArchTick“&vbCr本图。SendCommand“;DIMBLK1“&vbCr&amp&引用_ArchTick“&vbCr本图。SendCommand“;DIMBLK2“&vbCr&amp&引用_ArchTick“&vbCr本图。SendCommand“;DIMCEN“&vbCr&0&vbCr本图。SendCommand“;DIMCLRD“&vbCr&0&vbCr本图。SendCommand“;DIMCLRE“&vbCr&0&vbCr本图。SendCommand“;DIMCLRT“&vbCr&256&vbCr本图。SendCommand“;DIMDEC“&vbCr&3&vbCr本图。SendCommand“;Dimmle“&vbCr&1/16&vbCr本图。SendCommand“;DIMDLI“&vbCr&1/16&vbCr本图。SendCommand“;DIMDSEP“&vbCr&amp&QUOTE&引用&vbCr本图。SendCommand“;DIMEXE“&vbCr&1/16&vbCr本图。SendCommand“;DIMEXO“&vbCr&1/16&vbCr本图。SendCommand“;DIMFIT“&vbCr&5&vbCr本图。SendCommand“;DIMFRAC“&vbCr&2&vbCr本图。SendCommand“;DIMGAP“&vbCr&1/64和;vbCr本图。SendCommand“;DIMJUST“&vbCr&amp&引用;0“&vbCr本图。SendCommand“;DIMLDRBLK“&vbCr&amp&引用&引用&vbCr本图。SendCommand“;DIMLFAC“&vbCr&1&vbCr本图。SendCommand“;DIMLIM“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;“DIMLUNIT”&vbCr&4&vbCr本图。SendCommand“;DIMLWD“&vbCr&amp-1&vbCr本图。SendCommand“;DIMLWE“&vbCr&amp-1&vbCr本图。SendCommand“;DIMPOST“&vbCr&amp&引用&引用&vbCr本图。SendCommand“;DIMRND“&vbCr&amp&引用;1/16“&vbCr本图。SendCommand“;DIMSAH“&vbCr&amp&引用;关于&vbCr本图。SendCommand“_dimscale“&vbCr&amp&引用;192“&vbCr本图。SendCommand“;DIMSD1“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMSD2“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMSE1“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMSE2“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMSHO“&vbCr&amp&引用;关于&vbCr本图。SendCommand“;DIMSOXD“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMTAD“&vbCr&1&vbCr本图。SendCommand“;DIMTDEC“&vbCr&3&vbCr本图。SendCommand“;DIMTFAC“&vbCr&1&pvbCr本图。SendCommand“;DIMTIH“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMTIX“&vbCr&amp&引用;关于&vbCr本图。SendCommand“;DIMTM“&vbCr&0&vbCr本图。SendCommand“;DIMTMOVE“&vbCr&1&vbCr本图。SendCommand“;DIMTOFL“&vbCr&amp&引用;关于&vbCr本图。SendCommand“;DIMTOH“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMTOL“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMTOLJ“&vbCr&1&vbCr本图。SendCommand“;DIMTP“&vbCr&0&vbCr本图。SendCommand“;DIMTSZ“&vbCr&1/32和;vbCr本图。SendCommand“;DIMTVP“&vbCr&0&vbCr本图。SendCommand“;DIMTXSTY“&vbCr&amp&引用;DIMTXT“&vbCr本图。SendCommand“;DIMTXT“&vbCr&3/32&vbCr本图。SendCommand“;DIMTZIN“&vbCr&0&vbCr本图。SendCommand“;DIMUNIT“&vbCr&6&vbCr本图。SendCommand“;DIMUPT“&vbCr&amp&引用;关闭“&vbCr本图。SendCommand“;DIMZIN“&vbCr&3&vbCr本图。SendCommand“_文本大小“&vbCr&18&vbCr本图。设置变量;DIMBLK“&引用_ArchTick“
End Sub

mohnston 发表于 2006-7-11 15:45:53

Matersammichman;首先设置setvars(不需要sendcommand),然后使用copyfrom设置dimstyle,我一次完成所有操作,因此这是几个sub的一部分
已经为leaderdimstyle Elsewhare设置了设置变量Private Sub childDimset(sDimStyle As String)
    Dim AngulardimStyle As AcadDimStyle
    Dim DiameterdimStyle As AcadDimStyle
    Dim RadialdimStyle As AcadDimStyle
    Dim LeaderdimStyle As AcadDimStyle
    Dim LineardimStyle As AcadDimStyle
    Dim activeDoc As AcadDocument
   
    With ThisDrawing
      Set activeDoc = .Application.ActiveDocument
      
      Set LineardimStyle = .DimStyles.Add(sDimStyle & "$0")
      LineardimStyle.CopyFrom activeDoc
            
      .SetVariable "DIMATFIT", 3
      .SetVariable "DIMBLK1", "."
      .SetVariable "DIMBLK2", "."
      .SetVariable "DIMCEN", 0
      .SetVariable "DIMDLE", 0
      .SetVariable "DIMDLI", 0.0625
      .SetVariable "DIMEXE", 0.125
      .SetVariable "DIMSAH", 0
      .SetVariable "DIMTAD", 0
      .SetVariable "DIMTIH", 1
      .SetVariable "DIMTMOVE", 2
      .SetVariable "DIMTOFL", 0
      .SetVariable "DIMTOH", 1
      .SetVariable "DIMUPT", 1
      Set AngulardimStyle = .DimStyles.Add(sDimStyle & "$2")
      AngulardimStyle.CopyFrom activeDoc
      
      
      Set activeDoc = .Application.ActiveDocument
      .SetVariable "DIMADEC", 1
      .SetVariable "DIMATFIT", 0
      .SetVariable "DIMCEN", 0.09125
      .SetVariable "DIMTAD", 1
      .SetVariable "DIMTIH", 0
      .SetVariable "DIMTMOVE", 0
      .SetVariable "DIMTOFL", 1
      .SetVariable "DIMTOH", 0
      
      Set DiameterdimStyle = .DimStyles.Add(sDimStyle & "$3")
      DiameterdimStyle.CopyFrom activeDoc
      
      
      Set activeDoc = .Application.ActiveDocument
      
      .SetVariable "DIMCEN", 0
      .SetVariable "DIMTOFL", 0
      Set RadialdimStyle = .DimStyles.Add(sDimStyle & "$4")
      RadialdimStyle.CopyFrom activeDoc
      
      '"$6" is ordinate
      
      .SetVariable "DIMTAD", 0
      Set LeaderdimStyle = .DimStyles.Add(sDimStyle & "$7")
      LeaderdimStyle.CopyFrom activeDoc
      
      'reset for next dimstyle
      
      .SetVariable "DIMBLK1", "ArchTick"
      .SetVariable "DIMBLK2", "ArchTick"
      .SetVariable "DIMCEN", 0.09375
      .SetVariable "DIMDLE", 0.0625
      .SetVariable "DIMDLI", 0.5625
      .SetVariable "DIMEXE", 0.0625
      .SetVariable "DIMSAH", 1
      .SetVariable "DIMTAD", 1
      .SetVariable "DIMTOFL", 1
      .SetVariable "DIMUPT", 0
               
    End With
End Sub

mohnston 发表于 2006-7-11 15:48:07

首先,我将使用SetVariable而不是SendCommand来设置变量 我在记事本中进行了这些更改,以便查找和替换,因此可能需要进行更多清理,但请尝试一下Private Sub optarrowsixteenth_Click()
Dim TextStyle0 As AcadTextStyle
Dim newDimStyle As AcadDimStyle
Dim currDimStyle As AcadDimStyle
Set TextStyle0 = ThisDrawing.TextStyles.Add("DIMTXT")
TextStyle0.fontFile = "simplex.shx"
TextStyle0.Height = 0
ThisDrawing.SetVariable "TEXTSTYLE", "DIMTXT"
ThisDrawing.SetVariable "dimcen", 3 / 32
Dim varData As Variant
Dim DataType As Integer
sysVarName = "DIMSCALE"
varData = ThisDrawing.GetVariable(sysVarName)
Set newDimStyle = ThisDrawing.DimStyles.Add("My_Arch")
ThisDrawing.ActiveDimStyle = newDimStyle
ThisDrawing.SetVariable "DIMADEC", 2
ThisDrawing.SetVariable "DIMALT", "Off"
ThisDrawing.SetVariable "DIMALTD", 2
ThisDrawing.SetVariable "DIMALTF", 25.4
ThisDrawing.SetVariable "DIMALTRND", 0
ThisDrawing.SetVariable "DIMALTTD", 2
ThisDrawing.SetVariable "DIMALTTZ", 0
ThisDrawing.SetVariable "DIMALTU", 2
ThisDrawing.SetVariable "DIMALTZ", 0
ThisDrawing.SetVariable "DIMAPOST", ""
ThisDrawing.SetVariable "DIMASSOC", 1
ThisDrawing.SetVariable "DIMASZ", 1 / 8
ThisDrawing.SetVariable "DIMATFIT", 0
ThisDrawing.SetVariable "DIMAUNIT", 0
ThisDrawing.SetVariable "DIMAZIN", 2
ThisDrawing.SetVariable "DIMBLK", "_ArchTick"
ThisDrawing.SetVariable "DIMBLK1", "_ArchTick"
ThisDrawing.SetVariable "DIMBLK2", "_ArchTick"
ThisDrawing.SetVariable "DIMCEN", 0
ThisDrawing.SetVariable "DIMCLRD", 0
ThisDrawing.SetVariable "DIMCLRE", 0
ThisDrawing.SetVariable "DIMCLRT", 256
ThisDrawing.SetVariable "DIMDEC", 3
ThisDrawing.SetVariable "DIMDLE", 1 / 16
ThisDrawing.SetVariable "DIMDLI", 1 / 16
ThisDrawing.SetVariable "DIMDSEP", "."
ThisDrawing.SetVariable "DIMEXE", 1 / 16
ThisDrawing.SetVariable "DIMEXO", 1 / 16
ThisDrawing.SetVariable "DIMFIT", 5
ThisDrawing.SetVariable "DIMFRAC", 2
ThisDrawing.SetVariable "DIMGAP", 1 / 64
ThisDrawing.SetVariable "DIMJUST", "0"
ThisDrawing.SetVariable "DIMLDRBLK", ""
ThisDrawing.SetVariable "DIMLFAC", 1
ThisDrawing.SetVariable "DIMLIM", "OFF"
ThisDrawing.SetVariable "DIMLUNIT", 4
ThisDrawing.SetVariable "DIMLWD", -1
ThisDrawing.SetVariable "DIMLWE", -1
ThisDrawing.SetVariable "DIMPOST", ""
ThisDrawing.SetVariable "DIMRND", "1/16"
ThisDrawing.SetVariable "DIMSAH", "On"
ThisDrawing.SetVariable "_dimscale", "192"
ThisDrawing.SetVariable "DIMSD1", "OFF"
ThisDrawing.SetVariable "DIMSD2", "OFF"
ThisDrawing.SetVariable "DIMSE1", "OFF"
ThisDrawing.SetVariable "DIMSE2", "OFF"
ThisDrawing.SetVariable "DIMSHO", "ON"
ThisDrawing.SetVariable "DIMSOXD", "OFF"
ThisDrawing.SetVariable "DIMTAD", 1
ThisDrawing.SetVariable "DIMTDEC", 3
ThisDrawing.SetVariable "DIMTFAC", 1
ThisDrawing.SetVariable "DIMTIH", "OFF"
ThisDrawing.SetVariable "DIMTIX", "ON"
ThisDrawing.SetVariable "DIMTM", 0
ThisDrawing.SetVariable "DIMTMOVE", 1
ThisDrawing.SetVariable "DIMTOFL", "ON"
ThisDrawing.SetVariable "DIMTOH", "OFF"
ThisDrawing.SetVariable "DIMTOL", "OFF"
ThisDrawing.SetVariable "DIMTOLJ", 1
ThisDrawing.SetVariable "DIMTP", 0
ThisDrawing.SetVariable "DIMTSZ", 0.09375
ThisDrawing.SetVariable "DIMTVP", 0
ThisDrawing.SetVariable "DIMTXSTY", "DIMTXT"
ThisDrawing.SetVariable "DIMTXT", 0.09375
ThisDrawing.SetVariable "DIMTZIN", 0
ThisDrawing.SetVariable "DIMUNIT", 6
ThisDrawing.SetVariable "DIMUPT", "OFF"
ThisDrawing.SetVariable "DIMZIN", 3
ThisDrawing.SetVariable "TEXTSIZE", 18
ThisDrawing.SetVariable "DIMBLK", "ArchTick"
newDimStyle.CopyFrom ThisDrawing
End Sub 布莱科击败了我,超越了我,但无论如何,我是一个波斯特

mohnston 发表于 2006-7-11 20:24:25

唐#039;别忘了每种风格都会有子元素,这些子元素可能会也可能不会受到父元素变化的影响
维护和设置dim变量的另一个选项是Public Function FixDims(aDoc As AcadDocument) As Boolean
   
   On Error GoTo Err_Handler
   Dim aDStyle As AcadDimStyle
   Dim strDSName As String
   Dim intFldCount As Integer
   Dim fld As ADODB.Field
   Dim db As ADODB.Connection
   Dim rs As ADODB.Recordset
   Dim strSQL As String
   
   Set db = New ADODB.Connection
   
   db.Open ENG_SYS_DB
   
   Set rs = New ADODB.Recordset
   strSQL = "SELECT * " & _
               "FROM dimvars"
               
   rs.Open strSQL, db, adOpenForwardOnly
   
   With rs
      While .EOF = False And .BOF = False
         Set aDStyle = aDoc.DimStyles.Add(.Fields("style_name").Value)
         For Each fld In rs.Fields
            If UCase(Left(fld.Name, 3)) = "DIM" Then
               aDoc.SetVariable fld.Name, .Fields(fld.Name).Value
            End If
         Next
         aDStyle.CopyFrom aDoc
         .MoveNext
      Wend
   End With
   
   Set aDStyle = ThisDrawing.DimStyles("MyStandardDimStyle")
   
   aDoc.ActiveDimStyle = aDStyle
   
   aDoc.Save
   FixDims = True
Exit_Here:
   Exit Function
Err_Handler:
   Select Case Err.Number
      Case -2145320861 ' error saving file
         aDoc.Close False
         Set aDoc = Nothing
         FixDims = False
         Resume Exit_Here
      Case Else
         FixDims = False
         InputBox "Error " & Err.Description, "Fix Dims", Err.Number
         Resume Exit_Here
   End Select
End Function
这张桌子看起来像…
style_name varchar(255) NOT NULL,
style_description varchar(255),
dimasz float8,
dimblk varchar(255),
dimblk1 varchar(255),
dimblk2 varchar(255),
dimcen float8,
dimclrt float8,
dimclrd float8,
dimdle float8,
dimexe float8,
dimfit float8,
dimgap float8,
dimjust float8,
dimlfac float8,
dimpost varchar(255),
dimtad float8,
dimtfac float8,
dimtih float8,
dimtofl float8,
dimtoh float8,
dimtolj float8,
dimtsz float8,
dimtvp float8,
dimtxt float8,
dimsd1 int2 DEFAULT 0,
dimsd2 int2 DEFAULT 0,
dimse1 int2 DEFAULT 0,
dimse2 int2 DEFAULT 0,
dimsoxd int2 DEFAULT 0,
dimldrblk varchar(64),
dimatfit int2,
dimtmove int2,
dimdec int2 DEFAULT 3
通过这种方式,您可以拥有许多dim样式并调整其设置,而无需重新打开或重新分发代码

mohnston 发表于 2006-7-12 12:08:49

所以…我想任何“我认为”;“快速修复”;vba等效于;Dimoverride“;因为目前的dimstyle只是一个白日梦??

mohnston 发表于 2014-9-4 06:51:24

这件事发生在我身上,我决定添加这个代码
本图纸。设置变量;DIMSAH“;,它允许显示您分配给DIMBLK、DIMBLK1、DIMBLK2的内容
页: [1]
查看完整版本: ARCHTICK问题