Techdraw unusably slow...

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
rothloup
Posts: 11
Joined: Thu Aug 28, 2014 12:18 am

Techdraw unusably slow...

Postby rothloup » Sun Oct 13, 2019 2:50 am

I built a model using A2Plus assembly workbench and now I'm trying to apply that to a drawing using TechDraw.

TechDraw is unusably slow. Every button click or property update which results in a re-render causes FreeCAD to hang for 3 to 5 minutes.

I've turned off "Detect Faces", "Show Section Edges", "Keep Pages Up to Date" and "AutoDistribute Secondary Views" in the TechDraw preferences. HiddenLine is set to "NeverShow".

My only reprieve that is that I can work elsewhere in FreeCAD on the model in question if I turn off "Keep Page Up to Date".

The report view shows the following during updates:

TIMING - QGIVP::updateView - View - total 79911.961 millisecs
TIMING - QGIVP::updateView - View - total 76504.582 millisecs
Save AutoRecovery file: Needed time: 309ms
TIMING - QGIVP::updateView - View - total 77383.964 millisecs
TIMING - QGIVP::updateView - View - total 75239.587 millisecs
TIMING - QGIVP::updateView - View - total 75.705 millisecs
Rebuilding Views for: Page/Page
TIMING - View GO spent: 3415.362 millisecs in HLRBRep_Algo & co
TIMING - View GO spent: 88.224 millisecs in hlrToShape and BuildCurves
TIMING - View DVP spent: 204.017 millisecs in GO::extractGeometry
TIMING - View DVP spent: 0.000 millisecs handling Faces
TIMING - QGIVP::updateView - View - total 77852.596 millisecs
TIMING - Detail GO spent: 3.988 millisecs in HLRBRep_Algo & co
TIMING - Detail GO spent: 0.130 millisecs in hlrToShape and BuildCurves
TechDraw::GeometryObject::addGeomFromCompound edgeCompound is NULL
TIMING - Detail DVP spent: 0.058 millisecs in GO::extractGeometry
TIMING - QGIVP::updateView - Detail - total 1.062 millisecs
TIMING - QGIVP::updateView - View - total 76735.317 millisecs
TIMING - QGIVP::updateView - View - total 78451.969 millisecs
TIMING - QGIVP::updateView - View - total 74730.030 millisecs
Save AutoRecovery file: Needed time: 313ms
TIMING - QGIVP::updateView - View - total 75828.555 millisecs
TIMING - QGIVP::updateView - View - total 77263.361 millisecs

Not sure if the reference to "...edgeCompound is NULL" is important or not.

Can anyone help Make TechDraw Usable Again? How do I troubleshoot this?

OS: Ubuntu 18.04.3 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.3.
Build type: Release
Python version: 3.6.8
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)

My PC isn't a screaming machine, but it's no slouch either - and it seems FreeCAD is limited to one core anyway so I'm not sure how much faster it would run on some the newer machines. In any case, it seems I should be able to put a few lines on paper without having to buy the latest computer.

Machine Specs:
Intel i7, 2 GHz
12 GB RAM
Kubuntu 18.04
nvidia graphics, proprietary drivers enabled.
User avatar
wandererfan
Posts: 3651
Joined: Tue Nov 06, 2012 5:42 pm

Re: Techdraw unusably slow...

Postby wandererfan » Sun Oct 13, 2019 3:24 am

rothloup wrote:
Sun Oct 13, 2019 2:50 am
TechDraw is unusably slow. Every button click or property update which results in a re-render causes FreeCAD to hang for 3 to 5 minutes.
Please post the FCStd file. Without it we're just guessing.
rothloup
Posts: 11
Joined: Thu Aug 28, 2014 12:18 am

Re: Techdraw unusably slow...

Postby rothloup » Sun Oct 13, 2019 4:26 am

ok, here is a sample file. This is actually one of the sub-assemblies in my larger assembly, but the lag is noticeable even on just this file.

On this file, I can drag the view around without a problem, but, for example, if I select the view and then click on the "Scale" property, the program hangs for a good 10-15 seconds. My top-level assembly is made of several such sub-assemblies, so the delay on my top-level assembly is much longer, on the order of 3-5 minutes as mentioned in my OP.

I forgot to mention in my OP that my A2Plus is at version 0.4.27.
Attachments
North East Array - 4P2P.FCStd
(307.08 KiB) Downloaded 15 times
User avatar
wandererfan
Posts: 3651
Joined: Tue Nov 06, 2012 5:42 pm

Re: Techdraw unusably slow...

Postby wandererfan » Sun Oct 13, 2019 4:57 pm

rothloup wrote:
Sun Oct 13, 2019 4:26 am
ok, here is a sample file. This is actually one of the sub-assemblies in my larger assembly, but the lag is noticeable even on just this file.
I don't know why yet, but if I get rid of the Part group, turn off face detection and don't include the "Quick_PVMounts", things are noticeable quicker.

Code: Select all

Part + Mounts
Log: TIMING - View GO spent: 1042.910 millisecs in HLRBRep_Algo & co
Log: TIMING - View GO spent: 18.306 millisecs in hlrToShape and BuildCurves
Log: TIMING - View DVP spent: 126.848 millisecs in GO::extractGeometry
Log: TIMING - View DVP spent: 11392.599 millisecs handling Faces  <<<<<<
Log: TIMING - QGIVP::updateView - View - total 249.665 millisecs

Part + Mounts - no face detect
Log: TIMING - View GO spent: 1051.473 millisecs in HLRBRep_Algo & co
Log: TIMING - View GO spent: 17.866 millisecs in hlrToShape and BuildCurves
Log: TIMING - View DVP spent: 130.276 millisecs in GO::extractGeometry
Log: TIMING - View DVP spent: 0.033 millisecs handling Faces  <<<<<<<<<<<<
Log: TIMING - QGIVP::updateView - View - total 197.177 millisecs

No Part, no Mounts
Log: TIMING - View GO spent: 262.916 millisecs in HLRBRep_Algo & co
Log: TIMING - View GO spent: 8.424 millisecs in hlrToShape and BuildCurves
Log: TIMING - View DVP spent: 22.591 millisecs in GO::extractGeometry
Log: TIMING - View DVP spent: 1550.945 millisecs handling Faces <<<<<<
Log: TIMING - QGIVP::updateView - View - total 9054.699 millisecs
Also, there seems to be something wrong with the PVMounts as they all fail Part.GeometryCheck.

Code: Select all

North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_ : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_001 : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_002 : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_006 : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_007 : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_008 : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_013 : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_014 : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
North_East_Array___4P2P_slowresponse_rothloup.b_Quick_PVMount_L_Mount_001_014 : Solid1 : Solid : Out Of Enum Range: 35 (BRepCheck)
Attachments
North East Array - 4P2P_slowresponse_rothloup_NoPartNoMount.FCStd
(304.36 KiB) Downloaded 9 times
rothloup
Posts: 11
Joined: Thu Aug 28, 2014 12:18 am

Re: Techdraw unusably slow...

Postby rothloup » Mon Oct 14, 2019 5:20 pm

wandererfan:

Thanks for pointing out the geometry problems. I've corrected them and made a few other improvements. My top-level assembly has now gone from 2.5 minutes per redraw to 1.5 minutes per redraw. It's a significant improvement, but still quite unusable.

Here is the full file. Please see if you can help any further.

Even when I use A2Plus Workbench feature "SimpleAssemblyShape". Drawing from that shape results in nearly the same performance.

https://drive.google.com/open?id=1M4fce ... XQFwh4E3Uk
User avatar
wandererfan
Posts: 3651
Joined: Tue Nov 06, 2012 5:42 pm

Re: Techdraw unusably slow...

Postby wandererfan » Wed Oct 16, 2019 12:39 pm

rothloup wrote:
Mon Oct 14, 2019 5:20 pm
Here is the full file. Please see if you can help any further.
I have yet to find any tricks that will help you right now.

A fix for this has been applied to the v0.19 and v0.18.4 master branches. Don't know when either will be available for download.