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

另外篇文章介绍了如何把一张图纸的标题栏拷贝到另外的图纸。其实草图符号的拷贝也类似,利用了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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值