Výpis hmotových vlastností 3D těles

Produkt: AutoCAD 2002/2004
Datum: 19.09.2003

Stáhnout VBA projekt (6 KByte)

Ukázková funkce MassPropD ilustruje použití filtrovaných výběrových množin AutoCADu ve VBA a práci s vlastnostmi entit zahrnutých do výběrové množiny. Funkce vypisuje objem a hmotnost vybraných 3D těles (3DSOLID) s respektováním zadané hustoty materiálu (implicitně AutoCAD počítá jen s hustotou 1).

Pro přenesení VBA kódu funkce si pomocí Alt-F11 spusťte editor VBA a zkopírujte si tento jednoduchý kód (nebo si otevřete přiložený projekt .DVB):


Sub MassPropD()

  Dim oSS As AcadSelectionSet
  Dim iFilterCode(0) As Integer
  Dim vFilterValue(0) As Variant
     
  'Errorhandler (vymaže případně již existující výběrovou množinu)
  On Error Resume Next
  Application.ActiveDocument.SelectionSets("3Dss").Delete
  On Error GoTo 0
  
  TotalVolume = 0
  'vytvoř výběrovou množinu nazvanou "3Dss"
  Set oSS = Application.ActiveDocument.SelectionSets.Add("3Dss")
  iFilterCode(0) = 0: vFilterValue(0) = "3dsolid"
  'odfiltrovat vše kromě entit typu "3dsolid"
  oSS.SelectOnScreen iFilterCode, vFilterValue
    For Each ent In oSS 'zpracovat všechny entity výběrové množiny "3Dss"
      TotalVolume = TotalVolume + ent.Volume
    Next ent

  Density = InputBox("Zadejte hustotu materiálu: ")
  Mass = Density * TotalVolume

  MsgBox "Celkový objem vybraných těles: " & TotalVolume & vbCrLf & _
         "Celková hmotnost vybraných těles: " & Mass

  'xxx = InputBox("Celková hmotnost vybraných těles: ", , Mass) 'tato verze umožní Copy/Paste výsledku

  oSS.Delete

End Sub

Místo dialogového okna výpisu výsledků (MsgBox) lze použít funkci InputBox nebo uživatelský formulář, které umožní zkopírovat výsledek pomocí Copy/Paste. Přidáním dalších výpočtů lze doplnit momenty setrvačnosti či další parametry.

Nyní již jen musíme vyvolat nově vytvořenou funkci. Ve spuštěném AutoCADu stiskněte Alt-F8 a v seznamu maker zvolte MassPropD.


Copyright © 2003 CAD Studio