找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 21686|回复: 17
打印 上一主题 下一主题

求助, 如何在CAA里实现 标注的 AnnotationLink的 Delete Position Link

[复制链接]
跳转到指定楼层
1
发表于 2005-11-7 15:35:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图
望指教

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-11-7 15:42:59 | 只看该作者
执行了下列程序
标注的图标变了,和按3DView空白处的时候一样
context菜单的delete position link 没有变灰, 投影也还是有红叉

                        // delete position link
                        CATITPS * piTPS = NULL;
                        rc = piText -> QueryInterface(IID_CATITPS,
                                      (void **) &piTPS);
                        if ( ( SUCCEEDED(rc) ) && !!piTPS ) {
                                // create a blank list
                                CATITTRSList* pTTRSList = NULL;
                                rc = ::CATCreateCATITTRSList( NULL, &pTTRSList);
                                if ( SUCCEEDED(rc) && !!pTTRSList ) {
                    piTPS->SetTTRS( pTTRSList);
                                }
                if ( !!pTTRSList ) {
                                        pTTRSList -> Release();
                                        pTTRSList = NULL;
                                }
                        }
                        if ( !!piTPS ) {
                                piTPS -> Release();
                piTPS = NULL;
                        }

[ 本帖最后由 acoka 于 2005-11-7 16:57 编辑 ]
3
发表于 2005-11-8 08:26:21 | 只看该作者
爱莫能助,关注下
4
发表于 2005-11-8 10:45:14 | 只看该作者
acoka兄,我做的不是你那一块的,帮不上什么忙。但是你Query Object Links 上是不是已经确实删除。
如果删除了,是不是要updata一下。CATIA里的model和view两部分,好像是model变了,view不一定变的。
5
发表于 2005-11-8 11:57:33 | 只看该作者
我也是第一次做标注,以前连标注命令都没执行过
结果这次来了这么个活

问题就是那些东西del不了
不过既然catia可以,也不是什么很特殊的操作,应该有公开的API可以用
暂且算这个功能可以实现,写完设计书,到编程的时候再考虑好了

[ 本帖最后由 acoka 于 2005-11-8 11:59 编辑 ]
6
发表于 2005-11-17 16:24:14 | 只看该作者
不知道这个函数是否符合你的要求,我用它取消过工程图中的各视图之间的位置联系。
UnAlignedWithReferenceView()
7
发表于 2005-11-17 16:26:09 | 只看该作者
不知道这个函数是否符合你的要求,我用它取消过工程图中的各视图之间的位置联系。
UnAlignedWithReferenceView()
8
发表于 2005-11-17 16:41:44 | 只看该作者
又看了你的其他贴,发现上面那个函数不符合你的需求,不好意思:(
请问,你现在做的ANNOTATION是指在三维上做标注吗?若是,要看帮助中的哪以部分。我现在也要做,可还没一点头绪。多谢指教:)
9
发表于 2005-11-18 15:10:04 | 只看该作者
都在CATTPSInterfaces Framework里面。
10
发表于 2005-11-18 17:18:03 | 只看该作者
不知道你目的是要实现什么,遗憾的是现在真的没有公开的API来做这个。

但是你不妨试试下面的source,
           CATIDrwAnnotation * piAnnot = ...;
                                        CATIDrwDimDimension * piDimElem = NULL;

           {
             rc = piAnnot -> QueryInterface (IID_CATIDrwDimDimension,
                                               (void**) &piDimElem);
             if ( FAILED(rc) )
             {


               CATBaseUnknown        *piAssocPos = NULL;
               ipiAnnot -> GetAssociativePosition (piAssocPos);
               
                                                   if ( NULL!= piAssocPos  )
                                                   {
                                                 
                                                     CATISpecObject* piSpecAssocPos = NULL;
                                                     rc = piAssocPos -> QueryInterface (IID_CATISpecObject,
                                                                                        (void **) &piSpecAssocPos);
                                                     if( SUCCEEDED(rc) )
                                                     {
                                                       CATISpecObject* piSpecFather = piSpecAssocPos -> GetFather();
                                                       if ( piSpecFather )
                                                       {
                                                         piSpecFather -> Remove(piAssocPos);
                                                         piSpecFather -> Release();
                                                         piSpecFather = NULL;
                                                       }
                                                       piSpecAssocPos -> Release();
                                                       piSpecAssocPos = NULL;
                                                     }
                                                   }
               
               
             }
             else
             {
               piDimElem -> Release();
               piDimElem = NULL;
             }
             piAnnot -> Release();
             piAnnot = NULL;
           }

这个source不完美,但是请试一下,说不定能用,但也说不定什么时候就失效了

另外,这个command的hdr是CATTPSPosLinkDeleteHdr,
如果你能给它传一个CATString "Delete" 的参数,就可以直接利用(CATAfrStartCommand)
但我不知道怎么传参数。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-27 16:31 , Processed in 0.033732 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表