复制图纸标题栏提示字串结果文本到另外的图纸

在论坛上遇到一个问题,想把图纸1(Sheet)标题栏的提示字串的结果文本拷贝到另外一个图纸。
首先需要知道,API中,标题栏对象是TitleBlock,其后有对应的TitleBlockDefinition。 TitleBlockDefinition里定义了各种文本,其中一种是提示字串。当用户插入标题栏时,提示字串会出现,要求用户输入最终的文本。TitleBlock.GetResultText 能够获得最终文本。相应的,TitleBlock.SetPromptResultText能设置最终文本。
这样,实现前面提到的需求就不难了。以下代码,假定一个工程图有两张图纸,图纸1和2用的是一样的TitleBlockDefinition,假定定义中有个提示字串叫做“MY_PROMPT”。代码将会把图纸1的结果文本拷贝给图纸2.

' assume sheet1 and sheet use the same title block definition
    
    Dim oDoc  
      oDoc = ThisApplication.ActiveDocument
    
    'get first sheet
    Dim oSheet1  
      oSheet1 = oDoc.Sheets(1)
    
    'get titleblock of sheet1
    Dim oTB1  
      oTB1 = oSheet1.TitleBlock
    
    ' search the textbox in definition
    
    Dim oPromptText  
    Dim oEachText 
    Dim I 
    For I = 1 To oTB1.Definition.Sketch.TextBoxes.Count
          oEachText = oTB1.Definition.Sketch.TextBoxes(I)
        If (oEachText.Text = "MY_PROMPT") Then
            ' found the prompt text we want to copy
              oPromptText = oEachText
            Exit For
        End If
    Next I
    
    'get the result string of the prompt text
    Dim oPromptEntry  
    oPromptEntry = oTB1.GetResultText(oPromptText)
    
    'get sheet2
    Dim oSheet2 As Sheet
      oSheet2 = oDoc.Sheets(2)
    
      'get titleblock of sheet2
    Dim oTB2 As TitleBlock
      oTB2 = oSheet2.TitleBlock
    
    ' copy the result string of the prompt text to the prompt text in sheet2
      oTB2.SetPromptResultText(oEachText, oPromptEntry)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值