Menu

Thank you! Awesome work!

MNTC
2020-08-06
2022-09-23
  • MNTC

    MNTC - 2020-08-06

    Just to say: thank you. It saves TONS of time and attenntion.
    Please keep development of this necessary application.

     
  • Oliver Hamann

    Oliver Hamann - 2020-08-06

    Nice to see there is one more user - thanks! Maybe you like to spend some stars? https://sourceforge.net/projects/eaglemode/reviews/

     
    • Tony

      Tony - 2020-08-22

      Gave also 5 stars, of course. Thanks!

       
      • Oliver Hamann

        Oliver Hamann - 2020-08-23

        Thank you!

         
  • MNTC

    MNTC - 2020-08-07

    Done!

    And let me offer some feature suggestions:

    1) While working with file hierarchies for big technical systems, EagleMode have nice and stramline opportunity for product data management without very huge and complex PLM software. May be it can be implemented as a plugin later (and may be I can even help with its development with my time or money as our small hi-tech startup company very need this kind of tool). ZUI with some file-based data management features can be serious alternative concept of PLM to common database-oriented systems (but it is not exclusible sets, database PLM with ZUI can be cool too but more complex to develop). The main advantages are simplicity (the key thing in PLM and system engineering), direct compatibility with manual file operations, natural hierarchy zooming and thus extreme ease of flexible tuning for any task. It can be serious competitor to systems like OpenPLM which is definitely cool, but even list of operations to install and set it up makes me afraid. If world will have PLM deployable in seconds like EagleMode does, I cannot imagine sysadmin using any other PLM. And as PLM offers great benefit to companies, they can will to assign resources to force development of EagleMode.

    If you are interested, I can try to write certain detailed proposal of primitive PLM plugin functionality.

    2) It is highly desirable to view FreeCAD and KiCAD files as image previews. FreeCAD has option to include thumbnail image to .FCStd files but now it is not acknowledged by EagleMode. I am sure it can be simple to add this feature as .FCStd is just an archive and may be this image simply lays there. As a new user of KiCAD I have less knowledge about its ways to obtain preview. The same is true for Archi Archimate diagrams.

    3) It can be useful to add switchable layers of arrows and links with names and properties to build graphs using as nodes files, directories, or arbitraru dummy shapes. There are many graph-based tasks which are extremely unconvenient to perform in their native non-ZUI software like Archi or Ideation workbench. This is other line of development of Eagle mode - towards universal graph engine absorbing many graph-oriented tasks from planning to data analysis.

    4) Zoomable space is cool feature. What about showing a real space with some astronomical package? I am sure somewhere is a file with known stars and planets coordinates data for any time. It does not look like computationally hard task to show them. But it can add not only aesthetic pleasure of seeing nice space, but cognitive pleasure of becaming famous with real space map. Especially if we consider it as futuristic interface. For convenience of setting some cosmic point of view as wallpaper there can be mode of space navigation while keeping panels in place.

    5) ZUI offers a practical way to work with big structures like biological, medical, molecular data. I wonder is there a way to use computer to make some machine zoomable from macro to interiors of integrated circuits and then to atoms. Like it is done now with software from folders to bytes. It is related to PLM topic and is probably about keeping and management of autogenerated and user-defined structures. For example one can draw 3D cube in CAD and assign that it is made of gold. Zooming in can show gold atom lattice. Then we delete or replace one atom with e.g. sulfur. And someway pointer to this certain place became being keeped in file to be found later. For example, modern tunneling microscopes allow imaging surfaces with subatomic resoluion (may be thousands of floating point values per atom) while being able to scan consequently large areas like square centimeters. Result is very large detailed map. There should be a way to work with such systems to zoom in certain point to retrieve and label this data. Should this kind of tasks use very big files or plenty of small ones?

    6) 3D. Can we use (today or tomorrow) VR or other 3D technology with EagleMode? Can be panels and arbitrary object placed and stacked in 3D? This looks as a pathway to not solved seriously for today problems of adequate GUI for designing and debugging complex 3D engineering systems with high density of components in multiple interconnected layers.

     

    Last edit: MNTC 2020-08-07
  • Oliver Hamann

    Oliver Hamann - 2020-08-08

    Thanks a lot for the stars!

    To your suggestions:

    1) A PLM plugin would surely be benefiting. Just convince an investor...

    2) If there are any command line tools which can convert those CAD files to svg or png or some other format that Eagle Mode can show, it could be easily solved using the emTmpConv plugin: http://eaglemode.sourceforge.net/AdvancedConfiguration.html#2 (emTmpConv is currently available on Linux/UNIX only, but a Windows port is under testing)

    3) Hmm, currently there is only the Bookmarks concept. It allows to address any point in the space.

    4) If I ever complete the Open Street Map plugin, maybe that could also be used for astronomical maps.

    5) Except when using a database, plenty of files would be better. Otherwise one would have to program the organization of large data trees in a single file on his own - which in the end would surely look similar to a database or file system.

    6) This could be something for version 2.0.

     
    • MNTC

      MNTC - 2020-08-14

      1) We are discussing it.
      2) A am trying to implement FCStd preview with TmpConv by making new function in emArch.sh (clone of zip unpack code extracting certain thumbnail.png from determined place of FCStd zip-archived file). And I call it from my emTmpConv_FreeCAD.emFpPlugin (clone of archive processing plugin). It works but picture is seen through "archiving tunnel". How can I show it as just png? How to apply emPng library to this extracted image?
      3) This is exactly what I was looking for.

       
  • Oliver Hamann

    Oliver Hamann - 2020-08-15

    First of all, your FCStd preview has two things you want to remove: The tunnel, and the directory entry panel around the picture ("Thumbnail.png"). The second one exists because your emTmpConv_FreeCAD.emFpPlugin creates a directory as the $OUTPUT and unpacks the thumbnail into it. Better is to let $OUTPUT be the png file directly. But then it cannot be named "Thumbnail.png". This can be solved, by unpacking into a private temporary directory and moving the unpacked file to $OUTPUT. Here comes an example. You just have to replace the line that starts with "unpackThumbnailPngIntoDir". The trap stuff is because the script can be terminated at any point when the user zooms away.

    #%rec:emFpPlugin%#
    
    FileTypes = { ".FCStd" }
    Priority = 0.5
    Library = "emTmpConv"
    Function = "emTmpConvFpPluginFunc"
    Properties = {
     {
      Name="OutFileEnding"
      Value=".png"
     }
     {
      Name="Command"
      Value="
       MYTMPDIR=
       cleanup ()
       {
        if test -n \"$MYTMPDIR\" ; then
         rm -f \"$MYTMPDIR/Thumbnail.png\"
         rmdir \"$MYTMPDIR\"
        fi
       }
       trap cleanup 1 2 3 13 15
       MYTMPDIR=$(mktemp -d)
       test -d \"$MYTMPDIR\" || exit 1
       unpackThumbnailPngIntoDir \"$INFILE\" \"$MYTMPDIR\"
       mv \"$MYTMPDIR/Thumbnail.png\" \"$OUTFILE\"
       rmdir \"$MYTMPDIR\"
      "
     }
    }
    

    Now to the tunnel: emTmpConv always displays the tunnel in order to visually solve the problem that there should be at most one file converted at a time, because a conversion can be quite expensive in time and space. For thumbnails like in your use case, this may not be true and the tunnel may be needless. I thought a while about this and I decided to add another property value which allows to shorten or remove the tunnel. I am already in a test phase for the next release, but it can still be included. So please wait, the solution will come soon.

     
  • MNTC

    MNTC - 2020-08-19

    Thank you. Trying to implement it.

    I modified unpack to allow second argument and added the next code block:

    #--------------------------------- unpack FCStd ----------------------------------
    *.FCStd|*.FCStd1)
    
    if test $TrustByOption != yes && test $Trust_unzip != yes ; then
        echo "Scanning archive listing for dangerous paths..."
        {
            unzip -l "$ArchFile" || SetErrorHint
            # for testing the test:
            # echo "/bla"
            # echo "../bla"
            # echo "1234 /bla"
            # echo "1234 ../bla"
            # echo "1234 bla/../bla"
        } | {
            egrep -v "^Archive:( |[[:space:]])*`echo "$ArchFile" | tr '\\\\^?*+|\!\$()[]{}' '.'`\$"
            case $? in
                0|1)
                    break;
                ;;
                *)
                    SetErrorHint
                ;;
            esac
        } | egrep "((^| |[[:space:]])(/|\.\./))|(/\.\./)" > /dev/null
        ret=$?
        CheckErrorHint
        case $ret in
            0)
                Error "$ArchFile looks like containing an absolute or up-going path."
            ;;
            1)
                break
            ;;
            *)
                exit 1
            ;;
        esac
        echo "okay, unpacking..."
    fi
    
    unzip -j "$ArchFile" thumbnails/Thumbnail.png -d $1
    
    ;;
    

    It works, creating desired file in specified directory. I call it this way:

    #%rec:emFpPlugin%#
    
    FileTypes = { ".FCStd" }
    Priority = 0.5
    Library = "emTmpConv"
    Function = "emTmpConvFpPluginFunc"
    Properties = {
     {
      Name="OutFileEnding"
      Value=".png"
     }
     {
      Name="Command"
      Value="
       MYTMPDIR=
       cleanup ()
       {
        if test -n \"$MYTMPDIR\" ; then
         rm -f \"$MYTMPDIR/Thumbnail.png\"
         rmdir \"$MYTMPDIR\"
        fi
       }
       trap cleanup 1 2 3 13 15
       MYTMPDIR=$(mktemp -d)
       test -d \"$MYTMPDIR\" || exit 1
       exec \"$EM_DIR/res/emFileMan/scripts/emArch.sh\" unpack \"$INFILE\" \"$MYTMPDIR\" > $HOME/mylog.txt
       echo conversion > $HOME/mylog.txt
       ls \"$MYTMPDIR\" > $HOME/mylog.txt
       mv -f \"$MYTMPDIR/Thumbnail.png\" \"$OUTFILE\"
       rmdir c
      "
      }
     }
    

    I can see successful output from exec \"$EM_DIR/res/emFileMan/scripts/emArch.sh\" unpack \"$INFILE\" \"$MYTMPDIR\" > $HOME/mylog.txt but... strings after it are never executed. What am I doing wrong?

     
  • Oliver Hamann

    Oliver Hamann - 2020-08-20

    Simply remove the word "exec". It means to replace the current shell and never returns.

     
  • Oliver Hamann

    Oliver Hamann - 2020-08-20

    0.95.0 is out and it casually allows you to get rid of the tunnel. See the TunnelFactor property in http://eaglemode.sourceforge.net/AdvancedConfiguration.html#2.2

     
  • MNTC

    MNTC - 2020-08-20

    Thank you! Now it works OK with tunnel but I have to get too close to see content (and this is already much better than opening every file). I plan to experiment with 0.95 soon.

    I tried examples, they look simple and encouraging.
    But I have not so much experience in C++ and while could made some experiments with TreeExpansion example modification, I did not figured out some questions:

    1) When children in this example are deleted: on application exit or on zoom out?
    2) How can I assign some custom properties to this items, e.g. random numbers?

     

    Last edit: MNTC 2020-08-20
  • Oliver Hamann

    Oliver Hamann - 2020-08-20

    1) Children are deleted when they are no longer displayed (zoom out or scroll away). The virtual AutoShrink method does that by default for children which are created in AutoExpand.
    2) You could extend the constructor arguments and member variables of MyPanel.

     
  • MNTC

    MNTC - 2020-08-20

    Now FCStd preview works good without tunnels. Added special image to show for files saved with no-thumbnail option. May be you would want to include it into future EM releases.

    #%rec:emFpPlugin%#
    
    FileTypes = { ".FCStd" ".FCStd1" }
    Priority = 0.5
    Library = "emTmpConv"
    Function = "emTmpConvFpPluginFunc"
    Properties = {
     {
      Name="OutFileEnding"
      Value=".png"
     }
     {
      Name="Command"
      Value="
       MYTMPDIR=
       cleanup ()
       {
        if test -n \"$MYTMPDIR\" ; then
         rm -f \"$MYTMPDIR/Thumbnail.png\"
         rmdir \"$MYTMPDIR\"
        fi
       }
       trap cleanup 1 2 3 13 15
       MYTMPDIR=$(mktemp -d)
       test -d \"$MYTMPDIR\" || exit 1
       \"$EM_DIR/res/emFileMan/scripts/emFCStd.sh\" unpack \"$INFILE\" \"$MYTMPDIR\" > /dev/null
        if test -f \"$MYTMPDIR/Thumbnail.png\" ; then
            mv -f \"$MYTMPDIR/Thumbnail.png\" \"$OUTFILE\"
        else
            cp -f \"$EM_DIR/res/emFileMan/scripts/emFCStd_nothumb.png\" \"$OUTFILE\" 
        fi
            rmdir \"$MYTMPDIR\"
        "
      }
       { Name="TunnelFactor" Value="0.0" }
     }
    

    Called emFCStd.sh script is a clone of emArch.sh with no restrictions on unpack argument number,listed before FCStd unzipping block and cleaned from operations with other archive types.

     
  • desmo5574

    desmo5574 - 2021-04-18

    Count me also as a happy user!! I love this file browser and the concept of a ZUI.
    I'm still trying to figure out how to change the applications in the bar as I'm a KDE user and don't use any of the stock applications. Other than that, Eagle Mode rocks!!
    Is there a way to donate?

     
    • Oliver Hamann

      Oliver Hamann - 2021-04-18

      Thank you very much! If you like, please spend five stars: https://sourceforge.net/projects/eaglemode/reviews

       
  • Th​​​​​

    Just here to say thank you
    for this tremendously innovative project!

    I've rated it five stars right away without any hesitation!

    For ease of use, I've started tracking changes from this repository
    https://github.com/thierrymarianne/contrib-eagle-mode, via this other repository
    https://github.com/Osndok/eaglemode tracking the project changes (popping around),
    which incidentally brought me back to a publication since deleted 🤯
    redacted publication
    which i might have not missed if had returned to the post from staltz.com author earlier,
    who originally drew some of my attention to Eagle Mode
    https://twitter.com/andrestaltz/status/1079829853548015616

    At the end of the day, I'm even more amazed
    at what you brought to us! 💙

     

    Last edit: Th​​​​​ 2022-09-22
    • Oliver Hamann

      Oliver Hamann - 2022-09-23

      Thank you very much!

       
      ❤️
      1

Log in to post a comment.