V3.2.0001 DTEXT Bugs

When you edit a DTEXT entity via ENTITY PROPERTIES and change the text justification there is inconsistent behavior.If the text entity is changed to LEFT it adjusts the insert point relative to the text so the text stays exactly where it was.If the entity is changed to RIGHT, MIDDLE, etc. (not LEFT) it leaves the insert point in the same place and moves the text to suit.If you change text to right then left then right then left it moves across the screen)This inconsistency is irritating but the worst problem is when you edit several entities of DTEXT at the same time and change the justification from LEFT to RIGHT, MIDDLE etc. it reassigns all the insert points to 0,0,0 (some times another common point). This is hardly acceptable!I have not tried all the justification combinations to see if any other odd behavior exists.

Comments

  • Bug dates back to V2.2.0010 or earlier.

  • I wrote this lisp as a temporary workaround for this annoying bug. Try it out. I think the bug in Icad was revealed when I wrote this lisp: you can't ENTMOD a text location (dxf group 10). This should be possible indeed. The error you get when changing multiple text justifications is the same I get when I try to ENTMOD the location of multiple strings. (defun C:JUSTIFY ( / ss cnt entlist inspt1 inspt2 entlist)(setq oldcmdecho (getvar "CMDECHO"))(setvar "CMDECHO" 0)(setq ss (ssget '((0 . "TEXT"))))(setq cnt 0)(initget "Left Center Right Middle TLeft TCenter TRight MLeft MCenter MRight BLeft BCenter BRight")(setq justhor (getkword "\nLeft/Center/Middle/Right/MLeft/MCenter/MRight/BLeft/BCenter/BRight/TLeft/TCenter/TRight: "))(cond ((= justhor "Left") (setq justhor 0 justver 0) ) ((= justhor "Center") (setq justhor 1 justver 0) ) ((= justhor "Right") (setq justhor 2 justver 0) ) ((= justhor "Middle") (setq justhor 4 justver 0) ) ((= justhor "TLeft") (setq justhor 0 justver 3) ) ((= justhor "TCenter") (setq justhor 1 justver 3) ) ((= justhor "TRight") (setq justhor 2 justver 3) ) ((= justhor "MLeft") (setq justhor 0 justver 2) ) ((= justhor "MCenter") (setq justhor 1 justver 2) ) ((= justhor "MRight") (setq justhor 2 justver 2) ) ((= justhor "BLeft") (setq justhor 0 justver 1) ) ((= justhor "BCenter") (setq justhor 1 justver 1) ) ((= justhor "BRight") (setq justhor 2 justver 1) ))(repeat (sslength ss)(setq entlist (entget (ssname ss cnt)))(setq inspt1 (cdr (assoc 10 entlist)))(if (and (= 0 (cdr (assoc 72 entlist)))(= 0 (cdr(assoc 73 entlist))))(setq inspt2 nil)(setq inspt2 (cdr (assoc 11 entlist))))(entmod (subst (cons 72 justhor) (assoc 72 entlist) entlist))(setq entlist (entget (ssname ss cnt)))(entmod (subst (cons 73 justver) (assoc 73 entlist) entlist))(if (and inspt2 (or (/= 0 justhor) (/= 0 justver)))(progn(setq entlist (entget (ssname ss cnt)))(command "move" (ssname ss cnt) "" (cdr (assoc 11 entlist)) inspt2))(command "move" (ssname ss cnt) "" (cdr (assoc 10 entlist)) inspt1))(if (and inspt2 (and (= 0 justhor) (= 0 justver)))(progn(setq entlist (entget (ssname ss cnt)))(command "move" (ssname ss cnt) "" (cdr (assoc 10 entlist)) inspt2)))(if (not inspt2)(progn(setq entlist (entget (ssname ss cnt)))(command "move" (ssname ss cnt) "" (cdr (assoc 11 entlist)) (cdr (assoc 10 entlist)))))(setq cnt (1+ cnt)))(setvar "CMDECHO" oldcmdecho))

  • A. Vaernes,Tryed the lisp routine and seems to work great. Thank you. Now if Intellicad would just incorperate it I would be really happy.J

  • Bug still not addressed as of v3.3.0003.

This discussion has been closed.