oddtopus / flamingo Goto Github PK
View Code? Open in Web Editor NEWFreeCAD - flamingo workbench
License: GNU Lesser General Public License v3.0
FreeCAD - flamingo workbench
License: GNU Lesser General Public License v3.0
When I test the "join pipes"-command I often get this message:
Traceback (most recent call last):
File "/home/ose-developer/.FreeCAD/Mod/flamingo/pipeObservers.py", line 75, in addSelection
sel=FreeCADGui.Selection.getSelection()[0]
<type 'exceptions.IndexError'>: list index out of range
How to reproduce:
During initialization the error "No module named 'DraftSnap'" occurred in /home/xxxxxx/.FreeCAD/Mod/flamingo/InitGui.py
Please add to README.md for better comprehension. Thx!
Hello @oddtopus,
I develop some macros for OSE project, which create pipes and fittings.
Can we collaborate?
Thank you for providing this workbench to the FreeCAD community, including myself. I am using it at work to create some simple pipe systems (for example parts of a sprinkler system). In other departments we are using stainless steel pipes, valves and fittings which have different diameters then the parts provided by the workbench. This includes parts from the DIN 11851 system.
My first question is, can you provide some information how to add custom parts to the workbench. I am to unexperienced in python to understand the code here in a short time so I would be grateful for some hints.
My second question: Would it be possible to use STEP files, for example from valve vendors in a library and add them as parts? I know there is the "insert any shape" function but I am thinking of a kind of "on-click-insert" solution.
If we select the wrong edge, the adjust angle tool can mess the entire structure.
But the real problem is that pressing the undo won't undo that action. I will need to clear the path and do all adjusts again.
If you use pypeTools commit nr. 41, the insertion of curves may have failed to find the correct orientation or to trim the pipe ends in some case.
This bug has been fixed now and I apologize for that.
Anyway this raise again the issue about the accuracy of floating-point operations applied to Vectors.
The reason of the bug was because I used the function DraftVecUtils.rounded() inside functions frameCmd.isParallel() and frameCmd.beamAx() to round-up the inaccuracy (of the order of .e-14) that is introduced in the Placement.Base and Placement.Rotation from some methods such as Rotation.multyply(). This discrepancy, though it is negligible in most of the cases, actually makes the .dot() and .cross() methods uneffective to check parallelism or orthogonality between vectors. Also it probably mess with .Rotation.multVec() method so that orientation of beam's axis results inverted.
If anyone could advice for a more sound method to operate with Vectors that can eliminate this bug's nest, please give an hint.
From previous experiences on this matter, this behaviour is caused by the floating point operation itself rather than the program algorithm: it's really easy to generate funny bugs with floating-point arithmetic using either a simple worksheet or a sophisticated numeric algebra software.
I think that one way-out from this is to use some kind of symbolic algebra representation of vectors: one possibility for Python is SymPy but I believe that symbolic algebra is already used in some part of the C code of FreeCAD to define the constraints of geometry in sketches. Is it possible to port the related functions written in C to Python? Or even better, is there the possibility to add a symbolic representation in Vector objects and perform rotations and translations symbolically until an actual numeric computation is necessary? In this way, vector operations can be made on their symbolic coordinates, with 100% accuracy, and be evaluated numerically only for representation.
I think a small blurb with an animated gif and a link to the flamingo wiki page (which is currenty in the Sandbox still)
on https://www.freecadweb.org/wiki/Release_notes_017#Additional_Modules
Thoughts?
I added a RH section profile and then opened the Frameline Manager tool. I choose the RH profile and then the path and clicked in the "Redraw" button.
The structure objects are being created but I can't see them.
I'm adding a project showing the issue:
failureFrame.zip
There is one problem arising sometimes, when I select two beams or edge to create one elbow between them. I think it's something related to the calculation of frameCmd.intersectionLines().
Can someone addicted to linear algebra and numpy help me?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.