Previewing Solidworks files from Linux: Difference between revisions

From ASCEND
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
You can add very superficial viewing capability in Linux for Solidworks files.
This page gives some brief instructions on how to get basic preview support for Solidworks files in Linux. The instructions should work on any Freedesktop-based linux, eg Ubuntu, Fedora, etc.
 
Before you start, you will need to install some packages:
 
sudo apt-get install libgsf-bin imagemagick


Firstly, add a mime type, by creating a file <tt>$HOME/.local/share/mime/packages/x-solidworks.xml</tt>:
Firstly, add a mime type, by creating a file <tt>$HOME/.local/share/mime/packages/x-solidworks.xml</tt>:

Revision as of 14:23, 27 September 2014

This page gives some brief instructions on how to get basic preview support for Solidworks files in Linux. The instructions should work on any Freedesktop-based linux, eg Ubuntu, Fedora, etc.

Before you start, you will need to install some packages:

sudo apt-get install libgsf-bin imagemagick

Firstly, add a mime type, by creating a file $HOME/.local/share/mime/packages/x-solidworks.xml:

<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-solidworks"> 
  <glob pattern="*.sldprt"/>
  <glob pattern="*.sldasm"/>
  <glob pattern="*.slddrw"/>
</mime-type>
</mime-info>

Next, run update-mime-database $HOME/.local/share/mime

Check that your mime type is working with some solidworks file you have:

mimetype partfile.SLDPRT

and you should see application/x-solidworks in the output.

Next, add a thumbnailer for this type. First create the following script file and save it in /usr/local/bin/solidworks-thumbnailer:

Invalid language.

You need to specify a language like this: <source lang="html">...</source>

Supported languages for syntax highlighting:

a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn

Set the file executable:

chmod +x /usr/local/bin/solidworks-thumbnailer

Now associate this thumbnailer with the mime type, by creating a file $HOME/.local/share/thumbnailers/solidworks.thumbnailer:

[Thumbnailer Entry]
TryExec=/usr/local/bin/solidworks-thumbnailer
Exec=/usr/local/bin/solidworks-thumbnailer %i %o %s
MimeType=application/x-solidworks;

You need to restart Nautilus using nautilus -q. After that, you should be seeing little thumbnails for all your solidworks files, similar to below:

This tiny thumbnail is lower than the resolution embedded in the solidworks file. We can also set up a viewer so that the full resolution preview image is displayed.

Firstly, create /usr/local/bin/solidworks-viewer with the following content. Set the file to executable using chmod +x /usr/local/bin/solidworks-viewer.

Invalid language.

You need to specify a language like this: <source lang="html">...</source>

Supported languages for syntax highlighting:

a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn

Secondly, create a file $HOME/.local/share/applications/solidworks.desktop containing the following (and also set this file as executable):

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Exec=/usr/local/bin/solidworks-viewer %f
MimeType=image/x-solidworks;
Name=Solidworks Preview
Name[en]=Solidworks Preview
GenericName=Solidworks Preview
Comment=Solidworks Preview
Icon=solidworks
Categories=Education
StartupNotify=true

Next, update you desktop database using update-desktop-database ~/.local/share/applications/ and then add the following line at the end of your ~/.local/share/applications/mimeapps.list:

application/x-solidworks=solidworks.desktop;

You may need to restart nautilus again (nautilus -q), the a double-click on your solidworks file should pop up an image viewing window:

For some notes on possibly getting more information from these files, see here. Perhaps it might be possible to convert the solidworks file into some format that allows more detail to be visible. But that would be a much bigger job.