图纸复制草图符号,并插入

另外篇文章介绍了如何把一张图纸的标题栏拷贝到另外的图纸。其实草图符号的拷贝也类似,利用了SketchedSymbolDefinition.CopyTo


Sub CopyTo(TargetDocument As DrawingDocument, 
ByRef ReplaceExisting As [defaultvalue(0)] VARIANT_BOOL,
Result As [out, retval] SketchedSymbolDefinition*)


第一参数是目标文档,第二是,如果有同名,是否覆盖,第三个返回复制的SketchedSymbolDefinition。
复制很简单。接着是在图纸中插入草图符号SketchedSymbol。我们知道,Inventor插入时,随着鼠标的拖动会有草图符号示意图,这样便于用户定位。Inventor API提供了拖动事件OnDrag,但要实现示意图,还需要一些工作。有无可能不这么麻烦呢?
可以的!那就是直接调用插入对应的命令,执行,就启动了插入过程。但前提是,需要模拟用户选择到了草图符号定义。


Sub CoptSketchedSymbolAndInsert()
    '源工程图文档
    Dim oSourceDoc As DrawingDocument
    Set oSourceDoc = ThisApplication.Documents.Open("c:\source.idw", False)    
    '获取源文档第一个草图符号定义
    Dim oSourceSSD As SketchedSymbolDefinition
    Set oSourceSSD = oSourceDoc.SketchedSymbolDefinitions(1)
     
    '目标工程图文档,假定为当前激活文档
    Dim oTargetDoc As DrawingDocument
    Set oTargetDoc = ThisApplication.ActiveDocument       
    '复制到目标文档
    Dim oTagetSSD As SketchedSymbolDefinition
    Set oTagetSSD = oSourceSSD.CopyTo(oTargetDoc, False)    

    '关闭源文档
    Call oSourceDoc.Close(True)    

    If Not oTagetSSD Is Nothing Then
        '选择到该草图符号定义
        Call oTargetDoc.SelectSet.Select(oTagetSSD)        
        '立刻执行插入
        ThisApplication.CommandManager.ControlDefinitions(
                             "DrawingUserDefinedSymbolsQuickCtxCmd").Execute2 (True)        
    End If 

End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值