田草博客

互联网田草博客


网友交流QQ群:11740834 需注明申请加入原因

微信 公众号:ByCAD

邮箱:tiancao1001x126.com
ByCAD,微信公众号
首页 | 普通 | 电脑 | AutoCAD | VB/VB.NET | FLash | 结构 | 建筑 | 电影 | BIM | 规范 | 软件 | ID

评论列表

所有评论
[96] [97] [98] [99] [100] [101] [102] [103] [104] [105]  ... [143]  
田草 于 2008-08-12 01:50 PM 发表评论:
' 单行文字文字合并 *************************************************
Sub HBWZ_Text()
    Dim objSelected As Object
    Dim acText  As AcadText
    Dim ssText As AcadSelectionSet
    Dim AllText As String
    Dim H As Double
    Dim W As Double
    Dim S As String
    Dim P As Variant
    On Error Resume Next
    Set ssText = ThisDrawing.SelectionSets.Add("Text")
    '定义过滤机制
    Dim filterType(0) As Integer
    Dim filterData(0) As Variant
    filterType(0) = 0
    filterData(0) = "TEXT"
    
    ssText.SelectOnScreen filterType, filterData
    Dim n As Integer
    Dim i As Integer
    Dim j As Integer
    Dim Temp As Double
    Dim X() As Double
    Dim Index() As Integer
    '对选择的插入点进行排序
    '   只对Y方向进行排序
    '   不对X方向进行排序
    n = ssText.Count - 1
    ReDim X(n)
    ReDim Index(n)
    '           读取Y坐标到数组Y()中
    '           没有排序之前Text在选择集中的序号并没有变化,仍然是0、1、2、3……
    For i = 0 To n
        Set acText = ssText.item(i)
        X(i) = acText.insertionPoint(0)
        Index(i) = i
    Next i
    '           对数组X()排序
    For i = 0 To n - 1
        For j = i + 1 To n
            '如果前一个比后面小的话,则把它的序号和后面的交换。
            If X(i) >= X(j) Then
                '交换X坐标
                Temp = X(i)
                X(i) = X(j)
                X(j) = Temp
                '交换Text在选择集中的位置
                Temp = Index(i)
                Index(i) = Index(j)
                Index(j) = Temp
            End If
        Next j
    Next i
    
    Set acText = ssText.item(Index(0))
    H = acText.height
    W = acText.ScaleFactor
    S = acText.StyleName
    P = acText.insertionPoint
    
    '对选择集中的文字对象进行操作
    For i = 0 To n
            Set acText = ssText.item(Index(i))
            AllText = AllText & acText.textString
            acText.Delete
    Next
    Dim NText As AcadText
    Set NText = ThisDrawing.ModelSpace.AddText(AllText, P, H)
    NText.ScaleFactor = W
    NText.StyleName = S
    ThisDrawing.SelectionSets.item("Text").Delete
    NText.Update
End Sub
'*******************************************************
查看所评论的日志:AutoCAD vba 合并文字
田草 于 2008-08-10 12:31 AM 发表评论:
不过江苏宿迁将有三名残疾运动员将参加北京残奥会。
查看所评论的日志:北京奥运与江苏宿迁人无缘
田草 于 2008-08-09 09:32 PM 发表评论:
这点很重要,技术dword值被改成了字符串,今天我又遇到了一次
查看所评论的日志:“显示所有文件和文件夹” 和 “不显示隐藏的文件和文件夹”
田草 于 2008-08-08 09:43 AM 发表评论:
这段代码,不要按照顺序去选择文字了,他自己会按照x坐标自动排序的
查看所评论的日志:AutoCAD vba 合并文字
dsfei 于 2008-08-08 08:54 AM 发表评论:
dengye@cmdi.chinamobile.com

没有办法下载,很有兴趣,能不能发一份给我
查看所评论的日志:AutoCAD VBA 二次开发教程源码
dsfei 于 2008-08-08 08:52 AM 发表评论:
下载链接都是转到你的主页啊,大哥能不能帮忙发一份到dengye@cmdi.chinamobile.com
查看所评论的日志:晓东VBA论坛板块的电子书版本
田草 于 2008-08-05 03:53 PM 发表评论:
该控件在没有安装AutoCAD2009的机器上无法注册dll。
查看所评论的日志:acCtrl控件使用
田草 于 2008-08-05 03:41 PM 发表评论:
此控件出AutoCAD2009,安装2009才有,但是也可以在其他版本使用,假如卸载了2009,只把acCtrl控件留下能不能使用还不知道啊。
查看所评论的日志:acCtrl控件使用
[96] [97] [98] [99] [100] [101] [102] [103] [104] [105]  ... [143]  
Tiancao Blog All Rights Reserved 田草博客 版权所有
Copyright ©