diff --git a/RookieStation/CmdLogoExtrusion.cs b/RookieStation/CmdLogoExtrusion.cs
index b18a90c..7afc808 100644
--- a/RookieStation/CmdLogoExtrusion.cs
+++ b/RookieStation/CmdLogoExtrusion.cs
@@ -30,7 +30,7 @@ namespace RookieStation
GeometryInstance geometryInstance = geomObj as GeometryInstance;
if (geometryInstance != null)
{
- foreach (var instObj in geometryInstance.GetInstanceGeometry())
+ foreach (var instObj in geometryInstance.GetSymbolGeometry())
{
Curve curve = instObj as Curve;
if (curve == null)
@@ -41,71 +41,103 @@ namespace RookieStation
}
}
}
+ //doc.Invoke(ts =>
+ //{
+ // foreach (var curve in curves)
+ // {
+ // SketchPlane plane = SketchPlane.Create(doc, Plane.CreateByNormalAndOrigin(XYZ.BasisZ, XYZ.Zero));
+ // doc.FamilyCreate.NewModelCurve(curve, plane);
+ // }
+ //});
CurveArrArray arrArray = new CurveArrArray();
CurveArray array = new CurveArray();
- do
- {
- Curve curve = curves.Last();
- array.Clear();
- Curve tempcurve = curve;
- var endxyz = tempcurve.GetEndPoint(1);
- for (int j = curves.Count - 1; j >= 0; j--)
- {
- Curve cur = curves[j];
- if (cur.Equals(tempcurve))
- {
- array.Append(cur);
- curves.Remove(cur);
- continue;
- }
- if (cur.GetEndPoint(0).IsAlmostEqualTo(endxyz))
- {
- tempcurve = cur;
- endxyz = cur.GetEndPoint(1);
- array.Append(cur);
- curves.Remove(cur);
- continue;
- }
- if (cur.GetEndPoint(1).IsAlmostEqualTo(endxyz))
- {
- tempcurve = cur;
- endxyz = cur.GetEndPoint(0);
- array.Append(cur);
- curves.Remove(cur);
- continue;
- }
- }
- arrArray.Append(array);
- } while (curves.Count > 0);
- using (Transaction trans = new Transaction(doc, "cmd"))
- {
- try
- {
- trans.Start();
- //foreach (var item in curves)
- //{
- //}
- //doc.FamilyCreate.NewModelCurve()
- SketchPlane plane = SketchPlane.Create(doc, Plane.CreateByNormalAndOrigin(XYZ.BasisZ, XYZ.Zero));
- foreach (CurveArray arr in arrArray)
- {
- doc.FamilyCreate.NewModelCurveArray(arr, plane);
- }
+ SearchCurveConnected(curves, curves.FirstOrDefault(), array, arrArray);
+ //do
+ //{
+ // Curve baseCurve = curves.Last();
+ // var tempEndXyz = baseCurve.GetEndPoint(1);
+ // array.Clear();
+ // array.Append(baseCurve);
+ // curves.Remove(baseCurve);
- trans.Commit();
- }
- catch (Exception ex)
+ // for (int j = curves.Count - 1; j >= 0; j--)
+ // {
+ // Curve tempCurve = curves[j];
+
+ // if (tempCurve.GetEndPoint(0).IsAlmostEqualTo(tempEndXyz))
+ // {
+ // baseCurve = tempCurve;
+ // tempEndXyz = tempCurve.GetEndPoint(1);
+ // array.Append(tempCurve);
+ // curves.Remove(tempCurve);
+ // continue;
+ // }
+ // else if (tempCurve.GetEndPoint(1).IsAlmostEqualTo(tempEndXyz))
+ // {
+ // baseCurve = tempCurve;
+ // tempEndXyz = tempCurve.GetEndPoint(0);
+ // array.Append(tempCurve);
+ // curves.Remove(tempCurve);
+ // continue;
+ // }
+ // }
+ // arrArray.Append(array);
+ //} while (curves.Count > 0);
+
+ doc.Invoke(ts =>
+ {
+ SketchPlane plane = SketchPlane.Create(doc, Plane.CreateByNormalAndOrigin(XYZ.BasisZ, XYZ.Zero));
+
+ foreach (CurveArray arr in arrArray)
{
- Log.WriteLog(ex.Message);
- if (trans.GetStatus() == TransactionStatus.Started)
+ var ml = doc.FamilyCreate.NewModelCurveArray(arr, plane);
+ }
+ //foreach (CurveArray arr in arrArray)
+ //{
+ // doc.FamilyCreate.NewExtrusion(true, arrArray, plane, 5.0 / 304.8);
+
+ // //var ml = doc.FamilyCreate.NewModelCurveArray(arr, plane);
+ //}
+ });
+ return Result.Succeeded;
+ }
+
+ ///
+ /// 找到所有连接在一起的线圈并分好组
+ ///
+ /// 所有线
+ /// 用于查找与其连接的初始线
+ /// 初始的线串
+ /// 所有线串的集合
+ private void SearchCurveConnected(List curves, Curve initcurve, CurveArray initCurveArray, CurveArrArray curveArrArray)
+ {
+ for (int i = 0; i < curves.Count; i++)
+ {
+ Curve tempCurve = curves[i];
+ var baseEndXyz = initcurve.GetEndPoint(0);
+ if (tempCurve.GetEndPoint(0).IsAlmostEqualTo(baseEndXyz) || tempCurve.GetEndPoint(1).IsAlmostEqualTo(baseEndXyz))
+ {
+ initCurveArray.Append(tempCurve);
+ curves.Remove(tempCurve);
+ SearchCurveConnected(curves, tempCurve, initCurveArray, curveArrArray);
+
+ return;
+ }
+ else if (i == curves.Count() - 1)
+ {
+ curveArrArray.Append(initCurveArray);
+ //array.Clear();
+ initCurveArray = new CurveArray();
+ SearchCurveConnected(curves, curves.FirstOrDefault(), initCurveArray, curveArrArray);
+ ////由于最后一轮运行完递归后,所有线段均成串,只执行上面的if内容,所以没办法将剩余线加到集合中。
+ if (curves.Count() == 0)
{
- trans.RollBack();
+ curveArrArray.Append(initCurveArray);
}
- return Result.Cancelled;
+ return;
}
}
- return Result.Succeeded;
}
}
}
\ No newline at end of file
diff --git a/RookieStation/Properties/AssemblyInfo.cs b/RookieStation/Properties/AssemblyInfo.cs
index f10f907..c064fa0 100644
--- a/RookieStation/Properties/AssemblyInfo.cs
+++ b/RookieStation/Properties/AssemblyInfo.cs
@@ -8,7 +8,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("RookieStation")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
+[assembly: AssemblyCompany("永特新工程")]
[assembly: AssemblyProduct("RookieStation")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
diff --git a/RookieStation/Resources/YTX.ico b/RookieStation/Resources/YTX.ico
new file mode 100644
index 0000000..0a0e25b
Binary files /dev/null and b/RookieStation/Resources/YTX.ico differ
diff --git a/RookieStation/RookieStation.csproj b/RookieStation/RookieStation.csproj
index 1a56ca5..2c4de99 100644
--- a/RookieStation/RookieStation.csproj
+++ b/RookieStation/RookieStation.csproj
@@ -33,6 +33,9 @@
4
x64
+
+ Resources\YTX.ico
+
..\packages\Revit_API_x64.2020.0.0\lib\NET470\AdWindows.dll
@@ -327,6 +330,7 @@
+
Always
diff --git a/RookieStationSetup/RookieStationSetup.vdproj b/RookieStationSetup/RookieStationSetup.vdproj
index 4def3df..8fb3440 100644
--- a/RookieStationSetup/RookieStationSetup.vdproj
+++ b/RookieStationSetup/RookieStationSetup.vdproj
@@ -2239,15 +2239,15 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:菜鸟驿站工具集"
- "ProductCode" = "8:{AFF84E16-0B2D-4AA9-8FB6-270E31E03704}"
- "PackageCode" = "8:{BBFE184F-070A-4A8E-9C9D-FF185BB2F5F2}"
+ "ProductCode" = "8:{3C7C28E4-ABFB-47B5-A2D2-1D3BE24156C2}"
+ "PackageCode" = "8:{EC98D320-1D7C-47B2-B3C8-9F02E7AE396A}"
"UpgradeCode" = "8:{127EC3EC-7539-468B-84EA-E1ECDD6204E6}"
"AspNetVersion" = "8:2.0.50727.0"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:1.0.1"
+ "ProductVersion" = "8:1.0.2"
"Manufacturer" = "8:YTX Engineering"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
@@ -2255,8 +2255,8 @@
"Subject" = "8:"
"ARPCONTACT" = "8:YTX Engineering"
"Keywords" = "8:"
- "ARPCOMMENTS" = "8:"
- "ARPURLINFOABOUT" = "8:"
+ "ARPCOMMENTS" = "8:永特新工程"
+ "ARPURLINFOABOUT" = "8:https://www.yongtexin.com/"
"ARPPRODUCTICON" = "8:"
"ARPIconIndex" = "3:0"
"SearchPath" = "8:"
@@ -2704,7 +2704,7 @@
{
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FBE461B9D4BD4603919E2821D88FB7CB"
{
- "SourcePath" = "8:..\\RookieStation\\obj\\Release\\RookieStation.dll"
+ "SourcePath" = "8:..\\RookieStation\\obj\\Debug\\RookieStation.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_7C1EF99E309C4A3FB02B902F06BE7F60"