Skip to content

Commit 1a69688

Browse files
committed
Upgraded to OpenCV 4.7.0 and Fusion 360 v2.0.15509
1 parent db5c490 commit 1a69688

10 files changed

+71
-31
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.vs

WWAddin.bundle/Contents/Source/WWAddin.cpp

+40-18
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ the use of this software, even if advised of the possibility of such damage.
7070
using namespace adsk::core;
7171
using namespace adsk::fusion;
7272

73+
7374
Ptr<Application> app;
7475
Ptr<UserInterface> ui;
7576
Ptr<Component> newComp;
@@ -389,7 +390,7 @@ cv::Mat dst;
389390
cv::Mat detected_edges;
390391
int lowThreshold = 50;
391392
int const max_lowThreshold = 100;
392-
int ratio = 3;
393+
int ratio3 = 3;
393394
int kernel_size = 3;
394395
const char* window_name = "Contour groove";
395396

@@ -402,28 +403,36 @@ static bool showPreview = false;
402403

403404
static void CannyThreshold(int, void*)
404405
{
405-
if (!detected_edges.empty() && detected_edges.data)
406+
try
406407
{
407-
detected_edges.release();
408-
}
409-
detected_edges = cv::Scalar::all(0);
410-
411-
blur(src_gray, detected_edges, cv::Size(3, 3));
408+
if (!detected_edges.empty() && detected_edges.data)
409+
{
410+
detected_edges.release();
411+
}
412+
detected_edges = cv::Scalar::all(0);
413+
414+
415+
blur(src_gray, detected_edges, cv::Size(3, 3));
416+
417+
Canny(detected_edges, detected_edges, lowThreshold, lowThreshold * ratio3, kernel_size);
412418

413-
Canny(detected_edges, detected_edges, lowThreshold, lowThreshold*ratio, kernel_size);
419+
findContours(detected_edges, contours, hierarchy, 3/*=RETR_TREE*/, 2/*=CHAIN_APPROX_SIMPLE*/, cv::Point(0, 0));
414420

415-
findContours(detected_edges, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0));
421+
dst = cv::Mat::zeros(detected_edges.size(), CV_8UC3);
422+
for (int i = 0; i < contours.size(); i++)
423+
{
424+
cv::Scalar color = cv::Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
425+
drawContours(dst, contours, i, color, 2, 8, hierarchy, 0, cv::Point());
426+
}
416427

417-
dst = cv::Mat::zeros(detected_edges.size(), CV_8UC3);
418-
for (int i = 0; i < contours.size(); i++)
419-
{
420-
cv::Scalar color = cv::Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
421-
drawContours(dst, contours, i, color, 2, 8, hierarchy, 0, cv::Point());
428+
if (showPreview)
429+
{
430+
cv::imshow(window_name, dst);
431+
}
422432
}
423-
424-
if (showPreview)
433+
catch (exception ex)
425434
{
426-
cv::imshow(window_name, dst);
435+
string str = "asd";
427436
}
428437
}
429438

@@ -807,12 +816,14 @@ bool isApplicationStartup(std::string context)
807816
return res;
808817
}
809818

819+
810820
extern "C" XI_EXPORT bool run(const char* context)
811821
{
812822
const std::string commandName = "Contour groove";
813823
const std::string commandDescription = "Creates a grooved outline from edges identified from an image.";
814824
const std::string commandResources = "./resources";
815825

826+
816827
app = Application::get();
817828
if (!app)
818829
return false;
@@ -829,7 +840,11 @@ extern "C" XI_EXPORT bool run(const char* context)
829840
if (!modelingWorkspace)
830841
return false;
831842

832-
Ptr<ToolbarPanels> toolbarPanels = modelingWorkspace->toolbarPanels();
843+
Ptr<ToolbarTabs> modelingWorkspaceTabs = modelingWorkspace->toolbarTabs();
844+
845+
Ptr<ToolbarTab> createTab = modelingWorkspaceTabs->item(0);
846+
847+
Ptr<ToolbarPanels> toolbarPanels = createTab->toolbarPanels();
833848
if (!toolbarPanels)
834849
return false;
835850
Ptr<ToolbarPanel> toolbarPanel = toolbarPanels->item(0);
@@ -871,6 +886,7 @@ extern "C" XI_EXPORT bool run(const char* context)
871886
if (!isApplicationStartup(context))
872887
ui->messageBox("Contour Groove is loaded successfully.\r\n\r\nYou can run it from the create panel in modeling workspace.");
873888
}
889+
874890

875891
return true;
876892
}
@@ -879,6 +895,12 @@ extern "C" XI_EXPORT bool stop(const char* context)
879895
{
880896
if (ui)
881897
{
898+
Ptr<CommandDefinitions> commandDefinitions = ui->commandDefinitions();
899+
Ptr<CommandDefinition> commandDefinition = commandDefinitions->itemById(commandId);
900+
if (commandDefinition)
901+
{
902+
commandDefinition->deleteMe();
903+
}
882904
ui = nullptr;
883905
}
884906
cvCleanup();

WWAddin.bundle/Contents/Source/WWAddin.manifest

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
},
88
"supportedOS": "windows",
99
"id": "dc10d64f-8e76-4478-bd55-65bedfca3e8a",
10-
"version": "1.0",
11-
"runOnStartup": false,
10+
"version": "2.0.0",
11+
"runOnStartup": true,
1212
"sourcewindows": "WWAddin.vcxproj"
1313
}

WWAddin.bundle/Contents/Source/WWAddin.vcxproj

+8-8
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
2020
<ConfigurationType>DynamicLibrary</ConfigurationType>
2121
<UseDebugLibraries>true</UseDebugLibraries>
22-
<PlatformToolset>v110</PlatformToolset>
22+
<PlatformToolset>v143</PlatformToolset>
2323
<CharacterSet>Unicode</CharacterSet>
2424
<UseOfMfc>Dynamic</UseOfMfc>
2525
</PropertyGroup>
2626
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
2727
<ConfigurationType>DynamicLibrary</ConfigurationType>
2828
<UseDebugLibraries>false</UseDebugLibraries>
29-
<PlatformToolset>v110</PlatformToolset>
29+
<PlatformToolset>v143</PlatformToolset>
3030
<WholeProgramOptimization>true</WholeProgramOptimization>
3131
<CharacterSet>Unicode</CharacterSet>
3232
</PropertyGroup>
@@ -44,15 +44,15 @@
4444
<LinkIncremental>false</LinkIncremental>
4545
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
4646
<IntDir>$(Configuration)\</IntDir>
47-
<IncludePath>D:\OpenCV\build\include;$(IncludePath)</IncludePath>
48-
<LibraryPath>D:\OpenCV\build\x64\vc11\staticlib;$(APPDATA)/Autodesk/Autodesk Fusion 360/API/CPP/lib;$(LibraryPath)</LibraryPath>
47+
<IncludePath>C:\opencv\build\include;$(IncludePath)</IncludePath>
48+
<LibraryPath>C:\opencv\build\x64\vc16\lib;$(APPDATA)/Autodesk/Autodesk Fusion 360/API/CPP/lib;$(LibraryPath)</LibraryPath>
4949
</PropertyGroup>
5050
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
5151
<LinkIncremental>false</LinkIncremental>
5252
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
5353
<IntDir>$(Configuration)\</IntDir>
54-
<IncludePath>D:\OpenCV\build\include;$(IncludePath)</IncludePath>
55-
<LibraryPath>D:\OpenCV\build\x64\vc11\staticlib;$(APPDATA)/Autodesk/Autodesk Fusion 360/API/CPP/lib;$(LibraryPath)</LibraryPath>
54+
<IncludePath>C:\opencv\build\include;$(IncludePath)</IncludePath>
55+
<LibraryPath>C:\opencv\build\x64\vc16\lib;$(APPDATA)/Autodesk/Autodesk Fusion 360/API/CPP/lib;$(LibraryPath)</LibraryPath>
5656
</PropertyGroup>
5757
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
5858
<ClCompile>
@@ -68,7 +68,7 @@
6868
<GenerateDebugInformation>true</GenerateDebugInformation>
6969
<AdditionalLibraryDirectories>
7070
</AdditionalLibraryDirectories>
71-
<AdditionalDependencies>core.lib;fusion.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opencv_stitching300d.lib;opencv_videostab300d.lib;opencv_calib3d300d.lib;opencv_features2d300d.lib;opencv_ts300d.lib;opencv_objdetect300d.lib;opencv_superres300d.lib;opencv_highgui300d.lib;opencv_videoio300d.lib;opencv_imgcodecs300d.lib;opencv_shape300d.lib;opencv_photo300d.lib;IlmImfd.lib;opencv_video300d.lib;opencv_flann300d.lib;opencv_imgproc300d.lib;opencv_ml300d.lib;opencv_core300d.lib;libwebpd.lib;libtiffd.lib;libjasperd.lib;libpngd.lib;libjpegd.lib;opencv_hal300d.lib;zlibd.lib;ippicvmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
71+
<AdditionalDependencies>core.lib;fusion.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opencv_world470d.lib;%(AdditionalDependencies)</AdditionalDependencies>
7272
</Link>
7373
<PostBuildEvent>
7474
<Command>xcopy /R /Y "$(SolutionDir)$(Configuration)\$(ProjectName).dll" "$(SolutionDir)"</Command>
@@ -94,7 +94,7 @@
9494
<EnableCOMDATFolding>true</EnableCOMDATFolding>
9595
<OptimizeReferences>true</OptimizeReferences>
9696
<AdditionalLibraryDirectories>$(APPDATA)/Autodesk/Autodesk Fusion 360/API/CPP/lib</AdditionalLibraryDirectories>
97-
<AdditionalDependencies>core.lib;fusion.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opencv_stitching300.lib;opencv_videostab300.lib;opencv_calib3d300.lib;opencv_features2d300.lib;opencv_ts300.lib;opencv_objdetect300.lib;opencv_superres300.lib;opencv_highgui300.lib;opencv_videoio300.lib;opencv_imgcodecs300.lib;opencv_shape300.lib;opencv_photo300.lib;IlmImf.lib;opencv_video300.lib;opencv_flann300.lib;opencv_imgproc300.lib;opencv_ml300.lib;opencv_core300.lib;libwebp.lib;libtiff.lib;libjasper.lib;libpng.lib;libjpeg.lib;opencv_hal300.lib;zlib.lib;ippicvmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
97+
<AdditionalDependencies>core.lib;fusion.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opencv_world470.lib;%(AdditionalDependencies)</AdditionalDependencies>
9898
</Link>
9999
<PostBuildEvent>
100100
<Command>xcopy /R /Y "$(SolutionDir)$(Configuration)\$(ProjectName).dll" "$(SolutionDir)"</Command>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
4+
<LocalDebuggerAttach>true</LocalDebuggerAttach>
5+
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
6+
</PropertyGroup>
7+
</Project>

WWAddin.bundle/Contents/WWAddin.dll

-14.8 MB
Binary file not shown.

WWAddin.bundle/Contents/WWAddin.manifest

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
},
88
"supportedOS": "windows",
99
"id": "dc10d64f-8e76-4478-bd55-65bedfca3e8a",
10-
"version": "1.0.0",
10+
"version": "2.0.0",
1111
"runOnStartup": true,
1212
"sourcewindows": "WWAddin.vcxproj"
1313
}

WWAddin.bundle/Contents/docs/ContourGroove.html

+10
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,16 @@ <h1 id="versionhistoryinfo">Version History</h1>
194194
<tbody><tr>
195195
<th>Version Number</th>
196196
<th>Version Description</th>
197+
</tr>
198+
<tr>
199+
<td>
200+
<p>
201+
2.0.0
202+
</p>
203+
</td>
204+
<td>
205+
<p><span style="color: #222222; font-family: Arial, Verdana, sans-serif; font-size: 13px; line-height: 16.003px; background-color: #f8f8f8;">Upgradeed to OpenCV 4.7 and to Fusion 360 v2.0.15509</span></p>
206+
</td>
197207
</tr>
198208
<tr>
199209
<td>
60.7 MB
Binary file not shown.

WWAddin.bundle/PackageContents.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
AutodeskProduct="Fusion360"
66
Name="WWAddin"
77
Description="App for generating image groove."
8-
AppVersion="1.0.0"
8+
AppVersion="2.0.0"
99
Author="Autodesk, Inc."
1010
AppNameSpace="com.autodesk.exchange.Fusion360.WWAddin"
1111
HelpFile="./Contents/docs/ContourGroove.html"
@@ -23,7 +23,7 @@
2323

2424
<Components>
2525
<RuntimeRequirements SupportPath="./Contents/docs" OS="win64" Platform="Fusion360" SeriesMin="" />
26-
<ComponentEntry AppName="WWAddin" Version="1.0.0" ModuleName="./Contents/WWAddin.manifest" AppDescription="App for generating contour groove from extracted edges of an image." />
26+
<ComponentEntry AppName="WWAddin" Version="2.0.0" ModuleName="./Contents/WWAddin.manifest" AppDescription="App for generating contour groove from extracted edges of an image." />
2727
</Components>
2828

2929
</ApplicationPackage>

0 commit comments

Comments
 (0)