How to make multiple dimensions where the QDIM command doesn't work

How to make multiple dimensions where the QDIM command doesn't work

Anonymous
Not applicable
11,369 Views
4 Replies
Message 1 of 5

How to make multiple dimensions where the QDIM command doesn't work

Anonymous
Not applicable

Hello everyone!

 

I would like to know how could I make multiple dimensions in a row, where the QDIM doesn't work.

 

I have soil profiles, like this:

 

333.png

 

And what I'm trying to do is to insert multiple dimensions of depths in them, like this:

 

11.png

 

 

The problem is, I have like 150 profiles, that extend to around 150 meters, with a dimension every 3 meters, which sums to around 7500 dimensions.

 

I tried to use the QDIM command in many ways, but didn't get the desired result in none of them 😞

 

Does any of you guys, have a good idea of how to automatize this task?

 

Thank you all!

 

 

 

 

 

 

 

 

0 Likes
Accepted solutions (2)
11,370 Views
4 Replies
Replies (4)
Message 2 of 5

imadHabash
Mentor
Mentor
Accepted solution

Hi,

for your first question regarding multiple dimensions in a row ; all what you need is to make your first dimension and then use continue as attached image 

ddim.png

 

regarding your second question  multiple dimensions of depths; make your first vertical dimension then copy it as is for the next stations then use EXTEND command line or TRIM command depend on your case.

 

 

Good Luck..

Imad Habash

EESignature

Message 3 of 5

Kent1Cooper
Consultant
Consultant

@imadHabash wrote:

....  multiple dimensions of depths; make your first vertical dimension then copy it as is for the next stations then use EXTEND command line or TRIM command depend on your case.

....


If you do it that way, just be sure you have the dimension line location point at the lower extension line origin point, so you get Dimensions with no extension lines at the bottom end, because it's the nearer extension line origin point [magenta in the image] that gets Extended to the boundary edge, so if the dimension line location point doesn't coincide with that [as it doesn't where you see red extension lines], you'll get something like the far right Dimension, with the arrow overshooting the profile [or undershooting depending on the direction of slope]:

 

ExtendDimensions.png

 

But would I be correct in assuming you would like to more fully automate the process?  I think a routine could be made that would ask for a zero-reference level [anywhere at the appropriate Y coordinate], a starting-point in the X direction [possibly in the same pick as the zero-reference level], a profile Polyline or Spline below [or above if you ever do it that way, or even crossing the zero level], and a horizontal spacing between Dimension locations, and would build all those Dimensions for you directly.  Is that what you're hoping for, and is that an appropriate set of User inputs?

Kent Cooper, AIA
Message 4 of 5

Kent1Cooper
Consultant
Consultant
Accepted solution

Kent1Cooper wrote:

 

....  I think a routine could be made that would ask for a zero-reference level [anywhere at the appropriate Y coordinate], a starting-point in the X direction [possibly in the same pick as the zero-reference level], a profile Polyline or Spline below [or above if you ever do it that way, or even crossing the zero level], and a horizontal spacing between Dimension locations, and would build all those Dimensions for you directly.  Is that what you're hoping for, and is that an appropriate set of User inputs?


For example [using the zero-reference-level and starting-X location in one pick option], in rather basic terms, this:

 

(defun C:DimProfInc ; = Dimension to Profile at Increments
  (/ pt profsel inc profobj line lineobj intp base)
  (setq
    pt (getpoint "\nLeft-end base point at reference elevation 0: ")
    profsel (entsel "\nProfile object: ")
    inc (getdist "\nHorizontal Increment between vertical Dimensions: ")
    profobj (vlax-ename->vla-object (car profsel))
  ); setq
  (command "_.line" (polar pt 0 inc) "@0,-1" "")
  (setq lineobj (vlax-ename->vla-object (setq line (entlast))))
  (while
    (setq intp
      (safearray-value
        (variant-value (vla-intersectwith lineobj profobj acExtendThisEntity))
      ); safe...
    ); setq
    (command
      "_.dimlinear" (setq base (vlax-curve-getStartPoint line)) intp "@"
      "_.move" line "" base (polar base 0 inc)
    ); command
  ); while
  (entdel line)
); defun

It could use all the usual enhancements [e.g. turn off Osnap before you try it], but first see whether it works as you want.

 

It does not draw a Dimension at the left-end-in-the-X-direction point, because that's how your sample image is, but could be made to do so.

 

It uses whatever the current Layer and Dimension Style are, but could be made to set or even create those.

 

It assumes the drawing is in the WCS, but could be made to work in different UCS's.

 

The Profile object can be anything with linearity [Line, Arc, Polyline, Spline, etc.], but if it's anything that doubles back so that the temporary Line virtually intersects it in more than one place [Circle, closed Ellipse, Polyline or Spline with doubling-back shape] it will fail because it's expecting only one virtual intersection [but it could be made to account for that, and use, for example, the closer one].  But I assume you don't have that situation in these kinds of drawings.

 

The Profile object can cross the zero-reference elevation -- it will Dimension down or up as appropriate at each location.

Kent Cooper, AIA
Message 5 of 5

Anonymous
Not applicable

Thank you so much for you all!

This really helped me! I did what I needed in the way I was expecting!

I'm sorry for taking so long to come there to thanks!

 

Bye!

0 Likes