LDraw.org Discussion Forums
LPub3D 2.0 Released - Printable Version

+- LDraw.org Discussion Forums (https://forums.ldraw.org)
+-- Forum: LDraw Programs (https://forums.ldraw.org/forum-7.html)
+--- Forum: LDraw Editors and Viewers (https://forums.ldraw.org/forum-11.html)
+--- Thread: LPub3D 2.0 Released (/thread-21596.html)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21


LPub3D 2.0 Released - Trevor Sandy - 2016-06-23

Greetings,

Today I released LPub3D 2.0.1 

You can download this release from sourceforge.net or check for updates in your existing installation.

There is a long list of enhancements and fixes - see change log below - some significant ones are:

- Rendering performance improvement with both LDView and LDGlite
- Callouts are now freely movable on multi-step pages
- All reproducible issues have been corrected - they were quite a few of them from legacy LPub
- Platform upgrade to Qt 5.6 (MSVC 2015) which will position the application for better maintenance and evolutions going forward.

 Screenshot:
[attachment=2338]

Change Log:
 
LPub3D 2.0.1.717.2

Features and enhancements
------------
-Known Issue: Storing and retrieving the screen pos[ition] setting on multi-screen platforms causing a crash on startup. This feature has been disabled for the moment while I investigate. This unexpected behavior was introduced with the new version of Qt (development platform). The change you will notice is that the application will no longer start on the screen you closed it on last. Instead, it will will always start at x200 y200 on the main screen. Of course this issue is only related to multi-screen platforms. (r718)

LPub3D 2.0.1.717.2

Features and enhancements
------------
-Fix: In support of archive library move to AppData (see r707), the installation process will delete the 'old' LDRaw library archive directory even if it is actually the new directory. For example this can be reproduced if one attempts to reinstall LPub3D where the actual 'old' directory would have been deleted during the initial installation. The installation will now compare the 'old' directory to the new one and present the user the option to delete if the comparison does not match. (r715)
-Fix: At application launch, the 'Check for updates' does not detect the installed version. As a result, if the user performs a check for update or update checks are set to automatic, the user is presented with a message dialog stating a new update version is available when in fact this is not the case. The correct message dialog is now presented. Runaway eventloop when newest version is same as installed version. (r716)

LPub3D 2.0.0.714.2

Features and enhancements
------------
-Up to 60 percent increase rendering speed with configuration to render multiple files using a single call to LDView.
*All PLI (part list/BOM) parts for a given step are rendered in a single call versus individually. For CSI (Step models), all multi-step images on a page are rendered in a single call including callout(s). Single step page images are rendered with a single call for all model images including those in callout(s). This new configuration will default as checked in the preferences dialog.
*To achieve this behavior, input files (csi.ldr, pli.ldr) are now uniquely named because rendering multiple files is done by using -SaveSnapshots=1 instead of -SaveSnapshot=somefile.png and then listing all the LDR files at the end of the command line. There is no control over the output file names. Instead, LDView will automatically use the input base filename changing only the output filename extension from .ldr to .png.
*Enabling this feature is optional and can be selected on the Configuration/Preferences/Rendering tab by checking the box 'Use multiple files single call rendering' in the 'LDView is installed' group box. LDView must be installed and configured to enable this option.
*Notice: As this feature required a significant rewrite of the core image generation logic, it is likely to generate some unexpected behavior as not every scenario has been tested. Please report any unexpected behavior. Contact details can be found under the Help/About menu.
-Move LPub3D Ldraw archive libraries to AppData and rename unofficial library to lpub3dldrawunf.zip (r707)
*Archive libraries loaded automatically by ldraw during ldraw installation and is also distributed with portable media
*Archive libraries stored in user data (i.e. on Windows user/AppData/Local/Lpub3D Software/Lpub/libraries)
*LPub3D does not use parts from LDraw directory and ldconfig will fallback to the imbedded resource version if no LDraw directory is detected (This feature is not yet fully enabled. It is targeting a future enhancement)
*With exception of 'p' and 'parts', parts stored under .\LDraw\Unofficial are automatically added to lpub3d archive during application startup
*Lpub3d expects the official and unofficial library archive in the same directory.
*Lpub3d will prompt for archive file on startup if none is detected in the default expected location - this feature is targeted to support portable media and repackaged distributions (i.e. AIOI installations)
*If portable media installed in Program Files/(x86) folder, LPub3D will warn that it cannot place writable files at the default data location (folders under the installation directory) because UAC will prevent update access. This is useful for repackaged distributions (i.e. AIOI installations)
-Multi-step callouts are now movable (r656)
*Callouts on multi-step pages are now freely movable on the page.
-Add menu option to download official LDraw archive - unofficial archive was already available in v1.3.5 (r708)
*You can refresh both your official and unofficial LDraw library archives from the UI - As you may see from reading the change log, the aim is to over time allow LPub3D to be completely autonomous while maintaining it's ability to detect and consume unique and individual LDraw environment configurations.
-Add callouts, refactor and optimize LDView single call image generation, see r683,r684,r685 (r698)
*The LDView 'Single Call' rendering performance improvement will address parts list and model rendering for single step page, multi-step page and callouts - including divided pages/callouts. For example, a callout with 6 models, divided into 3 sections will send a single call to LDView to render all 6 model (CSI) images.
-Add progress bar to mpd/ldr file load (r690)
*Users can now see the progress of loading models. This is particularly useful for large models or models which include a large number of lines due to generated flex-parts etc...
-Enable 'Use multiple files single call rendering' for LDView from Preferences/Rendering/LDView is installed/Use Multiple files single call rendering. (r687)
*LDView 'Single Call' rendering performance improvement can be selected or unselected from the preferences dialog. Although I tested the as many scenarios as I can think of. If this new feature encounters some unique model file configuration that causes unexpected behavior, the user can revert back to the legacy functionality if s/he so desire.
-Increase PLI (Part list/BOM) and CSI (Model) rendering speed with LDView using -SaveSnapshots=1 (r683/r684/r685)
*'Single Call' performance improvement for LDView
-Redesign software and library update functionality (r710)
*Update architecture improved to allow archive library download during installation if no library is defined. This feature is positioned for mobile/packaged distributions (i.e. AIOI) distributions.
-Display application load progress during splash screen display (r676/r709)
*User can follow the application loading progress during startup launch
-Add context menu to pages without steps - e.g. Cover Page, BOM Page (r681)
*Pages without steps (e.g. Cover pages, BOM pages etc.) can be modified using the context menu. For example, to change background colour.
-Add missing context menu icons (r680)
*Small beautification enhancement - all context menu items now show a representative icon - this can be helpful when generating user guides for example.
-Suppress rotateIcon context menu item if rotate icon already inserted for step (r670)
*If a step already has an inserted rotate icon, the page/callout context menu will not present the option to add a rotate icon. Note: The option to delete a rotate icon presents from the context menu of the rotate icon itself and not from the Step/Callout's context menu.
-On a single-step page, place PLI (Parts List) on top of CSI (Model) images (r664)
*If a CIS (model) overlaps the PLI (parts list) the parts list will be presented on top so the instructions consumer can see all the parts implicated for the step presented. The reverse was previously the case.
-Upon reset image and model caches, reload current file, return to first page (r663)
*Reset cache options which clears all cache components (ldr, images, 3D views) will also reset the loaded file to the first page.
-Unique splash 3D model displayed during pdf printing, png, jpg and bmp image export (r657)
*Updated the 3D Viewer splash to reflect the format of output being generated - so an image depicting a pdf file will show when generating a pdf file and so on...
-ldglite update to 1.3.1 executable with -2g,2x option hardcoded for sharper images with offscreen rendering (r655)
*Incorporated the new ldglite renderer with 2x sampling for improved image quality
-Disable Clear Cache menu button when no file is loaded (r686)
*Just a little poka yoke. The cache locations are specific to the file loaded, so it does not help to have this button active when no file is loaded.
-Force to empty the cache before creating a PDF (r654)
*Added option to empty the image ldr and image cache before printing. With this feature the user can select the option on the print configuration dialog to clear the cache and regenerate images as the print/export job executes.
-Synchronize 'prev', 'next' and 'goto' page menu items (r653)
*User can enter directly any page number within range into the menu dialog. Clicking either the Previous or Next button will navigate to the page indicated regardless of if the page is the next increment backward (for Previous) or forward (for Next) or a page further backward or forward. The user can still hit the enter key to navigate to the indicated page - if not the current page of course.
-Suppress rotateIcon from CSI (model) item context menu if we have a callout and the callout assembled (r652)
*The menu option to insert a rotate step icon is not presented for assembled callouts.
-Select local page size and global and local page orientation - Portrait and Landscape (r518)
*Note: When manually editing the model file with either page size or orientation, it is recommended to insert both the size and orientation metas together. For example, even if you are only interested to add a page size, you shold update your file like the example
below - obviously selecting your own size values and orientation.
0 !LPUB PAGE SIZE GLOBAL 8.2677 11.6929
0 !LPUB PAGE ORIENTATION GLOBAL PORTRAIT
-Change: Page background context menu rearranged. "Change page background" and "Change Page Size or Orientation" now appear at the end of the menu list because they are likely to be least often used. (r641)
-Change: Point online manual to LPub3D content - was previously pointing to legacy LPub (r517)
-Refactor: Move library archives to AppData stabilization and robustness (r711)
-Refactor: Optimize fadeStep routines; change LDView logging details (r695)
-Refactor: Replace 0x050000 with QT_VERSION_CHECK(5,0,0) (r660)
-Refactor: Remove stretch/tile logic from coverImage management (r659)
-Refactor: Update CSI image mousePressEvent logic. (r640)
-Refactor: Update file load progress messages (r636)
-Refactor: Rearrange printToPdfFile page count (r632)
-Update: Clear 3D Window when there is no model to display - e.g. for cover or inserted pages (r701)
-Update: Set download dialog header to Library Updater when downloading library - otherwise Software Updater (r700)
-Update: AboutDialog window recognizes and displays Win 10 and OSX El Capitan(r665/r668/r669)
-Update: ldglite hard-coded default directory setting to ldglite1.3.1(r623)
-Update: 3DViewer minifig settings moved to ini file - LeoCAD Changeset 1870 (r617x)
-Fix: No image after initial generation when renderer other than LDView selected (r704)
-Fix: Set ldr load file to unofficial item by default (r691)
-Fix: Load inline submodels break (r688)
-Fix: Remove libpng warning: iCCP: known incorrect sRGB profile (r678)
-Fix: Convert special characters (copyright and trademark) from Wide Char to UTF8 for MSVC build (r677)
-Fix: Remove final colour model if exist when Fade Step is not enabled (r674)
-Fix: Clear cache when turning fade on/off (r674)
-Fix: FadeStep and preferCentimeter setting mixmatch (r674)
-Fix: Search directories not updated when directory added to Ldraw.ini (r673)
-Fix: When background is transparent context menu functionality is lost (fix is a hack which sets the bg-color to white with an alpha of 1.) (r672)
-Fix: When a CALLOUT allocation is changed, if you right-click a model in the callout and not the callout itself, the ALLOC meta is placed after the CALLOUT END and has no effect - meta appended but should be inserted (r650)
-Fix: Converting an assembly to a part results in a parse error when there are spaces in the file name (r649)
-Fix: If a divided STEP GROUP allocation is changed from vertical (Display as columns - default) to horizontal (Display as rows), selecting again Display as columns has no effect - meta appended but should be replaced (r648)
-Fix: When the "Redraw" icon is clicked on the LDraw File Editor window, the file editor resizes to 255x190 pixels (r647)
-Fix: Split BOM duplicates one part onto current and subsequent BOM pages (r646)
-Fix: Inserting a front cover page when the current first page is a multi step page (r645)
-Fix: Bug when using callouts in Multistep sequences. When you place your callout right from assembly, it appears on the left side. When you place your callout bottom, it appears on the top. (r643)
-Fix: wrong text when you export to PNG the window title says "Print to pdf" (r638)
-Fix: When publishing instructions with the option 0 !LPUB PAGE BACKGROUND TRANSPARENT a drop shadow layer was added (r637)
-Fix: Remove -w1 from default ldglite parms (r629)
-Fix: Periodic multi-step crash - 3DViewer image file line number mismatch (r628)
-Fix: Control manual page number entry (r627)
-Fix: Cleanup 'Copyright' and 'Trademark' unicode (utf8) chars on MSVC2015 build (r622)
-Fix: QPainter alphaChannel management - use setCompositionMode (r619/r620)
-Upgrade: With upgrade to Qt5x, moved to MSVC 2015 release builds to continue providing x85 and x64 builds as MinGW does not officially support x64 on Windows
-Upgrade: Updated development platform to Qt 5.6.1 (MSVC 2015) (r613)
-Upgrade: Updated Qt logging framework from Qt4x to Qt5x (r610)
-Upgrade: Updated development platform to Qt 5.5.1 (MinGW) (r608)
-Upgrade: Updated development platform to Qt 5.5.1 (MinGW) (r608) 


RE: LPub3D 2.0 Released - Merlijn Wissink - 2016-06-23

Very, very nice Trevor!
I'll take a better look at the changelog and the new version itself later today, but it all sounds great (especially the speed improvement and the local page orientation).

Great work!  Big Grin


RE: LPub3D 2.0 Released - Philippe Hurbain - 2016-06-23

Wow! impressive changelog!!! - with many nice features Wink
Another good thing is that the installer does no longer trigger Avast...
...but after installation (win7/64b) I get a message about missing MSVCP140.dll.


RE: LPub3D 2.0 Released - Trevor Sandy - 2016-06-23

(2016-06-23, 11:07)Philippe Hurbain Wrote: Wow! impressive changelog!!! - with many nice features Wink
Another good thing is that the installer does no longer trigger Avast...
...but after installation (win7/64b) I get a message about missing MSVCP140.dll.

Ah yes. welcome to .dll hell  Big Grin 

I suspected there will be some dll backward compatibility issues as I am building and testing on Windows 10. 

I will rebuild the distributions with all needed runtime dlls statically linked. This solution should prevent the behavior you experienced but I'm not certain for all platforms.

Cheers,


RE: LPub3D 2.0 Released - Trevor Sandy - 2016-06-23

(2016-06-23, 13:41)Trevor Sandy Wrote:
(2016-06-23, 11:07)Philippe Hurbain Wrote: Wow! impressive changelog!!! - with many nice features Wink
Another good thing is that the installer does no longer trigger Avast...
...but after installation (win7/64b) I get a message about missing MSVCP140.dll.

Ah yes. welcome to .dll hell  Big Grin 

I suspected there will be some dll backward compatibility issues as I am building and testing on Windows 10/Microsoft Visual Studio 2015. 

I will rebuild the distributions with all needed runtime dlls statically linked. This solution should prevent the behavior you experienced but I'm not certain for all platforms.

Cheers,

BTW, another solution to this behavior is to manually install the Visual C++ Redistributable for Visual Studio 2015.

Cheers,


RE: LPub3D 2.0 Released - Philippe Hurbain - 2016-06-23

Quote:BTW, another solution to this behavior is to manually install the Visual C++ Redistributable for Visual Studio 2015.
Yup, this dll got out of hell... but now I get the failure below (and no, reinstalling doesn't fix).


RE: LPub3D 2.0 Released - Trevor Sandy - 2016-06-23

(2016-06-23, 15:20)Philippe Hurbain Wrote:
Quote:BTW, another solution to this behavior is to manually install the Visual C++ Redistributable for Visual Studio 2015.
Yup, this dll got out of hell... but now I get the failure below (and no, reinstalling doesn't fix).

Interesting - I thought I configured a clean deployment environment and I did not see any dependency on this platform plugin. Anyhow, I'm not surprised as this was required (albeit under a different name) with Qt4x distributions.

Ok so perhaps you can help me figure out the missing dependencies on your platform.

0. Prerequisite: Visual C++ Redistributable for Visual Studio 2015 installed.
1. Download a portable distribution of LPub3D i.e. LPub3D_x64-2.0.1.717.2_20160623.zip
2. Extract it to your C:\ so as to have C:\LPub3D_x64\*
3. Extract and add the attached .dll qwindows.zip into to platforms subfolder so as to have C:\LPub3D_x64\platforms\qwindows.dll
4. Try to launch and let me know if you receive other dependency prompts or if successful to launch

Attachment:
[attachment=2341]

If you want to try with x32 you'll need to use the designated distribution and designated dll - also attached.
[attachment=2342]

Cheers,


RE: LPub3D 2.0 Released - Trevor Sandy - 2016-06-23

(2016-06-23, 6:51)Merlijn Wissink Wrote: Very, very nice Trevor!
I'll take a better look at the changelog and the new version itself later today, but it all sounds great (especially the speed improvement and the local page orientation).

Great work!  Big Grin

Many thanks Merlijn ! 

If you don't mind please let me know if you encounter any unexpected behavior.

As LPub3D 2.0 was ported to Qt 5.6 and from MinGW to MSVC 2015 means there is a significant possibility for platform and compatibility issues with legacy platforms (WinXP, Win7, Win8 etc...).

I will try to solve any reported issues as soon as I can.

Cheers,


RE: LPub3D 2.0 Released - Merlijn Wissink - 2016-06-23

I had the same issue as Philo (windows platform issue).
After following your steps, it kinda works. It mostly crashes directly after the splash-screen, but sometimes it does start up...


RE: LPub3D 2.0 Released - Philippe Hurbain - 2016-06-23

Got back home, so I try on another machine (win7 home 64b). Here I had trouble installing VCredist (it says that it failed but seems installed nonetheless) so maybe part of the issues comes from that. When I launch LPub3d I get another missing DLL: api-ms-win-crt-runtime-l1-1-0.dll