Jim Clayton Posted August 19, 2021 Posted August 19, 2021 Good Morning Everyone. I just had a quick question. I've only ever worked out of/printed out of Model Space. I recently switched to a new company and they like to print out of Paper space. This often leads to scaling issues. Does anyone know of a Lisp or maybe an AutoCAD function that solves the scaling issue automatically or with little effort to cut down on time? Thanks for the help. Quote
CyberAngel Posted August 19, 2021 Posted August 19, 2021 Which "scaling issues" are we talking about? If it's text, there's annotative text that adjusts to different sizes. If it's not text, model space objects should be the right size to begin with. 1 Quote
Jim Clayton Posted August 19, 2021 Author Posted August 19, 2021 Yes, it's mostly a text height issue that I'm encountering. Not certain i'm familiar with annotative text. Might need a refresher or a google search. Quote
CyberAngel Posted August 19, 2021 Posted August 19, 2021 (edited) 2 hours ago, Jim Clayton said: Yes, it's mostly a text height issue that I'm encountering. Not certain i'm familiar with annotative text. Might need a refresher or a google search. In a nutshell, annotative text gives you multiple copies of the same text item, each at a different scale. You can define the assortment of scales for each item. If the text in a viewport is annotative and doesn't match the viewport scale, it doesn't appear in that viewport. If the scales do match, you see the copy at the appropriate scale. To enable annotative text, you must toggle it for that text object. You automatically get the current scale, so pay attention to that. You can then add whichever scales you need. The mechanism depends on how you like to work. In the Properties window, for instance, the Annotative property and scale list are under Misc. If you have any questions, don't hesitate to ask. Annotation can be a confusing topic. Edited August 19, 2021 by CyberAngel 2 Quote
Jim Clayton Posted August 19, 2021 Author Posted August 19, 2021 Thanks. I appreciate the help. I'm probably going to have to do a bit more research to make sure that I have a better grasp on this but this helps get me started in the right direction. Tks. Quote
BIGAL Posted August 20, 2021 Posted August 20, 2021 This is a command line type version for adding scales to annotative text. (command "_.-objectscale" (entsel "\npick text") "" "_a" "1:100" "1:250" "") note the multi scale or just one. 1 Quote
Jim Clayton Posted August 24, 2021 Author Posted August 24, 2021 BIGAL, thanks for the help. Further elaborating on this. The problem that I'm running into it seems is that i can set the text height to any given size, let's say 9". But when I plot it and hold a scale up next to it it's not measuring at 9". So i'm not sure if this is a plotting issue or a setting that I need to change in CAD because I'm working out of borders that are 3/16"=1'-0" or 1/4"=1'-0". I would appreciate any insight on the issue. Tks. Quote
tombu Posted September 3, 2021 Posted September 3, 2021 With this lisp you can set text size by selecting any Text, Mtext or Attribute. Or hit enter and it will prompt you with a text size that will print at a height of 0.1" Enter to accept that or enter a different height. ;| Text size - This one you can get text size by picking text, entering a value, picking two points, or it will calculate it from CANNOSCALEVALUE if in Model Space. It doesn't change on Escape. (load "TXTsize.LSP") tas ; by: Tom Beauford Leon County Public Works Engineering ===============================================|; (defun C:tas (/ *error* vars tnt ts txt etp style) (setq vars (mapcar '(lambda (x) (cons x (getvar x))) '("luprec" "modemacro" "cmdecho"))) (defun *error* (msg) ;; Reset variables (mapcar '(lambda (x) (setvar (car x) (cdr x))) vars) (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")) (princ (strcat "\nError: " msg)) ) (princ) ) (setvar "luprec" 8) (setvar "cmdecho" 0) (grtext -1 "Select Text, Mtext or Attribute. Enter for more Options.") (setq tnt(nentsel "\nSelect Text Entity: ")) (cond ((= 1 (getvar "cvport"))(setq ts "0.1")) ((= 1 (getvar "TILEMODE"))(setq ts (rtos(/ 0.1 (getvar 'cannoscalevalue))2 3))) (T(setq ts (rtos(/(caddr (trans '(0 0 1) 3 2))10)2 3))) ) (if (= "0" (substr ts (strlen ts))) (while (= (atof ts)(atof (substr ts 1 (- (strlen ts)1)))) (setq ts(substr ts 1 (- (strlen ts)1))) );while );if (setq txt (strcat"\nChange Text Size from " (rtos(getvar "textsize")) " to :<" ts "> ")) (if tnt (setq etp (cdr(assoc 0 (entget(car tnt)))))) (if (or(= "TEXT" etp)(= "MTEXT" etp)(= "ATTRIB" etp)) (progn (setq style (getvar "textstyle") style (tblobjname "style" style) xdata (cadr (assoc -3 (entget style '("AcadAnnotative")))) tnt(cdr(assoc 40 (entget (car tnt)))) );setq (if(and xdata (= (cdr (nth 4 xdata)) 1)) (setq tnt(* tnt (getvar "cannoscalevalue"))) );if );progn (progn (grtext -1 "Enter Size, Pick 2 Points or Accept Default.") (setq tnt (getdist txt)) );progn );if (if (or(= tnt nil)(= tnt 0.0)) (setq tnt (atof ts)) );if (setvar "textsize" tnt) (setq tnt (rtos(getvar "textsize"))) (if (= "0" (substr tnt (strlen tnt))) (while (= (atof tnt)(atof (substr tnt 1 (- (strlen tnt)1)))) (setq tnt(substr tnt 1 (- (strlen tnt)1))) );while );if (mapcar '(lambda (x) (setvar (car x) (cdr x))) vars) (grtext -1 "") ;Clear status line (vl-cmdf "redraw") (princ) ) You can change the default text height by replacing 0.1 in these two lines ((= 1 (getvar "cvport"))(setq ts "0.1")) ((= 1 (getvar "TILEMODE"))(setq ts (rtos(/ 0.1 (getvar 'cannoscalevalue))2 3))) with whatever height you wish. Always annotate last, having to modify it after adding/modifying, rotating or rescaling a view is a frustrating waste of time. 1 1 Quote
Jim Clayton Posted September 23, 2021 Author Posted September 23, 2021 Sorry, I just saw this. This might actually be VERY helpful. Very much appreciated. Thanks for the help. 1 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.