AutoCAD/Autocad
Expert: Bill DeShawn - 6/29/2009
QuestionSubject Dimension editing
Question Using Autocad 2000 mechanical I need to show diameter dimension with ± tolerances out to an unspecified point. Turning off arrow and line on outside end, the text requires editing. Using the multiline text editor box, I delete the <> and type in required text. This works ok until dimensions edited in this way require amending in the future when after two amendments the ± changes to a ? I have tried editing the text in properties area using the typed Alt+0177 with same result. Is there a better way of producing a tolerance diameter dimension without resorting to placing the text separately. This means that the text could be misplaced when stretching and moving parts of the drawing and is also slower to ensure placement matches attached text. Have opened every settings box to no avail, hope you can help. Thanks for looking into this. Alison
--------------------------------------------------------------------------------
Answer Hi Alison,
I don't know mechanical but I think this ACAD fix will work for you. Instead of the Alt+0177, try using %%P. I try to remember that p is Plus-minus. So a tolerance would say %%p.005 and it will show as ±.005
Can also use %%c for the diameter symbol and %%d for degrees.
Hope that helps!
-Shauna
I have already tried the above - same result. Any other thoughts?
Thanks Alison
AnswerAllison:
You can also use the Dim subcommand: newtext. But don't use the normal input for the command. Instead, use the AutoLISP method of calling the command at the command line. If you do, it will bypass the MTEXT editor. Like this:
Command: dim
Dim: (command "newtext")
nil
Dimension text <"<>">Allison %%p .005
Select objects: 1 found
Select objects: 1 found, 2 total
Select objects:
Dim: e (or type exit to exit DIM command set)
Give that a try. I don't have AutoCAD 2000 anymore (haven't had it for about 5 years). So, I can't duplicate your problem. But I'm hoping that by bypassing the MTEXT editor, you'll be able to take care of the problem.
Here is yet another way. I wrote this LISP routine when R14 came out.
(defun mtederr (msg)
(setq *error* olderr)
(princ msg)
(prompt ". Please try again.")
(setq sset nil txset nil mtxset nil qtytx nil qtymtx nil)
(setq newtxt nil oldtxent nil elist nil fixlist nil fixtype nil addtxt nil)
(princ)
)
(defun c:mted (/ ent newtxt elist fixlist fixtype addtxt)
(setq olderr *error* *error* mtederr)
(setq ent (entsel "\nSelect an MTEXT object: "))
(setq elist (entget (car ent)))
(setq oldtxt (cdr (assoc 1 elist)))
(princ (strcat "Existing text: " oldtxt))
(setq newtxt (getstring T "\nNew text: "))
(setq fixlist (cons 1 newtxt))
(setq elist (subst fixlist (assoc 1 elist)elist))
(entmod elist)
(setq *error* olderr)
(princ)
)
Let me know how it goes.
Bill DeShawn
http://my.sterling.net/~bdeshawn