乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 60|回复: 3

外部图形是动态块吗

[复制链接]

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2019-6-14 00:39:37 | 显示全部楼层 |阅读模式
第2部分:
1)动态块存储的一个小技巧是在一个图形中创建它,然后使用wblock命令将其保存为自己的图形(见图)。
2)在通过.net/autocad API导入之前,是否有人知道我可以确定图形是否是这样的动态块的方法?当我使用下面的代码导入它时,它会将其作为一个典型的块插入,没有动态功能。我得把它炸了。
感谢您提供的任何意见/建议
  1.         public void blocktry()
  2.         {
  3.             Insert.Enabled = false;
  4.             Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView();
  5.             Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
  6.             Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
  7.             Editor ed = acDoc.Editor;
  8.             using (DocumentLock lockmedoc = acDoc.LockDocument())
  9.             {
  10.                 string blockName = listBox1.SelectedItem.ToString();
  11.                 string blockQualifiedFileName = path + "\" + comboBox1.Text + "\" + listBox1.SelectedItem.ToString() + ".dwg";
  12.                 using (Transaction tr = db.TransactionManager.StartTransaction())
  13.                 {
  14.                     try
  15.                     {
  16.                         BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
  17.                         if (!bt.Has(blockName))
  18.                         {
  19.                             Database tmpDb = new Database(false, true);
  20.                             tmpDb.ReadDwgFile(blockQualifiedFileName, System.IO.FileShare.Read, true, "");
  21.                             // add the block to the ActiveDrawing blockTable
  22.                             try
  23.                             {
  24.                                 db.Insert(blockName, tmpDb, true);
  25.                             }
  26.                             catch
  27.                             {
  28.                             }
  29.                         }
  30.                         PromptPointResult ppr = ed.GetPoint("\nSpecify insertion point: ");
  31.                         if (ppr.Status == PromptStatus.Cancel)
  32.                             Insert.Enabled = true;
  33.                         if (ppr.Status != PromptStatus.OK)
  34.                             return;
  35.                         BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
  36.                         BlockReference br = new BlockReference(Point3d.Origin, bt[blockName]);
  37.                         br.ScaleFactors = new Scale3d(1);
  38.                         br.Rotation = 0;
  39.                         br.TransformBy(Matrix3d
  40.                             .Displacement(ppr.Value - Point3d.Origin)
  41.                             .PreMultiplyBy(ed.CurrentUserCoordinateSystem));
  42.                         btr.AppendEntity(br);
  43.                         tr.AddNewlyCreatedDBObject(br, true);
  44.                         ed.WriteMessage("\n" + br.Name + " Inserted");
  45.                         Insert.Enabled = true;
  46.                     }
  47.                     catch (Autodesk.AutoCAD.Runtime.Exception exx)
  48.                     {
  49.                         ed.WriteMessage("\n" + exx.ToString());
  50.                         Insert.Enabled = true;
  51.                     }
  52.                     tr.Commit();
  53.                     tr.Dispose();
  54.                 }
  55.             }
  56.         }


fnwsqnfix4q.JPG

fnwsqnfix4q.JPG

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2019-6-14 01:15:41 | 显示全部楼层
没有关系。只需重写块插入以检查内容
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2019-6-14 01:17:46 | 显示全部楼层
Hi,
没有深入测试,但可以检查模型空间块表记录的扩展字典是否包含“ACAD_ENHANCEDBLOCK”。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2019-6-14 01:50:09 | 显示全部楼层

谢谢
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 10:13 , Processed in 0.157934 second(s), 63 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表