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&&引用;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&&引用;关闭“&;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&&引用&引用&;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&&引用_ArchTick“&;vbCr本图。SendCommand“;DIMBLK1“&;vbCr&&引用_ArchTick“&;vbCr本图。SendCommand“;DIMBLK2“&;vbCr&&引用_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&"E&引用&;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&&引用;0“&;vbCr本图。SendCommand“;DIMLDRBLK“&;vbCr&&引用&引用&;vbCr本图。SendCommand“;DIMLFAC“&;vbCr&;1&;vbCr本图。SendCommand“;DIMLIM“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;“DIMLUNIT”&;vbCr&;4&;vbCr本图。SendCommand“;DIMLWD“&;vbCr&-1&;vbCr本图。SendCommand“;DIMLWE“&;vbCr&-1&;vbCr本图。SendCommand“;DIMPOST“&;vbCr&&引用&引用&;vbCr本图。SendCommand“;DIMRND“&;vbCr&&引用;1/16“&;vbCr本图。SendCommand“;DIMSAH“&;vbCr&&引用;关于&;vbCr本图。SendCommand“_dimscale“&;vbCr&&引用;192“&;vbCr本图。SendCommand“;DIMSD1“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;DIMSD2“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;DIMSE1“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;DIMSE2“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;DIMSHO“&;vbCr&&引用;关于&;vbCr本图。SendCommand“;DIMSOXD“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;DIMTAD“&;vbCr&;1&;vbCr本图。SendCommand“;DIMTDEC“&;vbCr&;3&;vbCr本图。SendCommand“;DIMTFAC“&;vbCr&;1&;pvbCr本图。SendCommand“;DIMTIH“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;DIMTIX“&;vbCr&&引用;关于&;vbCr本图。SendCommand“;DIMTM“&;vbCr&;0&;vbCr本图。SendCommand“;DIMTMOVE“&;vbCr&;1&;vbCr本图。SendCommand“;DIMTOFL“&;vbCr&&引用;关于&;vbCr本图。SendCommand“;DIMTOH“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;DIMTOL“&;vbCr&&引用;关闭“&;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&&引用;DIMTXT“&;vbCr本图。SendCommand“;DIMTXT“&;vbCr&;3/32&;vbCr本图。SendCommand“;DIMTZIN“&;vbCr&;0&;vbCr本图。SendCommand“;DIMUNIT“&;vbCr&;6&;vbCr本图。SendCommand“;DIMUPT“&;vbCr&&引用;关闭“&;vbCr本图。SendCommand“;DIMZIN“&;vbCr&;3&;vbCr本图。SendCommand“_文本大小“&;vbCr&;18&;vbCr本图。设置变量;DIMBLK“&引用_ArchTick“
End Sub
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
首先,我将使用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 布莱科击败了我,超越了我,但无论如何,我是一个波斯特 唐#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样式并调整其设置,而无需重新打开或重新分发代码 所以…我想任何“我认为”;“快速修复”;vba等效于;Dimoverride“;因为目前的dimstyle只是一个白日梦?? 这件事发生在我身上,我决定添加这个代码
本图纸。设置变量;DIMSAH“;,它允许显示您分配给DIMBLK、DIMBLK1、DIMBLK2的内容
页:
[1]