yrnomad Posted November 19, 2013 Posted November 19, 2013 I've got a little lisp that I've had people using for a while that quickly sets some variables in our drawings. I didn't include cannoscale at the time because we weren't using annotation scale very much, and I wasn't sure how to do the scale part in lisp. Now I've been requested to make that happen, and I think I'm in over my skis. I tried it a couple ways for the 1/4" and 1/8" scales as a test, and get "; error: too many arguments" Can someone show me the way to do it, or maybe give me a better way to go about the whole thing? Here is my code: ;;;;;;;;;;;;;;;Sets related scales to 1;;;;;;;;;;;;;;; (defun c:s1 () (setvar "cmdecho" 1) (setvar "userR1" 1) (setvar "dimscale" 1) (setvar "ltscale" 0.3) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 0.1) ) ;;;;;;;;;;;;;;;Sets related scales to 1;;;;;;;;;;;;;;; (defun c:s12 () (setvar "cmdecho" 1) (setvar "userR1" 12) (setvar "dimscale" 12) (setvar "ltscale" 3.6) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 1.2) ) ;;;;;;;;;;;;;;;Sets related scales to 3/4;;;;;;;;;;;;;;; (defun c:s16 () (setvar "cmdecho" 1) (setvar "userR1" 16) (setvar "dimscale" 16) (setvar "ltscale" 4. (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 1.6) ) ;;;;;;;;;;;;;;;Sets related scales to 1/2;;;;;;;;;;;;;;; (defun c:s24 () (setvar "cmdecho" 1) (setvar "userR1" 24) (setvar "dimscale" 24) (setvar "ltscale" 7.2) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 2.4) ) ;;;;;;;;;;;;;;;Sets related scales to 3/8;;;;;;;;;;;;;;; (defun c:s32 () (setvar "cmdecho" 1) (setvar "userR1" 32) (setvar "dimscale" 32) (setvar "ltscale" 9.6) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 3.2) ) ;;;;;;;;;;;;;;;Sets related scales to 1/4;;;;;;;;;;;;;;; (defun c:s48 () (setvar "cmdecho" 1) (setvar "userR1" 48) (setvar "dimscale" 48) (setvar "ltscale" 14.4) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 4. (setvar "cannoscale" "1/4" = 1'-0"") ) ;;;;;;;;;;;;;;;Sets related scales to 3/16;;;;;;;;;;;;;;; (defun c:s64 () (setvar "cmdecho" 1) (setvar "userR1" 64) (setvar "dimscale" 64) (setvar "ltscale" 19.2) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 6.4) ) ;;;;;;;;;;;;;;;Sets related scales to 1/8;;;;;;;;;;;;;;; (defun c:s96 () (setvar "cmdecho" 1) (setvar "userR1" 96) (setvar "dimscale" 96) (setvar "ltscale" 28. (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 9.6) (setvar "cannoscale" "1/8" = 1'-0"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/10;;;;;;;;;;;;;;; (defun c:s120 () (setvar "cmdecho" 1) (setvar "userR1" 120) (setvar "dimscale" 120) (setvar "ltscale" 36) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 12.0) ) ;;;;;;;;;;;;;;;Sets related scales to 3/32;;;;;;;;;;;;;;; (defun c:s128 () (setvar "cmdecho" 1) (setvar "userR1" 128) (setvar "dimscale" 128) (setvar "ltscale" 38.4) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 12. ) ;;;;;;;;;;;;;;;Sets related scales to 1/16;;;;;;;;;;;;;;; (defun c:s192 () (setvar "cmdecho" 1) (setvar "userR1" 192) (setvar "dimscale" 192) (setvar "ltscale" 57.6) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 19.2) ) ;;;;;;;;;;;;;;;Sets related scales to 1/20;;;;;;;;;;;;;;; (defun c:s240 () (setvar "cmdecho" 1) (setvar "userR1" 240) (setvar "dimscale" 240) (setvar "ltscale" 72) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 24.0) ) ;;;;;;;;;;;;;;;Sets related scales to 1/30;;;;;;;;;;;;;;; (defun c:s360 () (setvar "cmdecho" 1) (setvar "userR1" 360) (setvar "dimscale" 360) (setvar "ltscale" 108) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 36.0) ) ;;;;;;;;;;;;;;;Sets related scales to 1/40;;;;;;;;;;;;;;; (defun c:s480 () (setvar "cmdecho" 1) (setvar "userR1" 480) (setvar "dimscale" 480) (setvar "ltscale" 144) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 48.0) ) ;;;;;;;;;;;;;;;Sets related scales to 1/50;;;;;;;;;;;;;;; (defun c:s600 () (setvar "cmdecho" 1) (setvar "userR1" 600) (setvar "dimscale" 600) (setvar "ltscale" 180) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 60.0) ) ;;;;;;;;;;;;;;;Sets related scales to 1/60;;;;;;;;;;;;;;; (defun c:s720 () (setvar "cmdecho" 1) (setvar "userR1" 720) (setvar "dimscale" 720) (setvar "ltscale" 216) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 72.0) ) ;;;;;;;;;;;;;;;Sets related scales to 1/100;;;;;;;;;;;;;;; (defun c:s1200 () (setvar "cmdecho" 1) (setvar "userR1" 1200) (setvar "dimscale" 1200) (setvar "ltscale" 360) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 120.0) ) Quote
ReMark Posted November 19, 2013 Posted November 19, 2013 Would this work? (setvar "cannoscale" "1\" = 48") Quote
yrnomad Posted November 19, 2013 Author Posted November 19, 2013 ReMark it didn't work with that edit ; error: AutoCAD variable setting rejected: "cannoscale" "1\" = 48" Quote
ReMark Posted November 19, 2013 Posted November 19, 2013 Maybe this way? (setq "cannoscale" "1/4\" = 1'-0\"") Quote
yrnomad Posted November 19, 2013 Author Posted November 19, 2013 Bingo! So I just need to do the same ratio format for the rest of my scales... i.e. 1"=30'. Quote
ReMark Posted November 19, 2013 Posted November 19, 2013 So it worked? Well I'll be d@&%ed. I'm not sure about engineering scales as I thought all we were talking about were architectural scales. Why did you go and change the rules in the middle of the game dude? LoL Quote
yrnomad Posted November 20, 2013 Author Posted November 20, 2013 yep, always making things difficult eh! I picked around at it, and found that because I didn't have some of those engineering scales in my scales list, it wouldn't do the setting. But if the scale existed then it worked fine. So, now I need to create an updated default scale list... more work. Thanks so much for all you do on this forum. Seems like you've usually got an answer to help out with. So, here is the new version. ;;;;;;;;;;;;;;;Sets related scales to 1;;;;;;;;;;;;;;; (defun c:s1 () (setvar "cmdecho" 1) (setvar "userR1" 1) (setvar "dimscale" 1) (setvar "ltscale" 0.3) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 0.1) (setvar "cannoscale" "1\" = 1\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1;;;;;;;;;;;;;;; (defun c:s12 () (setvar "cmdecho" 1) (setvar "userR1" 12) (setvar "dimscale" 12) (setvar "ltscale" 3.6) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 1.2) (setvar "cannoscale" "1\" = 1'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 3/4;;;;;;;;;;;;;;; (defun c:s16 () (setvar "cmdecho" 1) (setvar "userR1" 16) (setvar "dimscale" 16) (setvar "ltscale" 4. (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 1.6) (setvar "cannoscale" "3/4\" = 1'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/2;;;;;;;;;;;;;;; (defun c:s24 () (setvar "cmdecho" 1) (setvar "userR1" 24) (setvar "dimscale" 24) (setvar "ltscale" 7.2) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 2.4) (setvar "cannoscale" "1/2\" = 1'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 3/8;;;;;;;;;;;;;;; (defun c:s32 () (setvar "cmdecho" 1) (setvar "userR1" 32) (setvar "dimscale" 32) (setvar "ltscale" 9.6) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 3.2) (setvar "cannoscale" "3/8\" = 1'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/4;;;;;;;;;;;;;;; (defun c:s48 () (setvar "cmdecho" 1) (setvar "userR1" 48) (setvar "dimscale" 48) (setvar "ltscale" 14.4) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 4. (setvar "cannoscale" "1/4\" = 1'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 3/16;;;;;;;;;;;;;;; (defun c:s64 () (setvar "cmdecho" 1) (setvar "userR1" 64) (setvar "dimscale" 64) (setvar "ltscale" 19.2) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 6.4) (setvar "cannoscale" "3/16\" = 1'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/8;;;;;;;;;;;;;;; (defun c:s96 () (setvar "cmdecho" 1) (setvar "userR1" 96) (setvar "dimscale" 96) (setvar "ltscale" 28. (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 9.6) (setvar "cannoscale" "1/8\" = 1'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/10;;;;;;;;;;;;;;; (defun c:s120 () (setvar "cmdecho" 1) (setvar "userR1" 120) (setvar "dimscale" 120) (setvar "ltscale" 36) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 12.0) (setvar "cannoscale" "1\" = 10'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 3/32;;;;;;;;;;;;;;; (defun c:s128 () (setvar "cmdecho" 1) (setvar "userR1" 128) (setvar "dimscale" 128) (setvar "ltscale" 38.4) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 12. (setvar "cannoscale" "3/32\" = 1'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/16;;;;;;;;;;;;;;; (defun c:s192 () (setvar "cmdecho" 1) (setvar "userR1" 192) (setvar "dimscale" 192) (setvar "ltscale" 57.6) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 19.2) (setvar "cannoscale" "1\" = 16'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/20;;;;;;;;;;;;;;; (defun c:s240 () (setvar "cmdecho" 1) (setvar "userR1" 240) (setvar "dimscale" 240) (setvar "ltscale" 72) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 24.0) (setvar "cannoscale" "1\" = 20'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/30;;;;;;;;;;;;;;; (defun c:s360 () (setvar "cmdecho" 1) (setvar "userR1" 360) (setvar "dimscale" 360) (setvar "ltscale" 108) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 36.0) (setvar "cannoscale" "1\" = 30'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/40;;;;;;;;;;;;;;; (defun c:s480 () (setvar "cmdecho" 1) (setvar "userR1" 480) (setvar "dimscale" 480) (setvar "ltscale" 144) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 48.0) (setvar "cannoscale" "1\" = 40'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/50;;;;;;;;;;;;;;; (defun c:s600 () (setvar "cmdecho" 1) (setvar "userR1" 600) (setvar "dimscale" 600) (setvar "ltscale" 180) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 60.0) (setvar "cannoscale" "1\" = 50'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/60;;;;;;;;;;;;;;; (defun c:s720 () (setvar "cmdecho" 1) (setvar "userR1" 720) (setvar "dimscale" 720) (setvar "ltscale" 216) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 72.0) (setvar "cannoscale" "1\" = 60'-0\"") ) ;;;;;;;;;;;;;;;Sets related scales to 1/100;;;;;;;;;;;;;;; (defun c:s1200 () (setvar "cmdecho" 1) (setvar "userR1" 1200) (setvar "dimscale" 1200) (setvar "ltscale" 360) (setvar "msltscale" 0) (setvar "psltscale" 0) (setvar "textsize" 120.0) (setvar "cannoscale" "1\" = 100'-0\"") ) Quote
ksperopoulos Posted November 20, 2013 Posted November 20, 2013 You know, if you are now using annotative scales, I don't think you will need to set all the other variables. You should just be able to set you msltscale and psltscale to a value of 1 each and then set your ltscale to one value that you will be happy with (like 0.25). Then when you change scales and regen, it should update the linetypes. You won't have to worry about textsize or dimscale either. They are automatically adjusted as well. Just my two cents. Quote
ReMark Posted November 20, 2013 Posted November 20, 2013 I was thinking the same thing as ksperopoulos yesterday when I first read through your post. Annotative scaling is supposed to make one's life easier not more complicated. If you really want "easy" then abandon annotative scaling and place all your dimensions and text in your layout and not in model space. The only setting one has to worry about is making dimensions "associative". Your text and dimensions are done at real world size. Quote
yrnomad Posted May 7, 2014 Author Posted May 7, 2014 Ah yes. I am finally getting a quick day to get back to these issues so I'm trying to plan catchup... hard to believe it's been 6 months. I am playing around a bit with the MSLTScale/PSLTScale/LTScale method, trying to get the hang of it. The problem with going about annotation in Layout is we reference our files into others sometimes, so we would not see that annotation if it was in layout... The current fix-it now crisis is a ripple off of the tail wagging the dog. One of our sub contractors wanted to change to a different layer name set. I have been pushing for this for several years, but stuck behind "the way it's always been". So I got all 3 branches to agree to use close to AIA format, which meant I needed to change the layer names inside a portion of our blocks. While I was doing that I changed one of the text styles of an attribute to Annotative so the text would always match the scale. I tested it on a few blocks and it seemed fine. Well today I figured out that the blocks made up to real scale that works great, but if it is a block that is scaled, the attribute comes in huge. So I'm pounding against a annotative wall again. But, hey, thanks for your help last time. Quote
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.
Note: Your post will require moderator approval before it will be visible.