Научная статья на тему 'Программное обеспечение расчета объемов земляных работ при вертикальной планировке строительных площадок'

Программное обеспечение расчета объемов земляных работ при вертикальной планировке строительных площадок Текст научной статьи по специальности «Математика»

CC BY
222
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Программное обеспечение расчета объемов земляных работ при вертикальной планировке строительных площадок»

уплотнения под влиянием кислотной

агрессии.

На основании вышеизложенного можно заключить, что, выбирая буферные системы в качестве добавок к цементному вяжущему, можно значительно повышать химическое сопротивление и первоначальную прочность це- мический удар" по материалу.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

ментного камня, а также добиваться увеличения подвижности цементной смеси или уменьшения ее водопровод-ности с вытекающими позитивными последствиями. Одним из наиболее ярких эффектов от применения этих добавок является их способность смягчать „хи-

1. Глинка Н. Л. Общая химия: Учеб. пособие для вузов. 20-е изд., испр./Под ред. В. А. Рабиновича. Л.: Химия, 1979. 720 с.

2. Добавки в бетон: Справ. пособие / В. С. Рамачандран, Р. Ф. Фельдман, М. Кол-

лепарди и др.; Под ред. В. С. Рамачандрана; Пер. с англ. Т. И. Розенберг и С. А. Болдырева; Под ред. А. С. Болдырева, В. Б. Ратинова. М.: Стройиздат, 1988. 575 с.

УУУУУУУУУУУХПП^УУУУ^

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ РАСЧЕТА ОБЪЕМОВ ЗЕМЛЯНЫХ РАБОТ ПРИ ВЕРТИКАЛЬНОЙ ПЛАНИРОВКЕ СТРОИТЕЛЬНЫХ ПЛОЩАДОК

О. А. ФРОЛКИН, ассистент,

Ю. В. ЮРКИН, инженер,

В. Т. ЕРОФЕЕВ, доктор технических наук

При проектировании производства

работ в строительстве значительную

трудоемкость представляют расчеты по определению объемов земляных работ. Нами предлагается программа их расчета при вертикальной планировке строительного участка методом нулевого баланса, при котором объемы выемки и насыпи равны, т. е. грунт перераспределяется в пределах планируемой площадки.

Предлагаемая программа „VERT-PLAN" отличается от известных методов автоматизации, используемых в организационно-технологической подготовке строительного производства [1 — 4 ], тем, что для проведения расчетов необходимо лишь наличие черных отметок, т. е. данных полевых измерений предполагаемой строительной площадки либо данных топографической карты местности.

Работа с программой начинается с ввода исходных данных (ввод разме-

ров площадки, разбивка ее на квадраты, ввод черных отметок по узлам раз-бивочной сетки). Это можно сделать непосредственно в программе или предварительно подготовить данные в любом текстовом редакторе (исключая текстовые редакторы, сохраняющие данные в формате RTF, например Microsoft Word) по определенной схеме.

Количество квадратов по оси X 4.00

Количество квадратов по оси У 3.00

Длина стороны квадрата

50.00

/ {

Отметки углов квадратов.

300.10 I 300.04 I 300.06 I 300.06 I

300.45 I 300.39 I 300.41 I 300.39 I

300.81 I 300.85 I 300.77 I 300.77 I

Особенностью такой схемы является то, что каждое число отметок углов квадрата должно оканчиваться на номере колонки, кратной 8, уменьшенной на единицу, т. е. число 1-й отмет-

© О. А. Фролкин, Ю. В. Юркин, В. Т. Ерофеев, 1998

ки должно оканчиваться на колонке 1x8-1=7, второй — на колонке 2 х 8-1 = 15 и т. д, Данные, подготовленные таким способом, необходимо откомпилировать приданным к пакету программ специальным конвертором.

Введенные данные можно сохранить как в специальном формате, не требующем никакой предварительной компиляции для загрузки, так и в „читаемом" формате по приведенной выше схеме. По завершении ввода данных

либо после загрузки файла с диска активизируется меню „РАСЧЕТ", при выборе которого открывается диалоговое окно ввода проектных уклонов. После этого производится полный расчет по нулевому балансу земляной массы, что обычно занимает 2 — 5 с (на процессоре 286), результаты выдаются в виде ведомости объемов земляных работ, используемой в строительной практике (фрагмент расчета показан в табл. 1).

Таблица 1

Ведомость объемов земляных работ

№ Рабочие отметки Площадь Площадь Объем работ

III Н2 НЗ H 4 насыпи выемки 11асыпь Выемка

1 7.52 6.52 5.52 6.52 2500.00 0.00 16321.42 0.00

2 6.52 5.52 4.52 5.52 2500.00 0.00 13821.42 0.00

3 5.52 4.52 3.52 4.52 2500.00 0.00 11321.42 0.00

При реализации решения по предлагаемой программе существует возможность рассмотреть трехмерное изображение строительной площадки с видимой границей реального рельефа ме-

4

стности и планируемого профиля с любой точки виртуального пространства (рис. 1).

Рис. 1. Трехмерная схема площадки: 1 — существующая поверхность; 2 — планируемая поверхность; 3 — линия пулевых работ

Структура

Исходный

программы.

текст программы создан для языка программирования Borland Pascal с применением пакета Turbo Vision. Принци-

блок-схема

пиальная

VERTPLAN"

образом:

»

выглядит

программы следующим

| НАЧАЛО |

1 .... 1

НАБОР ДАННЫХ С КЛАВИАТУРЫ ЗАГРУЗКА ДАННЫХ С ДИСКА

1 1

Г 1 1 1

РАСЧЕТ OfcbFUOB ПРОСМОТР ИЗМЕНЕНИЕ СОХРАНЕНИЕ

С ЗАДАННЫМИ ТРЕХМЕРНОЙ ИСХОДНЫХ РЕЗУЛЬТАТОВ

УКЛОНАМИ ДИАГРАММЫ ДАННЫХ РАБОТЫ

* ------J I i

выход

С инженерной точки зрения интересен только блок расчета объема земляных работ с заданными проектными уклонами:

Приводим текст блока программы:

PROCEDURE myapp.rzr;

{БЛОК ОПИСАНИЯ ВНУТР. ПЕРЕМЕН-

НЫХ}

var sn,sv>hl,h2,h3,h4,h0: real; eh,ana4,hn,hv,vn,w,ev,en: real; i j: integer; otin: potm; red: predw; vl,v2,v3>v4: potm; ul,u2,u3,u4: prab; perehod: boolean; allv,alln: string; wl,w2,w3,w4: pfou; function к (i j: integer): integer; begin

k:=(i-1 )+((j- l)*(iks+1)); end;

{ВНУТРЕННЯЯ ПРОЦЕДУРА СОЗДАНИЯ ШАПКИ ВЕДОМОСТИ ЗЕМЛЯНЫХ РАБОТ}

procedure createfile; var n: integer;

begin

assign(£r,4spw&a0 !.$$$'); rewrite(ff);

writeln(fiy------------------

--------------');

writeIn(lT,,| | Рабочие отметки | | | Объей работ |'); writeln(ÍT,,| N |------1------1-

----1—*-|Площадь|Площадь|—

—I——Г);

writeln(ff,,| | Н1 | Н2 | НЗ | Н4 |насыпи |выемки | Насыпь | Выемка |'); \угкс1п(ЛУ|—|—-|------1-

end;

{ВНУТРЕННЯЯ ПРОЦЕДУРА ПЕРЕВОДА ЧИСЛА В ЭКСПОНЕНЦИАЛЬНОМ ФОРМАТЕ В УДОБОЧИТАЕМЫЙ ФОРМАТ}

procedure mute(rreal:real; var sstring: string); var dotogo,posle: string; rd,ip: integer;

begin rd:=trunc(rreal); ip:=trunc((rreal-int(rreal))*100); str(abs(rd),dotogo); str(abs(rp),posle); if length(posle)= 1 then poste-O'+posle; sstring:=dotogo+7+posle; if rreal<0 then sstring:=

,-,+sstring;

/

end;

{ВНУТРЕННЯЯ ПРОЦЕДУРА ЗАПИСИ СТРОКИ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ В ВЕДОМОСТЬ} procedure saveline(n: integer; hl,h2,h3,h4,sn,sv,vn,w: real); var snum,shl,sh2,sh3,sh4: string;

ssn,ssv,svn,sw: string; begin

str(n,snum); mute(hl,shl);

mute(h2,sh2);

¥

mute(h3,sh3);

mute(h4,sh4);

mute(sn,ssn);

mute(sv,ssv);

mute(abs(vn),svn);

mute(abs(w),sw);

write(ff,T);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

while length(snum)<3 do snum:=' 4-snum; write(ff,snum); write(fif,T);

while length(shl)<6 do shl:- f+sh 1; write(ff,shl);

write(ff,T);

while length(sh2)<6 do sh2:- '+sh2;4 write(ff,sh2);

write(flf,T);

while length(sh3)<6 do sh3:~ f+sh3; write(ff,sh3);

write(ff,T);

while length(sh4)<6 do

4sh4:=* *+sh4; write(ff,sh4);

write(ff,T);

wliile length(ssn)<7 do ssn:=' '+ssn; write(ff,ssn);

write(ff,T);

while length(ssv)<7 do ssv:=' '+ssv; write(ff,ssv);

write(fr,T);

while lengtli(svn)<9 do svn:- '+svn; write(ff,svn); write(iT,T);

while length(sw)<9 do sw:- 4-sw; write(ff,sw);

writeln(flf,T);

end;

{ВНУТРЕННЯЯ ПРОЦЕДУРА ПОДСЧЕТА ОБЪЕМОВ НАСЫПЕЙ И ВЫЕМКИ} procedure podschet(hl,h2,

h3,h4:real); const treugol = 1; kwadr = 2; dwatreugol = 3; var nugol,nslu: word; minus,plus: word; ij: word;

h: array [1..4] of real; begin h[l]:=hl; h[2]:=h2; h[3]:=h3; h[4]:=h4; minus :=0;

if hi <0 then inc(minus); if h2<0 then inc(minus); if h3<0 tiien inc(minus); if h4<0 then inc(minus); plus:=4-minus;

if hl*h2*h3*h4<0 tlien

nslu.-treugol else nslu:=kwadr; if (nslu=kwadr) and (hl*li2<0) and (h2*h3 <0) tlien

nslu:=dwatreugol; case nslu of treugol: begin

if minus= 1 then begin

while h[i]X) do inc(i); sv:=abs(w/(h[i]/3)); sn:=da*da-sv; end

else begin i:=l;

while h[i]<0 do inc(i); sn:=abs(vn/(h[i]/3)); sv:=da*da-sn; end; end;

kwadr: begin

while h[i]>0 do inc(i);

• #

inc(i);

while h[i]>0 do inc(i);

sv:=abs(w/((h[i]+h[j])/4));

sn:=da*da-sv;

end;

dwatreugol: begin i'—1*

while h[i]>0 do inc(i); • •

j:=i; inc(i);

while h[i]>0 do inc(i); sv:=abs(w/((h[i]+h[j])/6)); sn:=da*da-sv; end; {begin in case} end; {case} end; {begin procedure}

{ОСНОВНАЯ ПРОЦЕДУРА РАСЧЕТА} BEGIN priznak:=3;

enablecommands(wincom2); disablecommands(wincoml);

{Подсчет проектной отметки}

i:=l;j:=l;

otm:=otmh stA. at(k(ij)); hl:=otmA.otmetka;

i:=iks+l;j:=l; otm:=otmlistA.at(k(ij)); h 1 :=h 1+otmA. otmetka; i:=l; j:=igr+l; otm:=o tmli stA. at (k(i j)); h 1 :=h 1 +otmA. otmetka; i:=Iks+l; j:=igrH; otm:=otml i stA. at(k(i j)); h 1 :=h l+otmA. otmetka; h2:=0;j:=l; for i:=2 to iks do begin otm:=otmlistA.at(k(ij)); h2:=h2+otmA.otmetka; end;

j:=igr+l;

for i:=2 to iks do begin otm:=otmlistA.at(k(ij)); h2 :=h2+otinA. otmetka; end;

i:=l; for j:=2 to igr do begin otm:=otmlistA.at(k(ij)); h2 :=h2+otmA. otmetka; end;

i:=iks+l;

for j:=2 to igr do begin otm:=otmlistA.at(k(ij)); h2 :=h2+otmA otmetka; end; h4:=0;

for j:=2 to igr do for i:=2 to iks do begin

otm:=otmlistA.at(k(ij));

h4 :=h4+otmA. otmetka; end;

h0:=(hl+2*h2+4*h4)/(4*iks*igr); hi :=h0-(ihor*iks*da)/2-(ivert*igr*da)/2;

9

{Подсчет красных отметок} redlist:=new (pcollection,init(50,10)); with redlistA do begin for j:=0 to igr do begin hO:=hl+ivert*da*j; for i:=0 to iks do begin h3:=hO+ihor*da*i; insert

(new(predw, ini t(h3))); end; end; end;

{Подсчет рабочих отметок} rablist:=new (pcollection,init(50,10)); with rablistA do begin for i:=0 to pred (otmlistA. count) do begin red:=redlistA.at(i); otm:=otmlistA.at(i); h3:=redA.redotm-otmA. otmetka; insert

(new(prab, ini t(h3))); end; end;

{Определение линии нулевых работ: под счет объемов} createfile; ana4:=da*da/4; ev:=0; en:=0; forj:=l to igr do for i:=l to iks do begin u 1 :=rablistA at(k(i j)); u2:=rablistA.at(k(i+lj)); u3:=rablistA.at(k(i+lj+l)); u4 :=rablistA. at(k(i j+1)); eh:=abs(ulA.rabotm)+ abs(u2A.rabotm)+ abs(u3A.rabotm)+ abs(u4A.rabotm); perehod:=false; if (ulA.rabotm<0) or (u2A.rabotm<0) or (u3A.rabotm<0>or (u4A.rabotm<0) then if (ulA.rabotm>0) or (u2A.rabotm>0) or (u3A.rabotm>0) or (u4A.rabotm>0) tlien perehod:=true;

hv:=0; hn:=0; vn:=0; w:=0; if perehod then begin if ulA.rabotm>0 then

hn:=hn+ulA.rabotm else hv:=hv-ulA.rabotm; if u2A.rabotm>0 then hn:=hn+u2A.rabotm else hv:=hv-u2A.rabotm; if u3A.rabotm>0 then hn:=lm+u3 A. rabo tm else hv:=hv-u3A.rabotm;

ф

if u4A.rabotm>0 then hn:=hn-Hi4A.rabotm else hv:=hv-u4A.rabotm; hv:=hv*hv/eh; hn:=hn*hn/eh;. w:=ana4*hv; vn:=ana4*hn; end

else begin

if ulA.rabotm+ u2A.rabotm+u3A.rabotm+ u4A.rabotm>0 then vn:=ana4*eh

else w:=ana4*eh; end;

ev:=ev+abs(w);

г

en:=en+abs(vn);

{Определение площадей насыпи/выемки} sn:=0; sv:=0;

if w=0 then sn:=da*da else

if vn=0 then sv:=da*da else podschet (ulA.rabotm, u2A.rabotm,u3A.rabotm, u4A.rabotm);

savelinc(i+(j-l)*iks,

ulA. rabotm,u2A.rabotm, u3A.rabotm,u4A.rabotm, sn,sv,abs(vn),abs(w)) end;

writeln(ff,'------------------

writeln(ff,,f); ^ longmutator(ev,allv); longmutator(en,alln); writeln(ff,'06uadi объем насыпи

- Ч-alln);

writeln(ff,'Общий объем выемки

- Ч-allv); close(ff);

{---------нулевая линия—

xillist:=new(pcollection,

init(50,10)); for j := 1 to igr do for i:=l to iks do begin

}

u 1 :=rablistA.at(k(i j)); u2:=rablistA.at(k(i+l j)); u3:=rablistA.at(k(i+l j+1)); u4:=rabl i stA. at (k (i j+1)); vl:=otmlistA.at(k(ij));

v2:=otmlistA.at(k(i+lj));

v3:=otmlistA.at(k(i+l j+1)); v4:=otmlistA.at(k(ij+l)); if (ulA.rabotm<0) or (u2A rabotmO) or (u3A. rabotmO) or (u4A.rabotm<0) then if (ulA.rabotm>0) or

(u2A.rabotm>0) or

(u3A.rabotm>0) or (u4A.rabotm>0) tlien perehod:=true; if perehod then begin with nllistA do begin

if ulA.rabotm* u2A.rabotm<0 tlien begin h 1:=abs(u 1A. rabotm) * da/(abs(u 1A. rabotm)+ abs(u2A.rabotm));

h3:=vlA.otmetka+ (v2A.otmetka-v 1A. otmetka) *h 1/da; hl:=hl+(i-l)*da; h2:=(j-l)*da; insert(new(pnl,

mit(hl,h2,h3))); end;

if u2A.rabotm* u3A.rabotm<0 then begin hi :=abs(u2A.rabotm)* da/(abs(u2A.rabotm)+ abs(u3A. rabotm));

¥

h3:=v2A.otmetka+

(v3A.otmetka-

v2A.otmetka)*hl/da;

hl:=hl-f(j-l)*da; h2:=i*da; insert (ncw(pnl, init(h2,hl,h3))); end;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

if u3A.rabotm* u4A.rabotm<0 then begin 111 :=abs(u3A.rabotm)* da/(abs(u3A.rabotm)+ abs(u4A.rabotin));

h3:=v3A.otmetka+

(v4A.otmetka-v3A.otmetka)*hl/da; hl:=i*da-hl; h2:=j*da;

insert (new(pnl,

#

К несомненным преимуществам данной программы можно отнести малую емкость (150 Kb без базы данных), возможность работы на любом типе персональных компьютеров, совместимых с IBM, значительные визуальные

init(hl,h2,h3))); end;

if u4A.rabotm* ulA rabotm<0 then begin h 1 :=abs(u4 A. rabot in) * da/(abs(u4A.rabotm)+ abs(ulA.rabotm)); h3:=v4A.otmetka+ (vlA.otmetka-v4A.otmetka)*h 1/da; hl:=j*da-hl; li2:=(i-l)*da; insert(new(pnl, init(h2,hl,h3))); end; end;

end

end; END;

возможности, простота ввода данных, вывод результатов расчетов в виде готовых форматизировТГйных документов. Она рекомендуется для использования в учебных целях и при разработке ППР в проектных институтах.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Автоматизация решения задач подготовки строительного производства и оперативного управления / Б. Н. Небритое, Л. Б. Зеленцов, Г. И. Лазарев и др. / Под ред. Б. Н. Небритова. М.: Стройиздат, 1993. 416 с.

2. Кузнецов Ю. П , Прыкин Б. В., Рез-ниченко П. Т. Проектирование земляных и монтажных работ: Учеб. пособие для строит, вузов. Киев: Вища шк., 1981. 196 с.

3. Соустин В. Н. Вычисление объемов земляных работ при вертикальной планировке площадок // Геодезия и картография. 1996. № 10.

С. 55 — 56.

4. Черненко В. К., Галимуллин В. А., Че-(анов Л. С. Проектирование земляных работ: Программир. пособие для вузов по спец. „Пром. и гражд. стр-во"/Под ред. В. К. Черненко. 2-е изд., перераб. и доп. Киев: Вища шк., 1989. 152 с.

ККККККХКККККККККККККККККККККККХККККККККККККККККК

О ПЕРЕМЕЩЕНИЯХ ПОВЕРХНОСТИ УПРУГОГО ПОЛУПРОСТРАНСТВА ПРИ НЕКОТОРЫХ ВИДАХ НАГРУЖЕНИЯ

В. А. КАРТАШОВ, кандидат технических наук

Рассматривается действие на поверхность упругого полупространства нагрузки, которая распределена по како-

му-либо закону в пределах области, ограниченной некоторым контуром (рис. 1). Для нахождения вертикального (на-

© В. А. Карташов, 1998

i Надоели баннеры? Вы всегда можете отключить рекламу.