Jump to content

Sparkette

Members
  • Posts

    399
  • Joined

  • Last visited

  • Days Won

    28

Everything posted by Sparkette

  1. In that case I'm hoping for 2020, because what you're saying makes it sound like SP1 would mean the stuff I'm asking for isn't there.
  2. How long do these things usually take to go through? Is this likely to be in LV 2019 if it's accepted? Or more likely not until 2020? (or later?)
  3. Yeah but I want the best of both worlds, extending existing controls while also being able to use it via just a block diagram terminal. Also I'd like something I can put in an array or cluster; XControls can't do that and I don't think QControls can either. I've actually been meaning to see if I can figure that out, lol. I already know how you would load a control from a DLL: there's a hidden "Plug-In Control" object that, when placed via scripting or a modified palette, allows you to load a DLL from the context menu. You can place it via my Place by Style Quick Drop plugin. Incidentally an uninitialized plug-in control is the only way I know of to get a control with "void" as its type. (And I don't mean empty clusters or void arrays.)
  4. Wow, I love that idea, and it's great to see there's already an NI employee on board with it. I posted a comment on it; I'll quote it here:
  5. Yep. What do you mean specifically? Very observant! This is making use of an obscure, probably unsupported feature in LabVIEW called an "External Editor Wizard". The only official one that exists to my knowledge is the State Diagram Editor, which works similar to the Statechart Module (which, incidentally, is what the functions supporting the editable embedded diagram were built for) but it has fewer features and is available for free. The way External Editor Wizards work is you place one from the palette, and draw a box like with a structure. Then a VI generates some stuff with scripting, and it opens an editor to manipulate the code. You could call it a type of "Express Structure"—it works like an Express VI, with how you can configure it, except it exists as multiple objects in a structure on a block diagram, instead of as a single node. From what I can tell, the structure can be of any type, except a Flat Sequence Structure, as for some reason that doesn't descend from the Structure class. (I'm using a stacked sequence here, as with only one frame it looks and acts identically.) It appears that this feature was never intended to be used for anything other than the State Diagram Editor, as if I right-click the structure and select Properties, it tells me I can't edit the properties because the structure was created by the State Diagram Editor. As it happens, I think I actually thought of a better way to get this same functionality, that doesn't even rely on anything unsupported. So I'm probably just going to do that. I'll still release this (incomplete) version when I get home from work though, just so you all can see how it works.
  6. https://gfycat.com/formalgentlelemming Not this particular use of it of course, but just in general. Sorry the cursor isn't there; you can still easily see what's going on though. EDIT: I rewrote this as a shortcut menu plugin that just opens a regular block diagram window: Here's the old version in case anyone wants to play around with the External Editor Wizard stuff, or my subpanel diagram code: Old AHS Editor.zip
  7. Wouldn't it be convenient if there was something like a structure you could place, where you could open a window with a temporary block diagram to do some random VI scripting you'll only need once?

  8. Just pretend it means you're one of the Knights. :p
  9. From old URL's like this one for instance: http://forums.lavausergroup.org/index.php?showtopic=1524 It's not on archive.org. I figure it's safe to assume the staff wouldn't have deleted all the old stuff, so where is it?
  10. There's a private method on the Application class called Enable External Proptypes, that has a single Boolean "Enable" input. The description says "Enable or disable external G-based proptypes call". That sounds interesting; it makes me think perhaps it's another hidden, likely-buggy method for doing internal LabVIEW stuff in G, like XNodes/External Nodes, or External Editor Wizards (like the State Diagram Toolkit.) I'm pretty sure "proptypes" is an abbreviation referring to type propagation, so that could be fun to mess with. Anyone have any ideas?
  11. 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
  12. @ShaunR, I just realized it says you're using LabVIEW 2009. Is this the version you checked for that menu item in? Maybe it wasn't added until a later version.
  13. 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. Odd. It worked when I tried it. What version of LabVIEW are you using?
  14. Don't think that's possible. All I'm doing is editing data; I'm not writing any code. This is what it looks like.
  15. 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
  16. 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.
  17. 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.)
  18. I mean I don't think there's a border. I didn't use any kind of hidden features or data editing trickery to make it, so if you didn't figure out how to make it completely borderless, maybe there is a pixel I can click. I'll check when I get home from work, and post the ctl.
  19. So here's a .mnu file that has StateDiagram.vi with this turned on, as well as a nonexistent ExternalEditors\MyEditor\MyEditor.vi that you can create and experiment with. Not sure how to get it to work yet. ExternalEditors.mnu
  20. 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? 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: 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.
  21. 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?
  22. 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.
×
×
  • Create New...

Important Information

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