本文整理汇总了C#中Feature.GetTypeName2方法的典型用法代码示例。如果您正苦于以下问题:C# Feature.GetTypeName2方法的具体用法?C# Feature.GetTypeName2怎么用?C# Feature.GetTypeName2使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Feature
的用法示例。
在下文中一共展示了Feature.GetTypeName2方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ConvertMateToPython
public static bool ConvertMateToPython(
ref Feature swMateFeature,
ref string asciitext,
ref ISldWorks mSWApplication,
ref Hashtable saved_parts,
ref int num_link,
ref MathTransform roottrasf,
ref Component2 assemblyofmates
)
{
if (swMateFeature == null)
return false;
Mate2 swMate = (Mate2)swMateFeature.GetSpecificFeature2();
if (swMate == null)
return false;
object foo =null;
bool[] suppressedflags;
suppressedflags = (bool[])swMateFeature.IsSuppressed2((int)swInConfigurationOpts_e.swThisConfiguration, foo);
if (suppressedflags[0] == true)
return false;
if (swMate.GetMateEntityCount() >= 2)
{
// Get the mated parts
MateEntity2 swEntityA = swMate.MateEntity(0);
MateEntity2 swEntityB = swMate.MateEntity(1);
Component2 swCompA = swEntityA.ReferenceComponent;
Component2 swCompB = swEntityB.ReferenceComponent;
double[] paramsA = (double[])swEntityA.EntityParams;
double[] paramsB = (double[])swEntityB.EntityParams;
// this is needed because parts might reside in subassemblies, and mate params are expressed in parent subassembly
MathTransform invroottrasf = (MathTransform)roottrasf.Inverse();
MathTransform trA = roottrasf;
MathTransform trB = roottrasf;
if (assemblyofmates != null)
{
MathTransform partrasfA = assemblyofmates.GetTotalTransform(true);
if (partrasfA != null)
trA = partrasfA.IMultiply(invroottrasf); // row-ordered transf. -> reverse mult.order!
MathTransform partrasfB = assemblyofmates.GetTotalTransform(true);
if (partrasfB != null)
trB = partrasfB.IMultiply(invroottrasf); // row-ordered transf. -> reverse mult.order!
}
// Fetch the python names using hash map (python names added when scanning parts)
ModelDocExtension swModelDocExt = default(ModelDocExtension);
ModelDoc2 swModel = (ModelDoc2)mSWApplication.ActiveDoc;
swModelDocExt = swModel.Extension;
String name1 = (String)saved_parts[swModelDocExt.GetPersistReference3(swCompA)];
String name2 = (String)saved_parts[swModelDocExt.GetPersistReference3(swCompB)];
// Only constraints between two parts or part & layout can be created
if ( ((name1 != null) || (name2 != null)) && (name1 != name2) )
{
CultureInfo bz = new CultureInfo("en-BZ");
if (name1 == null)
name1 = "body_0";
if (name2 == null)
name2 = "body_0";
// Add some comment in Python, to list the referenced SW items
asciitext += "\n# Mate constraint: " + swMateFeature.Name + " [" + swMateFeature.GetTypeName2() + "]" + " type:" + swMate.Type + " align:" + swMate.Alignment + " flip:" + swMate.Flipped + "\n";
for (int e = 0; e < swMate.GetMateEntityCount(); e++)
{
MateEntity2 swEntityN = swMate.MateEntity(e);
Component2 swCompN = swEntityN.ReferenceComponent;
String ce_nameN = (String)saved_parts[swModelDocExt.GetPersistReference3(swCompN)];
asciitext += "# Entity " + e + ": C::E name: " + ce_nameN + " , SW name: " + swCompN.Name2 + " , SW ref.type:" + swEntityN.Reference.GetType() + " (" + swEntityN.ReferenceType2 + ")\n";
}
asciitext += "\n";
//
// For each type of SW mate, see which C::E mate constraint(s)
// must be created. Some SW mates correspond to more than one C::E constraints.
//
bool swapAB_1 = false;
bool do_CHmate_Xdistance = false;
double do_distance_val = 0.0;
bool do_CHmate_parallel = false;
bool do_parallel_flip = false;
bool do_CHmate_orthogonal = false;
bool do_CHmate_spherical = false;
bool do_CHmate_pointline = false;
// to simplify things later...
// NOTE: swMate.MateEntity(0).Reference.GetType() seems equivalent to swMate.MateEntity(0).ReferenceType2
// but in some cases the latter fails.
bool entity_0_as_FACE = (swMate.MateEntity(0).Reference.GetType() == (int)swSelectType_e.swSelFACES);
bool entity_0_as_EDGE = (swMate.MateEntity(0).Reference.GetType() == (int)swSelectType_e.swSelEDGES) ||
(swMate.MateEntity(0).Reference.GetType() == (int)swSelectType_e.swSelSKETCHSEGS) ||
(swMate.MateEntity(0).Reference.GetType() == (int)swSelectType_e.swSelDATUMAXES);
bool entity_0_as_VERTEX = (swMate.MateEntity(0).Reference.GetType() == (int)swSelectType_e.swSelVERTICES) ||
(swMate.MateEntity(0).Reference.GetType() == (int)swSelectType_e.swSelSKETCHPOINTS) ||
(swMate.MateEntity(0).Reference.GetType() == (int)swSelectType_e.swSelDATUMPOINTS);
//.........这里部分代码省略.........
示例2: PythonTraverseFeatures_for_links
public void PythonTraverseFeatures_for_links(Feature swFeat, long nLevel, ref string asciitext, ref MathTransform roottrasf, ref Component2 assemblyofmates)
{
Feature swSubFeat;
int num_link = 0;
while ((swFeat != null))
{
// Export mates as constraints
if ((swFeat.GetTypeName2() == "MateGroup") &&
(this.checkBox_constraints.Checked))
{
swSubFeat = (Feature)swFeat.GetFirstSubFeature();
while ((swSubFeat != null))
{
ConvertMates.ConvertMateToPython(ref swSubFeat, ref asciitext, ref mSWApplication, ref saved_parts, ref num_link, ref roottrasf, ref assemblyofmates);
swSubFeat = (Feature)swSubFeat.GetNextSubFeature();
} // end while loop on subfeatures mates
} // end if mate group
swFeat = (Feature)swFeat.GetNextFeature();
} // end while loop on features
}
示例3: PythonTraverseFeatures_for_markers
public void PythonTraverseFeatures_for_markers(Feature swFeat, long nLevel, ref string asciitext, int nbody, MathTransform swCompTotalTrasf)
{
CultureInfo bz = new CultureInfo("en-BZ");
int nmarker = 0;
String bodyname = "body_" + nbody;
while ((swFeat != null))
{
// asciitext += "# feature: " + swFeat.Name + " [" + swFeat.GetTypeName2() + "]" + "\n";
// Export markers, if any (as coordinate systems)
if (swFeat.GetTypeName2() == "CoordSys")
{
nmarker++;
CoordinateSystemFeatureData swCoordSys = (CoordinateSystemFeatureData)swFeat.GetDefinition();
MathTransform tr = swCoordSys.Transform;
MathTransform tr_part = swCompTotalTrasf;
MathTransform tr_abs = tr.IMultiply(tr_part); // row-ordered transf. -> reverse mult.order!
double[] quat = GetQuaternionFromMatrix(ref tr_abs);
double[] amatr = (double[])tr_abs.ArrayData;
String markername = "marker_" + nbody + "_" + nmarker;
asciitext += "\n# Auxiliary marker (coordinate system feature)\n";
asciitext += String.Format(bz, "{0} =chrono.ChMarker()\n", markername);
asciitext += String.Format(bz, "{0}.SetName('{1}')" + "\n", markername, swFeat.Name);
asciitext += String.Format(bz, "{0}.AddMarker({1})\n", bodyname, markername);
asciitext += String.Format(bz, "{0}.Impose_Abs_Coord(chrono.ChCoordsysD(chrono.ChVectorD({1},{2},{3}),chrono.ChQuaternionD({4},{5},{6},{7})))\n",
markername,
amatr[9]*ChScale.L,
amatr[10]*ChScale.L,
amatr[11]*ChScale.L,
quat[0], quat[1], quat[2], quat[3]);
}
swFeat = (Feature)swFeat.GetNextFeature();
}
}
示例4: DumpTraverseFeatures
public void DumpTraverseFeatures(Feature swFeat, long nLevel, ref string asciitext)
{
Feature swSubFeat;
string sPadStr = " ";
long i = 0;
for (i = 0; i <= nLevel; i++)
{
sPadStr = sPadStr + " ";
}
while ((swFeat != null))
{
asciitext += sPadStr + " -" + swFeat.Name + " [" + swFeat.GetTypeName2() + "]" + "\n";
swSubFeat = (Feature)swFeat.GetFirstSubFeature();
if ((swSubFeat != null))
{
DumpTraverseFeatures(swSubFeat, nLevel + 1, ref asciitext);
}
if (nLevel == 1)
{
swFeat = (Feature)swFeat.GetNextFeature();
}
else
{
swFeat = (Feature)swFeat.GetNextSubFeature();
}
}
}