DE
Joined: Nov 19, 2023
Post Count: 11
Status:
Offline
Re: Furniture Library Editor released
I am trying to add/remove furniture from the library and followed the instructions in the initial post.
- moved Furniture.jar from C:\Programme\Sweet Home 3D\lib to different directory - made some changes to the file with the editor . opened SH3D and imported Furniture.jar.sh3d
Is it correct that no new Furniture.jar will be created in the \lib\ directory, but the imported file is saved in C:\users\xyz\Sweet Home 3D\furniture?
If so, will I need to remove that one before making further changes?
Also, there were many items missing in Furniture.jar, like outlets etc. How can I change those ones?
France
Joined: Nov 7, 2005
Post Count: 9430
Status:
Offline
Re: Furniture Library Editor released
opened SH3D and imported Furniture.jar.sh3d
Guess you meant "imported Furniture.jar.sh3f" or "imported Furniture.sh3f".
Is it correct that no new Furniture.jar will be created in the \lib\ directory, but the imported file is saved in C:\users\xyz\Sweet Home 3D\furniture?
Imported libraries are saved in C:\Users\xyz\AppData\Roaming\eTeks\Sweet Home 3D\ furniture
If so, will I need to remove that one before making further changes?
Not necessarily, as long as you keep the same file name, the imported library will be overwritten. No need to relaunch Sweet Home 3D too, unless you directly edit the files found in C:\Users\xyz\AppData\Roaming\eTeks\Sweet Home 3D\ furniture
Also, there were many items missing in Furniture.jar, like outlets etc. How can I change those ones?
You can merge this library with other libraries found at 3D models import page, using the button showing a + sign. You can also simply import these libraries without creating a larger library.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
DE
Joined: Nov 19, 2023
Post Count: 11
Status:
Offline
Re: Furniture Library Editor released
Thank you for quick clarification.
Is it correct that no new Furniture.jar will be created in the \lib\ directory, but the imported file is saved in C:\users\xyz\Sweet Home 3D\furniture?
Imported libraries are saved in C:\Users\xyz\AppData\Roaming\eTeks\Sweet Home 3D\ furniture
FYI - On my system (Win 11) it is not under \Appdata\..., but in C:\users\xyz\eTeks\Sweet Home 3D\furniture\
Canada
Joined: Dec 7, 2023
Post Count: 6
Status:
Offline
Re: Furniture Library Editor released
Emmanuel, (Or anyone else) What where is the latest version of the Furniture editor? Has it been bundled in an installer, or is it installed using a java script?
France
Joined: Nov 7, 2005
Post Count: 9430
Status:
Offline
Re: Furniture Library Editor released
Last version is currently 2.0, available here and is still a JAR executable file requiring that you install Java or that you reuse the java executable bundled with Sweet Home 3D installer.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
US
Joined: Jul 20, 2019
Post Count: 3
Status:
Offline
Re: Furniture Library Editor 2.0
Thank you for the update.
After edits are made I save to new file. Delete program files from user. Install the new sh3f file.
*** Shows multiple folders (categories) with my files, although I have saved them as only one category. Names are not changing. (oven, oven = oven 1, oven 2) ***
Is this a bug or are files somehow marked not to move from category?
Netherlands
Joined: Apr 8, 2022
Post Count: 1450
Status:
Offline
Re: Furniture Library Editor 2.0
Found a little glitch: The column Model Size doesn't order according to the model sizes.
---------------------------------------- Dodecagon.nl 1300+ 3D models, manuals, and projects
France
Joined: Nov 7, 2005
Post Count: 9430
Status:
Offline
Re: Furniture Library Editor 2.0
Thanks for reporting this issue. It will be fixed in the next release.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
United States
Joined: Apr 2, 2024
Post Count: 2
Status:
Offline
Re: Furniture Library Editor 2.0
Downloaded the latest version and seem to be having a problem when trying to load my library. Going back to version 1.28, I'm having the same problem, so it may have something to do with Java. When I click Open Library, the load dialog is very slow and I can't change directories. If I click on Import Furniture, no dialog box comes up at all. I ran the program from the console and generated the following log file:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(Unknown Source) at java.util.ComparableTimSort.mergeAt(Unknown Source) at java.util.ComparableTimSort.mergeCollapse(Unknown Source) at java.util.ComparableTimSort.sort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at sun.awt.shell.Win32ShellFolderManager2.get(Unknown Source) at sun.awt.shell.ShellFolder.get(Unknown Source) at com.sun.java.swing.plaf.windows.WindowsFileChooserUI$DirectoryComboBoxModel.addItem(Unknown Source) at com.sun.java.swing.plaf.windows.WindowsFileChooserUI$DirectoryComboBoxModel.access$800(Unknown Source) at com.sun.java.swing.plaf.windows.WindowsFileChooserUI.doDirectoryChanged(Unknown Source) at com.sun.java.swing.plaf.windows.WindowsFileChooserUI.access$1100(Unknown Source) at com.sun.java.swing.plaf.windows.WindowsFileChooserUI$11.propertyChange(Unknown Source) at java.beans.PropertyChangeSupport.fire(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.awt.Component.firePropertyChange(Unknown Source) at javax.swing.JFileChooser.setCurrentDirectory(Unknown Source) at sun.swing.WindowsPlacesBar.actionPerformed(Unknown Source) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JFileChooser.showDialog(Unknown Source) at javax.swing.JFileChooser.showOpenDialog(Unknown Source) at com.eteks.sweethome3d.swing.FileContentManager.showFileChooser(Unknown Source) at com.eteks.sweethome3d.swing.FileContentManager.showOpenDialog(Unknown Source) at com.eteks.furniturelibraryeditor.FurnitureLibraryEditor$1.showOpenDialog(Unknown Source) at com.eteks.furniturelibraryeditor.viewcontroller.EditorController$2.run(Unknown Source) at com.eteks.furniturelibraryeditor.viewcontroller.EditorController.open(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.eteks.sweethome3d.swing.ControllerAction.actionPerformed(Unknown Source) at com.eteks.sweethome3d.swing.ResourceAction$AbstractDecoratedAction.actionPerformed(Unknown Source) at com.eteks.sweethome3d.swing.ResourceAction$AbstractDecoratedAction.actionPerformed(Unknown Source) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
France
Joined: Nov 7, 2005
Post Count: 9430
Status:
Offline
Re: Furniture Library Editor 2.0
This must be due to a bug in Java, but it should be fixed in the coming version of the editor. Meanwhile you should run the editor from the command line to define the java.util.Arrays.useLegacyMergeSort to true, with a command of the form: