土木在线论坛 \ 商易宝社区 \ 行业脉动 \ 求一个能对多线段及曲线自动标上桩号的程序

求一个能对多线段及曲线自动标上桩号的程序

发布于:2008-12-19 10:52:19 来自:商易宝社区/行业脉动 [复制转发]
求一个能对多线段及曲线自动标上桩号的程序,要求能自行设定桩距、自定义字体,字体要与线段方向铅直。希望有这种程序的人给我发一下,谢谢
  • tongmingniao
    tongmingniao 沙发
    楼主的意思桩号是不是要旋转90度,并且所有的桩号在一条水平线上,所有的桩号等间距?
    按此思路编的dvb程序如下:
    Option Base 1
    Option Explicit

    Private Sub CommandButton1_Click()
    UserForm1.Hide

    On Error Resume Next
    Dim excelApp As Excel.Application
    Set excelApp = GetObject(, "Excel.Application")
    If Err Then
    MsgBox Err.Description
    Exit Sub
    End If

    ForceForegroundWindow excelApp.hWnd

    Dim myRange As Range
    Set myRange = excelApp.InputBox(Prompt:="选择要求的单元格区域:", Type:=8)

    If Err Then
    MsgBox Err.Description
    Exit Sub
    End If

    Dim M As Long
    Dim N As Long
    M = myRange.Rows.Count
    N = myRange.Columns.Count

    ReDim textObj(M, N) As AcadText
    ReDim TextStr(M, N) As String

    Dim i As Long
    Dim j As Long
    For i = 1 To M
    For j = 1 To N
    TextStr(i, j) = myRange.Cells(i, j).Text
    Next
    Next

    ForceForegroundWindow AcadApplication.hWnd

    Dim InsertPnt As Variant
    InsertPnt = ThisDrawing.Utility.GetPoint(, "指定插入点: ")

    Dim VDistOfText As Double
    Dim HDistOfText As Double
    Dim TextHeight As Double
    VDistOfText = Val(TextBox1.Text)
    HDistOfText = Val(TextBox2.Text)
    TextHeight = Val(TextBox3.Text)

    Dim Pnt As Variant
    For i = 1 To M
    For j = 1 To N
    If TextStr(i, j) <> "" Then
    Set textObj(i, j) = ThisDrawing.ModelSpace.AddText(TextStr(i, j), InsertPnt, TextHeight)
    Pnt = textObj(i, j).InsertionPoint
    Pnt(0) = InsertPnt(0) + (j - 1) * HDistOfText
    Pnt(1) = InsertPnt(1) - (i - 1) * VDistOfText
    textObj(i, j).InsertionPoint = Pnt
    textObj(i, j).Rotation = 4 * Atn(1) * Val(TextBox4.Text) / 180
    End If
    Next
    Next

    ThisDrawing.Regen acActiveViewport
    UserForm1.Show
    End Sub

    Private Sub CommandButton2_Click()
    End
    End Sub

    Private Sub UserForm_Initialize()
    TextBox1.Text = 0
    TextBox2.Text = 50
    TextBox3.Text = 5
    TextBox4.Text = 90
    End Sub


    程序运行界面:
    20090310235942140.png
    列偏移为桩号文字在cad图中的间距,桩号文字横放在excel表格中。
    2009-03-11 00:03:11

    回复 举报
    赞同0
这个家伙什么也没有留下。。。

行业脉动

返回版块

12.08 万条内容 · 81 人订阅

猜你喜欢

阅读下一篇

新型高效不淤堵材料“地水通”毛细透排水带

新型高效不淤堵材料“地水通”毛细透排水带“地水通”毛细透排水带的发明人是胡鸣群,他针对传统的排水反滤所采用土工织物或级配砂石层等材料容易淤堵而失效的问题,经过多年研究试验,巧妙地利用四种大自然力量--重力、毛細吸力、表面張力、虹吸力自动达成过滤、吸水、封闭、排水等动作而发明的具有优良性能的产品。 该排水带是在宽20cm、厚度仅为2mm的软質薄塑膠片上,每隔1.5mm開設1mm直徑之毛細管,每根毛細管再纵向剖开0.3mm宽度之槽沟。它具有不需级配砂石滤层、不堵塞、抗土压力能力強、主动式排水能力大等特點。1999年获得德国紐倫堡发明奖、年度金牌奖暨年度最佳发明貢献奖等多项奖励,得到了中国台湾以及中、美、日、歐洲等十余国专利。

回帖成功

经验值 +10