I'm currently working my way around Intellicad V 6.4 SE from a longtime user of Autocad. There are a few items that would make life alot more pleasurable...
1. When in a command turn off crosshairs to pick entities. That is how I know I'm actually in a command like copy without having to look at the command box. It also looks cleaner for some reason.
2. Cursor styles. When using commands like zoom, the magnifying glass is sort of a distraction. Would be nice if I could turn it off. If I can't, is there a way to make it smaller?
Number one is a big distraction as I have to always look down to make sure i'm actually doing something or doing the correct command steps instead of thinking about drawing. Number two is I can live with but it really looks cheezy IMO.
let me see
#2"1. When in a command turn off crosshairs to pick entities. That is how I know I'm actually in a command like copy without having to look at the command box. It also looks cleaner for some reason."
I don't know about your #2 question, but as far as to your #1 question, you could make a lisp defun that has the command you are using in it, but before the command is called up in the lisp routine, you could (1st) set the cross-hair setting off, then (2nd) do a "ssget" to gather the group that the command works on, then (3rd) call the command in question with the variable that ssget obtains. (4th) reset the cross-hair setting as you leave the routine.
What command in particular are you talking about?
I don't know about your #2 question, but as far as to your #1 question, you could make a lisp defun that has the command you are using in it, but before the command is called up in the lisp routine, you could (1st) set the cross-hair setting off, then (2nd) do a "ssget" to gather the group that the command works on, then (3rd) call the command in question with the variable that ssget obtains. (4th) reset the cross-hair setting as you leave the routine.
What command in particular are you talking about?
#3
It's really any command that require you to pick entities or 'ssget'. A very general list would be:
erase, list, offset (parallel), chamfer, fillet, mirror, copy, change, chprop, move, rotate, trim, etc.
I really like my crosshairs (100%) mainly because my eyes automatically snaps to it unlike a small pickbox or cross on a complicated drawing. And using two letter command aliases (I don't use toolbars), I want reassurance that I'm actually in a command. I'm always looking down at the command box; it disrupts my chain of thoughts. I'd rather be thinking about what I'm drawing and not how I'm drawing it.
I guess I'm going to have to spend some time customizing Intellicad. I'll follow your instructions somewhat and see what I come up with. Thanks.
Update
I figured out that grread won't do what I want but the variable CURSORSIZE will work. Here is one for erase:
(DEFUN C:er ()
(setvar "cursorsize" 1)
(command "erase" (ssget) "")
(setvar "cursorsize" 100))
for offset or parallel use entsel instead of ssget or strange things happen. Now, the issue is UNDO. If I do make a mistake, I would have to do 3 undos. The routine I wrote for that won't work. Here it is:
(defun c:UU (/ x)
(setq x (getvar "cursorsize"))
(while (/= x 100)
(command "u")
(setq x(+ x 1))
(progn (
(if(= x 3)(setq x 100))))))
It won't evaluate the if statement. This is suppose to evaluate cursor size, do undo until cursor size is 100% with 3 maximum undo's. I'm not a real lisp programmer. Anyone know what's wrong with this simple routine?
I've programmed in C/C++ but don't know the ins and out of SDS. Also, if anyone could point out a definitive reference guide to SDS, I would appreciate it.
erase, list, offset (parallel), chamfer, fillet, mirror, copy, change, chprop, move, rotate, trim, etc.
I really like my crosshairs (100%) mainly because my eyes automatically snaps to it unlike a small pickbox or cross on a complicated drawing. And using two letter command aliases (I don't use toolbars), I want reassurance that I'm actually in a command. I'm always looking down at the command box; it disrupts my chain of thoughts. I'd rather be thinking about what I'm drawing and not how I'm drawing it.
I guess I'm going to have to spend some time customizing Intellicad. I'll follow your instructions somewhat and see what I come up with. Thanks.
Update
I figured out that grread won't do what I want but the variable CURSORSIZE will work. Here is one for erase:
(DEFUN C:er ()
(setvar "cursorsize" 1)
(command "erase" (ssget) "")
(setvar "cursorsize" 100))
for offset or parallel use entsel instead of ssget or strange things happen. Now, the issue is UNDO. If I do make a mistake, I would have to do 3 undos. The routine I wrote for that won't work. Here it is:
(defun c:UU (/ x)
(setq x (getvar "cursorsize"))
(while (/= x 100)
(command "u")
(setq x(+ x 1))
(progn (
(if(= x 3)(setq x 100))))))
It won't evaluate the if statement. This is suppose to evaluate cursor size, do undo until cursor size is 100% with 3 maximum undo's. I'm not a real lisp programmer. Anyone know what's wrong with this simple routine?
I've programmed in C/C++ but don't know the ins and out of SDS. Also, if anyone could point out a definitive reference guide to SDS, I would appreciate it.
Another Method
#4I couldn't get the cross-hair setting to reset after calling up the command in the routine because of the non transparency of lisp routine within lisp routines. Another little routine would have to be wrote to reset the cross-hair setting to what-ever it is you use.
I think I found a better method you might want to try, but you will have to manually toggle the cross-hair setting back and forth when you call up a command
Go to Tools/Customize/keyboard and select "New". At the "Press new keyboard" prompt, select F11 ( or whatever key/key combo you have free & available) and in the command field put '_CURSORSIZE;6
(I used a cursor size of 6 for example, you could make it 1 or whatever )
This will toggle the cursor down small when you are copying.
Make anothe using F12 ( for example) and make it '_CURSORSIZE;100
( if you want a cursor size of 100 ) . Be sure the aspostrophe underscore precedes the command.
I think I found a better method you might want to try, but you will have to manually toggle the cross-hair setting back and forth when you call up a command
Go to Tools/Customize/keyboard and select "New". At the "Press new keyboard" prompt, select F11 ( or whatever key/key combo you have free & available) and in the command field put '_CURSORSIZE;6
(I used a cursor size of 6 for example, you could make it 1 or whatever )
This will toggle the cursor down small when you are copying.
Make anothe using F12 ( for example) and make it '_CURSORSIZE;100
( if you want a cursor size of 100 ) . Be sure the aspostrophe underscore precedes the command.
one key toggle ON or OFF
#5Sam, if you want your key to toggle the cursor size on or off, so that there is only one key to use, instead of 2 different keys, you could put
this routine in you lisp files that are loaded in with each drawing.
Change the "TOGGLEON" setq to whatever you want for cursorsize default.
( defun c:curtoggle ( / TOGGLEON TOGGLEOFF CURSIZE )
( setq TOGGLEON 100 TOGGLEOFF 1 CURSIZE (getvar "CURSORSIZE") )
(if (equal CURSIZE TOGGLEOFF )
(setvar "CURSORSIZE" TOGGLEON )
(setvar "CURSORSIZE" TOGGLEOFF ) ) )
Then at the customize keyboard screen, put this in the command field of key F12 (assuming you are using key F12 ):
'_CURTOGGLE
this routine in you lisp files that are loaded in with each drawing.
Change the "TOGGLEON" setq to whatever you want for cursorsize default.
( defun c:curtoggle ( / TOGGLEON TOGGLEOFF CURSIZE )
( setq TOGGLEON 100 TOGGLEOFF 1 CURSIZE (getvar "CURSORSIZE") )
(if (equal CURSIZE TOGGLEOFF )
(setvar "CURSORSIZE" TOGGLEON )
(setvar "CURSORSIZE" TOGGLEOFF ) ) )
Then at the customize keyboard screen, put this in the command field of key F12 (assuming you are using key F12 ):
'_CURTOGGLE
#6
BJ, thanks alot for figuring out the code but I think I figured out what I did wrong. Basically, I removed x from the if statement as it kept giving me grief. For the command 'u' I just added a return at the end.
(defun c:UU (/ x y)
(setq x (getvar "cursorsize"))
(setq y 1)
(while (/= x 100)
(command "undo" "")
(setq y(+ y 1))
(if (= y 3)(setq x 100)(setq x (getvar "cursorsize"))
) ;endif
) ;endwhile
) ;endfunc
(defun c:UU (/ x y)
(setq x (getvar "cursorsize"))
(setq y 1)
(while (/= x 100)
(command "undo" "")
(setq y(+ y 1))
(if (= y 3)(setq x 100)(setq x (getvar "cursorsize"))
) ;endif
) ;endwhile
) ;endfunc