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):
SubMassPropD()DimoSSAsAcadSelectionSetDimiFilterCode(0)AsIntegerDimvFilterValue(0)AsVariant'Errorhandler (vymaže případně již existující výběrovou množinu)On Error Resume NextApplication.ActiveDocument.SelectionSets("3Dss").DeleteOn Error GoTo 0TotalVolume = 0'vytvoř výběrovou množinu nazvanou "3Dss"SetoSS = Application.ActiveDocument.SelectionSets.Add("3Dss") iFilterCode(0) = 0: vFilterValue(0) ="3dsolid"'odfiltrovat vše kromě entit typu "3dsolid"oSS.SelectOnScreen iFilterCode, vFilterValueFor EachentInoSS'zpracovat všechny entity výběrové množiny "3Dss"TotalVolume = TotalVolume + ent.VolumeNextent 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ýsledkuoSS.DeleteEnd 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