CC 757 - Tool Library - Found folder - no files

Hi,

I am looking for the Tool Library file. I found the folder as specified ( About - Open data folder ) but the folder is empty. Any words of wisdom ?

Why am I doing this ? I found a c# program that reads the Fusion 360 JSON tool library ( Developing a HSMAdvisor / Fusion360 Tool Library Converter using C#! - YouTube ) and I was thinking to convert the Fusion tools to CC and the CC tools to Fusion. This maybe a pipe dream but should be doable.

1 Like

I’ve got a decent proof of concept written for this. You’ll run into a handful of issues, most revolve around a lack of information in the c3d libraries that f3d considers required.

That said, it’s all ~doable with a bit of maths and some assumptions to fill in those gaps.

To get a library generated you’ll want to copy the tool library within carbide create itself. That will generate a ā€œuserā€ tool library which will show up in the folder. (The defaults are builtins so they don’t need to store the config…that’s my assumption anyway :person_shrugging:)

My poc is written in my native language of powershell :stuck_out_tongue_winking_eye: but I’m thinking of writing it in ocaml as some fun practice. DM me if you want the poc or the resultant fusion library to see how I approached it :slightly_smiling_face:

1 Like

The default libraries don’t show there — you can duplicate them:

and then the duplicates will show up in that folder.

1 Like

You folks are awesome. I have a CSV file now

@HeuristicBishop any start of code helps.
You all are welcome to any source code I make.
I should be able to push data around, but I am lacking in practical machining knowledge.
Meaning I may work on aspects that don’t mean a a lot, so guidance as to what fields are important and/or known questions/default is welcome.

I do have some long time tool makers that I can ask questions

I am not a coding expert, but this realm I am accustom to.
It will be a Windows Winform application so that may limit usage.

The above youtube link has a github link to the source code I will be working with.
I need to put a reference to that gentlemen for due credit

I have been looking at the various data from HSM, Fusion360 and CC.
The CC data is ā€œsparseā€ as compared to Fusion 360, which itself seems to be a subset of the HSM data.

There is a standard called ISO 13399 which contain multiple ā€œpartā€ to define freaking a lot of stuff.
It cost a couple hundred dollars to purchase each ā€œpartā€.
Part 2 https://www.iso.org/standard/81109.htm and Part 3 ISO/TS 13399-3:2021 - Cutting tool data representation and exchange — Part 3: Reference dictionary for tool items
look to be defining what the intent here.

I also found these summaries which looked interesting
Formula for Milling
https://www.sandvik.coromant.com/en-us/knowledge/machining-formulas-definitions/milling-formulas-definitions
Summary of codes for Cutting tools
https://www.sandvik.coromant.com/en-us/knowledge/machining-formulas-definitions/cutting-tool-parameters

I have the CC tool library for Fusion 360 that was made by MichaelGrilo which loads fine.
( I haven’t actually used it )

The game will be …
Mapping the parameters across sources
Determine what defaults or nulls are allowed in the sources with more robust definitions

I am going to generate/use a schema for each source as best I can. This should provide a ā€œtalkingā€ map for future discussions.

Any words of wisdom are welcome.

1 Like

I have HTML diagrams of Xml Schema for the HSM and Fusion tool libraries

The HSM document was made by the original code author
The FSM document I made based on a JSON schema I created from the MichaelGrilo created JSON file.

I am not sure how to attach HTML / XSD / XML / JSON files to this forum.
I do not have a cloud repository.

2 Likes

If you zip the files, then the .zip archive can be posted.

If the license is appropriate, probably the best place to upload those would be to a free account on Github.

1 Like

Here are the files I have to date.
CarbideForumToolLibs.zip (142.4 KB)

The next move is to create a F360 tool with the bare minimum and see what the resulting JSON file looks like. The references I have are a few years old, so there maybe changes to the contents.

We can then map the CC data to the F360 tool schema and see what needs to be done ( hard coded defaults and any calculations.

2 Likes

I’ll send you my example converted fusion library tonight and the code for it. At the very least the comments will be helpful in generating your property mapping.
I ended up doing some shenanigans to flatten all of the materials per tool when converting up fusion.
(So you get 1 entry for the 247Z with each material from the C3D library as a feed/speed preset. Huge quality of life upgrade compared to a separate tool for each tool/material combination)

I’ll take a look at what you’ve posted there as well. It’s exciting to see another person interested in doing this. Very motivating :slight_smile:

Here is my take on the CC Tool definitions.
I am not sure if I got the data types correct on some entries
CCToolLibrary.zip (24.7 KB)

The CC data is a flat list with no parent/child relationships
CC uses different files to separate feeds and speeds based on material.

Mapping/translating the organization is another part of this

Here’s a link to my proof of concept Powershell script: GitHub - HeuristicBishop/f3d_of_c3d_tool_library: A script to convert carbide 3d tool libraries to fusion 360 tool library for import.

It should consolidate all of the files in the carbide 3D tool folder into one set of fusion tools with feeds/speeds for each material.

It’s not super well tested but from the handful of cuts I’ve done using these tools in fusion they seem to work.

All of the variables that start with ā€œmaybeā€ are either inferred or measured from what I have on hand.

Enjoy,
as always feel free to ask any questions :slightly_smiling_face:

2 Likes

@WillAdams Are the columns of the CSV export position dependent or can they be in any order ?
What columns can be null ? That may depend on the tool type …

Given that a misplaced comma caused Carbide Create to crash, I wouldn’t be inclined to change anything.

I finally got a program that reads the JSON and CSV files. Next is a mapping technique.
It’s amazing how much you can forget in 5.5 years. I have been laughing at myself.

@HeuristicBishop I am trying to run your Powershell script. I don’t know diddly about PowerShell.
Using your README.md file there is an execution line
convertfrom-C3d -Verbose | ConvertTo-Json -Depth 5 | out-file D:\downloads\test-library.json -Force -Encoding ascii

I get this.

D:\Projects\F360toHSM\PowerShell\f3d_of_c3d_tool_library-main>powershell convertfrom-C3d -Verbose | ConvertTo-Json -Depth 5 | out-file D:\downloads\test-library.json -Force -Encoding ascii
ā€˜ConvertTo-Json’ is not recognized as an internal or external command,
operable program or batch file.

I also launched the PS1 file in the PowerShell ISE but I can’t get it to enter the code to run to a breakpoint. HELP !

@WillAdams Here is the C# class I am making for the CSV file.
Are all CC Tool defined in Imperial units ?
For each property

  • Note any property that is no longer valid/used.

  • Check default values.

  • Note which application within CC uses that property.

      public int number = 0;              // Integer ID
      public string? vendor = null;       // Limited optons ?
      public string? model = null;        // Descriptive ID
      public string? URL = null;          // Shopping
      public string? name = null;         // Optional
      public string? type = null;         // Limited options  ball,end,vee,engraver
      public decimal diameter = 0;        // thousands inch
      public decimal cornerradius = 0;    // thousands inch
      public decimal flutelength = 0;     // thousands inch
      public decimal shaftdiameter = 0;    // ??
      public decimal angle = 0;            // Degrees
      public int numflutes = 0;           // Count
      public string? stickout = null;     // thousands inch  ?? What is this ?
      public string? coating = null;      // NULL
      public int metric = 0;               // 0 = Inch   1 = MM
      public string? notes = null;        // NULL
      public string? machine = null;      // NULL
      public string? material = null;     // NULL
      public decimal plungerate = 0;      // inch per minute
      public decimal feedrate = 0;        // inch per minute
      public int rpm = 0;                 // Rev pe minute
      public decimal depth = 0;           // thousands inch
      public string? cutpower = null;         // NULL ?
      public decimal finishallowance = 0;     // thousands inch
      public decimal stepover3d = 0;      // inch per minute 
      public decimal feedrate3d = 0;      // inch per minute
      public decimal rpm3d = 0;           // Rev per minute
    

Whether a tool is defined in Imperial inches or metric millimeters is defined by one of the columns in the CSV.

This topic was automatically closed after 30 days. New replies are no longer allowed.