VBA - manually selecting a 3d object and extracting centroid & volume properties

Hi,
I am currently working in precast concrete manufacturing and want to find an easy way to use a VBA macro to select a single
3d object and automatically draw a 'point' at it's centroid in 3d space.
It would also be useful to extract the volume of the object and display it in cubic metres.
This can then be multiplied by a constant to give the object's weight.

If a simple macro can be used then I would like to develop the program further with more features
using a windowed graphical interface.

Any help, advice or code snippets would be vary helpful and appreciated.

Thanks. Tim

Comments

  • Further to my original post I have had a go at some coding.....see below

    Sub infotest()

    Dim unit As Acad3DSolid
    Dim bpoint As Variant
    Dim ucgp As Variant
    Dim uvolm As Variant
    Dim cgx As Variant
    Dim cgy As Variant
    Dim cgz As Variant
    
    ThisDrawing.Utility.GetEntity unit, bpoint, "Select Unit:"
    ucgp = unit.Centroid
    cgx = ucgp(0)
    cgy = ucgp(1)
    cgy = ucgp(2)
    uvolm = unit.Volume / 1000000000
    
    MsgBox "C of G = " & Format(ucgp(0), "#0") & ", " & Format(ucgp(1), "#0") & ", " & Format(ucgp(2), "#0") & " VOL=" & Format(uvolm, "###0.0#")
    
    ThisDrawing.ModelSpace.InsertBlock ucgp, "d:\development\cofg1.dwg", 1, 1, 1, 0
    

    End Sub

    As it stands, this code allows me to select a 3d object and extract its values for its centroid & volume in cubic mm.
    I pass this data which is formatted to a simple messagebox.

    The macro then inserts a block at the centroid point.

    The block that is being inserted has attributes for various things I need for BofQ work.

    My question is, using VBA can I automatically pass the data extracted above to the block attributes as it is being inserted rather than
    having to do it manually afterwards. The same block for different 3d solids will be inserted as they are selected but will have different values assigned to the attributes depending on shape & size etc.

    Thanks in advance for any help with this.
    Tim

  • Hello Tim

    Exciting request. Have you made progress with the VBA macros and can you show us your solution?

    I myself am from the timber construction industry. Best regards, Christoph

This discussion has been closed.

Howdy, Stranger!

It looks like you're new here. Click one of the buttons on the top bar to get involved!