JDave Posted October 16, 2007 Report Share Posted October 16, 2007 I posted a while back how I was feeling there must be a better way to wire up my controls to the connector pane on my subVIs. My experiments since then have been quite fruitful. Auto ConnectorPane Puts a huge scaled connector pane decoration on your front panel. Connects up any controls or indicators that are in the oversized terminal boxes. Drag your controls and indicators to the desired box, or outside the decoration to disconnect them. Works with all connector pane patterns. It's the best thing since dragging your mouse back and forth between the connector pane and each and every control and indicator! Just put the .llb file in your project folder in the LabVIEW directory. Restart LabVIEW and you will have an option in the Tools menu for Auto ConnectorPane. LV 8.2 or higher is required, and depends on several OpenG libraries (you should have OpenG installed anyway, of course). Auto ConnectorPane.llb Hope you enjoy. Quote Link to comment
crelf Posted October 16, 2007 Report Share Posted October 16, 2007 That's pretty! :thumbup: Quote Link to comment
Michael Aivaliotis Posted October 16, 2007 Report Share Posted October 16, 2007 I would recommend this for a Code Repository candidate. Please consider. Quote Link to comment
PJM_labview Posted October 16, 2007 Report Share Posted October 16, 2007 Very nice tool. This is still a little bit too much work and is against my work flow. I think, for my use case, I would like a tool that auto connect to the connector pane, given the relative position of controls. So I would position my control the way I want (no grid), then run the tool (which will attempt to connect doing its best effort, following a few simple rules). It will default to the 4x2x2x4 (4815) connector if no connector selected, else use the existing one. But this is still a very nice utility :thumbup: (I might even use part of it to write my version of it). PJM Quote Link to comment
JDave Posted October 16, 2007 Author Report Share Posted October 16, 2007 QUOTE(PJM_labview @ Oct 15 2007, 02:23 PM) Very nice tool.This is still a little bit too much work and is against my work flow. I think, for my use case, I would like a tool that auto connect to the connector pane, given the relative position of controls. So I would position my control the way I want (no grid), then run the tool (which will attempt to connect doing its best effort, following a few simple rules). It will default to the 4x2x2x4 (4815) connector if no connector selected, else use the existing one. But this is still a very nice utility :thumbup: (I might even use part of it to write my version of it). PJM I agree that minimizing work was very much my effort. The tool does attempt to connect all the controls at the beginning, but requires that they be within the grid boxes. Mark Balla wrote a http://forums.lavag.org/SubVi-Fixer-tool-t1597.html' target="_blank">really neat utility that does more of relative spacing like I think you are asking. This requires quite a bit more work than "Is the control in the box?". Personally, to make this tool work with my workflow, I have changed my default grid spacing on the front panel to 200. Then with a scaling factor of 25, and the 4x2x2x4 (4815) pattern, it is obvious where to place the controls and indicators while working. Then when I am ready to wire it all up, I run the tool. I also have it set up with a keyboard shortcut through a toolbar utility that I built. So I press the shortcut key and then I hit Enter (if no tweaking required). Done. To Michael : I will submit this to the Code Repository, and see what I need to clean up David Quote Link to comment
Mark Balla Posted October 17, 2007 Report Share Posted October 17, 2007 Sorry to be the bringer of bad news but there is a problem with your code. As the team member responsible for this CR submission I would normally do this by pm but since you started the discussion here I need to warn every one there is a potential crash and I don't want anyone to lose any code because of it. If you call up the auto connector pane vi and purposely or accidentally try to move one of the box decorations LabVIEW will crash. See video. Download File:post-584-1192513096.swf I do have a few additional suggestions aside from fixing the crash. How about redrawing the decoration boxes when the scale or pattern is changed. Also it would be nice if we could move the boxes to the controls and have them auto wire. Quote Link to comment
JDave Posted October 17, 2007 Author Report Share Posted October 17, 2007 QUOTE(mballa @ Oct 15 2007, 11:08 PM) Sorry to be the bringer of bad news but there is a problem with your code.As the team member responsible for this CR submission I would normally do this by pm but since you started the discussion here I need to warn every one there is a potential crash and I don't want anyone to lose any code because of it. If you call up the auto connector pane vi and purposely or accidentally try to move one of the box decorations LabVIEW will crash. See video. Hmmmm... That's not good at all. I did see some crashing when moving the box decorations, but it seemed to go away when I put a Defer Panel Updates in. I will take a longer look at that. I posted this in Rusty Nails because I felt it was still a little rusty, but I wanted some feedback on it. Thanks for finding this. QUOTE(mballa @ Oct 15 2007, 11:08 PM) I do have a few additional suggestions aside from fixing the crash. How about redrawing the decoration boxes when the scale or pattern is changed. Also it would be nice if we could move the boxes to the controls and have them auto wire. Redrawing the boxes would make it easier to see what changes would look like. Very nice suggestion. Moving the boxes is a very novel idea. Each box corresponds to a terminal, so one would have to keep the same general layout. If you dragged a box from the top to the bottom, it would still link to the top terminal. Otherwise you have to get into relative spacing. Or is this not what you were envisioning? P.S. I appreciated the inspiration I received from your SubVI Fixer that I mentioned to PJM. Thanks for posting your code for that. David Quote Link to comment
crelf Posted October 17, 2007 Report Share Posted October 17, 2007 QUOTE(JDave @ Oct 17 2007, 01:22 AM) I posted this in Rusty Nails because I felt it was still a little rusty... The "Rusty Nails" section is more about NI's undocumented and unreleased stuff - not things that you need worked on. As the group verbiage says: "Welcome to LabVIEW's attic. Watch the beams overhead and be careful not to step on any rusty nails. If you do snag one however, don't come crying. We warned you." Quote Link to comment
JDave Posted October 17, 2007 Author Report Share Posted October 17, 2007 QUOTE(crelf @ Oct 16 2007, 08:48 AM) The "Rusty Nails" section is more about NI's undocumented and unreleased stuff - not things that you need worked on. As the group verbiage says: "Welcome to LabVIEW's attic. Watch the beams overhead and be careful not to step on any rusty nails. If you do snag one however, don't come crying. We warned you." I meant rusty as in involving scripting and not well proved. If I thought it would easily crash I would have stated so. But dabbling in scripting is asking for the occasional crash. Where is the place for things I need worked on? I was looking for feedback and ideas on how to improve the tool, and to see what people thought. But I certainly appreciate if someone found a serious bug that I need to fix. David Quote Link to comment
crelf Posted October 17, 2007 Report Share Posted October 17, 2007 QUOTE(JDave @ Oct 17 2007, 03:05 AM) Where is the place for things I need worked on? No - you're right - it's got scripting in it, so this is the right place :thumbup: Quote Link to comment
JDave Posted October 18, 2007 Author Report Share Posted October 18, 2007 QUOTE(mballa @ Oct 15 2007, 11:08 PM) I do have a few additional suggestions aside from fixing the crash.How about redrawing the decoration boxes when the scale or pattern is changed. Also it would be nice if we could move the boxes to the controls and have them auto wire. I changed the file in this thread to fix the crashing. I also implemented the redrawing of the boxes if settings change. I wanted to get some more feedback on the idea of moving boxes around. How did you envision this? Any other ideas from other people on how to change this to work better with your own workflow? How do all of you typically go about wiring your subVI connector panes? David Quote Link to comment
robijn Posted October 18, 2007 Report Share Posted October 18, 2007 QUOTE(PJM_labview @ Oct 15 2007, 11:23 PM) I think, for my use case, I would like a tool that auto connect to the connector pane, given the relative position of controls.So I would position my control the way I want (no grid), then run the tool (which will attempt to connect doing its best effort, following a few simple rules). It will default to the 4x2x2x4 (4815) connector if no connector selected, else use the existing one. Yes this would be a very handy LV feature or tool. It could also warn if you connect an error in at top-left or a functional global action (enum) at left or an output at left. If it could not match your controls to the 4x2x2x4 connector it could present you with a choice for an other one... or resize the window to have only the controls visible that are to be attached... or ask you politely to clean things up and position controls better... I like polite software. Joris Quote Link to comment
Ton Plomp Posted October 18, 2007 Report Share Posted October 18, 2007 Another preferred addition, the tool will resize the front panel, could it be possible to fit the dec's inside the current panel window? Show the Icon after placing the terminals Ton Quote Link to comment
LAVA 1.0 Content Posted October 18, 2007 Report Share Posted October 18, 2007 I think it's a very good tool! But what are you making, if your controls/ indicators are (verry) big clusters? Overlapping controls are not that nice... Quote Link to comment
JDave Posted October 18, 2007 Author Report Share Posted October 18, 2007 QUOTE(tcplomp @ Oct 17 2007, 04:37 AM) Another preferred addition, the tool will resize the front panel, could it be possible to fit the dec's inside the current panel window?Show the Icon after placing the terminals I like the showing the icon afterwards. Fitting the decorations to the current size can be problematic. What is the minimum allowable size? Spacing is already tight with clusters and arrays. I wish I could change the default panel size on new VIs to be a little bigger, actually. QUOTE(martin@aerodynamics @ Oct 17 2007, 06:38 AM) I think it's a very good tool! But what are you making, if your controls/ indicators are (verry) big clusters? Overlapping controls are not that nice... Verry good question. It is important to remember that the majority of controls are small enough. The majority of my very big clusters are made into Strict Typedefs and shrunk down to something more manageable. Clusters taking over my FP are not that nice either. For the remaining cases, I suppose I would use the tool to auto connect what I could and tweak the rest. David Quote Link to comment
Mark Balla Posted October 18, 2007 Report Share Posted October 18, 2007 QUOTE(PJM_labview @ Oct 15 2007, 04:23 PM) This is still a little bit too much work and is against my work flow.I think, for my use case, I would like a tool that auto connect to the connector pane, given the relative position of controls. So I would position my control the way I want (no grid), then run the tool (which will attempt to connect doing its best effort, following a few simple rules). It will default to the 4x2x2x4 (4815) connector if no connector selected, else use the existing one. But this is still a very nice utility :thumbup: (I might even use part of it to write my version of it). PJM QUOTE(JDave @ Oct 16 2007, 10:22 AM) P.S. I appreciated the inspiration I received from your SubVI Fixer that I mentioned to PJM. Thanks for posting your code for that. QUOTE(robijn @ Oct 17 2007, 04:20 AM) Yes this would be a very handy LV feature or tool. It could also warn if you connect an error in at top-left or a functional global action (enum) at left or an output at left. If it could not match your controls to the 4x2x2x4 connector it could present you with a choice for an other one... or resize the window to have only the controls visible that are to be attached... or ask you politely to clean things up and position controls better... I like polite software. Joris I was going to hold off and wait until I had this perfected and I didn't want to hijack the thread. But with all the discussion on this topic that I have been working on for the last 2 years and JDave mentioning my old fixer, I can't resist showing what I have currently. This is the 8.2 version but I have 7.1 to 8.5 if you want them. The three items go in your LV project folder and FIX SUBVI is selected from the tools menu. The Basics go like this Start the program It will open and then minimize. create a subvi arrange controls on the FP so they correspond to how you want them wired on the connector pane Select all the controls that you wish to wire to the connector pane Press CTRL-Shift-Spacebar the Fixer will popup Select a Pattern Press "Wire By Arrangement" the connector pane will be wired Press "Arrange & Cleanup" The FP will be squared up, Labels will be arranged and changed based on settings, Prompt for save, Icon editor called, and documentation editor will be called. The subvi will also be relinked. (so it is not greyed out in its callers) Fixer will minimize until next time. Here is a brief video of how it works. http://lavag.org/old_files/post-584-1192643456.swf'>Download File:post-584-1192643456.swf One minor issue is it tends to bog down with large projects 600 or more vis in memory. This has to do with finding the active vi. Any feedback would be appreciated. There is a lot more to it but I will save that for later. this will eventually go in the CR once its a little more polished. Mark Quote Link to comment
Ton Plomp Posted October 18, 2007 Report Share Posted October 18, 2007 QUOTE(mballa @ Oct 17 2007, 07:58 PM) One minor issue is it tends to bog down with large projects 600 or more vis in memory. This has to do with finding the active vi.Mark Mark, Maybe the 'VI activation event' works for you (it is private). Would it be possible if the two of you work together, it sound like the code from Mark is better (sorry David), but I like your approach as it is very intuitive...? Ton Quote Link to comment
Mark Balla Posted October 18, 2007 Report Share Posted October 18, 2007 QUOTE(tcplomp @ Oct 17 2007, 01:06 PM) Mark,Maybe the 'VI activation event' works for you (it is private). Would it be possible if the two of you work together, it sound like the code from Mark is better (sorry David), but I like your approach as it is very intuitive...? Ton Where is the "VI activation event" located? Quote Link to comment
Ton Plomp Posted October 18, 2007 Report Share Posted October 18, 2007 QUOTE(mballa @ Oct 17 2007, 08:12 PM) Where is the "VI activation event" located? The uhm, event structure (most likely you need to dynamically register for the user's application. It's a private event (so you need the scripting keys) Ton Quote Link to comment
JDave Posted October 18, 2007 Author Report Share Posted October 18, 2007 QUOTE(tcplomp @ Oct 17 2007, 11:06 AM) Would it be possible if the two of you work together, it sound like the code from Mark is better (sorry David), but I like your approach as it is very intuitive...? I worked on mine for about three days, so I am not surprised. I will need to look at the updated version to get some more ideas :thumbup: . Maybe there is some good room to combine efforts. QUOTE(mballa @ Oct 17 2007, 11:12 AM) Where is the "VI activation event" located? It is under the <Application> option in the Event Sources box when you add an event to the event structure. Ton - I have not needed to register for any app ref. In LV8+ there is a field for the App Ref of the activated VI. Quote Link to comment
PJM_labview Posted October 18, 2007 Report Share Posted October 18, 2007 QUOTE(mballa @ Oct 17 2007, 10:58 AM) ...I was going to hold off and wait until I had this perfected and I didn't want to hijack the thread. But with all the discussion on this topic that I have been working on for the last 2 years and JDave mentioning my old fixer, I can't resist showing what I have currently. ... Mark, This zip file seem to be missing a bunch of "universal utility" files located in user.lib. http://lavag.org/old_files/monthly_10_2007/post-121-1192650375.png' target="_blank"> PJM Quote Link to comment
JDave Posted October 18, 2007 Author Report Share Posted October 18, 2007 QUOTE(PJM_labview @ Oct 15 2007, 02:23 PM) This is still a little bit too much work and is against my work flow.I think, for my use case, I would like a tool that auto connect to the connector pane, given the relative position of controls. So I would position my control the way I want (no grid), then run the tool (which will attempt to connect doing its best effort, following a few simple rules). It will default to the 4x2x2x4 (4815) connector if no connector selected, else use the existing one. I had a few ideas that might align with your workflow. But a few questions - How would you envision handling controls that you don't want connected? Would they be required to be made not visible, or would you restrict the wiring to selected controls, or would you have a special place to put controls you don't want connected? Do you envision your visible front panel area to mimic the connector pane, so the relative positions of the controls on the front panel are in roughly the same place as the terminals? David Quote Link to comment
Mark Balla Posted October 18, 2007 Report Share Posted October 18, 2007 QUOTE(PJM_labview @ Oct 17 2007, 02:47 PM) Mark,This zip file seem to be missing a bunch of "universal utility" files located in user.lib. http://lavag.org/old_files/monthly_10_2007/post-121-1192650375.png' target="_blank"> PJM Fixed It. It is now version 2 Quote Link to comment
PJM_labview Posted October 19, 2007 Report Share Posted October 19, 2007 QUOTE(JDave @ Oct 17 2007, 01:44 PM) I had a few ideas that might align with your workflow. But a few questions - How would you envision handling controls that you don't want connected? Would they be required to be made not visible, or would you restrict the wiring to selected controls, or would you have a special place to put controls you don't want connected?Do you envision your visible front panel area to mimic the connector pane, so the relative positions of the controls on the front panel are in roughly the same place as the terminals? David David: 1) I hardly ever have controls on my FP that I do not want to connect to the connector pane. 2) Best attempt at connection will do the following (in order of priority): Connect error clusters (if present) to lower left and lower right respectively (regardless of the connector pane pattern). If references are present (like ref in, ref out), connect them on the upper left and upper right respectively. Connect any control/indicator pair having the same name pattern (ex: data in; data out or data in; data dup) at the same level on the connector pane respectively on the left and right side. Connect the remaining controls like they are mimicking the connector pane (see example below). http://lavag.org/old_files/monthly_10_2007/post-121-1192664578.png' target="_blank"> 3) If there are controls/indicators I don't want to connect, I am not sure what the best approach is. Maybe if the controls/indicators are not in the visible window frame, it should not be connected (yes I think I like this). PJM Quote Link to comment
robijn Posted October 19, 2007 Report Share Posted October 19, 2007 QUOTE(mballa @ Oct 17 2007, 07:58 PM) Here is a brief video of how it works. http://lavag.org/old_files/post-584-1192643456.swf'>Download File:post-584-1192643456.swf Wow this looks fantastic ! Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.