private bool FindMatchingDatums(CyPhy.CADDatum datum, CyPhy.CADModel cadmodel, Dictionary<string, DataRep.Datum> featuremap) { string cadmodel_id = cadmodel.ID; string alignment = "ALIGN"; string orientation = "NONE"; if (datum.Kind == "Surface") { alignment = (datum as CyPhy.Surface).Attributes.Alignment.ToString(); if (alignment=="MATE") Logger.Instance.AddLogMessage("MATE alignment is used on surface: " + datum.ToHyperLink() + ". This construct is obsolete, please set up the connection as ALIGN.", Severity.Warning); } CadDatumTraversal traversal = new CadDatumTraversal(datum, cadmodel_id); if (traversal.datumFound.Count > 0) { if (traversal.datumFound.Count > 1) { Logger.Instance.AddLogMessage("Connector datum connected to multiple datums in the same CADModel [" + datum.Path + "]", Severity.Error); return true; // Error } // META-3232 /* DataRep.Datum datumRep = new DataRep.Datum(traversal.datumFound.First().Attributes.DatumName, datum.Kind, this.ParentInstanceGUID, guide); */ bool guide = datum.Attributes.DefinitionNotes.Contains("GUIDE"); if (guide) { Logger.Instance.AddLogMessage("Datum is using old guide format. Please use the attribute 'IsGuide'. [" + datum.Path + "]", Severity.Error); return true; // Error } guide |= datum.Attributes.IsGuide; DataRep.Datum datumRep = new DataRep.Datum(traversal.datumFound.First(), this.ParentInstanceGUID, guide); if (datum.Kind == "Surface") { if (traversal.ReverseMap) orientation = "SIDE_B"; else orientation = "SIDE_A"; } if (datum.Kind == "CoordinateSystem") { alignment = "CSYS"; } datumRep.Alignment = alignment; datumRep.Orientation = orientation; if (!featuremap.ContainsKey(datum.Name)) { featuremap[datum.Name] = datumRep; } } return false; }
private bool FindMatchingDatums(CyPhy.CADDatum datum, CyPhy.CADModel cadmodel, Dictionary <string, DataRep.Datum> featuremap) { string cadmodel_id = cadmodel.ID; string alignment = "ALIGN"; string orientation = "NONE"; if (datum.Kind == "Surface") { alignment = (datum as CyPhy.Surface).Attributes.Alignment.ToString(); if (alignment == "MATE") { Logger.Instance.AddLogMessage("MATE alignment is used on surface: " + datum.ToHyperLink() + ". This construct is obsolete, please set up the connection as ALIGN.", Severity.Warning); } } CadDatumTraversal traversal = new CadDatumTraversal(datum, cadmodel_id); if (traversal.datumFound.Count > 0) { if (traversal.datumFound.Count > 1) { Logger.Instance.AddLogMessage("Connector datum connected to multiple datums in the same CADModel [" + datum.Path + "]", Severity.Error); return(true); // Error } // META-3232 /* * DataRep.Datum datumRep = new DataRep.Datum(traversal.datumFound.First().Attributes.DatumName, * datum.Kind, * this.ParentInstanceGUID, guide); */ bool guide = datum.Attributes.DefinitionNotes.Contains("GUIDE"); if (guide) { Logger.Instance.AddLogMessage("Datum is using old guide format. Please use the attribute 'IsGuide'. [" + datum.Path + "]", Severity.Error); return(true); // Error } guide |= datum.Attributes.IsGuide; DataRep.Datum datumRep = new DataRep.Datum(traversal.datumFound.First(), this.ParentInstanceGUID, guide); if (datum.Kind == "Surface") { if (traversal.ReverseMap) { orientation = "SIDE_B"; } else { orientation = "SIDE_A"; } } if (datum.Kind == "CoordinateSystem") { alignment = "CSYS"; } datumRep.Alignment = alignment; datumRep.Orientation = orientation; if (!featuremap.ContainsKey(datum.Name)) { featuremap[datum.Name] = datumRep; } } return(false); }