AutoCAD Visual LISP / AutoLISP :: Determine Which Button On A Flyout Toolbar Is Currently Shown?
Feb 13, 2013how can I determine which button on a flyout toolbar is currently shown?
View 3 Replieshow can I determine which button on a flyout toolbar is currently shown?
View 3 RepliesI also note I could use excel but I have this thing where id like to have the lisp and AutoCAD run independent from other external programs.
I’m the CAD monkey at work and I’m given unbelievable autonomy to what I build (sometimes I confuse work with hobby) put all to one side. My functions often require toolbars with several buttons on them what I would like for one toolbar in particular is to make a most used function button. Better said a button at the beginning of my toolbar, which execute the most used button from within that entire toolbar.
The ideas so far is to add a write-line (append) function lisp for every button this would intern write a button codename/ reference example SNP for snap and SAV for save and so on. All easy I can do this.
What I’m having difficulty with is actually counting the instances of the most used button using lisp. At the moment I’m resorting to a vb.net program, which needs to be shelled first, to recalculate the whole list it works but is messy and quite patch worked. The highest instance would then be used to set a variable, which would be used as the command in the so-called “top 1 tool button”
I need to load a lisp routine by way of a toobar button. I do not want to use the appload dialog box.
View 9 Replies View RelatedI'm trying to create a macro for a toolbar button to open a third party program. Basically we want to open a custom .exe application from a button on the ACAD toolbar.
View 5 Replies View RelatedI have a specific need to determine if an entity is existing or not so that I can either make changes to or create the entity. I'm trying to do this while referring to the entity by it's handle. Below is my code this far but it doesn't work.
(IF (AND (SETQ HNDL (VLAX-LDATA-GET "TB" (STRCAT PLN "PLAN"))) (NOT (VLAX-ERASED-P (VLAX-ENAME->VLA-OBJECT (HANDENT HNDL)))) ) (PROGN ;;| DO SOMETHING WITH THE EXISTING ENTITY ) (PROGN ;;| MAKE THE ENTITY
(vlax-ldata-put "TB" (strcat PLN "PLAN") (CDR (ASSOC 5 (entget (entlast))))) ))
I ran the program and the handle was stored, then I deleted the entity and ran the code again and this is the error I get:
; error: unable to get ObjectID: nil
This VLISP stuff sometime has unpredictable hoops to jump through first, so I wondering if this is the case here.
Is there a way to determine the type of ACAD object that the user selected? I need to retrieve the value from either a dimension or text. The info could be in either format so the lisp routine needs to determine what was selected so the correct vla-get command is used.
Once I determine what the object is I can use an if statement to retrieve the value.
;user selects the object
(setq dimobj (vlax-ename->vla-object(car(entsel))))
;If ACAD object is a dimension do this.
(setq dimvalue (vla-get-textoverride dimobj))
;If ACAD object is text do this.
(setq dimvalue (vla-get-textstring dimobj))
Is there a way to search the database/tables/whatever to determine if new layers are present in a drawing?
I want to run a script to reconcile new layers in the sheet drawings after having cleaned the xref drawings, and the script bombs if there are no new layers present in the parent drawing.
If I could determine what triggers the layereval/layernotify sequence (tblsearch?) I could include an if or while lisp routine that would invoke the layer command and then reconcile the new layers.
I have a company .cuix menu that is loaded as a partial menu to the main acad.cuix file. I want to delete all the toolbars and pull down menus associated with it and leave the other stuff in place. This is in Autocad 2011 but should also translate to 2013. So far, I have tried opening the CUI menu, going to the company.cuix partial menu and deleting the toolbars. Then I hit save, then Apply. Toolbars disappear and pulldown menus go away. But when I reload AutoCAD they come back.
View 1 Replies View RelatedI have a routine that looks for an MText date stamp and replace the old date with a new date. The problem is some MText strings appear encrypted. Below is an example:
{\H1.121x;\C1; \LFY 2011-12\l \H0.6252x;04-30-11} This is what I should get when I extract the string (as shown in Property window)
(1 . "\pxi-2.1818,l4.3636,ql,t4.3636;{\fSymbol|b1|i0|c2") is what I get when I extract the group code.
I'm running AutoCAD 2012 on Windows 7.
I would like to creat a dialog box with buttons or radio buttons to insert various blocks. something easy to start the dialogue, push the button desired and my block or lisp is inserted or run. I have the dcl part figured out. i'm not quite smart enough to get the lisp down. is there a generic lisp that can reference a lisp command that i can alter or edit and add to?
View 4 Replies View RelatedI've made a failed attempt to add the RIBBONCONTROL Named Views to the main Quick Access Toolbar. The Customize User Interface dialogue box (CUI) seems to allow me to drag the Named Views RIBBONCONTROL from the command list to Quick Access Toolbar 1. I don't see the "forbidden" icon and the blue insert bar shows up when I perform the drag operation.
However, I suspect there is some compatibility issue, because the command doesn't pop up when I release the mouse button at the end of the drag operation. Using command QUICKCUI and trying to drag Named Views RIBBONCONTROL directly to the Quick Access Toolbar (on screen) seems to be allowed likewise, but doesn't work also.
Using the regular View Manager Dialogue is not the kind of solution I'm looking for, because in the View Manager it takes at least twice as much mouse clicks to change to another view.
Any way to reach the desired customization? Should it be reported as a bug to Autodesk?
What the require setting to enable me to lock of several layer continuously when i click the "LAYER OFF" button at the toolbar? I wish to set to be like whenever i use the "LAYER OFF" command, i can direct just continue to click several layers for it to be turn off.
View 9 Replies View RelatedHow to add buttons and create my own ribbon in AutoCAD, but now I would like to be able to have buttons for two different schedules that I have created. While I can have a button start the schedule command it won't automatically pick the schedule that I want it to create.
View 1 Replies View RelatedI am trying to revise an old dialog box so that I can add some new options but I'm finding it difficult to shorten the label for a radio button enough to get the box width to look reasonable. I read somewhere that Windows fonts cause the label lengths to hold extra space for each character. The webpage that I found this on said the solution was to make a new line for the label, which sounded great to me, but they did not tell how to do it. After much searching, I figured out how to add an additional line to the label, but my program now refuses to function correctly. I set the middle button before initiating the dialog in my lisp, but when I select a different option, the original button remains selected along with the user's choice. The program actually works, using the last button selected, but I really want the button to respect the pick by the user and deselect the default button.
This worked perfectly when I had only two selections, and it still worked perfectly when I added the third option, but it just doesn't like it when I try to add a new line for the long description in the middle of a radio column.
I'm barely functional with dialog boxes..
DCL in question:
:boxed_radio_column { label = "Location"; width = 20; height = 2; fixed_width = true; fixed_height = true; alignment = top; :radio_button{key = "sl-AD"; label = "Spring Lake Applications";} :text_part{label = " and Distributor Services";} :radio_button{key = "sl-BP"; label = "Spring Lake BP Systems";} :radio_button{key = "gr"; label = "Grand Rapids";} }
lisp has the following in this order:
load dialog - I have a loading function that works fine
(set_tile"sl-BP""1")
(action_tile"sl-AD" "(TGW-Setup_01 $key)")
(action_tile"sl-BP" "(TGW-Setup_01 $key)")
[Code] .....
Of course, these are just the pertinent sections of a much larger setup dialog, but I didn't think I needed to post all the functions that this program is doing, since you'd have a difficult time running this without my templates, printers and a number of support files.
Like I said, it seems to be choking on my adding :text_part { Label = " and Distributor Services";} instead of making this a single line of the label for the button above it.
Why does this cause the default radio button to stop releasing?
I added a couple of standard Autocad MAP tabs to a custom panel and in my custom workspace some of the button images don't show up. If I go to the Planning & Analysis workspace, the images are visible, but in the custom workspace, all I get are clouds with a question mark.
I attached two screen shots.
Civil3D 2014 SP1
Win 7 Professional - 64-bit
HP Z400
Xeon W3550 @ 3.07Ghz
24GB of RAM
Nvidia GeForce GTX 760
I am trying to create a short cut button with a macor code.
I want it to set up a new orgin and set a base point in xrefs i am creating
The commands i want to combined are the follwoing
UCS enter
3P enter
BASE enter
The macro i am using is the following
^c^c_ucs 3p \_base
but it wont run the base command after it finishes the 3P command
This is whats show up in my commands bar
Command: _ucs
Current ucs name: *WORLD*
Specify origin of UCS or [Face/NAmed/OBject/Previous/View/World/X/Y/Z/ZAxis]
<World>: 3p
[Code]....
AutoCAD 2012
When I am in the CUI editor and I right click on a button in a custom tool bar, it gives me the option to "duplicate" or "copy".
But when I go to change the properties of the new button, it changes both the original and the new button upon "apply".
Can I just add a new/blank button? I've tried dragging a new command from the list at the lower left corner but it does the same thing. :?
Rudimentary lisp & dialog box skillls here...
I have a little dialog box with seven radio buttons and a text box that generically accomplishes what it's supposed to do. To retain the current dialog values, I use the write-lline function to store the information and then use read-line to bring that information back in for other Lisps that I use. As long as the user doesn't open the dialog, whatever options were last selected will remain in effect.
However, if the user re-opens the dialog, then whatever defaults I have initially set up in the dialog will then become active (in other words, whichever of the radio buttons I have set to "1")
My question is whether or not I can have the dialog box set up so that if a user selects an alternate radio button, that radio button will keeo it's value whether or not the dialog is opened and until and if the user changes it..
As it is now, whenever the user opens the dialog box to change, say one radio button, the user then has to change the other radio buttons if the defaults don't match the current run requirements.
Here's the dialog and the lisp:
OPTIONS : dialog {
label = " Counter to Cad Options";
: spacer {
height = 0.75;
[Code] ......
I have various Button macros with the user input select in them, but in 2014 they dont seem to be working anymore.
they worked in 2013.
It just says invalid selection.
example
^C^CSelect;change;p;lt;phantom;;
how to make a toolbar button so that when i click it and select a few single text, it will automatically change the text base point to be at "MIDDLE CENTER"....
At the moment, i use to create a button with macro of " ^C^C_text;j;mc "....But the problem is whenever i use this button, i still need to type "MC" at the command prompt.. How to make it so that after i click the button, all i need to to is just select the text..
I am updating my CUI ribbon for some of my customized buttons. I have changed some of the bitmap images that I have saved in my network folder for the network AutoCAD customization. However, I cannot get the Ribbon to update to show the new button images.
I have opened the CUI, browsed down to the partial CUI for our corporate configuration, then to the "Ribbon", then to the "Tabs", then to the individual section of the tab and clicked on it. Then I click on the specific button in the "Panel Preview" pane to get the properties for that button to show. Then at the bottom of the "Properties" panel, I click on the "Small Image" line to see the three dots that allow you to browse to where the .bmp is stored. I have not renamed the bitmaps, but just modified their color and the way they look. So I have to change the .bmp file to a different location in the small image properties, then change it back to the correct image name. It will update the appearance in the "Panel Preview", but will not update the actual ribbon. I click on "Apply" and "OK", and it still doesn't update the actual ribbon. I have tried closing and restarting AutoCAD after that. As a last resort, I rebooted to see if that would complete the change, but in vain.
I made sure that the network location for the bitmap files is listed in my Options > Support File Search Path (very near the top of the support file list), but that still isn't solving the problem.
How to get AutoCAD to completely forget the old image that is showing on the ribbon and repopulate it with the updated bitmap image?
Just installed 2014 and have a few issues right away. I checked out the New Features webpage and attempted to change the Viewport Layout using the new Menu dropdown. When I click on any other layout other than the default the whole UI begins to flicker and Max completely locks up and I have to end the process to close it.
Now when I load Max I get an error box that says: "Invalid flyout button ID!" After clicking OK on 6 identical successive Error boxes they are all gone and Max is OK.
I uninstalled my display drivers and installed the latest Max Performance driver 311.50 for my Quadro 4000.
Update: I removed a custom toolbar that I created thinking it might be throwing the error and then relaunched Max. Same error. Then I reinstalled Max using the Repair/Reinstall feature instead of completely uninstalling and reinstalling. When I open Max I still get the "Invalid flyout..." error. FYI, upon my initial install and first opening of Max it opened normally. It was only after I had the switching workspace event that this error stated. The Reinstall feature did not solve it.
3ds Max Design (3D Studio thru Max 2014), ASUS P9X79 Motherboard,
Intel i7-3960x, Hydro H80 CPU Chiller, 32GB DDR3 Ram,
Quadro 4000 Display Adapter
Is there a lisp that will allow me to do a continuous dimension, but will alternate the dimension position from low, high, low and high? If there is no lisp already created, how to create one?
See Continuous dimension attachment for example.
I work at a glass and glazing company and this is how we dimension mullion width and DLO. See typical window dimensioning attachment for window elevation with dimensions.
I have a list ("temp.dwg" "temp2.dwg") and would like to add the string "insert text here" into each item in the list resulting in ("insert text heretemp.dwg" "insert textheretemp2.dwg"). how would i go about doing that using LISP?
View 2 Replies View RelatedIs there a way to programatically set a visual style before a drawing actually opens?
We have some huge models and people seem to forget to change their visual styles back to 2D wireframe before saving and exiting drawings. Some models will crash on some workstations when trying to open in a rendered mode.
I found a lisp with a function that looked to set viewport visual styles. But it does not seem to be supported anymore. --> (vla-put-VisualStyle vport 1)
I'm trying to write a lisp routine that, when I invoke the mleader command, osmode is set to "nearest" & orthomode is set off. I then would like the original settings to be returned.
attached is what I have written so far:-
Lisp that switches back on Selection Preview i.e. thickens and highlights lines when you hover over them?I don't know why, but they are always unticking the boxes.
View 4 Replies View RelatedIs it possible to execute a certain command based on multiple selections withinin a dcl? for example: two radio colums, one with selections A and B, and a second with selections 1 and 2. is it possible to program commands based on user selections from each column? ex: if A and 1- do a command. A 2- do a different command, etc...
I tried :
(action_tile "key1" "(setq A t")
(action_tile "key2" "(setq B t")
(action_tile "key3" "(setq 1 t)(done_dialog)")
(action_tile "key4" "(setq 2 t)(done_dialog)")
(if
(and (a) (1)
)
(command ...
but was unsuccessful. no matter which combination was selected, the command under all combinations would run.
I am trying to find a lisp that would get an attribute value (tag name = NBR_5) . I'm trying to run a simple routine that would let the user place the value from the titleblock attribute as text on a drawing. I see a ton of articles regarding getting attributes but I am not well versed in programming.
View 9 Replies View RelatedI have a routine that work fine, but I receive a nil at the end of command. How to fix that?
View 7 Replies View RelatedI'm trying to find acceptable point values to feed to the vlax-3d-point function for a vla-addmtext function. With vanilla lisp I just provide the point as x y = "7/32" "2-3/8". So I assumed that I could drop a 0 in for the z like: (VLAX-3D-POINT "7/32" "2-3/8" 0).
Then I thought I was going to be tricksy and try (vlax-3D-point (getpoint)) believing that I could pick the point and get what I need to feed the function, but yet again, no deal. The command line gave me:
node
of #<variant 8197 ...>
Nothing I can use in my code. So how do I find the point in a format that vlax-3d-point will like?