Jump to content

Sparkette

Members
  • Posts

    399
  • Joined

  • Last visited

  • Days Won

    28

Posts posted by Sparkette

  1.  

    I was actually working in 2013 at the time but have just checked 2018 and it is indeed in there. So it was obviously added after 2013.

    OK, thanks; I guess there probably isn't anything special that needs to be done then in order to enable it. Or is there some kind of special configuration you've done that might have enabled it?

    Weird how no one else seems to have noticed it, and also interesting that they'd add it now. Unless they didn't mean to put it in the released version :p

  2.  

    IC. I'll have a play around with the XML now that you have shown me how to do it (many thanks). Maybe I'm just being a bit OCD about it but once/if it's done, I won't have to revisit it anytime soon.

    I recommend selecting "Use Verbose Tagged Text" from the XML menu. Then it actually won't be XML you're editing, but something that's a lot easier to skim through.

     

    Wait, also how do we copy these?  I used the invoke node Move, with Duplicate set to True, but the object it creates has a 2px size not 0px.

    Odd. It worked when I tried it. What version of LabVIEW are you using?

  3. Well, I've attached some VI's with what I think are the splitter thing you're asking for, but it could be tricky to get it into a new VI for a similar problem to what I originally posted this thread about—except this time, while you don't need to open the context menu to copy/paste, you can't drag a box to copy a splitter, and also you can't put a splitter in a .ctl. (Well I actually managed to do so by hacking, but it didn't actually work to let you place it.) The only way I know of to copy the splitters out of these VI's are with scripting, using the "Move" method. Here you go though, in case you want to try. Oh, also, you can send me the VI you have and I'll probably be able to mod the splitters for you.

    Can you describe in more detail what you wanted with the array?

    Horiz Splitter.vi Vert Splitter.vi

    • Like 1
  4.  

    I'd be interested in a 1px border array and/or picture control if you're hacking them. The element separation on an array control is huge and annoying. Oooh. And a 0px separator or can make it transparent :):thumbup1:

    If @hooovahh's link doesn't suit your needs, I can take a look. I have a work-in-progress tool called VILab to do that kind of thing btw, though it's not quite usable yet (as in, most things just don't work at all). Until I finish that though, there's also my XML editing tool, in the same Github repo. It works by saving VI's to LabVIEW's undocumented XML save format, and lets you edit the raw data structures as XML. (Or Verbose Tagged Text, another format it supports that I think is easier to work with.) So you can try it yourself if you want, or again, I can try. It seems like the kind of thing I'd be able to do.

  5. Well yeah, the State Diagram Editor is what I was talking about before; that's the example I found in vi.lib. Though naturally I'm more concerned with figuring out how to make my own, and how to enable that option in the palette editor (even though somehow I already have it enabled.)

    Also there are in fact some VIM's there; that external node isn't one of them though of course. (And it really couldn't be; it grows to arbitrary size, has a dynamic number of terminals, and displays variable text on it. The only other thing they could use, barring adding a new primitive, is an XNode.)

  6. OK, just discovered something big! (Well, big as far as this mystery is concerned anyway.) I did a "dir /s *wiz*" in my LabVIEW directory, and found a folder called "ExternalEditors" in "resource\plugins". I put "<LabVIEW>\resource\plugins\ExternalEditors\StateDiagramEditor\StateDiagram.vi" in my palette and turned on that option, and yep, it worked.

    It's actually pretty interesting; it's a little graph editor thing that generates a state machine loop structure. And the structures have a little icon on them too showing they're still linked to the editor so you can open it again for further editing.

    And how do you open it again?

    ss_P81RMW.png.e8199725e726119ce52bdb534dabe60e.png

    So there's another mystery solved.

    This seems like it could be a real neat framework for creating custom stuff, as long as it doesn't end up crashing LabVIEW a bunch as unsupported features tend to do. I'll put something together to let you experiment with this in a bit, since I still have yet to figure out why I have that "external editor" option. (My LabVIEW installation that has this option happens to be in a VM though, so that might make it easier to figure it out.) I'll let you know when I figure out how to enable it. (Figuring out how to enable NI-internal features is nothing new for me, but it's strange actually having the feature enabled already while I try to figure it out!)

    EDIT: Okay, this is weird. That editor uses malleable VI's in its code, making me think this is pretty recent. But then, look what pops up in the generated code if you have more than one non-default state transition:

    ss_UGaoSz.png.d708cf6f71580b4784a72500d44a7908.png

    Yeah...if this was recent then I can't imagine they'd be using one of those. That's an External Node, for those who aren't familiar. That's what the ";D" prefix on the VI name means. No, really. External Nodes were NI's first attempt at creating, well, externally-coded block diagram nodes. The more modern, less buggy (but still unsupported) implementation of that, of course, is the XNode. (The link I posted before refers to XNodes, but I think that's what External Nodes were called before the new XNodes were a thing.)

    Now yes, VIM's existed in a semi-official capacity in earlier versions of LabVIEW as well. But they were implemented using XNodes, so I don't think they existed back when NI was still using External Nodes.

    This is really weird.

  7.  

    When you edit a palette set, there is an option of "Place VI Contents" when right clicking on a VI, which will drop the code contained in the VI rather than the VI itself (like a template). Maybe it has something to do with that.

    Yeah I know about that; I actually noticed it as I was turning that option on for something. I just tried it with both options enabled and it just places it with the contents, and nothing interesting is logged. I don't think it's related.

    Do you have the "VI is External Editor" option?

  8. When I'm editing a palette and I right-click a subVI on the palette, I get a context menu option called "VI is External Editor", one of the ones that you can select to check and uncheck it. When I turn it on for a subVI, it makes it so placing that subVI from the palette instead behaves as if I'm creating a structure, changing the cursor and allowing me to mark a rectangular area. But then nothing happens when I do; it doesn't place anything. One noteworthy thing I notice is that if I have the panel open for the subVI in question, I see the grid on the panel disappear for a split second, as if the VI is being locked for editing briefly (though this does not happen if I "create the structure" on that same VI.) In addition, the following text is appended to the gDPrintf log;

    Added MstrWiz
    
    gUnattended will cause VIs leaving memory during GetInstHandle to get saved automatically. This is dangerous.
    ### DoTransaction is aborting last transaction ###

    (In case anyone is curious where I see this text, I have a VI in my Tools menu that turns on the "gDPrintf mirror" using the "Call Internal Command" private method, and displays the logged text in a window. If anyone wants it, let me know and I'll attach it.)

    The "MstrWiz" part is interesting, because it brings to mind the fantastic-sounding "Master Wizard" class that shows up when you enable scripting, as well as some other stuff I've seen. Most relevant is the "External Editor Wizard" private method on block diagram refnums, and the scripting class of the same name, neither of which I've been able to figure out how to do anything with. (Though one of the properties on that class refers to a "master container structure", which is interesting because of the structure-like behavior.) It also reminds me of the mysterious Open Editor Wizard menu item string I found in the resource files. By the way, since a lot of this stuff is just scripting and not private, I figure someone will know something about it.

    What I find most strange however is the fact that I haven't seen any information about the "VI is External Editor" menu item. At first I assumed it was an NI-internal feature enabled by one of the various options I have turned on in LabVIEW.ini, but the option remained there even after temporarily renaming my LabVIEW.ini file to restore the default options. I even disabled a certain XNode development-related file I have installed (I'm sure some of you can guess) in case that was also enabling it but nope, still there. Does everyone else have this option? If not, does anyone know why I do? What is the option for?

    My guess (though it's just a guess) is that if the VI has the correct connector pane, I can drag that "structure" box around some stuff, and then it will run that VI to perform some scripting action on the selected objects.

  9. If I have an object selected, is there any way I can open the menu for that object without having to actually click on the object? I'd try using that menu key on the keyboard that no one ever uses, but my keyboard doesn't have that key, and the equivalent Shift+F10 doesn't work. The reason I need this is because I have a frameless cluster control I created, and with no frame to click, the only place LabVIEW detects a click is inside the cluster, and it just opens the palette menu when I right-click there. The only other thing I can right-click is the label, and that doesn't give me the menu I need. I can select the cluster itself just fine by dragging a box around it, but the context menu seems to be the only place to use certain options, and I can't figure out how to open the context menu without a place to click.

    If there is no shortcut to open the context menu on a selected item, is there a way to programmatically open the context menu on an object using its refnum? That way I could write a Quick Drop plugin to do it.

  10. Found this menu item listed in lvstring.rsc. Its tag is "APP_SC_OPEN_EDITOR_WIZARD". I did a Google search for "Open Editor Wizard" and nothing came up, and I tried using the "Invoke Menu Item" method on its tag but nothing happened. Is this some kind of internal NI thing? (And if so, does anyone mind saving me the trouble of unearthing whatever enables it?)

    I also found one called "Developer Tools", which looks interesting, but it could just be a normal feature somewhere I'm not remembering, especially because LabVIEW is itself a developer tool.

  11. 9 hours ago, Rolf Kalbermatter said:

    No idea how they did it specifically but as you saw in the other thread in lvdialog.rsc this frontpanels are simply dialog resources that can be loaded as templates by LabVIEW C code. There is a hidden File menu entry that allows loading these resources to edit them and technically they are VI Frontpanel resources. A neat way to use the already existing UI elements from the C code too.

    Wait really? I'm surprised I haven't found that menu item. How do you enable it? Or is it under an NDA that's still in effect from when you worked at NI? (In which case, I'll have to do some digging.)

    You know anything about those dialogs I posted the screenshot of in that other thread?

    EDIT: Oh hello what's this? ;)

    ss_oRVoXR.png.c55605d1790a20caa52ab30c03a7fd84.png

  12. 1 hour ago, Rolf Kalbermatter said:

    This is a reference to Monnie Anderson who worked at NI long long ago. Not sure where he is now.

    Yeah I figured; I saw a lot of references to him on Google and no one else named Monnie in relation to NI. Also naturally I assumed it was a woman, because Monnie is generally a woman's name--so much so that I accidentally typed "her" at first when replying to you 😆

    54 minutes ago, viSci said:

    along time ago I ran across an interesting paper by Monnie.

    https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=664322

    I used some of his ideas as the basis for this...

    http://viscience.com/blog/portfolio-3/

    Heartbeat1.gif

    I've actually seen that before, at the Maryland Science Center. You may remember my thread about it from a while back :)

  13. Few interesting things in lvdialog.rsc:

    ss_H0iu1t.png.8d2a4a38a38d5906328c600a2abb8bc2.png

    This file contains a good number of dialogs used by LabVIEW as VI files. None of them have block diagrams, probably because they're programmed directly in C. These three stood out as interesting, though they might not be at all. The dialog on the right, specifically, was listed under a name that suggests it's used for adding built-in functions to the palette. Perhaps some NI-internal feature just waiting for the right INI key or license?

    By the way, that weird "User Item" object placeable via scripting (or my Place By Style plugin, which I guess still counts as scripting) shows up here a lot, usually where images would show up. I guess it's a placeholder control that just does whatever the connected C code is programmed for.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.