개정판 1b261371
dev issue #000 : 심볼 위치 보정 로직 추가
Change-Id: I0ac14a43b656372028ca1e74abab90e866a0723e
DTI_PID/SPPIDConverter/AutoModeling.cs | ||
---|---|---|
44 | 44 |
{ |
45 | 45 |
// Run 별로 Modeling |
46 | 46 |
Symbol prevSymbol = null; |
47 |
object prevItem = null;
|
|
48 |
foreach (object item in run.RUNITEMS)
|
|
47 |
// Symbol 먼저
|
|
48 |
foreach (var item in run.RUNITEMS)
|
|
49 | 49 |
{ |
50 | 50 |
if (item.GetType() == typeof(Symbol)) |
51 | 51 |
{ |
52 | 52 |
Symbol symbol = item as Symbol; |
53 | 53 |
SymbolModeling(symbol, prevSymbol); |
54 |
//// 바로 전 아이템이 Symbol |
|
55 |
//if (prevItem != null && prevItem.GetType() == typeof(Symbol)) |
|
56 |
//{ |
|
57 |
|
|
58 |
//} |
|
59 |
//// 바로 전 아이템 Line 예전 Item 이 Symbol |
|
60 |
//else if (prevItem != null && prevSymbol != null) |
|
61 |
//{ |
|
62 |
|
|
63 |
//} |
|
64 | 54 |
prevSymbol = symbol; |
65 | 55 |
} |
66 |
else if (item.GetType() == typeof(Line)) |
|
56 |
} |
|
57 |
|
|
58 |
object prevItem = null; |
|
59 |
prevSymbol = null; |
|
60 |
foreach (var item in run.RUNITEMS) |
|
61 |
{ |
|
62 |
if (item.GetType() == typeof(Line)) |
|
67 | 63 |
{ |
68 |
Line line = item as Line; |
|
69 |
LineModeling(item as Line); |
|
64 |
|
|
70 | 65 |
} |
71 | 66 |
|
72 | 67 |
prevItem = item; |
73 | 68 |
} |
74 | 69 |
|
75 | 70 |
|
76 |
|
|
77 | 71 |
} |
78 | 72 |
} |
79 | 73 |
|
... | ... | |
82 | 76 |
System.Windows.Forms.MessageBox.Show("end"); |
83 | 77 |
} |
84 | 78 |
|
79 |
|
|
85 | 80 |
private void TestSource() |
86 | 81 |
{ |
87 | 82 |
|
... | ... | |
92 | 87 |
LMSymbol _LMSymbol = null; |
93 | 88 |
|
94 | 89 |
string mappingPath = symbol.SPPID.MAPPINGNAME; |
95 |
double x = symbol.SPPID.LOCATION_X;
|
|
96 |
double y = symbol.SPPID.LOCATION_Y;
|
|
90 |
double x = symbol.SPPID.ORIGINAL_X;
|
|
91 |
double y = symbol.SPPID.ORIGINAL_Y;
|
|
97 | 92 |
int mirror = 0; |
98 | 93 |
double angle = symbol.ANGLE; |
99 | 94 |
LMSymbol _TargetItem = null; |
100 | 95 |
|
101 | 96 |
if (prevSymbol != null) |
102 | 97 |
{ |
103 |
SlopeType slopeType = SPPIDUtil.CalcSlope(symbol.SPPID.LOCATION_X, symbol.SPPID.LOCATION_Y, prevSymbol.SPPID.LOCATION_X, prevSymbol.SPPID.LOCATION_Y); |
|
98 |
SlopeType slopeType = SPPIDUtil.CalcSlope(x, y, prevSymbol.SPPID.ORIGINAL_X, prevSymbol.SPPID.ORIGINAL_Y); |
|
99 |
LMADataSource dataSource = _placement.PIDDataSource; |
|
100 |
LMSymbol prevLMSymbol = dataSource.GetSymbol(prevSymbol.SPPID.ITEMOBJECT); |
|
101 |
double prevX = prevLMSymbol.get_XCoordinate(); |
|
102 |
double prevY = prevLMSymbol.get_YCoordinate(); |
|
104 | 103 |
if (slopeType == SlopeType.HORIZONTAL) |
105 |
{ |
|
106 |
|
|
107 |
} |
|
104 |
y = prevY; |
|
108 | 105 |
else if (slopeType == SlopeType.VERTICAL) |
109 |
{
|
|
106 |
x = prevX;
|
|
110 | 107 |
|
111 |
} |
|
112 | 108 |
} |
113 | 109 |
else |
114 | 110 |
{ |
... | ... | |
125 | 121 |
|
126 | 122 |
if (_LMSymbol != null) |
127 | 123 |
{ |
128 |
|
|
124 |
symbol.SPPID.ITEMOBJECT = _LMSymbol.AsLMRepresentation().Id; |
|
129 | 125 |
} |
130 | 126 |
|
131 | 127 |
ReleaseCOMObjects(_LMSymbol); |
... | ... | |
147 | 143 |
ReleaseCOMObjects(_LMAItem); |
148 | 144 |
} |
149 | 145 |
|
146 |
private void LineModeling(List<Line> lines) |
|
147 |
{ |
|
148 |
object DrwingID = "0"; |
|
149 |
_LMAItem _LMAItem = _placement.PIDCreateItem(lines[0].SPPID.MAPPINGNAME, ref DrwingID); |
|
150 |
PlaceRunInputs placeRunInputs = new PlaceRunInputs(); |
|
151 |
for (int i = 0; i < lines.Count; i++) |
|
152 |
{ |
|
153 |
Line line = lines[i]; |
|
154 |
placeRunInputs.AddPoint(line.SPPID.START_X, line.SPPID.START_Y); |
|
155 |
placeRunInputs.AddPoint(line.SPPID.END_X, line.SPPID.END_Y); |
|
156 |
} |
|
157 |
|
|
158 |
|
|
159 |
LMConnector lMConnector = _placement.PIDPlaceRun(_LMAItem, placeRunInputs); |
|
160 |
lMConnector.Commit(); |
|
161 |
|
|
162 |
ReleaseCOMObjects(lMConnector); |
|
163 |
ReleaseCOMObjects(placeRunInputs); |
|
164 |
ReleaseCOMObjects(_LMAItem); |
|
165 |
} |
|
166 |
|
|
150 | 167 |
private void LineNumberModeling(LineNumber lineNumber) |
151 | 168 |
{ |
152 | 169 |
|
내보내기 Unified diff