Giter Site home page Giter Site logo

realthunder / freecad Goto Github PK

View Code? Open in Web Editor NEW

This project forked from freecad/freecad

755.0 40.0 46.0 1.88 GB

Link branch FreeCAD

License: Other

Batchfile 0.01% Python 41.86% CMake 0.72% Shell 0.05% Makefile 0.01% C++ 55.29% C 1.54% Lex 0.11% Yacc 0.06% CSS 0.02% HTML 0.09% JavaScript 0.02% QMake 0.01% NSIS 0.17% Max 0.01% GLSL 0.01% Dockerfile 0.01% OpenSCAD 0.01% Objective-C 0.01% Starlark 0.03%
cad

freecad's Introduction

Logo

This is the Link branch FreeCAD, with lots of new features and enhancement. This branch is original created to develop the App::Link feature for use with my Assembly3 workbench. The feature has since been merged to official FreeCAD, but the branch stayed and become a forefront of what future FreeCAD might become.

It's function now is to continuously improve and test the Topological naming problem and it's fix.
Which I eventually plan to merge back in to the FreeCAD main branch.

You can help test new features by trying one of the pre-built images released here. There is also more frequent release in snap image for Linux folks to try out.

Original FreeCAD ReadMe. Click to Expand.

Your own 3D parametric modeler

WebsiteDocumentationForumBug trackerGit repositoryBlog

Release Master Crowdin Gitter Liberapay

Overview

  • Freedom to build what you want FreeCAD is an open-source parametric 3D modeler made primarily to design real-life objects of any size. Parametric modeling allows you to easily modify your design by going back into your model history to change its parameters.

  • Create 3D from 2D and back FreeCAD lets you to sketch geometry constrained 2D shapes and use them as a base to build other objects. It contains many components to adjust dimensions or extract design details from 3D models to create high quality production-ready drawings.

  • Designed for your needs FreeCAD is designed to fit a wide range of uses including product design, mechanical engineering and architecture, whether you are a hobbyist, programmer, experienced CAD user, student or teacher.

  • Cross platform FreeCAD runs on Windows, macOS and Linux operating systems.

  • Underlying technology

    • OpenCASCADE A powerful geometry kernel, the most important component of FreeCAD
    • Coin3D library Open Inventor-compliant 3D scene representation model
    • Python FreeCAD offers a broad Python API
    • Qt Graphical user interface built with Qt

Installing

Precompiled packages for stable releases are available for Windows, macOS and Linux on the Releases page.

On most Linux distributions, FreeCAD is also directly installable from the software center application.

For development releases check the weekly-builds page.

Other options are described at the wiki Download page.

Build Status

Master 0.20 Translation
Master 0.20 Crowdin

Compiling

Compiling FreeCAD requires installation of several libraries and their development files such as OCCT (Open Cascade), Coin and Qt, listed in the pages below. Once this is done, FreeCAD can be compiled with CMake. On Windows, these libraries are bundled and offered by the FreeCAD team in a convenient package. On Linux, they are usually found in your distribution's repositories, and on macOS and other platforms, you will usually have to compile them yourself.

The pages below contain up-to-date build instructions:

Reporting Issues

To report an issue please:

  • First post to forum to verify the issue;
  • Link forum thread to bug tracker ticket and vice-a-versa;
  • Use the most updated stable or development versions of FreeCAD;
  • Post version info from eg. Help > About FreeCAD > Copy to clipboard;
  • Post a Step-By-Step explanation on how to recreate the issue;
  • Upload an example file to demonstrate problem.

For more detail see:

The FPA offers developers the opportunity to apply for a grant to work on projects of their choosing. Check jobs and funding to know more.

Usage & Getting help

The FreeCAD wiki contains documentation on general FreeCAD usage, Python scripting, and development. These pages might help you get started:

The FreeCAD forum is also a great place to find help and solve specific problems you might encounter when learning to use FreeCAD.

This project receives generous infrastructure support from and KiCad Services Corp.

freecad's People

Contributors

0penbrain avatar 5263 avatar abdullahtahiriyo avatar ajinkyadahale avatar berndhahnebach avatar carlopav avatar chennes avatar deepsoic avatar donovaly avatar eivindkv avatar fat-zer avatar ickby avatar jrheinlaender avatar jriegel avatar looooo avatar luzpaz avatar marioalexis84 avatar mlampert avatar mwganson avatar paddlestroke avatar przemof avatar realthunder avatar roy-043 avatar russ4262 avatar sanguinariojoe avatar sliptonic avatar vocx-fc avatar wandererfan avatar wwmayer avatar yorikvanhavre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freecad's Issues

toponaming issue PartDesignExample

Hey, I tested your toponaming algorithm a little harder today. I'm really pleased with the results. So I can use your branch for my important stuff right now. Just stupid construction with sketches on surfaces :)

But I noticed a bug.

  1. open the PartDesignExample file from the FreeCAD start screen
  2. open the Sketch of the Pad
  3. draw an additional circle in the middle of the tower
  4. unfortunately, the moat (Pocket) has now jumped to the bottom

I have worked out a workaround:
First put the tip on the pad and draw the circle. Then set the
the tip back to pocket002.
The moat has stayed in the right place this time.

A new spreadsheet behaviour?

Hello
LinkDev branch, commit 9f80deb

I can no longer just type text in the cell. For some reason, the “=” sign is added automagically, which leads to an error.
Maybe I should somehow enter the text differently?
spreadsheet

Expression

Hi, I'm facing an error when I try to set a string to an object property expression:

GuiCommand: Line

GuiCommand: Line
Pick first point
Pick next point
Illegal storage access...
Illegal storage access! Please save your work under a new file name and restart the application!
in property binding 'Unnamed#Line.Label'
0 Document.cpp(4035): Failed to recompute Unnamed#Line: Illegal storage access! Please save your work under a new file name and restart the application!
in property binding 'Unnamed#Line.Label'
Traceback (most recent call last):
File "D:\AtConcept\compile\install\Mod\asm3\freecad\asm3\mover.py", line 488, in slotRecomputedDocument
Assembly.resumeSchedule()
File "D:\AtConcept\compile\install\Mod\asm3\freecad\asm3\assembly.py", line 3640, in resumeSchedule
cls.schedule()
File "D:\AtConcept\compile\install\Mod\asm3\freecad\asm3\assembly.py", line 3626, in schedule
if not cls._ScheduleTimer.isSingleShot():
<class 'TypeError'>: bad argument type for built-in operation
Recompute failed! Please check report view.

FreeCAD fails to start on built of LinkStage3 #921df5da81

Hi,

I am trying to build and run FreeCAD using the LinkStage3 branch (mock info):

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 
Build type: ?
Branch: LinkStage3
Hash: 921df5da8119a331861655e0142985be978fe927
Python version: 3.6.8
Qt version: 5.12.1.0
Coin version: 4.0.0
OCC version: ?
Locale: English/US (en_US)

The build finishes without any errors. Upon trying to run FreeCAD_d.exe directly, I get a few seconds of loading indicator on the cursor but FreeCAD does not start. When I try running the exe from the command line, I get the following error message:

$ ./FreeCAD_d.exe
Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
Current thread 0x000035f0 (most recent call first):

My FreeCADLibs_12.1.6_x64_VC15\bin is in my PATH variable and no other python version is installed. No errors occur during configuration through Cmake.

Any ideas on what might be causing this issue?

Transparent Context Menu

Hi, since few last releases, the context menu becomes transparent. Is there a way to return it to solid ?
I'm using windows 10.

TransparentContextMenu

Save/Load job error

Hello,
I can't load file with simple job:
Branch: LinkStage3 Commit:fc71c1b8b0e0729d7c6b8e4dcfa9cf7642ad7c5e

job

Does not display the limitations set in the thumbnail (verticality, perpendicularity, tangent, etc.).

Does not display the limitations set in the thumbnail (verticality, perpendicularity, tangent, etc.).

OS: Arch Linux (GNOME/gnome-xorg)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.23166 (Git)
Build type: Release
Branch: makepkg
Hash: d033670
Python version: 3.8.2
Qt version: 5.14.2
Coin version: 4.0.0
OCC version: 7.4.0
Locale: Russian/Russia (ru_RU)

At the same time the main branch of the appimage does not have this problem.

And the other question is: how far behind the main branch is the Path layout in this branch? - There are active works in this branch and I would like to understand how and when new products from the main path branch get into this branch.

Fillet of Part workbench crash in debug mode (visual studio 2015)

I build the latest freecad code of the LinkStage3 branch with VS2015 and libpack of FreeCADLibs_12.1.3_x64_VC15.

The crash happens when fillet operation in Part workbench and in debug mode.
微信截图_20191129112233

Same operation performed in release mode and report view shows error of "PyEval_EvalFrameEx returned a result with an error set".

I debug the code and found that: when set the value of fillet “Edges”, the crash happened.
In "PropertyFilletEdges::getPyValue()" function, the “PyObject *item” is a list not a tuple, so python exception throw. the "PropertyListsT::setPyObject()" function dose not handle the python exception.

So i did some tests.

First i changed the code in "PropertyFilletEdges::getPyValue()". i checked the type of “PyObject *item”, when it was not a tuple, a Base::ValueError exception trowed. Then the crash aforementioned did not happen.
微信截图_20191129105257

Second, i restored the code in "PropertyFilletEdges::getPyValue()". i modified the code of "PropertyListsT::setPyObject()" in catch scope. When “Py::Exception" caught, i cleared the python exception. Then the crash aforementioned did not happen too.
微信截图_20191129104940

So i guess that the assert was triggered caused by “Py::Exception" and crash happened.
and i suggest the first modification to fix this problem because the include file of “Py::Exception" will be included in “Property.h” with the second change.
微信截图_20191129105006

does not start after the update. It's not going to.

~$ freecad
freecad: error while loading shared libraries: libpyside2.cpython-38-x86_64-linux-gnu.so.5.14: cannot open shared object file: No such file or directory

find / -name libpyside2.cpython-38-x86_64-linux-gnu.so*

/usr/lib/libpyside2.cpython-38-x86_64-linux-gnu.so
/usr/lib/libpyside2.cpython-38-x86_64-linux-gnu.so.5.15
/usr/lib/libpyside2.cpython-38-x86_64-linux-gnu.so.5.15.0

I don't understand why I need to specify the library program with the build number, for example libpyside2.cpython-38-x86_64-linux-gnu.so.5.15.0.
if there is a universal sl?

/usr/lib/libpyside2.cpython-38-x86_64-linux-gnu.so

OpenCamLib is not working

ArchLinux
pacman -Qs opencam
local/opencamlib-git 2019.07-1
Multi-Purpose CNC Toolpath Library

OpenCamLib is not working!
OpenCamLib is not working!
Path workbench activated

Of course, I could be wrong, apparently it makes sense to provide either the creation of the necessary links during compilation and installation, or detection

LinkDev: linear pattern transformation bug

Hi realthunder, i love your recent partdesign changes in LinkDev. Partdesign is the most important workbench for me. While playing around with patterns i found a transformation bug in linear pattern. Please have a look at the attached file, the second flower has a wrong orientation.
linearpattern_transfail.zip

Selection in the Path WB

Hello,
I have a problem with selecting a path in Path WB.
Here, how it works in the upstream FreeCAD and in the LinkDev branch (commit f24cfd8 and LinkStage3 too).

Path WB -> Path Dressup -> Tag Dress-up

Messages:

Selection.cpp(1482): Sub-object Unnamed#TagDressup.83 G1 F0 X-13.535441 Y4.689467 Z-0.999999 not found
4.2683 Selection.cpp(1482): Sub-object Unnamed#TagDressup.29 G1 F0 X-13.535441 Y4.689467 Z1 not found
6.61648 Selection.cpp(1482): Sub-object Unnamed#TagDressup.13 G1 F0 X-10.596525 Y13.667656 Z6 not found

master

linkdev

Box Selection

Hi,

It is possible to make box selection via python? I mean, a function passing the screen coordinates and the freecad do selection inside the rectangle formed by the coordinates.
I searched in the forum, but as I'm using your branch I guess you could help me.
Anyway, thanks for your good work.

Regards.

GUI - Axial is reset

when editing the PartDisign position... any (almost) changes (offset X, U, rotation around the axes - i.e. any, but we do NOT change the Axial value, where the default is 0mm) when you click OK or Apply, an error message is displayed - the existing Axial value is completely erased and you have to manually go into this field, enter 0mm and click Apply again.

Link's Shape property

Hi.

I see that link object has a hidden Shape property.
It doesn't appear in the object's properties when you type "obj.", but if I access it, I can get it's values.
Is it supposed to be that way?

It could be a great feature to have a shape of linked object, but I saw that the returned values of link.Shape are wrong :(

The program often drops when trying to change some restriction, to save the change.

This is not a new problem, it has been around for quite a while. I put up with it (just saving often). Looks like this - I enter the sketch which the solver means as "there are errors". I see, I remove the restriction = may fall. I run it again, open it, delete it = may not fall. The difficulty of catching is that I rarely launch the program from the console (where after a crash I can see the error messages). Here is an example - sketch067 rules, I add a horizontal restriction for the upper horizontal line (file is the same as the one I sent by email) = write "sketch is fully defined", press Ctrl+s (save) and (or) exit the sketch = fall.

Снимок экрана от 2020-10-22 13-59-09

<Command> Command.cpp(1839): duplicate command Std_TreePreSelection
<Command> Command.cpp(1839): duplicate command Std_TreeSelectAllInstances
1.3231 <asm3.main> init_gui.py(14): no solver backend found
connect failed: Нет такого файла или каталога
<Sketch> SketchObject.cpp(6905): Duplicated external reference in _______________________________#Sketch067: Sketch066.;g296;SKT
<Sketch> SketchObject.cpp(6905): Duplicated external reference in _______________________________#Sketch067: Sketch066.;g297;SKT
<Sketch> SketchObject.cpp(6905): Duplicated external reference in _______________________________#Sketch067: Sketch066.;g302;SKT
<Sketch> SketchObject.cpp(6905): Duplicated external reference in _______________________________#Sketch067: Sketch066.;g288;SKT
<Sketch> SketchObject.cpp(6905): Duplicated external reference in _______________________________#Sketch067: Sketch066.;g293;SKT
<Sketch> SketchObject.cpp(6905): Duplicated external reference in _______________________________#Sketch067: Sketch066.;g321;SKT
Program received signal SIGSEGV, Segmentation fault.
#0  /usr/lib/libc.so.6(+0x3d6a0) [0x7f9e43c586a0]
#1  0x7f9df90a1658 in Sketcher::SketchObject::rebuildExternalGeometry(bool) from /usr/lib/freecad/lib/Sketcher.so+0x1db8
#2  0x7f9df90b2003 in Sketcher::SketchObject::execute() from /usr/lib/freecad/lib/Sketcher.so+0x63
#3  0x7f9e45b764ea in App::DocumentObject::recompute() from /usr/lib/freecad/lib/libFreeCADApp.so+0x8a
#4  0x7f9e3e4a8f6a in Part::Feature::recompute() from /usr/lib/freecad/lib/Part.so+0xa
#5  0x7f9e45b00dd9 in App::Document::_recomputeFeature(App::DocumentObject*) from /usr/lib/freecad/lib/libFreeCADApp.so+0x219
#6  0x7f9e45b18517 in App::Document::recompute(std::vector<App::DocumentObject*, std::allocator<App::DocumentObject*> > const&, bool, bool*, int) from /usr/lib/freecad/lib/libFreeCADApp.so+0x997
#7  0x7f9e45bcf04f in App::DocumentPy::recompute(_object*) from /usr/lib/freecad/lib/libFreeCADApp.so+0x2df
#8  0x7f9e45bcf247 in App::DocumentPy::staticCallback_recompute(_object*, _object*) from /usr/lib/freecad/lib/libFreeCADApp.so+0x57
#9  /usr/lib/libpython3.8.so.1.0(PyCFunction_Call+0x19a) [0x7f9e453c48fa]
#10  /usr/lib/libpython3.8.so.1.0(_PyObject_MakeTpCall+0x464) [0x7f9e453b74d4]
#11  /usr/lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x50e8) [0x7f9e453b2da8]
#12  /usr/lib/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x304) [0x7f9e453ac9a4]
#13  /usr/lib/libpython3.8.so.1.0(PyEval_EvalCode+0x23) [0x7f9e4545cf03]
#14  /usr/lib/libpython3.8.so.1.0(+0x1d8868) [0x7f9e45468868]
#15  /usr/lib/libpython3.8.so.1.0(+0x1d2a43) [0x7f9e45462a43]
#16  /usr/lib/libpython3.8.so.1.0(PyRun_StringFlags+0x7d) [0x7f9e4545f8ad]
#17  0x7f9e45771a0c in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /usr/lib/freecad/lib/libFreeCADBase.so+0x6c
#18  0x7f9e464ae876 in Gui::Command::_runCommand(char const*, int, Gui::Command::DoCmd_Type, char const*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x96
#19  0x7f9e464ae9f6 in Gui::Command::_doCommand(char const*, int, Gui::Command::DoCmd_Type, char const*, ...) from /usr/lib/freecad/lib/libFreeCADGui.so+0xe6
#20  0x7f9e464aeb25 in Gui::Command::updateActive() from /usr/lib/freecad/lib/libFreeCADGui.so+0x45
#21  0x7f9df93998ad in SketcherGui::ViewProviderSketch::unsetEdit(int) from /usr/lib/freecad/lib/SketcherGui.so+0x71d
#22  0x7f9e4683cf68 in Gui::ViewProvider::finishEditing() from /usr/lib/freecad/lib/libFreeCADGui.so+0x38
#23  0x7f9e46418f1d in Gui::Document::_resetEdit() from /usr/lib/freecad/lib/libFreeCADGui.so+0x9d
#24  0x7f9e463c101a in Gui::Application::setEditDocument(Gui::Document*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x3a
#25  0x7f9e463ebaff in Gui::Application::sResetEdit(_object*, _object*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x2f
#26  /usr/lib/libpython3.8.so.1.0(PyCFunction_Call+0x19a) [0x7f9e453c48fa]
#27  /usr/lib/libpython3.8.so.1.0(_PyObject_MakeTpCall+0x464) [0x7f9e453b74d4]
#28  /usr/lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x50e8) [0x7f9e453b2da8]
#29  /usr/lib/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x304) [0x7f9e453ac9a4]
#30  /usr/lib/libpython3.8.so.1.0(PyEval_EvalCode+0x23) [0x7f9e4545cf03]
#31  /usr/lib/libpython3.8.so.1.0(+0x1d8868) [0x7f9e45468868]
#32  /usr/lib/libpython3.8.so.1.0(+0x1d2a43) [0x7f9e45462a43]
#33  /usr/lib/libpython3.8.so.1.0(PyRun_StringFlags+0x7d) [0x7f9e4545f8ad]
#34  0x7f9e45771a0c in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /usr/lib/freecad/lib/libFreeCADBase.so+0x6c
#35  0x7f9e464ae876 in Gui::Command::_runCommand(char const*, int, Gui::Command::DoCmd_Type, char const*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x96
#36  0x7f9e464ae9f6 in Gui::Command::_doCommand(char const*, int, Gui::Command::DoCmd_Type, char const*, ...) from /usr/lib/freecad/lib/libFreeCADGui.so+0xe6
#37  0x7f9df93c813b in SketcherGui::TaskDlgEditSketch::reject() from /usr/lib/freecad/lib/SketcherGui.so+0xfb
#38  0x7f9e4679ff6c in Gui::TaskView::TaskView::reject() from /usr/lib/freecad/lib/libFreeCADGui.so+0x5c
#39  /usr/lib/libQt5Core.so.5(+0x2eb070) [0x7f9e442c6070]
#40  /usr/lib/libQt5Widgets.so.5(+0x2f2291) [0x7f9e44eee291]
#41  /usr/lib/libQt5Core.so.5(+0x2eb070) [0x7f9e442c6070]
#42  0x7f9e44e47b23 in QAbstractButton::clicked(bool) from /usr/lib/libQt5Widgets.so.5+0x43
#43  /usr/lib/libQt5Widgets.so.5(+0x24c4ac) [0x7f9e44e484ac]
#44  /usr/lib/libQt5Widgets.so.5(+0x24de53) [0x7f9e44e49e53]
#45  0x7f9e44e4a033 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) from /usr/lib/libQt5Widgets.so.5+0xf3
#46  0x7f9e44d97b0e in QWidget::event(QEvent*) from /usr/lib/libQt5Widgets.so.5+0x1ce
#47  0x7f9e44d56752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x82
#48  0x7f9e44d5d87b in QApplication::notify(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x4ab
#49  0x7f9e464785f9 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x89
#50  0x7f9e4428ecda in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x12a
#51  0x7f9e44d5c87e in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /usr/lib/libQt5Widgets.so.5+0x1de
#52  /usr/lib/libQt5Widgets.so.5(+0x1b4249) [0x7f9e44db0249]
#53  /usr/lib/libQt5Widgets.so.5(+0x1b763f) [0x7f9e44db363f]
#54  0x7f9e44d56752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x82
#55  0x7f9e464785f9 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x89
#56  0x7f9e4428ecda in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x12a
#57  0x7f9e446694ac in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /usr/lib/libQt5Gui.so.5+0x6ac
#58  0x7f9e4463ebac in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/libQt5Gui.so.5+0xbc
#59  /usr/lib/libQt5XcbQpa.so.5(+0x5ef9c) [0x7f9e3a97cf9c]
#60  /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x184) [0x7f9e41fbb924]
#61  /usr/lib/libglib-2.0.so.0(+0xa6621) [0x7f9e4200f621]
#62  /usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x31) [0x7f9e41fba131]
#63  0x7f9e442e7941 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/libQt5Core.so.5+0x61
#64  0x7f9e4428d65c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/libQt5Core.so.5+0x12c
#65  0x7f9e44295af4 in QCoreApplication::exec() from /usr/lib/libQt5Core.so.5+0x94
#66  0x7f9e463ccacc in Gui::Application::runApplication() from /usr/lib/freecad/lib/libFreeCADGui.so+0x181c
#67  freecad(+0x45e0) [0x55ec21b3d5e0]
#68  /usr/lib/libc.so.6(__libc_start_main+0xf2) [0x7f9e43c43152]
#69  freecad(+0x48ee) [0x55ec21b3d8ee]

Call member function on NULL

Hello,
there is small mistake

src/Gui/ViewProviderLink.cpp 515

            if(!sobj) {
                FC_ERR("invalid sub name " << nextsub << " of object " << sobj->getNameInDocument());

Sketcher: Failed to validate broken face and/or Crash

Description

This problem occurs when we use external geometry via sub-shape binder and then solve the constraints.

Reproduction

  1. Get a solid (A)
  2. Draw a sketch (Sketch) using constraints to the external geometry (ExtConstraints) via sub-shape binder (Binder) of A
  3. Pad it to create a solid (B)
  4. Create a constraint between A and B
  5. Disable "Auto Recompute" (do not solve constraints automatically)
  6. Move A
  7. Click "Refresh" button (at the top)
  8. See everything is normal and B is moved accordingly (Because when we move A, Binder is moved accordingly, thus the ExtConstraints are moved, thus Sketch is moved/re-drawn to/at the correct position.
  9. Press "Solve constraints"

Then one of the followings may happen:

You'll end up with broken face:

image

How to fix: Open the sketch in edit mode, then close. You don't need to fix anything here.

or with a crash:

(previous outputs seem irrelevant)
Link to Edge10 already exists in this sketch.
Failed to add external geometry: Not able to add external shape element
Link to Edge10 already exists in this sketch.
Failed to add external geometry: Not able to add external shape element
Selected external reference plane must be normal to sketch plane
Failed to add external geometry: Not able to add external shape element
Selected external reference plane must be normal to sketch plane
Failed to add external geometry: Not able to add external shape element
Link to Edge14 already exists in this sketch.
Failed to add external geometry: Not able to add external shape element
Link to Edge20 already exists in this sketch.
Failed to add external geometry: Not able to add external shape element
Updating geometry: Error build geometry(5): 
Invalid solution from DogLeg solver.
Drag curve: Not able to move point with the id and type: (3, 0)
Drag curve: Not able to move point with the id and type: (3, 0)
<asm3.sys> 0.000211 - solver.py(119): List of failed constraint:
"Constraint005(hat-offset)"<PlaneAlignment>, handle: 2
Updating geometry: Error build geometry(4): 
Invalid solution from DogLeg solver.
Updating geometry: Error build geometry(5): 
Invalid solution from DogLeg solver.
1.02e-07 Tree.cpp(2595): [ComboView] sub object not found Sketch009.;H_Axis.
Program received signal SIGSEGV, Segmentation fault.

On re-start, you'll see a recovery screen. Click "recover", wait for a while and see the documents are loaded in the tree. You'll end up with broken links. Close the project, say "yes" to "should we save the file?" prompts, then re-open the project.

or incorrect Placement (mostly this one happens)

You may end up with incorrect placement, because Binder isn't moved to the correct position (screencast).

Fix: Double click the Binder in the tree, it will be updated to the correct position, thus the sketch will be updated. Click "Reload" button at the top, and B is placed to the correct position.

Attachments

case-v3-20180913T1210.zip

LinkStage3 branch lacks "Export selected geometries as ..." Sketcher actions

The Assembly3 0.10.2 AppImage has a very handy pair of actions in Sketcher: "Export selected geometries as separate child objects" and "Export selected geometries as single child objects".

However, I am finding that my own build of the LinkStage3 branch (specifically commit f97f6b41b172b5ac65b95b62b5bc43087f44e539) and asm3 branch (specifically realthunder/FreeCAD_assembly3@b7da4ec) seems to lack these actions. Were these introduced in another branch? What exactly are the AppImages built from?

default units of measurement and display of names after renaming

Снимок экрана от 2020-10-20 19-37-12
С некоторых пор внезапно стало требоваться и в таблице, и в задании ограничений через формулы явно указывать единицы измерения. Соответственно возникла проблема - если ранее я где-нибудь сделал ограничение типа B1+20 то при первом же изменении в эскизе все ломается - он начинает требовать, чтобы я прошел по всем таким местам и явно задал, что 20 это в мм. Было бы правильно, чтобы он сам это понимал везде и всегда (как было раньше) - ведь мы в настройках указываем значения мм/кг и пр.

Побочная проблема - с отображением. Очень хорошо, что мы имеем возможность переименовать эскизы. Но этим создаем себе проблему в будущем - когда решатель решает на что-нибудь пожаловаться, он пишет жалобу не на новое имя эскиза, а на исходное, вида SketcherNN и в дереве проекта это SketcherNN не найти

Since some time, it has suddenly become necessary to explicitly specify units of measurement in the table and in the assignment of restrictions through formulas. Accordingly, there was a problem - if earlier I somewhere made a restriction of type B1+20 then at the first change in the sketch all breaks - he begins to demand that I went through all such places and clearly set that 20 is in mm. It would be right for him to understand it everywhere and always (as it used to be), because we specify the values of mm/kg in the settings, etc.

A side problem is with the display. It's very good that we can rename the thumbnails. But this creates a problem in the future - when the solver decides to complain about something, he writes a complaint not on the new sketch name, but on the original, the kind of SketcherNN and in the project tree it is SketcherNNN not find

Error on restriction change

Снимок экрана от 2020-09-16 14-14-48

I have long noticed that if I try to change a certain size in a sketch, a message like invalid con... index. But if you change the size (limitation) in step (e.g.) 1, the error is not generated and everything changes. I.e. the solver can but does not want to.

In this case I change the restriction "angle" from 110 to 120. If at once instead of 110 to enter 120 = error. If at first 111, then 112 and so to 120 = success.

Sketcher::Solve()-SQP(augmented system)-T:1.842
Traceback (most recent call last):
File "", line 1, in
<class 'ValueError'>: Invalid constraint index: 1
App.getDocument('______________________________copy').getObject('Sketch').setDatum(1,App.Units.Quantity('120.000000 deg'))
Save AutoRecovery file: Needed time: 24ms
Sketcher::setUpSketch()-T:0.025
Sketcher::Solve()-DogLeg-T:0.006
Sketcher::setUpSketch()-T:0.01
Sketcher::Solve()-DogLeg-T:0.286
Sketcher::setUpSketch()-T:0.009
Sketcher::Solve()-DogLeg-T:0.265
Sketcher::setUpSketch()-T:0.01
Sketcher::Solve()-DogLeg-T:0.26
Sketcher::setUpSketch()-T:0.01
Sketcher::Solve()-DogLeg-T:0.259
Sketcher::setUpSketch()-T:0.011
Sketcher::Solve()-DogLeg-T:0.255
Sketcher::setUpSketch()-T:0.011
Sketcher::Solve()-DogLeg-T:0.264
Sketcher::setUpSketch()-T:0.01
Sketcher::Solve()-DogLeg-T:0.253
Sketcher::setUpSketch()-T:0.009
Sketcher::Solve()-DogLeg-T:0.253
Sketcher::setUpSketch()-T:0.009
Sketcher::Solve()-DogLeg-T:0.254
Sketcher::setUpSketch()-T:0.011
Sketcher::Solve()-DogLeg-T:0.266

The FC file has sent you by email

And please make a fresh appimage build with the latest changes
main branch.

Does not open (breaks) files created by itself

Снимок экрана от 2020-10-16 11-37-31
Снимок экрана от 2020-10-16 11-37-12

За отсутствием свежего appimage собрал из исходников, с нуля в новой сборке создал эскизы, управляющие программы. Закрыл. с утра открываю - все поломано. Открываю тот же файл через аппимадж - все на месте. Открываю через аппимадж основной ветки - условно все на месте.
Блин. А теперь этот гит еще и отказывается редактировать и загружать кратинки иначе чем в немилом хроме.

For lack of fresh appimage collected from sources, from scratch in the new build created thumbnails, control programs. Closed. I open in the morning - everything is broken. I open the same file through the appimage - everything is in place. I open it through the main branch apimage - everything is in place.

"Send To Python Console" from tree view sends wrong information for some elements of the linked part

Don't know if it's related to links and can't explain why the feature works for most of the entries, but not for "LCS_Origin" and "Variables"...

I use Assembly4 file where main document name is "roller", which have linked part named "m4x12_allen_screw_1".
The "roller" has child objects:
Parts - empty group
Model - part object that has all the linked objects in that entry

Inside the "Model" there are:
Origin - coordinate
LCS_Origin - coordinate
Constraints - group
Variables
m4x12_allen_screw_1 - link to m4x12_allen_screw document

inside the "m4x12_allen_screw_1" there is the same structure as in the "Model"...

If I right click and select "Send To Python Console" option on different items in the tree, I would expect to see matching code appearing in the python code, which is ok for all the entries, but not for the m4x12_allen_screw_1::LCS_Origin for some reason.

Right click on Model produce:

  • "obj = App.getDocument("roller").getObject("Model")" --> good
    Right click on Model::Variables produce:
  • "obj = App.getDocument("roller").getObject("Variables")" --> good
    Right click on Model::LCS_Origin produce:
  • "obj = App.getDocument("roller").getObject("LCS_Origin")" --> good
    Right click on Model::m4x12_allen_screw_1 produce:
  • "obj = App.getDocument("roller").getObject("m4x12_allen_screw_1")" --> good
    Right click on m4x12_allen_screw_1::PartBody (imported STEP) produce:
  • "obj = App.getDocument("m4x12_allen_screw").getObject("Part__Feature")" --> good
    Right click on m4x12_allen_screw_1::Variables produce:
  • "obj = App.getDocument("roller").getObject("Variables")" --> bad
    Right click on m4x12_allen_screw_1::LCS_Origin produce:
  • "obj = App.getDocument("roller").getObject("LCS_Origin")" --> bad

OS: Ubuntu 18.04.5 LTS (ubuntu:GNOME/ubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22292 (Git)
Build type: Release
Branch: master
Hash: f09d48d
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)

OpenMPI header 'mpi.h' not detected if in /usr/include

On archlinux, the OpenMPI header is /usr/include/mpi.h.

pkg-config filters -I/usr/include from cflags (because it's a standard include path), so the cflags detected from ompi-cxx do NOT contain this token…

The problem is that the header detection code in CMake is :

find_file(MpidotH mpi.h PATHS ${OPENMPI_INCLUDE_DIRS} NO_DEFAULT_PATH)

The NO_DEFAULT_PATH prevents CMake from searching in /usr/include. The header is thus not found.
You just have to remove NO_DEFAULT_PATH and everything works as intended.

[BUG] UI element positioning not saving

Good Afternoon,

When I open a document, or restart FreeCAD some UI elements are not restored to their previous positioning. On the right side of the screen you can see what I am referring to. I slide the combo window to hide the tree, and move the viewport cube to the left of the combo view panel.

Here is what it looks like when reopening each document:
start

Here is what I repeatedly set up my view to look like:
setup

Part Design: Splitting by sketch

9ac862b introduced the very useful ability to split a Part Design feature into multiple fragments using a two-dimensional tool. However, it's quite unclear precisely what objects are expected to work as a tool:

  • I have confirmed that datum planes indeed work
  • Attempting to move any 3D geometry under a Split node results in an error (e.g. "Failed to replace object Split with Pad").
  • Sketches can be moved under a Split node and selected to be a tool but this doesn't appear to do any splitting

In particular, I was hoping to be able to use the 2D surface resulting from the non-solid "extrusion" of a sketch normal to the sketch plane. However, I have been unable to find a way to achieve this. Any hints?

Conda build on macOS tests fail

Hello there,

I have previously successfully built the upstream codebase on macOS using Conda. I detail the steps I followed here:

https://vectronic.io/posts/building-freecad-with-3dconnexion-support-on-macos-using-conda/

I have applied the same steps to this fork using:

git_url = https://github.com/realthunder/FreeCAD.git
version = 4f76634

This is the version you released a few days ago.

I just wanted to report that the Conda package builds ok but then the automated tests fail.

However I did still manage to get the Conda package installed and then followed slightly tweaked instructions for installing the Assembly workbench and SolveSpace.

It seems to behave pretty much as the pre-built binary you provided (apart from the fact my build is done with support for 3D Connexion input device which is what I was chasing).

If you want to know any further details on which tests failed let me know (but you might need to tell me what to log/attach etc. because the internal build/test workings of FreeCad are still foreign to me...).

Thanks for the good work!

Cannot switch to Sketcher Workbench

Hi,

after having built your fork of FreeCAD successfully, I cannot open most workbenches in FreeCAD. Building "ALL_BUILD" as debug finished without any errors. When I try to open the Sketcher workbench, the following error message appears:
grafik

My configuration according to FreeCAD

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21911 +2545 (Git)
Build type: Release
Branch: LinkStage3
Hash: 04c80c99eee0f7d2f761bdc7d8b32c077adefdec
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/Germany (en_DE)

Upon running the tests I get this error:

$ ./FreeCAD_d.exe --run-test 0
test_import_draft (drafttests.test_import.DraftImport)
Import the Draft module. ... ok
test_import_draft_geomutils (drafttests.test_import.DraftImport)
Import Draft geometrical utilities. ... ok
test_import_draft_svg (drafttests.test_import.DraftImport)
Import Draft SVG utilities. ... ok
test_import_draft_vecutils (drafttests.test_import.DraftImport)
Import Draft vector utilities. ... ok
test_arc (drafttests.test_creation.DraftCreation)
Create a circular arc. ... Illegal storage access...

I am using the Python version from the Libs:
Python 3.6.8 (v3.6.8:3c6b436a57, Mar 26 2019, 15:42:50) [MSC v.1916 64 bit (AMD64)]

FreeCAD.log
crash.log
crash.dmp.zip

Crash when trying to copy body

When trying to copy a body, FreeCAD crashes.

Program received signal SIGSEGV, Segmentation fault.
#0 /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7fe4d1f90f20]
#1 /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Widgets.so.5(+0x2f061a) [0x7fe4d2c2761a]
#2 0x7fe4d2c29dfd in QHeaderView::resizeSection(int, int) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Widgets.so.5+0xb3
#3 0x7fe4d4490876 in Gui::DlgObjectSelection::DlgObjectSelection(std::vector<App::DocumentObject*, std::allocatorApp::DocumentObject* > const&, QWidget*, QFlagsQt::WindowType) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libFreeCADGui.so+0x176
#4 0x7fe4d4757b01 in Gui::MainWindow::createMimeDataFromSelection() const from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libFreeCADGui.so+0x171
#5 0x7fe4d43d277f in StdCmdCopy::activated(int) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libFreeCADGui.so+0x2f
#6 0x7fe4d43ce3e3 in Gui::Command::invoke(int, Gui::Command::TriggerSource) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libFreeCADGui.so+0x323
#7 0x7fe4d26e0e34 in QMetaObject::activate(QObject*, int, int, void**) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Core.so.5+0x780
#8 0x7fe4d2a9e01a in QAction::triggered(bool) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Widgets.so.5+0x32
#9 0x7fe4d2a9f8d9 in QAction::activate(QAction::ActionEvent) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Widgets.so.5+0xcb
#10 0x7fe4d2a9ffdd in QAction::event(QEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Widgets.so.5+0xaf
#11 0x7fe4d2aa2ca0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Widgets.so.5+0xde
#12 0x7fe4d2aa8b19 in QApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Widgets.so.5+0x1a81
#13 0x7fe4d43942a9 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libFreeCADGui.so+0x89
#14 0x7fe4d26cc21a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Core.so.5+0x88
#15 0x7fe4d1046214 in QShortcutMap::dispatchEvent(QKeyEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libQt5Gui.so.5+0xd4
#16 0x7fe4d104627d in QShortcutMap::tryShortcut(QKeyEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libQt5Gui.so.5+0x55
#17 0x7fe4d101d649 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlagsQt::KeyboardModifier, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libQt5Gui.so.5+0xab
#18 0x7fe4d102c13e in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libQt5Gui.so.5+0xac
#19 0x7fe4d102ef7b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libQt5Gui.so.5+0x187
#20 0x7fe4d101b4ae in QWindowSystemInterface::sendWindowSystemEvents(QFlagsQEventLoop::ProcessEventsFlag) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libQt5Gui.so.5+0x58
#21 /tmp/.mount_FreeCAtJkO14/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5(+0x7ed90) [0x7fe4cc271d90]
#22 /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_dispatch+0x2e8) [0x7fe4ce72f9d8]
#23 /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libglib-2.0.so.0(+0x51c21) [0x7fe4ce72fc21]
#24 /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_iteration+0x2e) [0x7fe4ce72fcae]
#25 0x7fe4d26f886f in QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Core.so.5+0x63
#26 0x7fe4d26c8e47 in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Core.so.5+0x187
#27 0x7fe4d26cca3b in QCoreApplication::exec() from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libQt5Core.so.5+0x105
#28 0x7fe4d430fd04 in Gui::Application::runApplication() from /tmp/.mount_FreeCAtJkO14/usr/bin/../lib/libFreeCADGui.so+0x1534
#29 ./FreeCAD(main+0x725) [0x558b1791b7a5]
#30 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fe4d1f73b97]
#31 ./FreeCAD(+0x44d5) [0x558b1791c4d5]

OS: Ubuntu 18.04.3 LTS (i3/i3)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.16830 +1496 (Git) AppImage
Build type: Release
Branch: LinkStage3
Hash: 1b29767
Python version: 3.7.3
Qt version: 5.9.7
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)

WIP: testing sympy solver

some first tests with sympy (trying to constraint 2 simple boxes, point to point-constraint):

<asm3.gui> 122.859145 - gui.py(226): command "asm3CmdSolve" exception
Traceback (most recent call last):
  File ".../lib/python3.6/site-packages/freecad/assembly3/FCADLogger.py", line 106, in report
    return func(*args,**kargs)
  File ".../lib/python3.6/site-packages/freecad/assembly3/solver.py", line 348, in solve
    return _solve(*args,**kargs)
  File ".../lib/python3.6/site-packages/freecad/assembly3/solver.py", line 318, in _solve
    Solver(assembly,reportFailed,dragPart,recompute,rollback)
  File ".../lib/python3.6/site-packages/freecad/assembly3/solver.py", line 91, in __init__
    self.system.solve(group=self.group,reportFailed=reportFailed)
  File ".../lib/python3.6/site-packages/freecad/assembly3/sys_sympy.py", line 1278, in solve
    tol=algo.Tolerance,method=algo.getName(),options=algo.Options)
  File ".../lib/python3.6/site-packages/scipy/optimize/_minimize.py", line 593, in minimize
    return _minimize_powell(fun, x0, args, callback, **options)
  File ".../lib/python3.6/site-packages/scipy/optimize/optimize.py", line 2560, in _minimize_powell
    fval = squeeze(func(x))
  File ".../lib/python3.6/site-packages/scipy/optimize/optimize.py", line 293, in function_wrapper
    return function(*(wrapper_args + args))
  File ".../lib/python3.6/site-packages/freecad/assembly3/sys_sympy.py", line 1080, in F
    res = eq(*params)
TypeError: _lambdifygenerated() missing 6 required positional arguments: '_Dummy_49', '_Dummy_50', '_Dummy_51', '_Dummy_52', '_Dummy_53', and '_Dummy_54'

‘gp_Pln pln’ has incomplete type

Hi,

I have coin4 and FreeCAD-pivy installed. I now got 36% into building FreeCAD-LinkStage3 on Fedora 29 with gcc 8.2.1 and hit this error.

/svn/FreeCAD-LinkStage3/src/Mod/Part/App/TopoShapePyImp.cpp: In member function ‘PyObject* Part::TopoShapePy::findPlane(PyObject*)’:
/svn/FreeCAD-LinkStage3/src/Mod/Part/App/TopoShapePyImp.cpp:2126:16: error: aggregate ‘gp_Pln pln’ has incomplete type and cannot be defined
         gp_Pln pln;
                ^~~
make[2]: *** [src/Mod/Part/App/CMakeFiles/Part.dir/build.make:1549: src/Mod/Part/App/CMakeFiles/Part.dir/TopoShapePyImp.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1856: src/Mod/Part/App/CMakeFiles/Part.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Any suggestions how to tackle the problem?

thx

Does not want to move objects to groups

Снимок экрана от 2020-10-23 00-36-19
OS: Arch Linux (GNOME/gnome-xorg)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 2020.10.22.22739 +2688 (Git) AppImage
Build type: Release
Branch: LinkStage3
Hash: d4401f2
Python version: 3.8.6
Qt version: 5.12.9
Coin version: 4.0.0
OCC version: 7.4.0
Locale: Russian/Russia (ru_RU)

00:36:02  Loading PathDressup... done
00:36:02  Loading PathDrillingGui... done
00:36:02  Loading PathEngraveGui... done
00:36:02  Loading PathFixture... done
00:36:02  Loading PathHelixGui... done
00:36:02  Loading PathHop... done
00:36:02  Loading PathMillFaceGui... done
00:36:02  Loading PathPocketGui... done
00:36:02  Loading PathPocketShapeGui... done
00:36:02  Loading PathPost... done
00:36:02  Loading PathProbeGui... done
00:36:02  Loading PathProfileFacesGui... done
00:36:02  Loading Mesh module... done
00:36:02  Loading PathSimulator module.... done
00:36:02  Loading PathSimulator Gui... done
00:36:02  Loading PathSlotGui... done
00:36:02  Loading PathStop... done
00:36:02  Loading PathVcarveGui... done
00:36:03  4.61e-07 <App> Document.cpp(3439): The graph must be a DAG.
00:36:03  0.0155358 <App> Document.cpp(3439): The graph must be a DAG.
00:36:13  10.3524 <App> Document.cpp(3404): Dependency cycles: 
00:36:13  10.3524 <App> Document.cpp(3434): 

_________________________________#Sketch, _________________________________#Spreadsheet, _________________________________#Sketch005, 

00:36:13  <Exception> Document.cpp(3435): Cyclice dependency detected.
Please check Report View for more details.

[GCC 7.5.0] on linux
Type 'help', 'copyright', 'credits' or 'license' for more information.
>>> Gui.runCommand('Std_Workbench',0)
>>> Gui.runCommand('Std_ViewStatusBar',1)
>>> Gui.runCommand('Std_ViewStatusBar',0)
>>> ### Begin command Std_Open
>>> FreeCAD.openDocument('/home/memfis/H/A_w/\u0422\u0435\u043c\u044b/2017/rozetka/\u0441\u0432\u0435\u0442\u0438\u043b\u044c\u043d\u0438\u043a-\u0432\u0438\u0442\u0440\u0430\u0436.FCStd')
>>> # App.setActiveDocument("_________________________________")
>>> # App.ActiveDocument=App.getDocument("_________________________________")
>>> # Gui.ActiveDocument=Gui.getDocument("_________________________________")
>>> ### End command Std_Open
>>> # Gui.Selection.addSelection('_________________________________','Job')
>>> # Gui.Selection.addSelection('_________________________________','Job001')
>>> # Gui.Selection.addSelection('_________________________________','Job002')
>>> # Gui.Selection.clearSelection()
>>> # Gui.Selection.addSelection('_________________________________','Job002')
>>> # Gui.Selection.addSelection('_________________________________','Job')
>>> # Gui.Selection.addSelection('_________________________________','Job001')
>>> # Gui.Selection.clearSelection()
>>> # Gui.Selection.addSelection('_________________________________','____________001')
>>> App.getDocument('_________________________________').getObject('Job').adjustRelativeLinks(App.getDocument('_________________________________').getObject('____________001'))
>>> App.getDocument("_________________________________").getObject("____________001").addObject(App.getDocument("_________________________________").getObject("Job"))
>>> Gui.runCommand('Std_WhatsThis',0)
>>> Gui.runCommand('Std_About',0)
>>> 

ewvfew.FCStd.zip

Windows Specific - UI Bug

Unable to dock panel views on right side of the screen. They can be undocked from the left, redocked to the left or bottom, including nesting multiple layers of docks. I'm unsure if this is related to the libpack. I compiled with FreeCADLibs_12.1.6_x64_VC15.

Build was clean off latest commit and gave no errors. Also, panel position and setup is not persistent between restarts/workbench changes. I will try to provide some screenshots to illustrate better what is happening. I did not run into these issues when running on a linux VM.

error install, This, apparently, the consequences of the update gcc

The program does not compile.
I am simply compiling https://github.com/FreeCAD/FreeCAD.git = it is going to be installed, it works.

I collect https://github.com/realthunder/FreeCAD.git the assembly crashes with an error -
../src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp:4159:25: warning: “u” may be used without initialization in this function [-Wmaybe-uninitialized] 4159 | newUV.SetX (ElCLib :: InPeriod (newUV.X (), u1, u2)); | | | ~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ninja: build stopped: subcommand failed. ==> ERROR: A build () failure has occurred. Interrupt... ==> ERROR: Makepkg was unable to compile freecad-linkstage3-git. ==> Restart assembly freecad-linkstage3-git? yes / no [y / n] ==> ----------------------------------------------- -----------

This, apparently, the consequences of the update gcc -

pacman -Qs gcc local/gcc 9.2.0-4 (base-devel) The GNU Compiler Collection - C and C++ frontends local/gcc-fortran 9.2.0-4 Fortran front-end for GCC local/gcc-libs 9.2.0-4 (base) Runtime libraries shipped by GCC local/lib32-gcc-libs 9.2.0-4 (multilib-devel) 32-bit runtime libraries shipped by GCC

But the fact is that the program of the main branch is assembled and installed, but this branch is not.

tried so -
cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="/usr/lib/freecad" \ -DCMAKE_INSTALL_DATAROOTDIR="/usr/share" \ -DCMAKE_INSTALL_DOCDIR="/usr/share/freecad/doc" \ -DFREECAD_USE_OCC_VARIANT="Official Version" \ -DBUILD_QT5=ON \ -DPYTHON_EXECUTABLE=/usr/bin/python3 \ -DOPENMPI_INCLUDE_DIRS=/usr/include \ -DPYSIDE_INCLUDE_DIR="/usr/include/PySide2" \ -DPYSIDE_LIBRARY="/usr/lib/libpyside2.cpython-${PYVER//.}m-${CARCH}-linux-gnu.so" \ -DPYSIDE_PYTHONPATH="/usr/lib/python${PYVER}/site-packages/PySide2" \ -DPYSIDE_TYPESYSTEMS="/usr/share/PySide2/typesystems" \ .

& tried so -

cmake -GNinja .. \ -DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_INSTALL_PREFIX='/usr/lib/freecad' \ -DCMAKE_INSTALL_LIBDIR='/usr/lib/freecad/lib' \ -DCMAKE_INSTALL_DOCDIR='/usr/share/freecad/doc' \ -DCMAKE_INSTALL_DATADIR='/usr/share/freecad' \ -DFREECAD_USE_OCC_VARIANT="Official Version" \ -DFREECAD_USE_EXTERNAL_PIVY=ON \ -DFREECAD_USE_QT_FILEDIALOG=ON \ -DBUILD_QT5=ON \ -DPYTHON_EXECUTABLE=/usr/bin/python

error when compile LinkDev

hi realthunder i want to look at your newested development progress. But a few days ago i get this error.

/src/FreeCADLinkDev/src/Mod/Part/App/PropertyTopoShape.cpp: In member function 'void Part::ShapeHistory::reset(BRepBuilderAPI_MakeShape&, TopAbs_ShapeEnum, const TopoDS_Shape&, const TopoDS_Shape&)':
/src/FreeCADLinkDev/src/Mod/Part/App/PropertyTopoShape.cpp:435:44: error: aggregate 'TopTools_ListIteratorOfListOfShape it' has incomplete type and cannot be defined
         TopTools_ListIteratorOfListOfShape it;
                                            ^~
make[2]: *** [src/Mod/Part/App/CMakeFiles/Part.dir/build.make:1399: src/Mod/Part/App/CMakeFiles/Part.dir/PropertyTopoShape.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1731: src/Mod/Part/App/CMakeFiles/Part.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

i think these include can fix it:
#include <TopTools_ListIteratorOfListOfShape.hxx>

And you are on the right way with asm3 thank you.

getSubObjects/getSubObject interface is very slow

I'm implementing a feature (in python) for Assembly4 that have to traverse over all the elements in the tree and set Visibility for some of the entries.
I have a not-so-big model, but found that passing all the entries takes lots of time.
Trying to debug and understand why:
Total number of getSubObjects calls was 4189
Total numbers of getSubObject(name, 1) calls was 1909
Total number of time Visibility feature was set was 763 (there are some links to the same part that I will try to recognize and improve the logic).
All that takes about 6.5 seconds on my computer.

I thought the fact that getSubObjects returns only names of the objects and for each there is a need to query the object itself with getSubObject function was a problem, so I've tried to add an API that will do that in C++ code and return the list of the objects with one call. Maybe I did something not that good, but the gain wasn't significant.

Next change was to check the object type before calling the getSubObjects, so the script will handle only App::Part containers.
That lead to the following numbers:
Total number of getSubObjects calls was 289
Total numbers of getSubObject(name, 1) calls was 1909
Total number of time Visibility feature was set was 763.
All that took about 5.5 seconds - a save one 1 second.

That lead me to the obvious conclusion that passing large lists via the API and processing all of them in Python is not efficient, especially when most of the entries are ignored.

How hard will it be to implement a filter in the getSubObjects, by passing a list of object types I would like to get back?
For some calls I need only App::Part, for others I need few types that are used for LCS representation ['PartDesign::CoordinateSystem', 'PartDesign::Plane', 'PartDesign::Line', 'PartDesign::Point'], for some calls I need the body elements...

Maybe there will be needs for other filtering options as well.
Right now for my current implementation I think the TypeId filter will improve the speed drastically.

Can you point me to the needed direction, so I could add such filter and test?
For a start, couldn't find how TypeId property is implemented.

Maybe you have other thoughts in that direction.

Thanks.

Sketch constraints and binary ops

Constraints on expressions stopped working, and I just can't figure out how to fix it. In the formulas, I refer to the constraints of the same sketch, and the program does not like it.
And so not only with division, but also with subtraction.
This is a pretty big project that broke, but I can try to do something small to repeat the situation if necessary.

Branch: LinkStage3, Commit:2b73b3033d50f03fd07fae9d3c86850c67f4028e

[https://peertube.social/videos/watch/42a0b56a-366d-4ccd-8a2e-735d2c10fb38](Here is a video illustrating the situation.)

divide
divide-2

Where to get SMESH?

When following the official build instructions with this fork, I get errors about SMESH, and SMESH_EXTERNAL is off by default. I guess I have to set it to ON and find SMESH somewhere?

[ 31%] Built target SMESH
Makefile:129: recipe for target 'all' failed

I haven't found a debian package for that, nor do I know which of the projects called SMESH is required and where to install it.

Any idea?

LinkDev: can't compile windows

Hi realthunder, thank you for your amazing work. Your implementations allowed me to start my project.
I´m trying to compile LinkDev on windows but I can't success. I'm getting the following error:
=>>> freecad\src\base\Base64.h(73): error C2059: syntax error: '__declspec(dllexport)'
I'm using windows 10 and FreeCADLibs_12.1.4_x64_VC15. Same error with FreeCADLibs_12.1.2_x64_VC15.

FreeCADGui.Selection results with linked parts

Hello @realthunder ,

I think the FreeCADGui.Selection doesn't work properly with linked parts.
Lets say I have the same part linked to the document several times with different names.

the addSelection callback is called with the following parameters:
doc - document name
obj - object name
sub - part of the object name
pnt - coordinates of the click (not interesting for that case)

I'm trying to add a feature to Assembly4 and try to use Selection callbacks.
When I click on the part link in the tree view, I get expected results:
doc - current document name
obj - the linked part name as appearing in the tree view

When I click on a body object of the the same part I get results that will not allow me to determine what part the body belongs to:
doc - name of the linked document (the original document, not the linked name)
obj - "Part__Feature" string

I understand that the body belongs to the linked part, but without getting the name of the linked part in current document, the callback is useless in that case...

Is there a workaround for that? Or a fix will be needed?

Thanks.

Object.Parents returns wrong information when multiple links exist to the same document

Hi.
Please see the attached example file:
asm_tuto2.zip

Using Assembly4.
There are 2 "arm" links in the assembly: arm001 and arm2
Expand both arm's entries in the tree view.
Right click on arm001.Body002 in the tree, select "Send to python console".
In the console run "obj.Parents", the result will be:
[(<Part object>, '**arm2.Body002**.'), (<Part object>, 'Body002.')]
Right click on arm2.Body002 in the tree, select "Send to python console".
In the console run "obj.Parents", the result will be:
[(<Part object>, 'arm2.Body002.'), (<Part object>, 'Body002.')]

OS: Ubuntu 18.04.5 LTS (ubuntu:GNOME/ubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22517 (Git)
Build type: Unknown
Branch: gui-command-enhancements
Hash: 7616153
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.