forked from chuongmep/CadPythonShell
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCompBldrAnonBlkDef.cs
More file actions
92 lines (82 loc) · 2.91 KB
/
CompBldrAnonBlkDef.cs
File metadata and controls
92 lines (82 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//
// (C) Copyright 2004 by Autodesk, Inc.
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted,
// provided that the above copyright notice appears in all copies and
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable.
//
using Autodesk.AutoCAD.DatabaseServices;
using System.Diagnostics;
namespace MgdDbg.CompBuilder
{
/// <summary>
/// Derived component builder to direct the made entities into an
/// Anonymous block def.
/// </summary>
public class CompBldrAnonBlkDef : CompBldr
{
public
CompBldrAnonBlkDef(Database db)
: base(db)
{
}
/// <summary>
/// Make the new Anonymous block table record to add our entities to.
/// </summary>
protected override void
SetCurrentBlkTblRec()
{
Debug.Assert(m_trans != null);
// if we've already been started before, then we don't want to create another
// anonymous block, so just re-use the existing one.
if (m_blkDefId.IsNull)
{
m_blkRec = DefineNewAnonymousBlockRec();
}
else
{
m_blkRec = (BlockTableRecord)m_trans.GetObject(m_blkDefId, OpenMode.ForWrite);
}
}
/// <summary>
/// If they are calling Reset, we need to end this block and start another one
/// </summary>
public override void
Reset()
{
base.Reset();
m_blkDefId = ObjectId.Null; // will force new block def
}
/// <summary>
/// Default properties for entities within a block def should be:
/// Layer = 0;
/// Color = ByBlock;
/// Linetype = ByBlock;
///
/// This allows the entities nested in the block def to be controlled by
/// the properties of the individual BlockReference.
/// </summary>
/// <param name="ent">The Entity to set the properties for</param>
public override void
SetToDefaultProps(Entity ent)
{
ent.LayerId = m_db.LayerZero;
ent.ColorIndex = 0; // ByBlock
ent.LinetypeId = m_db.ByBlockLinetype;
}
}
}