Dividing 3D Objects?

Dividing 3D Objects?

Anonymous
Not applicable
6,706 Views
10 Replies
Message 1 of 11

Dividing 3D Objects?

Anonymous
Not applicable

Hello, First post and many thanks for all the questions I have had that your community has already answered. 

 

Searched and searched and have not yet found a solution for this conundrum- 

 

I have a series of profiles through which I have created a loft.  A shaped tube, if you will. I want now to measure (divide at intervals) so as to create slices. 

 

Imagine a loaf of bread. 

 

When I direct the divide command I get - Cannot divide that object.*Invalid* 

 

How does one divide such an object? 

 

Thanks in advance for your assistance. 

0 Likes
6,707 Views
10 Replies
Replies (10)
Message 2 of 11

leeminardi
Mentor
Mentor

Try the slice command!

lee.minardi
0 Likes
Message 3 of 11

Anonymous
Not applicable

Thanks for the reply.

 

I have tried slice, but I cannot seem to make it slice 96 times .25 units apart. 

0 Likes
Message 4 of 11

BeKirra
Advisor
Advisor

@Anonymouswrote:

Thanks for the reply.

 

I have tried slice, but I cannot seem to make it slice 96 times .25 units apart


In your case you may use extrusion then subtract functions to cut with a gap of 0.25 unit width.

Or manually move your parts 0.25 unit apart after slicing.

 

HTH

Please mark "Accept as Solution" and "Like" if my reply resolves the issue and it will help when others need helps.
= ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ = ♪ = ♫ =
A circle is the locus of a cursor, starting and ending at the same point on a plane in model space or in layout such that its distance from a given coordinates (X,Y) is always constant.
X² + Y² = C²
0 Likes
Message 5 of 11

Corsten.Au
Advisor
Advisor

divide the 3d model ( ex Cube ) in parts you want..

while slicing, you need to select 3points to define the plane you are slicing..

ex : slicing a cube in two parts, use SLICE command, and then select 3 points to 

define the plane ( 2 points defines line, 3 points define a plane ) 

 

key is to define a plane..

 

hope that helps..

Corsten
Building Designer
0 Likes
Message 6 of 11

Michiel.Valcke
Advisor
Advisor

Since you constructed your solid using _LOFT, that means you have some kind op path or guideline which you could reconstruct with a _3DPOLYLINE, if you do you can use _DIVIDE on the 3DPOLYLINE, use _PTYPE to show your points and use those points for selecting at which height you wish to slice the solid.

0 Likes
Message 7 of 11

Kent1Cooper
Consultant
Consultant

@Corsten.Au wrote:

....

while slicing, you need to select 3points to define the plane you are slicing..

.... 

key is to define a plane..

....


If the desired slicing planes are parallel to one of the coordinate planes, you don't need to spell out 3 points to define a plane each time.  You can use the XY or YZ or ZX options in Slice.  If that's the case, an AutoLisp routine would be quite easy to write that would slice it into however many equal layers [not in the AutoCAD drawing sense of the word] you want.  [One could be written to do the same if the slicing planes are not  parallel to the coordinate axes, but it would be more complicated, either changing the UCS or calculating 3 points to define the plane at each level, or some such approach.]

Kent Cooper, AIA
0 Likes
Message 8 of 11

leeminardi
Mentor
Mentor

Here's a fairly quick way I think you can get your 96 sections.

 

Create a box 0.25 thick and long and wide enough to surround the object you want to section.  Create a line in the z direction (I am assuming your slices ar parallel to the XY plane).

 

Use array path and select the vertical line then type I (for items) and specify a value of 0.5.  You can follow this with the number of items.

 

This should leave you with something that looks like this.

 

s1.JPG

Explode the stack of boxes so that they are solids and not an associative array.

 

Move the stack of boxes such that they cover your lofted solid and go to a front view and zoom in like this.

s2.JPG

Now give the subtract command and select the lofted solid object hit enter then select the stack of boxes.

 

Now explode the resulting solid.

you can now erase the sides of what were solid slabs leaving the slices.

 

s3.JPG

Here's another view showing the slices with some side surfaces yet to be erased.

s4.JPG

 

 

lee.minardi
0 Likes
Message 9 of 11

dbroad
Mentor
Mentor

Interesting solutions.  My preference would be to draw a planar surface in whatever plane you want to do the sections.  Then in a perpendicular plane, create a rectangular array of those planar surfaces with the spacing you want.  Then use the interfere command. Uncheck delete interfering solids.  Then hide the array.

 

Interfering planes shown with solid in xrayInterfering planes shown with solid in xray

Architect, Registered NC, VA, SC, & GA.
0 Likes
Message 10 of 11

Anonymous
Not applicable

These are all great responses. Thanks for taking the time.

 

The problem seems to lie in limitations creating the loft cross-sections.  Autocad doesn't allow for a 3d polyline to be chosen for loft. So I have to make my center section from a 2d polyline and once the solid in created in loft, I cannot then divide or measure. 

 

Unfortunately I cannot delete or erase sections as this object, once sliced will need to be separated and made co planar.  All sections need to be accounted for, no negative space.  

 

As though I were making a 3d puzzle.  Stacking pieces on one another creating a this object from real slices. 

 

I hope I am explaining this clearly. 

 

Back to the drawing board...

 

 

0 Likes
Message 11 of 11

Kent1Cooper
Consultant
Consultant

@Kent1Cooper wrote:


If the desired slicing planes are parallel to one of the coordinate planes, you don't need to spell out 3 points to define a plane each time.  You can use the XY or YZ or ZX options in Slice.  If that's the case, an AutoLisp routine would be quite easy to write that would slice it into however many equal layers [not in the AutoCAD drawing sense of the word] you want. ....


For example, for horizontal  [XY-plane] slices [lightly tested in WCS only]:

 

(defun C:SHL ; = Slice into Horizontal Layers
  (/ ss layers n 3ds 3dsss sliceZ deltaZ)
  (prompt "\nTo Slice 3DSolid(s) into equal-thickness Horizontal Layers,")
  (if (setq ss (ssget ":L" '((0 . "3DSOLID"))))
    (progn
      (setq layers (getint "\nNumber of layers to Slice into: "))
      (repeat (setq n (sslength ss))
        (setq
          3ds (ssname ss (setq n (1- n)))
          3dsss (ssadd 3ds)
        ); setq
        (vla-getboundingbox (vlax-ename->vla-object 3ds) 'minpt 'maxpt)
        (setq
          sliceZ (caddr (vlax-safearray->list minpt))
          deltaZ (/ (- (caddr (vlax-safearray->list maxpt)) sliceZ) layers)
        ); setq
        (repeat (1- layers)
          (command "_.slice" 3dsss "" "_xy"
"_none" (list 0 0 (setq sliceZ (+ sliceZ deltaZ))) "_both"
); command (ssadd (entlast) 3dsss); [so it doesn't matter which part is the original] ); repeat ); repeat ); progn ); if (princ) ); defun
(vl-load-com)

 

It does any number of them in one run, each into the same number of layers [so the layer thicknesses will differ from one 3DSolid to another depending on each one's extents in the Z direction].

 

It could be made to remember your number of layers and offer it as default on subsequent use, could have choices of slicing orientation as options, etc., and could use the usual extras [*error* handling, command-echo suppression, Undo begin/end, etc.].

Kent Cooper, AIA