How can I add CTRL+Q as a toolbar button?
Thank you for any help.
Welcome to SOLIDWORKS forums Rick.
Why you need a toolbar button? Can't you use the keyboard shortcut?
There is no icon for force rebuild but in case you still need a button, then you can make a force rebuild macro and assign a button to that macro.
Here is a SuperRebuild macro, download from this post: https://forum.solidworks.com/message/712119#comment-712119
You might also find this post helpful for your future reference.
Thanks for your answer.
Why? I come from 20 years of Cadkey/KeyCreator and have a highly customized keyboard. IMHO, the best keyboard short cut is a single click.
Not a 2 button click. I do realize that I can assign a single letter as well as CTRL+Q.
However, today I moved some geometry in an a top down assembly which was related to some other geometry and after moving the geometry I went up to the top toolbar that has a rebuild icon on it and selecting it in total frustration that some of my geometry didn't move, called support to discover that that button (CTRL+B) is oh so very different than CTRL+Q.
I want to permanently replace the CTRL+B icon with the CTRL+Q command.
To my great surprise, there is no icon for that command.
I guess I just don't get why EVERY command doesn't have an icon assigned to it, or at the very least an easy way to assign an icon without needing to learn the macro programming dialect.
Thanks for your time.
Ctrl-Q (or "forced rebuild") is the only command in the system we purposely make harder to access. The very reason we do it is because we DON'T want users to replace the rebuild icon with this command. Ctrl-Q is needed in probably less than 99.9% of the times you need rebuild. If you use Ctrl-Q all the time you will be extremely disappointed with the performance of the software and wasting time for absolutely no reason. For instance, if in a part with 100 features, you change the dimension of some feature low down in the tree (or even the last one), and you hit rebuild, it only rebuilds the feature and any dependent children. If you hit Ctrl-Q, it rebuilds the entire tree from the very top; every single feature and sketch. Again, in 99.9% of the cases, that is not necessary and extremely time consuming.
The only cases where a Ctrl-Q should really be needed is if you have circular references or you are running into a bug. If it is a case of circular references, you should really look at your model and determine if you intentionally want it or not and if at all possible, try to eliminate it. Some people do them purposely, knowing that it will take multiple rebuilds or a Ctrl-Q to get the final model built. In the case of a bug, you should make sure to get the models submitted through your VAR so they can be analyzed and the bug can be fixed.
Of course, you can add a button for Ctrl-Q if you really like, but I would not suggest replacing rebuild with it and I would suggest using it judiciously, only when something isn't rebuilding as you expect.
I hope this helps,
Thanks for taking the time to answer.
I don't agree with the philosophy of making a command (any command) harder to access. You aren't giving your customers enough credit to be able to choose how to implement an available command for themselves.
In my case, I have 5 simple rectangles with some holes in an assembly. I tried to smartly relate one part to another as I built it top down. I needed to make a change in location of a set of holes. I find the seed/parent hole and move it. I hit regen (CTRL+B) on the standard toolbar and the hole doesn't move in one of my parts. I spent an hour and needed to call support to figure out that all I needed was a top level assembly regen.
I can deal with that. It's a learning curve and this was a lesson and I'm new to SolidWorks.
So, I want to replace the regen button on the standard tool bar with the CTRL+Q regen. Seems like a good idea to me. Even after reading your reply, I still think it is a good idea. I can't figure out how to add a button that does CTRL+Q.
Another hour with support. Then this forum. I still can't figure out how to accomplish this menu customization.
Bottom line, I don't agree with making any command harder to access. Let me decide. It's not like you buried it in a 5 layer deep fly out menu in order to make it painful to execute the command. You have it as a keyboard shortcut. I just want another different way to issue this specific command.
Jim, can you tell me how to add a button on my standard toolbar that performs the CTRL+Q regen?
Any help is greatly appreciated. Thank you.
I still don't think you understand the implication. So, you would be happy replacing the rebuild button with this one and as a result, on your complex parts, instead of taking 3 seconds to rebuild after making a change and hitting rebuild, they will always take 5 minutes (as an example if you have a complex part that takes 5 minutes to rebuild all features)? Many users don't understand this implication and this is why we don't have a button for it. It is only meant to be used if something is not working as expected, not in general usage.
For your example assembly for which you have been told that have it needs a "top level rebuild", the cause is very likely a circular reference which can cause other issues and should be corrected so using force regen is just masking or working around the issue. Again, this is another reason why we don't have a button for it. It is much better to correct the issue rather than working around it with force regen or you are likely going to have more problems as you continue with your model.
You can add a button for force regen as Deepak indicates by using a macro. He gave a link to a macro and there are likely others if you search the forum or can possibly get one by posting in the API section of the forum. Here is a link to the help topic on adding a button for a macro to the interface:
One more question.
How can I assign the 8 key to a keyboard shortcut?
I am referring to the key above the U/I keys, not the keypad. I can assign the keypad 8 but not the 8 key.
Thanks again for any help.
You need to use shift/ctrl/alt along with that key.
Unfortunately, you cannot. You never have been able to. I believe this is something that is blocked by the Microsoft keyboard customization that we use. Looking at Word, it looks like they even further block customization of any key without a modifier (like Ctrl or Alt). I am not sure if the blocking of the numbers (actually, it is the whole top row of the keyboard) relates to those entries being used for numeric input and potential conflicts there or why it is blocked. If I find out anything further in talking with the developers, I'll post back.
Kubotek KeyCreator allows every key to be assigned (I know, I have them all assigned). I am dumbfounded that these keys cannot be used. Please tell me the SolidWorks logic behind this because it doesn't appear to be a Microsoft requirement.
I do understand the impact. if/when it takes 5 minutes to regen I will learn not to click that button. My ultimate plan was not to replace the CTRL+B regen icon, but to add a second CTRL+Q icon next to it.
Since SolidWorks has given the command a keyboard shortcut, and I can issue that command at any time, how is it different than having a toolbar icon to depress? Either way there is user interaction required. This is why I cannot wrap my mind around the fact that SolidWorks doesn't have an icon for this command.
I am new to SolidWorks. The learning curve is steep coming from a free form modeler. It's a shame that I need to take so much time and effort to accomplish what seems like such a simple thing, add a command button to a toolbar. I guess if I really want this button I will need to learn macros long before I want to learn about macros.
I do want to thank you both for taking the time to help me. Your quick concise answers are greatly appreciated.
On the subject of the use of numeric keys for keyboard shortcuts, the best I can say is we can consider it for an enhancement and I am talking to the developers about it to try to figure out why it is blocked. It may have a very valid reason due to conflicts with other UI controls. For instance if you are typing into a numeric control, you wouldn't want the numbers being "captured" for the keyboard shortcut at that time. As you've mentioned, it can be done with the numeric keyboard, but the information that the operating system is sending for those keys is different than the information for the numbers at the top of the keyboard. Just like Microsoft Word blocks you from using regular alpha-numeric keys for shortcuts or even shift-keys, which makes sense since then you couldn't actually type those letters in a document, we need to be very cautious in changing this behavior and not regressing something in the software.
I highly recommend that if you would like this enhancement, you submit it as one in the customer portal. The request may already exist and if so, you can add your "vote" for it, and if not, you can add it so others can vote for it too if it is important to other users.
Since you bring it up, can you have a look at my post here Re: correct way(s) to "Vote" for SPR - SW confirm? I can't seem to get someone to confirm... so I'm asking a bit more directly this time
Please excuse my hijack
I saw your bump early today and forwarded to someone at SolidWorks who knows the exact answer, so they should be posting soon with the answer.
In regards to your original question, I too use Force Rebuild often enough that I wanted a button to do so. I ended up assigning it to a mouse gesture. If you are unfamiliar with them, they are simply 4 or 8 mouse movements that when combined with a RMB will execute a command you assign to it. This may make it more accessible to you.
The reason I use it a lot is I have found that when editing parameters in an assembly environment, I have found the normal rebuild command often does not update mates in real time. So, I found I had to do a normal sometimes 2 or 3 times before getting the geometry where it should be. Force rebuild more times than not will do this the first time, so long as you can live with the longer rebuild time.
Excuse my revival of an old thread and my vocabulary Jim, but the CTRL+B button is the most useless button I've ever seen in my life and telling someone that they shouldn't do CTRL+Q unless obligated is unacceptable.
I have a class as a super-user in SolidWorks, I understand the logic of the program and most of the stuff and I also read your explanations. There are so many cases where the CTRL+B button doesn't rebuild what it is supposed to that, as Rick Becker stated, it is completely stupid to make something ''harder'' to use, just because you don't trust your client will use it correctly. Either fix the CTRL+B button and remove the CTRL+Q button or make your CTRL+Q button be accessible.
It is so frustrating to be working on parts/assemblies and that a CTRL+B doesn't do it's job. Then, you end up doing a CTRL+Q and waiting on your assembly for a minute everytime. Imagine when you get to a large assembly and need to rebuild just about every change you make because your damn software doesn't do it correctly, it's a real pain...
Sorry if I sound a bit blunt, but your explanation is an inappropriate answer when you concider that we pay a yearly fee for a working program.
Wow! This may have been my first post on this forum. Thanks for the refresher.
Three and a half years later and I even more strongly Disagree with Jim Wilkinson.
Having Ctrl-Q inaccessible, for the expressed purpose of Adding a button on a toolbar, is gross coding malpractice!
Where are the coding police?
Jim, I sincerely hope you have grown even more wise than you were back then and can agree that this command should be as freely accessible as any other command.
I did get a macro that does Ctrl-Q. I have assigned it to my quick access Menu Bar next to the Ctrl-B button. I have had it there for around 3.5 years through 4 major versions and all the service packs along the way. I have not thought about it specifically in years, until now. It does what it is suppose to do. I use it when and as I need it, same as you do using the keyboard Ctrl-Q.
All user should have this option without jumping through hoops!
Here is the back story that may not be clear from the thread. I tried to mimic my KeyCreator keyboard. Using KeyCreator I am able to and did assigned a single keystroke to each and every key on the keyboard. To be fair, some keys are unassignable (like Enter the Windows key, Num Lock, Etc.), but the number 8 (main keyboard layout) is definitely assignable. Apparently, Baystate/CadKey/KeyCreator was able to overcome the Microsoft lockout problem. In my not so humble opinion, this is also gross coding malpractice!
Back to my story. In my haste to get my keys assigned in SW, I use Ctrl-Q for some other function. I got the warning message that I will be unassigning the Forced Rebuild shortcut, but I didn't understand the impact of that. Until I needed a Ctrl-Q and it was nowhere to be found. Mt VAR could not find it anywhere either. Thus, I turned to the forum here.
Tell me this Jim, why is it even possible to reassign Ctrl-Q to something else it the command is not accessible in any other way?
I have attached the macro so everyone can assign it to a menu button.
Deepak, your link no longer works.
If memory serves me, and it may not, the macro you posted did not work for me back then. I got the macro that I posted below from some other source that I can't remember where.
Thank you as always Deepak. Your are always willing to help, and that is greatly appreciated.
Why not just re-assign it to one button click instead of ctrl+Q....
Rick that site has been taken down. That super-build macro always worked for me. I've upload the one and it was made by Paul Kellner
Thanks for posting this macro. It does work and the Time box at the end is an interesting annoyance.
Deepak, I did a search of my email and found the salient email from 2014 concerning my desire to have a Ctrl-Q toolbar button.
I knew the macro I got from you was not performing correctly because the time it would take to rebuild was too short.
My suspicion was confirmed by my VAR and they fixed the macro.
The fixed macro is the one I posted yesterday in this thread and it has performed perfectly through many versions for three years.
Here is the email that explains what was wrong...
We had Guy take a look at the macro and I believe we found the issue.
The reason the macro was processing so fast was due to it invoking rebuild. (that means that it was only rebuilding the active objects and not the entire tree)By changing the code to: boolstatus = Part.ForceRebuild3 (False), this will force SolidWorks to rebuild the entire feature tree.
I have attached the updated macro to this e-mail, if you still would like to have a button for it.
I have also tested this macro against using Ctrl+Q on a model that will only show errors if the entire tree is rebuilt. Running the macro resulted in the same errors in the feature tree, indicating that the entire tree was rebuilt the same as with using Ctrl+Q.However, the bottom status bar will only show that the macro is running, not the rebuild progress (as is shown when using Ctrl+Q). Also, running the macro will not allow any rebuild warnings from popping up. (this may be a plus, depending on if you want to be prompted during rebuild or not)
I will close your case now, but I wanted to share this extra information with you, as you had expressed interest in having a forced rebuild button.
So that closes the loop for this issue with the macro.
Still dangling is Dassault thinking users can't possible be trusted to understand the consequences of actually using Ctrl-Q and somehow thinking that having the command be accessible ONLY through a 2-key keyboard shortcut somehow throttles back a user from issuing the command. SMH.
I assigned it as a mouse gesture because I found it easier. I have my most used commands (this being one of them) as mouse gestures because I never have to take my eyes off the screen for them. It is a simple flick of the wrist while holding the RMB. With the keyboard shortcuts I find myself having to look away from the screen to be sure I am hitting the right key.
That being said I went through school and CAD training in a time when 3D parametric modeling was the norm. So I am way more comfortable in SW than I am in AutoCAD or any other system. In fact I am so used to working with mouse gestures that I catch myself trying to do them sometimes while working in AutoCAD.
I ended up switching over to DraftSight because it has the dial too..
I would also except that in my job I also am responsible for updating the electrical schematics for all of our in-house machines. I have built a library of symbols that are dynamic blocks and since draftsight does not yet support dynamic blocks I'm stuck with AutoCAD for now.
I'll have to agree with Rick on this one. I have been using Solidworks since 1999 and working with parts small and large design trees and with small and large assemblies and for me the rebuild icon is useless in the fact that it doesn't rebuild the entire object, the wait time for the rebuild is nothing compared to the time to fix something else later on. Just my 2 cents worth.
I am always using CTRL+Q as it seems to fix little quirky issues that a normal rebuild cannot fix. I am using a Office R.A.T. mouse and have the ability to program 10 buttons specifically to SW. One of the buttons is programmed for CTRL+Q and another is to save. Every time I go to save anything it's the CTRL+Q button then the save button. I am not worried about the 1 or 2 seconds that the forced rebuild takes if it saves me from opening up a part or assembly and seeing that it has errors in it when it didn't have any when I saved it.
Dave, try building a large assembly with thousands of parts that takes several minutes to Ctrl+Q rebuild. You will come to realize a desire to have SW just be better and not need a complete rebuild every time you want to save.
Retrieving data ...