Moment of Inertia

Dear Friends,

I am trying to calculate "moment of inertia" for complex shapes like AutoCAD mechanical "AMINERTIA”.

But am not able to calculate the "moment of inertia".

I try to lot of ways but I can’t find the solution.

please give your suggestions to solve this problem.

Note :please  refer the attached drawing File

Thank you Friends,

Nathan. 

Comments

  • One of possible ways:
    1) convert your shape to REGION
    2) use SUBTRACT to exclude hole from the outside shape
    3)call MASSPROP and look for cendroid values
    4)MOVE region by negative values of centroid coordinates
    5)call MASSPROP again to check for moment of Inertia. Note, centroid coordinates must be 0,0
  •  Personally, I find my moment of inertia is very easy to calculate.  It is the greatest when I attempt to wake up in the mornings. I calculate that I can hit the snooze button on my alarm 3 times before I can overcome my personal inertia and avoid being late for work.  :)

    -Joe
  • One of possible ways:
    1) convert your shape to REGION
    2) use SUBTRACT to exclude hole from the outside shape
    3)call MASSPROP and look for cendroid values
    4)MOVE region by negative values of centroid coordinates
    5)call MASSPROP again to check for moment of Inertia. Note, centroid coordinates must be 0,0

    Dear Friend,

    Thank you for your Immediate reply.
    I followed your steps Manually in Bricscad, it works as my expectation.
    I have an another doubt regarding the same,how to perform SUBTRACT operation in Brx with c++.
    please give your suggestion.

    Thank you Friend.
    Nathan

  •  Hello Nathan,

    Please check this sample
    [code]
        AcDb3dSolid * pBlank = new AcDb3dSolid();
        pBlank->createBox(10.0, 10.0, 10.0);

        AcDb3dSolid * pTool = new AcDb3dSolid();
        pTool->createBox(5.0, 5.0, 5.0);

        pBlank->booleanOper(AcDb::kBoolSubtract, pTool);

        delete pTool;
        pTool = nullptr;

        AcDbDatabase* pDb = acdbCurDwg();

        AcDbBlockTableRecord * pMS = openModelSpace(AcDb::kForWrite, pDb);
        pMS->appendAcDbEntity(pBlank);
        pMS->close();
        pMS = nullptr;

        pBlank->close();
        pBlank = nullptr;
    [/code]

    Best regards,
      Egor
  •  Hello Nathan,

    Please check this sample
          
        AcDb3dSolid * pBlank = new AcDb3dSolid();
        pBlank->createBox(10.0, 10.0, 10.0);
        AcDb3dSolid * pTool = new AcDb3dSolid();
        pTool->createBox(5.0, 5.0, 5.0);
        pBlank->booleanOper(AcDb::kBoolSubtract, pTool);
        delete pTool;
        pTool = nullptr;
        AcDbDatabase* pDb = acdbCurDwg();
        AcDbBlockTableRecord * pMS = openModelSpace(AcDb::kForWrite, pDb);
        pMS->appendAcDbEntity(pBlank);
        pMS->close();
        pMS = nullptr;
        pBlank->close();
        pBlank = nullptr;

    Best regards,
      Egor


    Dear Friend,
    Thank you for your immediate reply.
    I tried as you said,It works as my expectation.
    Thank you for your suggestion,
    Nathan
This discussion has been closed.