Community
AutoCAD Forum
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

geometrical data extraction from 3d object

5 REPLIES 5
Reply
Message 1 of 6
Anonymous
1705 Views, 5 Replies

geometrical data extraction from 3d object

Hi,

I wish to extract geometrical data from autocad 3d object (mostly poligons), like length, height and width. I can see them in the property of a single object, but when I want to extract them into a table or into an external file, I cant find them.

 

Can someone solve this matter?

 

Thanks in advance!

5 REPLIES 5
Message 2 of 6
dbroad
in reply to: Anonymous

Polygons aren't 3d objects.  Their properties are available but access would be via some type of customization.  If you have AutoCAD Architecture, you can schedule these kinds of things.

 

3d object properties are encrypted.  There might be a custom app but I am not aware of any.

Architect, Registered NC, VA, SC, & GA.
Message 3 of 6
Anonymous
in reply to: Anonymous

Thanks for your reply, you're right, polygons aren't 3d objects, Ibmean parallelepipeds. Sorry for my english, I'm italian... There is no way to obtain that data, eventually with a macro in lisp or visual basic?
Message 4 of 6
dgorsman
in reply to: Anonymous

Generic 3D objects in AutoCAD aren't built parametrically with values for length, etc.  Unless you dig down into ObjectARX-level coding you won't have direct access to them; somebody put together some *very* basic tools for decoding the raw data but its been years since I've seen it.  Those who are working with such information are typically using XDATA or XRecords to store certain critical information about a standardized object which is then rotated, scaled, moved, or rebuilt from scratch to match the changes to the 3D object.  The more common solution is to move to a vertical or associated product which exposes the required information e.g .pipes, walls, and so on.

----------------------------------
If you are going to fly by the seat of your pants, expect friction burns.
"I don't know" is the beginning of knowledge, not the end.


Message 5 of 6
JDMather
in reply to: Anonymous

What field of work is this for (mechanical, architectural, civil...)?

There are tools like Autodesk Inventor that do this for you.

Students can download Inventor for free from http://www.autodesk.com/edcommunity for educational use.


-----------------------------------------------------------------------------------------
Autodesk Inventor 2019 Certified Professional
Autodesk AutoCAD 2013 Certified Professional
Certified SolidWorks Professional


Message 6 of 6
dbroad
in reply to: Anonymous


@Anonymous wrote:
Thanks for your reply, you're right, polygons aren't 3d objects, Ibmean parallelepipeds. Sorry for my english, I'm italian... There is no way to obtain that data, eventually with a macro in lisp or visual basic?

There might be but I am not sure it is worth it.  The massprop command returns a lot of useful data about a solid or region.  Dimensioning works well.  Dimensional data can be extracted from the dimensions attached to the solid, Sections and views can be created automatically with sectionplane, viewbase, and flatshot.  But if you want a direct programmatic I/O to the solid, AutoCAD is the wrong program to use.  Consider JD's suggestion.  For fun I am attaching a decrypted listing of a box with one corner at the origin (0,0,0) and the opposite corner at (3,4,5).  I hope you can understand my text.  Contact Marc'Antonio Alessi http://alessi.xoom.it if you know how as he is the best Italian coder I know.

 

(-1 . <Entity name: 7e521038>)
(0 . "3DSOLID")
(330 . <Entity name: 7e63bf78>)
(5 . "7F")
(100 . "AcDbEntity")
(67 . 0)
(410 . "Model")
(8 . "0")
(100 . "AcDbModelerGeometry")
(70 . 1)
(1 . "21800 86 2 12 ")
(1 . "16 Autodesk AutoCAD 19 ASM 218.0.0.5116 NT 0 ")
(1 . "25.399999999999999 9.9999999999999995e-007 1e-010 ")
@(1 . "asmheader $-1 -1 @Anonymous 218.0.0.5116 #")
(1 . "body $-1 -1 $-1 $2 $-1 $-1 #")
(1 . "lump $-1 -1 $-1 $-1 $3 $1 #")
(1 . "shell $-1 -1 $-1 $-1 $-1 $4 $-1 $2 #")
(1 . "face $-1 -1 $-1 $5 $6 $3 $-1 $7 forward single #")
(1 . "face $-1 -1 $-1 $8 $9 $3 $-1 $10 reversed single #")
(1 . "loop $-1 -1 $-1 $-1 $11 $4 #")
(1 . "plane-surface $-1 -1 $-1 1.5 2 5 0 0 1 1 0 0 forward_v I I I I #")
(1 . "face $-1 -1 $-1 $12 $13 $3 $-1 $14 reversed single #")
(1 . "loop $-1 -1 $-1 $-1 $15 $5 #")
(1 . "plane-surface $-1 -1 $-1 1.5 2 0 0 0 1 1 0 0 forward_v I I I I #")
(1 . "coedge $-1 -1 $-1 $16 $17 $18 $19 forward $6 0 $-1 #")
(1 . "face $-1 -1 $-1 $20 $21 $3 $-1 $22 reversed single #")
(1 . "loop $-1 -1 $-1 $-1 $23 $8 #")
(1 . "plane-surface $-1 -1 $-1 1.5 0 2.5 0 1 0 0 0 1 forward_v I I I I #")
(1 . "coedge $-1 -1 $-1 $24 $25 $26 $27 forward $9 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $28 $11 $29 $30 forward $6 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $11 $28 $31 $32 forward $6 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $33 $34 $11 $19 reversed $35 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $36 -2 $37 2 $18 $38 forward @7 unknown #")
(1 . "face $-1 -1 $-1 $39 $40 $3 $-1 $41 reversed single #")
(1 . "loop $-1 -1 $-1 $-1 $42 $12 #")
(1 . "plane-surface $-1 -1 $-1 0 2 2.5 1 0 0 0 0 -1 forward_v I I I I #")
(1 . "coedge $-1 -1 $-1 $43 $31 $44 $45 forward $13 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $46 $15 $43 $47 forward $9 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $15 $46 $48 $49 forward $9 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $34 $33 $15 $27 reversed $35 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $50 -2 $51 2 $26 $52 forward @7 unknown #")
(1 . "coedge $-1 -1 $-1 $17 $16 $53 $54 forward $6 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $55 $56 $16 $30 reversed $40 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $37 -1.5 $57 1.5 $29 $58 forward @7 unknown #")
(1 . "coedge $-1 -1 $-1 $23 $59 $17 $32 reversed $13 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $60 -1.5 $36 1.5 $31 $61 forward @7 unknown #")
(1 . "coedge $-1 -1 $-1 $26 $18 $59 $62 forward $35 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $18 $26 $55 $63 reversed $35 0 $-1 #")
(1 . "loop $-1 -1 $-1 $-1 $33 $39 #")
(1 . "vertex $-1 -1 $-1 $19 0 $64 #")
(1 . "vertex $-1 -1 $-1 $19 1 $65 #")
(1 . "straight-curve $-1 -1 $-1 3 2 5 0 1 0 I I #")
(1 . "face $-1 -1 $-1 $-1 $35 $3 $-1 $66 reversed single #")
(1 . "loop $-1 -1 $-1 $-1 $55 $20 #")
(1 . "plane-surface $-1 -1 $-1 1.5 4 2.5 0 -1 0 0 0 -1 forward_v I I I I #")
(1 . "coedge $-1 -1 $-1 $67 $53 $56 $68 forward $21 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $59 $23 $24 $47 reversed $13 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $53 $67 $23 $45 reversed $21 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $60 -2.5 $69 2.5 $44 $70 forward @7 unknown #")
(1 . "coedge $-1 -1 $-1 $25 $24 $67 $71 forward $9 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $51 -1.5 $69 1.5 $43 $72 forward @7 unknown #")
(1 . "coedge $-1 -1 $-1 $56 $55 $25 $49 reversed $40 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $73 -1.5 $50 1.5 $48 $74 forward @7 unknown #")
(1 . "vertex $-1 -1 $-1 $27 0 $75 #")
(1 . "vertex $-1 -1 $-1 $62 1 $76 #")
(1 . "straight-curve $-1 -1 $-1 3 2 0 0 -1 0 I I #")
(1 . "coedge $-1 -1 $-1 $42 $44 $28 $54 reversed $21 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $57 -2 $60 2 $53 $77 forward @7 unknown #")
(1 . "coedge $-1 -1 $-1 $48 $29 $34 $63 forward $40 0 $-1 #")
(1 . "coedge $-1 -1 $-1 $29 $48 $42 $68 reversed $40 0 $-1 #")
(1 . "vertex $-1 -1 $-1 $30 1 $78 #")
(1 . "straight-curve $-1 -1 $-1 1.5 4 5 -1 0 0 I I #")
(1 . "coedge $-1 -1 $-1 $31 $43 $33 $62 reversed $13 0 $-1 #")
(1 . "vertex $-1 -1 $-1 $54 1 $79 #")
(1 . "straight-curve $-1 -1 $-1 1.5 0 5 1 0 0 I I #")
@(1 . "edge $-1 -1 $-1 $36 -2.5 $51 2.5 $33 $80 forward @7 unknown #")
@(1 . "edge $-1 -1 $-1 $37 -2.5 $50 2.5 $34 $81 forward @7 unknown #")
(1 . "point $-1 -1 $-1 3 0 5 #")
(1 . "point $-1 -1 $-1 3 4 5 #")
(1 . "plane-surface $-1 -1 $-1 3 2 2.5 -1 0 0 0 0 1 forward_v I I I I #")
(1 . "coedge $-1 -1 $-1 $44 $42 $46 $71 reversed $21 0 $-1 #")
@(1 . "edge $-1 -1 $-1 $57 -2.5 $73 2.5 $56 $82 forward @7 unknown #")
(1 . "vertex $-1 -1 $-1 $71 0 $83 #")
(1 . "straight-curve $-1 -1 $-1 0 0 2.5 0 0 -1 I I #")
@(1 . "edge $-1 -1 $-1 $69 -2 $73 2 $67 $84 forward @7 unknown #")
(1 . "straight-curve $-1 -1 $-1 1.5 0 0 -1 0 0 I I #")
(1 . "vertex $-1 -1 $-1 $49 0 $85 #")
(1 . "straight-curve $-1 -1 $-1 1.5 4 0 1 0 0 I I #")
(1 . "point $-1 -1 $-1 3 4 0 #")
(1 . "point $-1 -1 $-1 3 0 0 #")
(1 . "straight-curve $-1 -1 $-1 0 2 5 0 -1 0 I I #")
(1 . "point $-1 -1 $-1 0 4 5 #")
(1 . "point $-1 -1 $-1 0 0 5 #")
(1 . "straight-curve $-1 -1 $-1 3 0 2.5 0 0 -1 I I #")
(1 . "straight-curve $-1 -1 $-1 3 4 2.5 0 0 -1 I I #")
(1 . "straight-curve $-1 -1 $-1 0 4 2.5 0 0 -1 I I #")
(1 . "point $-1 -1 $-1 0 0 0 #")
(1 . "straight-curve $-1 -1 $-1 0 2 0 0 1 0 I I #")
(1 . "point $-1 -1 $-1 0 4 0 #")
(290 . 1)
(2 . "{4FCD5772-9A63-4A9A-8FBF-AF7BF6943595}")
(100 . "AcDb3dSolid")
(350 . <Entity name: 7e521050>) (350 . <Entity name: 7e521050>)

 

If you want the program that created this listing, I could provide it but it is obvious that 3D solids (even primitives) are not exactly stored in a friendly and compact way.

Architect, Registered NC, VA, SC, & GA.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Forma Design Contest


Autodesk Design & Make Report