Пример использования:
BeamObject 'Анкерная закладная деталь';
var
nRod {$Количество шпилек, шт} = 12 8 36 {$Digits=0;step=1;Order=1}; // количество шпилек, шт
HRod {$Высота шпилек, м} = 1.30 0.94 1.80 {$Digits=2;step=0.01;Order=2}; // высота шпилек, м
DRod {$Диаметр резьбы шпилек, м} = 0.036 0.030 0.042 {$Digits=3;step=0.001;Order=3}; // диаметр резьбы шпилек, м
bRod {$Межосевое расстояние шпилек, м} = 0.67 0.54 1.62 {$Digits=2;step=0.01;Order=4}; // межосевое расстояние шпилек, м
DConductor {$Диаметр кондуктора, м} = 0.77 0.63 1.76 {$Digits=2;step=0.01;Order=5}; // диаметр кондуктора, м
const
sConductor = 0.01; // толщина кондуктора, м
DHole = 0.004+dRod; // диаметр отверстий под шпильки, м
DHexNut = DRod*1.6; // диаметр гайки, м
sHexNut = DRod*0.7; // толщина гайки, м
shape
Contour = 0;
coord
Base = [0,0];
color
Color01 = [158,160,161]; // RAL 7004 Сигнальный серый
Color02 = [203,208,204]; // RAL 7035 Светло-серый
Color03 = [189,189,178]; // RAL 7044 Серый шёлк
elements
for a=0 to 359 step 360/nRod do
begin
beam {$"Шпилька"} DRod [ bRod/2*Sin(a), bRod/2*Cos(a), 0] rel [ 0, 0, HRod] Color02 24;
for e1 in [ DRod*3-sHexNut, DRod*3+sConductor, HRod-(DRod*7)-sHexNut, HRod-(DRod*7)+sConductor, HRod-sHexNut*1.5, HRod-sHexNut*2.52] do
beam {$"Гайка"} DHexNut [ bRod/2*Sin(a), bRod/2*Cos(a), e1] rel [ 0, 0, sHexNut] Color01 6;
end;
Contour.AddCirclePart( Base,-DConductor/2, 24);
Contour.AddCirclePart( Base, DConductor/2-0.1, 24);
for i=0 to 359 step 360/nRod do
begin
Base=[-bRod/2*Cos(i),-bRod/2*Sin(i)];
Contour.AddCirclePart( Base, DHole/2, 12);
end;
for e2 in [ DRod*3, HRod-(DRod*7)] do
shape {$"Кондуктор"} Contour 1 [ 0, 0, e2] rel [ 0, 0, sConductor] Color03;
end