乐筑天下

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

[编程交流] 不同位置上的参考块

[复制链接]

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 22:52:44 | 显示全部楼层 |阅读模式
大家好,
 
我创建了一些块,并用以下代码(C#)将它们引用到一个层:
 
  1. myBlock.Layer = strLayerName;

 
现在我希望块被多个层引用。
如何将此块的引用设置为另一层,同时保持当前层引用?
 
谢谢你的帮助!
 
干杯,Max。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:01:22 | 显示全部楼层
 
易于理解的将块复制到位(即相同的插入点、比例等)到所需层:眨眼:
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 23:05:33 | 显示全部楼层
谢谢你,伦德曼!
 
你是对的。它很简单而且有效。
 
  1.                // Create a circle with a radius
  2.                Circle r = new Circle();
  3.                r.SetDatabaseDefaults();
  4.                r.Center = new Point3d(x, y, 0);
  5.                r.Radius = fltRadius;               
  6.                r.Layer = strLayerName[1];
  7.                
  8.                // Add the new object to the block table record and the transaction
  9.                btr.AppendEntity(r);
  10.                acTrans.AddNewlyCreatedDBObject(r, true);
  11.                
  12.                Circle rClone = r.Clone() as Circle;
  13.                rClone.Layer = strLayerName[0];
  14.                btr.AppendEntity(rClone);
  15.                acTrans.AddNewlyCreatedDBObject(rClone, true);

 
但是,如果我想将整个块复制到一个层,我必须做什么?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:10:24 | 显示全部楼层
 
 
不客气。
 
 
这个评论让我困惑。。。
 
块是单个对象(可以由其他块、组件等组成),但复制时,*应*复制每个子组件。
 
也许这将提供一些明确性:
http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer's%20指南/索引。html
 
... 请参见“创建和编辑AutoCAD图元>创建对象>编辑命名和二维对象>复制对象>复制对象”中的C#示例代码
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 23:13:15 | 显示全部楼层
看来,这是没有参考价值的。如果冻结层,我希望隐藏块。但块的实体在其他层上仍然可见。
我希望整个块在第一层(隐藏/可见),块的几个实体在不同的层中分别隐藏它们。
 
有什么想法吗?
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 23:21:05 | 显示全部楼层
 
当我写“block”时,我想到了一个BlockTableRecord。此BlockTableRecord具有名称,但没有层属性。
例如,圆是具有属性层的实体。所以我想知道是否可以将BlockTableRecord分配给一个层?
 
也许搞错了。。。抱歉:不确定:
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:25:16 | 显示全部楼层
 
::简单的解决方案:
 
为了不显示块,可以:
[列表]
  • 块及其子组件必须位于同一层(正在冻结)
  • 或块子组件的附加层也需要冻结。
    ::稍微复杂一点的解决方案:
     
    开发一个编辑器反应器,这样当包围层冻结时,块的可见属性设置为False(如果块存在于块集合中)。
     
    注意-该反应器还应处理层解冻时的情况,以便它还应将Visible属性设置为True。
     
    编辑:
    “visible属性”的引用来自ActiveX COM API,因为我目前无法访问Visual Studio,也无法从工作中访问ObjectARX SDK。
  • 回复

    使用道具 举报

    44

    主题

    3166

    帖子

    2803

    银币

    中流砥柱

    Rank: 25

    铜币
    557
    发表于 2022-7-6 23:29:41 | 显示全部楼层
     
    不如果不使用插入到图形中的反应器强制实例,则无法将块集合(或其项)指定给特定图层。这可以由命令式回调函数触发,然后用所需名称创建所有块的选择集,然后逐步通过选择集并检查驻留层,如果不匹配,则更改块对象本身的层属性。
    回复

    使用道具 举报

    1

    主题

    6

    帖子

    5

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-6 23:35:47 | 显示全部楼层
    非常感谢你的建议!
     
    我会试试的。
    回复

    使用道具 举报

    44

    主题

    3166

    帖子

    2803

    银币

    中流砥柱

    Rank: 25

    铜币
    557
    发表于 2022-7-6 23:38:59 | 显示全部楼层
     
    不客气。
     
    当你完成后,一定要张贴成品(帮助他人)。
     
    干杯
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-4 05:37 , Processed in 0.490355 second(s), 72 queries .

    © 2020-2025 乐筑天下

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