-
Posts
393 -
Joined
-
Last visited
-
Days Won
32
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by vugie
-
-
Will the default app instance work?
You can pull an app instance from a VI ref, but from inside the RCF I expect it would return the JKI.LV.Extensions context.
Thanks, asbo.
Antoine, try to replace following VI: [fix is now integrated in latest build]
However in my environment plugin VIs report to work in Main Application Instance...
-
- Popular Post
- Popular Post
Kind of experiment. More ore less successful up to now. I'm sure that many of us use Total Commander. I suppose also that - like me - many of us does not use LLBs and are sick when have to open something from it. Conclusion? Packer plugin for Total Commander. Surprisingly it appeared to be so easy that it is strange that such a thing does not exist yet (however the TC API is @%$#^%&@^%$...).
As for now plugin only supports viewing and copying from LLB
Short introduction video first. Please assume that title bar simply does not exist.
I'm not that drunken. Video recompression caused cursor shaking.
Because video is in Polish, some text instructions: do not extract downloaded ZIP manually. Just double-click it in TC, confirm few times and plugin should be installed. I configured plugin not to show an archive icons for LLBs. They have normal icons and standard behavior for double-click. You can browse them with Ctrl-PgDn. Normal copying from LLB is possible as for all other archive types. Please note that opening VIs from LLB is not possible. To be precise it is possible, but is not equivalent to doing so from Explorer, because TC extracts clicked file to temporary directory before opening it. So VI will loose its subVIs.
I include also the source. Dependencies (for the source only): vug_lib_memblock, oglib_file
Plugin is built with LV2009. So it require appropriate run-time engine.
[EDIT] Top level VIs are marked with "system" attribute (to distinguish them from the rest of VIs), so their icons are with "!"
[EDIT2] There is an open-source project Double Commander which claims to support Total Commander's plugins
- 3
-
One thing that bugs me a little though is that when I create a new plugin by using the context menu option "New Sandbox VI" the VI generated is in the JKI.LV.Extentions context and therefore not savable... wouldn't it be easier to place the new plugin in the main application context?
I guess it is possible to choose the context in which you create a VI, but I was wandering how do you create your own context programmatically?
Strange, I have no problems with saving VIs created that way. I have never dive deep into context related issues. I remember that there were some problems with RCF's context.
Any suggestions what should I wire to Application input of "New VI" block? Now there is a This Application constant.
-
I wonder who clicked green "+" without even downloading the code... (download counter is still 0).
Anyway, whoever did it, thank you
-
I had a situation where I needed something like this, however, I found a good G code solution. I had a dll call that would spawn a new thread, and return immediately. The spawned process would continuously put data into an array that was provided to the dll by LV. The problem was that LV would de-allocate/reallocate the array memory space after the subVI calling the dll completed. This of course causes memory corruption problems. The solution was to use an uninitialized shifter for the array, prefilled to the desired array size. This allows the memory space to remain open, and no corruption errors.
To make things clear - These functions ARE pure G code. Although they use Call External Function Node, as library path they use "LabVIEW" keyword - so they should work regardless of operating system. Of course there is question of "pureness" definition...
-
- Popular Post
Name: Scripting Sandbox (RCF Plugin)
Submitter: vugie
Submitted: 06 Dec 2010
File Updated: 03 Jan 2011
Category: VI Scripting
LabVIEW Version: 8.2
License Type: BSD (Most common)
Scripting Sandbox RCF Plugin
Copyright © 20010, Wojciech Golebiowski (vugie)
All rights reserved.
Author: Wojciech Golebiowski (w_golebiowski (at) tlen [dot] pl)
Name: Scripting Sandbox
Type: Right Click Framework Plugin
LabVIEW version: 8.2
Description
Scripting Sandbox is a simple Right-Click-Framework plugin for quick creating and using of flexible scripting VI's without implementing additional RCF plugin. In other words it's a plugin for making plugins which you don't want to distribute, but rather to use internally for work automation in quick and dirty way without any error handling etc. You simply define a directory for storing so called SandScript VIs. RCF menu is being updated according to the content of this directory. SandScript VI has to follow provided template. When you invoke certain script, RCF simply passes whole current "Active VI" cluster to it (VI state, panel and diagram references, array with selected objects and mouse position)
Installation
Preferably use VIP package and VI Package Manager. Alternatively download ZIP, extract to \resource\JKI\RCF\Plugins\ and restart RCF
Examples
Few example SandScript VIs are included in Scripts subdirectory. To see them working, copy them to your scripts directory (defined within RCF plugin options)
Support
If you have any problems with this code or want to suggest features:
please go to lavag.org and Navigate to LAVA > Resources > Code Repository (Certified) and
search for the "Scripting Sandbox" support page.
Version History
1.0.0:
Initial release of the code.
1.0.0.3: Not savable SandScript VI bug fixed
1.0.0.4: Some docs updated
License (BSD)
Copyright © 2010 Wojciech Golebiowski
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- 4
-
I reproduced this behavior. It seems that you use ClearType font smoothing. So there are gray levels in the image. Just modify the code in such way:
You can change font smoothing setting in Windows with Screen properties->Apperance tab -> Effects button -> Smoothing method->Standard (sorry, controls names may not be exact, because I translated them from localized system version).
BTW - it seems that Get Image method does not exist in 8.2 for anything but diagrams. If you want to make the code general, you should use Get Image of Block Diagram instead and trim it with Master Rectangle of structure
- 2
-
Awesome!
And it is now available for download
-
I'm stuck at this point. How can I save the image as a PPM format file?
PPM, PGM and PBM formats are veeeery straightforward:
-
BTW, those are not colors I'd use for a GUI...
Why not? They are so sweet...
-
Have you done anything with GOCR in LabVIEW? Do you have a sample?
Not in LabVIEW, but this is just calling an exe. So write file (PPM format), run exe, read file.
I made a quick try. For this image:
--------------
the output is
_ _1 ''Boolean'': mouse Leave _ _
For this:
---------------------------
[l]''Boolean'': mouse Leave
Probably with font definition would it would be better
[EDIT] Some problems with uploading. First image was whole the frame selector, and the second was selector with border and buttons stripped
-
For simple tasks I often use this command line OCR engine. Should be applicable here.
-
What's wrong with using "File>>Save For Previous Version"?
Few LabVIEW versionos between 8.0 and 2009 has possibility only to save one version before.
-
"I wonder what would happen if I put methane gas in a microwave and cook it for a while?"
Well, AFAIK methane has not any significant absorption peaks in microwave part of spectrum, so I don't suspect that anything bad would happen. At least unless there are no metallic objects with sharp edges, which cause sparking...
- 2
-
I just uploaded VIP package for 8.2
- 1
-
- Popular Post
- Popular Post
Name: MemBlock
Submitter: vugie
Submitted: 26 Nov 2010
File Updated: 03 Jan 2011
Category: General
LabVIEW Version: 8.2
License Type: BSD (Most common)
Author: Wojciech Golebiowski (w_golebiowski (at) tlen dot pl)
Name: MemBlock
Type: library
LabVIEW version: 8.2
Description
MemBlock is easy to use interface for internal LabVIEW memory manager functions (namely AZNewPtr, AZDisposePtr and MoveBlock from LabVIEW.dll). It allows for convenient work with continuous nonreallocatable blocks of memory) - allocating and dealocating blocks and write and read data to and from them. It is usable everywhere you deal with external DLL and you have to provide pointer to some data or read data from received pointer. Typical usage case is dealing with complex C structs containing pointers to arrays or strings.
Installation
Preferred way to install library is to use VIP package and VI Package Manager.
Alternatively library may be used after unpacking it anywhere on disk. However, it is most convenient to copy entire MemBlock directory to the directory \user.lib. After refreshing palletes (or LV restart), in the User Libraries, sub-palette "MemBlock" will appear.
Documentation
Descriptions of all VIs are available through the LabVIEW context help.
Support
If you have any problems with this code or want to suggest features:
please go to lavag.org and Navigate to LAVA > Resources > Code Repository (Certified) and
search for the "MemBlock" support page.
Version History
1.0.0:
Initial release of the code.
License (BSD)
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- 3
-
These are private methods (brown) that have not been released by NI, even with the scripting license released last year.
They are undocumented because they are for their internal use.
They might be relics that have been replaced by Tags, but that's just a wild guess.
Where did you get them? Scripting Workbench?
BTW, does anybody know how to prepare data files for Scripting Workbench for versions higher than 8.5? Just to know what new appeared.
-
InstallJammer - the most intuitive and friendly of free installers I have found. I had some strange issues when integrating LV created installers within the main build, but it was quite long time ago, so maybe they went away.
-
.. The second one gives me all the 'dialog' that show up but are not present as a vi. Well, they just consist of the FP, the terminals are not connected. Wonder if I could place some code there.
...
They may be templates for some xnodes. Putting code there could work, but his depends on how xnodes put their code into templates.
-
The latter. Or draw it using primitives. The other issue is how to keep it in the corner while user is rotating the model - I would like to have special billboard mode for this. Now you have to constantly change position of th axes to follow changes of viewport, or to implement your own controller which rotates and translates certain sceneobject (parent of model itself) and only rotates axes.
-
Monitor when "*" disappears from title bar of window which has a focus. Was there a "Modified" property of VI (or sth like this)? I can't check it now.
-
I uploaded the VIPM package (thanks Jim for resolving the building issue).
- 2
-
- Popular Post
- Popular Post
Name: lvODE
Submitter: vugie
Submitted: 03 Nov 2010
File Updated: 02 Mar 2011
Category: General
LabVIEW Version: 2009
License Type: Creative Commons Attribution-Noncommercial-No Derivative Works 3.0
Author: Wojciech Golebiowski (vugie), w_golebiowski at tlen dot pl
Name: lvODE
Type: Library
LabVIEW Version: 2009
Description
lvODE is a set wrappers, an interface to ODE (Open Dynamics Engine) library written in C and used to simulate dynamics of rigid body systems, including interactivity and in real time. In the present state lvODE allows you to use almost the full functionality of ODE in the LabVIEW environment using object-oriented programming (LVOOP). Such simulations may be used, among others, for programming the control systems of robots and manipulators (as well as in the control systems themselves, i.e. for trajectory planning), for development and testing of artificial intelligence systems, for modeling of complex mechanisms and other physical systems, etc.
lvODE is not a strict set of ODE wrappers. Although it uses the same concepts, the same terminology and most of the ODE functions are reflected, many of them have been grouped, data structures have been simplified, all in a user-friendly manner and taking into account specifics of LabVIEW environment. There are also few features not present in the original library which greatly facilitate programming – i.e. Object Manager. Further extensions (i.e. 3D Picture Control integration) are planned.
Short preview movie:
Briefly about the ODE
ODE is a free and widely-known library designed to simulate systems of rigid bodies. The programmer defines the layout of bodies, their physical parameters and types of connections between them, the role of the library is to calculate the forces acting in the system and to determine position and velocity of all bodies in the next time step, while satisfying all defined relationships. Programmer is able to interfere in simulation in full range while it goes on. It allows for the accurate analysis of its results (access to all the physical parameters) as well as programming any degree of interactivity. ODE is designed specifically to perform real time simulations – it uses a first order integrator (the procedure to solve a system of differential equations), which is a compromise between speed and accuracy. Results generated are not as accurate as they would be using higher-order integrators, but it is stable, fast and flexible.
The basic features of ODE include:
- Rigid body with arbitrary mass distribution
- Types of kinematic pairs (joints, constraints): ball, slider, hinge, suspension, universal (Cardan), linear and rotary actuators, contact, and combinations that are already listed
- Types of geometry used for collision detection: sphere, cube, cylinder, capsule, plane, ray, any shape in the form of triangle mesh, convex, heightfield
- Three types of spaces for fast collision finding
- Equations of motion derived using Lagrange multipliers
- Choice of integration method: the "full" method – slower, but more accurate, and quick iterative method
- An advanced model of contact and friction
Installation
The contents of the archive folder ("lvODE") should be extracted to directory \user.lib. After restarting LabVIEW the sub-palette "lvODE" appears in the User Libraries section, where all the necessary functions may be found.
Or use the VIPM package.
Documentation
The documentation is located in the subdirectory 'doc' and it consists of the following files:- ODE Manual.pdf - The original guide to the ODE. At least brief knowledge of it is necessary to understand the main concepts and mechanisms of library. Due to the use of the same terminology, it can also be a sufficient source to use the lvODE. The main difference from the original is the simplified naming convention.
- lvODE Class Hierarchy.pdf - graphical representation of a lvODE class hierarchy of classes library - not necessary to start programming, but it may help to understand certain concepts.
- lvODE Function Reference.pdf - a list of all public lvODE functions with descriptions and organized by class. Descriptions of the functions derive much of the original ODE manual, however, cover all the differences of the conventions and LabVIEW specifics. This document is definitely to be polished (better grouping, more detailed descriptions of each section, etc.)
- Files *. png - map of all pallets
An integral part of the documentation are also descriptions in of context help for each VI. In large part they fit the descriptions in the file "lvODE Function Reference". Private functions are documented as well.
Examples
Example applications are located in "examples" subdirectory. There are few examples with varying degree of complexity, and with comprehensive comments in the code. These examples, supported by context help and (in difficult cases), reading a few chapters of the original manual should be sufficient to start programming in lvODE.
Comments
lvODE is not a finished project. Once the ODE itself is still being developed, second, not whole its functionality is currently implemented in lvODE. The major differences include: no support for trimesh, heighfield and convex geometries, the lack of a 2D Plane constraint, lack of gyroscopic mode for the bodies, single precision floating point numbers only.
Few words about licensing. I publish lvODE under such a restrictive license (see below), because this is still experimental phase. I’ll appreciate any feedback which could help to make this library better and more stable. My further plans are to provide less restrictive free version and full-featured commercial one. Please contact me if you are interested.
Comments on this approach are also appreciated.
Version History
v0.1.0: Initial release of the code.
Support
If you have any problems with this code or want to suggest features:
please go to lavag.org and Navigate to LAVA > Resources > Code Repository (Certified) and
search for the "lvODE" support page.
License
This work is published under the Creative Commons BY-NC-ND license (description and text of the license here and in license.txt)
ODE library is distributed under BSD license (www.ode.org)
Copyright © 2010, Wojciech Golebiowski
- 9
-
And appeared again
LLB Plugin for Total Commander
in Code In-Development
Posted
TC API does not support such functionality. Other methods (such as activity monitoring) are not worth en effort.