www.mxdraw.com
内容索引主面
前一个向上下一个
MxDrawXCustomFunction::Mx_PutEntityInView 方法 (IN LONG, DOUBLE)

把一实体放到视区中

IDL
static bool Mx_PutEntityInView(IN LONG lId, DOUBLE dPaddingPercentage = 10);
参数 
说明 
IN LONG lId 
实体对象的id 
DOUBLE dPaddingPercentage = 10 
实体周围空白区域大小占实体大小的百分比.默为10% 

成功返回true

例如: JS 查找图上,某个文字,并定位过去

                    function FindText()
                    {
                       var axMxDrawX1 = document.getElementById("MxDrawXCtrl");


                           // 得到当前图纸空间
                           var blkRec = axMxDrawX1.GetDatabase().CurrentSpace();
                          // 创建一个用于遍历当前图纸空间的遍历器
                           var iter = blkRec.NewIterator();

                           // 需要找的,相匹配文字.
                           var findTxt = "AAA";
                           if (iter!= null)
                           {
                            for (; !iter.Done(); iter.Step(true, false))
                                    {
                                // 得到遍历器当前的实体
                                             var ent = iter.GetEntity();

                                if (ent.ObjectName == "McDbText")
                                        {
                                    var txt = ent;
                                    //alert(txt.TextString);
                                    if(txt.TextString == findTxt)
                                    {
                                        // 把文字放到视区.
                                        axMxDrawX1.CallLongParam1("Mx_PutEntityInView",txt.ObjectID);
                                        break;
                                    }
                                }
                                else if(ent.ObjectName == "McDbMText")
                                {
                                        var param = axMxDrawX1.NewResbuf();
                                        param.AddObjectId(ent.ObjectID);

                                        var ret = axMxDrawX1.CallEx("Mx_GetMTextContent",param);
                                       if(ret.AtString(0) == "Ok")
                                            {
                                        alert(ret.AtString(1));
                                        if(ret.AtString(1) == findTxt)
                                        {
                                            // 把文字放到视区.
                                            axMxDrawX1.CallLongParam1("Mx_PutEntityInView",ent.ObjectID);
                                            break;
                                        }
                                            }
                                }
                            }
                            }

                    // 在这里必须显示释放控件的COM对象指针.
                         iter = null;
                         blkRec = null;
                         CollectGarbage();

                    }
Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!