Jump to content

Dimensions Won't Line Up Properly


Bill Tillman

Recommended Posts

I'm on to a new module for this project today and seem to be having a fit with a dimension not lining up with the others as it should. If you try this snippet of code I think you will see what I mean. The last dimension which is supposed to be in the lower right hand corner of the rectangles is not behaving as the others do, even though I wrote the code almost identically to the others which do line up.

 

(defun dtr (x)
 (* pi (/ x 180.0))
); end dtr function

(defun c:test ()

 (setq oldsnap (getvar "osmode"))
 (setq oldpick (getvar "pickbox"))
 (setvar "osmode" 0)
 (setvar "pickbox" 0)
 
 (setq a 55.0
   b 45.0
   pt1 '(0.0 0.0)
   pt2 (polar pt1 0.0 b)
   pt3 (polar pt2 (dtr 270.0) a)
   pt4 (polar pt3 (dtr 180.0) b)
   ctrl1 (polar pt1 0.0 (/ b 2.0))
   ctrl2 (polar ctrl1 (dtr 90.0) 2)
   ctrl3 (polar pt1 (dtr 270.0) (/ a 2.0))
   ctrl4 (polar ctrl3 0.0 2))

 (command "._RECTANGLE" pt1 pt3)
 (command "._OFFSET" 0.1875 (entlast) (polar pt3 0 12) "")
 (command "._OFFSET" (- 3 (* 0.1875 2)) (entlast) (polar pt3 0 12) "")
 (command "._RECTANGLE" (polar (polar pt1 (dtr 180.0) 2) (dtr 90.0) 2) (polar (polar pt3 (dtr 0.0) 2) (dtr 270.0) 2))
 (command "._OFFSET" "1" (entlast) (polar pt1 (dtr 90.0) 12) "")
 (command "._PLINE" (polar (polar pt1 (dtr 180.0) 4) (dtr 90.0) 2)
              (polar (polar pt1 (dtr 180.0) 2) (dtr 90.0) 4)
              (polar (polar pt2 (dtr 0.0) 2) (dtr 90.0) 4)
              (polar (polar pt2 (dtr 0.0) 4) (dtr 90.0) 2)
              (polar (polar pt3 (dtr 0.0) 4) (dtr 270.0) 2)
              (polar (polar pt3 (dtr 270.0) 4) (dtr 0.0) 2)
              (polar (polar pt4 (dtr 180.0) 2) (dtr 270.0) 4)
              (polar (polar pt4 (dtr 180.0) 4) (dtr 270.0) 2) "c")
 (command "._LINE" pt1 (polar (polar pt1 (dtr 180.0) 3) (dtr 90.0) 3) "")
 (command "._MIRROR" (entlast) "" ctrl1 ctrl2 "")
 (command "._MIRROR" (entlast) "" ctrl3 ctrl4 "")
 (command "._MIRROR" (entlast) "" ctrl1 ctrl2 "")

 (command "._ZOOM" "A")

 (command "._DIMLINEAR" pt1 pt2 (polar pt1 (dtr 90.0) 24))
 (command "._DIMLINEAR" pt1 (polar (polar pt1 (dtr 180.0) 4) (dtr 90.0) 2) (polar pt1 (dtr 90.0) 24))
 (command "._DIMLINEAR" pt2 (polar (polar pt2 (dtr 0.0) 4) (dtr 90.0) 2) (polar pt2 (dtr 90.0) 24))
 (command "._DIMLINEAR" pt1 pt4 (polar pt1 (dtr 180.0) 24))
 (command "._DIMLINEAR" pt1 (polar (polar pt1 (dtr 90.0) 4) (dtr 180.0) 2) (polar pt1 (dtr 180.0) 24))
 [b][color=red](command "._DIMLINEAR" pt4 (polar (polar pt4 (dtr 270.0) 4) (dtr 180.0) 2) (polar pt4 (dtr 180.0) 24))[/color][/b]
 

 (command "._ZOOM" "A")
 (setvar "osmode" oldsnap)
 (setvar "pickbox" oldpick)
 
 (princ)
); end test function

Link to comment
Share on other sites

When add dimensions via COMMAND function is safer to constrain them to desired position:

(command "._DIMLINEAR" pt4 (polar (polar pt4 (dtr 270.0) 4) (dtr 180.0) 2) [color=red]"_V"[/color] (polar pt4 (dtr 180.0) 24))

Link to comment
Share on other sites

MSasu, thanks very kindly. I wasn't not aware that such a switch existed for dimlinear command.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...