1
2ObjectId surfaceId = TinSurface.Create(_acaddoc.Database, "Example Surface");
3TinSurface surface = surfaceId.GetObject(OpenMode.ForWrite) as TinSurface;
4Point3dGenerator p3dgen = new Point3dGenerator();
5Point3dCollection locations = p3dgen.AsPoint3dCollection();
6surface.AddVertices(locations);
7
8SurfaceDefinitionBoundaries surfaceBoundaries = surface.BoundariesDefinition;
9write(String.Format("Existing surface boundary definitions: {0} \n", surfaceBoundaries.Count));
10
11
12
13Point2dCollection point2dBoundary = new Point2dCollection();
14point2dBoundary.Add(new Point2d(10, 10));
15point2dBoundary.Add(new Point2d(10, 90));
16point2dBoundary.Add(new Point2d(90, 90));
17point2dBoundary.Add(new Point2d(90, 10));
18
19
20surfaceBoundaries.AddBoundaries(point2dBoundary, 1.0, SurfaceBoundaryType.Outer, true);
21
22
23
24Point3dCollection point3dBoundary = new Point3dCollection();
25point3dBoundary.Add(new Point3d(20, 20, 0));
26point3dBoundary.Add(new Point3d(20, 30, 0));
27point3dBoundary.Add(new Point3d(30, 30, 0));
28point3dBoundary.Add(new Point3d(30, 20, 0));
29
30surfaceBoundaries.AddBoundaries(point3dBoundary, 1.0, SurfaceBoundaryType.Hide, true);
31
32
33
34Database acadDb = _acaddoc.Database;
35BlockTable blockTable = tr.GetObject(acadDb.BlockTableId, OpenMode.ForRead) as BlockTable;
36BlockTableRecord blockTableRec = tr.GetObject(blockTable[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
37
38Polyline polyline = new Polyline();
39polyline.SetDatabaseDefaults();
40polyline.AddVertexAt(0, new Point2d(70, 70), 0, 0, 0);
41polyline.AddVertexAt(1, new Point2d(70, 110), 0, 0, 0);
42polyline.AddVertexAt(2, new Point2d(110, 110), 0, 0, 0);
43polyline.AddVertexAt(3, new Point2d(110, 70), 0, 0, 0);
44polyline.Closed = true;
45blockTableRec.AppendEntity(polyline);
46tr.AddNewlyCreatedDBObject(polyline, true);
47
48
49ObjectIdCollection verticeIds = new ObjectIdCollection();
50verticeIds.Add(polyline.ObjectId);
51
52surfaceBoundaries.AddBoundaries(verticeIds, 1.0, SurfaceBoundaryType.Show, true);
53
54surface.Rebuild();
1
2Dim surfaceId As ObjectId = TinSurface.Create(_acaddoc.Database, "Example Surface")
3Dim surface As TinSurface = TryCast(surfaceId.GetObject(OpenMode.ForWrite), TinSurface)
4Dim p3dgen As New Point3dGenerator()
5Dim locations As Point3dCollection = p3dgen.AsPoint3dCollection()
6surface.AddVertices(locations)
7
8Dim surfaceBoundaries As SurfaceDefinitionBoundaries = surface.BoundariesDefinition
9write([String].Format("Existing surface boundary definitions: {0} " & vbLf, surfaceBoundaries.Count))
10
11
12
13Dim point2dBoundary As New Point2dCollection()
14point2dBoundary.Add(New Point2d(10, 10))
15point2dBoundary.Add(New Point2d(10, 90))
16point2dBoundary.Add(New Point2d(90, 90))
17point2dBoundary.Add(New Point2d(90, 10))
18
19
20surfaceBoundaries.AddBoundaries(point2dBoundary, 1.0, SurfaceBoundaryType.Outer, True)
21
22
23
24Dim point3dBoundary As New Point3dCollection()
25point3dBoundary.Add(New Point3d(20, 20, 0))
26point3dBoundary.Add(New Point3d(20, 30, 0))
27point3dBoundary.Add(New Point3d(30, 30, 0))
28point3dBoundary.Add(New Point3d(30, 20, 0))
29
30surfaceBoundaries.AddBoundaries(point3dBoundary, 1.0, SurfaceBoundaryType.Hide, True)
31
32
33
34Dim acadDb As Database = _acaddoc.Database
35Dim blockTable As BlockTable = TryCast(tr.GetObject(acadDb.BlockTableId, OpenMode.ForRead), BlockTable)
36Dim blockTableRec As BlockTableRecord = TryCast(tr.GetObject(blockTable(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
37
38Dim polyline As New Polyline()
39polyline.SetDatabaseDefaults()
40polyline.AddVertexAt(0, New Point2d(70, 70), 0, 0, 0)
41polyline.AddVertexAt(1, New Point2d(70, 110), 0, 0, 0)
42polyline.AddVertexAt(2, New Point2d(110, 110), 0, 0, 0)
43polyline.AddVertexAt(3, New Point2d(110, 70), 0, 0, 0)
44polyline.Closed = True
45blockTableRec.AppendEntity(polyline)
46tr.AddNewlyCreatedDBObject(polyline, True)
47
48
49Dim verticeIds As New ObjectIdCollection()
50verticeIds.Add(polyline.ObjectId)
51
52surfaceBoundaries.AddBoundaries(verticeIds, 1.0, SurfaceBoundaryType.Show, True)