mono/packages/cad/README.md
2025-04-24 18:59:47 +02:00

215 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OSR CAD Tools
This is a CLI(CommandLineInterface) toolset to convert 3D files, using Solidworks and other software.
## Requirements
1. [Node-JS](https://nodejs.org/en/download/)
2. Optional: install [Git](https://git-scm.com/downloads) (Make sure you enable Linux tools on Windows console)
3. Solidworks 2020. In case you are using another version, please find on your disc 'SolidWorks.Interop.sldworks.dll' and replace the one in [./sw/2022](https://git.osr-plastic.org/osr-plastic/osr-cad/src/branch/master/sw/2022)
## Installation
```sh
git clone https://git.osr-plastic.org/osr-plastic/osr-cad.git
cd osr-convert-cad
npm i
# or globally (recommended)
npm i @plastichub/osr-cad -g
```
## Usage
Open a terminal and run this:
```sh
osr-cad --help
```
See more in [./docs/Examples.md](./docs/Examples.md) and [./docs/Integration.md](./docs/Integration.md)
### References - Development
- [site:Solidworks API basics - examples](https://www.codestack.net/labs/solidworks/)
- [site:Rhino-API](https://developer.rhino3d.com/api/RhinoCommon/html/R_Project_RhinoCommon.htm)
- [site:Solidworks Reverse Decoder](http://heybryan.org/solidworks_file_format.html)
- [sw interop - component - API ](https://help.solidworks.com/2019/English/api/swdocmgrapi/Get_Current_Name_of_Configuration_of_Suppressed_Component_Example_CSharp.htm)
## Todos
- [x] Select default views via CLI Argument
- [ ] Arg: Skip suppressed | hidden (difficult since it's out of part file scope, check explorer api ) | dry mode
- [x] Arg: Overwrite files
- [-] Arg: skip non OSR parts
- [-] Arg: displaymode : wireframe, shaded, ... (see [SW Docs](http://help.solidworks.com/2017/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.iview~setdisplaymode3.html))
- [-] report
- [x] export as lib
- [-] Multi view (trainings data for @plastichub/part-detector)
- [-] Speed: use same instance for multiple exports
- [-] Context Menu Shell Extension (@osr-tools)
- [-] Local/Global config (=>osrl)
- [ ] emit/merge authors from components in target artefact
- [-] Add CLI Arg Path variables
- [-] json-path for glob patterns
- [-] bracket expansion
- [-] Report templates (=> @osrl | osr-reports)
- [ ] xls
- [ ] md
- [ ] txt
- [ ] json
- [ ] meta | ts | tree
- [-] Plugin interface for custom format (chained) => osrl
- [x] Conversions
- [x] STEP -> SLDPRT (via xcad->fc->fw)
- [x] any -> 3dxml (osrl!)
- [x] any -> html (via edrawings)
- [ ] Structural
- [ ] support pipes, eg: intermediate formats
- [-] add pre, post and content filters, as pipes
- [-] plugins
- [-] integrate osrl
- [-] omit format options in --help
- [ ] omit possible conversions in ```info``
- [ ] per in and out args
- [ ] global
- [-] Cache hash fuckery : integrate options in integrity
- [ ] external cache directory
- [ ] bom|html|props : configurations
- [ ] explicit cache directory
### Commands - Todos - Solidworks
- [x] Solidworks
- [-] Set system wide options for JPG output
- [-] Set system wide options for PDF output
- [-] Directory index (=>osrl)
- [ ] arg: local HTML path/dir offset
- [ ] arg: generate UNC paths
- [ ] format: PDF
- [-] arg: sw drawing/BOMs to CSV/xls
- [-] Part/Sub-Assembly web(&local) compilation/index (=>osrl)
- [-] Web directory ([xeokit](https://gitlab.com/plastichub/osr/xeokit-sdk))
- [-] Git hook, check components & references
- [x] move 2D formats to osr-media
- [-] implement osr-cli-common specs: info/introspect|supported
- [x] root offset
- [x] sw:info|bom -> i18n
- [ ] remove toolbox write protection (sldsetdocprop.exe | https://www.youtube.com/watch?v=N7_HSvWPAXw | https://help.solidworks.com/2022/english/api/swdocmgrapi/SolidWorks.Interop.swdocumentmgr~SolidWorks.Interop.swdocumentmgr.ISwDMDocument~ToolboxPart.html)
- [-] sw: catch read errors
- [ ] sw: migrate xcad latest
- [ ] sw: addons - API (disable, ..)
- [-] sw: model-reader : iterator | filter | findup-references
- [-] sw: bom : filter & map
- [-] sw: set properties | save-as, ...
- [ ] sw: osr-log
- [ ] sw: sub commands: convert | validate | pack | set | get | clean | render | tree (cp/mv/rm) | unlink
- [x] get: configurations -> json
- [x] convert(conf) -> model
- [x] render(conf) -> image
- [ ] validate
- [-] internal files
- [ ] outside root / component
- [ ] naming conventions
- [ ] default configurations
- [ ] sw errors
- [ ] library compat
- [ ] orphan files
- [ ] equations
- [ ] tree
- [ ] md
- [x] json
- [ ] fs
- [-] xls
- [ ] osr-i8n
- [ ] walker -> piped
- [ ] orphans (incl. assets / maps)
- [x] sw: render : renderers (+options)
- [x] sw: render
- [-] scene defaults
- [ ] motion analysis
- [x] query(tree)
- [ ] sw: explode
- [-] sw: timeouts
- [x] sw: osr-default props
- [-] sw: cache instance (node IPC | csharp JIT?)
- [x] sw: cache
- [x] meta: diff
- [ ] invalidate
- [-] mv
- [ ] pack / unpack
- [ ] versioning
- [ ] packages
- [ ] registry
- [ ] shared equations (design table alternative) -> osrl | equation templates
- [ ] sketch / block templates
### Commands - Todos - SCad
- [ ] impl. basic verbs: convert (see https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_OpenSCAD_in_a_command_line_environment)
### Lib - Todos
- [-] SW: 4 view single image
- [-] Incorrect JPG output with sw2020
### Utils
- [Batch Export to HTML via EDrawings OCX](ref/edrawings-api/BatchExportHTML)
- For SOLIDWORKS Document Manager API, please check the intro [here](https://www.codestack.net/solidworks-document-manager-api/) which leads to [https://xcad.xarial.com/]. Their actual API code is now at [./ref/xcad](./ref/xcad). Please check also [xcad basics on YouTube](https://www.youtube.com/watch?v=dLjlTYYeMpo)
### Resources - Solidworks
- [Custom Properties Write API](https://help.solidworks.com/2017/english/api/sldworksapi/change_configuration_properties_example_vb.htm)
- [XCad Github](https://github.com/xarial/xcad.git)
- [SOLIDWORKS](https://www.linkedin.com/company/solidworks?trk=public_post_share-update_update-text)
- [SW Model Error Ref](https://help.solidworks.com/2019/english/api/swconst/SO_Messages.htm)
- API Help Files [https://lnkd.in/d9QX6wvS](https://lnkd.in/d9QX6wvS?trk=public_post_share-update_update-text)
- Free API Books, Macros and Utilities by [Luke Malpass](https://uk.linkedin.com/in/angelsix?trk=public_post_share-update_update-text) - [https://lnkd.in/d8EbSDiB](https://lnkd.in/d8EbSDiB?trk=public_post_share-update_update-text)
- Video Tutorials (first few lessons are free and rest are paid) by [SolidProfessor](https://www.linkedin.com/company/solidprofessor?trk=public_post_share-update_update-text)
- [https://lnkd.in/d6bJew-z](https://lnkd.in/d6bJew-z?trk=public_post_share-update_update-text)
- [https://lnkd.in/dAv2366P](https://lnkd.in/dAv2366P?trk=public_post_share-update_update-text)
- [Artem Taturevych](https://au.linkedin.com/in/artem-taturevych?trk=public_post_share-update_update-text)s free SOLIDWORKS Goodies
- [http://www.codestack.net](http://www.codestack.net/?trk=public_post_share-update_update-text)/
- [Lenny Kikstra](https://www.linkedin.com/in/lennyworks?trk=public_post_share-update_update-text)
- free SOLIDWORKS Goodies [https://lnkd.in/d6RJfCuZ](https://lnkd.in/d6RJfCuZ?trk=public_post_share-update_update-text)
- [Roland Schwarz](https://www.linkedin.com/in/rolandschwarz?trk=public_post_share-update_update-text)
- free SOLIDWORKS Goodies [https://lnkd.in/dSiq6r6h](https://lnkd.in/dSiq6r6h?trk=public_post_share-update_update-text)
- Video Tutorials (free and paid with macros library) by [Keith Rice](https://www.linkedin.com/in/keitharice?trk=public_post_share-update_update-text)
- [https://www.cadsharp.com](https://www.cadsharp.com/?trk=public_post_share-update_update-text)
- MySolidWorks Video Training (paid) [https://lnkd.in/dpXnNBsy](https://lnkd.in/dpXnNBsy?trk=public_post_share-update_update-text)
- SOLIDWORKS Free Macros at Cadforum: [https://lnkd.in/d4W63jBX](https://lnkd.in/d4W63jBX?trk=public_post_share-update_update-text)
- SOLIDWORKS Free Macros at 3D Content Central: [https://lnkd.in/d4zVEfhh](https://lnkd.in/d4zVEfhh?trk=public_post_share-update_update-text) • SOLIDWORKS Customization eBook using VB.Net (paid) by [Tushar Suradkar](https://in.linkedin.com/in/tusharsuradkar?trk=public_post_share-update_update-text)
- [https://lnkd.in/dD_sn3ai](https://lnkd.in/dD_sn3ai?trk=public_post_share-update_update-text)
- [Mike Spens](https://www.linkedin.com/in/mikespens?trk=public_post_share-update_update-text)
- API resources [http://www.solidapi.com](http://www.solidapi.com/?trk=public_post_share-update_update-text)/ and book (paid) by him "Automating SOLIDWORKS Using Macros" ([https://amzn.to/3nWOmYn](https://amzn.to/3nWOmYn?trk=public_post_share-update_update-text))
- Stefan Berlitz's free SOLIDWORKS Goodies [https://lnkd.in/dMCmnX6h](https://lnkd.in/dMCmnX6h?trk=public_post_share-update_update-text)
- SOLIDWORKS users on active subscription also have access to two API SolidPractices available from [https://lnkd.in/d9VD3f5A](https://lnkd.in/d9VD3f5A?trk=public_post_share-update_update-text)
- Free SOLIDWORKS API [VBA + C#] Tutorials from [Prashant Baher](https://in.linkedin.com/in/prashantbaher?trk=public_post_share-update_update-text) [https://thecadcoder.com](https://thecadcoder.com/?trk=public_post_share-update_update-text)/
- Video Tutorials by [GoEngineer](https://www.linkedin.com/company/goengineer?trk=public_post_share-update_update-text) [https://lnkd.in/gfBKmeU4](https://lnkd.in/gfBKmeU4?trk=public_post_share-update_update-text)
- SOLIDWORKS forums to ask/find great solutions/macros 3DSwym SOLIDWORKS User Forum: [https://lnkd.in/dFG_isCJ](https://lnkd.in/dFG_isCJ?trk=public_post_share-update_update-text)
- Eng-Tips: [https://lnkd.in/dgspDQ-H](https://lnkd.in/dgspDQ-H?trk=public_post_share-update_update-text)
- CadOverFlow: [https://lnkd.in/d3bFWXUb](https://lnkd.in/d3bFWXUb?trk=public_post_share-update_update-text)
### XEO
- https://github.com/xeokit/xeokit-convert
### Free - CAD
- https://forum.freecadweb.org/viewtopic.php?p=556013#p556013
- https://hub.docker.com/r/amrit3701/freecad-cli
- https://wiki.opensourceecology.org/wiki/FreeCAD_BOM_Generator
### GEO
- https://macwright.com/2023/11/13/placemark
### Exce Build Dependencies for 'nexe'
- [NASM](https://www.nasm.us/pub/nasm/releasebuilds/2.16rc12/win64/)