BOLTS Open Library of Technical Specifications

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
jreinhardt
Posts: 329
Joined: Mon Sep 09, 2013 6:08 pm

Re: BOLTS Open Library of Technical Specifications

Post by jreinhardt »

I managed to fix 5), and add 6) in the latest development snapshot.

7) is probably related to the model file, as at least on my system the profiles with one, two and three slots do not cause this message.
BOLTS, standard parts library for FreeCAD Thread, Help with Translation
steviebear
Posts: 5
Joined: Thu Nov 28, 2013 11:09 pm

Re: BOLTS Open Library of Technical Specifications

Post by steviebear »

Hi

Don't know if this is the right place for this.

I would like to use BOLTS for FreeCAD on windows. when I try to run start_bolts.FCMacro from the macro menu I get the following error

Code: Select all

Traceback (most recent call last):
File "C:/Users/steve/FreeCad_macro/start_bolts.FCMacro", line 1, in <module>
import BOLTS
File "C:/Users/steve/FreeCad_macro\BOLTS\__init__.py", line 20, in <module>
from bolttools import blt_parser
<type 'exceptions.SyntaxError'>: ('invalid syntax', ('C:/Users/steve/FreeCad_macro\\BOLTS\\bolttools\\blt_parser.py', 72, 34, '\t\tself.standardized = {body:[] for body in self.standard_bodies}\n'))
I am running FreeCAD0.13 (32 bit) on windows 7 64


OS: Windows 7
Platform: 32-bit
Version: 0.13.1828
Python version: 2.6.2
Qt version: 4.5.2
Coin version: 3.1.0
SoQt version: 1.4.1
OCC version: 6.3.0

Thanks for your help

Steve
jreinhardt
Posts: 329
Joined: Mon Sep 09, 2013 6:08 pm

Re: BOLTS Open Library of Technical Specifications

Post by jreinhardt »

Yes, this is the right place.

We discovered this problem a while ago, but unfortunately after the 0.2 release. I was not aware that certain Python constructs that I used in the BOLTS code were added only only in Python 2.7. If you try to run BOLTS with Python 2.6, then it complains about these parts of the code.

I changed all these parts, so the latest development snapshot should work:

http://jreinhardt.github.io/BOLTS/downl ... 9_gpl3.zip

You also need to install importlib, a module that was added to the python standard library only in 2.7, so users of older versions miss it:

https://pypi.python.org/pypi/importlib/1.0.2

instructions on how to install python modules in windows can be found here:

http://docs.python.org/2/install/index.html
BOLTS, standard parts library for FreeCAD Thread, Help with Translation
steviebear
Posts: 5
Joined: Thu Nov 28, 2013 11:09 pm

Re: BOLTS Open Library of Technical Specifications

Post by steviebear »

Thanks for the reply

I now get the following error when trying to run bolts

Code: Select all

Traceback (most recent call last):
  File "C:/Users/steve/FreeCad_macro/start_bolts.FCMacro", line 1, in <module>
    import BOLTS
  File "C:/Users/steve/FreeCad_macro\BOLTS\__init__.py", line 24, in <module>
    from freecad.gui.freecad_bolts import BoltsWidget, getMainWindow
  File "C:/Users/steve/FreeCad_macro\BOLTS\freecad\gui\freecad_bolts.py", line 18, in <module>
    from PyQt4 import QtGui, QtCore, uic
  File "C:\Program Files (x86)\FreeCAD0.13\bin\PyQt4\uic\__init__.py", line 3, in <module>
    from PyQt4.uic.Compiler import indenter, compiler
  File "C:\Program Files (x86)\FreeCAD0.13\bin\PyQt4\uic\Compiler\compiler.py", line 3, in <module>
    from PyQt4.uic.properties import Properties
  File "C:\Program Files (x86)\FreeCAD0.13\bin\PyQt4\uic\properties.py", line 5, in <module>
    from PyQt4.uic.icon_cache import IconCache
<type 'exceptions.ImportError'>: No module named icon_cache
I have installed both PyYAML-3.10 and importlib-1.0.2 and am trying to run the BOLTS_FreeCAD_201311211229_gpl3 snapshot

Thanks again for your help so far

Steve

OS: Windows 7
Platform: 32-bit
Version: 0.13.1828
Python version: 2.6.2
Qt version: 4.5.2
Coin version: 3.1.0
SoQt version: 1.4.1
OCC version: 6.3.0
jreinhardt
Posts: 329
Joined: Mon Sep 09, 2013 6:08 pm

Re: BOLTS Open Library of Technical Specifications

Post by jreinhardt »

Ok, there seems to be a problem with the Qt version provided by the FreeCAD stable release for Windows. The same problem is discussed here:

viewtopic.php?f=22&t=981&start=10

No solution yet, but I will try to work around this problem, as apparently many people are stuck with rather old versions of Qt.
BOLTS, standard parts library for FreeCAD Thread, Help with Translation
jreinhardt
Posts: 329
Joined: Mon Sep 09, 2013 6:08 pm

Re: BOLTS Open Library of Technical Specifications

Post by jreinhardt »

Ok, I just uploaded a new development snapshot:

http://jreinhardt.github.io/BOLTS/downloads.html

I tried to work around the issue, could you please test this. You should not need to install anything apart from yaml and importlib, which you have already done. Thanks
BOLTS, standard parts library for FreeCAD Thread, Help with Translation
steviebear
Posts: 5
Joined: Thu Nov 28, 2013 11:09 pm

Re: BOLTS Open Library of Technical Specifications

Post by steviebear »

Thank You this has solved the problem.

Do you have plans to incorporate machine screws and other parts, if so this site has a lot of dimensional data

http://www.trfastenings.com/pages/Metri ... ine+Screws


Steve
jreinhardt
Posts: 329
Joined: Mon Sep 09, 2013 6:08 pm

Re: BOLTS Open Library of Technical Specifications

Post by jreinhardt »

Glad to hear that it works now.

Thank you for the link, I put it to my notes. It is not so difficult to add new parts to BOLTS, you can try to add them yourselves, if you want (or somebody else). Two things are necessary:

The dimension data (for example from a site like the one you linked) and some metadata has to be entered into a plain text file in a certain way. I wrote a bit about that here:
http://jreinhardt.github.io/BOLTS/doc/g ... files.html
But probably it is easier to look at the blt files for the other parts, and follow the structure
https://github.com/jreinhardt/BOLTS/tree/master/data

And a geometry for the part has to be created. This can either be a python function that creates the part for a certain combination of parameters, or a FreeCAD model file (fcstd) that is parametric. Usually the python function is easier. I also wrote instructions on that (FreeCAD Contributor Documentation):
http://jreinhardt.github.io/BOLTS/doc/index.html

I am happy about all kinds of contributions, and will gladly assist with all problems that come up.

Greetings
BOLTS, standard parts library for FreeCAD Thread, Help with Translation
jreinhardt
Posts: 329
Joined: Mon Sep 09, 2013 6:08 pm

Re: BOLTS Open Library of Technical Specifications

Post by jreinhardt »

Hi again,

development of BOLTS has not stopped, i just did not write so much about it. And most of the things I did was behind-the scenes stuff or work on other backends. But in the future I want to focus more on adding parts, to make BOLTS more useful.

I just uploaded a new development snapshot of BOLTS for FreeCAD that contains V-Slot profiles from OpenBuilds part store and a corresponding Double V Wheel.
freecad_vrail.png
freecad_vrail.png (258.22 KiB) Viewed 4519 times
The models were kindly provided by quick61. He drew the profiles as faces. I converted the faces to sketches using the FaceToSketch macro and the EdgesToArc macro that I hacked together for this purpose. BOLTS can currently not handle extrusions from faces, only padded sketches. I converted the faces to sketches with some help from here.

Including a part that is already available as a fcstd model (with an appropriate license) into BOLTS is usually not difficult, but requires editing of text files and some basic knowledge of git. This is a invitation to you to try to add parts to BOLTS.

BOLTS needs to three things to be able to provide a part in FreeCAD:

First a few general informations about the part, like name, description, available parameters (usually dimensions) and tables. For the OpenBuild parts this information looks like this this.

Second a geometry for FreeCAD. This can either be a python function that can be called with parameter values and creates a new object, or a fcstd file with the model, that is inserted and the parameters (like e.g. the length) adjusted. To have a part available for another supported program, e.g. OpenSCAD, the geometry needs to be provided in a different form, e.g. as a OpenSCAD module, but the general informations are reused.

Third a few informations about the geometry. These go into a different file. For a geometry in form of a fcstd file this includes things like author, license, filenames, names of objects, and what property of which object corresponds to which parameter. For the vrail parts they look like this.

I wrote detailed instructions on how to add python geometries and fcstd geometries, and how to work with blt files (the general informations).

A good starting point is the contribute page, which also has links to other things you can do to help BOLTS, like generating drawings.

All these instructions that I wrote are probably sometimes confusing, I just do not know what technical or conceptual parts are confusing for you. I am grateful for any feedback and will try to improve the documentation and workflow.
BOLTS, standard parts library for FreeCAD Thread, Help with Translation
User avatar
rockn
Veteran
Posts: 1791
Joined: Wed Sep 28, 2011 10:39 am
Location: Toulouse, France
Contact:

Re: BOLTS Open Library of Technical Specifications

Post by rockn »

Hi jreinhardt ! Very cool , i am looking for openbuilds parts and you added this in BOLT. I will use BOLT more often. Thank you.
Formations - Assistance - Développement : https://freecad-france.com
Post Reply