当前位置:知识库 / Delphi开发 / 详情
遍历图中的所有实体,找到块名为A23TIT_KH的图块,并得到它的属性
遍历图中的所有实体,找到块名为A23TIT_KH的图块,并得到它的属性
Delphi开发|大少爷|2017-07-27 11:42
回答:
 procedure TForm1.Button1Click(Sender: TObject);
    var
        curDababase : IMxDrawDatabase;
        modleSpace : IMxDrawBlockTableRecord  ;
        newIterator : IMxDrawBlockTableRecordIterator  ;
        pEnt        : IMxDrawEntity;
        pBlkRef     : IMxDrawBlockReference;
        pAttribute  : IMxDrawAttribute;
        tag         : WideString;
        text        : WideString;
        ii          : Integer;

        fModel         : WideString;
        fTitle        : WideString;
        fDwgNo         : WideString;
        fMaterial        : WideString;
        fQuantity         : WideString;
        fRemark        : WideString;
        fDrawData         : WideString;
        fScale        : WideString;
        fVersion        : WideString;
        fReview        : WideString;
        fDrawName        : WideString;
        fApprove        : WideString;
    begin
        curDababase   := MxDrawApplication1.WorkingDatabase;
        modleSpace    := curDababase.CurrentSpace     ;
        newIterator   := modleSpace.NewIterator  ;        if newIterator <> nil then
        begin            while newIterator.Done() = False do
              begin
                   pEnt := newIterator.GetEntity();
                   newIterator.Step(True,False);                   if pEnt <> nil then
                   begin

                   pEnt.QueryInterface(IMxDrawBlockReference, pBlkRef);                   if pBlkRef <> nil then
                   begin                        if pBlkRef.GetBlockName() = 'A23TIT_KH' then
                        begin                             for ii := 0 to pBlkRef.AttributeCount -1 do
                             begin
                                pAttribute := pBlkRef.AttributeItem(ii);
                                tag := pAttribute.Get_Tag();
                                text := pAttribute.Get_TextString();
                                showmessage(tag + ':' + text);                             case ii of
                              0: fModel := text;
                              1: fTitle := text;
                              2: fDwgNo := text;
                              3: fMaterial := text;
                              4: fQuantity := text;
                              5,6,7: fRemark := fRemark + text + ' ';
                              8: fDrawData := text;
                              9: fScale := text;
                              10: fVersion := text;
                              11: fReview := text;
                              12: fDrawName := text;
                              13: fApprove := text;
                             end;
                             end;
                        end;
                   end;
                   end;
              end;
        end;         if text = '' then
         begin
            showmessage('没有发现块名为' + 'A23TIT_KH' + '的块实体');
         end;
    end;


相关问题
如何向块中增加一个属性文字 C#代码 ?
如何提示输入一个点坐标?
如何实现自定义实体?
如何设置动态提示?
如何设置光标矩形框大小?
如何设置光标长度?
如何设置对象夹点显示颜色?
如何把DWG文件当着背景导入?
如何设置绘光栅图到背景?
如何设置视区背景色为渐变色?
梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
联系我们
技术TEL:400-888-5703
185-8173-1060
客服I QQ: 3570505660
技术I QQ: 827867134
技术II QQ:6884123
VIP服务购买
销售TEL:156-8136-8971
销售QQ:710714273
用户交流
控件QQ交流群1:73281982
控件QQ交流群2:112199959
MxCAD软件群 1:515771658
技术I:QQ
827867134
客服I:QQ
3570505660
销售QQ
710714273
联系电话400-888-5703