// Pre public override void TranslateC2T(MECMOD.Shape cShape) { PARTITF.RectPattern cRectPattern = (PARTITF.RectPattern)cShape; object[] firstDir = new object[3]; object[] secondDir = new object[3]; GetDirections(cRectPattern, firstDir, secondDir); int firstCount = cRectPattern.FirstDirectionRepartition.InstancesCount.Value; double firstSpacing = Math.Abs(cRectPattern.FirstDirectionRepartition.Spacing.Value); int secondCount = cRectPattern.SecondDirectionRepartition.InstancesCount.Value; double secondSpacing = Math.Abs(cRectPattern.SecondDirectionRepartition.Spacing.Value); TransCAD.References refElements = PartManager.tPart.CreateReferences(); TransCAD.Reference refElement = PartManager.tPart.SelectFeatureByName(cRectPattern.ItemToCopy.get_Name()); if (refElement != null) { refElements.Add(refElement); } PartManager.tFeatures.AddNewSolidOperatePatternRectangularFeature(cRectPattern.get_Name(), refElements, firstSpacing, (double)firstDir[0], (double)firstDir[1], (double)firstDir[2], firstCount, secondSpacing, (double)secondDir[0], (double)secondDir[1], (double)secondDir[2], secondCount); }
// Post public override void TranslateT2C(TransCAD.IFeature tFeature) { TransCAD.IStdSolidOperatePatternRectangularFeature tRectPattern = (TransCAD.IStdSolidOperatePatternRectangularFeature)tFeature; double[] colDir = new double[3]; double[] rowDir = new double[3]; tRectPattern.ColumnDirection(out colDir[0], out colDir[1], out colDir[2]); tRectPattern.RowDirection(out rowDir[0], out rowDir[1], out rowDir[2]); int colInstance = tRectPattern.ColumnNumber; double colSpacing = tRectPattern.ColumnSpacing; int rowInstance = tRectPattern.RowNumber; double rowSpacing = tRectPattern.RowSpacing; PARTITF.RectPattern cRectPattern = PartManager.cShapeFactory.AddNewRectPattern(null, 2, 1, 20.0, 20.0, 1, 1, null, null, true, true, 0.0); IEnumerator tTargetFeatures = tRectPattern.TargetFeatures.GetEnumerator(); while (tTargetFeatures.MoveNext()) { TransCAD.Reference tTargetFeature = (TransCAD.Reference)tTargetFeatures.Current; cRectPattern.ItemToCopy = PartManager.cShapes.Item(PartManager.ReferenceManager.NameMap[tTargetFeature.ReferenceeName]); } cRectPattern.FirstRectangularPatternParameters = PARTITF.CatRectangularPatternParameters.catInstancesandSpacing; cRectPattern.SecondRectangularPatternParameters = PARTITF.CatRectangularPatternParameters.catInstancesandSpacing; INFITF.Reference referencePlane = GetReferencePlane(cRectPattern, colDir, rowDir); cRectPattern.SetFirstDirection(referencePlane); cRectPattern.SetSecondDirection(referencePlane); cRectPattern.FirstDirectionRepartition.InstancesCount.Value = colInstance; cRectPattern.FirstDirectionRepartition.Spacing.Value = colSpacing; cRectPattern.SecondDirectionRepartition.InstancesCount.Value = rowInstance; cRectPattern.SecondDirectionRepartition.Spacing.Value = rowSpacing; PartManager.cPart.UpdateObject(cRectPattern); PartManager.ReferenceManager.NameMap.Add(tRectPattern.Name, cRectPattern.get_Name()); }