ARCHICAD: GDLNI KO'RIB CHIQISH: Arxitektorning O'ziga Xos Muammolari Uchun Dasturlash

ARCHICAD: GDLNI KO'RIB CHIQISH: Arxitektorning O'ziga Xos Muammolari Uchun Dasturlash
ARCHICAD: GDLNI KO'RIB CHIQISH: Arxitektorning O'ziga Xos Muammolari Uchun Dasturlash

Video: ARCHICAD: GDLNI KO'RIB CHIQISH: Arxitektorning O'ziga Xos Muammolari Uchun Dasturlash

Video: ARCHICAD: GDLNI KO'RIB CHIQISH: Arxitektorning O'ziga Xos Muammolari Uchun Dasturlash
Video: Мастер-Класс "ArchiCAD 22. Решение практических задач с помощью ArhiCAD 22" 2024, Aprel
Anonim

Ushbu ekspert materiali 2016 yil dekabr oyida Vladimir Savitskiyning "Tuzilmalarni yaratish va ishchi rasmlarni modeldan ajratib olish" maqolasi bilan boshlangan "ARCHICAD: Rediscovering" maqolalar turkumini davom ettiradi va keyin Svetlana Kravchenkoning "ARCHICAD" nashrlari bilan davom etadi.: Qayta kashf etish. Vizualizatsiya - me'mor uchun yangi imkoniyatlar "va Aleksandr Anishchenko" TEAMWORK: samarali jamoaviy ish bosqichma-bosqich ". Ushbu tsikl foydalanuvchilarga ARCHICADning barcha imkoniyatlarini ishga solishda yordam berish uchun mo'ljallangan®… Biz me'morlardan dasturni nostandart yondashuvlar, kam o'rganilgan funktsiyalar va ko'plab foydalanuvchilar hatto bilmasligi mumkin bo'lgan yangi xususiyatlardan foydalangan holda foydalanish bo'yicha shaxsiy tajribalari bilan o'rtoqlashishni so'radik. ARCHICAD dasturini ishlab chiquvchilari sifatida biz mahsulotni chuqur bilishgina uning to'liq qiymatini ochib berishi va dizayner ishining natijalari, tezligi va sifatiga hal qiluvchi ta'sir ko'rsatishi mumkinligiga aminmiz. Siz ham "o'qilmagan yo'llar" ni afzal ko'rasizmi? ARCHICAD bilan ishlashda nostandart yondashuvlardan foydalanish bo'yicha tajribangiz bormi, dasturning eng mashhur xususiyatlaridan doimiy ravishda foydalanmayapsizmi? Biz yangi mualliflarni hamkorlikka taklif qilishdan mamnun bo'lamiz: [email protected]. Amaliy me'mor Svetlana Kravchenko quyidagicha xabar beradi:

kattalashtirish
kattalashtirish

Darhaqiqat, ko'pchiligingiz GDL haqida ARCHICADda eshitgansiz, ammo hamma hamon uni ishda qanday ishlatishni bilmaydi. Ushbu xususiyatning ajoyib foydaliligini, shuningdek, ushbu mavzu bo'yicha birinchi veb-seminarimdan keyin ko'plab savollarni hisobga olgan holda, men bu haqda eng kichik bilimlarning ham kundalik ishlarida qanday yordam berishi haqida batafsilroq ma'lumot berishga qaror qildim. me'mor.

Keling, asoslarini boshlaymiz GDL (Geometric Description Language) - ARCHICAD muhitida ishlashga mo'ljallangan BASIC-ga o'xshash dasturlash tili. U qavat rejasida 3D qattiq jismlarni (masalan, eshiklar, derazalar, mebellar) va 2D belgilarni tasvirlaydi. Ushbu ob'ektlar kutubxona xususiyatlari deb nomlanadi.

Dasturlash bilan kamida bir oz tanish bo'lganlar uchun ushbu tilni o'zlashtirish qiyin bo'lmaydi. Biroq, etarli istak bilan, GDLni o'rganish ushbu muhitdan uzoq bo'lgan odamning kuchiga bog'liq bo'ladi. Har qanday me'mor o'z vaqtida geometriya va tasviriy geometriyani o'rgangan, mukammal hajmli fikrlashga ega va bu allaqachon muvaffaqiyatning yarmi. Siz zudlik bilan murakkab narsalarni yozishga harakat qilishingiz shart emas, asosiy geometrik shakllar va shakllardan boshlash kerak; boshqa ma'lumotlar kutubxonasi stsenariylarini o'rganish orqali ko'plab ma'lumotlarni olish mumkin. Axborotning asosiy manbai GDL ma'lumotnomasi bo'lib, unga ARCHICAD-dagi Yordam menyusi orqali kirish mumkin. Xo'sh, nima uchun me'mor GDL haqidagi bilimlardan foyda ko'rishi mumkin? Masalan, siz murakkab tuzilmalarni yaratishingiz mumkin bo'lgan Grasshopper-dan farqli o'laroq, GDL turli xil markerlar va so'zlarni yozish, shuningdek boshqa kutubxona xususiyatlari yoki vositalari uchun maxsus komponentlar yaratish uchun juda zarurdir. Mening ishimda GDL-ning birinchi dasturlaridan biri bu maxsus panelli eshik bargini yaratish edi, u o'lchamini o'zgartirganda barcha yo'nalishlarda miqyosini oshirmadi, faqat panel o'lchamlarini o'zgartirdi. Jingalak ramkaning qalinligi va jabduqlar kengligi o'zgarishsiz qoldi. Bundan tashqari, me'morlar ko'pincha standart kutubxonalarning ba'zi oddiy funktsiyalarini qo'shishni xohlashadi - va bu ularning GDL-ga kirishni boshlashining asosiy sababi. Albatta, GDL haqida bilim hayotiy ahamiyatga ega emas va ushbu vazifalarning aksariyati standart vositalar yordamida amalga oshirilishi mumkin. Masalan, siz plitalar bilan to'ldirilgan plombalarni qurishingiz va ularni maxsus eshik bargi sifatida saqlashingiz mumkin. Agar sizda ushbu nostandart eshiklardan atigi bir nechtasi bo'lsa, unda bu yanada tezroq bo'ladi. Ammo agar sizning loyihangizda turli xil o'lchamdagi o'xshash eshiklar ko'p bo'lsa va ularning ish jarayonida ularning kengligi o'zgargan bo'lsa, unda GDL-da maxsus panelni yozish ishni juda tezlashtiradi va soddalashtiradi. Geometrik tavsif shuni anglatadiki, har qanday mumkin bo'lgan shakllarni o'lchamlari yoki koordinatalari bo'yicha matnga yozish mumkin. 3D skript uchun asosiy fazoviy shakllar uchun buyruqlar bloki mavjud: - BLOK va G'isht - koordinata tizimining 0 nuqtasida kelib chiqishi bilan uch o'lchamda qurilgan parallelepiped BLOK a, b, c BRICK a, b, c

kattalashtirish
kattalashtirish

- silindr - Z o'qi bo'ylab silindr, balandligi h va radiusi r SILIND h, r

- Soha - r kelib chiqishi va radiusi markazida joylashgan shar Sfera r

kattalashtirish
kattalashtirish

Ellips va konus xuddi shunday tasvirlangan. Keyingi raqamlar bloki allaqachon murakkabroq - bu har xil prizmalar. Ular nuqta koordinatalari to'plami bilan tavsiflanadi. Eng sodda prizma nuqta (n), balandlik (h) soni va barcha nuqtalarning koordinatalarini tartibda ro'yxatlash bilan aniqlanadi. PRISM n, h, x1, y1, … xn, yn

Prizmaning ko'p navlari bor. Keyingi ko'rinish, PRISM_, yuzlar va qirralarning ko'rinishini aniqlaydigan nuqta koordinatalariga holat kodlarini ko'rsatishga imkon beradi, shuningdek kavisli prizmalar va teshiklari bo'lgan prizmalar yaratishga imkon beradi (ma'lumotnomadagi holat kodlari bo'limiga qarang). Boshqa turdagi, BPRISM_, Y o'qi atrofida o'ralgan prizma hosil qiladi. FPRISM_ yuqori qismida paxsa yoki filetali prizma hosil qiladi.

kattalashtirish
kattalashtirish

Keyinchalik murakkab polilinga asoslangan shakllarni tavsiflovchi bir nechta buyruqlar mavjud: CHIKARISH, PIRAMIDA, TO'G'RISh, HOKIMLIK, SWEP, TUBE, COONS, MASS. Ularning tavsiflarini namunalar bilan ma'lumotnomada topish mumkin. 2 o'lchovli skript uchun shakllar boshqa buyruqlar bilan tavsiflanadi: chiziq, doira, to'rtburchak, polilinali, spline. Ammo siz 3D skriptdan proektsiyani yaratish buyrug'ini ham ro'yxatdan o'tkazishingiz mumkin.

2D yoki 3D shakllarini yaratish GDL funktsiyalarining faqat bir qismidir. Agar sizga jadval kerak bo'lsa, uni ARCHICAD-ning o'zi vositalari bilan qurish osonroq. Ob'ekt qandaydir parametriklik zarur bo'lganda yoziladi: stol oyoqlarining har xil turlarini, oyoqlarning sonini tanlash, qolgan o'lchamlarini saqlab stolning o'lchamini o'zgartirish, yog'ochni ishlab chiqarish, og'irligi va tannarxi uchun hisoblash qobiliyati. Ob'ekt umuman geometriyani o'z ichiga olmaydi, faqat hisob-kitoblarni amalga oshiradi. Buning uchun kodning (subroutine) ma'lum bir joyiga ishora qiluvchi tsikllar, shartli bayonotlar kabi Boshqarish moddalari (Boshqarish operatorlari) ham qo'llaniladi. Eng boshida tsikllar va sharoitlar bilan tanishish yaxshiroqdir - ular tez-tez ishlatiladi. Shunday qilib, quyida keltirilgan barcha misollarda shartli gaplar mavjud. O'RNAK # 1 - ob'ektning aylanishi Dizaynerlar ko'pincha ob'ektni o'zgaruvchan qilishni xohlashadi. Ushbu oddiy misoldan foydalanib, biz kutubxona elementining tuzilishini, shuningdek GDL ob'ektlar muharririning asosiy oynalarini ko'rib chiqamiz. Loyiha maydonida joylashgan har qanday ob'ektni ochish uchun (agar ishlab chiquvchi unga parol qo'ymagan bo'lsa), uni tanlashingiz kerak va Ctrl + Shift + O tugmalar birikmasini bosishingiz kerak. Yana bir usul - Fayl> Kutubxonalar va Ob'ektlar> Ochiq ob'ekt menyusidan foydalanish. Agar hozirgi paytda hech qanday ob'ekt tanlanmagan bo'lsa, unda ob'ektni tanlash uchun oyna ochiladi. Aylanish parametrlarini, masalan, panjara panjarasiga qo'shamiz (1-rasm).

kattalashtirish
kattalashtirish

Shunday qilib, biz GDL ob'ekt muharriri oynasini ochdik (2-rasm). Chap yuqori qismida, ob'ekt parametrlarining odatiy oynasida bo'lgani kabi, turli xil ko'rinishlarni ko'rish uchun oyna mavjud; hatto chap tomonda ko'rinishni tanlash uchun tugmalar mavjud - reja, balandlik, 3D-oyna va oldindan ko'rish. Quyida parametrlar jadvallari, ma'lumotlar ro'yxati va skriptlarni ochish tugmalari mavjud. Ssenariylarni ikki xil usulda ochish mumkin: skript nomi bilan tugmani bosing - bir xil oynada oching, oyna belgisi bilan o'ng tomondagi tugmani bosing - skript alohida oynada ochiladi. Bu bir vaqtning o'zida turli xil skriptlarni ko'rish uchun foydali bo'lishi mumkin (3-rasm).

kattalashtirish
kattalashtirish

Har qanday skript oynasining yuqori qismida juda zarur bo'lgan Tekshirish tugmasi mavjud: uni bosganingizda muharrir skriptda xatoliklar mavjudligini so'raydi. Xabarda xato sababi va xato topilgan satr raqami ko'rsatiladi. "Tafsilotlar" bo'limida siz ob'ektning pastki turini tanlashingiz mumkin: odatiy eshik bargi, eshik tutqichi, pardaning devor ramkasi va boshqalar. Shunday qilib, ushbu elementlarni tanlash uchun tegishli oynada maxsus narsalar (qalam, tuval, ramka) paydo bo'ladi. 2D turi tanlanganida, ob'ektda 3D geometriya uchun oynalar bo'lmaydi. U erda siz turli xil markerlar uchun turlarni tanlashingiz mumkin - tugun, bo'limlar, etakchi sarlavhalar, zonalar; ular o'zlarining tegishli vositalarida ham paydo bo'ladi. Ushbu bo'limda siz ob'ekt tavsifini to'ldirishingiz va parolni tanlashingiz mumkin. Keyinchalik - "Parametrlar", bu erda ushbu ob'ektda ishlatiladigan va loyihada ishlash paytida o'zgarishi mumkin bo'lgan barcha ma'lumotlar jadval shaklida taqdim etiladi. Bu erda biz keyinroq foydalanadigan burilishlar uchun parametrlarni kiritishimiz kerak.

kattalashtirish
kattalashtirish

Stol ustida joylashgan Yangi tugmachasini bosing (4-rasm). Siz ustunlarni to'ldirishingiz kerak bo'lgan yangi qator paydo bo'ladi. Ushbu ustunlarning birinchisi o'zgaruvchidir. Bu erda biz ssenariylarda ishlatiladigan o'zgaruvchining nomini lotin va bo'sh joysiz yozamiz. Siz uni eslashingiz oson bo'lgan va shu bilan birga ushbu o'zgaruvchining nima uchun javobgarligini tushunadigan qilib nomlashingiz kerak. Bizning holatimizda biz X va Y o'qlari bo'ylab burilish burchaklarining qiymati uchun ikkita o'zgaruvchini yaratishimiz kerak (ob'ekt Z o'qi atrofida baribir rejada aylanishi mumkin). Men ularga angle_x va angle_y deb nom berishga qaror qildim. Keyingi ustunda siz ma'lumotlar turini tanlashingiz kerak. Tanlovlar 1-jadvalda keltirilgan.

kattalashtirish
kattalashtirish

So'nggi ikki tur ob'ektni qurishda ishlatilmaydi, lekin ob'ekt parametrlari oynasida ro'yxatning aniqligi va tartibliligi uchun zarurdir. Bizga burchak kerak - bu jadvaldagi ikkinchi belgi. Uchinchi ustun - Ism. Bu erda siz ob'ekt parametrlari oynasida keyinroq aniq ko'rishni istagan narsalarni biron bir tilda qoidalarsiz yozishingiz mumkin. Va oxirgi ustun - qiymat. Endi siz bu erda 0 qoldirishingiz mumkin: bu qiymat istalgan vaqtda ssenariyda ham, ob'ekt parametrlarida ham o'zgaradi. 2-rasmda GDL Object Editor oynasida ikkita yangi variant qanday ko'rinishini ko'rsatadi. 5. Chiziqni qulay joyga ko'chirish uchun chiziq boshidagi o'qlardan foydalaning.

kattalashtirish
kattalashtirish

Keyin siz ob'ektni yangi nom bilan saqlashingiz kerak, chunki standart kutubxona konteynerga qattiq kodlangan va undagi narsalarni yozib bo'lmaydi. Ob'ekt parametrlari oynasi endi shunday ko'rinishga ega bo'ladi (6-rasm).

kattalashtirish
kattalashtirish

Ikkita yangi parametr mavjud, ularning qiymati istalgan vaqtda o'zgartirilishi mumkin. Ammo endi hech narsa bo'lmaydi, chunki ulardan foydalanib hali hech qanday buyruqlar yozilmagan. Endi 3D skript oynasini ochishingiz kerak. Berilgan parametrlar asosida 3D modelni qanday qurish haqida to'liq ma'lumot. Bundan tashqari, ob'ektda turli xil makroslar joylashtirilishi mumkin. Barcha konstruktsiyalardan oldin siz ob'ekt quriladigan koordinata tizimini burishingiz kerak. Bu erda quyidagi mantiqni tushunish muhimdir: barcha aylanishlar, harakatlar va masshtablash ARCHICAD ning o'zida ishlagandan farq qiladi. Biz elementni olmaymiz va uni aylantirmaymiz, lekin global koordinata tizimini aylantiramiz (uni o'zgartirgandan so'ng u mahalliy bo'ladi) old ob'ektni qurish. Ko'chirish (ADD buyrug'i), Qaytish (ROT), o'lchov (MUL) - bu koordinatali tizimni o'zgartirish buyruqlari. Boshqa o'zgarishlarni ssenariyda birma-bir, birdaniga yoki birdan o'chirib tashlash mumkin. Ma'lumotnomada bularning barchasi etarlicha batafsil va misollar bilan tavsiflangan. Koordinatali tizimni 3D fazoda birdaniga uchta o'qi bo'ylab harakatlantirish misoli shakl. 7. A, b, c qo'shish

kattalashtirish
kattalashtirish

Shunday qilib, barcha konstruktsiyalardan oldin biz koordinata tizimini avval birining bo'ylab, so'ngra boshqa o'qi bo'ylab aylantiramiz. X o'qi bo'ylab aylanish ROTX alphax buyrug'i bilan amalga oshiriladi, bu erda alfa - soat miliga teskari burilish burchagi; alfaks o'rniga avval yaratilgan o'zgaruvchini kiritishingiz kerak. Y o'qi bo'ylab aylanish xuddi shu tarzda amalga oshiriladi (8-rasm).

kattalashtirish
kattalashtirish

Endi siz burilish uchun har xil burchaklarni o'rnatishingiz mumkin - va 3D modeldagi o'zgarishlar yuqori chap tomonda joylashgan ko'rinish oynasida sodir bo'ladi (9-rasm).

kattalashtirish
kattalashtirish

Endi siz burilish uchun har xil burchaklarni o'rnatishingiz mumkin - va 3D modeldagi o'zgarishlar yuqori chap tomonda joylashgan ko'rinish oynasida sodir bo'ladi (9-rasm). Ammo 2D-da hali hech narsa bo'lmaydi. 2 o'lchovli skriptda ob'ekt alohida chiziqlar va ko'p satrlar bilan quriladi, shuning uchun rejada ob'ektning chizilgani bir necha baravar tezroq bo'ladi. Bitta saytda bu sezilmaydi, ammo agar loyihada yuzlab bunday tarmoqlar mavjud bo'lsa, tormozlash muhim ahamiyatga ega bo'ladi. Siz ushbu chiziqlar nuqtalarining koordinatalarini hisoblashingiz va ularni aylanadigan ob'ekt proektsiyasida ko'rinadigan tarzda chizishingiz mumkin, ammo bu juda oddiy emas va juda tez emas. Ushbu panjarada men quyidagi echimni taklif qilaman: agar X yoki Y dagi burchaklar nolga teng bo'lmasa, u holda 2D skriptdagi ob'ekt, ya'ni reja uchun, 3D modelning proektsiyasi sifatida ko'rsatiladi va aks holda eski usulda. 2D skript uchun modelning proektsiyasi PROJECT2 projection_code, burchak, usul buyrug'i bilan qurilgan. Proektsion_kod, burchak, usul nimani anglatishini ma'lumotnomadan o'qishingiz mumkin, ammo biz IF - THEN - ELSE - ENDIF boshqaruv bayonotlari bo'limidan muhimroq buyruq bilan tanishamiz. Bu oldingi xatboshidagi shartli bandni tuzishda yordam beradigan shartli bayonotlar. Shakl. 10 Men 2D skriptda qo'shilgan buyruqlarni ajratib ko'rsatdim va o'ng tomonga qizil rangda "tarjima" qo'shdim.

kattalashtirish
kattalashtirish

Endi siz ob'ektni saqlashingiz kerak va undan foydalanishingiz mumkin (11-rasm). Ushbu usulning morfga o'tkazilishidan afzalligi shundaki, ob'ekt parametrli bo'lib qoladi, uni spetsifikatsiyalarda o'qish mumkin, unda lamellarning o'lchamlarini, ramka o'lchamlarini va asl ob'ektdagi hamma narsani o'zgartirishingiz mumkin..

kattalashtirish
kattalashtirish

Shunday qilib, ushbu misoldan foydalanib biz GDL Object Editor-ning asosiy oynalari va skriptlarini ko'rib chiqdik. Agar siz aylantirish uchun tanlagan ob'ekt parametrlarga ushbu panjara singari ro'yxat ko'rinishida emas, balki rasmlar va diagrammalar shaklida ega bo'lsa, demak, ishlab chiquvchi grafik interfeysni ham yozgan. Ko'pincha, shakllardagi kabi standart ro'yxat yashiringan. 12: Parametrlar sahifalarining ochiladigan ro'yxatida "Barcha parametrlar" bo'limi yo'q.

kattalashtirish
kattalashtirish

Bunday holda siz parametrlar skriptiga o'tishingiz va barcha parametrlarni yashiradigan buyruqni topishingiz kerak (13-rasm). Ushbu skript parametrlarga ta'sir qiluvchi barcha harakatlarni tavsiflaydi: - variantlar yoki mumkin bo'lgan qiymatlar oralig'ini belgilash (VALUES); - natijasi parametrga berilgan har qanday hisob-kitoblar (PARAMETERS); - parametrlarni yashirish yoki bloklash (HIDEPARAMETER, LOCK).

kattalashtirish
kattalashtirish

HIDEPARAMETERS ALL satrini oddiygina o'chirish yoki "!" Qo'yish orqali satrning boshida uni o'qib bo'lmaydigan qilib qo'ying (GDL sintaksisiga binoan, undov belgisi bilan boshlangan satr izoh deb hisoblanadi. Keyin men tavsiflarni yozaman va "!" Belgidan keyin skrinshotlardagi tarjimalar). Shundan so'ng, parametr sahifalari ro'yxatida "Barcha parametrlar" qatori paydo bo'ladi va uni tanlab parametrlar bilan standart ro'yxatni ko'rasiz, ular orasida aylanish uchun yangi satrlar paydo bo'ladi. O'RNAK # 2 - belgidagi matn Hozirgi loyihadan keyingi misolni olaman. Ko'p xonadonli turar-joy binosining rejasi bilan ishlashda konditsionerlarning tashqi qismlariga "K" harfini qo'yish kerak edi - va u har doim vertikal holda joylashgan. Albatta, maktubni ustiga matn yoki tashqi yozuv-matn bilan qo'shib qo'yish mumkin edi, ammo keyin konditsionerni burishganda, matnni ham ko'chirish kerak edi. Boshlash uchun men to'rtta yangi parametrni qo'shdim (14-rasm):

kattalashtirish
kattalashtirish

1. Matnni ko'rsating: parametr turi mantiqiy qiymat bo'lib, u ikkita mumkin bo'lgan qiymatlarni bildiradi: 0 (yo'q) va 1 (ha). Shunday qilib, matnni yoqish yoki o'chirish mumkin.

2. Maxsus matn: parametr turi - matn. Belgiga istalgan matnni yozishga imkon beradi (men bitta harfni konditsioner blokining to'rtburchagi ichiga kirishi uchun ishlatmoqchiman).

3. Shrift: turi - matn. Iltimos, ushbu o'zgaruvchini yozishning ba'zi turlari kompyuterda o'rnatilganlar ro'yxatidagi ustunda shrift qiymatlarini tanlashga imkon berishini unutmang. "Fonttype" ushbu ro'yxatni avtomatik ravishda chaqiradi, agar men "typefont" yoki shunchaki "shrift" yozsam, shrift nomini qo'lda yozishim kerak. Ushbu momentni tasodifan standart narsalardan birida ko'rdim.

4. Matn qalam: turi - qalam. Bu erda hamma narsa aniq.

Endi satrlarning boshida bosgan piktogrammalarni ko'rib chiqamiz. Birinchi satrda belgi bosilgan

Image
Image

qalin - qalin degan ma'noni anglatadi. Ya'ni, ob'ekt parametrlari oynasidagi ushbu satr qalin bo'ladi. Qolgan uchtasida piktogramma mavjud

Image
Image

… Bu shuni anglatadiki, ushbu satrlar birinchi satr ostidagi ochiladigan ro'yxatda joylashgan bo'ladi. Shakl. 15 - bu ob'ekt parametrlarida qanday ko'rinishini aks ettiruvchi skrinshot. Boshlash uchun men to'rtta yangi parametrni qo'shdim (15-rasm):

Рис. 15. Окно Параметров Объекта
Рис. 15. Окно Параметров Объекта
kattalashtirish
kattalashtirish

Va shakl. 16 - men 2 o'lchovli skriptga qo'shgan narsa (an'anaviy ravishda tarjima va sharhlar bilan).

kattalashtirish
kattalashtirish

Anjir. 16. Ikki o'lchovli skriptga qatorlar qo'shildi Keyingi skrinshotda (17-rasm) aniqlik uchun men turli xil so'zlar / buyruqlar / o'zgaruvchilar rangini berdim.

kattalashtirish
kattalashtirish

Ob'ekt tayyor (18-rasm).

kattalashtirish
kattalashtirish

Va agar men satrlarni aylanish va masshtab bilan yozmagan bo'lsam, unda ob'ekt anjirga o'xshaydi. 19.

kattalashtirish
kattalashtirish

O'RNAK # 3 - batafsil ma'lumot Loyihada ishlashni soddalashtirish uchun ob'ektni yozishda siz detallashtirish uchun bir nechta variantlarni (oddiy, o'rta, batafsil) tanlash bilan matn parametrini qo'shishingiz mumkin. Va 3D skriptda har xil mayda qismlarni qurishda tipning shartini qo'shib qo'ying: agar detal darajasi = "batafsil" bo'lsa, u holda (qurilish qismlarini tavsifi) sharti oxiriga Global o'zgaruvchilar alohida e'tiborga loyiqdir. Ular ma'lumotnomada 40 sahifadan iborat bo'lib, oson qidirish uchun mavzular bo'yicha guruhlangan. Oldingi misolda men loyihada ba'zi ob'ektga yo'naltirilgan ma'lumotlardan foydalandim. Ma'lumot qo'llanmasining xuddi shu qismida ob'ekt joylashgan joyning koordinatalari uchun global o'zgaruvchilar mavjud - ular koordinatalari yoki balandligi / balandligi bo'yicha rahbar kabi ob'ektlarni yaratish uchun ishlatiladi. Ko'pincha GLOB_SCALE ishlatiladi - rasmning ko'lami (hozirgi oynaga qarab ko'rinishga bog'liq), 1: 100 shkalada 100 ga, 1:20 shkalada 20 ga teng. ko'pincha shrift o'lchamini model metrga aylantirish uchun yoki aksincha ishlatiladi. Bundan tashqari, ushbu parametr rejadagi displey parametrlarini "osib qo'yish" uchun ishlatilishi mumkin. Masalan, skameyka uchun 2D skriptda quyidagilarni yozing:

IF GLOB_SCALE <100 UNDA ! agar o'lchov 1: 100 dan katta bo'lsa, unda
LOYIHA 2 3, 270, 2 ! 3D modeldan proektsiyani qurish
BOShQA ! aks holda
ENDIF ! shartning oxiri

Shunday qilib, 1: 500 masshtabdagi bosh rejada dastgohlar to'rtburchaklar shaklida, kattaroq masshtabdagi fragmentda esa batafsil proyeksiya chiziladi. Xuddi shunday usul ham, ammo uch o'lchovli model uchun standart daraxtlarda qo'llaniladi - agar siz Avtomatik toj turini belgilash katakchasini yoqsangiz. Kameradan ma'lum masofada toj turi detaldan oddiygacha, oddiydan ellipsgacha o'zgaradi. To'g'ri, ob'ekt skriptlarini qayta o'qish uchun siz ular bilan biron bir narsani qilishingiz kerak - masalan, nuqtai nazarni o'zgartirgandan so'ng, barcha daraxtlarni ta'kidlab, ob'ekt parametrlari oynasini oching va hech narsani o'zgartirmasdan, faqat OK tugmasini bosing, yoki qopqoqni almashtirish katagiga belgi qo'ying va belgini olib tashlang.

Uni sharni yaqinlashtirish misolida ko'rsatib beray. 3D skriptda nima yozgan edim: discam_x = abs (GLOB_EYEPOS_X-SYMB_POS_X) discam_y = abs (GLOB_EYEPOS_Y-SYMB_POS_Y) discam_h = sqr (discam_x ^ 2 + discam_y ^ 2) discam_z = discam_z = diskam_z = 2 disk = 20 keyin res = 50 agar discam20, keyin res = 20 bo'lsa discam30, keyin res = 10 agar diskam> 40 bo'lsa, res = 5 rezol sfera 1 Ssenariyda men GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z global o'zgaruvchilaridan foydalangan holda joylashgan joyning koordinatalari. loyihaning 3D-oynasidagi kamera (ko'zlar) va SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z - bu ob'ektning kosmosdagi joylashuvi koordinatalari; abs - raqamli modul (agar mavjud bo'lsa, "-" ni olib tashlaydi); sqr - kvadrat ildiz; ^ 2 - raqamni kvadratga o'tkazish.

3D oynada kameradan har xil masofada shar turli xil taxminlar bilan chiziladi. Aniqlik uchun simli ramka rejimini yoqdim (20-rasm).

kattalashtirish
kattalashtirish

Global o'zgaruvchilar orqali ob'ekt quyidagilarni olishi mumkin: - tegishli dialog oynasida o'rnatilgan loyihaning joylashuvi (shimol, kenglik, uzunlik, balandlik) to'g'risidagi ma'lumotlarni; - hozirgi zamin va o'z qavati; - joriy ko'rinishning turi (masalan, GOST jumperlarida quyidagi shartdan foydalaniladi: agar ko'rinish turi ro'yxat bo'lsa, unda o'tish joyining ko'rinishini pozitsiya rahbarlari bilan bo'limga qo'ying); panjara bilan misolda siz quyidagi shartni qo'shishingiz mumkin: agar ko'rinish turi ro'yxat bo'lsa, koordinata tizimini aylantirmang, shunda har qanday holatda ham panjaralar ro'yxatida frontal ko'rinish bo'ladi; - konstruktsiyalarning to'liq ko'rinmasligi (agar siz faqat yadro tanlangan bo'lsa, ob'ektni ba'zi qismlarini ko'rsatmasligi mumkin).

Siz devor ma'lumotlarini deraza yoki eshik ob'ektiga sudrab borishingiz mumkin. Chiziqlar o'zlari bilan bog'langan element haqida juda ko'p turli xil ma'lumotlarni olishlari mumkin, masalan, ko'p qatlamli strukturaning qatlamlari bo'lgan katakchani yoki elementning hajmiga ega bo'lgan rahbarni. Va shunga o'xshash 40 ta turli xil va juda foydali global o'zgaruvchilar sahifalari. O'RNAK 4 - zona belgisi Keling, maxsus zona markerining qanday yaratilganligini ko'rib chiqamiz. Agar siz yangi ob'ekt yaratib, unga Tafsilotlar bo'limida Zone Passport kichik turini tanlasangiz, u holda Parameters bo'limida Zone vositasi markerga o'tadigan barcha aniq parametrlar ko'k rangda aks etadi (21-rasm).

Рис. 21. Параметры объекта подтипа Паспорт Зоны
Рис. 21. Параметры объекта подтипа Паспорт Зоны
kattalashtirish
kattalashtirish

TEXT2 buyrug'i yordamida ushbu o'zgaruvchilarning istalganini 2 o'lchovli skriptga yozishingiz mumkin - shu tarzda faqat matndan iborat markerni olasiz (22-rasm).

kattalashtirish
kattalashtirish

Zona markerining umumiy parametrlaridan foydalanib, shrift balandligiga qarab matn uslubi va satr balandligini aniqlashingiz mumkin: DEFINE STYLE “ROOM” AC_TextFont_1, ROOM_LSIZE, 5.0 STYLE “ROOM” qator = ROOM_LSIZE / 1000 * GLOB_SCALE * 1.5 text2 0, qator, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, ROOM_AREA Siz marker turini tanlash uchun yangi parametr yaratishingiz mumkin (23-rasm), uning parametrlarini Parametrlar skriptida (24-rasm) va 2D skript har xil turdagi markerlarni ko'rsatishning har xil turlarini yozadi.

kattalashtirish
kattalashtirish
kattalashtirish
kattalashtirish

2D skript: agar mt = "raqam bilan marker" bo'lsa, u holda text2 0, 0, ROOM_NUMBER CIRCLE2 0,0, satr endif agar mt = "raqam va maydon" bo'lsa, u holda text2 0, qator / 2, ROOM_NUMBER text2 0, -row / 2, AREA_TEXT endif, agar mt = "sarlavha va maydon" bo'lsa, u holda text2 0, qator / 2, ROOM_NAME text2 0, -row / 2, AREA_TEXT endif, agar mt = "raqam, sarlavha va maydon" bo'lsa, u holda text2 0, qator, ROOM_NUMBER matn2 0, 0, ROOM_NAME text2 0, -row, AREA_TEXT endif if mt = "area only" then text2 0, 0, AREA_TEXT endif Ushbu skriptda men oldindan belgilangan maydon o'zgaruvchisini maydon sifatida ishlatmadim, lekin maydonni matnga aylantirdim va qo'shdim u birliklar: maydon = str (ROOM_AREA, 4, 2)! raqamni matnga 2 kasrli maydonga o'tkazish AREA_TEXT = maydon + "kv.m." ! satr qiymatiga "kv." harflarini qo'shish Belgilagichdagi satrlarni ba'zi chiziqlarni ajratuvchi chiziqlar bilan to'ldirishingiz mumkin. Ip uzunligini topish uchun STW buyrug'idan foydalaning. Stsenariyning boshiga qo'shamiz: tl1 = stw (ROOM_NUMBER) / 1000 * GLOB_SCALE tl2 = stw (ROOM_NAME) / 1000 * GLOB_SCALE tl3 = stw (AREA_TEXT) / 1000 * GLOB_SCALE agar mt = "son va maydon" bo'lsa, keyin tl = MAX (tl1, tl3) agar mt = "raqam, sarlavha va maydon" bo'lsa, u holda tl = MAX (tl1, tl2) bo'lsa mt = "unvon va maydon", keyin tl = MAX (tl2, tl3) bo'lsa mt = "faqat maydon" tl = tl3 VA markerlarning variantlarida chiziqlarni LINE2 buyrug'i bilan qo'shing (25-rasm).

Рис. 25. 2D-скрипт
Рис. 25. 2D-скрипт
kattalashtirish
kattalashtirish

Agar zona raqami bir nechta raqamlardan iborat bo'lsa, marker uchun siz shrift balandligidan mustaqil ravishda aylana radiusi uchun parametr yaratishingiz yoki aylana o'rniga uzunlikka teng uzunlikdagi ellipsga o'xshash shaklni tasvirlashingiz mumkin. biz ilgari topgan zonalar qatori qatori: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, qator, 1, tl1 / 2, qator, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, row, 1001 Siz pol turi uchun yangi parametr (FLOOR_TYPE) va uni yashirishga yoki ko'rsatishga imkon beradigan parametrni (ShowFloorType) qo'shishingiz mumkin, va 2 o'lchovli skriptda uchburchakni polilinali va pol turidagi matn: agar ShowFloorType bo'lsa ADD2 0, qator * 3 POLY2_ 4, 1, -row * 1.4, -row * 0.8, 1, qator * 2.8,60,201, qator * 1.4, -row * 0.8, 1, 0,0,700 text2 0,0, FLOOR_TYPE endif Qavat turi uchun qalam uchun alohida parametr, shuningdek pol markerining joylashishini grafik tahrirlash uchun punktlar qo'shilishi maqsadga muvofiqdir. Men veb-seminarimga grafik tahrirlash punktlarini qanday qo'shishni batafsil bayon qildim va maqolaning oxiridagi havoladan foydalanib, siz ob'ektlarni yuklab olishingiz va ushbu aniq vaziyatda qanday amalga oshirilishini ko'rishingiz mumkin.

Va nihoyat, katta imkoniyatlarni ochadigan ob'ektning yana bir juda muhim kichik turini - kutubxonaning global parametrlarini ko'rib chiqamiz (26-rasm).

kattalashtirish
kattalashtirish

Ushbu kichik turga ega bo'lgan ob'ekt hech narsa qurmaydi yoki chizmaydi, u model ko'rinishidagi parametrlarni belgilaydi. Shunday qilib, u erda siz ob'ekt uchun umumiy ko'rishni istagan parametrlarni chiqarib olishingiz mumkin, lekin ayni paytda har xil turlar uchun turli xil qiymatlarni o'rnatishingiz mumkin.

Buni zona markeri misolida ko'rsataman. Men turli xil qarashlar uchun turli qatlamlarda bir nechta zonalar to'plami bo'lgan loyihalarni uchratdim. Agar turli xil markerlarga ehtiyoj bo'lsa, kutubxonaning global parametrlari eng yaxshi echimdir.

Menda marker bor, unda uchburchakda pol turini o'rnatish va markalash turini o'zgartirish mumkin (27-rasm). Va bu ikkita parametr Global Library Parameters subtype-ning alohida fayliga ko'chiriladi (28-rasm).

kattalashtirish
kattalashtirish
kattalashtirish
kattalashtirish

Ushbu parametrlarni Model View Parameters dialog oynasida aks ettirish uchun ularni ob'ekt interfeysi skriptida ro'yxatdan o'tkazishingiz kerak (29-rasm). Ushbu skript uchun maxsus buyruqlar haqida batafsil to'xtamayman, ular etarlicha batafsil va ma'lumotnomadagi misollar bilan tavsiflangan. Shuni aytmoqchimanki, bu erda biz u yoki bu yorliq yoki tugma qaerda joylashganligini tasvirlaymiz (variantlar tanlovi bo'lgan maydon, tasdiq belgisi va boshqalar), tasvirlar ham foydalanuvchi interfeysiga kiritilishi mumkin. Standart kutubxonada deyarli har bir ob'ekt grafik interfeysga ega; barcha imkoniyatlarni ko'rishingiz va ushbu skriptlarning qanday yozilganligini ko'rishingiz mumkin. Skriptda Check tugmasidan tashqari View tugmasi ham mavjud. Unga bosish orqali nima sodir bo'lishini tezda ko'rishingiz mumkin.

kattalashtirish
kattalashtirish

Siz ob'ektni saqlashingiz va Model View Options dialog oynasida ko'rishingiz mumkin (30-rasm). Bu erda biz markalash turini loyihadagi barcha zonalar uchun bir vaqtning o'zida o'zgartirishimiz mumkin (ushbu marker bilan), lekin har xil turlari uchun alohida-alohida.

kattalashtirish
kattalashtirish

Endi, zonani belgilaydigan ob'ektda siz ushbu ikkita parametr qiymatlari uchun ob'ektdan so'rov o'tkazishingiz kerak. Asosiy skriptda (avval ob'ekt tomonidan o'qiladi, shuning uchun bir nechta skriptlarda ishlatilishi kerak bo'lgan barcha hisob-kitoblar va qiymatlarning ta'riflari, bu erda yozish yaxshiroq) men quyidagi ikkita qatorni yozaman: success1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) muvaffaqiyat2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" agar so'rov muvaffaqiyatli bo'lsa, "muvaffaqiyat" 1 bo'ladi; aks holda 0 bo'ladi.

Buning yordamida zona markeri o'rniga LibraryGlobals20 ob'ekti kutubxonaga yuklanmaganligi to'g'risida ogohlantiruvchi xabar yozish uchun foydalanish mumkin.

Keyin ob'ekt odatdagidek ishlaydi, ikkita yangi qiymatdan foydalanadi: agar markalash turi falonchi bo'lsa, u holda falonchini yozing va hokazo. Ushbu maqolada men GDL imkoniyatlarining ozgina qismini yoritdim. Uning yordami bilan siz juda oddiy dizayn elementlarini ham, juda murakkab narsalarni ham yaratishingiz mumkin.

Masalan, siz kichik va oddiy SIP panelli uylar bilan shug'ullanasiz. Sizda loyihani o'zgartirish variantlarining aniq ro'yxati mavjud: - 1,2 m qadam bilan uyning uzunligi va kengligi 2,4 dan 24 metrgacha bo'lishi mumkin; - eni 6 m dan oshsa, o'rtada yana bir devor bo'lishi kerak; - panel o'lchamiga qarab pol balandliklari uchun ikkita variant; - qavatlar soni - bir yoki ikki qavat; - derazalar ma'lum o'lchamdagi panellarning ma'lum joylarida bo'lishi mumkin; - uchta variantda fasadlarni tugatish; - uchta versiyada tom yopish; - bir nechta standart o'lchamdagi devor qalinligi va boshqalar.

Panel, tom, bezak va hokazolarning kvadrat metri uchun xarajatlarni qo'shib, ob'ekt uchun ushbu parametrlarning barchasini o'rnatishingiz mumkin. Ob'ektning 2D va 3D skriptlarida ushbu uyni statik o'lchamlar o'rniga o'zgaruvchilar bilan to'liq qurish va chizish. Parametrlarning uzun ro'yxatida foydalanuvchi chalkashib ketmasligi uchun siz rasmlar va diagrammalar bilan bir nechta sahifalar uchun grafik interfeys yozishingiz mumkin. Asosiy skriptda barcha jildlarni hisoblang va narxini ko'rsating. Shuningdek, rejaning yonida 2D skriptda panellarning joylashuvi bilan jadvalni namoyish qilish mumkin. Bunday ob'ektni yozish juda ko'p vaqtni oladi, siz batafsil texnik spetsifikatsiyani tuzishingiz, barcha nuanslarni ta'minlashingiz kerak bo'ladi, ammo keyin siz nafaqat ob'ektni, balki parametrlarni tanlash bilan siz deyarli dasturni olasiz xaridor uchun materiallar va xarajatlarni hisoblash bilan qoralama dizayn to'plamini olishi mumkin. Umid qilamanki, ushbu sharh kimningdir GDL imkoniyatlariga qiziqishini kuchaytirdi. Mening hikoyam ba'zi bir standart zona belgilarida ba'zi bir mayda detallarni o'zgartirishga bo'lgan intilishdan boshlandi va qo'llanmani qanchalik ko'p o'qigan bo'lsam, ushbu vositaning, mening fikrimcha, me'mor uchun juda foydali bo'lgan imkoniyatlari oshkor bo'ladi. Quyidagi havoladan ushbu maqolada misol sifatida ko'rib chiqilgan barcha moslamalarni yuklab olishingiz mumkin: Misollarni yuklab oling Eslatma. Ushbu moslamalarni yozish uchun ARCHICAD 20 ishlatilgan, shuning uchun ular oldingi versiyalarda ochilmaydi. GRAPHISOFT haqida GRAPHISOFT kompaniyasi® 1984 yilda ARCHICAD bilan BIMda inqilob qildi® SAPR sanoatidagi me'morlar uchun sanoatning birinchi BIM echimi. GRAPHISOFT me'moriy dasturiy ta'minot bozorida BIMcloud ™, dunyodagi birinchi real vaqtda hamkorlikdagi BIM dizayn echimi, dunyodagi birinchi to'liq integratsiyalashgan energiya modellashtirish va binolarning energiya samaradorligini baholash EcoDesigner ™ kabi innovatsion mahsulotlar bilan etakchilik qilishni davom ettiradi.® BIM modellarini namoyish qilish va namoyish qilish uchun etakchi mobil dastur. 2007 yildan beri GRAPHISOFT Nemetschek guruhining bir qismi hisoblanadi.

Tavsiya: