|
|
@@ -66,6 +66,9 @@ namespace Thumbnail
|
|
66
|
66
|
ObjectIdCollection pllcoll = new ObjectIdCollection();
|
|
67
|
67
|
SelectionSet ss = psr.Value;
|
|
68
|
68
|
ObjectIdCollection idcoll1 = new ObjectIdCollection(ss.GetObjectIds());
|
|
|
69
|
+ double searchlength = 250 * bl + 5.75 * bl * 2;
|
|
|
70
|
+ if(bl==10)
|
|
|
71
|
+ searchlength = 2595;
|
|
69
|
72
|
for (int i = 0; i < idcoll1.Count; i++)
|
|
70
|
73
|
{
|
|
71
|
74
|
using (Transaction trans = doc.Database.TransactionManager.StartTransaction())
|
|
|
@@ -74,13 +77,13 @@ namespace Thumbnail
|
|
74
|
77
|
if (ent is Polyline)
|
|
75
|
78
|
{
|
|
76
|
79
|
Polyline pll = (Polyline)ent;
|
|
77
|
|
- if (pll.Length == 250 * bl + 5.75 * bl * 2 & pll.Closed == false)
|
|
|
80
|
+ if (pll.Length == searchlength & pll.Closed == false)
|
|
78
|
81
|
pllcoll.Add(idcoll1[i]);
|
|
79
|
82
|
}
|
|
80
|
83
|
if (ent is Polyline2d)
|
|
81
|
84
|
{
|
|
82
|
85
|
Polyline2d pll = (Polyline2d)ent;
|
|
83
|
|
- if (pll.Length == 250 * bl + 5.75 * bl * 2 & pll.Closed == false)
|
|
|
86
|
+ if (pll.Length == searchlength & pll.Closed == false)
|
|
84
|
87
|
pllcoll.Add(idcoll1[i]);
|
|
85
|
88
|
}
|
|
86
|
89
|
trans.Commit();
|
|
|
@@ -96,7 +99,7 @@ namespace Thumbnail
|
|
96
|
99
|
getIntersecttk(tkinfolist, ptcoll, tf);
|
|
97
|
100
|
move(doc, tkinfolist, tf, ptcoll);
|
|
98
|
101
|
deletetk(doc, tkinfolist, tf);
|
|
99
|
|
- ObjectId HZ= createTextStyle(doc);
|
|
|
102
|
+ ObjectId HZ = createTextStyle(doc);
|
|
100
|
103
|
draw(doc, ptcoll, tf, HZ);
|
|
101
|
104
|
if (tf.Count == 0 || tf == null)
|
|
102
|
105
|
{
|
|
|
@@ -126,7 +129,6 @@ namespace Thumbnail
|
|
126
|
129
|
}
|
|
127
|
130
|
}
|
|
128
|
131
|
}
|
|
129
|
|
- //}
|
|
130
|
132
|
dynamic acadApp = GrxCAD.ApplicationServices.Application.AcadApplication;
|
|
131
|
133
|
acadApp.ZoomExtents();
|
|
132
|
134
|
doc.Database.SaveAs(savepath + "\\" + filename[filenum], true, DwgVersion.AC1024, doc.Database.SecurityParameters);
|
|
|
@@ -380,8 +382,10 @@ namespace Thumbnail
|
|
380
|
382
|
foreach (Point3d temppt in tkinfolist[ii].ptcoll)
|
|
381
|
383
|
{
|
|
382
|
384
|
//筛选窗口内图幅
|
|
383
|
|
- if (temppt.X > pt1.X && temppt.X < pt2.X &&
|
|
384
|
|
- temppt.Y > pt1.Y && temppt.Y < pt2.Y)
|
|
|
385
|
+ if (Math.Round(temppt.X, 4) > Math.Round(pt1.X, 4) &&
|
|
|
386
|
+ Math.Round(temppt.X, 4) < Math.Round(pt2.X, 4) &&
|
|
|
387
|
+ Math.Round(temppt.Y, 4) > Math.Round(pt1.Y, 4) &&
|
|
|
388
|
+ Math.Round(temppt.Y, 4) < Math.Round(pt2.Y, 4))
|
|
385
|
389
|
{
|
|
386
|
390
|
tkinfo pt = new tkinfo();
|
|
387
|
391
|
pt.id = tkinfolist[ii].id;
|
|
|
@@ -409,6 +413,11 @@ namespace Thumbnail
|
|
409
|
413
|
{
|
|
410
|
414
|
Point3d Frompt = new Point3d(ptcoll[0].X - (261.5 * bl - 5.75 * bl * 2), ptcoll[0].Y - (261.5 * bl - 5.75 * bl * 2), 0);//基点
|
|
411
|
415
|
Point3d Topt = new Point3d(ptcoll[3].X, ptcoll[3].Y + 5.75 * bl + 1.75 * bl, 0);//目标点
|
|
|
416
|
+ if(bl==10)
|
|
|
417
|
+ {
|
|
|
418
|
+ Frompt = new Point3d(ptcoll[0].X - 2500, ptcoll[0].Y - 2500, 0);
|
|
|
419
|
+ Topt = new Point3d(ptcoll[3].X, ptcoll[3].Y + 48.75 + 15, 0);
|
|
|
420
|
+ }
|
|
412
|
421
|
for (int i = 0; i < tf.Count; i++)
|
|
413
|
422
|
{
|
|
414
|
423
|
for (int j = 0; j < tkinfolist.Count; j++)
|
|
|
@@ -471,6 +480,11 @@ namespace Thumbnail
|
|
471
|
480
|
SelectionFilter filter_tfk = new SelectionFilter(value_tfk);
|
|
472
|
481
|
Point3d pt1 = new Point3d(ptcoll[3].X, ptcoll[3].Y + 5.75 * bl + 1.75 * bl, 0);
|
|
473
|
482
|
Point3d pt2 = new Point3d(ptcoll[3].X + 22.5 * bl, ptcoll[3].Y + (5.5 + 0.5 + 1.5) * bl + 12 * bl + 10, 0);
|
|
|
483
|
+ if (bl == 10)
|
|
|
484
|
+ {
|
|
|
485
|
+ pt1 = new Point3d(ptcoll[3].X, ptcoll[3].Y + 50, 0);
|
|
|
486
|
+ pt2 = new Point3d(ptcoll[3].X + 22.5 * bl, ptcoll[3].Y + 47.5 + 1.25 + 15 + 12 * bl, 0);
|
|
|
487
|
+ }
|
|
474
|
488
|
//dynamic acadApp = GrxCAD.ApplicationServices.Application.AcadApplication;
|
|
475
|
489
|
//acadApp.ZoomExtents();
|
|
476
|
490
|
//using (DocumentLock docTargetLock = doc.LockDocument())
|
|
|
@@ -583,7 +597,7 @@ namespace Thumbnail
|
|
583
|
597
|
/// <summary>
|
|
584
|
598
|
/// 绘制接图表
|
|
585
|
599
|
/// </summary>
|
|
586
|
|
- private void draw(Document doc, Point3dCollection ptcoll, List<tkinfo> tf,ObjectId HZ)
|
|
|
600
|
+ private void draw(Document doc, Point3dCollection ptcoll, List<tkinfo> tf, ObjectId HZ)
|
|
587
|
601
|
{
|
|
588
|
602
|
Point2d p1 = new Point2d();
|
|
589
|
603
|
Point2d p2 = new Point2d();
|
|
|
@@ -595,12 +609,21 @@ namespace Thumbnail
|
|
595
|
609
|
double dist_w2jt = 1.75 * bl; //外框到接图表距离
|
|
596
|
610
|
double dist_tc = Math.Sqrt((0.5 * bl) * (0.5 * bl) * 2);
|
|
597
|
611
|
double dist_tc1 = 0.404 * bl;
|
|
|
612
|
+ if (bl == 10)
|
|
|
613
|
+ {
|
|
|
614
|
+ dist_nw = 48.75; //内外框距离
|
|
|
615
|
+ dist_w2jt = 15; //外框到接图表距离
|
|
|
616
|
+ dist_tc = 7;
|
|
|
617
|
+ dist_tc1 = 0.349;
|
|
|
618
|
+ }
|
|
598
|
619
|
List<tkinfo> zj_x = new List<tkinfo>();//只有x方向中间错位的图框
|
|
599
|
620
|
List<tkinfo> zj_y = new List<tkinfo>();//只有y方向中间错位的图框
|
|
600
|
621
|
//double cw_x = -9999;//错位图框左下角x坐标
|
|
601
|
622
|
//double cw_y = -9999;//错位图框左下角y坐标
|
|
602
|
623
|
Point3dCollection cw_x = new Point3dCollection();//x方向错位图框左下角点
|
|
603
|
624
|
Point3dCollection cw_y = new Point3dCollection();//y方向错位图框左下角点
|
|
|
625
|
+ List<Polyline> x_addline = new List<Polyline>();
|
|
|
626
|
+ List<Polyline> y_addline = new List<Polyline>();
|
|
604
|
627
|
|
|
605
|
628
|
using (Transaction trans = doc.Database.TransactionManager.StartTransaction())
|
|
606
|
629
|
{
|
|
|
@@ -1399,6 +1422,7 @@ namespace Thumbnail
|
|
1399
|
1422
|
pll_ad.SetDatabaseDefaults();
|
|
1400
|
1423
|
btr.AppendEntity(pll_ad);
|
|
1401
|
1424
|
tran.AddNewlyCreatedDBObject(pll_ad, true);
|
|
|
1425
|
+ x_addline.Add(pll_ad);
|
|
1402
|
1426
|
//判断宽度能否放下文字
|
|
1403
|
1427
|
DBText tfh_temp = tran.GetObject(tf[i].tfhid, OpenMode.ForWrite) as DBText;
|
|
1404
|
1428
|
tfh_temp.TextStyleId = HZ;
|
|
|
@@ -1501,6 +1525,7 @@ namespace Thumbnail
|
|
1501
|
1525
|
pll_ad.SetDatabaseDefaults();
|
|
1502
|
1526
|
btr.AppendEntity(pll_ad);
|
|
1503
|
1527
|
tran.AddNewlyCreatedDBObject(pll_ad, true);
|
|
|
1528
|
+ x_addline.Add(pll_ad);
|
|
1504
|
1529
|
DBText tfh_temp = tran.GetObject(tf[i].tfhid, OpenMode.ForWrite) as DBText;
|
|
1505
|
1530
|
tfh_temp.TextStyleId = HZ;
|
|
1506
|
1531
|
tfh_temp.HorizontalMode = TextHorizontalMode.TextCenter;
|
|
|
@@ -1695,6 +1720,8 @@ namespace Thumbnail
|
|
1695
|
1720
|
pll_cg_1.SetDatabaseDefaults();
|
|
1696
|
1721
|
btr.AppendEntity(pll_cg_1);
|
|
1697
|
1722
|
tran.AddNewlyCreatedDBObject(pll_cg_1, true);
|
|
|
1723
|
+ x_addline.Add(pll_cg);
|
|
|
1724
|
+ x_addline.Add(pll_cg_1);
|
|
1698
|
1725
|
DBText tfh = tran.GetObject(tf[i].tfhid, OpenMode.ForWrite) as DBText;
|
|
1699
|
1726
|
tfh.HorizontalMode = TextHorizontalMode.TextCenter;
|
|
1700
|
1727
|
tfh.VerticalMode = TextVerticalMode.TextVerticalMid;
|
|
|
@@ -1761,6 +1788,7 @@ namespace Thumbnail
|
|
1761
|
1788
|
pll_ad.SetDatabaseDefaults();
|
|
1762
|
1789
|
btr.AppendEntity(pll_ad);
|
|
1763
|
1790
|
tran.AddNewlyCreatedDBObject(pll_ad, true);
|
|
|
1791
|
+ y_addline.Add(pll_ad);
|
|
1764
|
1792
|
//判断高度能否放下文字
|
|
1765
|
1793
|
DBText tfh_temp = tran.GetObject(tf[i].tfhid, OpenMode.ForWrite) as DBText;
|
|
1766
|
1794
|
tfh_temp.TextStyleId = HZ;
|
|
|
@@ -1862,6 +1890,7 @@ namespace Thumbnail
|
|
1862
|
1890
|
pll_ad.SetDatabaseDefaults();
|
|
1863
|
1891
|
btr.AppendEntity(pll_ad);
|
|
1864
|
1892
|
tran.AddNewlyCreatedDBObject(pll_ad, true);
|
|
|
1893
|
+ y_addline.Add(pll_ad);
|
|
1865
|
1894
|
//判断高度能否放下文字
|
|
1866
|
1895
|
DBText tfh_temp = tran.GetObject(tf[i].tfhid, OpenMode.ForWrite) as DBText;
|
|
1867
|
1896
|
tfh_temp.TextStyleId = HZ;
|
|
|
@@ -2058,6 +2087,8 @@ namespace Thumbnail
|
|
2058
|
2087
|
pll_cg_2.SetDatabaseDefaults();
|
|
2059
|
2088
|
btr.AppendEntity(pll_cg_2);
|
|
2060
|
2089
|
tran.AddNewlyCreatedDBObject(pll_cg_2, true);
|
|
|
2090
|
+ y_addline.Add(pll_cg_1);
|
|
|
2091
|
+ y_addline.Add(pll_cg_2);
|
|
2061
|
2092
|
DBText tfh = tran.GetObject(tf[i].tfhid, OpenMode.ForWrite) as DBText;
|
|
2062
|
2093
|
tfh.HorizontalMode = TextHorizontalMode.TextCenter;
|
|
2063
|
2094
|
tfh.VerticalMode = TextVerticalMode.TextVerticalMid;
|
|
|
@@ -2180,6 +2211,18 @@ namespace Thumbnail
|
|
2180
|
2211
|
tran.Commit();
|
|
2181
|
2212
|
}
|
|
2182
|
2213
|
}
|
|
|
2214
|
+
|
|
|
2215
|
+ if (x_addline.Count != 0)
|
|
|
2216
|
+ {
|
|
|
2217
|
+ for (int i = 0; i < x_addline.Count; i++)
|
|
|
2218
|
+ {
|
|
|
2219
|
+ Polyline pl = x_addline[i];
|
|
|
2220
|
+ if (pl.StartPoint.X == pl.EndPoint.X)
|
|
|
2221
|
+ ifneedaddline(pl, doc, dist_l, 0);
|
|
|
2222
|
+ else
|
|
|
2223
|
+ ifneedaddline(pl, doc, dist_w, 1);
|
|
|
2224
|
+ }
|
|
|
2225
|
+ }
|
|
2183
|
2226
|
}
|
|
2184
|
2227
|
|
|
2185
|
2228
|
|
|
|
@@ -2394,9 +2437,173 @@ namespace Thumbnail
|
|
2394
|
2437
|
}
|
|
2395
|
2438
|
}
|
|
2396
|
2439
|
|
|
|
2440
|
+
|
|
|
2441
|
+ private void ifneedaddline(Polyline pl, Document doc, double length,int index)
|
|
|
2442
|
+ {
|
|
|
2443
|
+ bool flag1 = false;
|
|
|
2444
|
+ bool flag2 = false;
|
|
|
2445
|
+ length = length + 0.1;
|
|
|
2446
|
+ Editor ed = GrxCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
|
|
|
2447
|
+ if (index == 0)
|
|
|
2448
|
+ {
|
|
|
2449
|
+ double y = Math.Min(pl.StartPoint.Y, pl.EndPoint.Y) + Math.Abs(pl.StartPoint.Y - pl.EndPoint.Y) / 2;
|
|
|
2450
|
+ Point3dCollection ptcol1 = new Point3dCollection();
|
|
|
2451
|
+ ptcol1.Add(new Point3d(pl.StartPoint.X, y, 0));
|
|
|
2452
|
+ ptcol1.Add(new Point3d(pl.StartPoint.X + length, y, 0));
|
|
|
2453
|
+ Point3dCollection ptcol2 = new Point3dCollection();
|
|
|
2454
|
+ ptcol2.Add(new Point3d(pl.StartPoint.X, y, 0));
|
|
|
2455
|
+ ptcol2.Add(new Point3d(pl.StartPoint.X - length, y, 0));
|
|
|
2456
|
+ TypedValue[] value = new TypedValue[]
|
|
|
2457
|
+ {
|
|
|
2458
|
+ new TypedValue((int)DxfCode.LayerName,"9800"),
|
|
|
2459
|
+ new TypedValue((int)DxfCode.Start,"LWPOLYLINE,POLYLINE")
|
|
|
2460
|
+ };
|
|
|
2461
|
+ SelectionFilter filter = new SelectionFilter(value);
|
|
|
2462
|
+ PromptSelectionResult psr1 = ed.SelectFence(ptcol1, filter);
|
|
|
2463
|
+ PromptSelectionResult psr2 = ed.SelectFence(ptcol2, filter);
|
|
|
2464
|
+ ObjectIdCollection idcoll1 = new ObjectIdCollection();
|
|
|
2465
|
+ ObjectIdCollection idcoll2 = new ObjectIdCollection();
|
|
|
2466
|
+ if (psr1.Status == PromptStatus.OK)
|
|
|
2467
|
+ {
|
|
|
2468
|
+ SelectionSet ss = psr1.Value;
|
|
|
2469
|
+ idcoll1 = new ObjectIdCollection(ss.GetObjectIds());
|
|
|
2470
|
+ }
|
|
|
2471
|
+ if (psr2.Status == PromptStatus.OK)
|
|
|
2472
|
+ {
|
|
|
2473
|
+ SelectionSet ss = psr2.Value;
|
|
|
2474
|
+ idcoll2 = new ObjectIdCollection(ss.GetObjectIds());
|
|
|
2475
|
+ }
|
|
|
2476
|
+ using (Transaction tran = doc.Database.TransactionManager.StartTransaction())
|
|
|
2477
|
+ {
|
|
|
2478
|
+ BlockTable bt = (BlockTable)tran.GetObject(doc.Database.BlockTableId, OpenMode.ForRead);
|
|
|
2479
|
+ BlockTableRecord btr = (BlockTableRecord)tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
|
|
|
2480
|
+ for (int i = 0; i < idcoll1.Count; i++)
|
|
|
2481
|
+ {
|
|
|
2482
|
+ Polyline neighbpl = tran.GetObject(idcoll1[i], OpenMode.ForRead) as Polyline;
|
|
|
2483
|
+ if (Math.Round(neighbpl.StartPoint.X, 4) == Math.Round(neighbpl.EndPoint.X, 4)&& idcoll1[i]!=pl.ObjectId)
|
|
|
2484
|
+ {
|
|
|
2485
|
+ flag1 = true;
|
|
|
2486
|
+ break;
|
|
|
2487
|
+ }
|
|
|
2488
|
+ }
|
|
|
2489
|
+ if(flag1==false)
|
|
|
2490
|
+ {
|
|
|
2491
|
+ Polyline ad_pl1 = new Polyline();
|
|
|
2492
|
+ ad_pl1.AddVertexAt(0, new Point2d(pl.StartPoint.X + length, pl.StartPoint.Y), 0, 0, 0);
|
|
|
2493
|
+ ad_pl1.AddVertexAt(1, new Point2d(pl.StartPoint.X + length, pl.EndPoint.Y), 0, 0, 0);
|
|
|
2494
|
+ ad_pl1.Layer = "9800";
|
|
|
2495
|
+ ad_pl1.Linetype = "Bylayer";
|
|
|
2496
|
+ ad_pl1.SetDatabaseDefaults();
|
|
|
2497
|
+ btr.AppendEntity(ad_pl1);
|
|
|
2498
|
+ tran.AddNewlyCreatedDBObject(ad_pl1, true);
|
|
|
2499
|
+ }
|
|
|
2500
|
+ for (int i = 0; i < idcoll2.Count; i++)
|
|
|
2501
|
+ {
|
|
|
2502
|
+ Polyline neighbpl = tran.GetObject(idcoll2[i], OpenMode.ForRead) as Polyline;
|
|
|
2503
|
+ if (Math.Round(neighbpl.StartPoint.X, 4) == Math.Round(neighbpl.EndPoint.X, 4) && idcoll2[i] != pl.ObjectId)
|
|
|
2504
|
+ {
|
|
|
2505
|
+ flag2 = true;
|
|
|
2506
|
+ break;
|
|
|
2507
|
+ }
|
|
|
2508
|
+ }
|
|
|
2509
|
+ if (flag2==false)
|
|
|
2510
|
+ {
|
|
|
2511
|
+ Polyline ad_pl2 = new Polyline();
|
|
|
2512
|
+ ad_pl2.AddVertexAt(0, new Point2d(pl.StartPoint.X - length, pl.StartPoint.Y), 0, 0, 0);
|
|
|
2513
|
+ ad_pl2.AddVertexAt(1, new Point2d(pl.StartPoint.X - length, pl.EndPoint.Y), 0, 0, 0);
|
|
|
2514
|
+ ad_pl2.Layer = "9800";
|
|
|
2515
|
+ ad_pl2.Linetype = "Bylayer";
|
|
|
2516
|
+ ad_pl2.SetDatabaseDefaults();
|
|
|
2517
|
+ btr.AppendEntity(ad_pl2);
|
|
|
2518
|
+ tran.AddNewlyCreatedDBObject(ad_pl2, true);
|
|
|
2519
|
+ }
|
|
|
2520
|
+ tran.Commit();
|
|
|
2521
|
+ }
|
|
|
2522
|
+ }
|
|
|
2523
|
+ if (index == 1)
|
|
|
2524
|
+ {
|
|
|
2525
|
+ double x = Math.Min(pl.StartPoint.X, pl.EndPoint.X) + Math.Abs(pl.StartPoint.X - pl.EndPoint.X) / 2;
|
|
|
2526
|
+ Point3dCollection ptcol1 = new Point3dCollection();
|
|
|
2527
|
+ ptcol1.Add(new Point3d(x, pl.StartPoint.Y, 0));
|
|
|
2528
|
+ ptcol1.Add(new Point3d(x, pl.StartPoint.Y + length, 0));
|
|
|
2529
|
+ Point3dCollection ptcol2 = new Point3dCollection();
|
|
|
2530
|
+ ptcol2.Add(new Point3d(x, pl.StartPoint.Y, 0));
|
|
|
2531
|
+ ptcol2.Add(new Point3d(x, pl.StartPoint.Y - length, 0));
|
|
|
2532
|
+ TypedValue[] value = new TypedValue[]
|
|
|
2533
|
+ {
|
|
|
2534
|
+ new TypedValue((int)DxfCode.LayerName,"9800"),
|
|
|
2535
|
+ new TypedValue((int)DxfCode.Start,"LWPOLYLINE,POLYLINE")
|
|
|
2536
|
+ };
|
|
|
2537
|
+ SelectionFilter filter = new SelectionFilter(value);
|
|
|
2538
|
+ PromptSelectionResult psr1 = ed.SelectFence(ptcol1, filter);
|
|
|
2539
|
+ PromptSelectionResult psr2 = ed.SelectFence(ptcol2, filter);
|
|
|
2540
|
+ ObjectIdCollection idcoll1 = new ObjectIdCollection();
|
|
|
2541
|
+ ObjectIdCollection idcoll2 = new ObjectIdCollection();
|
|
|
2542
|
+ if (psr1.Status == PromptStatus.OK)
|
|
|
2543
|
+ {
|
|
|
2544
|
+ SelectionSet ss = psr1.Value;
|
|
|
2545
|
+ idcoll1 = new ObjectIdCollection(ss.GetObjectIds());
|
|
|
2546
|
+ }
|
|
|
2547
|
+ if (psr2.Status == PromptStatus.OK)
|
|
|
2548
|
+ {
|
|
|
2549
|
+ SelectionSet ss = psr2.Value;
|
|
|
2550
|
+ idcoll2 = new ObjectIdCollection(ss.GetObjectIds());
|
|
|
2551
|
+ }
|
|
|
2552
|
+ using (Transaction tran = doc.Database.TransactionManager.StartTransaction())
|
|
|
2553
|
+ {
|
|
|
2554
|
+ BlockTable bt = (BlockTable)tran.GetObject(doc.Database.BlockTableId, OpenMode.ForRead);
|
|
|
2555
|
+ BlockTableRecord btr = (BlockTableRecord)tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
|
|
|
2556
|
+ for (int i = 0; i < idcoll1.Count; i++)
|
|
|
2557
|
+ {
|
|
|
2558
|
+ Polyline neighbpl = tran.GetObject(idcoll1[i], OpenMode.ForRead) as Polyline;
|
|
|
2559
|
+ if (Math.Round(neighbpl.StartPoint.Y, 4) == Math.Round(neighbpl.EndPoint.Y, 4) && idcoll1[i] != pl.ObjectId)
|
|
|
2560
|
+ {
|
|
|
2561
|
+ flag1 = true;
|
|
|
2562
|
+ break;
|
|
|
2563
|
+ }
|
|
|
2564
|
+ }
|
|
|
2565
|
+ if (flag1 == false)
|
|
|
2566
|
+ {
|
|
|
2567
|
+ Polyline ad_pl1 = new Polyline();
|
|
|
2568
|
+ ad_pl1.AddVertexAt(0, new Point2d(pl.StartPoint.X, pl.StartPoint.Y + length), 0, 0, 0);
|
|
|
2569
|
+ ad_pl1.AddVertexAt(1, new Point2d(pl.EndPoint.X, pl.EndPoint.Y + length), 0, 0, 0);
|
|
|
2570
|
+ ad_pl1.Layer = "9800";
|
|
|
2571
|
+ ad_pl1.Linetype = "Bylayer";
|
|
|
2572
|
+ ad_pl1.SetDatabaseDefaults();
|
|
|
2573
|
+ btr.AppendEntity(ad_pl1);
|
|
|
2574
|
+ tran.AddNewlyCreatedDBObject(ad_pl1, true);
|
|
|
2575
|
+ }
|
|
|
2576
|
+ for (int i = 0; i < idcoll2.Count; i++)
|
|
|
2577
|
+ {
|
|
|
2578
|
+ Polyline neighbpl = tran.GetObject(idcoll2[i], OpenMode.ForRead) as Polyline;
|
|
|
2579
|
+ if (Math.Round(neighbpl.StartPoint.Y, 4) == Math.Round(neighbpl.EndPoint.Y, 4) && idcoll2[i] != pl.ObjectId)
|
|
|
2580
|
+ {
|
|
|
2581
|
+ flag2 = true;
|
|
|
2582
|
+ break;
|
|
|
2583
|
+ }
|
|
|
2584
|
+ }
|
|
|
2585
|
+ if (flag2 == false)
|
|
|
2586
|
+ {
|
|
|
2587
|
+ Polyline ad_pl2 = new Polyline();
|
|
|
2588
|
+ ad_pl2.AddVertexAt(0, new Point2d(pl.StartPoint.X, pl.StartPoint.Y - length), 0, 0, 0);
|
|
|
2589
|
+ ad_pl2.AddVertexAt(1, new Point2d(pl.StartPoint.X, pl.EndPoint.Y - length), 0, 0, 0);
|
|
|
2590
|
+ ad_pl2.Layer = "9800";
|
|
|
2591
|
+ ad_pl2.Linetype = "Bylayer";
|
|
|
2592
|
+ ad_pl2.SetDatabaseDefaults();
|
|
|
2593
|
+ btr.AppendEntity(ad_pl2);
|
|
|
2594
|
+ tran.AddNewlyCreatedDBObject(ad_pl2, true);
|
|
|
2595
|
+ }
|
|
|
2596
|
+ tran.Commit();
|
|
|
2597
|
+ }
|
|
|
2598
|
+
|
|
|
2599
|
+ }
|
|
|
2600
|
+ }
|
|
|
2601
|
+
|
|
|
2602
|
+
|
|
|
2603
|
+
|
|
2397
|
2604
|
public ObjectId createTextStyle(Document doc)
|
|
2398
|
2605
|
{
|
|
2399
|
|
- Database database = doc.Database;
|
|
|
2606
|
+ Database database = doc.Database;
|
|
2400
|
2607
|
ObjectId textstyleID = new ObjectId();
|
|
2401
|
2608
|
string stylename = "HZ";
|
|
2402
|
2609
|
using (Transaction traction = database.TransactionManager.StartTransaction())
|
|
|
@@ -2427,7 +2634,7 @@ namespace Thumbnail
|
|
2427
|
2634
|
}
|
|
2428
|
2635
|
return textstyleID;
|
|
2429
|
2636
|
}
|
|
2430
|
|
-
|
|
2431
|
2637
|
}
|
|
2432
|
2638
|
}
|
|
2433
|
2639
|
|
|
|
2640
|
+
|