개정판 518c7651
dev issue #507 : edit specbreak relocation
Change-Id: I11d97842d90eff19604c037027e66bc117c5bf68
DTI_PID/SPPIDConverter/ConverterDocking.cs | ||
---|---|---|
936 | 936 |
} |
937 | 937 |
|
938 | 938 |
SpecBreakRelocation(degree, originX, originY, crossX, crossY, topX, topY, dependency1, dependency2, dependency3); |
939 |
SetSpecBreakParameters(symbol, dependency1, dependency2, degree); |
|
939 | 940 |
} |
940 | 941 |
else |
941 | 942 |
{ |
942 | 943 |
MessageBox.Show("Check Rule!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); |
943 | 944 |
} |
944 | 945 |
} |
946 |
private void SetSpecBreakParameters(Symbol2d symbol, DependencyObject dependency1, DependencyObject dependency2, double degree) |
|
947 |
{ |
|
948 |
bool mirror = symbol.GetTransform().HasReflection; |
|
949 |
string repID = GetRepresentationId(symbol); |
|
950 |
Placement placement = new Placement(); |
|
951 |
LMADataSource dataSource = placement.PIDDataSource; |
|
952 |
|
|
953 |
LMSymbol _LMSymbol = dataSource.GetSymbol(repID); |
|
954 |
if (_LMSymbol != null) |
|
955 |
{ |
|
956 |
double sX1, sY1, sX2, sY2, sOriginX, sOriginY; |
|
957 |
symbol.Range(out sX1, out sY1, out sX2, out sY2); |
|
958 |
symbol.GetOrigin(out sOriginX, out sOriginY); |
|
959 |
double d1X1, d1Y1, d1X2, d1Y2, d2X1, d2Y1, d2X2, d2Y2; |
|
960 |
FindRangeWithOutLineString2d(dependency1, out d1X1, out d1Y1, out d1X2, out d1Y2); |
|
961 |
FindRangeWithOutLineString2d(dependency2, out d2X1, out d2Y1, out d2X2, out d2Y2); |
|
962 |
|
|
963 |
double left = 0, right = 0; |
|
964 |
switch (degree) |
|
965 |
{ |
|
966 |
case 0: |
|
967 |
if (!mirror) |
|
968 |
{ |
|
969 |
left = Math.Abs(d1X1 - sOriginX); |
|
970 |
right = Math.Abs(d2X2 - sOriginX); |
|
971 |
} |
|
972 |
else |
|
973 |
{ |
|
974 |
right = Math.Abs(d1X1 - sOriginX); |
|
975 |
left = Math.Abs(d2X2 - sOriginX); |
|
976 |
} |
|
977 |
break; |
|
978 |
case 90: |
|
979 |
if (!mirror) |
|
980 |
{ |
|
981 |
left = Math.Abs(d1Y1 - sOriginY); |
|
982 |
right = Math.Abs(d2Y2 - sOriginY); |
|
983 |
} |
|
984 |
else |
|
985 |
{ |
|
986 |
right = Math.Abs(d1Y1 - sOriginY); |
|
987 |
left = Math.Abs(d2Y2 - sOriginY); |
|
988 |
} |
|
989 |
break; |
|
990 |
case 180: |
|
991 |
if (!mirror) |
|
992 |
{ |
|
993 |
right = Math.Abs(d1X1 - sOriginX); |
|
994 |
left = Math.Abs(d2X2 - sOriginX); |
|
995 |
} |
|
996 |
else |
|
997 |
{ |
|
998 |
left = Math.Abs(d1X1 - sOriginX); |
|
999 |
right = Math.Abs(d2X2 - sOriginX); |
|
1000 |
|
|
1001 |
} |
|
1002 |
break; |
|
1003 |
case 270: |
|
1004 |
if (!mirror) |
|
1005 |
{ |
|
1006 |
right = Math.Abs(d1Y1 - sOriginY); |
|
1007 |
left = Math.Abs(d2Y2 - sOriginY); |
|
1008 |
} |
|
1009 |
else |
|
1010 |
{ |
|
1011 |
left = Math.Abs(d1Y1 - sOriginY); |
|
1012 |
right = Math.Abs(d2Y2 - sOriginY); |
|
1013 |
} |
|
1014 |
break; |
|
1015 |
default: |
|
1016 |
break; |
|
1017 |
} |
|
1018 |
|
|
1019 |
string[] array1 = new string[] { "", "Left", "Right" }; |
|
1020 |
string[] array2 = new string[] { "", left.ToString(), right.ToString() }; |
|
1021 |
placement.PIDApplyParameters(_LMSymbol.AsLMRepresentation(), array1, array2); |
|
1022 |
} |
|
1023 |
|
|
1024 |
ReleaseCOMObjects(_LMSymbol); |
|
1025 |
ReleaseCOMObjects(dataSource); |
|
1026 |
ReleaseCOMObjects(placement); |
|
1027 |
} |
|
945 | 1028 |
private void SpecBreakRelocation(double degree, double originX, double originY, double crossX, double crossY, double topX, double topY, DependencyObject dependency1, DependencyObject dependency2, DependencyObject dependency3) |
946 | 1029 |
{ |
947 | 1030 |
double d1X1, d1Y1, d1X2, d1Y2, d2X1, d2Y1, d2X2, d2Y2, d3X1 = 0, d3Y1 = 0, d3X2 = 0, d3Y2 = 0; |
... | ... | |
1032 | 1115 |
} |
1033 | 1116 |
|
1034 | 1117 |
} |
1118 |
private void FindWidthHeightWidthOutLineString2d(DependencyObject dependency, out double width, out double height) |
|
1119 |
{ |
|
1120 |
width = 0; |
|
1121 |
height = 0; |
|
1122 |
|
|
1123 |
double x1 = double.MaxValue; |
|
1124 |
double y1 = double.MaxValue; |
|
1125 |
double x2 = double.MinValue; |
|
1126 |
double y2 = double.MinValue; |
|
1127 |
foreach (DrawingObjectBase item in dependency.DrawingObjects) |
|
1128 |
{ |
|
1129 |
if (item.GetType() != typeof(LineString2d)) |
|
1130 |
{ |
|
1131 |
double minX, minY, maxX, maxY; |
|
1132 |
item.Range(out minX, out minY, out maxX, out maxY); |
|
1133 |
if (x1 > minX) |
|
1134 |
x1 = minX; |
|
1135 |
if (y1 > minY) |
|
1136 |
y1 = minY; |
|
1137 |
if (x2 < maxX) |
|
1138 |
x2 = maxX; |
|
1139 |
if (y2 < maxY) |
|
1140 |
y2 = maxY; |
|
1141 |
} |
|
1142 |
} |
|
1143 |
|
|
1144 |
width = x2 - x1; |
|
1145 |
height = y2 - y1; |
|
1146 |
} |
|
1147 |
|
|
1035 | 1148 |
private void FindRangeWithOutLineString2dAndTextBox(DependencyObject dependency, out double x1, out double y1, out double x2, out double y2) |
1036 | 1149 |
{ |
1037 | 1150 |
x1 = double.MaxValue; |
DTI_PID/SPPIDConverter/DB/SPPID_DB.cs | ||
---|---|---|
213 | 213 |
|
214 | 214 |
return plantList; |
215 | 215 |
} |
216 |
|
|
216 |
|
|
217 | 217 |
public static DataTable GetSPPIDAttribute() |
218 | 218 |
{ |
219 | 219 |
List<string> attributes = new List<string>(); |
DTI_PID/SPPIDConverter/Util/SPPIDUtil.cs | ||
---|---|---|
645 | 645 |
public static void test() |
646 | 646 |
{ |
647 | 647 |
Placement placement = new Placement(); |
648 |
//placement.PIDApplyParameters() |
|
649 | 648 |
LMADataSource dataSource = new LMADataSource(); |
650 |
|
|
651 |
LMAFilter filter = new LMAFilter(); |
|
652 |
//LMACriterion criterion = new LMACriterion(); |
|
653 |
filter.ItemType = "Label"; |
|
654 |
//criterion.SourceAttributeName = "NAME"; |
|
655 |
//criterion.Operator = "="; |
|
656 |
//criterion.set_ValueAttribute(name); |
|
657 |
//filter.get_Criteria().Add(criterion); |
|
658 |
_LMAItems items = dataSource.Collect("Label", Filter: filter); |
|
659 |
|
|
649 |
LMSymbol symbol = dataSource.GetSymbol("BBAB475FA9AF4C01AACF4C51F56241F8"); |
|
650 |
|
|
651 |
string[] array1 = new string[] { "", "Top" }; |
|
652 |
string[] array2 = new string[] { "", "0.005" }; |
|
653 |
placement.PIDApplyParameters(symbol.AsLMRepresentation(), array1, array2); |
|
660 | 654 |
|
661 | 655 |
ReleaseCOMObjects(dataSource); |
662 | 656 |
} |
내보내기 Unified diff