You are on page 1of 218

Object Making with

ArchiCAD
GDL for Beginners
by David Nicholson-Cole

BUDAPEST • MUNICH • SAN FRANCISCO • TOKYO •


LONDON • MADRID • SAO PAULO • SANTIAGO DE CHILE

i
Object Making with ArchiCAD: GDL for Beginners
© 2000. Written by David Nicholson-Cole. All rights reserved. Reproduction, paraphrasing or
translation without express prior written permission of Graphisoft is strictly prohibited.
Back cover credits: Marks Barfield Architects, creators of the British Airways London Eye,
http://www.marksbarfield.com. GDL model by David Nicholson-Cole.
Published by GRAPHISOFT R&D Rt., http://www.graphisoft.com
First printing.
Printed in Hungary.
The version of GDL described in this manual is compatible with ArchiCAD 6.5 and ArchiFM
2000.ArchiCAD and ArchiFM are registered trademarks and StairMaker and GDL are
trademarks of Graphisoft. All other trademarks are the property of their respective holders.

ISBN 963 00 3726 2


Tạo đối tượng với ArchiCAD: GDL cho người mới bắt đầu
© 2000. Viết bởi David Nicholson-Cole. Đã đăng ký Bản quyền. Nghiêm cấm sao chép, diễn giải
hoặc dịch thuật mà không có sự cho phép trước bằng văn bản của Graphisoft.
Các khoản tín dụng bìa sau: Marks Barfield Architects, người sáng tạo ra British Airways London
Eye, http://www.marksbarfield.com. Mô hình GDL của David Nicholson-Cole.
Được xuất bản bởi GRAPHISOFT R&D Rt., Http://www.graphisoft.com
Lần in đầu tiên. i
In tại Hungary.
Phiên bản GDL được mô tả trong sách hướng dẫn này tương thích với ArchiCAD 6.5 và ArchiFM
2000. ArchiCAD và ArchiFM là các nhãn hiệu đã đăng ký và StairMaker và GDL là các nhãn hiệu
của Graphisoft. Tất cả các nhãn hiệu khác là tài sản của chủ sở hữu tương ứng.

ISBN 963 00 3726 2


About this Book Về cuốn sách này
Object Making with ArchiCAD is designed to help you get more
enjoyment and productivity from ArchiCAD by taking you
beyondthe confines of the Toolbox (the tools palette) into the
realm of object making with GDL (Geometric Description
Language). Tạo đối tượng với ArchiCAD được thiết kế để giúp
bạn tận hưởng nhiều hơn và năng suất hơn từ ArchiCAD bằng
cách đưa bạn vượt ra ngoài giới hạn của Hộp công cụ (bảng
công cụ) vào lĩnh vực tạo đối tượng với GDL (Ngôn ngữ mô tả
hình học).
Objects – such as furniture, doors and windows, lamps,
buildingcomponents – can be made using the existing tools –
wall, roof, floor, mesh, etc. They can be made with native GDL,
scripted fromstart to end; or they can be made with a
combination of the ArchiCAD tools and scripting. ArchiCAD
users have long asked fora book that will lead users from tool
using to object making, and we hope that this little primer
will open up new worlds for each user. The book is not just
about GDL; it starts with object making using the existing
tools, and by progressive stages, leads you intoGDL, but we
hope you will find the transition enjoyable. Các đối tượng -
chẳng hạn như đồ nội thất, cửa ra vào và cửa sổ, đèn, các bộ
phận của tòa nhà - có thể được tạo ra bằng các công cụ hiện
có - tường, mái, sàn, lưới, v.v. Chúng có thể được tạo bằng
GDL gốc, được viết kịch bản từ đầu đến cuối; hoặc chúng có
thể được tạo ra bằng sự kết hợp của các công cụ ArchiCAD
và tập lệnh. Người dùng ArchiCAD từ lâu đã yêu cầu một
cuốn sách sẽ dẫn dắt người dùng từ cách sử dụng công cụ đến
việc tạo ra đối tượng và chúng tôi hy vọng rằng cuốn sách
nhỏ này sẽ mở ra thế giới mới cho mỗi người dùng. Cuốn
sách không chỉ về GDL; nó bắt đầu với việc tạo đối tượng
bằng cách sử dụng các công cụ hiện có và theo các giai đoạn
tiến bộ, dẫn bạn đến với GDL, nhưng chúng tôi hy vọng bạn
sẽ thấy quá trình chuyển đổi thú vị.
Some of the examples used in the book will be available from
thesupport website. Một số ví dụ được sử dụng trong sách sẽ
có sẵn trên trang web hỗ trợ.

About the Author Thông tin về các Tác giả


David Nicholson-Cole is an architect and teaches at Nottingham
University in the UK. He has been an enthusiastic evangelist for
GDL and a prodigious producer of GDL objects since
discovering the power (and the pleasure) of GDL. He made his
mark in the GDL world as the author of the GDL Cookbook, is a
director of The-Object-Factory.com, and a founder member of
the GDL Alliance. The GDL Cookbook logically follows after
the book you are now reading. It is an A-Z of GDL technique,
and is usable in itsown right as a GDL manual. David has also
travelled around the Globe at the invitation of ArchiCAD
dealers and their customers, teaching GDL.
David Nicholson-Cole là một kiến trúc sư và giảng dạy tại Đại
học Nottingham ở Vương quốc Anh. Anh ấy đã là một nhà
truyền giáo nhiệt tình cho GDL và là một nhà sản xuất tuyệt vời
của các đối tượng GDL kể từ khi khám phá ra sức mạnh (và
niềm vui) của GDL. Anh ấy đã ghi dấu ấn của mình trong thế
giới GDL với tư cách là tác giả của Sách dạy nấu ăn GDL, là
giám đốc của The-Object-Factory.com và là thành viên sáng lập
của Liên minh GDL. Sách dạy nấu ăn GDL theo sau một cách
hợp lý sau cuốn sách bạn đang đọc. Nó là một từ A-Z của kỹ
thuật GDL, và có thể sử dụng theo đúng nghĩa của nó như một
hướng dẫn sử dụng GDL. David cũng đã đi khắp Globe theo lời
mời của các đại lý ArchiCAD và khách hàng của họ, dạy GDL.

Acknowledgements Sự nhìn nhận


Object Making with ArchiCAD: GDL for Beginners was
developedin concept by Graphisoft as a means of filling the gap
between theGDL Cookbook and the existing reference manuals.
It contains easy to follow exercises in object making, and pulls
together wisdom about object making from other sources,
including the reference manuals, for which all the authoring
team should be thanked.
Tạo đối tượng với ArchiCAD: GDL cho người mới bắt đầu
được Graphisoft phát triển theo khái niệm như một phương tiện
lấp đầy khoảng cách giữa GDL Cookbook và các hướng dẫn
tham khảo hiện có. Nó bao gồm các bài tập dễ theo dõi trong
việc tạo đối tượng và tổng hợp các kiến thức về chế tạo đối
tượng từ các nguồn khác, bao gồm các tài liệu hướng dẫn tham
khảo, mà tất cả nhóm tác giả nên cảm ơn.
ii
i
Chapter 1: Introduction to Object Making

Chapter 1
Introduction to Object
Making Giới thiệu về
Tạo đối tượng
An introduction to the possibilities of object making in ArchiCAD,
with or without GDL.

Giới thiệu về các khả năng tạo đối tượng trong ArchiCAD, có hoặc
không có GDL.
Object Making with ArchiCAD
1
Chapter 1: Introduction to Object Making

1.1 About Object Making Giới thiệu


về Tạo đối tượng
The real 3D world can be thought of as a vast assembly of
objects.ArchiCAD’s 3D environment can be thought of as a large
theatricalstage where you assemble the cast (the objects), the
set (the drawing) and the script (the design idea). You bring
the objects together, organize them, and then – let the play
begin! Thế giới 3D thực có thể được coi là một tập hợp rộng
lớn của các đối tượng. Môi trường 3D của ArchiCAD có thể
được coi như một sân khấu lớn, nơi bạn tập hợp dàn diễn viên
(đồ vật), bối cảnh (bản vẽ) và kịch bản (ý tưởng thiết kế). Bạn
tập hợp các đồ vật lại với nhau, sắp xếp chúng và sau đó - hãy
bắt đầu chơi!
Most of the objects in the ArchiCAD assembly area are
building elements – walls, columns, floors, roofs, meshes,
etc., brought together to form buildings. These objects are
easily made with thetools given to you in ArchiCAD. Hầu hết
các đối tượng trong vùng lắp ráp ArchiCAD là các phần tử
của tòa nhà - tường, cột, sàn, mái, lưới, v.v., được kết hợp
với nhau để tạo thành các tòa nhà. Những đối tượng này
được tạo dễ dàng bằng các công cụ được cung cấp cho bạn
trong ArchiCAD.
Whenever you need go beyond walls and floors, etc., you can
usespecial objects such as furniture, windows and doors,
lamps and components. In ArchiCAD manuals, these are also
referred to extensively as Library Parts. These can be found in
your library ormade specially. So, why should we bother to
make objects? Well, we can make: Bất cứ khi nào bạn cần
vượt ra ngoài tường và sàn nhà, v.v., bạn có thể sử dụng các
đồ vật đặc biệt như đồ nội thất, cửa sổ và cửa ra vào, đèn và
các bộ phận. Trong hướng dẫn sử dụng ArchiCAD, chúng
cũng được gọi rộng rãi là Bộ phận Thư viện. Chúng có thể
được tìm thấy trong thư viện của bạn hoặc được làm đặc biệt.
Vậy, tại sao chúng ta phải bận tâm đến việc tạo ra các đối
tượng? Chà, chúng ta có thể thực hiện:
– Structural elements that are right for their purpose Các yếu tố
cấu trúc phù hợp với mục đích của chúng
– Details of building construction that look authentic Chi tiết xây
dựng tòa nhà trông chân thực
– Furniture that is smart and elegant Đồ nội thất thông minh và
trang nhã
– Components that conform to catalog numbers
andmanufacturers’ specifications Các thành
phần phù hợp với số danh mục và thông số kỹ
thuật của nhà sản xuất
– Lights that can transform the environment of a model Đèn có thể
biến đổi môi trường của một mô hình
– Windows that open and swivel, and offer a choice of styles Các
cửa sổ mở và xoay, và cung cấp nhiều kiểu lựa chọn
– Doors that offer choices of ironwork and glazing styles Các nhà
cung cấp các lựa chọn về phong cách đồ sắt và kính
– Stairs that enable you to vary landings, risers and handrails Các
bậc thang cho phép bạn thay đổi các điểm hạ cánh, bậc thang và
tay vịn
– Picture objects that can be placed in a model to look
likepeople, trees, or even whole buildings Các đối
tượng hình ảnh có thể được đặt trong một mô hình
để trông giống như người, cây cối hoặc thậm chí
toàn bộ tòa nhà
– 2D drawing objects and tools that can enhance
yourproductivity and drawing accuracy. Các đối
tượng và công cụ vẽ 2D có thể nâng cao năng
suất và độ chính xác của bản vẽ của bạn.
In short, the pleasure and productivity of the ArchiCAD user
can be greatly enhanced with objects. This book is intended to
ease the ArchiCAD user safely into making objects. It is not
entirely selfcontained; it needs to be read with the GDL
Reference Manual andthe main ArchiCAD Reference Guide.
Dip into these when you need to. If you wish to take object
making further, your next stage after this primer is to work with
the GDL Cookbook, which takes you progressively into more
advanced GDL.
Nói tóm lại, niềm vui và năng suất của người dùng ArchiCAD
có thể được nâng cao đáng kể với các đối tượng. Cuốn sách này
nhằm mục đích giúp người dùng ArchiCAD dễ dàng chế tạo các
đối tượng một cách an toàn. Nó không hoàn toàn khép kín; nó
cần được đọc với Hướng dẫn Tham khảo GDL và Hướng dẫn
Tham khảo ArchiCAD chính. Hãy nhúng vào những thứ này khi
bạn cần. Nếu bạn muốn tiến xa hơn trong việc tạo đối tượng, thì
giai đoạn tiếp theo của bạn sau phần sơ khai này là làm việc với
GDL Cookbook, cuốn sách này sẽ đưa bạn dần dần vào GDL
nâng cao hơn.

2 Object Making with ArchiCAD


Chapter 1: Introduction to Object Making

Library Parts in ArchiCAD Các phần


thư viện trong ArchiCAD
When you build an ArchiCAD project, you can use the primary
modeling tools – walls, floorslabs, columns, roofs, etc. The
Toolbox also offers access library parts: furniture objects,
lamps, windows, doors. In the Toolbox or the Tools menu, you
may alsofind add-ons such as ArchiSITE, StairMaker, Profiler
and RoofMaker. To place an object in the project you can use
differentactions, such as click and stretch, click and click again
to indicate direction, or you may encounter an entire dialog
box containing instructions and many fields in which to enter
information. Khi bạn xây dựng một dự án ArchiCAD, bạn có
thể sử dụng các công cụ mô hình chính - tường, tấm sàn, cột,
mái nhà, v.v. Hộp công cụ cũng cung cấp các phần thư viện truy
cập: đồ vật, đèn, cửa sổ, cửa ra vào. Trong Hộp công cụ hoặc
menu Công cụ, bạn cũng có thể tìm thấy các tiện ích bổ sung
như ArchiSITE, StairMaker, Profiler và RoofMaker. Để đặt một
đối tượng trong dự án, bạn có thể sử dụng các hành động khác
nhau, chẳng hạn như nhấp và kéo dài, nhấp và nhấp lại để chỉ ra
hướng hoặc bạn có thể gặp toàn bộ hộp thoại chứa hướng dẫn
và nhiều trường để nhập thông tin.
In your use of ArchiCAD, you will have noticed that most
library parts offer many chances for variation (called
parameters) such asthe number of mullions in a window or
glazing styles in a door. Khi sử dụng ArchiCAD, bạn sẽ nhận
thấy rằng hầu hết các phần của thư viện đều cung cấp nhiều
cơ hội thay đổi (được gọi là tham số) chẳng hạn như số
lượng hàng triệu trong cửa sổ hoặc kiểu lắp kính trong cửa.
They may also offer different ways (in materials, pens and fills)
ofrepresenting themselves in the 3D view and in 2D. Họ cũng
có thể đưa ra các cách khác nhau (trong vật liệu, bút và tô màu)
để thể hiện bản thân trong chế độ xem 3D và 2D.
This introduction to object making will make it possible to
build objects yourself; it will introduce techniques for making
more thanjust 3D or 2D shaped objects – you can try to make
them capable of offering variations – thus they can be
parametric.Phần giới thiệu về chế tạo đối tượng này sẽ giúp bạn
có thể tự chế tạo đối tượng; nó sẽ giới thiệu các kỹ thuật để tạo
ra nhiều hơn các đối tượng hình dạng 3D hoặc 2D - bạn có thể
cố gắng làm cho chúng có khả năng cung cấp các biến thể - do
đó chúng có thể là tham số.
Libraries must be loaded Các thư viện phải được tải
Whatever you make, however you make it, ArchiCAD must be
able to find the object. Every time you open ArchiCAD, it reads
through the library directories (folders) and makes an index of
what it finds. The existing ArchiCAD Library is a folder in your
installed ArchiCAD directory. ArchiCAD’s own library will be
loaded (by default) but when you are running a project, or
experimenting with GDL, you should make additional folders
of your objects. Make sure you do not make objects or folders
with the same names as ones that already exist in the libraries.
When you are working with ArchiCAD, make sure that the
folder you aresaving your objects to is one of your loaded
libraries. Dù bạn tạo ra bất cứ thứ gì, dù bạn tạo ra nó,
ArchiCAD phải có thể tìm thấy đối tượng. Mỗi khi bạn mở
ArchiCAD, nó sẽ đọc qua các thư mục thư viện (thư mục) và tạo
một chỉ mục về những gì nó tìm thấy. Thư viện ArchiCAD hiện
có là một thư mục trong thư mục ArchiCAD đã cài đặt của bạn.
Thư viện riêng của ArchiCAD sẽ được tải (theo mặc định)
nhưng khi bạn đang chạy một dự án hoặc thử nghiệm với GDL,
bạn nên tạo các thư mục bổ sung cho các đối tượng của mình.
Đảm bảo rằng bạn không tạo các đối tượng hoặc thư mục có
cùng tên với các đối tượng hoặc thư mục đã tồn tại trong thư
viện. Khi bạn đang làm việc với ArchiCAD, hãy đảm bảo rằng
thư mục bạn đang lưu các đối tượng của mình vào là một trong
các thư viện đã tải của bạn.
You can either make a new library folder that relates to current
projects, or your objects can be stored in a personal library in
theArchiCAD folder. The main point is that you know where they
are,and you have loaded them. Subfolders to keep furniture
objects, building components, window objects, textures, etc.,
should be logically organized. Bạn có thể tạo một thư mục thư
viện mới liên quan đến các dự án hiện tại hoặc các đối tượng
của bạn có thể được lưu trữ trong một thư viện cá nhân trong
thư mục ArchiCAD. Điểm chính là bạn biết chúng ở đâu và bạn
đã tải chúng. Các thư mục con để giữ các đối tượng đồ nội thất,
các thành phần xây dựng, đối tượng cửa sổ, kết cấu, v.v., nên
được tổ chức hợp lý.

Object Making with ArchiCAD


3
Chapter 1: Introduction to Object Making

Sources of Library Parts Nguồn của các


bộ phận thư viện
The ArchiCAD Library Thư viện ArchiCAD
It is worth going through the ArchiCAD Library included with your
package before you start creating library parts on your own.
Investigate what already exists. This will give you an idea of
what you can use and do not need to make; and the example
in there will give you ideas of what is possible. You will be
able to see howparameters change and this will make you
think about what qualities you might like to include in objects
that you make – suchas user friendliness, clear organization
and description of parameters, stretchiness, 3D authenticity
and intelligible 2D symbols.
Bạn nên xem qua Thư viện ArchiCAD đi kèm với gói của bạn
trước khi bạn bắt đầu tự tạo các phần thư viện.
Điều tra những gì đã tồn tại. Điều này sẽ cung cấp cho bạn ý
tưởng về những gì bạn có thể sử dụng và không cần thực hiện;
và ví dụ trong đó sẽ cung cấp cho bạn ý tưởng về những gì có
thể. Bạn sẽ có thể thấy các thông số thay đổi như thế nào và
điều này sẽ khiến bạn suy nghĩ về những phẩm chất bạn có
thể muốn đưa vào các đối tượng mà bạn tạo ra - chẳng hạn
như thân thiện với người dùng, tổ chức rõ ràng và mô tả các
thông số, độ co giãn, tính xác thực 3D và các biểu tượng 2D
dễ hiểu.
Complementary Libraries Thư viện bổ sung
Several specialist libraries are available on CD from Graphisoft
or their partners (e.g., People and More, MasterLibrary, etc.). If
you explore the Internet, you will find an increasing number of
websites devoted to ArchiCAD objects including The Object
Factory (www.the-object-factory.com) or Objects On Line
(www.objectsonline.com). The Graphisoft website gives you
an up to date list of addresses of such sites. You will find that,
with the free GDL Object Web Plug-in, ArchiCAD objects can
be viewedin a browser, changed parametrically, and rendered,
almost as if you were examining them from within ArchiCAD.
Một số thư viện chuyên dụng có sẵn trên CD từ Graphisoft hoặc
các đối tác của họ (ví dụ: Mọi người và hơn thế nữa,
MasterLibrary, v.v.). Nếu bạn khám phá Internet, bạn sẽ tìm thấy
ngày càng nhiều trang web dành cho các đối tượng ArchiCAD
bao gồm The Object Factory (www.the-object-factory.com) hoặc
Objects On Line (www.objectsonline.com). Trang web
Graphisoft cung cấp cho bạn danh sách cập nhật địa chỉ của các
trang web đó. Bạn sẽ thấy rằng, với Trình cắm Web Đối tượng
GDL miễn phí, các đối tượng ArchiCAD có thể được xem trong
trình duyệt, thay đổi tham số và hiển thị, gần như thể bạn đang
kiểm tra chúng từ bên trong ArchiCAD.
DXF and DWG Libraries Thư viện DXF và DWG
Most building component manufacturers offer disks of DXF
files although most of these are 2D only. It is always worth
getting these, as DXF files can be used in ArchiCAD, and you
will be able to make use of them. 2D DXF and DWG can be
brought straight into the Project plan. Where you see the
opportunity to make library parts out of DXF or DWG
originals, you may be able to takeadvantage of the parametric
power available to you in GDL. Hầu hết các nhà sản xuất
thành phần xây dựng đều cung cấp các đĩa tệp DXF mặc dù
hầu hết các tệp này chỉ là 2D. Luôn luôn đáng để có được
những thứ này, vì các tệp DXF có thể được sử dụng trong
ArchiCAD và bạn sẽ có thể sử dụng chúng. 2D DXF và DWG
có thể được đưa thẳng vào kế hoạch Dự án. Khi bạn thấy có
cơ hội tạo các phần thư viện từ bản gốc DXF hoặc DWG, bạn
có thể tận dụng sức mạnh tham số có sẵn cho mình trong
GDL.
For 3D, you can also make objects with other applications
from 3rd parties – Zoom, Alias Wavefront, Design Workshop,
AutoCAD
– save them as a DXF, then bring them into ArchiCAD as a
librarypart. The DXF/DWG Conversion Guide included in
your ArchiCAD package explains this procedure in more
detail.
Đối với 3D, bạn cũng có thể tạo các đối tượng bằng các ứng
dụng khác từ bên thứ 3 - Zoom, Alias Wavefront, Design
Workshop, AutoCAD
- lưu chúng dưới dạng DXF, sau đó đưa chúng vào ArchiCAD
như một phần thư viện. Hướng dẫn Chuyển đổi DXF / DWG
được bao gồm trong gói ArchiCAD của bạn giải thích quy
trình này chi tiết hơn.

4 Object Making with ArchiCAD


Chapter 1: Introduction to Object Making

When you bring the 3D DXF into ArchiCAD as a library part,


youcan opt for: Khi bạn đưa 3D DXF vào ArchiCAD như một
phần thư viện, bạn có thể chọn:
– Don’t Process: The object does not get converted to 3D.
Onlythe 2D parts will get imported. This is the default
setting. Không xử lý: Đối tượng không được chuyển đổi sang
3D. Chỉ các phần 2D sẽ được nhập. Đây là thiết lập mặc định.
– Binary 3D: The object comes in as 3D, but it is encapsulated
into an uneditable block of machine code that is neat, tidy
andstretchy (and more reliable when rendering), but leaves
you no opportunity for further editing or parametric
modifications.Binary 3D: Đối tượng ở dạng 3D, nhưng nó
được đóng gói thành một khối mã máy không thể chỉnh sửa,
gọn gàng, ngăn nắp và co giãn (và đáng tin cậy hơn khi hiển
thị), nhưng bạn không có cơ hội để chỉnh sửa thêm hoặc sửa
đổi tham số.
– GDL Script: With this option, all the 2D and 3D data will
be imported, but you will be faced with a colossal
quantity of script. Nothing brought in from DXF is solid;
it is a vast massof polygons and lines, and in no particular
order. If you attempt to edit these you will need a lot of
luck and guesswork. The most you can be sure of editing
successfullyare Material names, and a simplified 2D
symbol.GDL Script: Với tùy chọn này, tất cả dữ liệu 2D
và 3D sẽ được nhập, nhưng bạn sẽ phải đối mặt với một
lượng lớn tập lệnh. Không có gì mang lại từ DXF là chắc
chắn; nó là một khối lượng lớn các đa giác và đường
thẳng, và không theo một thứ tự cụ thể nào. Nếu bạn cố
gắng chỉnh sửa những điều này, bạn sẽ cần rất nhiều may
mắn và phỏng đoán. Phần lớn bạn có thể chắc chắn chỉnh
sửa thành công là tên Vật liệu và biểu tượng 2D đơn giản.
You may be disappointed with the result. You will have to
spend alot of time learning the new applications. 3D objects
made in otherapplications will leave you with little or no
control over the materials and parametric properties. In
particular, you may find that the lack of control over the
number of polygons leaves you with a model that has so many
polygons that your rendering timesbecome unacceptable. With
such an excess of polygons, you mayfind it difficult to export
your ArchiCAD model to a 3rd party renderer such as
Art•lantis Render. Bạn có thể thất vọng với kết quả. Bạn sẽ
phải dành nhiều thời gian để tìm hiểu các ứng dụng mới. Các
đối tượng 3D được tạo trong các ứng dụng khác sẽ khiến bạn
có rất ít hoặc không kiểm soát được vật liệu và thuộc tính
tham số. Đặc biệt, bạn có thể thấy rằng việc thiếu kiểm soát
số lượng đa giác khiến bạn có một mô hình có nhiều đa giác
đến mức thời gian kết xuất của bạn trở nên không thể chấp
nhận được. Với lượng đa giác dư thừa như vậy, bạn có thể
gặp khó khăn khi xuất mô hình ArchiCAD của mình sang
trình kết xuất của bên thứ 3 chẳng hạn như Art • lantis
Render.
If you take the time to learn GDL, you have the advantage
over other CAD users, in that you can make a 2D or 3D
library part inGDL that is parametrically variable, and save
the resulting variedforms as separate DXFs.Nếu bạn dành thời
gian để học GDL, bạn có lợi thế hơn những người dùng CAD
khác, đó là bạn có thể tạo một phần thư viện 2D hoặc 3D trong
GDL có thể thay đổi tham số và lưu các biểu mẫu đa dạng kết
quả dưới dạng các DXF riêng biệt.
Add-ons that make Objects Tiện ích bổ sung tạo Đối
tượng
There are a number of third party programs that can create or
edit ArchiCAD library parts, for example, StairMaker and
ArchiSite. Youwill also find a growing number of object-
making Add-ons provided by Graphisoft such as RoofMaker and
Profiler. Có một số chương trình của bên thứ ba có thể tạo hoặc
chỉnh sửa các phần thư viện ArchiCAD, ví dụ: StairMaker và
ArchiSite. Bạn cũng sẽ tìm thấy ngày càng nhiều các Tiện ích bổ
sung tạo đối tượng do Graphisoft cung cấp, chẳng hạn như
RoofMaker và Profiler.
Objects created by these Add-ons contain GDL scripts as well as
other, application-dependent data. Các đối tượng được tạo bởi
các Tiện ích bổ sung này chứa các tập lệnh GDL cũng như các
dữ liệu phụ thuộc vào ứng dụng.

Object Making with ArchiCAD


5
Chapter 1: Introduction to Object Making

1.2 Making your own Library


Parts Tạo các phần thư
viện của riêng bạn
Without GDL – using ArchiCAD’s Tools Không có
GDL - sử dụng Công cụ của ArchiCAD
Walls, Floorslabs, Roofs and other ArchiCAD 3D tools are
availablein the Toolbox as custom building blocks, regardless of
their originally intended purpose. You could, for example,
model a dining table easily by using walls and slabs. The legs
could be tall, small slabs, or short walls. The tabletop would be
a slab. If the legswere splayed as in a trestle table, you could
use the Roof tool. Theresulting structure can be saved as a
library part, thereby making itavailable for repeated use in other
projects as well.Tường, Sàn, Mái và các công cụ ArchiCAD 3D
khác có sẵn trong Hộp công cụ dưới dạng các khối xây dựng tùy
chỉnh, bất kể mục đích ban đầu của chúng là gì. Ví dụ, bạn có thể
tạo mô hình bàn ăn một cách dễ dàng bằng cách sử dụng các bức
tường và tấm. Chân có thể cao, phiến nhỏ hoặc thành ngắn. Mặt
bàn sẽ là một phiến đá. Nếu các chân được xếp ra ngoài như
trong một bảng giàn, bạn có thể sử dụng công cụ Mái nhà. Cấu
trúc kết quả có thể được lưu dưới dạng một phần thư viện, do đó
làm cho nó có sẵn để sử dụng nhiều lần trong các dự án khác.
Library parts originating from the floor plan can be saved
either asGDL scripts or in binary format. GDL scripts are
editable, so you can enhance the library part’s 3D appearance by
modifying its script. You can do useful work on a GDL script,
mainly in editing materials and pen values. Binary library parts
offer lightning fast imaging speeds, but do not allow editing,
and have no parametersother than ones enabling stretchiness –
width, depth and height. Ifyou want to perform other
modifications, you must return to the original floor plan
document, modify the model, and save it again as the same or
as another binary library part.Các phần thư viện có nguồn gốc từ
sơ đồ tầng có thể được lưu dưới dạng tập lệnh GDL hoặc ở định
dạng nhị phân. Tập lệnh GDL có thể chỉnh sửa được, vì vậy bạn
có thể cải thiện giao diện 3D của phần thư viện bằng cách sửa
đổi tập lệnh của nó. Bạn có thể thực hiện công việc hữu ích trên
tập lệnh GDL, chủ yếu là chỉnh sửa tài liệu và giá trị bút. Các bộ
phận thư viện nhị phân cung cấp tốc độ hình ảnh nhanh như
chớp, nhưng không cho phép chỉnh sửa và không có thông số
nào khác ngoài những thông số cho phép độ giãn - chiều rộng,
chiều sâu và chiều cao. Nếu bạn muốn thực hiện các sửa đổi
khác, bạn phải quay lại tài liệu sơ đồ tầng ban đầu, sửa đổi mô
hình và lưu lại dưới dạng tương tự hoặc dưới dạng một phần thư
viện nhị phân khác.
If you save floor plan elements as a GDL script, the complexity
of the resulting script will depend on the element types you
have used. The Slab tool will produce a mass of CPRISMs,
which are relatively easy to modify. The Wall tool will create
XWALLs which are harder but not impossible to modify, but
are easier to build with in the first place. The Roof tool creates
CSLABs which are manageable. Some of the most interesting
possibilities are with theMesh tool, which makes commands
called MASS, allowing one to create rounded surfaces.Nếu bạn
lưu các phần tử sơ đồ tầng dưới dạng tập lệnh GDL, thì độ phức
tạp của tập lệnh kết quả sẽ phụ thuộc vào các loại phần tử bạn đã
sử dụng. Công cụ Slab sẽ tạo ra hàng loạt CPRISM, tương đối dễ
sửa đổi. Công cụ Wall sẽ tạo ra các XWALL khó hơn nhưng
không phải là không thể sửa đổi, nhưng dễ xây dựng hơn ngay từ
đầu. Công cụ Roof tạo CSLAB có thể quản lý được. Một số khả
năng thú vị nhất là với công cụ Mesh, công cụ này tạo ra các
lệnh được gọi là MASS, cho phép người ta tạo ra các bề mặt
tròn.
Sometimes the objects you make by assembling pieces of
floor slab, wall and roof are more easily built on their side,
rather thanupright. Windows and doors can be built flat on the
floor and ArchiCAD will convert them to be upright.Đôi khi
các đồ vật bạn tạo ra bằng cách lắp ráp các mảnh sàn, tường và
mái nhà dễ dàng được xây dựng theo hướng nghiêng của
chúng hơn là thẳng đứng. Cửa sổ và cửa ra vào có thể được
xây dựng bằng phẳng trên sàn và ArchiCAD sẽ chuyển đổi
chúng thành thẳng đứng.
Sometimes you will not be able to make an object all at once.
You may have to make the legs first and save those, then
make the superstructure, save that, then make additional parts,
and save them. There are primitives such as cylinders, cones
and domes in the ArchiCAD Library that you might also use
as part of your object. You can then bring all those subsidiary
parts together in the floor plan, and save the whole result as
your final library part. Later in this book there is an exercise
to demonstrate this procedure. Be warned though, that this
final object will only workif all the subsidiary objects can be
found in the loaded libraries.Đôi khi bạn sẽ không thể tạo một
đối tượng cùng một lúc. Bạn có thể phải tạo chân trước và lưu
chúng, sau đó tạo cấu trúc thượng tầng, lưu lại, sau đó tạo các
bộ phận bổ sung và lưu chúng. Có những nguyên thủy như
hình trụ, hình nón và mái vòm trong Thư viện ArchiCAD mà
bạn cũng có thể sử dụng như một phần của đối tượng của
mình. Sau đó, bạn có thể tập hợp tất cả các phần phụ đó lại
với nhau trong sơ đồ tầng và lưu toàn bộ kết quả làm phần thư
viện cuối cùng của bạn. Sau đó trong cuốn sách này có một
bài tập để chứng minh quy trình này. Tuy nhiên, hãy cảnh báo
rằng đối tượng cuối cùng này sẽ chỉ hoạt động nếu tất cả các
đối tượng phụ có thể được tìm thấy trong các thư viện được
tải.

6 Object Making with ArchiCAD


Chapter 1: Introduction to Object Making

For the more experienced object maker, it is possible to


combine the Toolbox with a knowledge of GDL. Because you
cannot rotateobjects in the ArchiCAD floor plan (other than
around the Z axis) you will quickly see the benefit of learning
even a small amount ofGDL, in which you can rotate shapes
however you want. Shapes are drawn out in the floor plan with
the wall, roof or slab tool, saved as little chunks of GDL and
then added into a larger GDL project that the writer is working
on – moved and rotated into position, amended or simplified.Đối
với người tạo đối tượng có kinh nghiệm hơn, có thể kết hợp Hộp
công cụ với kiến thức về GDL. Bởi vì bạn không thể xoay các
đối tượng trong sơ đồ tầng ArchiCAD (ngoài trục Z), bạn sẽ
nhanh chóng thấy lợi ích của việc học ngay cả một lượng nhỏ
GDL, trong đó bạn có thể xoay các hình dạng theo cách bạn
muốn. Các hình dạng được vẽ ra trong sơ đồ mặt bằng bằng
công cụ tường, mái hoặc sàn, được lưu dưới dạng các phần nhỏ
của GDL và sau đó được thêm vào một dự án GDL lớn hơn mà
người viết đang thực hiện - di chuyển và xoay vào vị trí, sửa đổi
hoặc đơn giản hóa.
Not all objects need to be 3D. It is possible to use the 2D tools
of lines, text and fills to draw out standard symbols, select
them, and‘save special’ as a library part. If you already have a 3D
object thatyou wish to use purely as 2D, you could select it,
‘explode’ it, andsave the resulting lines as a new 2D library part.
This does not damage the original 3D part.Không phải tất cả
các đối tượng đều cần phải là 3D. Có thể sử dụng các công cụ
2D của đường thẳng, văn bản và điền để vẽ ra các ký hiệu tiêu
chuẩn, chọn chúng và 'lưu đặc biệt' như một phần thư viện. Nếu
bạn đã có một đối tượng 3D mà bạn muốn sử dụng hoàn toàn
dưới dạng 2D, bạn có thể chọn nó, ‘phát nổ’ nó và lưu các dòng
kết quả dưới dạng một phần thư viện 2D mới. Điều này không
làm hỏng phần 3D gốc.
All library parts are objects, but when you save them you
can decide if they are to be an Object (a piece of furniture or
a building component), a Window, or a Door. You can go on
to re-open the object and resave it as a Lamp.Tất cả các phần
của thư viện đều là các đối tượng, nhưng khi lưu chúng, bạn
có thể quyết định xem chúng có phải là một Đối tượng (một
món đồ nội thất hay một thành phần của tòa nhà), một Cửa
sổ hay một Cánh cửa. Bạn có thể tiếp tục mở lại đối tượng
và lưu lại dưới dạng Đèn.
Assemblies built with the Toolbox do not have to be saved as
library parts. They can be grouped or saved as modules and
reused; but if you wish them to behave properly as objects
andallow further editing, they must be saved as library
parts.Các bộ lắp ráp được xây dựng bằng Hộp công cụ không
cần phải được lưu dưới dạng các bộ phận của thư viện. Chúng
có thể được nhóm lại hoặc lưu dưới dạng mô-đun và được sử
dụng lại; nhưng nếu bạn muốn chúng hoạt động đúng như các
Object Making with đối tượng và cho phép chỉnh sửa thêm, chúng phải được lưu
ArchiCAD dưới dạng các phần thư viện.

Making Objects with GDL Tạo đối tượng với


GDL
GDL, even a small
knowledge of GDL,
allows you to go far
beyond the possibilities
offered by the simpler
methods above. If you
can describe what you
want, in writing, you can
make objectswith GDL.
That’s why it’s called
Geometric Description
Language.GDL, ngay cả
một kiến thức nhỏ về GDL,
cho phép bạn vượt xa
những khả năng được cung
cấp bởi các phương pháp
đơn giản ở trên. Nếu bạn có
thể mô tả những gì bạn
muốn, bằng văn bản, bạn
có thể tạo các đối tượng
bằng GDL. Đó là lý do tại
sao nó được gọi là Ngôn
ngữ mô tả hình học.
– Because GDL has
many 2D and 3D
commands, you can
makeinteresting
objects that cannot be
made with the
Toolbox Vì GDL có
nhiều lệnh 2D và 3D,
bạn có thể tạo các
đối tượng thú vị mà
không thể tạo được
bằng Hộp công cụ
– they can be shapely
and elegant. Chúng
có thể tạo dáng và
thanh lịch.
– Because you
can define
diameters,
spacing,
thickness,
materials and
pens, your
objects can
allow
variations
– they can be
Parametric.

–Vì bạn có thể xác định


đường kính, khoảng các đối tượng của bạn có thể cho phép các biến thể
cách, độ dày, vật liệu và –Chúng có thể là Tham số.
bút, – Because you specify elements in a GDL model by
precise dimensions,
angles or
parameters, the
objects will be
exactlywhat you
want them to be –
they can be
accurate. Vì bạn
chỉ định các phần
tử trong mô hình
GDL theo kích
thước, góc hoặc
thông số chính
xác, các đối tượng
sẽ chính xác như
những gì bạn
muốn - chúng có
thể chính xác.

7
Chapter 1: Introduction to Object Making

– Because you can write IF statements, you can build


rules ofbehavior into your objects, such as
manufacturers’ requirements, checks on incorrect
parameters, self-sizing components etc. – they can be
Smart.Vì bạn chỉ định các phần tử trong mô hình
GDL theo kích thước, góc hoặc thông số chính xác,
các đối tượng sẽ chính xác như những gì bạn muốn
- chúng có thể chính xác.
– Because you can write routines that loop around and
repeatcommands many times, you can economically
build large orrepetitive structures that would be futile to
build with the Toolbox – your objects can be Tools.Vì
bạn có thể viết các quy trình lặp đi lặp lại các lệnh
nhiều lần, bạn có thể xây dựng một cách kinh tế các
cấu trúc lớn hoặc lặp đi lặp lại sẽ vô ích khi xây
dựng với Hộp công cụ - các đối tượng của bạn có thể
là Công cụ.
– Because you can rotate, slide and resize elements in the
script,your objects can change their shape
– you can make Mechanisms.Vì bạn có thể xoay, trượt và thay
đổi kích thước các phần tử trong script, các đối tượng của bạn
có thể thay đổi hình dạng của chúng
- bạn có thể tạo Cơ chế.
As a bonus, GDL enables you to be utterly accurate – if you
specify a cylinder to be 3.60 meters long, that is what it will be,
not3.597623. You also have the ability to decide which parts of
a model can cast shadows, which pen color parts of the object
should be drawn with. You can decide what resolution of
curvature should be applied to individual components of the
library part. You can generate your own materials – shiny, matte,
transparent or glowing – so that they will work even with an
ArchiCAD in a different language from yours. GDL objects are
independent of dimensional settings; you can build something
in metric that will work if the user works in imperial, or vice
versa.Như một phần thưởng, GDL cho phép bạn hoàn toàn
chính xác - nếu bạn chỉ định một hình trụ dài 3,60 mét, đó sẽ
là hình dạng của nó, không phải 3,597623. Bạn cũng có khả
năng quyết định phần nào của mô hình có thể đổ bóng, phần
màu bút nào của vật thể sẽ được vẽ bằng màu. Bạn có thể
quyết định độ cong nên được áp dụng cho các thành phần
riêng lẻ của phần thư viện. Bạn có thể tạo các tài liệu của
riêng mình - sáng bóng, mờ, trong suốt hoặc phát sáng - để
chúng hoạt động ngay cả với ArchiCAD bằng ngôn ngữ khác
với ngôn ngữ của bạn. Các đối tượng GDL độc lập với cài đặt
chiều; bạn có thể xây dựng thứ gì đó theo hệ mét sẽ hoạt động
nếu người dùng làm việc bằng hệ đo lường Anh hoặc ngược
lại.

How do you make an Object? Làm thế nào để bạn


tạo ra một đối tượng?
Look around you, examine the 3D objects that surround you,
as you read this book. Observe, if you can, the essential
primitive forms that compose each object. Most objects can
be seen as composed of blocks, prisms, cylinders, cones,
tubes or surfaces. Ask yourself what detail needs to be
included; discard detail that isnot essential or will be
impossible to model. Use a level of detail that is within your
abilities to model either from the Toolbox or with GDL script.
Impossible 3D tasks such as surface rippling or perforation
can often be solved by using textures.Nhìn xung quanh bạn,
xem xét các vật thể 3D xung quanh bạn khi bạn đọc cuốn sách
này. Nếu bạn có thể, hãy quan sát các dạng nguyên thủy thiết
yếu tạo nên mỗi đối tượng. Hầu hết các đối tượng có thể được
xem là bao gồm các khối, lăng trụ, hình trụ, hình nón, ống
hoặc bề mặt. Tự hỏi bản thân xem chi tiết nào cần được đưa
vào; loại bỏ chi tiết không cần thiết hoặc sẽ không thể tạo mô
hình. Sử dụng mức độ chi tiết trong khả năng của bạn để lập
mô hình từ Hộp công cụ hoặc bằng tập lệnh GDL. Các tác vụ
3D không thể thực hiện được như gợn sóng hoặc thủng bề
mặt thường có thể được giải quyết bằng cách sử dụng các họa
tiết.
If you are not using GDL, view the object in terms of the
familiartools of wall, slab and roof. Nếu bạn không sử dụng
GDL, hãy xem đối tượng dưới dạng các công cụ quen thuộc là
tường, tấm và mái.
If using GDL, you can see it in terms of blocks, spheres,
cylinders and cones. As your GDL skills grow, you can add
prisms, sweeps, plane and meshed surfaces and tubes.Nếu sử
dụng GDL, bạn có thể thấy nó ở dạng khối, hình cầu, hình trụ
và hình nón. Khi kỹ năng GDL của bạn phát triển, bạn có thể
thêm lăng kính, quét, mặt phẳng và các bề mặt và ống chia lưới.

Does it need to LOOK right, or BE right? Nó cần


phải NHÌN đúng, hay LÀ đúng?
An object that is used to furnish the interior of a house may only
be required to give a luxurious impression of the interior, an
authentic

8 Object Making with ArchiCAD


Chapter 1: Introduction to Object Making

‘lived in’ look. It only needs to LOOK right. This could be built with
ArchiCAD’s own tools or with GDL, and the dimensions could be
‘eyeballed’ – that is, you use the grid as a guide and get the size as
accurate as your eye tells you it needs to be. Một đồ vật được sử
dụng để trang trí nội thất của một ngôi nhà có thể chỉ được yêu cầu
để mang lại ấn tượng sang trọng cho nội thất, một vẻ ngoài đích
thực. Nó chỉ cần NHÌN đúng. Điều này có thể được tạo bằng các
công cụ riêng của ArchiCAD hoặc với GDL và kích thước có thể
là 'nhãn cầu' - nghĩa là bạn sử dụng lưới làm hướng dẫn và nhận
được kích thước chính xác như mắt bạn cho bạn biết nó cần phải
như vậy.
Another object may be required to be totally accurate, so that
youcan derive accurately dimensioned sections and plans
from it. It may be required to drive a CADCAM system
(cutting tool) or a rapid prototyping machine. So you must be
satisfied that it IS right.For this, you are better off working in
GDL from the beginning.Một đối tượng khác có thể được yêu
cầu phải hoàn toàn chính xác, để bạn có thể lấy được các mặt
cắt và kế hoạch có kích thước chính xác từ nó. Nó có thể được
yêu cầu lái một hệ thống CADCAM (công cụ cắt) hoặc một
máy tạo mẫu nhanh. Vì vậy, bạn phải hài lòng rằng nó là
đúng. Đối với điều này, bạn nên làm việc trong GDL ngay từ
đầu.

The Idea of an ‘Investment object’ Ý tưởng về


'Đối tượng đầu tư'
Ask yourself if the object you want to make is to be used
more than once, if it could be useful in other projects. You
might be theone person in the office making objects for other
people, and therefore you need to make the object usable by
others. If you make it parametric and smart, it might take you
longer to make anobject that could more quickly be made
with the Toolbox. But ifthe object has versatility and can be
applied to many more projects, the time taken to make the
object well is a good investment and your users will be
grateful for the effort. Tự hỏi bản thân xem đối tượng bạn
muốn làm có được sử dụng nhiều lần hay không, nếu nó có
thể hữu ích trong các dự án khác. Bạn có thể là người duy
nhất trong văn phòng làm đồ vật cho người khác, và do đó
bạn cần làm cho đồ vật đó có thể sử dụng được cho người
khác. Nếu bạn làm cho nó theo tham số và thông minh, bạn
có thể mất nhiều thời gian hơn để tạo một đối tượng có thể
được tạo nhanh hơn bằng Hộp công cụ. Nhưng nếu đối tượng
có tính linh hoạt và có thể được áp dụng cho nhiều dự án hơn
nữa, thì thời gian để làm tốt đối tượng là một khoản đầu tư
tốt và người dùng của bạn sẽ biết ơn vì nỗ lực đó.
Furthermore, objects made with the Toolbox are no longer
editable if the original floor plan file that made them has been
lost.Hơn nữa, các đối tượng được tạo bằng Hộp công cụ sẽ
không thể chỉnh sửa được nữa nếu tệp sơ đồ tầng ban đầu tạo
Object Making with
ArchiCAD
ra chúng đã bị mất.
A piece of GDL that is well written can be extended and
mademore powerful when your own knowledge of GDL
improves orwhen a new edition of ArchiCAD offers more
features. A well written object could be taken on by
someone else in the
office,years after you
have left, and
improved to take advantage of thefeatures in a future
version of ArchiCAD.
Một phần GDL được viết tốt có thể được mở rộng và trở
nên mạnh mẽ hơn khi kiến thức của bạn về GDL được cải
thiện hoặc khi một phiên bản mới của ArchiCAD cung cấp
nhiều tính năng hơn. Một đối tượng được viết tốt có thể
được tiếp nhận bởi người khác trong văn phòng, nhiều năm
sau khi bạn rời đi và được cải thiện để tận dụng các tính
năng trong phiên bản ArchiCAD trong tương lai.

Can you learn GDL?


Many objects do not need to be built with GDL – the
ArchiCAD tools may be enough. Experienced ArchiCAD users
who are scared of GDL get very skilful in transforming the
simple 3D toolsof wall, slab and roof into most complex
objects. But they will never have the pleasure of making their
objects parametric.
Nhiều đối tượng không cần phải được xây dựng bằng GDL -
các công cụ ArchiCAD có thể là đủ. Những người dùng
ArchiCAD có kinh nghiệm sợ GDL rất khéo léo trong việc
chuyển đổi các công cụ 3D đơn giản của tường, sàn và mái nhà
thành các vật thể phức tạp nhất. Nhưng họ sẽ không bao giờ có
được niềm vui khi biến các đối tượng của họ thành tham số.
If you are prepared to go beyond the Toolbox, GDL is an
easy scripting language compared with those available in the
other CAD packages. GDL is based on BASIC, the easiest of
the programming languages. Millions of people learned BASIC
duringthe pioneer years of microcomputing, and GDL remains
the most useful and practical descendant from BASIC. Experts
who used tosay that BASIC was not powerful enough for
commercial

9
Chapter 1: Introduction to Object Making

applications can be confounded by a well written piece of


GDL.ArchiCAD users who make the bold step of tackling
GDL are frequently surprised at how easy it is compared
with what theyexpected. Users can suddenly find a
practical use for all that Mathematics they learned at
school.
Nếu bạn chuẩn bị vượt ra khỏi Hộp công cụ, GDL là một
ngôn ngữ kịch bản dễ dàng so với những ngôn ngữ có sẵn
trong các gói CAD khác. GDL dựa trên BASIC, ngôn ngữ
lập trình dễ nhất. Hàng triệu người đã học BASIC trong
những năm tiên phong của máy tính vi mô và GDL vẫn là
hậu duệ hữu ích và thiết thực nhất từ BASIC. Các chuyên
gia từng nói rằng BASIC không đủ mạnh cho các ứng dụng
thương mại có thể bị nhầm lẫn bởi một đoạn GDL được
viết tốt. Người dùng ArchiCAD, những người thực hiện
bước táo bạo trong việc giải quyết GDL thường ngạc nhiên
về mức độ dễ dàng so với những gì họ mong đợi. Người
dùng có thể đột nhiên tìm thấy một công dụng thiết thực
cho tất cả những môn Toán mà họ đã học ở trường.
Total beginners can please themselves with rapid progress up
thelearning curve. They can make objects that impress their
friendsand colleagues, and genuinely improve the quality of
their work. Người mới bắt đầu hoàn toàn có thể tự hài lòng
với sự tiến bộ nhanh chóng trong quá trình học tập. Họ có
thể tạo ra những đồ vật gây ấn tượng với bạn bè và đồng
nghiệp, đồng thời thực sự cải thiện chất lượng công việc của
họ.
Experts in GDL continue to find additional depths and
techniquesin GDL, and with energy and programming
experience they can extend the possibilities. As soon as they
begin to feel they have reached the limit, Graphisoft’s next
edition of ArchiCAD providesnew areas of exploration and
power.Các chuyên gia trong GDL tiếp tục tìm ra các độ sâu và
kỹ thuật bổ sung trong GDL, đồng thời với năng lượng và kinh
nghiệm lập trình, họ có thể mở rộng khả năng. Ngay khi họ bắt
đầu cảm thấy mình đã đạt đến giới hạn, phiên bản ArchiCAD
tiếp theo của Graphisoft sẽ cung cấp các lĩnh vực khám phá và
sức mạnh mới.

Object Making in the ArchiCAD Manuals Tạo đối


tượng trong Sổ tay hướng dẫn sử dụng ArchiCAD
Besides this book, you can read about object making in other
manuals and guides: Bên cạnh cuốn sách này, bạn có thể
đọc về cách chế tạo đồ vật trong các sách hướng dẫn và sách
hướng dẫn khác:
ArchiCAD Reference Guide: tool and library descriptions (see
tableof contents and index of that volume).ArchiCAD
Reference Guide: mô tả công cụ và thư viện (xem mục lục và
chỉ mục của tập đó).
DXF/DWG Conversion Guide: Bringing in objects from other CAD
environments.Hướng dẫn chuyển đổi DXF / DWG: Đưa các đối tượng
từ các môi trường CAD khác vào.
Library and Environment: Illustrated listing of most of the
libraryparts supplied by Graphisoft in the standard ArchiCAD
Library.Thư viện và Môi trường: Danh sách minh họa của hầu
hết các phần thư viện do Graphisoft cung cấp trong Thư viện
ArchiCAD tiêu chuẩn.
Step by Step Tutorial: Making library parts (see table of contents
ofthat volume).Hướng dẫn từng bước: Làm phần thư viện (xem
mục lục của tập đó).
GDL Reference Manual: Syntax of GDL commands, in
depthinformation on every aspect of GDL except
programming.Hướng dẫn tham khảo GDL: Cú pháp của
các lệnh GDL, thông tin chuyên sâu về mọi khía cạnh của
GDL ngoại trừ lập trình.
The GDL Cookbook: Project-based approach to learning GDL
thatteaches both GDL and the technique of programming with
GDL from beginner to expert level. Sách dạy nấu ăn GDL:
Cách tiếp cận dựa trên dự án để học GDL dạy cả GDL và kỹ
thuật lập trình với GDL từ cấp độ sơ cấp đến chuyên gia.
Project Framework: Discussion of how to get the most out of
ArchiCAD in the professional office, with good explanations of
organization of your libraries.Khung dự án: Thảo luận về cách tận
dụng tối đa ArchiCAD trong văn phòng chuyên nghiệp, với
những giải thích tốt về tổ chức thư viện của bạn.
Note: The GDL Cookbook and Project Framework are not
part of the ArchiCAD package and can be purchased
commercially. Consult your local reseller.Lưu ý: GDL
Cookbook và Project Framework không phải là một phần
của gói ArchiCAD và có thể được mua thương mại. Tham
khảo ý kiến người bán lại tại địa phương của bạn.
You could also consider keeping a personal notebook of
your progress with object making. By noting your
successes, you canbuild up a personal fund of expertise.Bạn
cũng có thể cân nhắc việc ghi chép sổ tay cá nhân về quá
trình làm đồ vật của mình. Bằng cách ghi nhận những
thành công của mình, bạn có thể xây dựng quỹ chuyên môn
cá nhân.

10 Object Making with ArchiCAD


Chapter 2: Making Objects without GDL

Chapter 2
Making Objects without
GDL Tạo đối tượng mà
không cần GDL
Before learning GDL it is wise to become fully conversant with
object making using ArchiCAD own tools. Trước khi học GDL,
điều khôn ngoan là trở nên thành thạo hoàn toàn với việc tạo
đối tượng bằng các công cụ riêng của ArchiCAD.
Object Making with ArchiCAD
11
Chapter 2: Making Objects without GDL

Making Objects without GDL


Tạo đối tượng mà không cần
GDL
Most ArchiCAD users become skilled at making objects using
thenormal building elements in the Toolbox before they tackle
GDL.So, let us make sure you are fully conversant with
object making before moving on to discover the power of
GDL. Hầu hết người dùng ArchiCAD trở nên thành thạo
trong việc tạo các đối tượng bằng cách sử dụng các phần tử
xây dựng thông thường trong Hộp công cụ trước khi họ xử
lý GDL. Vì vậy, hãy để chúng tôi đảm bảo rằng bạn hoàn
toàn thông thạo với việc tạo đối tượng trước khi chuyển sang
khám phá sức mạnh của GDL.
Make the object using the Slab, Wall and Roof tool, and select it
inthe floor plan window with the cursor. Then: Tạo đối tượng
bằng công cụ Slab, Wall và Roof, và chọn nó trong cửa sổ sơ
đồ tầng bằng con trỏ. Sau đó:
1. If the object has been made the right way up, choose
Save Special/ArchiCAD Object in the ArchiCAD File
menu. Save itinto one of your loaded libraries. Nếu đối
tượng đã được tạo đúng cách, hãy chọn Lưu Đối tượng
Đặc biệt / ArchiCAD trong menu Tệp ArchiCAD. Lưu nó
vào một trong các thư viện đã tải của bạn.
2. If the object has been made the right way up, or on its side,
view in the 3D window in plan or elevation, Save the
resultingview as a library part – a .GSM object. Save it into
one of yourloaded libraries.Nếu đối tượng đã được tạo theo
đúng hướng lên hoặc ở phía của nó, xem trong cửa sổ 3D ở
mặt bằng hoặc độ cao, Lưu chế độ xem kết quả dưới dạng
một phần thư viện - một đối tượng .GSM. Lưu nó vào một
trong các thư viện đã tải của bạn.
3. If the object is 2D, draw it into the 2D symbol window
of anew library part.Nếu đối tượng là 2D, hãy vẽ nó vào
cửa sổ biểu tượng 2D của một phần thư viện mới.
ArchiCAD creates a written script for the new library part,
including the 3D script, a 2D script or symbol, and routines to
ensure stretchiness. This process is called Autoscripting. When
you have made objects, you will be able to view the scripts –
highly educational! The GDL it generates could be called
‘Industrial GDL’; quite off putting and a lot more complicated than
the ‘Creative GDL’ that you can attempt with the help of this
book.ArchiCAD tạo một tập lệnh đã viết cho phần thư viện mới,
bao gồm tập lệnh 3D, tập lệnh hoặc biểu tượng 2D và các quy trình
để đảm bảo tính kéo dài. Quá trình này được gọi là Autoscripting.
Khi bạn đã tạo các đối tượng, bạn sẽ có thể xem các kịch bản -
mang tính giáo dục cao! GDL nó tạo ra có thể được gọi là
"Industrial GDL"; khá đơn giản và phức tạp hơn nhiều so với
‘Creative GDL’ mà bạn có thể thử với sự trợ giúp của cuốn sách
này.

Getting Started
Before making your first object with the Toolbox, ensure that
you are conversant with the use of the Magic Wand (for
transforming a Fill to a Slab, or a Slab to a Roof), setting Grids,
using the Coordinate Box, and with using the Settings boxes for
the various tools in the Toolbox. Open a new ArchiCAD file,
load a new folderto use as your library and save the new file to
that folder or to somewhere convenient. Set the grid to 1’-0” or to
300 mm. Zoom in to somewhere near the Origin of the Floor
Plan, so that you are viewing an area of the grid that is a little
larger than the furniture you wish to build. Make sure this is the
real Origin, not a temporary one.Trước khi tạo đối tượng đầu
tiên của bạn với Hộp công cụ, hãy đảm bảo rằng bạn thành thạo
với việc sử dụng Đũa phép thuật (để chuyển Tô màu thành Tấm
hoặc Tấm thành mái), thiết lập Lưới, sử dụng Hộp toạ độ và sử
dụng Hộp cài đặt cho các công cụ khác nhau trong Hộp công cụ.
Mở một tệp ArchiCAD mới, tải một thư mục mới để sử dụng
làm thư viện của bạn và lưu tệp mới vào thư mục đó hoặc vào
một nơi nào đó thuận tiện. Đặt lưới thành 1’-0 ”hoặc 300 mm.
Phóng to đến một nơi nào đó gần Nguồn gốc của Sơ đồ Tầng, để
bạn đang xem một khu vực lưới lớn hơn một chút so với đồ nội
thất mà bạn muốn xây dựng. Hãy chắc chắn rằng đây là Nguồn
gốc thực sự, không phải là hàng tạm thời.
If you have made a temporary origin somewhere else and
cannot find the main origin, just click on the temporary origin
and hit the delete key. The main origin will blacken.Nếu bạn
đã tạo nguồn gốc tạm thời ở một nơi khác và không thể tìm
thấy nguồn gốc chính, chỉ cần nhấp vào nguồn gốc tạm thời
và nhấn phím xóa. Nguồn gốc chính sẽ đen lại.

12 Object Making with ArchiCAD


Chapter 2: Making Objects without GDL

Let’s Make something in 2D


Try making this North point. As this is purely a 2D symbol,
there isno scripting to do. You could use this for electrical
symbols, kitchen or bathroom furniture, or as a complicated
symbol for trees and plants.Hãy thử làm điểm Bắc này. Vì
đây hoàn toàn là một biểu tượng 2D, không có tập lệnh nào
để làm. Bạn có thể sử dụng biểu tượng này cho các biểu
tượng điện, đồ nội thất nhà bếp hoặc phòng tắm, hoặc như
một biểu tượng phức tạp cho cây cối và thực vật.
Draw it in the Project Plan. You can use any of the 2D tools to
do this, including Lines, Arcs, Fills, Hotspots and Text. To make
it intoa library part, use method 1: Select the drawing, then use
File menu>Save Special>ArchiCAD Object. Save it into a
loaded library. Then bring it straight back by selecting a library
part from the Toolbox and placing it in the Floor plan next to
the original drawing. You will find that the most recent library
part saved is thefirst object that appears when you place an
object in the plan.Vẽ nó trong Kế hoạch Dự án. Bạn có thể sử
dụng bất kỳ công cụ 2D nào để thực hiện việc này, bao gồm
Đường, Cung, Vùng điền, Điểm phát sóng và Văn bản. Để biến
nó thành một phần thư viện, hãy sử dụng phương pháp 1: Chọn
bản vẽ, sau đó sử dụng menu Tệp> Lưu Đặc biệt> Đối tượng
ArchiCAD. Lưu nó vào một thư viện đã tải. Sau đó, đưa nó trở
lại thẳng bằng cách chọn một phần thư viện từ Hộp công cụ và
đặt nó vào Sơ đồ tầng bên cạnh bản vẽ ban đầu. Bạn sẽ thấy rằng
phần thư viện gần đây nhất được lưu là đối tượng đầu tiên xuất
hiện khi bạn đặt một đối tượng trong kế hoạch.

Object Making with ArchiCAD


If you do not place any hotspots, you will get what is called ‘the
bounding box’ around the object, as illustrated (right), and it will
be stretchy. If you place hotspots, even as few as one, you get
no bounding box, but the hotspot that you placed will be visible
(it will no longer be stretchy). So if you place one hotspot, you
should place more. If you use the Fill tool instead of the Line
tool, you will find that ArchiCAD places the hotspots for you at
all the significant nodes. If you want it to be stretchy, then
place hotspotsat the extreme left, right, top and bottom edges
(unless the Fill toolreaches these extremities).Nếu bạn không đặt
bất kỳ điểm nóng nào, bạn sẽ nhận được cái được gọi là "hộp
giới hạn" xung quanh đối tượng, như được minh họa (bên phải)
và nó sẽ co giãn. Nếu bạn đặt các điểm phát sóng, thậm chí ít
như một, bạn sẽ không nhận được hộp giới hạn, nhưng điểm phát
sóng bạn đã đặt sẽ hiển thị (nó sẽ không còn co giãn nữa). Vì
vậy, nếu bạn đặt một điểm phát sóng, bạn nên đặt nhiều hơn.
Nếu bạn sử dụng công cụ Fill thay vì công cụ Line, bạn sẽ thấy
rằng ArchiCAD đặt các điểm phát sóng cho bạn ở tất cả các nút
quan trọng. Nếu bạn muốn nó co giãn, hãy đặt các điểm nóng ở
các cạnh cực trái, phải, trên và dưới (trừ khi công cụ Fill chạm
tới các cạnh này).
You could try another method. You can use File menu>New
Library Part>Object, and open the object master window, with
a range of buttons allowing you to display scripts or graphical
windows. You can draw in the 2D symbol window with the
same

13
Chapter 2: Making Objects without GDL

2D tools as in the main ArchiCAD floor plan. Save the object


into your loaded library. Use this method only when you have
becomemore familiar with this palette.Bạn có thể thử một
phương pháp khác. Bạn có thể sử dụng menu Tệp> Phần Thư
viện Mới> Đối tượng, và mở cửa sổ chính đối tượng, với một
loạt các nút cho phép bạn hiển thị các tập lệnh hoặc cửa sổ đồ
họa. Bạn có thể vẽ trong cửa sổ ký hiệu 2D bằng các công cụ
2D tương tự như trong sơ đồ mặt bằng ArchiCAD chính. Lưu
đối tượng vào thư viện đã tải của bạn. Chỉ sử dụng phương
pháp này khi bạn đã trở nên quen thuộc hơn với bảng màu
này.

Let’s Make a 3D Object – a Table Hãy


tạo một vật thể 3D - một cái bàn
The next object, a table, is to be made ‘the right way up’ and for
this, the Slab tool is most useful. Build up a table, starting with
thetable top, and add the legs and frame. For each part, use the
settings dialog box to get the height of the slab correct.
Rememberthat the height (altitude) of the slab is the top and
the thickness is the amount of slab below the top. If you build
from walls, the altitude of a wall is its base, and the height of
the wall is above thebase. Save it using File>Save
Special>ArchiCAD Object.Đối tượng tiếp theo, một cái bảng,
phải được tạo ra "đúng cách" và đối với điều này, công cụ Slab
là hữu ích nhất. Dựng bàn, bắt đầu với mặt bàn, thêm chân và
khung. Đối với mỗi phần, sử dụng hộp thoại cài đặt để có được
chiều cao của tấm chính xác. Hãy nhớ rằng chiều cao (độ cao)
của bản sàn là trên cùng và độ dày là lượng bản sàn ở dưới mặt
trên. Nếu bạn xây tường, thì độ cao của tường là chân tường và
chiều cao của tường là trên chân tường. Lưu nó bằng cách sử
dụng Tệp> Lưu Đặc biệt> Đối tượng ArchiCAD.

Remember also that you need to set the materials of the


tabletopand legs using the Slab Settings dialog box.Ngoài ra,
hãy nhớ rằng bạn cần đặt vật liệu của mặt bàn và chân bằng
hộp thoại Cài đặt Bản sàn.
To make sure that each leg is consistent, make one correctly,
then Edit>Drag a Copy to each corner of the table. If you use
the grid, you can make the table reasonably accurate in
dimensions. If you keep an eye on the Coordinate Box and type in
your X and Y locations, you can make the table extremely
accurate. You can make it even more accurate by setting Grid
Snap to ON, and usinga small grid of say 10 mm or 1/2”.Để đảm
bảo rằng mỗi chân đều nhất quán, hãy tạo một chân chính xác, sau
đó Chỉnh sửa> Kéo Bản sao vào mỗi góc của bảng. Nếu bạn sử
dụng lưới, bạn có thể làm cho bảng có kích thước chính xác một
cách hợp lý. Nếu bạn để mắt đến Hộp tọa độ và nhập vào vị trí X
và Y của mình, bạn có thể tạo bảng cực kỳ chính xác. Bạn có thể
làm cho nó chính xác hơn nữa bằng cách đặt Grid Snap thành BẬT
và sử dụng một lưới nhỏ 10 mm hoặc 1/2 ”.

14 Object Making with ArchiCAD


Chapter 2: Making Objects without GDL

If you use the Arc/Circle tool’s ellipse line option and then ‘magic
wand’ a slab to it, you could make a more stylish and elegant
table. This table will be stretchy, but if you stretch it, the
section sizes will deform. Nếu bạn sử dụng tùy chọn đường elip
của công cụ Arc / Circle và sau đó đặt 'cây đũa thần' một phiến
vào nó, bạn có thể tạo một chiếc bàn thanh lịch và phong cách
hơn. Bảng này sẽ co giãn, nhưng nếu bạn kéo căng nó, các kích
thước phần sẽ biến dạng.
No matter how well you make it this way, it will never permit
youto make parametric alterations to height, leg spacing or
timber sizes. This is where a little knowledge of GDL comes
in.Cho dù bạn làm theo cách này tốt như thế nào, nó sẽ không
bao giờ cho phép bạn thực hiện các thay đổi tham số về chiều
cao, khoảng cách chân hoặc kích thước gỗ. Đây là lúc bạn có
một chút kiến thức về GDL.

Let’s Make a 3D Window Hãy tạo cửa


sổ 3D
Windows have to be made flat on the floor, and are best made
with the Slab tool. Again, it is best to build it over the origin,
and the origin should be symmetrically at the centre of the
lower sill ofthe window. The outside face of the frame must lie
at zero height on the ground plane. Normally, slabs have their
tops on the ground plane, so be careful to set your window
frame at the right height. Draw out a rectangular slab first
which defines the overall opening size. Then select this slab,
and with the Slab tool selecteddraw another rectangle within
the first slab. This draws a hole in the slab and effectively
makes the frame hollow. Make sure that it is the right height –
the depth of the frame. Set the material of this slab to frame
material. You can now draw another slab into the window, set
this to 10 mm (3/8”) thick and set it to “Glass” for topbottom and
sides. Make sure the height of the glass is well positioned in
height, within the frame. For added realism, you canadd a
smaller frame to play the part of a casement, and a small slab
below the XY ground plane to be a sill.Cửa sổ phải được làm
phẳng trên sàn và tốt nhất nên được làm bằng công cụ Slab. Một
lần nữa, tốt nhất là nên xây dựng nó trên điểm gốc và điểm gốc
phải nằm đối xứng ở tâm của ngưỡng cửa dưới của cửa sổ. Mặt
ngoài của khung phải nằm ở độ cao bằng không trên mặt phẳng
nền. Thông thường, các tấm có đỉnh trên mặt phẳng đất, vì vậy
hãy cẩn thận đặt khung cửa sổ của bạn ở độ cao phù hợp. Trước
tiên hãy vẽ ra một tấm hình chữ nhật để xác định kích thước mở
tổng thể. Sau đó, chọn tấm này, và với công cụ Slab đã chọn,
hãy vẽ một hình chữ nhật khác trong tấm đầu tiên. Điều này tạo
ra một lỗ trên tấm và làm cho khung rỗng một cách hiệu quả.
Đảm bảo rằng đó là chiều cao phù hợp - chiều sâu của khung
hình. Đặt vật liệu của tấm này thành vật liệu khung. Bây giờ bạn
có thể vẽ một phiến khác vào cửa sổ, đặt nó dày 10 mm (3/8 ”)
và đặt nó thành“ Glass ”cho mặt trên và mặt dưới. Đảm bảo rằng
chiều cao của kính được định vị tốt về chiều cao, trong khung.
Để tăng thêm tính hiện thực, bạn có thể thêm một khung nhỏ
hơn để đóng vai trò của một tấm ốp và một phiến đá nhỏ bên
dưới mặt phẳng nền XY để làm bệ cửa.

Object Making with ArchiCAD


15
Chapter 2: Making Objects without GDL

The illustration above shows how the window should sit on


theXY ground plane. Check that the frame/casement/glass
relationships are working correctly.Hình minh họa ở trên
cho thấy cửa sổ sẽ nằm trên mặt phẳng XY như thế nào.
Kiểm tra xem các mối quan hệ khung / vỏ / kính có hoạt
động chính xác không.
In this case, the project origin is neatly positioned at the centre
ofthe sill. This is not absolutely necessary because ArchiCAD
will make adjustments when it saves the window so that the
origin finishes up in the right place. But it is tidy and more
disciplined toget it right at the start.Trong trường hợp này,
điểm gốc của dự án được đặt ngay ngắn ở trung tâm của
ngưỡng cửa. Điều này là không hoàn toàn cần thiết vì
ArchiCAD sẽ thực hiện các điều chỉnh khi nó lưu cửa sổ để
nguồn gốc kết thúc ở đúng vị trí. Nhưng nó là ngăn nắp và kỷ
luật hơn để làm cho nó ngay từ đầu.
When you are done laying slabs, select all the slab elements of
the window, and view them from the direction that you would
need tosee them if the finished window in the floor plan. Select
Image>3DProjection Settings. You can use either shaded view
or wireframe view.Khi bạn hoàn thành việc đặt các tấm sàn, hãy
chọn tất cả các phần tử tấm của cửa sổ và xem chúng từ hướng
mà bạn sẽ cần xem chúng nếu cửa sổ đã hoàn thành trong sơ đồ
mặt bằng. Chọn Hình ảnh> Cài đặt Chiếu 3D. Bạn có thể sử
dụng chế độ xem bóng mờ hoặc chế độ xem khung dây.

16 Object Making with ArchiCAD


Chapter 2: Making Objects without GDL

The camera should be positioned at 90˚ and the view type


shouldbe Parallel Views>Side view.Máy ảnh phải được đặt ở
90˚ và kiểu xem phải là Chế độ xem song song> Chế độ xem
bên.

The 3D view will look like this, and if you ask for it to be
Wireframe, you will be able to see the frame and glass outlines.
This is as it will appear in the floor plan, when set into a
wall.Chế độ xem 3D sẽ giống như thế này, và nếu bạn yêu cầu
nó là Wireframe, bạn sẽ có thể nhìn thấy khung và đường viền
ngoài của kính. Điều này giống như nó sẽ xuất hiện trong sơ đồ
mặt bằng, khi được đặt vào một bức tường.

Save that view as a Library Part and when asked, click on the
Window icon. Check the box that hides redundant lines.
Make sure you save it into a loaded library. If you have not
already doneso, make a folder in your personal library for
windows and doors.Lưu dạng xem đó dưới dạng Phần Thư
viện và khi được hỏi, hãy nhấp vào biểu tượng Cửa sổ. Chọn
hộp ẩn các dòng thừa. Đảm bảo rằng bạn lưu nó vào một thư
viện đã tải. Nếu bạn chưa làm như vậy, hãy tạo một thư mục
trong thư viện cá nhân cho cửa sổ và cửa ra vào.
If you clicked the window or door icon, ArchiCAD forces the
camera view to be 90˚ Parallel>Sideview even if you got the 3D
view incorrect!Nếu bạn nhấp vào biểu tượng cửa sổ hoặc cửa ra
vào, ArchiCAD buộc chế độ xem camera là 90˚ Song song> Chế
độ xem bên ngay cả khi bạn có chế độ xem 3D không chính xác!
Object Making with ArchiCAD
17
Chapter 2: Making Objects without GDL

Now, back in the floor plan, build a wall, and then select a
window to put into it. The window you have just saved will be
thefirst one that ArchiCAD offers you. Place it into the wall,
making sure that the Eyeball cursor is clicked to the outside
face of the wall (the face with more hotspots). You can now
view the result and change its parameters – of size only.Bây
giờ, quay lại sơ đồ mặt bằng, xây một bức tường, sau đó chọn
một cửa sổ để đặt vào đó. Cửa sổ bạn vừa lưu sẽ là cửa sổ đầu
tiên mà ArchiCAD cung cấp cho bạn. Đặt nó vào tường, đảm
bảo rằng con trỏ Eyeball được nhấp vào mặt bên ngoài của
bức tường (mặt có nhiều điểm nóng hơn). Bây giờ bạn có thể
xem kết quả và thay đổi các thông số của nó - chỉ về kích
thước.
The technique of making windows is similar with door
construction. But you would need GDL to change the door
style,to make it open and shut and to select a choice of
glazing or ironwork styles.Kỹ thuật làm cửa sổ cũng tương
tự như thi công cửa đi. Nhưng bạn sẽ cần GDL thay đổi
kiểu cửa, mở và đóng cửa và lựa chọn phong cách lắp kính
hoặc đồ sắt.

Let’s Make a Furniture Object using


Walls Hãy làm một đồ vật nội thất
bằng cách sử dụng các bức tường
Many objects are easier to make lying on their side,
because oftheir complexity or shape. They may be far
easier to build in profile than to build as a stack of objects
assembled vertically.Nhiều đồ vật dễ nằm nghiêng hơn vì
độ phức tạp hoặc hình dạng của chúng. Chúng có thể dễ
xây dựng trong hồ sơ hơn nhiều so với xây dựng như một
chồng các đối tượng được lắp ráp theo chiều dọc.
You can make skillful use of the Wall tool. Walls are most
useful asthey can be set to a thickness and height and can be
snapped to follow lines with the Magic Wand. They are more
controllable at following curves than the Slab tool. Their only
trouble is their annoying tendency to join together. In the
Options menu, turn offClean Wall Intersections.Bạn có thể sử
dụng khéo léo công cụ Wall. Tường hữu ích nhất vì chúng có
thể được thiết lập theo độ dày và chiều cao và có thể được
chụp theo các đường bằng Magic Wand. Chúng có thể kiểm
soát được khi đi theo các đường cong hơn so với công cụ
Slab. Rắc rối duy nhất của họ là xu hướng khó chịu của họ
liên kết với nhau. Trong menu Tùy chọn, tắt Giao lộ Tường
sạch.
This Barcelona chair illustrates the use of the Wall tool perfectly
–it could be made with the Slab tool but only with the greatest
difficulty.Chiếc ghế ở Barcelona này minh họa việc sử dụng
công cụ Wall một cách hoàn hảo - nó có thể được làm bằng
công cụ Slab nhưng chỉ với độ khó lớn nhất.
Making the Frame and Seat Làm khung và ghế
First, over the Origin, within an outline box of 750x750 mm,
drawthe outline of the chair frame using the Spline line tool.
Then set the Wall tool to be “Stainless Steel”, 12mm thick and
50mm high.Đầu tiên, trên Origin, trong một hộp phác thảo có kích
thước 750x750 mm, vẽ đường viền của khung ghế bằng công cụ
Spline line. Sau đó đặt công cụ Wall là “Thép không gỉ”, dày
12mm và cao 50mm.

18 Object Making with ArchiCAD


Chapter 2: Making Objects without GDL

Snap the Wall tool to the lines with the space bar depressed;
this causes the little walls to follow the lines. Select and
group the walls; drag a copy of the wall group to one side.
Now use the Elevate command to raise that wall group by 700
mm. Now move that wall group back until it is exactly over the
first. You now havethe steel frame of the chair.Gắn công cụ
Wall vào các dòng với phím cách được nhấn xuống; điều này
làm cho các bức tường nhỏ theo dòng. Chọn và nhóm các bức
tường; kéo một bản sao của nhóm tường sang một bên. Bây
giờ sử dụng lệnh Elevate để nâng nhóm tường đó thêm 700
mm. Bây giờ di chuyển nhóm tường đó trở lại cho đến khi nó
vượt qua chính xác nhóm đầu tiên. Bây giờ bạn đã có khung
thép của ghế.

For the upholstery, change the wall settings to 750 mm high


and 60 mm thick, and made of “Textile” (or “Leather” or “Asphalt”).
Draw the walls for the upholstery yourself; the seat is flat, and
theback is slightly curved using the curved Wall tool
option.Đối với vải bọc, hãy thay đổi cài đặt tường thành cao
750 mm và dày 60 mm, và được làm bằng "Dệt" (hoặc "Da"
hoặc "Nhựa đường"). Tự vẽ các bức tường cho vải bọc; ghế
phẳng và lưng hơi cong bằng cách sử dụng tùy chọn công cụ
Wall cong.
When you have something like the Barcelona chair in the
diagram,set the cameras exactly as you did for the Window –
90˚ positionfor camera with Parallel Side view (elevation)
selected. Save the 3D view as a library part into your loaded
library; this time, clickthe object icon, not the window or door.
Place the chair into your project and enjoy!Khi bạn có một cái gì
đó giống như chiếc ghế Barcelona trong sơ đồ, hãy đặt máy ảnh
chính xác như bạn đã làm cho vị trí Cửa sổ - 90˚ cho máy ảnh
với chế độ xem Mặt song song (độ cao) được chọn. Lưu chế độ
xem 3D dưới dạng một phần thư viện vào thư viện đã tải của
bạn; lần này, hãy nhấp vào biểu tượng đối tượng, không phải
cửa sổ hoặc cửa ra vào.
Đặt ghế vào dự án của bạn và tận hưởng!
Object Making with ArchiCAD
19
Chapter 2: Making Objects without GDL

Let’s Make a Roof Truss Hãy làm giàn


mái nhà
Try this exercise, which provides a link between the section
andthe plan windows.Hãy thử bài tập này, nó cung cấp một
liên kết giữa phần và các cửa sổ kế hoạch.
Construct a small one-room building, and place a pitched roof
over it. Make the walls higher than the roof and then use the
Trimto Roof command to make the walls and roof fit each
other. Inserta window and door if you like. Now using the
Section/Elevation tool from your Toolbox, draw a section
through the building, andview the section.Xây dựng một tòa
nhà nhỏ một phòng và đặt một mái dốc lên trên nó. Làm cho
các bức tường cao hơn mái nhà và sau đó sử dụng lệnh Trim to
Roof để làm cho các bức tường và mái nhà khớp với nhau.
Chèn cửa sổ và cửa ra vào nếu bạn muốn. Bây giờ, sử dụng
công cụ Mặt cắt / Độ cao từ Hộp công cụ của bạn, vẽ một mặt
cắt qua tòa nhà và xem mặt cắt.

You can make use of the Line tool to set up guidelines to make
sure that your timbers lie at the right angles and have the right
depths Bạn có thể sử dụng công cụ Line để thiết lập các nguyên
tắc nhằm đảm bảo rằng gỗ của bạn nằm ở các góc phù hợp và
có độ sâu phù hợp
When you have the section in the foreground, the 3D tools go
greybecause you cannot use 3D tools in the section. But you
can drawwith the 2D tools, Text, Lines, Fills and Hotspots. Use
the Fill tool to outline a small truss. This ensures that your
future truss will fitthe roof perfectly. Select the fill and
continue to draw into it, and you will be able to cut holes.
Thus you form the outline of the whole truss.Khi bạn có phần
ở nền trước, các công cụ 3D chuyển sang màu xám vì bạn
không thể sử dụng các công cụ 3D trong phần đó. Nhưng bạn
có thể vẽ bằng các công cụ 2D, Văn bản, Dòng, Điền và Điểm
nóng. Sử dụng công cụ Fill để phác thảo một giàn nhỏ. Điều
này đảm bảo rằng giàn trong tương lai của bạn sẽ hoàn toàn
phù hợp với mái nhà. Chọn phần tô màu và tiếp tục vẽ vào đó,
và bạn sẽ có thể cắt các lỗ. Vì vậy, bạn hình thành phác thảo
của toàn bộ giàn.
Now select the fill, copy it, move to the floor plan and paste it.
Move it so that one end corner of the truss is over the Origin –
preferably one of the truss bearings. The hotspots will help
you. Now you can magic-wand-click the Slab tool to follow the
outlineof the Fill.Bây giờ hãy chọn tô màu, sao chép nó, di
chuyển đến sơ đồ tầng và dán nó. Di chuyển nó sao cho một góc
cuối của giàn nằm trên Gốc - tốt nhất là một trong các ổ đỡ của
giàn. Các điểm nóng sẽ giúp bạn. Bây giờ bạn có thể nhấp vào
cây đũa thần kỳ diệu vào công cụ Slab để theo đường viền của
Tô màu.
Make sure before you use the Slab tool that it is close to the
ground – set the thickness to 40 mm, the top of the slab to 20
mm

20 Object Making with ArchiCAD


Chapter 2: Making Objects without GDL

and the material to timber. Thus the truss is nicely centered


aboveand below ground zero.Đảm bảo rằng trước khi bạn sử
dụng công cụ Slab là nó gần với mặt đất - đặt độ dày thành
40 mm, đỉnh của tấm là 20 mm và vật liệu là gỗ. Do đó, giàn
được căn giữa một cách độc đáo trên và dưới mặt đất bằng
không.

You may have a bit of trouble with the Magic Wand. Snap-click
to the outline of the fill first to get the outline of the truss. Then
selectthe slab (making sure it is the slab and not the fill that
you have selected) and then snap-click each of the holes in the
fill. This willdrill holes in the slab. You should finish with a
small truss like the one above. If you get a lot of slab bits and
no holes, delete the waste slabs and try again with the
sequence above. Make yours more complicated if you want
to, with more members, or more varied width of
members.Bạn có thể gặp một chút rắc rối với Magic Wand.
Nhấp nhanh vào đường viền của phần tô trước để lấy đường
viền của giàn. Sau đó chọn tấm (đảm bảo rằng đó là tấm chứ
không phải phần lấp đầy mà bạn đã chọn) và sau đó nhấp
nhanh vào từng lỗ trong phần lấp đầy. Điều này sẽ khoan lỗ
trên tấm. Bạn nên kết thúc bằng một giàn nhỏ như trên. Nếu
bạn nhận được nhiều mảnh tấm và không có lỗ, hãy xóa các
tấm phế thải và thử lại với trình tự ở trên. Làm cho của bạn
phức tạp hơn nếu bạn muốn, với nhiều thành viên hơn hoặc
chiều rộng thành viên đa dạng hơn.

Now view the truss from the same angle as you used for
the window and the chair – 90˚ position for camera with
parallel elevation view selected. Save the 3D view as a
library part, clickthe object icon, and you have your
truss.Bây giờ xem giàn từ cùng một góc như bạn đã sử
dụng cho cửa sổ và ghế - vị trí 90˚ đối với máy ảnh với chế
độ xem độ cao song song được chọn. Lưu chế độ xem 3D
dưới dạng một phần thư viện, nhấp vào biểu tượng đối
tượng và bạn có giàn của mình.
Now bring this truss into the floor plan, and space the new
trusses along the building. Use the section view first, to make
sure your truss aligns perfectly with the original fill pattern. The
hotspots willhelp. Autoscripted objects are automatically
stretchy so be careful

Object Making with ArchiCAD


21
Chapter 2: Making Objects without GDL

when handling them. You do not want to stretch them


accidentally. Use Edit>Drag a Copy or Multiply to move and
duplicate them, and use the Coordinate Box if you want
exactspacing.Bây giờ đưa giàn này vào sơ đồ mặt bằng, và
sắp xếp các giàn mới dọc theo tòa nhà. Sử dụng chế độ xem
mặt cắt trước, để đảm bảo giàn của bạn phù hợp hoàn hảo với
mẫu tô ban đầu. Các điểm nóng sẽ giúp ích. Các đối tượng
được mô tả tự động sẽ tự động co giãn vì vậy hãy cẩn thận khi
xử lý chúng. Bạn không muốn kéo dài chúng một cách vô
tình. Sử dụng Chỉnh sửa> Kéo một Bản sao hoặc Nhân để di
chuyển và sao chép chúng và sử dụng Hộp Tọa độ nếu bạn
muốn có khoảng cách chính xác.
This same method can be used to make extraordinarily
complex structures – the limitation being that they will not be
parametric, and they will all be rectilinear in section.Phương
pháp tương tự này có thể được sử dụng để tạo ra các cấu trúc
cực kỳ phức tạp - hạn chế là chúng sẽ không có tham số và tất
cả chúng sẽ là tuyến tính trong phần.

Let’s Make an Object using existing


Library Parts Hãy tạo một đối
tượng bằng cách sử dụng các Phần
thư viện hiện có
You can make more complex or curvy objects using library
parts that are in one of your loaded libraries. The standard
ArchiCAD library contains a directory of special structures
such as cones andvaults. Before you try to do this, just check
which libraries are loaded (from the File menu) and if need
be, load the default ArchiCAD Library.Bạn có thể tạo các đối
tượng phức tạp hoặc cong hơn bằng cách sử dụng các phần
thư viện nằm trong một trong các thư viện đã tải của bạn.
Thư viện ArchiCAD tiêu chuẩn chứa một thư mục gồm các
cấu trúc đặc biệt như hình nón và hầm. Trước khi bạn cố
gắng thực hiện việc này, chỉ cần kiểm tra thư viện nào được
tải (từ menu Tệp) và nếu cần, hãy tải Thư viện ArchiCAD
mặc định.
22 Object Making with ArchiCAD
Chapter 2: Making Objects without GDL

This little oval cocktail table has been built entirely from the
‘Cone65’ object in the existing ArchiCAD Library. Try building
something using the same or other objects in that directory.
Some of these are somewhat confusing to manipulate, but the
library parts settings dialog box makes it easy to play with the
parametersif you display the 3D view of the object.Bàn
cocktail hình bầu dục nhỏ này đã được xây dựng hoàn toàn từ
đối tượng ‘Cone65’ trong Thư viện ArchiCAD hiện có. Hãy
thử xây dựng một cái gì đó bằng cách sử dụng cùng một hoặc
các đối tượng khác trong thư mục đó. Một số trong số này hơi
khó thao tác, nhưng hộp thoại cài đặt bộ phận thư viện giúp
bạn dễ dàng xem các thông số nếu bạn hiển thị chế độ xem
3D của đối tượng.

The settings box with visual icons makes it easier to select an


object from the library Hộp cài đặt với các biểu tượng trực
quan giúp chọn một đối tượng từ thư viện dễ dàng hơn
If you perceive that an object that you wish to make is to be
madeup of many components, then you can make them, one
piece at atime, save them into a loaded library, then assemble
the final object from the components and save that.Nếu bạn
nhận thấy rằng một đối tượng mà bạn muốn tạo ra được tạo
thành từ nhiều thành phần, thì bạn có thể tạo chúng, từng
mảnh một, lưu chúng vào một thư viện đã tải, sau đó lắp ráp
đối tượng cuối cùng từ các thành phần và lưu lại .
Remember that if you ever wish to view the final object, you will
always have to be able to find the constituent parts in a loaded
library. If you alter one of the components, it may result in an
errorwhen the final object is viewed. We have become used to
seeingthe ‘Missing objects’ dialog box coming up at some time or
other. This is useful; if you read it, the warnings of duplicate
library objects and of missing ones require action.Hãy nhớ rằng nếu
bạn muốn xem đối tượng cuối cùng, bạn sẽ luôn phải có khả năng
tìm thấy các phần cấu thành trong một thư viện được tải. Nếu bạn
thay đổi một trong các thành phần, nó có thể dẫn đến lỗi khi xem
đối tượng cuối cùng. Chúng ta đã quen với việc nhìn thấy hộp thoại
'Thiếu đối tượng' xuất hiện vào một lúc nào đó hoặc lúc khác. Điều
này là hữu ích; nếu bạn đọc nó, cảnh báo về các đối tượng thư viện
trùng lặp và các đối tượng bị thiếu yêu cầu hành động.
If the composite object never needs to be edited again, then
youcould view it in plan 3D (method 2) and then save as a
binary. Thus all the subsidiary objects are included and you
do not needto worry about missing the components.Nếu đối
tượng tổng hợp không bao giờ cần được chỉnh sửa lại, thì
bạn có thể xem nó trong sơ đồ 3D (phương pháp 2) và sau đó
lưu dưới dạng nhị phân. Vì vậy, tất cả các đối tượng phụ
được bao gồm và bạn không cần phải lo lắng về việc thiếu
các thành phần.

Object Making with ArchiCAD


23
Chapter 2: Making Objects without GDL

Let’s Make an Object that we can cut


to shape Hãy tạo một đối tượng mà
chúng ta có thể cắt theo hình dạng
The oval table is an example of nested objects (objects within
thelarger object). As a further example of nested objects, we
could make a major element of a building, a rounded vault,
and furtherrefine it with the ability to form a crossing - a
groin vault.Bảng hình bầu dục là một ví dụ về các đối tượng
lồng nhau (các đối tượng bên trong đối tượng lớn hơn). Như
một ví dụ khác về các đối tượng lồng nhau, chúng ta có thể
tạo thành phần chính của một tòa nhà, một vòm tròn và tinh
chỉnh thêm với khả năng tạo thành một đường ngang - một
vòm hầm.
This is something we cannot do with the Slab tool. Try using
the more powerful Wall tool and draw the vault on its end.
With thecircular wall variant of the Wall tool, we can draw the
outline of avault. If you are more ambitious, follow this
example making it asa Gothic vault (instead of a
Romanesque) by having two sectionsof curved wall meeting
each other.Đây là điều mà chúng tôi không thể làm với công
cụ Slab. Hãy thử sử dụng công cụ Wall mạnh mẽ hơn và vẽ
vòm ở phần cuối của nó. Với biến thể tường tròn của công cụ
Wall, chúng ta có thể vẽ đường viền của một vòm. Nếu bạn
có nhiều tham vọng hơn, hãy làm theo ví dụ này để biến nó
thành một mái vòm kiểu Gothic (thay vì theo kiểu
Romanesque) bằng cách có hai phần tường cong gặp nhau.
Set the camera in Side view at 90˚, view it in 3D, then save as
avault object. Call it “main_vault.GSM” if you like.Đặt máy
ảnh ở Chế độ xem bên ở 90˚, xem ở chế độ 3D, sau đó lưu
dưới dạng đối tượng vòm. Gọi nó là “main_vault.GSM” nếu
bạn thích.

Picture of the basic wall in plan to form a flattened circular vault,


above it, the resulting library part – stretchy in three dimensions
Hình ảnh của bức tường cơ bản trong kế hoạch tạo thành một
mái vòm hình tròn dẹt, phía trên nó là phần thư viện kết quả - co
giãn theo ba chiều
Bring it into the floor plan and you now have a stretchy vault.
Youcan change its length, width and height. So it may have
been round when you first built it, but it could now be elliptical
if you wish. Drag a copy of your vault object and place it near
the first one. Stretch the new one but keep it the same width.
We are goingto cut (or mitre) the vault at 45˚ angles to make it
usable as a vault for the crossing.Mang nó vào sơ đồ mặt bằng
và bây giờ bạn có một hầm co giãn. Bạn có thể thay đổi chiều
dài, chiều rộng và chiều cao của nó. Vì vậy, nó có thể là hình
tròn khi bạn lần đầu tiên xây dựng nó, nhưng bây giờ nó có thể
là hình elip nếu bạn muốn. Kéo một bản sao của đối tượng vault
của bạn và đặt nó gần đối tượng đầu tiên. Kéo dài cái mới nhưng
giữ nguyên chiều rộng. Chúng tôi sẽ cắt (hoặc cắt nhỏ) hầm ở
góc 45˚ để có thể sử dụng nó như một hầm cho việc băng qua.

Toolbox icon of the Marquee tool with the polygon and rectangle
variants
Biểu tượng hộp công cụ của công cụ Marquee với các biến thể đa
giác và hình chữ nhật

24 Object Making with ArchiCAD


Chapter 2: Making Objects without GDL

Now you may have noticed that one function of the Marquee
toolis to act as a cutter when you view in 3D. Everything
within the marquee is displayed, and everything outside is
ignored. It’s a great way to do instant 3D sections.Bây giờ bạn
có thể nhận thấy rằng một chức năng của công cụ Marquee là
hoạt động như một máy cắt khi bạn xem ở dạng 3D. Mọi thứ
bên trong vùng hiển thị và mọi thứ bên ngoài đều bị bỏ qua. Đó
là một cách tuyệt vời để thực hiện các phần 3D tức thì.
The marquee can be a rectangle or it can be a polygonal
shape, like a fill. First draw one 2D line along the end edge of
the vault, between the end hotspots. Now when you hover
the cursor overthe end of the vault, you get a little ‘tick’ mark to
indicate the halfwidth of the vault. Now draw two 2D lines
from this half point at45˚ angles to indicate the line you wish
to cut along. By using theShift key, you can ensure that these
lines are at exactly 45˚.Vạch có thể là một hình chữ nhật
hoặc nó có thể là một hình đa giác, giống như một hình quả
trám. Đầu tiên vẽ một đường 2D dọc theo cạnh cuối của
vault, giữa các điểm phát sóng cuối. Bây giờ khi bạn di con
trỏ qua phần cuối của vault, bạn sẽ nhận được một dấu
"tick" nhỏ để chỉ ra một nửa chiều rộng của vault. Bây giờ,
vẽ hai đường 2D từ nửa điểm này ở góc 45˚ để chỉ ra đường
bạn muốn cắt dọc. Bằng cách sử dụng phím Shift, bạn có thể
đảm bảo rằng các dòng này ở chính xác 45˚.
Now select the Marquee tool and select the polygonal
variant of the marquee. Draw along the 2D lines as
accurately as possible and then encircle the rest of the vault
that you intend to retain.Bây giờ chọn công cụ Marquee và
chọn biến thể đa giác của marquee. Vẽ dọc theo các đường
2D càng chính xác càng tốt và sau đó bao quanh phần còn
lại của hầm mà bạn định giữ lại.

Plan of the shimmering marquee over the vault object. Note that
the thin 2D lines ensure that your cutter is at exactly the right
angle. Use the Coordinate Box if you like to type the angle in.Kế
hoạch của cuộc diễu hành lung linh trên đối tượng vault. Lưu ý
rằng các đường 2D mỏng đảm bảo rằng máy cắt của bạn ở đúng
góc chính xác. Sử dụng Hộp tọa độ nếu bạn muốn nhập góc vào.
Now view this in 3D axonometric and you will be delighted to
findthat you have a groin vault mitred at 45˚. If the cutting
effect does not occur, close the 3D window, use the
Display>Rebuild command, and then try 3D again. Now use the
3D projections to set the camera position to 270˚ and the view
type to Parallel>Plan. Using method 2, save this as a library part
and you can call it “vault_groin.GSM”. Return to the floor plan,
click on the Object tool icon, click in the plan, and your new
object arrives.Bây giờ, hãy xem điều này trong 3D axonometric
và bạn sẽ rất vui khi thấy rằng bạn có một cái vòm háng được
mở ở 45˚. Nếu hiệu ứng cắt không xảy ra, hãy đóng cửa sổ 3D,
sử dụng lệnh Display> Rebuild, rồi thử 3D lại. Bây giờ sử dụng
các phép chiếu 3D để đặt vị trí máy ảnh thành 270˚ và kiểu xem
thành Song song> Mặt bằng. Sử dụng phương pháp 2, lưu phần
này dưới dạng một phần thư viện và bạn có thể gọi nó là
“vault_groin.GSM”. Quay lại sơ đồ tầng, nhấp vào biểu tượng
Công cụ đối tượng, nhấp vào sơ đồ và đối tượng mới của bạn sẽ
đến.

Object Making with ArchiCAD


25
Chapter 2: Making Objects without GDL

Picture of the single vault in 3D axonometric view. Go to 3D Plan


view at 270˚ to save this as a new object.Hình ảnh của hầm đơn
trong chế độ xem axonometric 3D. Chuyển đến chế độ xem 3D
Plan ở 270˚ để lưu nó thành một đối tượng mới.
Now this object has default ‘Bounding Box’ hotspots. You can
customize your hotspots. Select it, and choose File>Open Library
Part. Open the 2D Symbol window, and place your own 2D
hotspots at the corners, including one at the pointy apex of the
groin-vault and one in the middle. This will remove the
boundingbox altogether. The hotspot at the pointy corner can
now be usedas a hinge around which to Edit>Multiply>Rotate
another three groin-vaults.Bây giờ đối tượng này có các điểm nóng
‘Bound Box’ mặc định. Bạn có thể tùy chỉnh các điểm phát sóng
của mình. Chọn nó và chọn Tệp> Mở Phần Thư viện. Mở cửa sổ
Biểu tượng 2D và đặt các điểm phát sóng 2D của riêng bạn ở các
góc, bao gồm một điểm ở đỉnh nhọn của bẹn-vault và một điểm ở
giữa. Thao tác này sẽ xóa hoàn toàn hộp giới hạn. Giờ đây, điểm
phát sóng ở góc nhọn có thể được sử dụng như một bản lề để
Chỉnh sửa> Nhân> Xoay ba mỏm háng khác.
Do this multiplication, and you will get a plan view like this.Thực
hiện phép nhân này, và bạn sẽ nhận được dạng xem kế hoạch như thế
này.

Plan View of the four vaults in plan view, alongside the original
wall piece
Mặt bằng Chế độ xem của bốn hầm trong chế độ xem mặt bằng,
cùng với mảng tường ban đầu
Picture of the four vaults in 3D axo
Hình ảnh của bốn hầm trong axo 3D
Object Making with ArchiCAD

26
Chapter 2: Making Objects without GDL

You can now add in the uncut vault objects alongside these,
stretch to appropriate lengths and before you know it, you have
your church roof. You can use the same technique to take a
sideways ‘bite’ out of a large vault and have a pair of smaller
vaultsintersecting. All this can be done without GDL, and yet,
when theysee it, your friends and colleagues will be convinced
you have become a GDL expert.Bây giờ bạn có thể thêm vào các
đối tượng vòm chưa cắt cùng với chúng, kéo dài đến độ dài thích
hợp và trước khi bạn biết điều đó, bạn đã có mái nhà thờ của
mình. Bạn có thể sử dụng kỹ thuật tương tự để ‘cắn’ theo một
bên ra khỏi một vòm lớn và có một cặp vòm nhỏ hơn giao nhau.
Tất cả điều này có thể được thực hiện mà không cần GDL, tuy
nhiên, khi họ nhìn thấy nó, bạn bè và đồng nghiệp của bạn sẽ tin
rằng bạn đã trở thành một chuyên gia GDL.

Picture of the final structure, with arches and some columns


Hình ảnh của cấu trúc cuối cùng, với mái vòm và một số cột

How far can we take Object Making without


GDL?Chúng ta có thể tiến xa đến mức nào để tạo
Đối tượng mà không có GDL?
Entire buildings can be library parts. ArchiCAD is a powerful
tool for building modelling, and a finished building is an
elaborate combination of layers, stories, library parts and
building elements.In a city, every building has different story
heights and your layer titles for a single building model are
going to be concerned with city blocks, street furniture and
landscape. In a building, your layers are concerned with
differentiating internal walls from external, furniture from
construction parts.Toàn bộ tòa nhà có thể là bộ phận thư viện.
ArchiCAD là một công cụ mạnh mẽ để xây dựng mô hình và
một tòa nhà hoàn thiện là sự kết hợp công phu giữa các lớp, các
câu chuyện, các phần thư viện và các yếu tố của tòa nhà. Trong
một thành phố, mỗi tòa nhà có chiều cao tầng khác nhau và tiêu
đề lớp của bạn cho một mô hình tòa nhà duy nhất sẽ được quan
tâm đến các khối phố, nội thất đường phố và cảnh quan. Trong
một tòa nhà, các lớp của bạn liên quan đến việc phân biệt các
bức tường bên trong với bên ngoài, đồ nội thất với các bộ phận
xây dựng.
If you are doing City modelling, your project model will be
the entire city area or a city block, and the elements in it will
be the terrain, the roads and landscaping. The buildings are
best broughtin as individual library parts.Nếu bạn đang làm
mô hình Thành phố, mô hình dự án của bạn sẽ là toàn bộ khu
vực thành phố hoặc một khối thành phố và các yếu tố trong
đó sẽ là địa hình, đường xá và cảnh quan. Các tòa nhà tốt
nhất nên được đưa vào như các bộ phận thư viện riêng lẻ.
If you wish to include buildings you have already made,
you should open the file of the building, try to make the
windows of“Ice” or of a less transparent material, hide all
layers to do with internal furnishing and small details (unless
they can be seen

Object Making with ArchiCAD


27
Chapter 2: Making Objects without GDL

through windows) and hide the site on which it sits. Then


select the entire building using the fat marquee, or view it in
3D in planview. Either way, you will get all stories showing. If
you had a basement that you wished to omit, then use
Image>Select Image Items and you can decide which stories to
omit. Save as a LibraryPart.Nếu bạn muốn bao gồm các tòa nhà
bạn đã làm, bạn nên mở tệp của tòa nhà, cố gắng tạo các cửa sổ
bằng "Băng" hoặc bằng vật liệu kém trong suốt hơn, ẩn tất cả
các lớp liên quan đến nội thất bên trong và các chi tiết nhỏ (trừ
khi chúng có thể được nhìn thấy qua cửa sổ) và ẩn trang web
mà nó nằm trên đó. Sau đó, chọn toàn bộ tòa nhà bằng cách sử
dụng bảng béo hoặc xem nó ở dạng 3D trong chế độ xem mặt
bằng. Dù bằng cách nào, bạn sẽ nhận được tất cả các câu
chuyện hiển thị. Nếu bạn có một tầng hầm mà bạn muốn bỏ
qua, hãy sử dụng Hình ảnh> Chọn Mục Hình ảnh và bạn có thể
quyết định bỏ qua những câu chuyện nào. Lưu dưới dạng Phần
Thư viện.

If you save it as editable, you are in danger in the long term of


losing the subsidiary library parts (such as windows) that it
was built from. It may also fail to render due to spurious errors.
Save asbinary, and you can safely export it to your City
Model; place it anywhere and at any height and it will work.
You would need a copy of the original if you wish to go back
and modify any part of it, as the only editing you can do to a
binary is to make it stretchy. If you do not want the binary
building library part to be stretchy, open the building objects,
open its 2D Symbol window, and place2D hotspots where you
think would be appropriate – corners, turrets, entrance canopy,
ridges, etc., and then save again. That will turn off the
bounding box hotspots.Nếu bạn lưu nó dưới dạng có thể chỉnh
sửa, bạn sẽ gặp nguy hiểm về lâu dài khi mất các phần thư
viện phụ (chẳng hạn như cửa sổ) mà nó đã được xây dựng từ
đó. Nó cũng có thể không hiển thị do lỗi giả. Lưu dưới dạng
tệp nhị phân và bạn có thể xuất nó một cách an toàn sang Mô
hình Thành phố của mình; đặt nó ở bất cứ đâu và ở bất kỳ độ
cao nào và nó sẽ hoạt động. Bạn sẽ cần một bản sao của bản
gốc nếu bạn muốn quay lại và sửa đổi bất kỳ phần nào của nó,
vì cách chỉnh sửa duy nhất bạn có thể làm đối với tệp nhị
phân là làm cho nó co giãn. Nếu bạn không muốn phần thư
viện tòa nhà nhị phân bị co giãn, hãy mở các đối tượng của
tòa nhà, mở cửa sổ Biểu tượng 2D của nó và đặt các điểm
phát sóng 2D ở nơi bạn nghĩ là thích hợp - các góc, tháp pháo,
mái che lối vào, đường gờ, v.v., và sau đó lưu lại. Điều đó sẽ
tắt các điểm nóng của hộp giới hạn.
If you only need facades, you can also build an entire facade
on the ground, using the Slab, Wall and Roof tools. Then save
it usingthe 3D view with the camera at 90˚ in the
Parallel>Elevation view. Bring it back into your floor plan and
assemble the building from facade library parts. Again, we
advise that these are binary, to avoid any lost subsidiary
components, and to reduce the risk of rendering errors.Nếu bạn
chỉ cần mặt tiền, bạn cũng có thể xây dựng toàn bộ mặt tiền trên
mặt đất, bằng cách sử dụng các công cụ Slab, Wall và Roof. Sau
đó, lưu nó bằng chế độ xem 3D với máy ảnh ở 90˚ trong chế độ
xem Song song> Độ cao. Đưa nó trở lại sơ đồ tầng của bạn và
lắp ráp tòa nhà từ các bộ phận thư viện mặt tiền. Một lần nữa,
chúng tôi khuyên rằng đây là mã nhị phân, để tránh bất kỳ thành
phần phụ nào bị mất và giảm nguy cơ kết xuất lỗi.

28 Object Making with ArchiCAD


Chapter 2: Making Objects without GDL

Notes on the naming of parts Lưu ý về cách


đặt tên các bộ phận
All saved objects end with the letters .GSM; windows end with
.WIN; doors end with .DOR; and so on. Even Mac users work
withthis convention. Do not alter these suffixes either when
saving orat a later time. Do not alter the names of objects in
the libraries or your project file will not be able to find them
next time it loads.Tất cả các đối tượng đã lưu đều kết thúc
bằng các ký tự .GSM; cửa sổ kết thúc bằng
.THẮNG LỢI; cửa kết thúc bằng .DOR; và như thế. Ngay cả
người dùng Mac cũng làm việc với quy ước này. Không thay
đổi các hậu tố này khi lưu hoặc sau đó. Không thay đổi tên
của các đối tượng trong thư viện nếu không tệp dự án của bạn
sẽ không thể tìm thấy chúng trong lần tải tiếp theo.
The best method is to think of a good name at the time of saving.
Avoid using generic names for library parts – ‘Table.GSM’ sounds
like a good name for a table – but the next time you open your
project file, you may find a quite different table appearing
becauseone of that name already exists in a different folder.
‘Table_jdoe_02.GSM’ is unlikely to exist already in the ArchiCAD
Library. Use that, and your project file will be able to find
it.Phương pháp tốt nhất là nghĩ ra một cái tên hay tại thời điểm tiết
kiệm. Tránh sử dụng tên chung cho các phần thư viện - 'Table.GSM'
nghe có vẻ là một tên hay cho một bảng - nhưng lần sau khi bạn mở
tệp dự án của mình, bạn có thể thấy một bảng khá khác xuất hiện vì
một trong số đó đã tồn tại trong một bảng khác thư mục.
‘Table_jdoe_02.GSM’ không chắc đã tồn tại trong Thư viện
ArchiCAD. Sử dụng nó và tệp dự án của bạn sẽ có thể tìm thấy nó.

Summary of Object Making in this chapter Tóm


tắt về Tạo đối tượng trong chương này
– You can make complex objects without GDL using the 3D
tools or using library objects that already exist. They will
be stretchy but not smart, and not parametric in anything
exceptstretchiness.Bạn có thể tạo các đối tượng phức tạp
mà không cần GDL bằng các công cụ 3D hoặc sử dụng
các đối tượng thư viện đã tồn tại. Họ sẽ co giãn nhưng
không thông minh, và không tham số trong bất cứ điều
gì ngoại trừ tính co giãn.
– These can be 2D or 3D and can be saved from the floor
plan,or from the 3D view.Đây có thể là 2D hoặc 3D và
có thể được lưu từ sơ đồ mặt bằng, hoặc từ chế độ xem
3D.
– Windows and Doors can be made without using
GDL.Windows và Doors có thể được thực hiện mà không
cần sử dụng GDL.
– The Wall tool is powerful for object making without
GDL.Công cụ Wall mạnh mẽ để tạo đối tượng mà không cần
GDL.
– Using the Magic Wand, you can ‘steal’ shapes from ArchiCAD
and turn them into Objects.Sử dụng Magic Wand, bạn có
thể ‘đánh cắp’ các hình dạng từ ArchiCAD và biến chúng
thành Đối tượng.
– Using the Marquee tool, you can cut library objects
intosmaller shapes.Sử dụng công cụ Marquee, bạn
có thể cắt các đối tượng thư viện thành các hình
dạng nhỏ hơn.
– You can take object making to the extreme of having
entirebuildings or landscapes as objects.Bạn có thể coi
việc tạo đối tượng đến mức tối đa là có toàn bộ tòa nhà
hoặc cảnh quan làm đối tượng.
– Take care with the naming of library parts – avoid
usinggeneric names for objects.Cẩn thận với việc đặt
tên cho các phần của thư viện - tránh sử dụng tên
chung cho các đối tượng.

Object Making with ArchiCAD


29
Chapter 2: Making Objects without GDL

30 Object Making with ArchiCAD


Chapter 3: Starting with GDL

Chapter 3
Starting with GDL
Now it’s time to gather your courage and make a start with GDL.
It’s not as difficult as you expect!

Bây giờ đã đến lúc thu thập can đảm của bạn và bắt đầu với GDL.
Nó không khó như bạn mong đợi!
Object Making with ArchiCAD
31
Chapter 3: Starting with GDL

3.1 Starting with GDL


Chapter 1 discussed reasons why you might want to build
with GDL. Now it is time to give it a try. Do not be nervous.
You will find it easy if you take it in stages.Chương 1 thảo
luận lý do tại sao bạn có thể muốn xây dựng với GDL. Bây
giờ là lúc để thử. Đừng lo lắng. Bạn sẽ thấy dễ dàng nếu
thực hiện theo từng giai đoạn.
Open the Object Making Master window Mở cửa sổ Object
Making Master
From ArchiCAD, select from the File menu>New Library Part>
Object. You will get a Master window like this, with a vertical
bar of buttons down the left-hand side. The wide buttons allow
scriptsto be displayed in the large white window. The small
white buttons allow the scripts to be displayed in floating
palettes.Từ ArchiCAD, chọn từ menu Tệp> Phần Thư viện
Mới> Đối tượng. Bạn sẽ nhận được một cửa sổ Master như
thế này, với một thanh dọc gồm các nút ở phía bên tay trái.
Các nút rộng cho phép các tập lệnh được hiển thị trong cửa sổ
lớn màu trắng. Các nút nhỏ màu trắng cho phép các tập lệnh
được hiển thị trong các bảng màu nổi.

When you have the Parameters button pressed, you get a ‘New’
button at the top – enabling you to create new parameters for
length, materials, pen colors and more.Khi bạn nhấn nút Tham
số, bạn sẽ thấy nút ‘Mới’ ở trên cùng - cho phép bạn tạo các
thông số mới cho chiều dài, vật liệu, màu bút và hơn thế nữa.
Before starting with some easy exercises, let’s look at the
functionof the scripts and windows available to you. Bear in
mind that forthe beginner in GDL, the only scripts that you
really need are the 3D and the 2D scripts.Trước khi bắt đầu
với một số bài tập dễ dàng, hãy xem chức năng của các tập
lệnh và cửa sổ có sẵn cho bạn. Hãy nhớ rằng đối với người
mới bắt đầu trong GDL, các tập lệnh duy nhất mà bạn thực
sự cần là tập lệnh 3D và 2D.
The Parameter table is where you can build the Object Settings
dialog box that the user will see when they use your object. This

32 Object Making with ArchiCAD


Chapter 3: Starting with GDL

allows the user to enter materials, diameters, angles, pen


colors and much much more. By hitting the New button, and
filling in thesmall details, you can create parameters.Bảng
Tham số là nơi bạn có thể tạo hộp thoại Cài đặt Đối tượng mà
người dùng sẽ thấy khi họ sử dụng đối tượng của bạn. Điều
này cho phép người dùng nhập vật liệu, đường kính, góc, màu
bút và nhiều hơn nữa. Bằng cách nhấn nút Mới và điền vào
các chi tiết nhỏ, bạn có thể tạo các tham số.
The Master Script can be used for housekeeping tasks such
aschecking user errors and defining materials. This is read
by theother scripts. If you type in a common piece of
information likethe radius of a tube or the width of a chair
seat, it becomes available to all the other scripts. It saves
you from repeatedly typing the same information into each
script.Master Script có thể được sử dụng cho các công việc
quản lý như kiểm tra lỗi của người dùng và xác định vật
liệu. Điều này được đọc bởi các tập lệnh khác. Nếu bạn
nhập một phần thông tin phổ biến như bán kính của ống
hoặc chiều rộng của ghế ngồi, thông tin đó sẽ có sẵn cho
tất cả các tập lệnh khác. Nó giúp bạn không phải gõ liên
tục cùng một thông tin vào mỗi tập lệnh.
The 2D Symbol is a window into which you can paste a 2D
image, or draw using 2D tools, but it will only be displayed if
thereis no 2D script. With GDL knowledge, you are better off
trying to write a 2D script.Biểu tượng 2D là một cửa sổ mà
bạn có thể dán hình ảnh 2D hoặc vẽ bằng công cụ 2D, nhưng
nó sẽ chỉ được hiển thị nếu không có tập lệnh 2D. Với kiến
thức GDL, bạn nên cố gắng viết một kịch bản 2D.
The 2D Script can be used simply to tell GDL to draw in 2D
whatever it finds in the 3D script (PROJECT2). It can be used to
force the 2D Symbol window to be the 2D symbol
(FRAGMENT2).Its most creative use is for you to write a
parametrically organizedscript to draw what the object will look
like in 2D. By designatingHotspots, the 2D script can also
make the object stretchy and easyto pick up. If the 2D script is
left blank, the object will display whatever is drawn into the 2D
Symbol window. If you leave both blank, the object will not
show in the project.Tập lệnh 2D có thể được sử dụng đơn giản
để yêu cầu GDL vẽ ở dạng 2D bất cứ thứ gì nó tìm thấy trong
tập lệnh 3D (PROJECT2). Nó có thể được sử dụng để buộc cửa
sổ Biểu tượng 2D là biểu tượng 2D (FRAGMENT2). Cách sử
dụng sáng tạo nhất của nó là để bạn viết một kịch bản được tổ
chức theo tham số để vẽ đối tượng sẽ trông như thế nào trong
2D. Bằng cách chỉ định Điểm phát sóng, tập lệnh 2D cũng có
thể làm cho đối tượng co giãn và dễ lấy. Nếu để trống script 2D,
đối tượng sẽ hiển thị bất cứ thứ gì được vẽ vào cửa sổ 2D
Symbol. Nếu bạn để trống cả hai, đối tượng sẽ không hiển thị
trong dự án.
The 2D Full View shows what is generated by the 2D Script. This
will not normally show what is in the 2D Symbol window.Chế độ
xem Toàn màn hình 2D hiển thị những gì được tạo bởi Tập lệnh
2D. Điều này thường sẽ không hiển thị những gì có trong cửa sổ
Biểu tượng 2D.
The 3D Script is the primary means of building parametric
3D objects. If the object is simple, almost all the work can
done in the3D Script. This is the engine room of most library
parts.Tập lệnh 3D là phương tiện chính để xây dựng các đối
tượng 3D tham số. Nếu đối tượng là đơn giản, hầu như tất cả
công việc có thể được thực hiện trong 3D Script. Đây là
phòng máy của hầu hết các bộ phận thư viện.
The 3D View is generated by the 3D Script – not to be confused
with the 3D window of the main project.Chế độ xem 3D được
tạo bởi 3D Script - không nên nhầm lẫn với cửa sổ 3D của dự án
chính.
The Properties Script enables you to write Components
andDescriptor commands if the object is to be in a
schedule.Tập lệnh Thuộc tính cho phép bạn viết các lệnh
Thành phần và Bộ mô tả nếu đối tượng nằm trong một
lịch trình.
The Parameter Script is the place where you can build pop-
down menu selections to be used in the main parameters
box.Tập lệnh Tham số là nơi bạn có thể xây dựng các lựa
chọn menu sổ xuống để sử dụng trong hộp tham số chính.
The Comment is a small text field in which you can write a set
ofinstructions to your user on how to use the object, or record
a log of the development of the object.Nhận xét là một trường
văn bản nhỏ trong đó bạn có thể viết một tập hợp các hướng
dẫn cho người dùng của mình về cách sử dụng đối tượng
hoặc ghi lại nhật ký về sự phát triển của đối tượng.
The Preview Picture is a window containing a small bitmap
image of a view of the object. It tells the user what the object
will look like in its setting, and could come from Art•lantis
Render or an ArchiCAD photorendering. This becomes the
icon of the objectin the settings dialog box.Hình ảnh xem
trước là một cửa sổ chứa một hình ảnh bitmap nhỏ của chế độ
xem của đối tượng. Nó cho người dùng biết đối tượng sẽ
trông như thế nào trong cài đặt của nó, và có thể đến từ Art •
lantis Render hoặc một bản dựng ảnh ArchiCAD. Điều này
sẽ trở thành biểu tượng của đối tượng trong hộp thoại cài đặt.

Object Making with ArchiCAD


33
Chapter 3: Starting with GDL

The User Interface Script enables you to build a custom


dialog box with your own text fields and images, with buttons
and inputfields for the user to enter parameters. It is great for
complex objects where the user might need more explanation
of the purpose of parameters.Tập lệnh Giao diện Người dùng
cho phép bạn tạo một hộp thoại tùy chỉnh với các trường văn
bản và hình ảnh của riêng bạn, với các nút và trường đầu vào
để người dùng nhập các tham số. Nó rất tốt cho các đối tượng
phức tạp mà người dùng có thể cần giải thích thêm về mục
đích của các tham số.
Relax! When you start GDL, you only need the 2D and 3D scripts.
Thư giãn! Khi bạn bắt đầu GDL, bạn chỉ cần các tập lệnh 2D và 3D.

3D Entities Thực thể 3D


The easiest 3D elements to build with are Block, Cylinder,
Sphereand Cone. Their syntax is very simple.Các phần tử 3D dễ
xây dựng nhất là Block, Cylinder, Sphere và Cone. Cú pháp của
chúng rất đơn giản.
– BLOCK x,y,z
x being the width, y the depth and z the height.
x là chiều rộng, y là chiều sâu và z là chiều cao.
– CYLIND h,r
h being the Height, and r the Radius.
h là Chiều cao và r là Bán kính.
– SPHERE r
r being the Radius.
r là Bán kính.
– CONE h,r1,r2,90,90
h being the Height, and r1 the Radius at the base and r2
theRadius at the top. The 90, 90 are the angles at which
you cutoff the top and bottom. You can vary these
numbers to get interesting effects.h là Chiều cao, và r1
là Bán kính ở gốc và r2 là Bán kính ở trên cùng. 90, 90
là các góc mà bạn cắt đỉnh và đáy. Bạn có thể thay đổi
những con số này để có được những hiệu ứng thú vị.

First steps in 3D GDL Các bước đầu tiên trong 3D


GDL
Open the 3D Script and try writing BLOCK 1,2,3. Look at the
result in the 3D window – a tall cuboid. Now try writing,
CYLIND1,2. A short but very fat cylinder appears at the near
left corner ofthe cuboid. Finally, try writing SPHERE 1.5– a large
ball appearsat the same corner, partially submerged in the fat
cylinder. Finally, try the CONE. All these objects have been
built at the same location, called the Global Origin. Even at this
stage you will already want to improve the appearance of the
object. It is all the same color, depending on the default PEN.
So above the Block command, write PEN 1, and write
MATERIAL 'Whitewash' (or use the name of a material that is
known to you in your materials library).Mở Tập lệnh 3D và thử
viết KHỐI 1,2,3. Nhìn vào kết quả trong cửa sổ 3D - một hình
khối cao. Bây giờ hãy thử viết, CYLIND 1,2. Một hình trụ ngắn
nhưng rất béo xuất hiện ở góc gần bên trái của hình khối. Cuối
cùng, hãy thử viết SPHERE 1.5 - một quả bóng lớn xuất hiện ở
cùng một góc, ngập một phần trong hình trụ béo. Cuối cùng, hãy
thử CONE. Tất cả các đối tượng này đã được xây dựng tại cùng
một vị trí, được gọi là Nguồn gốc toàn cầu. Ngay cả ở giai đoạn
này, bạn đã muốn cải thiện vẻ ngoài của đối tượng. Tất cả đều có
cùng màu, tùy thuộc vào PEN mặc định. Vì vậy, bên trên lệnh
Block, hãy viết PEN 1 và viết MATERIAL 'Whitewash' (hoặc sử
dụng tên của tài liệu mà bạn đã biết trong thư viện tài liệu của
bạn).

PEN 1
MATERIAL 'Whitewash'
BLOCK 1.0, 2.0, 3.0
CYLIND 1.0, 1.0
SPHERE 1.0
CONE 4, 0.5, 0.1, 90, 90

34 Object Making with ArchiCAD


Chapter 3: Starting with GDL

The dimensions you are writing are in meters. The native


dimensioning system of GDL is always meters, no matter what
youset your main project to be using. In your project file, you
could be working in feet and fractional inches, centimeters,
millimeters. But GDL is ‘hard coded’ so you need to work to one
dimensional system. If you wish to use feet or inches, you can,
but you must write them with punctuation, e.g., BLOCK 1”,2”,3’-
0”. It reduces a risk of confusion (for humans) if you write
dimensionswith a decimal form, as 2.0, not as 2.Kích thước bạn
đang viết được tính bằng mét. Hệ thống đo kích thước gốc của GDL
luôn là mét, bất kể bạn thiết lập dự án chính của mình để sử dụng là
gì. Trong tệp dự án của bạn, bạn có thể làm việc theo đơn vị feet và
inch, cm, milimét. Nhưng GDL là "mã hóa cứng", vì vậy bạn cần
phải làm việc với hệ thống một chiều. Nếu bạn muốn sử dụng feet
hoặc inch, bạn có thể, nhưng bạn phải viết chúng bằng dấu câu, ví
dụ: BLOCK 1 ”, 2”, 3’-0 ”. Nó làm giảm nguy cơ nhầm lẫn (đối với
con người) nếu bạn viết thứ nguyên ở dạng thập phân, dưới dạng
2.0, không phải là 2.
Click in the 3D window (of the library part, not the project) and
you will see this. These objects all exist in the same space and
overlap each other, so we need to find a way to separate them.
The wireframe view shows each of the objects and the shaded
view shows you how well GDL permits objects to ‘collide’ like this
without harm.Nhấp vào cửa sổ 3D (của phần thư viện, không
phải của dự án) và bạn sẽ thấy điều này. Các đối tượng này đều
tồn tại trong cùng một không gian và chồng chất lên nhau, vì
vậy chúng ta cần tìm cách tách chúng ra. Chế độ xem khung dây
hiển thị từng đối tượng và chế độ xem bóng mờ cho bạn biết
GDL cho phép các đối tượng 'va chạm' như vậy mà không gây
hại như thế nào.
If, when you click the 3D window, it refuses to draw because
of an error, return to your script and click on the Check Script
button.This will point to the line where the error occurred,
usually because of an incorrectly placed comma, or a typo.Nếu
khi bạn nhấp vào cửa sổ 3D, nó từ chối vẽ do lỗi, hãy quay lại
tập lệnh của bạn và nhấp vào nút Kiểm tra tập lệnh. Thao tác này
sẽ trỏ đến dòng xảy ra lỗi, thường là do dấu phẩy được đặt
không chính xác hoặc lỗi đánh máy.
3D Space and the 3D Cursor Không gian 3D và
con trỏ 3D
You need to move about in 3D space to be able to place
elements such as the legs of a chair, or a tabletop. This is done
with ADD commands. These work on the logical idea that the
3D world can be thought of in three rectilinear directions called
X, Y and Z. You should be familiar with the idea of X, Y and Z
from the normal ArchiCAD environment – the Coordinate Box
allows you to enter adimension in X or Y, and you can also
enter radial dimensions andangles. In GDL, Z is used to provide
vertical movement.Bạn cần di chuyển trong không gian 3D để có
thể đặt các yếu tố như chân ghế hoặc mặt bàn. Điều này được
thực hiện với các lệnh ADD. Chúng hoạt động dựa trên ý tưởng
hợp lý rằng thế giới 3D có thể được hình thành theo ba hướng
tuyến tính được gọi là X, Y và Z. Bạn nên làm quen với ý tưởng
về X, Y và Z từ môi trường ArchiCAD thông thường - Hộp tọa
độ cho phép bạn nhập một kích thước bằng X hoặc Y và bạn
cũng có thể nhập các kích thước và góc hướng tâm. Trong GDL,
Z được sử dụng để cung cấp chuyển động thẳng đứng.

Object Making with ArchiCAD


35
Chapter 3: Starting with
GDL

The three-pointed object that you can see in a GDL 3D view


reminds you which ways are X, Y, or Z. This is like a 3D
Cursor. When you word process, you are used to the idea of a
cursor – wherever you place the cursor, you can begin typing,
and whatever you type appears. In GDL, there are two cursor
symbols.The one labelled ‘G’ is the Global cursor and shows you
the originof the model. The one labelled ‘L’ is the Local Cursor.
Wherever this is, your next 3D command will happen. Using the
ADD command, you can move the cursor about in 3D space.
ADDX, ADDY, or ADDZmove the cursor in those axial
directions. The ADDcommand moves the cursor in three axes at
once. Đối tượng ba cánh mà bạn có thể nhìn thấy trong chế độ
xem 3D GDL nhắc nhở bạn cách nào là X, Y hoặc Z. Đây giống
như Con trỏ 3D. Khi bạn xử lý văn bản, bạn đã quen với ý tưởng
về con trỏ - bất cứ nơi nào bạn đặt con trỏ, bạn có thể bắt đầu
nhập và bất cứ điều gì bạn nhập sẽ xuất hiện. Trong GDL, có hai
biểu tượng con trỏ. Con trỏ có nhãn ‘G’ là con trỏ Toàn cầu và
hiển thị cho bạn nguồn gốc của mô hình. Con trỏ có nhãn ‘L’ là
Con trỏ cục bộ. Cho dù đây là đâu, lệnh 3D tiếp theo của bạn sẽ
xảy ra. Sử dụng lệnh ADD, bạn có thể di chuyển con trỏ trong
không gian 3D. ADDX, ADDY hoặc ADDZ di chuyển con trỏ
theo các hướng trục đó. Lệnh ADD di chuyển con trỏ theo ba
trục cùng một lúc.
When you are writing GDL in 2D, you have a similar concept of
Xand Y based 2D space, and you do not have to worry about
height. Using the ADD2 command, you can move about in 2D
space providing you specify both the X and Y distances.
Unfortunately, you do not have a visible cursor.Khi bạn viết GDL ở
dạng 2D, bạn có khái niệm tương tự về không gian 2D dựa trên X
và Y, và bạn không phải lo lắng về chiều cao. Sử dụng lệnh ADD2,
bạn có thể di chuyển trong không gian 2D với điều kiện bạn chỉ
định cả khoảng cách X và Y.
In reality, the 3D world is too complex to be defined ONLY in
absolute terms of X, Y and Z. So you will be glad to know that
youare also able to Rotate the cursor (using the ROTcommand)
and move radially, and work at different angles from the pure
horizontal and vertical. You are also able to shrink or expand
the cursor (using the MUL command which multiplies) so you
can easily deform or mirror elements of your model.Thật không
may, bạn không có con trỏ hiển thị.
Trong thực tế, thế giới 3D quá phức tạp để CHỈ được định nghĩa
theo nghĩa tuyệt đối của X, Y và Z. Vì vậy, bạn sẽ rất vui khi
biết rằng bạn cũng có thể Xoay con trỏ (sử dụng lệnh ROT) và
di chuyển theo hướng tâm, và làm việc ở các góc khác nhau từ
phương ngang và phương thẳng đứng thuần túy. Bạn cũng có thể
thu nhỏ hoặc mở rộng con trỏ (sử dụng lệnh MUL nhân lên) để
bạn có thể dễ dàng làm biến dạng hoặc phản chiếu các phần tử
của mô hình của mình.
A few simple examples will illustrate how all of these work.

Một vài ví dụ đơn giản sẽ minh họa cách thức hoạt động của tất cả
những thứ này.
36 Object Making with ArchiCAD
Chapter 3: Starting with GDL

Take the previous script and play with it.Lấy kịch bản trước
đó và chơi với nó.
!Cursor MovementPEN
1
MATERIAL 'Whitewash'
BLOCK 1.0, 2.0, 3.0
ADD 1.0,1.0,1.5
ROTy 90
CYLIND 1.0,1.0
ADDz 2.0
MULz 0.5
SPHERE 1.0
ADDz -2.0
CONE 5, 0.5, 0.1, 90,90
DEL 5

In this example, we have started by adding a Label. Using the


exclamation mark, you can type anything you like after this
and the machine will ignore it. But it is most useful to the
human eye and brain. It is always good to label your scripts
with a name and adate. It is also a good discipline to write GDL
commands in upper case and to write labels and other text in
lower case.Trong ví dụ này, chúng tôi đã bắt đầu bằng cách
thêm Nhãn. Sử dụng dấu chấm than, bạn có thể gõ bất cứ thứ
gì bạn thích sau đó và máy sẽ bỏ qua nó. Nhưng nó hữu ích
nhất đối với mắt và não của con người. Luôn luôn tốt để gắn
nhãn các tập lệnh của bạn bằng tên và ngày tháng. Nó cũng là
một kỷ luật tốt để viết lệnh GDL bằng chữ hoa và viết nhãn và
văn bản khác bằng chữ thường.
The Block is built as in the previous example. The cursor
moves inthe X direction, using the ADDX command. Write this
as one word ‘ADDX’ followed by the distance. Then using the
‘ROTY’ command, the cursor can be rotated around the Y axis.
Now the Cylinder getsdrawn – although cylinders always grow
vertically, the vertical axisis now laying on its side, so the
cylinder grows sideways. Now youcan ADDZ which raises the
cursor vertically in its new orientation. We want to draw the
Sphere, but as a bit of fun, use a MUL command to halve its
height and make it elliptical. MULZ 0.5 makes it half as high,
but leaves width and depth unchanged.Khối được xây dựng như
trong ví dụ trước. Con trỏ di chuyển theo hướng X, sử dụng lệnh
ADDX. Viết cái này dưới dạng một từ 'ADDX' theo sau là
khoảng cách. Sau đó, sử dụng lệnh ‘ROTY’, con trỏ có thể được
xoay quanh trục Y. Bây giờ Xi lanh được rút ra - mặc dù các
hình trụ luôn phát triển theo chiều dọc, trục thẳng đứng hiện
đang nằm nghiêng về phía nó, do đó hình trụ phát triển sang một
bên. Bây giờ bạn có thể ADDZ để nâng con trỏ theo chiều dọc
theo hướng mới của nó. Chúng tôi muốn vẽ Sphere, nhưng thú vị
một chút, hãy sử dụng lệnh MUL để giảm một nửa chiều cao của
nó và làm cho nó có hình elip. MULZ 0,5 làm cho nó cao bằng
một nửa, nhưng không thay đổi chiều rộng và chiều sâu.

Object Making with ArchiCAD


37
Chapter 3: Starting with
GDL
The importance of DEL Tầm quan trọng của DEL
Finally, it is a good discipline to return the cursor back to the
origin. GDL remembers every cursor move you have made.
TheDELcommand undoes or ‘forgets’ these movements, allowing
thecursor to retreat back to the origin, leaving the 3D
elements behind. As we have done four cursor commands, the
DEL 4will neatly return the cursor to the origin.Cuối cùng, nó
là một kỷ luật tốt để đưa con trỏ trở lại nguồn gốc. GDL ghi
nhớ mọi di chuyển con trỏ bạn đã thực hiện. Lệnh DEL hoàn
tác hoặc ‘quên’ các chuyển động này, cho phép con trỏ quay
trở lại điểm gốc, bỏ lại các phần tử 3D. Như chúng ta đã thực
hiện bốn lệnh con trỏ, DEL 4 sẽ trả lại con trỏ một cách gọn
gàng như ban đầu.
You may be familiar with the difference between Absolute
distance (distance from the Origin) and Relative distance
(distancefrom where you are now to the next position). In GDL,
you navigate around the 3D model making Relative jumps.
Because you can also Rotate and Multiply, you are in danger of
getting lost
– after a few lines you could be ‘deep in spaghetti’. After each set
of moves, you should return to the origin using DEL before
doingthe next job. For example, in a chair model, you could
build the legs, then return to the origin before starting work on
the seat.Bạn có thể đã quen với sự khác biệt giữa Khoảng cách
tuyệt đối (khoảng cách từ Điểm khởi đầu) và Khoảng cách tương
đối (khoảng cách từ vị trí hiện tại của bạn đến vị trí tiếp theo).
Trong GDL, bạn điều hướng xung quanh mô hình 3D tạo ra các
bước nhảy tương đối. Vì bạn cũng có thể Xoay và Nhân nên bạn
có nguy cơ bị lạc
- sau một vài dòng, bạn có thể ‘đắm chìm trong mì ống’. Sau mỗi
lượt di chuyển, bạn nên quay lại điểm ban đầu bằng DEL trước khi
thực hiện công việc tiếp theo. Ví dụ, trong một mẫu ghế, bạn có
thể dựng chân, sau đó quay trở lại điểm ban đầu trước khi bắt đầu
thao tác trên ghế.

Do not forget the 2D script Đừng quên kịch bản 2D


Finally, when you save the GDL model, and bring it into the
project floor plan, you will be dismayed to find that it does
not display – it has no symbol, and at best you will have
nothing morethan a hotspot. So for the present moment, open
the object again,open the 2D script window and write a single
line:Cuối cùng, khi bạn lưu mô hình GDL và đưa nó vào sơ
đồ tầng của dự án, bạn sẽ thất vọng khi thấy rằng nó không
hiển thị - nó không có biểu tượng, và tốt nhất bạn sẽ không có
gì khác hơn là một điểm phát sóng. Vì vậy, ở thời điểm hiện
tại, hãy mở lại đối tượng, mở cửa sổ tập lệnh 2D và viết một
dòng:

38
PROJECT2 3,270,2
This is a ‘killer’ command that in one line, displays the 3D object
in 2D, regardless of its complexity. Later, when we get onto
2D scripting, the PROJECT2 command can be explained in
more detail, along with other 2D GDL commands.Đây là lệnh
‘sát thủ’ trong một dòng, hiển thị đối tượng 3D ở dạng 2D, bất
kể độ phức tạp của nó. Sau đó, khi chúng ta làm quen với kịch
bản 2D, lệnh PROJECT2 có thể được giải thích chi tiết hơn,
cùng với các lệnh GDL 2D khác.

Summary of GDL, to this point Tóm tắt về GDL,


cho đến thời điểm này
– Start with the easy 3D commands.Bắt đầu với các lệnh 3D dễ
dàng.
– Use UPPER case for commands, lower case everything else.Sử
dụng chữ hoa UPPER cho các lệnh, chữ thường cho mọi thứ khác.
– Write (!)Labels to define a piece of work.Viết (!) Nhãn để xác
định một phần tác phẩm.
– Write GDL commands in UPPER case, and everything
else inlower case.Viết lệnh GDL trong trường hợp
UPPER và mọi thứ khác trong trường hợp thấp hơn.
– Set a Material and Pen color.Đặt Chất liệu và Màu bút.
– Use Check Script to see if errors occur.Sử dụng Check Script để
xem có lỗi xảy ra hay không.
– Be careful with commas and spelling.Cẩn thận với dấu phẩy và
chính tả.
– Click in the 3D window to see the object build.Nhấp vào cửa sổ
3D để xem bản dựng đối tượng.
– Do one bit, return the cursor and then do next bit; and so on.Do
một bit, trả lại con trỏ và sau đó thực hiện bit tiếp theo; và như
thế.
– Do not forget to make a short 2D script.Đừng quên làm một kịch
bản 2D ngắn
Object Making with ArchiCAD
Chapter 3: Starting with GDL

3.2 Let’s build a 3D Object Hãy


xây dựng một Đối tượng 3D
From ArchiCAD, choose File>New Library Part>Object. We
are going to build a simple chair. Remember that this tutorial is
aboutGDL, not chair design, so please do not be concerned that
it is a simple chair. It needs to be.Từ ArchiCAD, chọn Tệp>
Phần Thư viện Mới> Đối tượng. Chúng tôi sẽ chế tạo một chiếc
ghế đơn giản. Hãy nhớ rằng hướng dẫn này là về GDL, không
phải thiết kế ghế, vì vậy xin đừng lo lắng rằng nó là một chiếc
ghế đơn giản. Nó cần phải.
Start in the 3D Script with a BLOCK command for one leg of the
chair. Let the chair have a general size of 50 mm (2”) for legs
and other thicknesses. Later we can introduce subtleties of form
and size. Starting from the left-hand front corner, use the ADD
commandsand work your way around the chair, planting legs as
you go.Bắt đầu trong Tập lệnh 3D bằng lệnh BLOCK cho một
chân của ghế. Để ghế có kích thước chung là 50 mm (2 ”) cho
chân và các độ dày khác. Sau đó, chúng tôi có thể giới thiệu
sự tinh tế của hình thức và kích thước. Bắt đầu từ góc trước
bên trái, sử dụng lệnh ADD và di chuyển xung quanh ghế, đặt
chân khi bạn di chuyển.
!Legs
MATERIAL ’Pine’: PEN 1
BLOCK 0.05,0.05,0.45
ADDx 0.4
BLOCK 0.05,0.05,0.45
ADDy 0.4
BLOCK 0.05,0.05,0.45
ADDx -0.4
BLOCK 0.05,0.05,0.45
DEL 3
Notice that it is wise, even for such a simple object, to
write a label, to define the material and pen color. These
two can be included on the same line using a colon to
separate the commands. You may not have the Material
names used here, soput in the names of materials that you
know to be loaded.Lưu ý rằng việc viết nhãn, xác định chất
liệu và màu bút là điều khôn ngoan, ngay cả đối với một
vật đơn giản như vậy. Hai lệnh này có thể được bao gồm
trên cùng một dòng bằng cách sử dụng dấu hai chấm để
phân tách các lệnh. Bạn có thể không có tên Vật liệu được
sử dụng ở đây, vì vậy hãy nhập tên của vật liệu mà bạn biết
sẽ được tải.
The operation to make the legs involves three ADD commands,
so we can use DEL 3to bring the cursor back to the origin. Then
rest.Thao tác tạo chân bao gồm ba lệnh ADD, vì vậy chúng ta có
thể sử dụng DEL 3 để đưa con trỏ trở lại điểm gốc. Sau đó thì
nghỉ ngơi.
Now for the Seat. This should be of a different material so
start with the label and a new material statement. Lift the
cursor and draw the block. Note that the block has to be high
and big enoughto cover the legs. When you use quote marks, it
does not matter if they are double or single quotes as long as
you are consistent.Bây giờ cho Ghế. Đây phải là vật liệu khác,
vì vậy hãy bắt đầu với nhãn và tuyên bố vật liệu mới. Nhấc
con trỏ và vẽ khối. Lưu ý rằng khối phải cao và đủ lớn để che
chân. Khi bạn sử dụng dấu ngoặc kép, không quan trọng
chúng là dấu ngoặc kép hay dấu nháy đơn, miễn là bạn nhất
quán.
!Seat
MATERIAL ’Textile’
ADDz 0.45
BLOCK 0.45,0.45,0.05
DEL 1
Now for the Back. Note that we are working with BLOCK on
this chair. As your confidence increases, you will expand the
range ofGDL commands you use to achieve form. There is
usually morethan one way to make any shape.Bây giờ cho
Mặt sau. Lưu ý rằng chúng tôi đang làm việc với BLOCK
trên chiếc ghế này. Khi sự tự tin của bạn tăng lên, bạn sẽ mở
rộng phạm vi lệnh GDL mà bạn sử dụng để đạt được hình
thức. Thường có nhiều hơn một cách để tạo bất kỳ hình dạng
nào.
Object Making with ArchiCAD
39
Chapter 3: Starting with GDL

!Back
MATERIAL ’Pine’
ADD 0,0.4,0.45
BLOCK 0.05,0.05,0.45
ADDx 0.4
BLOCK 0.05,0.05,0.45
DEL 1
MATERIAL ’Textile’
ADD 0.05,0,0.15
BLOCK 0.35,0.05,0.30
DEL 1
DEL 1
To complete this, you will want to see this in your floor plan.
You must write a 2D Script if it is to be visible. Open the 2D
script window and write the single line ‘PROJECT2 3,270,2’.
Close the object, return to the floor plan. Click the Object tool
in the Toolbox, click in the plan, and your chair will appear,
with its ownhotspots provided by ArchiCAD.Để hoàn thành
việc này, bạn sẽ muốn thấy điều này trong sơ đồ tầng của
mình. Bạn phải viết Tập lệnh 2D nếu nó được hiển thị. Mở
cửa sổ tập lệnh 2D và viết dòng đơn ‘PROJECT2 3,270,2’.
Đóng đối tượng, trở lại sơ đồ mặt bằng. Nhấp vào công cụ
Đối tượng trong Hộp công cụ, nhấp vào kế hoạch và chiếc
ghế của bạn sẽ xuất hiện, với các điểm phát sóng riêng do
ArchiCAD cung cấp.
The chair may not win a design award, but it is your first GDL
object – so reward yourself and then try another task.Chiếc ghế
có thể không giành được giải thưởng thiết kế, nhưng nó là đối
tượng GDL đầu tiên của bạn - vì vậy hãy tự thưởng cho mình
và sau đó thử làm một nhiệm vụ khác.

Let’s make this chair parametric Hãy làm cho chiếc


ghế này tham số
If you stretch a non parametric object, it deforms proportionally,
butunrealistically. Square table legs become rectangular,
cylindrical legsbecome elliptical. If you stretch a parametric
object, it retains important properties such as diameters and
thicknesses. The primary reason for using GDL has to be to
enable objects to be parametric. So this simple chair needs to
be upgraded. Nếu bạn kéo căng một vật thể không tham số, nó
sẽ biến dạng theo tỷ lệ, nhưng không thực tế. Chân bàn vuông
trở thành hình chữ nhật, chân trụ trở thành elip. Nếu bạn kéo
giãn một đối tượng tham số, nó sẽ giữ lại các thuộc tính quan
trọng như đường kính và độ dày. Lý do chính để sử dụng
GDL là để cho phép các đối tượng là tham số. Vì vậy, chiếc
ghế đơn giản này cần được nâng cấp.
First make some parameters Đầu tiên hãy tạo một số thông
số
Click on the chair object and open it again for editing. In the
parameter building box, click the ‘New’ button 5 or 6 times to
make new lines in the building box. They are lettered C, D, E,
F, and so on, and they always start with a value of zero. Click
in the parameter name box of the first one and write in a name
for the leg thickness parameter. Call it ‘tsec’ which is a 4-letter
shorthand for timber section. Write in the larger field something
like ‘Timber sectional size’ or equivalent. This is what the user
will read when they open your object – so make your
description a model of clarity. Then enter a starting value, such
as 0.05 meters. If your system settings are in another unit
system, write in 50 mm, or 2” orwhatever suits you.
Nhấp vào đối tượng ghế và mở lại để chỉnh sửa. Trong hộp xây
dựng thông số, nhấp vào nút ‘Mới’ 5 hoặc 6 lần để tạo các
đường mới trong hộp xây dựng. Chúng được ký tự C, D, E, F,
v.v. và chúng luôn bắt đầu bằng giá trị 0. Nhấp vào hộp tên
thông số của cái đầu tiên và viết tên cho thông số độ dày của
chân. Gọi nó là 'tsec' là cách viết tắt 4 chữ cái để chỉ phần gỗ.
Viết vào trường lớn hơn như "Kích thước mặt cắt gỗ" hoặc
tương đương. Đây là những gì người dùng sẽ đọc khi họ mở đối
tượng của bạn - vì vậy hãy làm cho mô tả của bạn trở thành một
mô hình rõ ràng. Sau đó, nhập giá trị bắt đầu, chẳng hạn như
0,05 mét. Nếu cài đặt hệ thống của bạn nằm trong một hệ thống
đơn vị khác, hãy viết bằng 50 mm, hoặc 2 ”hoặc bất kỳ thứ gì
phù hợp với bạn.
Add in more parameter names. Try ‘seathit’ for Seat height,
‘legmat’ for Leg material and so on. Think about the parameters
you might want to change. You will find a button in the same
parameter building box that you can pop-up to reveal a palette
totell GDL whether the parameter is a Dimension, a Material,
Pencolor or whatever. This palette will be covered in more
detail asthe exercises develop.
Thêm tên thông số khác. Hãy thử ‘seathit’ cho Chiều cao ghế,
‘legmat’ cho vật liệu của chân, v.v. Suy nghĩ về các thông số
bạn có thể muốn thay đổi. Bạn sẽ tìm thấy một nút trong cùng
một hộp xây dựng thông số mà bạn có thể bật lên để hiển thị
bảng màu để cho GDL biết thông số đó là Thứ nguyên, Chất
liệu, Màu bút hay bất cứ thứ gì. Bảng màu này sẽ được trình
bày chi tiết hơn khi các bài tập phát triển.

40 Object Making with ArchiCAD


Chapter 3: Starting with GDL

Rules for parameter naming Quy tắc đặt tên tham số


A and B at the top of the parameters box are ‘Magic parameters’ that
govern the width and depth of objects. You do not have to use
them.You could use ‘wid’ and ‘dep’ along with the other parameters.
Let’s use A and B here because they will enable the object to be
stretchy. Change them both to the equivalent of 45 cm or 18”.A và B
ở trên cùng của hộp tham số là ‘Tham số ma thuật’ chi phối chiều rộng và
chiều sâu của các đối tượng. Bạn không cần phải sử dụng chúng. Bạn có thể sử
dụng "wid" và "dep" cùng với các tham số khác. Hãy sử dụng A và B ở đây vì
chúng sẽ cho phép đối tượng co giãn. Thay đổi cả hai thành tương đương 45
cm hoặc 18 ”.
The rules for names of parameters are simple. Use more than
one letter so that you can remember what the parameter
means. Singleletters are best used as ‘counters’ or ‘flags’ when you
get further into GDL. It’s important to be able to read your script
Object Making with
weeks later and still understand what you meant. ‘Legmat’ is far
ArchiCAD more expressive than ‘L’. It takes more typing, but that is a small
worrycompared with the importance of understanding. It’s
easier to make typing errors with long parameter names, so
avoid over-long

41
Chapter 3: Starting with GDL

names like ‘leg_cross_section’. The letters must be sequential (no


spaces) but you can join words with an underscore e.g. ‘leg_mat’.
Parameters are not case sensitive, but as a discipline, stick
exclusively to lowercase for parameters, upper case for
commands.Các quy tắc cho tên của các tham số rất đơn giản. Sử
dụng nhiều hơn một chữ cái để bạn có thể nhớ ý nghĩa của tham số.
Các chữ cái đơn lẻ được sử dụng tốt nhất làm "bộ đếm" hoặc "cờ"
khi bạn tiến sâu hơn vào GDL. Điều quan trọng là bạn có thể đọc
tập lệnh của mình vài tuần sau đó và vẫn hiểu ý bạn. ‘Legmat’ biểu
cảm hơn nhiều so với ‘L’. Phải đánh máy nhiều hơn, nhưng đó là
một nỗi lo nhỏ so với tầm quan trọng của sự hiểu biết. Dễ mắc lỗi
nhập hơn với tên thông số dài, vì vậy hãy tránh những tên quá dài
như ‘leg_cross_section’. Các chữ cái phải tuần tự (không có khoảng
trắng) nhưng bạn có thể nối các từ bằng dấu gạch dưới, ví dụ:
‘Leg_mat’. Các tham số không phân biệt chữ hoa chữ thường,
nhưng là một nguyên tắc, chỉ sử dụng chữ thường cho các tham số,
chữ hoa cho các lệnh.
The most important rule is that you must not use words that
are already GDL commands (or archaic GDL commands). So
names like ‘block’, ‘strlen’, ‘open’ and ‘nod’ cannot be used.Quy tắc
quan trọng nhất là bạn không được sử dụng các từ đã là lệnh GDL (hoặc
lệnh GDL cổ). Vì vậy không thể sử dụng các tên như ‘block’, ‘strlen’,
‘open’ và ‘gật đầu’.
Now convert the 3D script Bây giờ chuyển đổi tập lệnh 3D
The next task is to convert the script from dimensions to
parameters.Once you have written a few GDL scripts, it
becomes second nature to think out the structure of an object in
terms of parameters and write directly into the script using
parameters. You develop a personal lingo of words like ‘len’, ‘wid’,
and ‘dep’ that you can use in all objects. Start by changing all the
leg section widths to ‘tsec’, then gradually change all the others.
Notice that, because the block starts from the near-left corner,
the distance it has to move to draw each leg is the dimension of
the chair less the leg thickness, for example, width(A) minus tsec
– and so on. Try it for yourself. Nhiệm vụ tiếp theo là chuyển đổi
script từ thứ nguyên thành tham số. Khi bạn đã viết một vài tập
lệnh GDL, bản chất thứ hai là nghĩ ra cấu trúc của một đối tượng
dưới dạng tham số và viết trực tiếp vào tập lệnh bằng cách sử
dụng các tham số. Bạn phát triển một biệt ngữ cá nhân của các từ
như ‘len’, ‘wid’ và ‘dep’ mà bạn có thể sử dụng trong tất cả các
đối tượng. Bắt đầu bằng cách thay đổi tất cả chiều rộng của phần
chân thành ‘tsec’, sau đó dần dần thay đổi tất cả các chiều rộng
khác. Lưu ý rằng, vì khối bắt đầu từ góc gần bên trái, khoảng
cách nó phải di chuyển để vẽ mỗi chân là kích thước của chiếc
ghế trừ độ dày của chân, ví dụ: chiều rộng (A) trừ đi tsec - v.v.
Hãy thử nó cho chính mình.
!Simple chair, parametricPEN pcol !
Ghế đơn giản, PEN pcol tham số
!Legs !Chân
MATERIAL legmat
BLOCK tsec,tsec,seathit-tsecADDX A-tsec
BLOCK tsec,tsec,seathit-tsecADDY B-tsec
BLOCK tsec,tsec,seathit-tsec
ADDX -(A-tsec) !Note the use of brackets ! Lưu ý việc sử dụng dấu
ngoặ
BLOCK tsec,tsec,seathit-tsecDEL 3
!Seat
MATERIAL seatmat
ADDZ seathit-tsec
ADD 0.001,0.001,0 !Nudge upholstery by one pixel ! Dịch chuyển vải bọc một
pixel
BLOCK A-0.002,B-0.002,tsecDEL 2
!Back
MATERIAL legmat
ADD 0, B-tsec, seathit-tsecBLOCK
tsec,tsec,bakhit
ADDX A-tsec
BLOCK tsec,tsec,bakhitDEL 1

42 Object Making with ArchiCAD


Chapter 3: Starting with GDL

MATERIAL seatmat !UpholsteryADD


tsec,0,bakhit/3
BLOCK A-tsec*2,tsec,bakhit*2/3DEL 1
DEL 1
Evolution of form Sự phát triển của hình thức
As part of the changes, we can improve the 3D appearance. In
thesimple chair, the rear upholstery of the seat was in exactly
the same 3D space as the uprights for the back. If you nudge
the upholstery forward and to the right by one 3D pixel (one
millimeter) and reduce the seat size by two pixels, the chair
will render better in 3D. Là một phần của những thay đổi,
chúng tôi có thể cải thiện giao diện 3D. Trong chiếc ghế đơn
giản, phần bọc phía sau của ghế nằm trong không gian 3D
chính xác giống như phần đệm cho lưng. Nếu bạn di chuyển
vải bọc về phía trước và bên phải một pixel 3D (một milimet)
và giảm kích thước ghế đi hai pixel, chiếc ghế sẽ hiển thị 3D
tốt hơn.
The idea of 3D ‘systems analysis’ Ý tưởng về 'phân tích
hệ thống' 3D
The back is a little more complicated. Previously, we used
actualdimensions. Now we have to do a little systems
analysis on the chair. It is logical that the upholstery of the
back is equal to the width of the chair minus twice the leg
thickness. We have to applysimple systems analysis to all 3D
objects if parametric scripting is to work at all.Mặt sau phức
tạp hơn một chút. Trước đây, chúng tôi sử dụng kích thước
thực tế. Bây giờ chúng ta phải thực hiện một phân tích hệ
thống nhỏ trên chiếc ghế. Hợp lý là phần bọc của lưng bằng
chiều rộng của ghế trừ đi hai lần chiều dày của chân. Chúng
tôi phải áp dụng phân tích hệ thống đơn giản cho tất cả các
đối tượng 3D nếu kịch bản tham số hoạt động.
Now you can write the X,Y and Z values as arithmetic
expressions.Star (*) means multiply, slash (/) means
divide.Bây giờ bạn có thể viết các giá trị X, Y và Z dưới dạng
biểu thức số học. Dấu sao (*) có nghĩa là nhân, dấu gạch chéo
(/) có nghĩa là chia.
Error checking Kiểm tra lỗi
As you work your way through the script, keep clicking in the
3Dview window of the GDL object to see if the logic of your
arithmetical expressions are making sense. If they are not, it
may be a bad spelling. A wrongly spelled parameter will result
in a value of zero, or could produce an error message. Click on
the ‘Check Script’ button and read the error message – if you get
one.Khi bạn thực hiện theo cách của mình thông qua tập lệnh,
hãy tiếp tục nhấp vào cửa sổ xem 3D của đối tượng GDL để
xem liệu logic của các biểu thức số học của bạn có hợp lý hay
không. Nếu không, nó có thể là một lỗi chính tả. Một tham số
viết sai chính tả sẽ dẫn đến giá trị bằng 0 hoặc có thể tạo ra
thông báo lỗi. Nhấp vào nút ‘Kiểm tra tập lệnh’ và đọc thông
Object Making with báo lỗi - nếu bạn gặp phải.
ArchiCAD
Fixed parameters Các thông số cố định
We made an assumption that the back upholstery would be 2/3
ofthe back height. This is what we call a “manufacturer’s rule.” So
you fix this in the script without giving the user a choice. If you
wanted it to be variable, you could provide additional
parametersto enable the user to control the appearance. Chúng
tôi đã đưa ra một giả định rằng phần vải bọc phía sau sẽ bằng
2/3 chiều cao của phần lưng. Đây là những gì chúng tôi gọi là
"quy tắc của nhà sản xuất". Vì vậy, bạn sửa lỗi này trong script
mà không cho người dùng lựa chọn. Nếu bạn muốn nó có thể
thay đổi, bạn có thể cung cấp các tham số bổ sung để cho phép
người dùng kiểm soát giao diện.
3D is more powerful if it is parametric 3D mạnh hơn
nếu nó là tham số
You can see that it is possible to
write 3D scripts that are 100%
based on parameters and not on
real dimensions. This is the key
tomaking objects smart and
powerful. Once ArchiCAD
users have grasped this they
realize that there was something
useful in all that algebra they
learned so painfully at school.
Later with GDL, youmay find
that your school trigonometry
comes in handy, too!Bạn có thể
thấy rằng có thể viết kịch bản 3D
100% dựa trên các thông số chứ
không phải trên kích thước thực.
Đây là chìa khóa để làm cho các
đối tượng trở nên thông minh và
mạnh mẽ. Một khi người dùng
ArchiCAD đã nắm được điều
này, họ nhận ra rằng có điều gì
đó hữu ích trong tất cả những gì
họ đã học ở trường rất hữu ích.
Sau này với GDL, bạn có thể
thấy rằng lượng giác ở trường
của bạn cũng có ích!
Save the chair object, look at it in the
floor plan, view its settings window,
and play with it. Change the materials,
height and leg thickness. If you have
done everything correctly, it should
behaveparametrically.Lưu đối tượng
cái ghế, xem nó trong sơ đồ mặt bằng,
xem cửa sổ cài đặt của nó và chơi với
nó. Thay đổi vật liệu, chiều cao và độ
dày của chân. Nếu bạn đã làm mọi thứ
một cách chính xác, nó sẽ hoạt động
theo tham số.

43
Chapter 3: Starting with GDL

algebra they learned so painfully at school. Later with GDL,


youmay find that your school trigonometry comes in handy,
too!đại số họ đã học rất đau đớn ở trường. Sau này với GDL,
bạn có thể thấy rằng lượng giác ở trường của bạn cũng có ích!
Save the chair object, look at it in the floor plan, view its settings
window, and play with it. Change the materials, height and leg
thickness. If you have done everything correctly, it should behave
parametrically.Lưu đối tượng cái ghế, xem nó trong sơ đồ mặt bằng,
xem cửa sổ cài đặt của nó và chơi với nó. Thay đổi vật liệu, chiều
cao và độ dày của chân. Nếu bạn đã làm mọi thứ một cách chính
xác, nó sẽ hoạt động theo tham số.

3.3 First steps in 2D scripting Các


bước đầu tiên trong tạo kịch
bản 2D
Use a script for a more effective 2D symbol Sử dụng tập
lệnh cho biểu tượng 2D hiệu quả hơn
In the first version of the simple chair, you used the command
of PROJECT2 3,270,2 – a ‘killer command’ that does it all. To achieve
this, it has to do a hidden-line 3D drawing of the object asseen
in plan view. The result of this can be that your floor plan takes
too long to load or regenerate if you have many such objectsin
the project. So we advise that you always use a 2D script unless
the object is too changeable or complex to script. Let’s try a small
script for this chair. Trong phiên bản đầu tiên của chiếc ghế đơn
giản, bạn đã sử dụng lệnh của PROJECT2 3.270,2 - một 'lệnh sát
thủ' thực hiện tất cả. Để đạt được điều này, nó phải thực hiện một
bản vẽ 3D đường ẩn của đối tượng như được thấy trong chế độ xem
mặt bằng. Kết quả của việc này có thể là sơ đồ tầng của bạn mất
quá nhiều thời gian để tải hoặc tạo lại nếu bạn có nhiều đối tượng
như vậy trong dự án. Vì vậy, chúng tôi khuyên bạn nên luôn sử
dụng tập lệnh 2D trừ khi đối tượng quá dễ thay đổi hoặc phức tạp
để tập lệnh. Hãy thử một kịch bản nhỏ cho chiếc ghế này.
The RECT2command is a 2D command that is similar to
BLOCK, but it is more flexible as you can specify the X and Y
of the opposing corners, e.g., RECT2 x1,y1,x2,y2. All 2D
commandsend in the letter ‘2’.Lệnh RECT2 là lệnh 2D tương tự như
BLOCK, nhưng nó linh hoạt hơn vì bạn có thể chỉ định X và Y của các góc đối lập,
ví dụ: RECT2 x1, y1, x2, y2. Tất cả các lệnh 2D đều kết thúc bằng chữ ‘2’.
Let’s try two ways of doing this chair. We could follow the
same sequence as the 3D script, using the ADD2 command to
move around and plant each rectangle. Alternatively, we could
stay at the origin and just issue all the RECT2 commands
without havingto move anywhere. Hãy thử hai cách để thực
hiện chiếc ghế này. Chúng tôi có thể làm theo trình tự tương tự
như tập lệnh 3D, sử dụng lệnh ADD2 để di chuyển xung quanh
và trồng từng hình chữ nhật. Ngoài ra, chúng ta có thể ở gốc và
chỉ cần đưa ra tất cả các lệnh RECT2 mà không cần phải di
chuyển bất cứ đâu.
The ADD2command is a move command in 2D, but requires
bothX and Y. For an X move, give a value for Y of zero.Lệnh
ADD2 là lệnh di chuyển trong 2D, nhưng yêu cầu cả X và Y.
Đối với di chuyển X, hãy cho giá trị của Y bằng 0.
!Simple chair, parametricPEN pcol !
Ghế đơn giản, PEN pcol tham số
!PROJECT2 3,270,2 !make this into a comment ! biến điều này
thành một bình luận
RECT2 0,0,A,B !Seat
ADD2 0,B-tsec
RECT2 0,0,tsec,tsec !LegADD2 A-
tsec,0
RECT2 0,0,tsec,tsec !LegDEL 2
!Back
RECT2 tsec,B-tsec,A-tsec,B

44 Object Making with ArchiCAD


Chapter 3: Starting with GDL

The commands for the seat and legs follow the logic of the 3D
model. You can use DEL to cancel cursor movements, just as in
3D. Unfortunately, you do not have a visible 2D cursor to tell
youwhere it is – you just have to keep a mental track of its
location. Các lệnh cho ghế và chân tuân theo logic của mô hình
3D. Bạn có thể sử dụng DEL để hủy các chuyển động của con
trỏ, giống như trong 3D. Thật không may, bạn không có con trỏ
2D có thể nhìn thấy để cho bạn biết vị trí của nó - bạn chỉ cần
theo dõi vị trí của nó.
The command for the back upholstery sits in one place and
issuesthe RECT2 command by exact XY locations. We can
keep the PROJECT2command in the script, but make it inactive
by turningit into a comment line.Lệnh cho ghế sau nằm ở một
nơi và đưa ra lệnh RECT2 theo các vị trí XY chính xác.
Chúng ta có thể giữ lệnh PROJECT2 trong script, nhưng làm
cho nó không hoạt động bằng cách chuyển nó thành một
dòng chú thích.

Save the object and place it on the floor plan. You will find
that itgenerates the symbol instantaneously. It will also have
hotspots.You will also find (to your delight?) that the chair is
stretchy. Lưu đối tượng và đặt nó trên sơ đồ mặt bằng. Bạn sẽ
thấy rằng nó tạo ra biểu tượng ngay lập tức. Nó cũng sẽ có các
điểm nóng. Bạn cũng sẽ thấy (bạn có thích thú không?) Rằng
chiếc ghế có độ co giãn.
Write your own hotspots Viết điểm phát sóng của riêng
bạn
If you wish to guarantee that hotspots are where you want
them tobe and that the object will be stretchy, you are better
off writing them yourself. Open the chair object again, and
add the followinglines to the script you have written. Place the
lines BEFORE the ones that contain the rectangle commands.
Hotspots only need theX and Y location. Nếu bạn muốn đảm
bảo rằng các điểm nóng là nơi bạn muốn và đối tượng sẽ co
giãn, bạn nên tự viết chúng. Mở lại đối tượng ghế và thêm các
dòng sau vào tập lệnh bạn đã viết. Đặt các dòng TRƯỚC
những dòng chứa lệnh hình chữ nhật. Điểm phát sóng chỉ cần
vị trí X và Y.
HOTSPOT2 0,0 !4 Corner stretch spots ! 4 Điểm kéo dài góc
HOTSPOT2 A,0
HOTSPOT2 A,B
HOTSPOT2 0,B
HOTSPOT2 A/2,B/2 !Pick up spot ! Nhận chỗ
If you have used ArchiCAD, you will know that hotspots have
three main purposes: allowing objects to be picked up; making
them stretchy; and giving them ‘gravity’ (helping them to snap
against wall surfaces or each other). Design and place your
hotspots as and where you need them. Nếu bạn đã sử dụng
ArchiCAD, bạn sẽ biết rằng các điểm phát sóng có ba mục
đích chính: cho phép nhặt các đối tượng; làm cho chúng co
giãn; và tạo cho chúng 'trọng lực' (giúp chúng bám vào bề
mặt tường hoặc vào nhau). Thiết kế và đặt các điểm phát sóng
của bạn ở đâu và ở đâu bạn cần.
Later in 2D GDL you can try commands like CIRCLE2, LINE2and
ARC2.Sau đó trong GDL 2D, bạn có thể thử các lệnh như CIRCLE2,
LINE2 và
ARC2.

Object Making with ArchiCAD


45
Chapter 3: Starting with
GDL
3D made more curvy 3D làm cong hơn
Before long, you will want to break out of the rectilinear
tyranny of BLOCK and RECT2. The syntax of cylinder
(CYLIND), CONE and ELBOW are easy to use. With those
three, you can build interesting tubular structures, such as the
tubular frames of steel furniture. There isn’t space to deal with
them in this chapter. Nowthat you have got this far, you may
find it an easy challenge to explore on your own. Không lâu
sau, bạn sẽ muốn thoát ra khỏi chế độ chuyên chế nghiêng ngả
của BLOCK và RECT2. Cú pháp của trụ (CYLIND), CONE và
ELBOW rất dễ sử dụng. Với ba thứ đó, bạn có thể xây dựng các
cấu trúc hình ống thú vị, chẳng hạn như khung hình ống của đồ
nội thất bằng thép. Không có không gian để giải quyết chúng
trong chương này. Bây giờ bạn đã có được điều này, bạn có thể
thấy nó là một thử thách dễ dàng để tự khám phá.

Summary of GDL, in this section Tóm tắt về GDL,


trong phần này
– You can write GDL entirely in dimensions.Bạn có thể viết GDL
hoàn toàn theo các thứ nguyên.
– It is better to write GDL in parameters.Tốt hơn là viết GDL trong
các tham số.
– Use parameter names that look logical, like ‘seatmat’.Sử dụng tên
tham số trông hợp lý, chẳng hạn như ‘seatmat’.
– Remember to click the pop-up palette that tells you
if aparameter is length, material or pen color.Hãy
nhớ nhấp vào bảng màu bật lên cho bạn biết nếu một
tham số là chiều dài, chất liệu hoặc màu bút.
– Describe the purpose of the parameters clearly.Mô tả rõ ràng
mục đích của các tham số.
– Try to make the entire 3D script parametric.Thử tạo toàn bộ
tham số tập lệnh 3D
– Click in the 3D view window frequently.Nhấp vào cửa sổ chế độ
xem 3D thường xuyên.
– After each 3D task is achieved, DEL back to the origin
beforestarting the next task.Sau khi đạt được mỗi nhiệm
vụ 3D, DEL trở lại điểm gốc trước khi bắt đầu nhiệm vụ
tiếp theo.
– Writing a 2D script is easy and saves time in the long term.Viết
kịch bản 2D dễ dàng và tiết kiệm thời gian về lâu dài.
– Hotspots are vital for making objects stretchy.Các điểm quan
trọng để làm cho các vật thể co giãn.
– Try cylinders, cones and elbows for extra quality
andauthenticity.Thử hình trụ, hình nón và cùi
chỏ để có thêm chất lượng và độ chân thực.
– Now, at last, you have a useful application for that algebra
youlearned at school.
Bây giờ, cuối cùng, bạn có một ứng dụng hữu ích cho đại số mà bạn đã học ở
trường.
46 Object Making with ArchiCAD
Chapter 4: Practical Uses for GDL

Chapter 4
Practical Uses for GDL
Ứng dụng thực tế cho
GDL
Even in the early dawn of your GDL knowledge you can apply it
to useful tasks. It’s the best way to learn.

Ngay cả trong buổi bình minh đầu tiên của kiến thức GDL của
bạn, bạn có thể áp dụng nó vào các nhiệm vụ hữu ích. Đó là cách
tốt nhất để học.
Object Making with ArchiCAD
47
Chapter 4: Practical Uses for GDL

4.1 Practical Uses for GDL Ứng


dụng thực tế cho GDL
The simple chair was useful for breaking the ice with GDL;
let’s now try two objects that could be genuinely useful to
you in ArchiCAD. These objects will continue to widen your
vision as towhat is possible with GDL, and will provide you
with more rules,techniques and advice on getting the best out
of GDL. Chiếc ghế đơn giản rất hữu ích để phá băng với
GDL; Bây giờ chúng ta hãy thử hai đối tượng có thể thực sự
hữu ích cho bạn trong ArchiCAD. Những đối tượng này sẽ
tiếp tục mở rộng tầm nhìn của bạn về những gì có thể với
GDL và sẽ cung cấp cho bạn nhiều quy tắc, kỹ thuật và lời
khuyên hơn để tận dụng tối đa GDL.

GDL in 2D GDL ở dạng 2D


It is possible to build objects entirely as 2D, but for many
building components and furniture items, it is not so necessary.
These can usually be built with the 2D tools and saved as
objects – as previously demonstrated. In other cases, you can
drop a 3D objectfrom the ArchiCAD Library into the floor plan,
and ‘explode’ it –making it a 2D group of lines. However, if you
can think of something that offers parametric properties, or you
are scripting something that you have already built in 3D, then
there is a good reason to learn scripting in 2D.Có thể xây dựng
các đối tượng hoàn toàn dưới dạng 2D, nhưng đối với nhiều
thành phần xây dựng và các món đồ nội thất, nó không quá cần
thiết. Chúng thường có thể được xây dựng bằng các công cụ 2D
và được lưu dưới dạng đối tượng - như đã trình bày trước đây.
Trong các trường hợp khác, bạn có thể thả một đối tượng 3D từ
Thư viện ArchiCAD vào sơ đồ mặt bằng và ‘phát nổ’ nó - biến
nó thành một nhóm đường thẳng 2D. Tuy nhiên, nếu bạn có thể
nghĩ ra thứ gì đó cung cấp các thuộc tính tham số hoặc bạn đang
viết kịch bản thứ gì đó mà bạn đã xây dựng ở dạng 3D, thì có lý
do chính đáng để học viết kịch bản ở dạng 2D.
Let’s remind you of some of the common commands in 2D.
Crossreference the corresponding section of the GDL
Reference Guide.Hãy nhắc bạn về một số lệnh phổ biến trong
2D. Tham khảo chéo phần tương ứng của Hướng dẫn Tham
khảo GDL.
HOTSPOT2: allows you to post hotspots where you want
them tobe. Normally GDL will give you ‘bounding box’ hotspots,
but it isfar more powerful to place them where they will be
useful – to make objects stretchy, to mark out points along a
circle, or to make objects easier to pick up.cho phép bạn đăng
các điểm phát sóng ở nơi bạn muốn. Thông thường GDL sẽ cung
cấp cho bạn các điểm phát sóng ‘hộp giới hạn’, nhưng việc đặt
chúng ở vị trí hữu ích sẽ mạnh hơn nhiều - để làm cho các đối
tượng co giãn, để đánh dấu các điểm dọc theo một vòng tròn hoặc
để lấy các đối tượng dễ dàng hơn.
LINE2 x1,y1, x2,y2: draws a line from point x1,y1 to x2,y2.vẽ đoạn
thẳng từ điểm x1, y1 đến x2, y2.
RECT2 x1,y1, x2,y2: draws a rectangle from point x1,y1 to
x2,y2.vẽ hình chữ nhật từ điểm x1, y1 đến x2, y2.
CIRCLE2 x, y, r: draws a circle at point x,y, of radius r.vẽ một đường
tròn tại điểm x, y, bán kính r.
ARC2 x, y, r, alpha, beta: draws part of a circle on point x,y, of
radius r, starting with angle alpha and ending at anglebeta –
moving in an counterclockwise direction.vẽ một phần của đường
tròn trên điểm x, y, bán kính r, bắt đầu bằng góc alpha và kết
thúc ở góc beta - chuyển động theo hướng ngược chiều kim đồng
hồ.
POLY2and POLY2_(underscore) are more powerful than any
ofthe above. You can draw any of the above shapes, plus
many other shapes, including ones with drilled holes and
with a varietyof fill patterns.POLY2 và POLY2_ (gạch dưới)
mạnh hơn bất kỳ loại nào ở trên. Bạn có thể vẽ bất kỳ hình
dạng nào ở trên, cùng với nhiều hình dạng khác, bao gồm cả
những hình có lỗ khoan và với nhiều kiểu tô màu.
ADD2, MUL2, ROT2, DEL are concerned with cursor
movement,and you have already seen them in use with the
simple chair example. ADD2, MUL2, ROT2, DEL liên
quan đến chuyển động của con trỏ và bạn đã thấy chúng
được sử dụng với ví dụ chiếc ghế đơn giản.

48 Object Making with ArchiCAD


Chapter 4: Practical Uses for GDL

Let’s build something in 2D – and make it


snappy Hãy xây dựng thứ gì đó ở dạng 2D -
và làm cho nó trở nên linh hoạt
From ArchiCAD, choose File>New Library Part>Object. Let us
make a 2D Symbol for a bed. The only point in making it in
GDL isfor it to be parametric and to obey rules – to stretch
intelligently, to‘snap’ to certain sizes. You can make an object
smart by setting up a number of ‘IF statements’ which help GDL
decide what course totake. Some choices can be determined by
the user playing with the parameters, other rules would be treated as
“manufacturer’s rules” and are written (‘hard-coded’) into the script.Từ
ArchiCAD, chọn Tệp> Phần Thư viện Mới> Đối tượng. Hãy để chúng
tôi tạo một Biểu tượng 2D cho một chiếc giường. Điểm duy nhất trong
việc tạo ra nó trong GDL là nó phải là tham số và tuân theo các quy tắc
- kéo dài một cách thông minh, để ‘chụp’ theo các kích thước nhất
định. Bạn có thể làm cho một đối tượng trở nên thông minh bằng cách
thiết lập một số 'câu lệnh IF' giúp GDL quyết định khóa học nào sẽ
tham gia. Một số lựa chọn có thể được xác định bởi người dùng chơi
với các thông số, các quy tắc khác sẽ được coi là "quy tắc của nhà sản
xuất" và được viết ("mã hóa cứng") vào tập lệnh.
Let us set up some simple rules. Beds, if single are 75 cm or 90
cmwide. If double, they are 135 cm or 150 cm wide. Beds are
always195 cm long. Beds may have headboards. Bedposts are 5
cm square. The beds will be stretchable, but we do not want
the bedsto be infinitely variable – that would be unrealistic. As
each bed enlarges by pulling on its hotspots, we want it to snap
to the correct size. ‘A’ is used as the parameter for width, and we
do notneed to use ‘B’ in this case.Hãy để chúng tôi thiết lập một
số quy tắc đơn giản. Giường, nếu là giường đơn, rộng 75 cm
hoặc 90 cm. Nếu gấp đôi, chúng có chiều rộng 135 cm hoặc 150
cm. Giường luôn dài 195 cm. Giường có thể có đầu giường. Cột
giường hình vuông 5 cm. Giường sẽ có thể co giãn được, nhưng
chúng tôi không muốn giường có thể thay đổi vô hạn - điều đó
là không thực tế. Khi mỗi chiếc giường mở rộng bằng cách kéo
các điểm phát sóng của nó, chúng tôi muốn nó bắt kịp kích
thước chính xác. ‘A’ được sử dụng làm tham số cho chiều rộng
và chúng tôi không cần sử dụng ‘B’ trong trường hợp này.
In the 2D script, we start with a label and then state one of the
main rules – bed length. Then the stretchy hotspots follow.
These are always best written BEFORE you write any
significant elementsof script – because GDL is read in the order
in which it is written, the stretchy hotspots tell the object how
big to be, and the rest of the script does the job of drawing the
object at the required size.Trong kịch bản 2D, chúng tôi bắt đầu
với một nhãn và sau đó nêu một trong những quy tắc chính -
chiều dài giường. Sau đó, các điểm nóng co giãn theo sau.
Chúng luôn được viết tốt nhất TRƯỚC KHI bạn viết bất kỳ phần
tử quan trọng nào của tập lệnh - bởi vì GDL được đọc theo thứ
tự mà nó được viết, các điểm nóng co giãn cho biết đối tượng
lớn như thế nào và phần còn lại của tập lệnh thực hiện công việc
vẽ đối tượng ở kích thước yêu cầu.
!2D Bed Symbol
len=1.95
HOTSPOT2 0,0
HOTSPOT2 A,0
HOTSPOT2 0,len
HOTSPOT2 A,len

Object Making with ArchiCAD


49
Chapter 4: Practical Uses for GDL

The object can be ‘smart’ with IF... ENDIF


Statements Đối tượng có thể là 'thông minh' với IF ...
ENDIF
các câu lệnh
From the hotspots, the script knows the value of A and can
decide what kind of bed it is. The IFstatements use the ‘greater
than’ and‘smaller than’ expressions to decide on the correct bed
width. IFstatements can be written on a single line or, as in this
script, can be written in the form shown here. The first line
ends with the word THEN, followed on the next few lines with
the things to be done as a result of the IFquestion. You round
off the IF statement with the ENDIF statement. As long as you
go in the rightorder (each IFstatement checking in order of
size), you finish up getting the right bed. You see here an
example of a multi- statement line. You can use the colon to
allow separate statementsto exist on the same line (a space
saving device).Từ các điểm nóng, kịch bản biết được giá trị của
A và có thể quyết định loại giường đó là gì. Câu lệnh IF sử dụng
biểu thức ‘lớn hơn’ và ‘nhỏ hơn’ để quyết định chiều rộng
giường chính xác. Câu lệnh IF có thể được viết trên một dòng
hoặc, như trong tập lệnh này, có thể được viết dưới dạng hiển thị
ở đây. Dòng đầu tiên kết thúc bằng từ THEN, tiếp theo là một
vài dòng tiếp theo là những việc cần làm do kết quả của câu hỏi
IF. Bạn làm tròn câu lệnh IF bằng câu lệnh ENDIF. Miễn là bạn
đi đúng thứ tự (mỗi câu lệnh IF kiểm tra theo thứ tự kích thước),
bạn sẽ hoàn thành việc chọn đúng giường. Bạn thấy ở đây một ví
dụ về dòng nhiều câu lệnh. Bạn có thể sử dụng dấu hai chấm để
cho phép các câu lệnh riêng biệt tồn tại trên cùng một dòng (một
thiết bị tiết kiệm dung lượng).
The idea of Flags Ý tưởng về Cờ
The variable called ‘bed’ is created and this is a way for the script
to remember what sort of bed it is. This variable is called a ‘Flag’,
ashorthand way for GDL to remember which option has been
requested. In this example, the first digit of twelve ‘1’ tells GDL
that it is a single bed and the second digit ‘2’ tells it that the bed is
of the wide variety. The flag is used here to decide on the
pillows layout. In more complex objects, flags are vital as a way
of remembering the configuration. In a car-model, flags can
remember the type of car, left/right hand drive, lights on/off,
doorsopen/shut, seats visible/hidden, passengers present,
steering direction of the wheels.Biến có tên là ‘bed’ được tạo và
đây là cách để tập lệnh ghi nhớ loại giường đó là gì. Biến này
được gọi là 'Flag', một cách viết tắt để GDL nhớ tùy chọn nào đã
được yêu cầu. Trong ví dụ này, chữ số đầu tiên của mười hai ‘1’
cho GDL biết rằng đó là một chiếc giường đơn và chữ số thứ hai
‘2’ cho nó biết rằng chiếc giường thuộc loại rộng rãi. Lá cờ được
sử dụng ở đây để quyết định cách bố trí gối. Trong các đối tượng
phức tạp hơn, cờ rất quan trọng như một cách để ghi nhớ cấu
hình. Trong mô hình xe hơi, cờ có thể nhớ loại xe, tay lái trái /
phải, đèn bật / tắt, cửa đóng / mở, ghế có thể nhìn thấy / ẩn, hành
khách có mặt, hướng đánh lái của bánh xe.
! Tính chiều rộng và cờ!Calculate widths
and flagsIF A<0.75
THEN
wid=0.75:bed=11
ENDIF
IF A>0.76 THEN
wid=0.90:bed=12
ENDIF
IF A>0.91 THEN
wid=1.35:bed=21
ENDIF
IF A>1.36THEN
wid=1.50:bed=22
ENDIF
HOTSPOT2 wid,0
HOTSPOT2 wid,len HOTSPOT2
wid/2,len/2

50 Object Making with ArchiCAD


Chapter 4: Practical Uses for GDL

These last few hotspots are placed at the actual corners of the
bedas a result of the IF statements. Next, it is time to draw the
actual bed object.Một vài điểm nóng cuối cùng này được đặt
ở các góc thực tế của giường do kết quả của các câu lệnh IF.
Tiếp theo, đó là thời gian để vẽ đối tượng giường thực tế.
RECT2 0,0, wid,len !Main Bed shape
!Pillows
IF bed=11 OR bed=12 THEN !SingleADD2
wid/2, 0.2
RECT2 -0.35,-0.15, 0.35, 0.15 !pillow
DEL 1
ENDIF
IF bed=21 OR bed=22 THEN !DoubleADD2
wid/4, 0.2
RECT2 -0.32,-0.15, 0.32, 0.15 !pillow
ADD2 wid/2, 0
RECT2 -0.32,-0.15, 0.32, 0.15 !pillow
DEL 2
ENDIF
We use the flag (11, 12, 21, 22) to decide how to lay out the
pillows.Notice that by using OR, we can make the IF statement
more interesting. We use the parameter of ‘wid’ to know where to
place the pillow. In this case, we have a fixed size for pillows.
Check by clicking on the 2D view frequently to see how the
script is working. Chúng tôi sử dụng cờ (11, 12, 21, 22) để quyết
định cách xếp gối. Lưu ý rằng bằng cách sử dụng OR, chúng ta
có thể làm cho câu lệnh IF thú vị hơn. Chúng tôi sử dụng tham
số là ‘wid’ để biết vị trí đặt gối. Trong trường hợp này, chúng tôi
có một kích thước cố định cho gối. Kiểm tra bằng cách nhấp vào
chế độ xem 2D thường xuyên để xem tập lệnh đang hoạt động
như thế nào.
You will notice that some lines of the script are indented. This
makes it easier to read. Two good rules are to indent cursor
movements, and to indent the lines following an IF... THENline.
If you haven’t saved already, this is a good time to save.Bạn sẽ nhận
thấy rằng một số dòng của script bị thụt vào. Điều này làm cho nó dễ
đọc hơn. Hai quy tắc tốt là thụt lề các chuyển động của con trỏ và thụt
lề các dòng sau dòng IF ... THEN.
Nếu bạn chưa lưu, đây là thời điểm tốt để lưu.
Boolean choices – let the user decide Lựa chọn Boolean -
để người dùng quyết định
We could add sophistication and user friendliness such as
some turned down sheets and a head board. So create two
parameters, and make them of the sort ‘Boolean’. This governs
the making of abinary choice, an On/Off, Yes/No question.
You get a tick box.
Tick them in the ON condition. GDL sends the script a
result ofzero (OFF) or one (ON).
Lựa chọn Boolean - để người dùng quyết định
Chúng tôi có thể thêm sự tinh tế và thân thiện với người
dùng chẳng hạn như một số tờ giấy lộn và một bảng đầu.
Vì vậy, hãy tạo hai tham số và đặt chúng theo kiểu
‘Boolean’. Điều này chi phối việc thực hiện một lựa chọn
nhị phân, một câu hỏi Bật / Tắt, Có / Không. Bạn nhận
được một hộp đánh dấu.
Đánh dấu chúng trong điều kiện BẬT. GDL gửi kịch bản
kết quả bằng không (TẮT) hoặc một (BẬT).

Object Making with ArchiCAD


51
Chapter 4: Practical Uses for GDL

!Sheets
IF shbk=1 THEN
POLY2 4,1, !Poly2 is an alternativewid-0.4,0.4,!
Poly2 là một widget thay thế-0,4,0,4,
!to the cluster of LINE wid,0.8,!
đến cụm tiện ích LINE, 0,8,
!commands below! lệnh bên dưới
wid-0.4,0.8,
wid-0.4,0.4
! LINE2 wid-0.4,0.4,wid,0.8
! LINE2 wid-0.4,0.4,wid-0.4,0.8
! LINE2 wid-0.4,0.8,wid,0.8
LINE2 0,0.4,wid-0.4,0.4
LINE2 0,0.6,wid-0.4,0.6ELSE
LINE2 0,0.4, wid,0.4
LINE2 0,0.6, wid,0.6ENDIF
!Headboard and HotspotsIF hdbd
! Đầu giường và điểm phát sóng
NẾU hdbd
THEN
RECT2 0,0, 0.05,-0.05
RECT2 wid,0, wid-0.05,-0.05 RECT2 0.05,-
0.01,wid-0.05,-0.04HOTSPOT2 0,-0.05
HOTSPOT2 wid,-0.05ENDIF
In the case of the ‘shbk’ flag, you ask if it equals one. Since these
two flags ‘shbk’ and ‘hdbd’ can only be 0 or 1 (false or true), you can
write in a simpler way as shown for ‘hdbd’. ‘IF hdbd THEN’ means
that anything other than zero will be regarded as true.Trong
trường hợp cờ ‘shbk’, bạn hỏi nó có bằng một không. Vì hai cờ
‘shbk’ và ‘hdbd’ này chỉ có thể là 0 hoặc 1 (false hoặc true), bạn
có thể viết theo cách đơn giản hơn như được hiển thị cho ‘hdbd’.
‘IF hdbd THEN’ có nghĩa là bất kỳ điều gì khác 0 sẽ được coi là
đúng.
The outline of the turned sheet could either be written with a
series of LINE2 statements, or you could try your hand at a
POLY2 statement. You have to write the XY coordinates of the
points of the polygon using parameters where possible, and
you need to repeat the first point at the end of the XY list. This
ensuresthat the polygon closes up. The POLY2 statement is
followed by the number of points in the list, and a control
code of 1 (to draw the lines). A POLY2is cleaner code in that it
can write many or allof the lines you need in the one
command.Đường viền của tờ giấy đã lật có thể được viết
bằng một loạt câu lệnh LINE2 hoặc bạn có thể thử với câu
lệnh POLY2. Bạn phải viết tọa độ XY của các điểm của đa
giác bằng cách sử dụng các tham số nếu có thể và bạn cần lặp
lại điểm đầu tiên ở cuối danh sách XY. Điều này đảm bảo
rằng đa giác đóng lại. Theo sau câu lệnh POLY2 là số điểm
trong danh sách và mã điều khiển là 1 (để vẽ các đường).
POLY2 là mã sạch hơn ở chỗ nó có thể viết nhiều hoặc tất cả
các dòng bạn cần trong một lệnh.
If curiosity has not already driven you to try this, save the bed
object, place it in the floor plan, and practice stretching it,
backwards and forwards. See how it snaps from one size to
another. You could elaborate it further, giving the mattress
rounded corners (with ARC2), adding a footboard, and
perhaps adding a tiny circle at the most important stretchy
hotspot to makeit easier to pick up. This is like a small joystick
or 2D cursor.Nếu sự tò mò vẫn chưa thúc đẩy bạn thử cách
này, hãy cất đồ vật trên giường, đặt nó vào sơ đồ mặt bằng và
thực hành kéo căng nó, về phía sau và về phía trước. Xem
cách nó chuyển từ kích thước này sang kích thước khác. Bạn
có thể trau chuốt thêm, tạo các góc bo tròn cho nệm (với
ARC2), thêm bàn chân và có thể thêm một vòng tròn nhỏ tại
điểm nóng co giãn quan trọng nhất để dễ dàng lấy nệm hơn.
Điều này giống như một cần điều khiển nhỏ hoặc con trỏ 2D.

52 Object Making with ArchiCAD


Chapter 4: Practical Uses for GDL

CIRCLE2 A,0,0.01
Note that we have not set Pen color here as the user can do that
inthe settings box. The bed-object is transparent – you can see
otherobjects below it – but you could try making opaque ones
with fill patterns in later 2D scripts for which you certainly need
POLY2. Lưu ý rằng chúng tôi chưa đặt Màu bút ở đây vì người
dùng có thể thực hiện điều đó trong hộp cài đặt. Đối tượng giường
trong suốt - bạn có thể nhìn thấy các đối tượng khác bên dưới nó -
nhưng bạn có thể thử tạo các đối tượng mờ đục với các mẫu tô
trong các tập lệnh 2D sau này mà bạn chắc chắn cần POLY2.

Summary of GDL in this section Tóm tắt về


GDL trong phần này
– Useful 2D objects can be written entirely in GDL.Các đối
tượng 2D hữu ích có thể được viết hoàn toàn bằng GDL.
– The range of 2D GDL commands is small and simple.
– IFstatements are the first step to making an object ‘Smart’.Dãy
các lệnh GDL 2D nhỏ và đơn giản.
– Câu lệnh –IF là bước đầu tiên để làm cho một đối tượng trở nên
‘Thông minh’.
– Not all rules and choices need be in the user’s parameter
box.Some rules can be “manufacturer’s rules”.Không phải tất cả
các quy tắc và lựa chọn đều cần có trong hộp tham số của người
dùng. Một số quy tắc có thể là "quy tắc của nhà sản xuất".
– If the answer to a user’s question is ON or OFF, then use
aBoolean parameter.Nếu câu trả lời cho câu hỏi của người
dùng là BẬT hoặc TẮT, thì hãy sử dụng tham số Boolean.
– Stretchy Hotspots should be written before the
object.Stretchy Hotspots nên được viết trước đối tượng.
– Flags can be used to store characteristics of the object.Thẻ có
thể được sử dụng để lưu trữ các đặc điểm của đối tượng
– A Polygon is ‘cleaner code’ than a mass of lines and allows 2D
objects to be opaque.Một Đa giác là 'mã sạch hơn' so với một
khối lượng các đường và cho phép các đối tượng 2D không bị
mờ.

4.2 Let’s make a 3D Door Hãy làm


một cánh cửa 3D
We made a window earlier using the Slab tool. If this window
is stretched, the frame will be distorted. You need GDL to
build a window that will stretch but retain correct frame
dimensions. WithGDL you can also build in smart features
like glazing bar options, ironwork, etc. A door is very similar
to a window in the way it ismade, so let’s try one, and make it
possible to open and shut thedoor.Chúng tôi đã tạo một cửa
sổ trước đó bằng công cụ Slab. Nếu cửa sổ này bị kéo căng,
khung sẽ bị méo. Bạn cần GDL để tạo một cửa sổ sẽ kéo dài
nhưng vẫn giữ được kích thước khung hình chính xác. Với
GDL, bạn cũng có thể tích hợp các tính năng thông minh như
tùy chọn thanh kính, đồ sắt, v.v. Một cánh cửa rất giống với
cửa sổ theo cách nó được tạo ra, vì vậy hãy thử một cái để có
thể mở và đóng cửa.
Remember, the primary rule about doors/windows is that they
should be built flat on the floor, and that the floor surface – the
XYplane – represents the external face of the wall that the
window/ door will fit into. ‘A’ represents the width of the door and
‘B’ will be the height of the door – when it is upright in a
Wall.Hãy nhớ rằng, quy tắc cơ bản về cửa ra vào / cửa sổ là
chúng phải được xây dựng bằng phẳng trên sàn và bề mặt sàn -
mặt phẳng XY - đại diện cho mặt ngoài của bức tường mà cửa
sổ / cửa ra vào sẽ phù hợp. ‘A’ đại diện cho chiều rộng của cửa
và ‘B’ sẽ là chiều cao của cửa - khi nó thẳng đứng trong Tường.
From ArchiCAD, choose File>New Library Part>Door. (Note
that you can build the door as an Object first and transform
into a Doorlater.) We will build this door with BLOCK,
because it is easy to use. We will not bother with rebates at
this stage. Once you are more confident with GDL you can
add in these refinements. One thing we will do with this
exercise is to make a simple pop-upmenu – the key to making
GDL objects VERY user friendly.Từ ArchiCAD, chọn Tệp>
Phần Thư viện Mới> Cửa. (Lưu ý rằng bạn có thể xây dựng
cánh cửa dưới dạng Vật thể trước và biến đổi thành Cánh cửa
sau đó.) Chúng tôi sẽ xây dựng cánh cửa này bằng BLOCK, vì
nó rất dễ sử dụng. Chúng tôi sẽ không bận tâm với các khoản
giảm giá ở giai đoạn này. Khi bạn đã tự tin hơn với GDL, bạn
có thể bổ sung các sàng lọc này. Một điều chúng ta sẽ làm với
bài tập này là tạo một menu bật lên đơn giản - chìa khóa để
làm cho các đối tượng GDL RẤT thân thiện với người dùng.

Object Making with ArchiCAD


53
Chapter 4: Practical Uses for GDL

Build the door frame Dựng khung cửa


First make some parameters for frame width, frame depth and
frame material. In this example, the parameter box is working
in millimeters. Use whatever suits you, but remember – scripts
are ‘hard coded’. If they are not parametric, they must be in meters
(orin imperial with foot and inch signs). Then type in a simple
script for the frame. Đầu tiên hãy tạo một số thông số về chiều
rộng khung hình, chiều sâu khung hình và chất liệu khung hình.
Trong ví dụ này, hộp tham số đang hoạt động tính bằng milimét.
Hãy sử dụng bất kỳ thứ gì phù hợp với bạn, nhưng hãy nhớ - các
tập lệnh là 'mã cứng'. Nếu chúng không phải là tham số, chúng
phải được tính bằng mét (hoặc theo hệ Anh với các ký hiệu foot
và inch). Sau đó, nhập một tập lệnh đơn giản cho khung.

!Simple Door
!Frame
MATERIAL fmat
ADDx -A/2
BLOCK fwid,B,fdep !left frame stileDEL 1
ADDx A/2-fwid
BLOCK fwid,B,fdep !right frame stileDEL 1
ADD -A/2,B-fwid,0
BLOCK A,fwid,fdep !door head
DEL 1
If you know precisely what door you want and how big it is,
you may be tempted to write it out in dimensions, not
parameters. Butwhen you get more committed to the idea of
your objects being ‘investment objects’, you will always prefer to
write in parametersthan in dimensions.Nếu bạn biết chính xác
cánh cửa bạn muốn và độ lớn của nó, bạn có thể bị cám dỗ để
viết nó ra bằng kích thước chứ không phải thông số. Nhưng khi
bạn cam kết hơn với ý tưởng về các đối tượng của bạn là "đối
tượng đầu tư", bạn sẽ luôn thích viết bằng tham số hơn là kích
thước.
BLOCK is always built from the near left corner, so when you
move the 3D cursor, you need to make adjustments, by
deductingthe frame width. It is easier if you make each part of
the frame anduse DELto get back to the origin before doing the
next part.BLOCK luôn được xây dựng từ góc gần bên trái, vì
vậy khi bạn di chuyển con trỏ 3D, bạn cần thực hiện các điều
chỉnh, bằng cách trừ đi chiều rộng khung. Sẽ dễ dàng hơn nếu
bạn tạo từng phần của khung và sử dụng DEL để quay lại điểm
gốc trước khi thực hiện phần tiếp theo.
54 Object Making with ArchiCAD
Chapter 4: Practical Uses for GDL

Now make the door


Now you can add in parameters for the door – thickness,
material, and opening angles. It is useful to have 2D and 3D
opening angles independent. Bây giờ bạn có thể thêm các thông
số cho cửa - độ dày, vật liệu và góc mở. Sẽ rất hữu ích nếu có
các góc mở 2D và 3D độc lập.

!Door
IF dang3<0 THEN dang3=0 IF
dang3>90 THEN dang3=90
LET dwid=A-fwid*2 !Door width LET
dhit=B-fwid !Door height
MATERIAL dmat
ADDx dwid/2 !Move to right hand frameROTy
180-dang3 !Rotate door
ADDz -dthk !Settle it into rebateBLOCK
dwid,dhit,dthk
DEL 3
It is a good idea to keep the BLOCK command simple by
defining the value of Door width and Door height beforehand.
This is not important for the simple flush door – but it makes life
much easier if you want to make a panelled door later.Bạn nên
giữ lệnh BLOCK đơn giản bằng cách xác định trước giá trị của
Chiều rộng cửa và Chiều cao cửa. Điều này không quan trọng
đối với cửa xếp đơn giản - nhưng nó giúp cuộc sống dễ dàng
hơn nhiều nếu sau này bạn muốn làm cửa có vách ngăn.
The use of the LET command is voluntary. If you write ‘dwid=A-
fwid*2’ that is not a matter of fact – it is a Command for ‘dwid’ to
have a new value. By putting LET in front of it, you are making
itplain that you are issuing a command. The GDL interpreter is
not worried whether you use LET or not – but it is easier for the
human reader to understand it. If you were to read the script
aloud, you would pronounce the equal sign (=) as ‘become’, as
in‘LET dhit become B-fwid’.Việc sử dụng lệnh LET là tự nguyện. Nếu
bạn viết ‘dwid = A- fwid * 2’ thì đó không phải là vấn đề thực tế - đó là Lệnh
để ‘dwid’ có giá trị mới. Bằng cách đặt LET trước nó, bạn đang làm cho nó rõ
ràng rằng bạn đang ra một lệnh. Trình thông dịch GDL không lo lắng về việc
bạn có sử dụng LET hay không - nhưng người đọc con người sẽ hiểu nó dễ
Object Making with dàng hơn. Nếu bạn đọc to đoạn script, bạn sẽ phát âm dấu bằng (=) là ‘trở
ArchiCAD thành’, như trong ‘LET dhit trở thành B-fwid’.
The door needs to hinge off one frame. It is a house rule in
GDL that doors hinge off the right-hand frame unless they are
mirrored.For the door to hinge correctly, you must move the 3D
cursor to the right hand frame and build the door from that
point. This is much more complicated than doing it from the
left frame because the BLOCK command always grows in a
rightward direction. To hang correctly, this door needs to
appear to be growing in a leftward
direction. Therefore, rotate it by ‘-
dang3’, and it will growout through
the frame in diametrically the
wrong direction. Now add 180˚ to
the angle so it becomes a rotation of
‘180-dang3’ and it finishes in the
right direction. You have to learn
little tricks like thiswhen using
GDL. Play with the angles to
understand this process. You need
one small ADDZto let the door ‘sink’
into the rebate.Cánh cửa cần phải
thoát ra khỏi một khung. Quy tắc gia
đình trong GDL là cửa xoay ra khỏi
khung bên phải trừ khi chúng được
phản chiếu. Để cánh cửa có bản lề
chính xác, bạn phải di chuyển con trỏ
3D sang khung bên phải và xây dựng
cánh cửa từ điểm đó. Điều này phức
tạp hơn nhiều so với thực hiện từ
khung bên trái vì lệnh BLOCK luôn
phát triển theo hướng sang phải. Để
treo đúng cách, cánh cửa này cần
phải phát triển theo hướng bên trái.
Do đó, hãy xoay nó theo ‘-dang3’, và
nó sẽ phát triển qua khung theo
đường kính theo hướng sai. Bây giờ,
hãy thêm 180˚ vào góc để nó trở
thành một vòng quay ‘180-dang3’ và
nó kết thúc theo đúng hướng. Bạn
phải học những thủ thuật nhỏ như thế
này khi sử dụng GDL. Chơi với các
góc độ để hiểu quá trình này. Bạn
cần một ADDZ nhỏ để cho cánh cửa
"chìm" vào khoản giảm giá.

55
Chapter 4: Practical Uses for GDL

When the door is in a wall, you will be able to use the Mirror or
Rotate function to change the way it will turn. In a later
chapter, we will make elements using PRISM, and you would
not have to do such mental gymnastics with PRISM– because
you can make itgrow in a leftward direction from the hinging
edge.Khi cửa ở trong tường, bạn sẽ có thể sử dụng chức năng
Gương hoặc Xoay để thay đổi cách quay của cửa. Trong chương
sau, chúng tôi sẽ tạo các yếu tố bằng cách sử dụng PRISM và
bạn sẽ không phải thực hiện các bài tập thể dục tinh thần như
vậy với PRISM - bởi vì bạn có thể làm cho nó phát triển theo
hướng trái từ rìa bản lề.
It is the IFstatement that allows GDL to be smart, so for a door,
thefirst smart thing we can do is to stop the door being turned
so that the hinge would break. GDL models do not have
gravity or collision protection, so some error correcting IF
statements will save your door from ‘breaking’. Below is the door
in 3D, half open.It is still on the ground, but will be upright
when placed in a wall.Đó là câu lệnh IF cho phép GDL thông
minh, vì vậy đối với một cánh cửa, điều thông minh đầu tiên
chúng ta có thể làm là ngăn cánh cửa bị xoay để bản lề bị gãy.
Các mô hình GDL không có khả năng bảo vệ trọng lực hoặc
va chạm, vì vậy một số câu lệnh IF sửa lỗi sẽ giúp cửa của
bạn không bị ‘vỡ’. Dưới đây là cánh cửa ở dạng 3D, mở một
nửa. Nó vẫn nằm trên mặt đất, nhưng sẽ thẳng đứng khi được
đặt vào tường.

The Door needs a 2D symbol Cửa cần có biểu tượng 2D


Before you can place it in the ArchiCAD environment, you
need togive the door a 2D symbol. Firstly, it is easiest to use the
PROJECT2 command to generate the symbol. The syntax is
PROJECT2 view_type, camera_angle, drawing_method.Trước
khi bạn có thể đặt nó trong môi trường ArchiCAD, bạn cần đặt
cho cánh cửa một biểu tượng 2D. Đầu tiên, cách dễ nhất là sử
dụng lệnh PROJECT2 để tạo biểu tượng. Cú pháp là PROJECT2
view_type, camera_angle, draw_method.
Remember that PROJECT2tells GDL to draw in 2D whatever it
finds in 3D. Please check in the corresponding chapter of the
GDLReference Guide and you will see that PROJECT2 is
remarkably versatile, allowing you to choose a viewtype that
sees the object ina huge variety of angles – plan, elevation and
various forms of axonometric. The camera angle is normally
270˚ for objects, and 90˚ for door/window objects. The
drawing method is either wireline(1) or hidden line
analytic(2).
The PROJECT2 we used for the simple chair drew the chair in
Plan. For a door or window we need to draw a view of the door
asif the camera was placed at 90 degrees and viewing the
doorset in Elevation, looking at the head of the window. It also
needs to viewthe doorhead so that the external wall is the top
of the drawing.Hãy nhớ rằng PROJECT2 yêu cầu GDL vẽ ở
dạng 2D bất cứ thứ gì nó tìm thấy ở dạng 3D. Vui lòng kiểm
tra chương tương ứng của Hướng dẫn Tham khảo GDL và bạn
sẽ thấy rằng PROJECT2 rất linh hoạt, cho phép bạn chọn một
kiểu xem có thể nhìn thấy đối tượng ở nhiều góc độ khác nhau
- mặt bằng, độ cao và các dạng axonometric khác nhau. Góc
camera thông thường là 270˚ đối với các đối tượng và 90˚ đối
với các đối tượng cửa / cửa sổ. Phương pháp vẽ là phân tích
đường thẳng (1) hoặc đường ẩn (2).
PROJECT2 mà chúng tôi đã sử dụng cho chiếc ghế đơn giản
đã vẽ chiếc ghế trong Kế hoạch. Đối với cửa ra vào hoặc cửa
sổ, chúng ta cần vẽ khung nhìn của cửa như thể máy ảnh được
đặt ở góc 90 độ và xem bộ cửa ở Độ cao, nhìn vào đầu cửa sổ.
Nó cũng cần xem đầu cửa sao cho bức tường bên ngoài là
đỉnh của bản vẽ.

56 Object Making with ArchiCAD


Chapter 4: Practical Uses for GDL

!Simple Doorset 2D script


ROT2 180 !turns camera the right way upPROJECT2
4,90,1 !views side view from 90˚ DEL 1 !back to origin
The ROT2command turns the camera the right way up. Then
thePROJECT2 command draws the doorset, and by doing it in
wireframe, the frame is clearly visible. Lệnh ROT2 quay máy
ảnh lên đúng hướng. Sau đó, lệnh PROJECT2 vẽ bộ cửa và
bằng cách thực hiện nó trong khung dây, khung được nhìn thấy
rõ ràng.
Make sure the door works Đảm bảo cửa hoạt động
If you haven’t already saved, this is the time to save. The door
will be saved as a .DOR file. If you built the door as a .GSM
object file, go to File>OpenLibrary Part>Open Object as Door,
and then save;it will now be a door.Nếu bạn chưa lưu, đây là lúc
để lưu. Cửa sẽ được lưu dưới dạng tệp .DOR. Nếu bạn đã tạo
cửa dưới dạng tệp đối tượng .GSM, hãy đi tới Tệp> Phần
OpenLibrary> Mở Đối tượng dưới dạng Cửa, rồi lưu; bây giờ
nó sẽ là một cánh cửa.
Return to the ArchiCAD project floor plan, draw a wall. Click on
theDoor tool and place your new door. The one you have just
saved will be the first door that gets placed. Check that it works
in 3D view. Try altering its settings. You can move the frame in
and out ofthe opening. You can open and shut the door. You
will find that only the 3D doorswing is working. We haven’t
written the 2D yet.Quay lại sơ đồ mặt bằng dự án ArchiCAD, vẽ
mặt tường. Nhấp vào công cụ Cửa và đặt cánh cửa mới của bạn. Cái
bạn vừa lưu sẽ là cánh cửa đầu tiên được đặt. Kiểm tra xem nó có
hoạt động ở chế độ xem 3D không. Hãy thử thay đổi cài đặt của nó.
Bạn có thể di chuyển khung vào và ra khỏi lỗ mở. Bạn có thể mở và
đóng cửa. Bạn sẽ thấy rằng chỉ có cánh cửa 3D đang hoạt động.
Chúng tôi chưa viết 2D.
You may also wonder how the hole in the wall is drilled. GDL
cutsa rectangular hole in the wall, ‘A’ in width and ‘B’ in height.
Whenyou get further with GDL, you will find out how to cut
holes of more interesting shapes using the WALLHOLE
command.Bạn cũng có thể thắc mắc làm thế nào lỗ trên tường
được khoan. GDL cắt một lỗ hình chữ nhật trên tường, chiều
rộng là ‘A’ và chiều cao là ‘B’. Khi bạn tiến xa hơn với GDL,
bạn sẽ tìm ra cách cắt các lỗ có hình dạng thú vị hơn bằng cách
sử dụng lệnh WALLHOLE.
Improve the 2D performance of the door Cải thiện hiệu
suất 2D của cửa
With PROJECT2, the 2D symbol can only show what the 3D
object is doing, and for more powerful work, we would like to
show the doorswing differently between 2D and 3D. In plan
drawing, architects usually draw a doorswing in the open
Object Making with
ArchiCAD
position,but in 3D modelling, it is often desired to leave the
door shut. Với PROJECT2, biểu tượng 2D chỉ có thể hiển thị
đối tượng 3D đang làm gì và để làm việc hiệu quả hơn, chúng
tôi muốn hiển thị các cánh cửa khác nhau giữa 2D và 3D.
Trong bản vẽ mặt bằng, kiến trúc sư thường vẽ một cánh
cửa ở vị trí mở, nhưng trong mô hình 3D, người ta thường
muốn cánh cửa đóng lại.
!Simple Door
!ROT2 180 !these commands disabled ! các lệnh này
bị vô hiệu hóa
!PROJECT2 4,90,1 !but retained as comments ! nhưng được giữ
lại dưới dạng nhận xét
!DEL 1
!Frame
ADD2 -A/2,0
RECT2 0,0,fwid,-fdep !left stileDEL 1
ADD2 A/2,0
RECT2 0,0,-fwid,-fdep !right stileDEL 1

57
Chapter 4: Practical Uses for GDL

!Door
IF dang2<0 THEN dang2=0 IF
dang2>90 THEN dang2=90
dwid=A-fwid*2 !Door widthADD2
dwid/2,0
ROT2 180-dang2 RECT2
0,0,dwid,dthk
ARC2 0,0,dwid,0,dang2DEL 2
Whenever you can, use the same algorithm as in the 3D script –
itmay make the script longer, but it’s easier to write. Start with
the frames, and finish with the script for the door – using the
same little 180˚ trick used to get the door to swing the right
way.Bất cứ khi nào bạn có thể, hãy sử dụng thuật toán tương tự
như trong tập lệnh 3D - nó có thể làm cho tập lệnh dài hơn
nhưng dễ viết hơn. Bắt đầu với các khung và kết thúc với kịch
bản cho cánh cửa - sử dụng cùng một mẹo nhỏ 180˚ được sử
dụng để giúp cánh cửa xoay đúng cách.
Because we want to be sure this is correct, we keep the
PROJECT2 command working and visible. Indeed, if you write
in a temporary Pen color (e.g., PEN 1in front of the PROJECT2
andPEN 10 in front of the rest of the script), the different pen
colors will show the 2D symbol building up. Because we are
looking at the door from the 90˚ camera angle, the frames end
up in the ‘negative-Y’ side. So, most Y values in the script are
minus. Where you had BLOCK, you replace it with RECT2.
Where you had ADD, you replace it with ADD2. Where you had
‘dang3’ you replace with‘dang2’.Bởi vì chúng tôi muốn chắc chắn
rằng điều này là chính xác, chúng tôi giữ cho lệnh PROJECT2 hoạt
động và hiển thị. Thật vậy, nếu bạn viết bằng Màu bút tạm thời (ví dụ:
PEN 1 ở phía trước PROJECT2 và PEN 10 ở phía trước phần còn lại
của tập lệnh), các màu bút khác nhau sẽ hiển thị ký hiệu 2D đang hình
thành. Bởi vì chúng tôi đang nhìn vào cửa từ góc máy ảnh 90,, các
khung hình kết thúc ở phía ‘âm-Y’. Vì vậy, hầu hết các giá trị Y trong
tập lệnh là số trừ. Trường hợp bạn có BLOCK, bạn thay thế nó bằng
RECT2. Trường hợp bạn đã ADD, bạn thay thế nó bằng ADD2. Nơi
bạn có ‘dang3’, bạn thay thế bằng ‘dang2’.
When you have finished working, you can convert the PROJECT2
routine into a series of comments. Remove the PEN
commands. Leave these to the user to supply in the settings
box of the door. Khi bạn làm việc xong, bạn có thể chuyển
đổi PROJECT2
thường xuyên thành một loạt các bình luận. Loại bỏ các
lệnh PEN. Để những thứ này cho người dùng cung cấp
trong hộp cài đặt của cửa.
Save the Door object, return to the floor plan and admire
yourhandiwork. You should now be able to set different
opening angles for 2D and 3D. Lưu đối tượng Cửa, quay
lại sơ đồ mặt bằng và chiêm ngưỡng tác phẩm thủ công
của bạn. Bây giờ bạn có thể đặt các góc mở khác nhau
cho 2D và 3D.
Scale Sensitive 2D symbol – with Global Variables Biểu
tượng 2D nhạy cảm với tỷ lệ - với các biến toàn cầu
Architects also like 2D objects to be scale sensitive. At 1:100,
the door may be a line, and the frame a simple shape, at 1:20,
the doorshould be shown in detail, with a rebated doorframe. It
is possible for the GDL object to know the current scale of the
drawing and tochange accordingly. Các kiến trúc sư cũng thích
các đối tượng 2D nhạy cảm với tỷ lệ. Ở tỷ lệ 1: 100, cánh cửa có
thể là một đường thẳng và khung có hình dạng đơn giản, ở tỷ lệ
1:20, cánh cửa phải được thể hiện chi tiết, với khung cửa được
làm lại. Đối tượng GDL có thể biết tỷ lệ hiện tại của bản vẽ và
thay đổi cho phù hợp.
ArchiCAD keeps an active memory of everything that is going
on in the current project. GDL can interrogate this memory and
makeuse of it. The current Drawing Scale, the current
Northpoint, the object’s position in the Floor plan, the current
Story, the current Wall thickness, etc. These ‘Global Variables’ are
described in Appendix A of the GDL Reference
Manual.ArchiCAD lưu giữ một bộ nhớ hoạt động về mọi thứ đang
diễn ra trong dự án hiện tại. GDL có thể thẩm vấn bộ nhớ này và
sử dụng nó. Tỷ lệ bản vẽ hiện tại, điểm Bắc hiện tại, vị trí của đối
tượng trong Sơ đồ tầng, Câu chuyện hiện tại, độ dày của tường
hiện tại, v.v. Những 'Biến toàn cục' này được mô tả trong Phụ lục
A của Sổ tay Tham khảo GDL.

58 Object Making with ArchiCAD


Chapter 4: Practical Uses for GDL

Let’s just consider drawing scale. This is called GLOB_SCALE or


A_(A-underscore) for short. If the drawing is 1:100, A_will be
100. If it is 1/8 inch to 1 foot, it will be 96. So we can design
a better shape for the doorframe that will look detailed at
1:50 or larger. Let’s assume that the rebate is 12 mm. You can
now write apolygon to draw a realistic looking door frame.
Polygons (and Prisms in 3D) are hard work, but if you sketch
them out first, and think in terms of parameters, it is not so
difficult.Hãy chỉ xem xét tỷ lệ bản vẽ. Đây được gọi là
GLOB_SCALE hoặc
A_ (A-gạch dưới) viết tắt. Nếu hình vẽ là 1: 100, A_ sẽ là
100. Nếu nó là 1/8 inch đến 1 foot, nó sẽ là 96. Vì vậy,
chúng tôi có thể thiết kế một hình dạng tốt hơn cho khung
cửa trông chi tiết ở tỷ lệ 1:50 hoặc lớn hơn. Giả sử rằng mức
giảm giá là 12 mm. Bây giờ bạn có thể viết một đa giác để vẽ
một khung cửa trông thực tế. Đa giác (và Lăng kính trong
3D) là công việc khó khăn, nhưng nếu bạn phác thảo chúng
trước và suy nghĩ về các thông số, thì nó không quá khó.
!Simple Door - 2D script
!ROT2 180 !these commands disabled
!PROJECT2 4,90,1 !but retained as comments
!DEL 1
!Frame
ADD2 -A/2,0
LET rb=0.012 !RebateIF
GLOB_SCALE>51 THEN
RECT2 0,0,fwid,-fdep !left stile simpleELSE
POLY2 7,5, !left stile complex0,0,
0,-fdep, fwid+rb,-
fdep,fwid+rb,-dthk,
fwid,-dthk, fwid,0,
0,0
ENDIF
DEL 1
ADD2 A/2,0
IF GLOB_SCALE>51 THEN
RECT2 0,0,-fwid,-fdep !right stile simpleELSE
POLY2 7,5, !right stile complex0,0,
0,-fdep,
-fwid-rb,-fdep,
-fwid-rb,-dthk,
-fwid,-dthk,
-fwid,0,0,0
ENDIF
DEL 1

Object Making with ArchiCAD


59
Chapter 4: Practical Uses for GDL

As you work through this, have the 2D View window open,


and keep checking that the frames are turned the right way.
You can change the current scale by activating the scale button
at the bottom left of the 2D View window. You can now finish
by providing an alternative symbol for the door itself – the
rectanglecan now be used for 1:50 or larger, and a simple line
for smaller drawing scales.Khi bạn làm việc này, hãy mở cửa sổ
Chế độ xem 2D và tiếp tục kiểm tra xem các khung có được
xoay đúng cách hay không. Bạn có thể thay đổi tỷ lệ hiện tại
bằng cách kích hoạt nút tỷ lệ ở dưới cùng bên trái của cửa sổ
Chế độ xem 2D. Bây giờ bạn có thể hoàn thành bằng cách cung
cấp một biểu tượng thay thế cho chính cánh cửa - hình chữ nhật
hiện có thể được sử dụng cho 1:50 hoặc lớn hơn và một đường
đơn giản cho tỷ lệ bản vẽ nhỏ hơn.
!Door
IF dang2<0 THEN dang2=0 IF
dang2>90 THEN dang2=90
dwid=A-fwid*2 !Door width
ADD2 dwid/2,0 !Move to right hand frameROT2 180-dang2
!Hinge the door
IF GLOB_SCALE>51 THEN
LINE2 0,0,dwid,0 !Simple line
ELSE
RECT2 0,0,dwid,dthk !RectangleENDIF
ARC2 0,0,dwid,0,dang2 !Door swingDEL 2
Master Script is useful here Master Script rất hữu ích ở đây
Notice again that you have to tell it again what ‘dwid’ (door
width)is. This is because 2D and 3D scripts do not talk to each
other. If you placed values for ‘rb’ (rebate), ‘dwid’ (door width)
and the error correcting routines into the Master Script, this
could save yousome typing, centralize some of your fixed
parameters, and informboth the 2D and the 3D scripts of the
correct values.Lưu ý một lần nữa rằng bạn phải nói lại cho nó
biết ‘dwid’ (chiều rộng cửa) là gì. Điều này là do các kịch bản
2D và 3D không nói chuyện với nhau. Nếu bạn đã đặt các giá trị
cho 'rb' (giảm giá), 'dwid' (chiều rộng cửa) và quy trình sửa lỗi
vào Master Script, điều này có thể giúp bạn tiết kiệm một số
thao tác nhập, tập trung một số thông số cố định của bạn và
thông báo cho cả 2D và Tập lệnh 3D của các giá trị chính xác.
Build a pop-up menu with the VALUES command Xây dựng
menu bật lên bằng lệnh VALUES
For the 3D object door object, you would like to have a
choice ofdoor styles, but how does one ask the user? In the
days of ArchiCAD 5.0, one had to have style 1, style 2, etc.
Now you can create a pop-up menu that allows the user to
choose by name. Đối với đối tượng cửa vật thể 3D, bạn
muốn có sự lựa chọn về kiểu dáng cửa, nhưng làm thế nào
để người dùng yêu cầu? Trong những ngày của ArchiCAD
5.0, người ta phải có kiểu 1, kiểu 2, v.v. Bây giờ bạn có thể
tạo menu bật lên cho phép người dùng chọn theo tên.
You can even have a visual display that shows each door as a
picture. You must have noticed this in the new Door objects in
theArchiCAD 6.5 door library.Bạn thậm chí có thể có một
màn hình hiển thị trực quan hiển thị mỗi cánh cửa như một
bức tranh. Bạn hẳn đã nhận thấy điều này trong các đối tượng
Cửa mới trong thư viện cửa ArchiCAD 6.5.
We can make a start here by offering a simple choice of a solid
ora panelled door.Chúng ta có thể bắt đầu ở đây bằng cách
đưa ra một sự lựa chọn đơn giản là cửa đặc hoặc cửa ốp.
First make a new parameter. Let’s call it ‘doortyp’. As the pop-up
menu will offer a choice of door styles in words, select the
parameter type ‘Abc’ which will be for text. Make a new
parameterfor panelling material, called ‘panmat’.Đầu tiên hãy tạo một
tham số mới. Hãy gọi nó là 'doortyp'. Vì menu bật lên sẽ cung cấp lựa chọn
kiểu cửa bằng từ, hãy chọn loại tham số ‘Abc’ sẽ dành cho văn bản. Tạo một
tham số mới cho vật liệu ốp, được gọi là 'panmat'.

60 Object Making with ArchiCAD


Chapter 4: Practical Uses for GDL

Now go to the Parameters Script. This is where you build


pop-upmenus. Type in a VALUES command, starting with the
name of the parameter (in quotes), followed by a list of the
menu choices(also in quotes). Separate the choices by
commas.
Bây giờ hãy chuyển đến Tập lệnh tham số. Đây là nơi bạn
xây dựng các menu bật lên. Nhập lệnh VALUES, bắt đầu
bằng tên của tham số (trong dấu ngoặc kép), sau đó là danh
sách các lựa chọn menu (cũng trong dấu ngoặc kép). Phân
tách các lựa chọn bằng dấu phẩy.
VALUES ‘doortyp’ ‘Flush Door’, ‘Panelled Door’

It may take a few seconds for GDL to notice, but after a


while, ‘doortyp’ will realize that it has a pop-up menu and will
allow youto choose one or the other. The little triangular
symbol will appearat the right of the parameter entry. As the
choice of door style is one of the most important parameters
of the door, you could clickon the ‘Bold’ button to make the font
heavier, and you could use the little arrows at the left to push
the parameter to the top of the list. Then you should make a
parameter for Panelling Material.Có thể mất vài giây để GDL
nhận thấy, nhưng sau một lúc, ‘doortyp’ sẽ nhận ra rằng nó có
một menu bật lên và sẽ cho phép bạn chọn cái này hoặc cái
kia. Biểu tượng hình tam giác nhỏ sẽ xuất hiện ở bên phải của
mục nhập tham số. Vì lựa chọn kiểu cửa là một trong những
thông số quan trọng nhất của cửa, bạn có thể nhấp vào nút 'In
đậm' để làm cho phông chữ nặng hơn và bạn có thể sử dụng
các mũi tên nhỏ ở bên trái để đẩy thông số lên đầu danh sách.
Sau đó, bạn nên tạo một tham số cho Paneling Material.
This pop-up menu brings two major benefits – the object is
more user friendly and it is impossible for the user to make a
spelling error or choose a silly option. Before we get too
confident, we have to put this pop-up menu to good use.
Return to the 3D scriptand make the choice work.Menu bật
lên này mang lại hai lợi ích chính - đối tượng thân thiện hơn
với người dùng và người dùng không thể mắc lỗi chính tả
hoặc chọn một tùy chọn ngớ ngẩn. Trước khi quá tự tin,
chúng ta phải đưa menu bật lên này để sử dụng tốt. Quay lại
kịch bản 3D và thực hiện lựa chọn hoạt động.
Object Making with ArchiCAD
61
Chapter 4: Practical Uses for GDL

You only need a simple IFstatement to help the 3D Script


decide which door to display. Let’s take the original 3D text for
the door and add in the IF-statements and build a script for a
panelled door.Bạn chỉ cần một câu lệnh IF đơn giản để giúp 3D
Script quyết định cửa nào sẽ hiển thị. Hãy lấy văn bản 3D ban
đầu cho cánh cửa và thêm vào các câu lệnh IF và xây dựng một
tập lệnh cho một cánh cửa được ốp.
!Door - 3D Script
IF dang3<0 THEN dang3=0 IF
dang3>90 THEN dang3=90
dwid=A-fwid*2 !Door width dhit=B-
fwid !Door height
MATERIAL dmat
ADDx dwid/2 !Move to right hand frameROTy
180-dang3 !Rotate door
ADDz -dthk !Settle it into rebate
IF doortyp='Flush Door' THENBLOCK
dwid,dhit,dthk
ENDIF
IF doortyp='Panelled Door' THENBLOCK
dwid/6,dhit,dthk !Left ADDx dwid*5/6
BLOCK dwid/6,dhit,dthk !RightDEL 1
ADD dwid/6,dhit-dwid/6,0
BLOCK dwid*4/6,dwid/6,dthk !ToprailDEL 1
ADDx dwid/6
BLOCK dwid*4/6,dwid/4,dthk !FootrailDEL 1
MATERIAL panmat
ADD dwid/6,dwid/4,dthk/4
BLOCK dwid*4/6,dhit-dwid/4-dwid/6,dthk/2DEL 1
ENDIF
DEL 3
If you are sharp eyed, you will look at the script above and
see that we could simply have used IF... ELSE... ENDIF,
because we only have a choice of two styles. And you are
right. This is a simple door; but when you build doors for
actual use, you may wish to have five or six styles. Some of
the door style choices in the ArchiCAD library run well into
double figures. It iseasier to have separate IF-statements for
each choice.Nếu bạn là người tinh mắt, bạn sẽ nhìn vào đoạn
script ở trên và thấy rằng chúng ta có thể đơn giản sử dụng IF
... ELSE ... ENDIF, bởi vì chúng ta chỉ có hai kiểu lựa chọn.
Và bạn nói đúng không. Đây là một cánh cửa đơn giản; nhưng
khi bạn xây dựng cửa để sử dụng thực tế, bạn có thể muốn có
năm hoặc sáu kiểu. Một số lựa chọn kiểu cửa trong thư viện
ArchiCAD chạy tốt thành các con số kép. Sẽ dễ dàng hơn nếu
có các câu lệnh IF riêng biệt cho mỗi lựa chọn.
You may also wonder how the script arrived at dividing the
door width into sixths, to arrive at the sizes of the vertical door
sections,compared with the panel size. This is another
example of Manufacturer’s rules. One manufacturer may have
several ways ofproportioning their doors. You may need a
style for each one.Nếu bạn là người tinh mắt, bạn sẽ nhìn vào
đoạn script ở trên và thấy rằng chúng ta có thể đơn giản sử
dụng IF ... ELSE ... ENDIF, bởi vì chúng ta chỉ có hai kiểu
lựa chọn. Và bạn nói đúng không. Đây là một cánh cửa đơn
giản; nhưng khi bạn xây dựng cửa để sử dụng thực tế, bạn có
thể muốn có năm hoặc sáu kiểu. Một số lựa chọn kiểu cửa
trong thư viện ArchiCAD chạy tốt thành các con số kép. Sẽ
dễ dàng hơn nếu có các câu lệnh IF riêng biệt cho mỗi lựa
chọn.
Finally, a door is incomplete without its ironwork, but that is
beyond the scope of this chapter. It could be scripted in with
thedoor, or if you had a set of door handles already built, it
could bebrought in as another object, using the CALL
command, and placed in the correct position on the door
Cuối cùng, một cánh cửa không hoàn thiện nếu không có đồ
sắt của nó, nhưng điều đó nằm ngoài phạm vi của chương
này. Nó có thể được viết theo tập lệnh với cánh cửa, hoặc
nếu bạn đã lắp sẵn một bộ tay nắm cửa, nó có thể được đưa
vào dưới dạng một đối tượng khác, sử dụng lệnh CALL và
được đặt vào đúng vị trí trên cánh cửa

62 Object Making with ArchiCAD


Chapter 4: Practical Uses for GDL

.
A first look at Property Scripting Cái nhìn đầu tiên về
Thuộc tính Scripting
When you do a listing of your building, an easy one line
commandwill help you. The DESCRIPTOR command describes
your object.Open the Properties script and try this easy script,
using the parameter ‘doortyp’, which was the user’s choice of door.
Khi bạn lập danh sách tòa nhà của mình, một lệnh đơn giản sẽ
giúp bạn. Lệnh DESCRIPTOR mô tả đối tượng của bạn. Mở tập
lệnh Thuộc tính và thử tập lệnh dễ dàng này, sử dụng tham số
‘doortyp’, là sự lựa chọn của người dùng.
DESCRIPTOR doortyp

Let’s finish the door Hãy hoàn thành cửa


If you are serious about doors, you can see that there are many
more things you could do. You could enter the manufacturer’s
serial codes for door type, introduce many variations on the
panelling solution, offer choices of ironwork, specify fire
resistance, kickplates or letter boxes and more. Nếu bạn thực
sự nghiêm túc về những cánh cửa, bạn có thể thấy rằng còn
nhiều điều bạn có thể làm. Bạn có thể nhập mã sê-ri của nhà
sản xuất cho loại cửa, giới thiệu nhiều biến thể về giải pháp
ốp, cung cấp các lựa chọn về đồ sắt, chỉ định khả năng chống
cháy, tấm đá hoặc hộp thư và hơn thế nữa.
If you want to build double doors or bifold doors, it would be
possible to build these into the same object – but then you
mightmake it less user friendly if it becomes excessively
complex. It is better to Save As... the door under a new name.
Save as a doubledoor, then using the same frame details,
provide the modified script for double doors – not forgetting
that you need to update the 2D script, too. Nếu bạn muốn xây
dựng cửa đôi hoặc cửa gấp đôi, có thể xây dựng chúng thành
cùng một đối tượng - nhưng sau đó bạn có thể làm cho nó trở
nên kém thân thiện hơn với người dùng nếu nó trở nên quá
phức tạp. Tốt hơn là Save As ... cánh cửa dưới một cái tên mới.
Lưu dưới dạng cửa đôi, sau đó sử dụng các chi tiết khung giống
nhau, cung cấp tập lệnh đã sửa đổi cho cửa đôi - đừng quên
rằng bạn cũng cần cập nhật tập lệnh 2D.
Preview window – get yourself an icon Cửa sổ xem
trước - tạo cho mình một biểu tượng
You must have noticed that most ArchiCAD Library parts have
nicepictorial icons – how do you get these for yourself? Set up a
nice 3D view of the object you have made, and photo-render
this, preferably into a window sized 128x128 pixels. You can
make it a bit larger, but keep it square. Select the image and
Copy; from the Library part parameter building box, click on
the button marked Preview Picture. Paste the image into that.
Save and Close it. Now reload the object, and you will have a
nice preview picture for the object, as well as an icon for it.
Bạn hẳn đã nhận thấy rằng hầu hết các phần của Thư viện
ArchiCAD đều có các biểu tượng hình ảnh đẹp mắt - làm cách
nào để bạn có được những biểu tượng này cho mình? Thiết lập
chế độ xem 3D đẹp mắt cho đối tượng bạn đã tạo và kết xuất ảnh
này, tốt nhất là trong một cửa sổ có kích thước 128x128 pixel.
Bạn có thể làm cho nó lớn hơn một chút, nhưng hãy giữ nó hình
vuông. Chọn hình ảnh và Sao chép; từ hộp xây dựng thông số
phần Thư viện, nhấp vào nút được đánh dấu Xem trước Hình
ảnh. Dán hình ảnh vào đó. Lưu và đóng nó. Bây giờ tải lại đối
tượng và bạn sẽ có một hình ảnh xem trước đẹp mắt cho đối
tượng, cũng như một biểu tượng cho nó.

Object Making with ArchiCAD


63
Chapter 4: Practical Uses for GDL

Summary of GDL in this section Tóm tắt về GDL trong phần này
– Doors and Windows must be built on the XY ground
plane.Doors và Windows phải được xây dựng trên mặt đất XY.
– The Origin should be at the center, lower sill or threshold.Nguồn
gốc phải ở trung tâm, ngưỡng cửa thấp hơn hoặc ngưỡng cửa.
– Hinging the door is not difficult – build the door from
thehinging point.Lắp cửa không khó - dựng cửa từ
điểm bản lề.
– Build error-correcting statements into the script.Xây dựng các
câu lệnh sửa lỗi vào tập lệnh.
– The 2D symbol can be made with PROJECT2, in Side
View.But a truly scripted 2D symbol may be more
powerful.Ký hiệu 2D có thể được tạo bằng PROJECT2,
trong Chế độ xem bên. Nhưng một biểu tượng 2D thực sự
được viết theo kịch bản có thể mạnh hơn.
– 2D symbols can adapt to the scale of the drawing if
it isscripted. Ký hiệu 2D có thể thích ứng với tỷ lệ
của bản vẽ nếu nó được viết theo kịch bản.
– Global Variables – very interesting! Look at Appendix A of
theGDl Reference Manual.Global Variables - rất thú vị! Xem
Phụ lục A của Sổ tay Tham khảo GDl.
– PRISMis more powerful than BLOCK.PRISM mạnh hơn BLOCK.
– Master Script can hold information and perform
errorcorrecting routines for both 2D and 3D.Master
Script có thể giữ thông tin và thực hiện các quy
trình sửa lỗi cho cả 2D và 3D.
– Pop-up menus are easy to build, user-friendly and
reduceerrors.Pop-up menu dễ xây dựng, thân thiện
với người dùng và giảm lỗi.
– Even simple objects can have a short Properties script.Ngay cả
những đối tượng đơn giản cũng có thể có một tập lệnh Thuộc
tính ngắn.
– Make a Preview picture. Tạo hình ảnh Xem trước.
64 Object Making with ArchiCAD
Chapter 5: The Power of

Chapter 5
The Power of PRISM
Sức mạnh của PRISM
We discover a 3D command that adds real power to GDL.

Chúng tôi phát hiện ra một lệnh 3D bổ sung sức mạnh thực tế cho
GDL.
Object Making with ArchiCAD
65
Chapter 5: The Power of PRISM

5.1 The Power of PRISM Sức mạnh


của PRISM
PRISMis the most versatile element in 3D GDL
PRISM là phần tử linh hoạt nhất trong 3D GDL
We have found that BLOCK is acceptable for building
elementary furniture and frames, but you rapidly discover that
BLOCK is too primitive for serious work. Apart from its rigid
shape, you have tomove the cursor to the location of the block,
and the block alwaysgrows from the near left corner. Many
objects have recognizableshapes or curves in them that
require you to draw their outline shape correctly. PRISMis the
answer.Chúng tôi nhận thấy rằng BLOCK có thể chấp nhận
được để xây dựng đồ nội thất và khung cơ bản, nhưng bạn
nhanh chóng phát hiện ra rằng BLOCK quá thô sơ cho các công
việc nghiêm túc. Ngoài hình dạng cứng nhắc của nó, bạn phải di
chuyển con trỏ đến vị trí của khối và khối luôn phát triển từ góc
gần bên trái. Nhiều đối tượng có hình dạng hoặc đường cong dễ
nhận biết yêu cầu bạn vẽ hình dạng đường viền của chúng một
cách chính xác. PRISM là câu trả lời.

Prisms can be multi-colored, bent, rounded, cut, drilled,


chamfered and hollowed out. They are quite useful.Lăng kính có
thể có nhiều màu, uốn cong, làm tròn, cắt, khoan, vát mép và làm
rỗng. Chúng khá hữu ích.
You can define the outline of a prism by listing the XY locations
ofits nodepoints. Although 0,0 might be one of its points, this is
not essential. Your cursor can remain at the origin and your
script can calmly draw prisms that are hundreds of meters
away because it isentering the precise XY locations of each
node.Bạn có thể xác định đường viền của lăng kính bằng cách
liệt kê các vị trí XY của các điểm nút của nó. Mặc dù 0,0 có
thể là một trong những điểm của nó, nhưng điều này không
cần thiết. Con trỏ của bạn có thể vẫn ở vị trí gốc và tập lệnh
của bạn có thể bình tĩnh vẽ các lăng kính cách xa hàng trăm
mét vì nó đang đi vào các vị trí XY chính xác của mỗi nút.
The code for many prisms can also be ‘stolen’ from ArchiCAD. Try
this next idea.Mã của nhiều lăng kính cũng có thể bị ‘đánh cắp’
từ ArchiCAD. Hãy thử ý tưởng tiếp theo này.

66 Object Making with ArchiCAD


Chapter 5: The Power of PRISM

This prism has been drawn out with the Slab tool in the
ArchiCADfloor plan. To illustrate how prisms work, the nodes
have been numbered in the order in which they were clicked.
There are 13 points if you include the first point twice – the idea
being that youfully close the prism by returning to the start.Hình
lăng trụ này đã được vẽ ra bằng công cụ Slab trong sơ đồ mặt bằng
ArchiCAD. Để minh họa cách hoạt động của lăng kính, các nút đã
được đánh số theo thứ tự mà chúng được nhấp vào. Có 13 điểm
nếu bạn bao gồm điểm đầu tiên hai lần - ý tưởng là bạn đóng hoàn
toàn lăng kính bằng cách quay lại điểm bắt đầu.
Now draw out a prism yourself of roughly the same shape
(no need to number the nodes). As a regular discipline, try to
draw slabs in the counterclockwise direction, because GDL is
happier working that way. Mathematically, counterclockwise is
a ‘positive’direction if you start trying to curve edges. Draw it so
that one of the points coincides with zero – the global
origin.Bây giờ bạn hãy tự vẽ một hình lăng trụ có hình dạng
gần giống (không cần đánh số các nút). Như một kỷ luật
thường xuyên, hãy cố gắng vẽ các phiến đá theo hướng
ngược chiều kim đồng hồ, vì GDL cảm thấy hạnh phúc hơn
khi làm việc theo cách đó. Về mặt toán học, ngược chiều kim
đồng hồ là hướng 'tích cực' nếu bạn bắt đầu cố gắng làm cong
các cạnh. Vẽ nó sao cho một trong những điểm trùng với
điểm 0 - điểm gốc toàn cục.

Instant GDL GDL tức thì


Everything in ArchiCAD is in fact GDL (under the surface).
You can click on anything in an ArchiCAD floor plan – wall,
roof, floor,mesh, even library part – and find out what its GDL
code is by dragging and dropping it into a GDL script window.
3D objects should be dragged into a 3D script window, and 2D
into 2D. Mọi thứ trong ArchiCAD trên thực tế là GDL (dưới bề
mặt). Bạn có thể nhấp vào bất kỳ thứ gì trong sơ đồ tầng
ArchiCAD - tường, mái, sàn, lưới, thậm chí cả phần thư viện -
và tìm hiểu mã GDL của nó bằng cách kéo và thả nó vào cửa sổ
tập lệnh GDL. Các đối tượng 3D phải được kéo vào cửa sổ kịch
bản 3D và 2D thành 2D.
Object Making with ArchiCAD
67
Chapter 5: The Power of PRISM

We can transform this slab to GDL immediately. From the File


menu, choose New Library part>Object, and arrange the 3D
script window in a narrow column on the right of the screen.
Rearrange the project floor plan so that it is occupying 2/3 of
the screen and is to the left, and overlapping the 3D script
window slightly. Now click on the slab and, holding it, simply
Drag it across and Drop it into the 3D script window. There is a
slight knack to this, so try it afew times if it does not work the
first time.Chúng tôi có thể chuyển đổi phiến này sang GDL ngay
lập tức. Từ menu Tệp, chọn phần Thư viện mới> Đối tượng và
sắp xếp cửa sổ tập lệnh 3D trong một cột hẹp ở bên phải màn
hình. Sắp xếp lại sơ đồ tầng của dự án sao cho nó chiếm 2/3 màn
hình và ở bên trái, đồng thời chồng lên cửa sổ kịch bản 3D một
chút. Bây giờ hãy nhấp vào tấm và giữ nó, chỉ cần Kéo nó qua
và thả nó vào cửa sổ tập lệnh 3D. Có một chút sở trường về điều
này, vì vậy hãy thử nó một vài lần nếu nó không hoạt động trong
lần đầu tiên.
BODY -1
MODEL
SOLIDRESOL
36
!!Slab-018
PEN 1
ADDZ 4.1
BODY -1
cPRISM_ "Whitewash", "Whitewash", "Whitewash",13,
0.1,
0.0, 0.0, 15,
4.28548, 0.0, 15,
4.28548, 0.949196, 15,
5.279549, 0.949196, 15,
5.279549, 2.155116, 15,
3.405484, 2.155116, 15,
3.405484, 3.067704, 15,
-0.000425, 3.067704, 15,
-0.000425, 2.00845, 15,
-2.444858, 2.00845, 15,
-2.444858, 0.949196, 15,
0.0, 0.949196, 15,
0.0, 0.0, -1
BODY -1
DEL 1
This resembles what you will get in the 3D script window.
Instant GDL! All Slab tool objects are converted into ‘CPRISM_’;
this is a prism in which the top, bottom and side surfaces are
specified by name or number. The next line contains the
number of nodes and the thickness, and then follows the list of
XY locations. Each one ends in the number 15, and the final
node ends in a -1. The 15 is a ‘masking code’ and simply tells the
slab to be drawn as a Solid andtells all the edge lines to be drawn.
The -1 tells GDL that the slab isfinished (and also that the end
point is the same as the start point).This is the default, so leave
these as they are unless you want to omit nodepoints.Điều này
giống với những gì bạn sẽ nhận được trong cửa sổ tập lệnh 3D.
GDL tức thì! Tất cả các đối tượng công cụ Slab được chuyển đổi
thành ‘CPRISM_’; đây là một hình lăng trụ trong đó các mặt
trên, dưới và mặt bên được xác định bằng tên hoặc số. Dòng tiếp
theo chứa số lượng nút và độ dày, sau đó là danh sách các vị trí
XY. Mỗi nút kết thúc bằng số 15 và nút cuối cùng kết thúc bằng
-1. Số 15 là một 'mã mặt nạ' và chỉ đơn giản nói rằng tấm được
vẽ dưới dạng một Khối rắn và cho biết tất cả các đường cạnh sẽ
được vẽ. -1 cho GDL biết rằng phiến đã hoàn thành (và điểm kết
thúc cũng giống như điểm bắt đầu). Đây là mặc định, vì vậy hãy
để chúng như cũ trừ khi bạn muốn bỏ qua nút bấm.
Note that the slab was started from the main origin of the
project,so that the first node listed is 0,0. Note also that the
XY locations are accurate to a millionth of a meter. This is a
lot of reading for the GDL parser, and if you write creative
GDL, you can write in much cleaner numbers.Lưu ý rằng
phiến được bắt đầu từ nguồn gốc chính của dự án, do đó, nút
đầu tiên được liệt kê là 0,0. Cũng lưu ý rằng các vị trí XY
chính xác đến một phần triệu mét. Đây là cách đọc rất nhiều
đối với trình phân tích cú pháp GDL và nếu bạn viết GDL
sáng tạo, bạn có thể viết với số lượng rõ ràng hơn nhiều.

68 Object Making with ArchiCAD


Chapter 5: The Power of PRISM

You can also do ‘Instant GDL’ in 2D Bạn cũng có thể thực


hiện ‘GDL tức thì’ ở dạng 2D
Try drawing a polygon with the Fill tool. Drag and Drop the
resultinto a 2D Script window – another example of instant
GDL!
Hãy thử vẽ một đa giác bằng công cụ Fill. Kéo và thả kết quả
vào cửa sổ Tập lệnh 2D - một ví dụ khác về GDL tức thì!
About Prisms… Giới thiệu về Lăng kính ...
Prisms come in several forms. Lăng kính có nhiều dạng.
PRISM number of nodes, thickness,X1,Y1,.
...............................Xn,Yn
For a simple prism, you do not need materials or the
underscore,and you do not even need to close the prism. The
default is for itto be a closed solid. By adding an underscore
and 15 at the end ofeach line, you get much the same thing,
but with added potential.Đối với một hình lăng trụ đơn giản,
bạn không cần vật liệu hoặc gạch dưới, và bạn thậm chí
không cần đóng hình lăng trụ lại. Mặc định cho nó là một
khối đóng. Bằng cách thêm dấu gạch dưới và 15 vào cuối mỗi
dòng, bạn sẽ nhận được nhiều thứ tương tự, nhưng có thêm
tiềm năng.
PRISM_ number of nodes, thickness, X1,Y1,mask,...... Xn,Yn,mask,
X1,Y1,-1
Normally, the value of the masking code is always 15. The
power of masking in the underscore version of PRISM is that
you can omitfaces and lines of the prism and you can curve
corners, and drill holes through the prism. The curved corners
are made using the technique of the ‘Polyline’. It is too early to
lead you through all these possibilities now, but you need to
know that they are available.Thông thường, giá trị của mã mặt
nạ luôn là 15. Sức mạnh của mã mặt nạ trong phiên bản gạch
dưới của PRISM là bạn có thể bỏ qua các mặt và đường của
lăng kính và bạn có thể làm cong các góc và khoan lỗ qua lăng
kính. Các góc cong được thực hiện bằng kỹ thuật ‘Polyline’.
Còn quá sớm để dẫn dắt bạn vượt qua tất cả những khả năng
này ngay bây giờ, nhưng bạn cần biết rằng chúng có sẵn.
CPRISM_ topmat,botmat,sidemat,number of nodes,
thickness,
X1,Y1,mask,...... Xn,Yn,mask, X1,Y1,-1
CPRISM_is what you get when you make ‘instant GDL’ with the
Slab tool. This has all the powers of PRISM_but it also allows
youto change the colors of the top, bottom and side
faces.CPRISM_ là những gì bạn nhận được khi tạo 'GDL tức thì'
bằng công cụ Slab. Điều này có tất cả các quyền hạn của PRISM_
nhưng nó cũng cho phép bạn thay đổi màu sắc của mặt trên, mặt
Object Making with dưới và mặt bên.
ArchiCAD You also have the following types of prism which are suitable
forlater study:Bạn cũng có các loại lăng kính sau thích hợp cho
việc học sau này:
– BPRISM_is an extension of CPRISM_but allows you to bend
the prism by adding a radius of curvature. It bends
– height and material of the hill. This is useful for
– suggesting softness, e.g., in furniture. However, it creates
a lot of polygons and lines in 3D view.FPRISM là phần
– mở rộng của CPRISM_ nhưng cho phép bạn có các cạnh
– trên cùng (đồi) cong hoặc vát bằng cách chỉ định góc,
– chiều cao và chất liệu của đồi. Điều này hữu ích để gợi ý
sự mềm mại, ví dụ, trong đồ nội thất. Tuy nhiên, nó tạo ra
– rất nhiều đa giác và đường trong chế độ xem 3D.
– – SPRISM_ is an extension of CPRISM_ but allows you to have
– a cut plane taken through the prism. As it is possible to use
– an actual command CUTPLANE, this version of the Prism is
– not so frequently used.SPRISM_ là phần mở rộng của
CPRISM_ nhưng cho phép bạn có một mặt phẳng cắt qua
– lăng kính. Vì có thể sử dụng lệnh thực sự CUTPLANE,
– phiên bản này của Prism không được sử dụng thường
– xuyên.

– 69


















– downwards, but if you
precede it with a
mirroring routine
(MULZ -1), it will
bend upwards.Xuống
dưới, nhưng nếu bạn
đặt trước nó bằng quy
trình phản chiếu
(MULZ -1), nó sẽ uốn
cong lên trên.
– FPRISMis an
extension of CPRISM_
but allows you to have
curved or chamfered
top edges (hills) by
specifying the angle,
Chapter 5: The Power of PRISM

Clean up the Prism Làm sạch Lăng kính


Return to the cPrism we dragged and dropped earlier. If you
just want a pure prism, clean away the statements before and
after theprism. The function of these is explained more in
chapter 6. If youfind an ADDZ command like the one in this
example, it is a leftoverfrom a previous Slab tool setting, so
you can delete that, along with DEL. You are left with a simple
CPRISM_command: Quay lại cPrism mà chúng ta đã kéo và thả
trước đó. Nếu bạn chỉ muốn có một lăng kính thuần túy, hãy xóa
sạch các câu trước và sau lăng kính. Chức năng của chúng được giải
thích kỹ hơn trong chương 6. Nếu bạn tìm thấy lệnh ADDZ giống
như lệnh trong ví dụ này, nó là phần còn lại từ cài đặt công cụ Slab
trước đó, vì vậy bạn có thể xóa lệnh đó cùng với DEL. Bạn chỉ còn
lại một lệnh CPRISM_ đơn giản:
CPRISM_ "Whitewash", "Whitewash", "Whitewash",13, 0.1,
0.0, 0.0, 15,
4.28548, 0.0, 15,
4.28548, 0.949196, 15,
5.279549, 0.949196, 15,
5.279549, 2.155116, 15,
3.405484, 2.155116, 15,
3.405484, 3.067704, 15,
-0.000425, 3.067704, 15,
-0.000425, 2.00845, 15,
-2.444858, 2.00845, 15,
-2.444858, 0.949196, 15,
0.0, 0.949196, 15,
0.0, 0.0, -1
If you are doing a very simple solid one-color prism, you do not
need all the 15s and the -1, so you can delete those. You can
also remove the ‘c’, the underscore and the material definitions.
One single material definition is enough for the whole prism.
You can also use the GDL text editor’s Find and Replace
function to removesome of the surplus spaces to make the code
look more compact. So you are left with an even simpler PRISM
command:Nếu bạn đang làm một lăng kính đặc một màu rất đơn
giản, bạn không cần tất cả các giá trị 15 và -1, vì vậy bạn có thể
xóa chúng. Bạn cũng có thể loại bỏ chữ ‘c’, dấu gạch dưới và các
định nghĩa vật liệu. Một định nghĩa vật liệu duy nhất là đủ cho
toàn bộ lăng kính. Bạn cũng có thể sử dụng chức năng Tìm và
Thay thế của trình soạn thảo văn bản GDL để loại bỏ một số
khoảng trống thừa nhằm làm cho mã trông gọn gàng hơn. Vì
vậy, bạn chỉ còn lại một lệnh PRISM đơn giản hơn:
MATERIAL “Whitewash”
PRISM 13, 0.1,
0.0, 0.0,
4.28548, 0.0,
4.28548, 0.949196,
5.279549, 0.949196,
5.279549, 2.155116,
3.405484, 2.155116,
3.405484, 3.067704,
-0.000425, 3.067704,
-0.000425, 2.00845,
-2.444858, 2.00845,
-2.444858, 0.949196,
0.0, 0.949196,
0.0, 0.0
In creative GDL, you have to decide how your model is to
bewritten.Trong GDL sáng tạo, bạn phải quyết định cách
viết mô hình của mình.

70 Object Making with ArchiCAD


Chapter 5: The Power of PRISM

– Do you have a single prism shape that is not going to


changemuch even if the user changes parameters? If so,
use this method, always working from the main origin of
the project, to ensure that at least one node of the prism is
zero. Bạn có một hình lăng trụ duy nhất sẽ không thay đổi
nhiều ngay cả khi người dùng thay đổi các thông số? Nếu
vậy, hãy sử dụng phương pháp này, luôn làm việc từ điểm
gốc chính của dự án, để đảm bảo rằng ít nhất một nút của
lăng kính bằng không.
– If the shape is truly parametric, such as a window or door
frame, then you should do a sketch on paper of the prism,
number each node in an anti clockwise direction, then
start writing the prism methodically using parameters, or
significantdimensions where appropriate.Nếu hình dạng
thực sự là tham số, chẳng hạn như khung cửa sổ hoặc cửa
ra vào, thì bạn nên phác thảo trên giấy của lăng kính, đánh
số từng nút theo hướng ngược chiều kim đồng hồ, sau đó
bắt đầu viết lăng kính một cách có phương pháp sử dụng
các tham số hoặc kích thước quan trọng trong đó thích
hợp.
Have a look in the GDL Reference Manual (by now you
should find it a lot easier to browse) and read the section on
PRISMs inthe chapter dealing with 3D Shapes. If it is still hard
going, you will find it easier after you have been through this
chapter.Hãy xem trong Sách hướng dẫn tham khảo GDL (bây
giờ bạn sẽ thấy nó dễ duyệt hơn rất nhiều) và đọc phần về
PRISM trong chương xử lý Hình dạng 3D. Nếu vẫn còn khó
khăn, bạn sẽ thấy nó dễ dàng hơn sau khi xem hết chương này.
Comma confusion? Lẫn lộn dấu phẩy?
In some countries, it is common to write decimal points as
commas, e.g., 1,25. In other countries it is common to write
thousands with commas for example, a million is 1,000,000. If
you have a localized ArchiCAD, this is how numbers may
appear in theparameters box. But in GDL, the scripts are hard
coded so only one convention can be followed. Dots are used
to form the decimal point, and commas are used to separate
numbers. Many of the errors in your early efforts in creative
GDL will be with misplaced dots and commas. Pay strict
attention to them.Ở một số quốc gia, người ta thường viết các
dấu thập phân dưới dạng dấu phẩy, ví dụ: 1,25. Ở các quốc
gia khác, người ta thường viết hàng nghìn với dấu phẩy, ví dụ,
một triệu là 1.000.000. Nếu bạn có một ArchiCAD được bản
địa hóa, đây là cách các số có thể xuất hiện trong hộp tham số.
Nhưng trong GDL, các tập lệnh được mã hóa cứng nên chỉ có
thể tuân theo một quy ước. Dấu chấm được sử dụng để tạo
thành dấu thập phân và dấu phẩy được sử dụng để phân tách
các số. Nhiều lỗi trong những nỗ lực ban đầu của bạn trong
GDL sáng tạo sẽ là do dấu chấm và dấu phẩy đặt sai vị trí.
Hãy chú ý nghiêm ngặt đến chúng.

5.2 Let’s make a 3D Window Hãy


tạo một Cửa sổ 3D
Now that you know about prisms, we can build a window
using aprism for the window, drilling a hole through to form
the frame, and even allowing the possibility of a curved top to
the window. We can also form a sill using a prism.Bây giờ bạn
đã biết về lăng kính, chúng ta có thể xây dựng một cửa sổ bằng
lăng kính cho cửa sổ, khoan một lỗ xuyên qua để tạo thành
khung và thậm chí cho phép khả năng có một đỉnh cong đối với
cửa sổ. Chúng ta cũng có thể tạo một ngưỡng cửa bằng lăng
kính.
Remember the basic rule of making a window (this is the third
wall-opening-filler in the book now) which is that it is made
flat on the XY ground plane, viewed from 90˚ and saved. Then,
when it is brought back into ArchiCAD and placed in a wall, it is
the rightway up and able to cut a hole. The second rule is that ‘A’
governs the width and ‘B’ governs the height – ideally, the origin
should becentrally positioned at the sill of the window.Hãy nhớ
quy tắc cơ bản của việc tạo cửa sổ (đây là phần lấp đầy tường mở
thứ ba trong cuốn sách bây giờ) là nó được làm phẳng trên mặt
phẳng mặt đất XY, nhìn từ 90˚ và được lưu lại. Sau đó, khi nó
được đưa trở lại ArchiCAD và được đặt trong một bức tường, nó
sẽ đúng hướng lên và có thể khoét một lỗ. Quy tắc thứ hai là ‘A’
điều chỉnh chiều rộng và ‘B’ điều chỉnh chiều cao - lý tưởng là
điểm gốc phải được đặt ở vị trí trung tâm ở ngưỡng cửa sổ.
First, create a new window by choosing File>New Library
Part>Window. Enter some parameters to get started with. These
here are in mm, but you can work your chosen dimension
system.Đầu tiên, tạo một cửa sổ mới bằng cách chọn Tệp> Phần
Thư viện Mới> Cửa sổ. Nhập một số thông số để bắt đầu. Các
giá trị này ở đây được tính bằng mm, nhưng bạn có thể làm việc
với hệ thống kích thước đã chọn của mình.

Object Making with ArchiCAD


71
Chapter 5: The Power of PRISM

The first task is to make a prism for the outline of the


window, using A and B. You have to use PRISM_ (underscore)
because you are planning to drill a hole in the prism to form
the window frame. Work in a counterclockwise direction. Click
in the 3D Viewwindow when you have finished. Do not click
until you have finished – an incomplete Prism statement will
result in an error.Nhiệm vụ đầu tiên là tạo hình lăng trụ cho
đường viền của cửa sổ, sử dụng A và B. Bạn phải sử dụng
PRISM_ (gạch dưới) vì bạn đang định khoan một lỗ trên lăng
kính để tạo khung cửa sổ. Làm việc theo hướng ngược chiều
kim đồng hồ. Nhấp vào cửa sổ Chế độ xem 3D khi bạn đã
hoàn tất. Đừng nhấp chuột cho đến khi bạn hoàn thành - một
câu lệnh Prism chưa hoàn chỉnh sẽ dẫn đến lỗi.
Start with a Label and Material statement.Bắt đầu với câu lệnh Nhãn
và Vật liệu.
!Window Frame
MATERIAL frammat
PRISM_ 5,fdep,
-A/2,0,15,
A/2,0,15,
A/2,B,15,
-A/2,B,15,
-A/2,0,-1

Now you add the XY locations of the hole – based on the


frame width. End each XY with a 15. The number of
nodepoints will be increased because the number that make
up the hole are added tothe number for the outline. You need
5 points to form a 4-sided prism. So you will have to add
another 5 points for the hole. We recommend that you write
the number of nodes as an expression ‘5+5’. This way, you can
always remember how you arrived at thefinal number. Here,
this might seem elementary, but when you getonto more
complex prism shapes you will find this a useful tip.Bây giờ
bạn thêm các vị trí XY của lỗ - dựa trên chiều rộng khung.
Kết thúc mỗi XY với một 15. Số lượng nút sẽ được tăng lên
bởi vì số lượng tạo nên lỗ được thêm vào số của phác thảo.
Bạn cần 5 điểm để tạo thành một hình lăng trụ 4 cạnh. Vì
vậy, bạn sẽ phải thêm 5 điểm nữa cho lỗ. Chúng tôi khuyên
bạn nên viết số lượng nút dưới dạng biểu thức ‘5 + 5’. Bằng
cách này, bạn luôn có thể nhớ mình đã đến con số cuối cùng
như thế nào. Ở đây, điều này có vẻ sơ đẳng, nhưng khi bạn
tìm hiểu các hình dạng lăng trụ phức tạp hơn, bạn sẽ thấy đây
là một mẹo hữu ích.
As you work your way round the prism, make appropriate
additions and subtractions of the frame width ‘fwid’. If you finish
with something silly, then you may have put your plus and
minussigns in the wrong place. If you get an error you may have
forgotten to keep the commas continuous to the end, or you may
have forgotten to change the nodepoints from 5 to 5+5.Khi bạn
làm việc theo cách của mình quanh lăng kính, hãy thực hiện các
phép cộng và trừ thích hợp đối với chiều rộng khung hình
"fwid". Nếu bạn kết thúc với điều gì đó ngớ ngẩn, thì bạn có thể
đã đặt dấu cộng và dấu trừ của mình không đúng chỗ. Nếu bạn
gặp lỗi, bạn có thể đã quên giữ dấu phẩy liên tục đến cuối hoặc
bạn có thể đã quên thay đổi điểm nút từ 5 thành 5 + 5.

72 Object Making with ArchiCAD


Chapter 5: The Power of PRISM

PRISM_ 5+5,fdep,
-A/2,0,15,
A/2,0,15,
A/2,B,15,
-A/2,B,15,
-A/2,0,-1, !end of outline
-A/2+fwid,0+fwid,15, !start of holeA/2-
fwid,0+fwid,15,
A/2-fwid,B-fwid,15,
-A/2+fwid,B-fwid,15,
-A/2-fwid,0+fwid,-1 !end of hole

Now you can add the Glass. For a fixed light, this will be the
sameoutline as the inside line of the hole in the frame.
Therefore, to build your glass easily, you can simply copy
and paste the list ofpoints for the hole. Assume that the glass
is at the midpoint of theframe so lift the glass, and assume that
the glass is 6 mm thick.Bây giờ bạn có thể thêm Kính. Đối
với đèn cố định, đây sẽ là đường viền bên trong của lỗ trên
khung. Do đó, để xây dựng kính của bạn một cách dễ dàng,
bạn có thể chỉ cần sao chép và dán danh sách các điểm cho
lỗ. Giả sử rằng tấm kính nằm ở điểm giữa của khung thì hãy
nhấc tấm kính lên, và giả sử rằng tấm kính dày 6 mm.
!Glass
MATERIAL glasmat
ADDz fdep/2 PRISM_
5,0.006,
-A/2+fwid,0+fwid,15, A/2-
fwid,0+fwid,15, A/2-fwid,B-
fwid,15,
-A/2+fwid,B-fwid,15,
-A/2+fwid,0+fwid,-1DEL 1
We have assumed that the frame is rectangular in section. This
is quite adequate for general 3D visuals and general
arrangement drawings for a building. If you wanted to
include highly detailedinformation about the frame profile,
including rebates, etc., you would have to use another
command called TUBE. With TUBE, you define a profile and
pull that profile through a series of points
Object Making with – the outline of the window – to form the frame. TUBEis beyond
ArchiCAD the scope of this book, but when you have more experience
with

73
Chapter 5: The Power of PRISM

GDL, try it! For construction drawing purposes, you could put this
level of detail into the 2D symbol script, including scale
sensitivity.Chúng tôi đã giả định rằng khung có mặt cắt là hình chữ
nhật. Điều này là khá đầy đủ cho hình ảnh 3D chung và các bản vẽ
bố trí chung cho một tòa nhà. Nếu bạn muốn bao gồm thông tin chi
tiết cao về cấu hình khung, bao gồm các khoản giảm giá, v.v., bạn
sẽ phải sử dụng một lệnh khác có tên là TUBE. Với TUBE, bạn xác
định một cấu hình và kéo cấu hình đó qua một loạt các điểm
- đường viền của cửa sổ - để tạo thành khung. TUBE nằm ngoài
phạm vi của cuốn sách này, nhưng khi bạn có nhiều kinh nghiệm
hơn với GDL, hãy thử nó! Đối với mục đích vẽ xây dựng, bạn có
thể đưa mức độ chi tiết này vào tập lệnh ký hiệu 2D, bao gồm cả độ
nhạy tỷ lệ.
Add the Sill Thêm thuốc
This is more difficult. So far, the whole frame has been safely
onthe ground, and we have only had to define its outline, and
it wasproduced in the right place. Prisms only grow upwards
from the XY ground plane. So the sill has to be made on end
with the PRISMcommand; then turned over and aligned with
the window.Make it at the origin first. Điều này khó hơn. Cho
đến nay, toàn bộ khung đã được an toàn trên mặt đất, và
chúng tôi chỉ phải xác định đường viền của nó, và nó đã được
sản xuất ở đúng vị trí. Lăng kính chỉ mọc lên từ mặt đất XY.
Vì vậy, ngưỡng cửa phải được thực hiện khi kết thúc bằng
lệnh PRISM; sau đó được lật lại và căn chỉnh với cửa sổ. Hãy
làm cho nó ở nguồn gốc đầu tiên.

!Sill
MATERIAL frammat
PRISM 5,A,
0,0,
silproj,0,
silproj,fwid/2,0,fwid,
0,0
This basic sill sticks up in the air. But you can see that by
rotating it 90˚ around Y and recessing it to the corner of the
main frame, it will be an easy job. Put the ROTand ADD
commands in front of theSill prism, and remember to DEL
afterwards. The right-hand imageshows the sill finally
positioned, just before the DEL command is issued.Bệ cửa cơ
bản này nhô lên trong không khí. Nhưng bạn có thể thấy rằng
bằng cách xoay nó 90˚ xung quanh Y và đặt nó vào góc của
khung hình chính, nó sẽ là một công việc dễ dàng. Đặt các
lệnh ROT và ADD trước lăng kính Sill và nhớ DEL sau đó.
Hình ảnh bên phải cho thấy ngưỡng cửa được định vị cuối
cùng, ngay trước khi lệnh DEL được đưa ra.
!Sill
MATERIAL frammat
ROTy 90
ADDz -A/2
PRISM 5,A,
0,0,
silproj,0,
silproj,fwid/2,0,fwid,
0,0
DEL 2

74 Object Making with ArchiCAD


Chapter 5: The Power of PRISM

Don’t forget the 2D Symbol


Đừng quên Biểu tượng 2D
For an easy life, you can use this regular do-it-all script. You
might,however, wish for a high performance symbol that has
scale sensitivity. In this way, you can keep the 3D object
simple, but allow the 2D drawings to display rebated frames and
casements.Để có một cuộc sống dễ dàng, bạn có thể sử dụng
tập lệnh làm tất cả thông thường này. Tuy nhiên, bạn có thể
mong muốn một biểu tượng hiệu suất cao có độ nhạy tỷ lệ.
Bằng cách này, bạn có thể giữ cho đối tượng 3D đơn giản,
nhưng cho phép các bản vẽ 2D hiển thị các khung và hộp giảm
giá.
Chapter 4 used the Door example to demonstrate the
procedure.Chương 4 đã sử dụng ví dụ Cửa để chứng minh quy
trình.
!Simple Window 2D scriptROT2
180
PROJECT2 4,90,1
DEL 1

The window is seen here with the door from chapter 4 Cửa sổ được
nhìn thấy ở đây với cánh cửa từ chương 4
Save the window file, return to the ArchiCAD floor plan,
draw a wall and drop this window into it. Place a section line in
front of it.Practice stretching the window. Notice that the
frame remains thecorrect size, even though you can stretch the
window greatly. If itwas a smart window, you could get it to
work out when it was wide enough to need intermediate
mullions.Lưu tệp cửa sổ, quay lại sơ đồ tầng ArchiCAD, vẽ
một bức tường và thả cửa sổ này vào đó. Đặt một dòng phần
trước nó. Thực hành kéo căng cửa sổ. Lưu ý rằng khung vẫn
có kích thước chính xác, mặc dù bạn có thể kéo dài cửa sổ rất
nhiều. Nếu đó là một cửa sổ thông minh, bạn có thể làm cho
nó hoạt động khi nó đủ rộng để cần đến hàng triệu đô la trung
gian.
You can see at a glance that the use of PRISM leads to a clean
3D image, whereas the use of BLOCK (as for the door) left a
number of untidy lines on the 3D view.
Bạn có thể thấy sơ qua rằng việc sử dụng PRISM dẫn đến
hình ảnh 3D rõ ràng, trong khi việc sử dụng BLOCK (đối
với cửa) để lại một số đường nét không đẹp trên chế độ xem
3D.

Object Making with ArchiCAD


75
Chapter 5: The Power of PRISM

Try WALLHOLE Dùng thử WALLHOLE


We all know that GDL windows and doors automatically cut a
rectangle based on A (width) and B (height). If this is too
simplistic for you, it is possible to dictate exactly what shape
the window should cut in the wall, irrespective of the actual
window frame that will fit. WALLHOLE is a command that is
like a cookie cutter – punches a hole in the wall, yet is easy to
use - having the same syntax as PRISM_. In fact, if you take the
outline of the window frame, that perfectly defines the list of
XY locations for the hole. It is not required for a simple
window like this, but it is valuable to know about WALLHOLE
so that you are able to providea complex window shape when
you need it.Chúng ta đều biết rằng cửa sổ và cửa ra vào GDL tự
động cắt một hình chữ nhật dựa trên A (chiều rộng) và B (chiều
cao). Nếu điều này quá đơn giản đối với bạn, bạn có thể xác định
chính xác hình dạng cửa sổ nên cắt trên tường, bất kể khung cửa
sổ thực tế sẽ phù hợp. WALLHOLE là một lệnh giống như một
cái máy cắt cookie - đục một lỗ trên tường, nhưng rất dễ sử dụng
- có cùng cú pháp như PRISM_. Trên thực tế, nếu bạn lấy đường
viền của khung cửa sổ, điều đó sẽ xác định hoàn hảo danh sách
các vị trí XY cho lỗ. Nó không bắt buộc đối với một cửa sổ đơn
giản như thế này, nhưng bạn nên biết về WALLHOLE để có thể
cung cấp một hình dạng cửa sổ phức tạp khi cần.
The major limitation of WALLHOLE is that you cannot have
indentsin the shape. A ‘D’ shape is acceptable, but an ‘L’ shape is
not. If you wanted to make a twin arch window, which requires a
‘B’ shape, you could overlap two ‘D’-shaped WALLHOLEs
together.Hạn chế chính của WALLHOLE là bạn không thể có thụt
lề trong hình dạng. Hình dạng ‘D’ có thể chấp nhận được, nhưng
hình dạng ‘L’ thì không. Nếu bạn muốn tạo cửa sổ vòm đôi, yêu
cầu hình chữ ‘B’, bạn có thể chồng hai chữ WALLHOLE hình chữ
‘D’ với nhau.
Have a look through the Windows and Doors Specials chapter
of the GDL Reference Manual for more detailed explanation.
Copy and paste the original outline prism command, and then
change itslabel and the title.Hãy xem qua chương Đặc biệt về
Windows và Cửa của Sách hướng dẫn Tham khảo GDL để
được giải thích chi tiết hơn. Sao chép và dán lệnh lăng kính
phác thảo ban đầu, sau đó thay đổi nhãn và tiêu đề của nó.
!Cut the Hole!
WALLHOLE 5,1,
-A/2,0,15,
A/2,0,15,
A/2,B,15,
-A/2,B,15,
-A/2,0,-1
In place of the Prism thickness, you have a status code. This
can be either 0 or 1. If you make it 0, the reveal to the window
will adopt the color of the window frame (or whatever was the
most recent Material statement.) If you make it 1, the reveal
will displaythe characteristics of the wall.Thay cho độ dày của
Lăng kính, bạn có một mã trạng thái. Đây có thể là 0 hoặc 1.
Nếu bạn đặt nó là 0, phần hiển thị cho cửa sổ sẽ áp dụng màu
của khung cửa sổ (hoặc bất cứ điều gì là câu lệnh Material gần
đây nhất.) Nếu bạn đặt nó là 1, phần hiển thị sẽ hiển thị các đặc
điểm của bức tường.
Give it a curvy window head – Flags and Polylines Tạo cho
nó một đầu cửa sổ cong - Cờ và Đường đa giác
This is too early to go into the matter of polylines, but you
might like a glance at the future – and decide you like it. If you
add a masking value of 1000 to the 15 you can make the
PRISM_outlinefollow a tangential curve. Let’s try this.Còn quá
sớm để đi sâu vào vấn đề đa đường, nhưng bạn có thể thích một
cái nhìn về tương lai - và quyết định bạn thích nó. Nếu bạn thêm
giá trị mặt nạ là 1000 vào 15, bạn có thể làm cho đường viền
PRISM_ theo một đường cong tiếp tuyến. Chúng ta hãy cố gắng
này.
First you need to make a small pop-up menu. Make a new
parameter ‘winshape’, and write a short VALUESstatement in the
Parameter Script.Trước tiên, bạn cần tạo một menu nhỏ bật
lên. Tạo một tham số mới "wonhape" và viết một câu lệnh
VALUES ngắn trong Tập lệnh Tham số.

76 Object Making with ArchiCAD


Chapter 5: The Power of PRISM

VALUES 'winshape' 'Rectangular','Round-topped'

Now, at the top of the 3D script write a short routine to parse the
result. This generates a value for a flag, ‘ws’.
Bây giờ, ở đầu tập lệnh 3D, hãy viết một quy trình ngắn để phân tích kết quả.
Điều này tạo ra một giá trị cho cờ, "ws".
IF winshape='Rectangular' THEN ws=0IF
winshape='Round-topped' THEN ws=1
We introduced the idea of flags earlier, in chapter 4, to remember
which sort of bed was required.
Chúng tôi đã giới thiệu ý tưởng về cờ trước đó, trong chương 4,
để ghi nhớ loại giường nào là bắt buộc.
Final 3D script – we see the power of WALLHOLE Kịch
bản 3D cuối cùng - chúng tôi thấy sức mạnh của
WALLHOLE
Let’s run through the whole of the 3D script from start to end. Hãy
chạy qua toàn bộ kịch bản 3D từ đầu đến cuối.
!Window Frame
IF winshape='Rectangular' THEN ws=0IF
winshape='Round-topped' THEN ws=1-
!Cut the Hole!
WALLHOLE 5,1,
-A/2,0,15,
A/2,0,15,
A/2,B,13,
-A/2,B,13+1000*ws,
-A/2,0,-1
Now you see why you need WALLHOLE. When you want a
non-rectangular window opening, WALLHOLEis essential. If
you add1000 to the mask value at the END of the curve, it will
fly round from the previous location forming a tangential
curve. By multiplying 1000 by ‘ws’ you can switch the curve ON
and OFF.Do the same thing to the actual frame.Bây giờ bạn
thấy lý do tại sao bạn cần WALLHOLE. Khi bạn muốn mở một
cửa sổ không phải hình chữ nhật, WALLHOLE là điều cần
thiết. Nếu bạn thêm 1000 vào giá trị mặt nạ tại END của đường
cong, nó sẽ bay vòng từ vị trí trước đó tạo thành một đường
cong tiếp tuyến. Bằng cách nhân 1000 với 'ws', bạn có thể BẬT
và TẮT đường cong. Làm điều tương tự với khung thực tế.
!Window Frame
MATERIAL frammat
PRISM_ 5+5,fdep,
-A/2,0,15,
A/2,0,15,
A/2,B,13,
-A/2,B,13+1000*ws,
-A/2,0,-1,
-A/2+fwid,0+fwid,15,A/2-
fwid,0+fwid,15,
A/2-fwid,B-fwid+fwid*ws,13,
-A/2+fwid,B-fwid+fwid*ws,13+1000*ws,
-A/2+fwid,0+fwid,-1

Object Making with ArchiCAD


77
Chapter 5: The Power of PRISM

There is a problem with the inside line of the hole. Because the
XY points at the inside head of the rectangular window are
where they are, a pure tangential curve will not run smoothly
parallel to the external outline. So you have to raise those two
points to the same height as the highest point on the external
outline. Use the flag ‘ws’ again to do this. The changes in the
script are marked in bold. If you are typing this, try it without
the modification and youwill see the difference in quality.Có vấn
đề với đường bên trong của lỗ. Bởi vì các điểm XY ở đầu bên
trong của cửa sổ hình chữ nhật là vị trí của chúng, một đường
cong tiếp tuyến thuần túy sẽ không chạy trơn tru song song với
đường viền bên ngoài. Vì vậy, bạn phải nâng hai điểm đó lên
cùng độ cao với điểm cao nhất trên đường viền bên ngoài. Sử
dụng lại cờ ‘ws’ để thực hiện việc này. Những thay đổi trong tập
lệnh được đánh dấu bằng chữ in đậm. Nếu bạn đang gõ chữ này,
hãy thử nó mà không cần sửa đổi và bạn sẽ thấy sự khác biệt về
chất lượng.
Another point is that you do not want the curve to be
interrupted by many edge lines. Change the 15 to 13 at the start
and end of thecurve; do this for the WALLHOLEand for the
PRISMs for the Frameand the Glass. If you check the section on
prisms in the 3D Shapeschapter of the GDL Reference Manual
you will see that a masking value of 13 removes the vertical
lines. Leave them at 15 first, then change them to 13, and
compare the result in 3D.Một điểm nữa là bạn không muốn
đường cong bị ngắt quãng bởi nhiều đường cạnh. Thay đổi 15
thành 13 ở đầu và cuối của đường cong; làm điều này cho
WALLHOLE và cho PRISMs cho Khung và Kính. Nếu bạn
kiểm tra phần về lăng kính trong chương Hình dạng 3D của
Sách hướng dẫn tham khảo GDL, bạn sẽ thấy rằng giá trị mặt
nạ là 13 sẽ loại bỏ các đường thẳng đứng. Trước tiên, hãy để
chúng ở mức 15, sau đó thay đổi chúng thành 13 và so sánh
kết quả dưới dạng 3D.
!Glass
MATERIAL glasmat
ADDz fdep/2 PRISM_
5,0.006,
-A/2+fwid,0+fwid,15,A/2-
fwid,0+fwid,15,
A/2-fwid,B-fwid+fwid*ws,13,
-A/2+fwid,B-fwid+fwid*ws,13+1000*ws,
-A/2+fwid,0+fwid,-1DEL 1
As the internal line of the frame is the same as the outline of
the glass, you are able to copy and paste the list of XY
locations. TheSill does not change.Vì đường bên trong của
khung giống với đường viền của kính, bạn có thể sao chép và
dán danh sách các vị trí XY. Sill không thay đổi.
!Sill
MATERIAL frammat
ROTy 90
ADDz -A/2
PRISM 5,A,
0,0,
silproj,0,
silproj,fwid/2,0,fwid,
0,0
DEL 2

78 Object Making with ArchiCAD


Chapter 5: The Power of PRISM

This is just a start. Now you have worked through this


example,you may be willing to try more adventures on your
own with PRISM. Đây chỉ là một sự khởi đầu. Bây giờ bạn đã
làm việc thông qua ví dụ này, bạn có thể sẵn sàng thử nhiều
cuộc phiêu lưu hơn với PRISM.

Summary of GDL in this section Tóm tắt về


GDL trong phần này
– Prisms are the most useful command in creative GDL –
they can be bent, rounded, cut, drilled, chamfered and
hollowed out. Prisms là lệnh hữu ích nhất trong GDL
sáng tạo - chúng có thể được uốn cong, làm tròn, cắt,
khoan, vát mép và làm rỗng.
– You do not need to move the cursor to build prisms,
becausethe XY of each of their nodepoints can be defined.
You may only have to lift them into position.Bạn không
cần phải di chuyển con trỏ để xây dựng lăng kính, vì XY
của mỗi điểm nút của chúng có thể được xác định. Bạn
có thể chỉ phải nâng chúng vào vị trí.
– You can shorten the time of building prisms with
‘InstantGDL’ using Drag and Drop.Bạn có thể rút ngắn
thời gian xây dựng lăng kính với ‘GDL tức thì’ bằng
cách sử dụng Kéo và thả.
– ‘Instant GDL’ is best built from slabs placed on the main
origin. It is best used if prism shape is not going to
changemuch. Otherwise, define the prism with
parameters.‘Instant GDL ’được xây dựng tốt nhất từ các
phiến đặt trên nguồn gốc chính. Nó được sử dụng tốt nhất
nếu hình dạng lăng kính không thay đổi nhiều. Nếu không,
hãy xác định lăng kính với các tham số.
– The most common cause of errors when writing
prisms isconfusion with commas.Nguyên nhân phổ
biến nhất của lỗi khi viết lăng kính là nhầm lẫn với
dấu phẩy.
– Wall holes for openings are normally rectangular (A and
B),but you can define a special shape with the
WALLHOLE command.Các lỗ khoét lỗ thông thường
là hình chữ nhật (A và B), nhưng bạn có thể xác định
một hình dạng đặc biệt bằng lệnh WALLHOLE.
– Flags can be set as a result of a pop-up menu, and then
usedto modify the shape of the object.Các thẻ có thể
được thiết lập là kết quả của một menu bật lên, và sau
đó được sử dụng để sửa đổi hình dạng của đối tượng.

Object Making with ArchiCAD


79
Chapter 5: The Power of PRISM

80 Object Making with ArchiCAD


Chapter 6: Looking into Autoscripted GDL

Chapter 6
Looking into
Autoscripted GDL
Xem xét GDL
được mô tả tự
động
It is valuable to look into the scripts of objects generated without
GDL and know how to modify them.

Điều có giá trị là xem xét các tập lệnh của các đối tượng được
tạo ra mà không có GDL và biết cách sửa đổi chúng.
Object Making with ArchiCAD
81
Chapter 6: Looking into Autoscripted GDL

6.1 Looking into Autoscripted


GDL Xem xét GDL
được mô tả tự động
There is a middle road in Object Making Có một con đường
trung gian trong Tạo đối tượng
Earlier, we practised making objects without GDL. We have
now tried making objects with GDL. It may seem to you that
the message of this book is that making objects without GDL
shouldmake you feel guilty. This is not so! You can make
excellent objects without GDL, but you know that you are
rejecting the chances of them being parametric. By contrast,
if you make objects with GDL, you will feel virtuous – but you
may become soenthusiastic about GDL that you try to do all
the work yourself.Trước đó, chúng tôi đã thực hành tạo các
đối tượng không có GDL. Bây giờ chúng tôi đã thử tạo các
đối tượng bằng GDL. Đối với bạn, có vẻ như thông điệp của
cuốn sách này là việc tạo ra các đồ vật không có GDL sẽ
khiến bạn cảm thấy tội lỗi. Đây không phải là như vậy! Bạn
có thể tạo ra các đối tượng tuyệt vời mà không cần GDL,
nhưng bạn biết rằng bạn đang từ chối khả năng chúng là
tham số. Ngược lại, nếu bạn tạo ra các đồ vật bằng GDL, bạn
sẽ cảm thấy mình có đức - nhưng bạn có thể trở nên nhiệt
tình với GDL đến mức bạn cố gắng tự mình làm tất cả công
việc.
You can suffer from exhaustion putting in the hours, and
frustration if the results are not as good as hoped for.Bạn có
thể bị kiệt sức vì làm việc hàng giờ, và thất vọng nếu kết quả
không tốt như mong đợi.
However, there is a middle road that you can follow. You can
get ArchiCAD to do much of the work for you and then come
in at thehalf way point and add some of the qualities that
make the objectparametric. You can also make individual
components using the ‘Instant GDL’ method, then move them
into the GDL script, and use ADDand ROTto position the
component.Tuy nhiên, có một con đường giữa mà bạn có thể đi
theo. Bạn có thể yêu cầu ArchiCAD thực hiện phần lớn công
việc cho bạn và sau đó đi vào nửa chặng đường và thêm một số
phẩm chất tạo nên tham số của đối tượng. Bạn cũng có thể tạo
các thành phần riêng lẻ bằng phương pháp ‘GDL tức thì’, sau đó
di chuyển chúng vào tập lệnh GDL và sử dụng ADD và ROT để
định vị thành phần.
First, let’s look at an object completely made with ArchiCAD’s
owntools and saved as an object.Đầu tiên, hãy xem một đối
tượng được tạo hoàn toàn bằng các công cụ của riêng ArchiCAD
và được lưu dưới dạng một đối tượng.
Making objects in the ArchiCAD environment Tạo các đối
tượng trong môi trường ArchiCAD
Anybody who uses ArchiCAD eventually has the curiosity to
open the 3D script of an object made in the ArchiCAD
environment – and has been thoroughly scared. The auto-
scripted object containsa mass of complex ‘industrial’ code that is
off putting to look at, and unstructured. It is good enough for
the GDL interpreter – but it is not for humans to fully
understand. By comparison, ‘creative’ GDL that has been
composed by a human looks clean and uncluttered – if it is
written with parameters, it is capable of extension into
something more powerful from just a humble beginning.Bất kỳ
ai sử dụng ArchiCAD cuối cùng đều tò mò muốn mở tập lệnh
3D của một vật thể được tạo ra trong môi trường ArchiCAD - và
đã hoàn toàn sợ hãi. Đối tượng được viết mã tự động chứa một
lượng lớn mã ‘công nghiệp’ phức tạp mà chúng ta không thể
xem xét và không có cấu trúc. Nó đủ tốt cho trình thông dịch
GDL - nhưng nó không dành cho con người để hiểu đầy đủ. Để
so sánh, GDL ‘sáng tạo’ do con người tạo ra trông sạch sẽ và
gọn gàng - nếu nó được viết với các tham số, nó có khả năng mở
rộng thành một thứ gì đó mạnh mẽ hơn chỉ từ một khởi đầu
khiêm tốn.
If you can become familiar with the look and organization
of autoscripted code and make use of it in easy steps, it is
not as scary as you first thought.Nếu bạn có thể làm quen
với giao diện và tổ chức của mã được viết tự động và sử
dụng nó trong các bước đơn giản, thì điều đó không đáng
sợ như bạn nghĩ lúc đầu.
Let’s remind you again how to make objects using
ArchiCAD’s own tools. We have two main methods. Make
the object using theSlab, Wall and Roof tools, select it in
the floor plan window. Select with the pointer tool the
object you have made from these 3Dtools. Then:
Hãy nhắc lại cho bạn cách tạo các đối tượng bằng các
công cụ của riêng ArchiCAD. Chúng tôi có hai phương
pháp chính. Tạo đối tượng bằng các công cụ Slab, Wall
và Roof, chọn nó trong cửa sổ sơ đồ mặt bằng. Chọn
bằng công cụ con trỏ đối tượng bạn đã tạo từ các công cụ
3D này. Sau đó:

82 Object Making with ArchiCAD


Chapter 6: Looking into Autoscripted GDL

1. If the object has been made the right way up, use the
ArchiCAD File menu to Save Special as an ArchiCAD
Object.Save it into one of your loaded libraries.Nếu đối
tượng đã được tạo đúng cách, hãy sử dụng menu Tệp
ArchiCAD để Lưu Đặc biệt dưới dạng Đối tượng
ArchiCAD. Lưu nó vào một trong các thư viện đã tải của
bạn.
2. If the object has been made the right way up, or on its side,
view in the 3D window in plan or elevation, Save the
resultingview as a library part – a .GSM object. Save it into
one of yourloaded libraries.Nếu đối tượng đã được tạo đúng
hướng lên hoặc ở phía của nó, xem trong cửa sổ 3D ở mặt
bằng hoặc độ cao, Lưu chế độ xem kết quả dưới dạng một
phần thư viện - một đối tượng .GSM. Lưu nó vào một trong
các thư viện đã tải của bạn.
Examine the 3D script of a typical autoscripted object
Kiểm tra tập lệnh 3D của một đối tượng được mô tả tự
động điển hình
Open the table that was used as an example in Chapter 2, or
makeyourself a quick table now using method 1 above. We will
run through explaining what is contained in the script, and
then look at ways of shortening and modifying it. Try to make
it approx 1.5 m wide by 0.9 m deep.Mở bảng được sử dụng
làm ví dụ trong Chương 2 hoặc tạo cho bạn một bảng nhanh
ngay bây giờ bằng cách sử dụng phương pháp 1 ở trên.
Chúng tôi sẽ chạy qua giải thích những gì có trong tập lệnh,
sau đó xem xét các cách rút ngắn và sửa đổi nó. Cố gắng làm
cho nó rộng khoảng 1,5 m x sâu 0,9 m.

Object Making with ArchiCAD


The 3D script starts out with some labelling. It’s good to have
date and title and author at the start of the script. Do likewise
when you write creative scripts. Tập lệnh 3D bắt đầu với một số
nhãn. Tốt hơn là nên có ngày tháng, tiêu đề và tác giả ở đầu kịch
bản. Tương tự như vậy khi bạn viết kịch bản sáng tạo.
! Name : table_01.GSM
! Date : Monday, May 1, 2000
! Version : 6.50
! Written by ArchiCAD
MULX A/ 1.521409
MULY B/ 0.919806
MULZ ZZYZX/ 0.7
ADD 0.771409, 0.45, -0.0
BODY -1
MODEL SOLID
RESOL 36
The three MULcommands enable the object to be stretchy. When
itwas first made, the table was drawn by eye in the floor plan,
so itwas approximately 1.5 meters by 0.9 meters, and the height
was
0.7 meters.Ba lệnh MUL cho phép đối tượng co giãn. Khi lần đầu
tiên được sản xuất, chiếc bàn được vẽ bằng mắt trong sơ đồ mặt
bằng, vì vậy nó có kích thước xấp xỉ 1,5 mét x 0,9 mét và chiều
cao là
0,7 mét.

83
Chapter 6: Looking into Autoscripted GDL

ZZYZX is what GDL denotes for the height. This rather curious
name arises from the need to call it something related to Z. But
it could not be called Z as many older objects from ArchiCAD
4.5 and earlier used Z for other purposes and might no longer
work in
5.0 and later. The GDL development team chose ‘zzyzx’ after a
small town in Arizona, the last town in the US telephone
directory.ZZYZX là những gì GDL biểu thị cho chiều cao. Cái
tên khá kỳ lạ này xuất phát từ nhu cầu gọi nó là thứ gì đó liên
quan đến Z. Nhưng nó không thể được gọi là Z vì nhiều đối
tượng cũ hơn từ ArchiCAD 4.5 trở về trước đã sử dụng Z cho
các mục đích khác và có thể không còn hoạt động trong
5.0 trở lên. Nhóm phát triển GDL đã chọn ‘zzyzx’ theo tên một
thị trấn nhỏ ở Arizona, thị trấn cuối cùng trong danh bạ điện
thoại của Hoa Kỳ.
Because the autoscript is accurate to a millionth of a meter, you
geta vast number of trailing decimals.Bởi vì chỉ số tự động
chính xác đến một phần triệu mét, bạn sẽ nhận được một số
lượng lớn các số thập phân theo sau.
Now you can see how stretchiness work in autoscripted
objects. Ifyou stretch the table to 2.0 meters, the MULXcommand
will ‘multiply everything in the X direction by A/1.521409’. As ‘A’
has anewly stretched value of 2.0, the multiplication will be 2.0/
1.521409. This will make it slightly wider. If you stretch the
height to be 1.2 meters, the vertical components will all be
multiplied by 1.2/0.7. The MULYcommand works in the same
way.Bây giờ bạn có thể thấy cách tính kéo dài hoạt động trong các
đối tượng được mô tả tự động. Nếu bạn kéo dài bảng thành 2,0 mét,
lệnh MULX sẽ ‘nhân mọi thứ theo hướng X với A / 1.521409’. Vì
‘A’ có giá trị mới được kéo dài là 2.0, phép nhân sẽ là 2.0 /
1.521409. Điều này sẽ làm cho nó rộng hơn một chút. Nếu bạn kéo
dài chiều cao là 1,2 mét, tất cả các thành phần dọc sẽ được nhân
với 1,2 / 0,7. Lệnh MULY hoạt động theo cách tương tự.
The ADDcommand is an offset – this is in case you built the
object a long distance from the origin of the main floor plan.
Some peoplebuild their objects hundreds, sometimes
thousands of meters fromthe project origin. If you build very
close to the project origin (it must be the main project origin,
not a temporary one) then this offset will be very small. This
offset will place the object’s own origin within its own curtilage,
usually, the bottom left-hand corner.Lệnh ADD là một phần bù -
điều này là trong trường hợp bạn xây dựng đối tượng một
khoảng cách xa so với điểm gốc của sơ đồ tầng chính. Có người
xây dựng đối tượng của mình cách gốc dự án hàng trăm, có khi
hàng nghìn mét. Nếu bạn xây dựng rất gần với gốc dự án (phải là
gốc dự án chính, không phải là tạm thời) thì phần bù đắp này sẽ
rất nhỏ. Sự bù đắp này sẽ đặt gốc của đối tượng bên trong sụn
của chính nó, thường là, ở góc dưới cùng bên trái.
Vì bảng này được xây dựng tập trung trên nguồn gốc của dự án,
bạn có thể thấy rằng phần bù xấp xỉ một nửa chiều rộng và chiều
sâu của bảng - do đó, nó đang đặt gốc của bảng ở một góc.
As this table was built centrally over the project origin, you can
seethat the offset is approximately half the width and depth of
the table – so that it is putting the table’s own origin at one corner.
Lệnh BODY -1 là lệnh mà autoscripts luôn mang theo. Đây là
một lệnh cho trình thông dịch GDL để "đảm bảo tính toàn vẹn
3D của mỗi đối tượng". Chúng không cần thiết trong GDL sáng
tạo cho đến khi bạn thực hiện các tác vụ phức tạp hơn, chẳng hạn
như lệnh TUBE.
The BODY -1command is one that autoscripts always carry.
Theseare a command to the GDL interpreter to ‘ensure the 3D
integrity ofeach object’. They are not necessary in creative GDL
until you get into more complex tasks such as the TUBEcommand.
MODEL SOLIDjust tells the object to be solid. This is the default
condition, so if you did not write it, your model would still be
solideven without the command. RESOL 36 tells it that all
rounded surfaces are to have 36 polygons to make up a full
circle. 36 is the default value for this, so you do not really need
this either.MODEL SOLID chỉ cho vật thể là chất rắn. Đây là
điều kiện mặc định, vì vậy nếu bạn không viết nó, mô hình
của bạn sẽ vẫn ổn định ngay cả khi không có lệnh. RESOL
36 nói với nó rằng tất cả các bề mặt tròn phải có 36 đa giác
để tạo thành một hình tròn đầy đủ. 36 là giá trị mặc định cho
điều này, vì vậy bạn cũng không thực sự cần nó.
GLOB_SCRIPT_TYPE = 3
GLOB_CONTEXT = 3
GLOB_SCALE = 100
GLOB_NORTH_DIR = 90.0
GLOB_FRAME_NR = -1
GLOB_EYEPOS_X = -0.780905
GLOB_EYEPOS_Y = -0.557944
GLOB_EYEPOS_Z = 0.3
GLOB_TARGPOS_X = -1.26576
GLOB_TARGPOS_Y = -0.292552
GLOB_HSTORY_HEIGHT = 4.7

84 Object Making with ArchiCAD


Chapter 6: Looking into Autoscripted GDL

These ‘GLOB’ items are called Global Variables. They are not
doing anything here except recording the conditions that
prevailed whenthe object was made. At the time the table was
made the North point was in the 90˚ direction, there was no
animation taking place(so the Frame number is set to -1), the
camera eye and target positions were noted, the drawing scale
was 1:100. These are not commands, they are a historical
record.Các mục ‘GLOB’ này được gọi là Biến toàn cục. Họ
không làm bất cứ điều gì ở đây ngoại trừ việc ghi lại các điều
kiện đã áp dụng khi đối tượng được tạo ra. Tại thời điểm đặt
bảng, điểm Bắc ở hướng 90˚, không có hoạt ảnh nào diễn ra
(vì vậy số Khung được đặt thành -1), vị trí mắt camera và mục
tiêu được ghi nhận, tỷ lệ bản vẽ là 1: 100. Đây không phải là
lệnh, chúng là một bản ghi lịch sử.
You can find out more about Global Variables in Appendix A
of the GDL Reference Manual. Meanwhile, you can cheerfully
deleteall lines beginning with ‘GLOB’.
Bạn có thể tìm hiểu thêm về Biến toàn cục trong Phụ lục A của Sổ tay Tham khảo GDL. Trong khi đó, bạn có thể vui vẻ xóa tất cả các dòng bắt đầu bằng ‘GLOB’.

!!Slab-016 PEN 1
ADDZ 0.67
GLOB_LAYER = " Library Constructions"GLOB_ID =
"Slab-016"
GLOB_INTID = 14
BODY -1
CPRISM_ "Limestone, shiny", "Limestone, rough","Limestone, rough",
5, 0.03,
-0.771409, 0.469806, 15,
0.75, 0.469806, 15,
0.75, -0.45, 15,
-0.771409, -0.45, 15,
-0.771409, 0.469806, -1
BODY -1
DEL 1
This is the first real 3D element in the script. It is obviously the
tabletop as it is only 3 cm thick and is 0.67 meters off the floor.
The tabletop was made with a Slab tool, and this always
translatesinto a ‘CPRISM_’. The syntax for CPRISM_was
explained in chapter 5. The prism is lifted by 0.67 and drawn;
then the DEL command returns the cursor to the origin.Đây là
yếu tố 3D thực đầu tiên trong kịch bản. Nó rõ ràng là mặt bàn vì
nó chỉ dày 3 cm và cách mặt sàn 0,67 mét. Mặt bàn được tạo
bằng công cụ Slab và điều này luôn chuyển thành ‘CPRISM_’.
Cú pháp cho CPRISM_ đã được giải thích trong chương 5.
Lăng kính được nâng lên 0,67 và được vẽ; thì lệnh DEL trả con
trỏ về điểm gốc.
!!Slab-016
ADDZ 0.57
GLOB_INTID = 15
BODY -1
CPRISM_ "Limestone, shiny", "Limestone, rough","Limestone, rough",
10, 0.1,
-0.642659, 0.337009, 15,
0.615665, 0.337009, 15,
0.615665, -0.322618, 15,
-0.642659, -0.322618, 15,
-0.642659, 0.337009, -1,
-0.616168, 0.307869, 15,
0.583876, 0.307869, 15,
0.583876, -0.288179, 15,
-0.616168, -0.288179, 15,
-0.616168, 0.307869, -1
BODY -1
DEL 1

Object Making with ArchiCAD


85
Chapter 6: Looking into Autoscripted GDL

This is the frame under the tabletop. It is obviously the frame


because the height of the prism is 0.57 metres, and the
thickness of the prism is 0.1 meters. The frame is in fact a prism
with a hole through it. The masking values shows you how a
drilled hole works in GDL – the 15s are points on the outline, the
first -1 meansthat the outline is complete, and the second
occurrence of -1 means that the outline of the hole is complete.
Đây là khung dưới mặt bàn. Nó rõ ràng là khung vì chiều cao
của lăng kính là 0,57 mét, và bề dày của lăng kính là 0,1 mét.
Khung thực chất là một lăng kính có một lỗ xuyên qua nó. Các
giá trị mặt nạ cho bạn biết cách một lỗ khoan hoạt động trong
GDL - 15 là điểm trên đường viền, -1 đầu tiên có nghĩa là đường
viền đã hoàn thành và lần xuất hiện thứ hai của -1 có nghĩa là
đường viền của lỗ đã hoàn thành.
The following commands are obviously table legs as they are all
0.67 meters in thickness, and are not lifted above the XY
groundplane. If you analyze the XY points, they are all
approximatelysquare in a sectional size of 65 mm.
Các lệnh sau rõ ràng là chân bảng vì chúng đều là
Độ dày 0,67 mét và không được nâng lên trên mặt đất XY.
Nếu bạn phân tích các điểm XY, tất cả chúng đều xấp xỉ
hình vuông với kích thước mặt cắt là 65 mm.
!!Slab-017
GLOB_ID = "Slab-017"
GLOB_INTID = 16
BODY -1
CPRISM_ "Limestone, shiny", "Limestone, rough","Limestone, rough",
5, 0.67,
-0.658554, 0.355553, 15,
-0.597624, 0.355553, 15,
-0.597624, 0.286676, 15,
-0.658554, 0.286676, 15,
-0.658554, 0.355553, -1
BODY -1
!!Slab-017 GLOB_INTID =
17
BODY -1
CPRISM_ "Limestone, shiny", "Limestone, rough","Limestone, rough",
5, 0.67,
0.567981, 0.355553, 15,
0.62891, 0.355553, 15,
0.62891, 0.286676, 15,
0.567981, 0.286676, 15,
0.567981, 0.355553, -1
BODY -1
!!Slab-017 GLOB_INTID =
18
BODY -1
CPRISM_ "Limestone, shiny", "Limestone, rough","Limestone, rough",
5, 0.67,
-0.658554, -0.269636, 15,
-0.597624, -0.269636, 15,
-0.597624, -0.338512, 15,
-0.658554, -0.338512, 15,
-0.658554, -0.269636, -1
BODY -1
!!Slab-017 GLOB_INTID =
19
BODY -1
CPRISM_ "Limestone, shiny", "Limestone, rough","Limestone, rough",
5, 0.67,
0.567981, -0.269636, 15,
0.62891, -0.269636, 15,
0.62891, -0.338512, 15,

86 Object Making with ArchiCAD


Chapter 6: Looking into Autoscripted GDL

0.567981, -0.338512, 15,


0.567981, -0.269636, -1
BODY -1

What about the 2D Script? Còn về Script 2D?


Look at the 2D script – it may well look just as complicated, but
made of LINE2and POLY2commands. If you modify the shape
or size of the 3D object significantly, you may have to delete
thewhole 2D script and replace it with a PROJECT2 command
andsome Hotspots at the corners.Nhìn vào tập lệnh 2D - nó có
thể trông cũng phức tạp, nhưng được tạo từ các lệnh LINE2 và
POLY2. Nếu bạn sửa đổi đáng kể hình dạng hoặc kích thước
của đối tượng 3D, bạn có thể phải xóa toàn bộ tập lệnh 2D và
thay thế nó bằng lệnh PROJECT2 và một số Điểm phát sóng ở
các góc.

This can be tuned up – to be parametric Điều


này có thể được điều chỉnh - để được tham số
If you have the object open, save a copy of it under a new name –
‘Table_02.GSM’ perhaps. Now make new parameters for Materials,
Pen colors and Frame depth. Nếu bạn có đối tượng đang mở, hãy lưu
một bản sao của nó dưới tên mới - có lẽ là ‘Table_02.GSM’. Bây giờ
tạo các thông số mới cho Vật liệu, Màu bút và Độ sâu khung hình.

ArchiCAD

Object Making with


Simplify A and B to exactly 1.5 m and 0.9 m, the dimensions
we wanted in the first place when building the inaccurate
table. Here,the parameter box is in millimeters. Do not forget
to keep strictly to meters when writing in the actual script.Đơn
giản hóa A và B thành chính xác 1,5 m và 0,9 m, các kích thước
mà chúng tôi mong muốn ngay từ đầu khi xây dựng bảng không
chính xác. Ở đây, hộp tham số tính bằng milimét. Đừng quên
giữ nghiêm ngặt đến mét khi viết trong kịch bản thực tế.
Rebuilding the 3D Script Xây dựng lại tập lệnh 3D
Modify the labelling at the top to remind yourself when you
altered the object. Retain the first two MUL commands so that
the table will remain stretchy, but clean them up with the exact
valuesof A and B. Delete the MULZ command – this will be
done parametrically. Delete the offset, but remember to delete
the equivalent offset command in the 2D script – or the symbol
and the actual table will not coincide in location. Sửa đổi nhãn ở
trên cùng để nhắc nhở bản thân khi bạn đã thay đổi đối tượng.
Giữ lại hai lệnh MUL đầu tiên để bảng vẫn co giãn, nhưng làm
sạch chúng bằng các giá trị chính xác của A và B. Xóa lệnh
MULZ - điều này sẽ được thực hiện theo tham số. Xóa phần bù,
nhưng hãy nhớ xóa lệnh bù tương đương trong tập lệnh 2D - nếu
không ký hiệu và bảng thực tế sẽ không trùng khớp về vị trí.
Put in a parametric PENcommand, provide a label for the
tabletop, and remove all the redundant GLOBs and
BODYs.Đặt lệnh PEN tham số, cung cấp nhãn cho mặt bàn và
xóa tất cả GLOBs và BODY thừa
! Name : table_01.GSM
! Date : Monday, May 1, 2000
! Version : 6.50
! Written by ArchiCAD
! modified June 2000 by DNC

87
Chapter 6: Looking into Autoscripted GDL

MULX A/ 1.50
MULY B/ 0.90
PEN pcol
!Tabletop
ADDZ zzyzx-tthik
cPRISM_ topmat, framat, framat,5, tthik,
-0.75, 0.45, 15,
0.75, 0.45, 15,
0.75,-0.45, 15,
-0.75,-0.45, 15,
-0.75, 0.45, -1
DEL 1
For the tabletop, change the ADDZ command to be the total
tableheight minus the tabletop thickness. Then change the tabletop
thickness to our new parameter of ‘tthik’. Then clean up all the
‘millionth of a meter’ decimals to clean rounded dimensions. As
the CPRISM allows you to specify top material, bottom material
and side material within the command, replace all that
Limestonewith your new material parameters of ‘framat’ and
‘topmat’.Đối với mặt bàn, hãy thay đổi lệnh ADDZ thành tổng chiều cao
của bàn trừ đi độ dày của mặt bàn. Sau đó, thay đổi độ dày của mặt bàn
thành thông số mới của chúng tôi là ‘tthik’. Sau đó, xóa tất cả các số thập
phân ‘phần triệu của một mét’ để làm sạch các kích thước làm tròn. Vì
CPRISM cho phép bạn chỉ định vật liệu trên cùng, vật liệu dưới cùng và
vật liệu bên trong lệnh, hãy thay thế tất cả Đá vôi đó bằng các thông số
vật liệu mới của bạn là ‘framat’ và ‘topmat’.
Although it takes a bit more thinking about, you can do the
samething to the frame under the table top, simplifying all the
dimensions down to two decimal places, and making it so that
theframe has a thickness of 30 mm. Accepting that the height
of theframe is 0.1 meters, you can work out how high it has to
be raisedby the ADDZcommand.
Notice that after the tabletop and the table frame commands
arecomplete, the GDL returns the cursor to the origin. This is
good.Mặc dù phải suy nghĩ nhiều hơn một chút, bạn có thể
làm điều tương tự với khung bên dưới mặt bàn, đơn giản
hóa tất cả các kích thước xuống hai chữ số thập phân và
làm cho khung có độ dày 30 mm. Chấp nhận rằng chiều
cao của khung là 0,1 mét, bạn có thể tính toán độ cao của
khung bằng lệnh ADDZ.
Lưu ý rằng sau khi hoàn tất các lệnh về mặt bàn và khung
bảng, GDL sẽ trả lại con trỏ về điểm gốc. Điều này là tốt.
!Tableframe
ADDZ zzyzx-tthik-0.1
cPRISM_ framat, framat, framat,10, 0.1,
-0.64, 0.34, 15,
0.64, 0.34, 15,
0.64,-0.34, 15,
-0.64,-0.34, 15,
-0.64, 0.34, -1,
-0.61, 0.31, 15,
0.61, 0.31, 15,
0.61,-0.31, 15,
-0.61,-0.31, 15,
-0.61, 0.31, -1
DEL 1
If you have followed thus far, you have momentum and you
can push this process to completion. Label and change the
table legs inthe same way. Alter the height of the legs to the
height of the tableminus the tabletop thickness. Change the
materials to ‘legmat’. Nếu bạn đã theo dõi cho đến nay, bạn có động
lực và bạn có thể thúc đẩy quá trình này hoàn thành. Dán nhãn và thay
đổi chân bàn theo cách tương tự. Thay đổi chiều cao của chân với
chiều cao của bàn trừ đi độ dày của mặt bàn. Thay đổi vật liệu thành
‘legmat’.

88 Object Making with ArchiCAD


Chapter 6: Looking into Autoscripted GDL

!Legs
CPRISM_ legmat, legmat, legmat,5, zzyzx-tthik,
-0.658554, 0.355553, 15,
-0.597624, 0.355553, 15,
-0.597624, 0.286676, 15,
-0.658554, 0.286676, 15,
-0.658554, 0.355553, -1
CPRISM_ legmat, legmat, legmat,5, zzyzx-tthik,
0.567981, 0.355553, 15,
0.62891, 0.355553, 15,
0.62891, 0.286676, 15,
0.567981, 0.286676, 15,
0.567981, 0.355553, -1
CPRISM_ legmat, legmat, legmat,5, zzyzx-tthik,
-0.658554, -0.269636, 15,
-0.597624, -0.269636, 15,
-0.597624, -0.338512, 15,
-0.658554, -0.338512, 15,
-0.658554, -0.269636, -1
CPRISM_ legmat, legmat, legmat,5, zzyzx-tthik,
0.567981, -0.269636, 15,
0.62891, -0.269636, 15,
0.62891, -0.338512, 15,
0.567981, -0.338512, 15,
0.567981, -0.269636, -1
DEL TOP
To finish, you can issue a DEL TOPcommand. This is similar to
the DELcommand, but it DELs everything, including all the
MULcommands at the beginning. If you write DEL 2, this will
work just as well. DEL 2 is better because it requires you to
count thecursor commands at the start of the script, which
means that youare in full control of the process – DEL TOPis
just a guess. Để kết thúc, bạn có thể ra lệnh DEL TOP. Điều này
tương tự như lệnh DEL, nhưng nó XÓA mọi thứ, bao gồm tất cả
các lệnh MUL ở đầu. Nếu bạn viết DEL 2, điều này cũng sẽ hiệu
quả. DEL 2 tốt hơn vì nó yêu cầu bạn đếm các lệnh con trỏ ở đầu
tập lệnh, có nghĩa là bạn có toàn quyền kiểm soát quá trình - DEL
TOP chỉ là phỏng đoán.
Find and Replace, to clean up the script Tìm và Thay
thế, để xóa tập lệnh
Finally, you could use the Find and Replace command to weed
outall those spaces in the original script. Type 3 spaces in the
Find field and one space in the Replace field. Place your text
cursor at the top of the script, and hit the ‘Replace All’ button.
Your text willbe cleaned up nicely. Cuối cùng, bạn có thể sử
dụng lệnh Tìm và Thay thế để loại bỏ tất cả những khoảng trống
đó trong tập lệnh gốc. Nhập 3 dấu cách vào trường Tìm và một
dấu cách vào trường Thay thế. Đặt con trỏ văn bản của bạn ở đầu
tập lệnh và nhấn nút 'Thay thế tất cả'. Văn bản của bạn sẽ được
làm sạch một cách độc đáo.
Object Making with ArchiCAD
89
Chapter 6: Looking into Autoscripted GDL

Add the final touches of quality Thêm những nét cuối cùng
về chất lượng
This Table could now be used, but there is an extra level of
qualitywe can give it. The tabletop and frame were ‘tidied up’ –
their eyeballed dimensions were converted to exact clean ones.
The table legs could now appear somewhat uneven where they
join the frame. If you use the BLOCKcommand, or better, use
CPRISM,you could provide much better table legs. As the legs
were square sections, approx 6-7 cm wide, let’s make them
exactly 7 cm wide, and modify the CPRISM_so that it is axially
symmetrical, as follows: Bảng này hiện có thể được sử dụng, nhưng
chúng tôi có thể cung cấp thêm một mức chất lượng nữa. Mặt bàn
và khung đã được 'thu dọn' - kích thước nhãn cầu của chúng đã
được chuyển đổi thành kích thước sạch sẽ chính xác. Các chân bàn
bây giờ có thể có vẻ không đồng đều khi chúng ghép vào khung.
Nếu bạn sử dụng lệnh BLOCK hoặc tốt hơn là sử dụng CPRISM,
bạn có thể cung cấp chân bàn tốt hơn nhiều. Vì chân là các phần
hình vuông, rộng khoảng 6-7 cm, hãy làm cho chúng rộng chính
xác 7 cm và sửa đổi CPRISM_ để nó đối xứng theo trục, như sau:
!One Leg
CPRISM_ legmat, legmat, legmat,5, zzyzx-
tthik,
0.035, 0.035, 15,
-0.035, 0.035, 15,
-0.035,-0.035, 15,
0.035,-0.035, 15,
0.035, 0.035, -1

Copy the prism command that produces one of the legs, and
adaptthe XY locations as shown. Do a little sketch like this, and
numbereach corner. You can see that the prism starts from the
top right, and works its way anti-clockwise around the tableleg.
It is important to make sure the start point [1] is the same as the
end point [5]. Use the diagram to make sure you get your minus
signs in the right place.Sao chép lệnh lăng kính tạo ra một trong
các chân và điều chỉnh các vị trí XY như được hiển thị. Làm một
bản phác thảo nhỏ như thế này, và đánh số mỗi góc. Bạn có thể
thấy rằng lăng kính bắt đầu từ trên cùng bên phải và hoạt động
ngược chiều kim đồng hồ xung quanh tableleg. Điều quan trọng
là đảm bảo điểm bắt đầu [1] giống với điểm kết thúc [5]. Sử
dụng sơ đồ để đảm bảo rằng bạn đặt đúng chỗ các dấu trừ.
You can simplify it even further. The only point in using
CPRISMis if the materials of top, bottom and sides are
different. For creative GDL with a solid prism that is all one
color, you can use plain PRISM, and declare the Material
value beforehand. You canremove the 15s and the
underscore. Make sure you also remove the trailing
comma.Bạn có thể đơn giản hóa nó hơn nữa. Điểm duy nhất
trong việc sử dụng CPRISM là nếu vật liệu của mặt trên, mặt
dưới và các mặt khác nhau. Đối với GDL sáng tạo với lăng
kính đặc có một màu, bạn có thể sử dụng PRISM đơn giản
và khai báo trước giá trị Vật liệu. Bạn có thể xóa số 15 và
dấu gạch dưới. Đảm bảo rằng bạn cũng loại bỏ dấu phẩy ở
cuối.
!One Leg - simplest statementMATERIAL
legmat
PRISM 5, zzyzx-tthik,
0.035, 0.035,
-0.035, 0.035,
-0.035,-0.035,
0.035,-0.035,
0.035, 0.035
Now that you have a single leg, you can use the ADD
command and post a leg to each corner of the frame. Now
that the frame and leg are defined precisely, you will have a
precise connection of frame and leg that will look good close
up. If you remember, the internal line of the table frame was
defined in meters. So you canuse the same dimensions.
Bây giờ bạn đã có một chân, bạn có thể sử dụng lệnh ADD
và đặt một chân lên mỗi góc của khung hình. Bây giờ khung
và chân đã được xác định chính xác, bạn sẽ có một kết nối
chính xác giữa khung và chân trông cận cảnh tốt. Nếu bạn
nhớ, dòng bên trong của khung bảng được xác định bằng
mét. Vì vậy, bạn có thể sử dụng các kích thước giống nhau.

90 Object Making with ArchiCAD


Chapter 6: Looking into Autoscripted GDL

!All Leg - simpler statementMATERIAL


legmat All Leg - câu lệnh đơn giản hơn
MATERIAL legmat
ADD -0.61, 0.31, 0
PRISM 5, zzyzx-tthik,
0.035, 0.035,
-0.035, 0.035,
-0.035,-0.035,
0.035,-0.035,
0.035, 0.035
DEL 1
ADD 0.61, 0.31, 0
PRISM 5, zzyzx-tthik,
0.035, 0.035,
-0.035, 0.035,
-0.035,-0.035,
0.035,-0.035,
0.035, 0.035
DEL 1
ADD 0.61,-0.31, 0
PRISM 5, zzyzx-tthik,
0.035, 0.035,
-0.035, 0.035,
-0.035,-0.035,
0.035,-0.035,
0.035, 0.035
DEL 1
ADD -0.61,-0.31, 0
PRISM 5, zzyzx-tthik,
0.035, 0.035,
-0.035, 0.035,
-0.035,-0.035,
0.035,-0.035,
0.035, 0.035
DEL 1
As each leg is built, you use DEL 1 to get back to the origin,
and wait for the next command. Khi mỗi chân được xây
dựng, bạn sử dụng DEL 1 để quay lại điểm gốc và đợi lệnh
tiếp theo.

The table legs now have a clean relationship with the frame – as
in a mortice and tenon joint Chân bàn bây giờ có mối quan hệ
Object Making with sạch sẽ với khung - như trong khớp nối mộng và khớp mộng
ArchiCAD
91
Chapter 6: Looking into Autoscripted GDL

You are probably getting worried by this time about the


amount oftyping involved. If you make the maximum use of
Copy and Paste,the amount of typing is not huge as most of
your effort is in modifying commands rather than typing from
new. Bạn có thể đang lo lắng vào thời điểm này về số lượng
liên quan đến việc đánh máy. Nếu bạn sử dụng tối đa tính
năng Sao chép và Dán, thì số lượng gõ không quá lớn vì phần
lớn nỗ lực của bạn là sửa đổi các lệnh chứ không phải gõ từ
mới.
You might also want the option to change the leg shape from
square to cylinder or cone. For this you would need to
reorganizethe script so that the legs are capable of having
different shapes. The key to this is the SUBROUTINE. This is
where a group of codeis used often. Instead of retyping it again
and again, it is better togive it a number, and just call it by
number with a GOSUB command when a leg needs to be
drawn. This tableleg is the idealopportunity to illustrate the
use of the subroutine. See chapter 7 for more on subroutines.
Bạn cũng có thể muốn tùy chọn thay đổi hình dạng chân từ
hình vuông sang hình trụ hoặc hình nón. Đối với điều này,
bạn sẽ cần phải tổ chức lại script để các chân có thể có các
hình dạng khác nhau. Chìa khóa của điều này là
SUBROUTINE. Đây là nơi một nhóm mã được sử dụng
thường xuyên. Thay vì gõ lại nhiều lần, tốt hơn là bạn nên cho
nó một số và chỉ cần gọi nó bằng số bằng lệnh GOSUB khi
cần rút ra một chân. Tableleg này là cơ hội lý tưởng để minh
họa việc sử dụng chương trình con. Xem chương 7 để biết
thêm về các chương trình con.
!All Leg - simpler statementMATERIAL
legmat
ADD -0.61, 0.31, 0
GOSUB 100:!Draw one legDEL 1
ADD 0.61, 0.31, 0
GOSUB 100:!Draw one legDEL 1
ADD 0.61,-0.31, 0
GOSUB 100:!Draw one legDEL 1
ADD -0.61,-0.31, 0
GOSUB 100:!Draw one legDEL 1
Somewhere, further down in the script, after an ENDcommand,
you can have a subroutine numbered 100 that contains the
PRISMstatement. Ở đâu đó, sâu hơn trong tập lệnh, sau lệnh
END, bạn có thể có một chương trình con được đánh số 100
có chứa câu lệnh PRISM.
Cautionary note for modifying objects in this way Lưu ý
cẩn thận khi sửa đổi các đối tượng theo cách này
If you make objects using the Wall tool, and try this method of
modification, you need to be more experienced. The CPRISM is
really a very friendly command when you get used to it – so it is
easy to modify objects made with the Slab tool. The Wall tool
generates XWALLcommands in the autoscript, and these are
more resistant to human intervention. As the Wall tool is
frequently usedfor objects that are captured in side view from
90˚, there are some additional ROT commands at the start of the
3D script which are best left untouched. Nếu bạn tạo đồ vật bằng
công cụ Wall và thử phương pháp sửa đổi này, bạn cần phải có
nhiều kinh nghiệm hơn. CPRISM thực sự là một lệnh rất thân
thiện khi bạn đã quen với nó - vì vậy rất dễ dàng để sửa đổi các
đối tượng được thực hiện bằng công cụ Slab. Công cụ Wall tạo
ra các lệnh XWALL trong autoscript và các lệnh này có khả
năng chống lại sự can thiệp của con người cao hơn. Vì công cụ
Tường thường được sử dụng cho các đối tượng được chụp ở chế
độ xem bên từ 90˚, nên có một số lệnh ROT bổ sung ở đầu tập
lệnh 3D tốt nhất là không được tác động.

92 Object Making with ArchiCAD


Chapter 6: Looking into Autoscripted GDL

6.2 Come back to ‘Instant GDL’


Quay lại 'GDL tức thì'
This is the method whereby you make a component in the
ArchiCAD floor plan, then drag and drop it into a script
window.(See chapter 5.) This method is not advisable for entire
objects for which methods 1 and 2 are perfectly suited. But it is
the ideal way to make components such as fretwork, curvy
shapes, outlines for furniture legs and a hundred other uses.
These can be stitched intothe structure of your creatively
scripted object. It is possible to dothe same for 2D objects,
such as fills and lines.Đây là phương pháp theo đó bạn tạo một
thành phần trong sơ đồ tầng ArchiCAD, sau đó kéo và thả nó
vào cửa sổ tập lệnh. (Xem chương 5.) Phương pháp này
không được khuyến khích cho toàn bộ các đối tượng mà
phương pháp 1 và 2 là hoàn toàn phù hợp. Nhưng đó là cách
lý tưởng để tạo ra các thành phần như phím đàn, các hình
cong, đường viền cho chân đồ nội thất và hàng trăm công
dụng khác. Chúng có thể được ghép vào cấu trúc của đối
tượng được viết theo kịch bản sáng tạo của bạn. Có thể làm
tương tự đối với các đối tượng 2D, chẳng hạn như tô và
đường.
Use 2D to help your 3D model Sử dụng 2D để trợ giúp
mô hình 3D của bạn
Surprisingly, the greatest assistance to creative 3D GDL is the
2D Fill tool. Drag and drop a 2D fill into the 2D Script window.
Thencopy and paste the 2D fill (which by this time is a
POLY2_B command) into the 3D window and convert it to a
3D command.Đáng ngạc nhiên, sự trợ giúp lớn nhất cho GDL
3D sáng tạo là công cụ 2D Fill. Kéo và thả phần tô 2D vào cửa
sổ Tập lệnh 2D. Sau đó, sao chép và dán phần tô 2D (lúc này là
lệnh POLY2_B) vào cửa sổ 3D và chuyển nó thành lệnh 3D.
A lot of 3D commands involve drawing out a 2D profile and
then doing something with it: EXTRUDEextrudes, REVOLVE
lathes the section around an axis; SWEEP pulls a profile through
3D space, twisting or rescaling the section as it goes; TUBE also
draws a 2D profile through 3D space, allowing it to be twisted
and mitred as itgoes; PYRAMID pulls the nodes on a 2D profile
to one point; RULED takes the points on a 2D profile and
allows you to form a 3D solid by repeating the same number
of nodes at different heights. These all use the same syntax for
XY points as POLY2_B.Rất nhiều lệnh 3D liên quan đến việc
vẽ ra một biên dạng 2D và sau đó thực hiện điều gì đó với nó:
EXTRUDE extrude, REVOLVE tiện mặt cắt xung quanh một
trục; SWEEP kéo một cấu hình qua không gian 3D, xoắn hoặc
thay đổi tỷ lệ của phần khi nó đi qua; TUBE cũng vẽ một biên
dạng 2D thông qua không gian 3D, cho phép nó được xoắn và
mở ra khi nó di chuyển; PYRAMID kéo các nút trên biên dạng
2D về một điểm; RULED lấy các điểm trên cấu hình 2D và cho
phép bạn tạo hình khối 3D bằng cách lặp lại cùng một số nút ở
các độ cao khác nhau. Tất cả đều sử dụng cùng một cú pháp cho
điểm XY là POLY2_B.
All of these profiles support the use of Polylines. These are
outsidethe scope of this book. If you use the 2D Fill tool and
force lines tobe curves, and then copy them to GDL, you will
find many lines with 900 and 4000 in them. These define centres
and radii of curvature. If you copy and paste these 2D profiles
and use them inthis way, you don’t entirely have to know how
they work. They just do.Tất cả các cấu hình này đều hỗ trợ việc sử
dụng Polylines. Những điều này nằm ngoài phạm vi của cuốn sách
này. Nếu bạn sử dụng công cụ 2D Fill và ép các đường thành đường
cong, sau đó sao chép chúng vào GDL, bạn sẽ tìm thấy nhiều đường
với 900 và 4000 trong đó. Chúng xác định tâm và bán kính của độ
cong. Nếu bạn sao chép và dán các cấu hình 2D này và sử dụng
chúng theo cách này, bạn không hoàn toàn phải biết chúng hoạt
động như thế nào. Họ chỉ làm.

Try instant GDL with a REVOLVE Dùng thử


GDL tức thì với một REVOLVE
There is not time to go into all of these, but let’s try one –
REVOLVE. Look up REVOLVEin the GDL Reference Manual.
Thismethod makes it easy beyond your expectations to make
a lathedobject. Basically you only have to draw a 2D profile in
the Positive-Y zone – that means all point above the X axis –
and youcan revolve it. When you draw the profile, you have to
close it.Không có thời gian để đi sâu vào tất cả những điều này,
nhưng chúng ta hãy thử một - REVOLVE. Tra cứu REVOLVE
trong Hướng dẫn tham khảo GDL. Phương pháp này giúp bạn
dễ dàng tạo một vật thể tiện ngoài mong đợi. Về cơ bản, bạn chỉ
phải vẽ một biên dạng 2D trong vùng Dương-Y - có nghĩa là tất
cả các điểm trên trục X - và bạn có thể xoay nó.
Khi bạn vẽ hồ sơ, bạn phải đóng nó.
The easiest way is to select a ‘silly’ point somewhere well away
from the main profile. If it is in the negative-Y zone, you will
easilyidentify it when it is converted into GDL code.Cách dễ
nhất là chọn một điểm 'ngớ ngẩn' ở đâu đó cách xa hồ sơ chính.
Nếu nó nằm trong vùng âm-Y, bạn sẽ dễ dàng nhận ra nó khi nó
được chuyển thành mã GDL.
Object Making with ArchiCAD
93
Chapter 6: Looking into Autoscripted GDL

Create a New Library Part from the File menu, and position the
2Dwindow to the right of the screen, so that it is next to the
project floor plan. Drag and Drop the 2D fill into the 2D Script
window. Tạo Phần Thư viện Mới từ menu Tệp và đặt cửa sổ
2D ở bên phải màn hình, sao cho nó bên cạnh sơ đồ tầng của
dự án. Kéo và thả phần tô 2D vào cửa sổ Tập lệnh 2D.

PEN 1
SET FILL "25 %"
POLY2_B 22, 3, 1, 91,
-0.000071, 0.06026, 1,
0.048921, 0.06026, 1,
0.048921, 0.051348, 1,
0.055658, 0.217545, 900,
0.0, 25.2526, 4001,
0.120465, 0.064357, 1,
0.13148, 0.020407, 900,
0.0, -80.7543, 4001,
0.173089, 0.03834, 1,
0.180185, 0.036271, 900,
0.0, -147.4796, 4001,
0.18728, 0.03834, 1,
0.229512, 0.016782, 900,
0.0, -74.8857, 4001,
0.239313, 0.063174, 1,
0.327746, 0.331473, 900,
0.0, 17.8153, 4001,
0.325639, 0.048983, 1,
0.325639, 0.059626, 1,
0.374715, 0.059626, 1,
0.179133, -0.056834, 1,
-0.000071, 0.06026, -1
HOTSPOT2 -0.000071, 0.06026
HOTSPOT2 0.048921, 0.06026
HOTSPOT2 0.048921, 0.051348
HOTSPOT2 0.120465, 0.064357
HOTSPOT2 0.173089, 0.03834
HOTSPOT2 0.18728, 0.03834
HOTSPOT2 0.239313, 0.063174
HOTSPOT2 0.325639, 0.048983
HOTSPOT2 0.325639, 0.059626
HOTSPOT2 0.374715, 0.059626
HOTSPOT2 0.179133, -0.056834
HOTSPOT2 -0.000071, 0.06026
Copy only the list of XY points across to the 3D script
window,and delete the hotspots and all the rest.Chỉ sao
chép danh sách các điểm XY trên cửa sổ tập lệnh 3D và
xóa các điểm phát sóng và tất cả các điểm còn lại.
Delete the last point in the list (which is simple a repeat of the first
point). Delete the second last point (which is the ‘silly’ point).Xóa
điểm cuối cùng trong danh sách (đơn giản là lặp lại điểm đầu tiên).
Xóa điểm cuối cùng thứ hai (là điểm ‘ngớ ngẩn’).

94 Object Making with ArchiCAD


Chapter 6: Looking into Autoscripted GDL

Now add the REVOLVE command above the list of points. The
word REVOLVE is followed by the number of points (was 22,
now20), the angle through which the profile should be
revolved (360˚)and finally a masking value, which you can
assume to be 63. Bây giờ thêm lệnh REVOLVE phía trên
danh sách các điểm. Từ REVOLVE được theo sau bởi số
điểm (là 22, bây giờ là 20), góc mà hồ sơ sẽ được xoay qua
(360˚) và cuối cùng là giá trị che, bạn có thể giả định là 63.
PEN 1
MATERIAL 'Whitewash'
RESOL 16
REVOLVE 20,360,63,
-0.000071, 0.06026, 1,
0.048921, 0.06026, 1,
0.048921, 0.051348, 1,
0.055658, 0.217545, 900,
0.0, 25.2526, 4001,
0.120465, 0.064357, 1,
0.13148, 0.020407, 900,
0.0, -80.7543, 4001,
0.173089, 0.03834, 1,
0.180185, 0.036271, 900,
0.0, -147.4796, 4001,
0.18728, 0.03834, 1,
0.229512, 0.016782, 900,
0.0, -74.8857, 4001,
0.239313, 0.063174, 1,
0.327746, 0.331473, 900,
0.0, 17.8153, 4001,
0.325639, 0.048983, 1,
0.325639, 0.059626, 1,
0.374715, 0.059626, 1

If this lathed shape is a stone baluster, you only have to precede


thecommand with a ROTY -90command and it will stand
upright.Nếu hình dạng tiện này là một khối đá, bạn chỉ cần đặt
trước lệnh bằng lệnh ROTY -90 và nó sẽ đứng thẳng.
The RESOL command is most important. The RESOL command
tells GDL that you only want 16 polygonal faces to the shape.
You can ruin your model with too many polygons. Multiply
these stonebalusters by a few hundred and your computer may
not have enough memory to render, and you may have an
unrealistic number of polygons if you wish to export to DXF or
Art•lantis.Lệnh RESOL là quan trọng nhất. Lệnh RESOL cho
GDL biết rằng bạn chỉ muốn có 16 mặt đa giác cho hình dạng.
Bạn có thể làm hỏng mô hình của mình với quá nhiều đa giác.
Nhân những khối đá này với vài trăm và máy tính của bạn có thể
không có đủ bộ nhớ để hiển thị và bạn có thể có một số lượng đa
giác không thực tế nếu bạn muốn xuất sang DXF hoặc Art •
lantis.
The benefit of being a GDL user is that you can control
thenumber of polygons with a simple RESOL
command.Lợi ích của việc trở thành người dùng GDL là
bạn có thể kiểm soát số lượng đa giác bằng một lệnh
RESOL đơn giản.

Object Making with ArchiCAD


95
Chapter 6: Looking into Autoscripted GDL

Summary of GDL in this section Tóm tắt về GDL trong phần này
– The table example is so simple that you may feel that, by
now,you are quite capable of scripting this in native GDL
withoutneeding the autoscript. But it has been a good
means of demonstrating the contents of an autoscripted
object.Ví dụ bảng đơn giản đến mức bạn có thể cảm thấy
rằng, hiện tại, bạn khá có khả năng viết kịch bản này
trong GDL gốc mà không cần đến autoscript. Nhưng nó là
một phương tiện tốt để thể hiện nội dung của một đối
tượng được viết tự động.
– The easiest things to change into parameters are the names
ofmaterials – they can be replaced with variable
names.Những thứ dễ dàng nhất để thay đổi thành tham số là
tên của vật liệu - chúng có thể được thay thế bằng tên biến.
– The methods used in this chapter are fine for complete
objects. But if you are working at creative GDL and
simplywant a quick solution, try ‘Instant GDL’.Các phương
thức được sử dụng trong chương này đều tốt cho các đối
tượng hoàn chỉnh. Nhưng nếu bạn đang làm việc tại GDL
sáng tạo và chỉ đơn giản là muốn có một giải pháp nhanh
chóng, hãy thử ‘Instant GDL’.
– Many 3D objects use the same syntax as the 2D Fill tool,
soyou can make interesting 3D objects easily.Nhiều đối
tượng 3D sử dụng cú pháp tương tự như công cụ 2D Fill,
vì vậy bạn có thể tạo các đối tượng 3D thú vị một cách
dễ dàng.
– It is important to control the number of polygons in the model
– if you are building any objects that are repeated in great
numbers you must use GDL to define the number of
polygonsin each solid.Điều quan trọng là phải kiểm soát số
lượng đa giác trong mô hình
- nếu bạn đang xây dựng bất kỳ đối tượng nào được lặp lại
với số lượng lớn, bạn phải sử dụng GDL để xác định số
lượng đa giác trong mỗi khối rắn.
96 Object Making with ArchiCAD
Chapter 7: GDL

Chapter 7
GDL Roundup
There is a lot more to GDL than we have been able to cover in this
slim volume. This section runs through some of the further
possibilities in a brief form.

GDL còn nhiều điều hơn nữa mà chúng tôi có thể trình bày trong
tập mỏng này. Phần này trình bày một số khả năng khác trong một
hình thức ngắn gọn.
Object Making with ArchiCAD
97
Chapter 7: GDL Roundup

7.1 GDL Roundup


This book is an introductory tutorial for GDL, a tour through
the easy foothills. If your interest has been aroused, there is
further reading for you. No doubt, the best way to learn GDL is
to attemptsome practical tasks, which will be both useful to
you in your work and will teach you additional techniques in
GDL.Cuốn sách này là một hướng dẫn giới thiệu cho GDL,
một chuyến tham quan qua các chân đồi dễ dàng. Nếu sự
quan tâm của bạn đã được khơi dậy, có thêm bài đọc dành
cho bạn. Không nghi ngờ gì nữa, cách tốt nhất để học GDL là
thử một số nhiệm vụ thực tế, điều này sẽ hữu ích cho bạn
trong công việc và sẽ dạy bạn các kỹ thuật bổ sung trong
GDL.
In GDL, there are four main areas of knowledge Trong
GDL, có bốn lĩnh vực kiến thức chính
– We have to analyze the 3D nature of the object we wish to
build. See how much of it can be done with simple blocks
or cylinders, and then how much of it will require more
complexcommands such as PRISM, REVOLVEand
TUBE.Chúng ta phải phân tích bản chất 3D của đối tượng mà
chúng ta muốn xây dựng. Xem bao nhiêu trong số đó có thể
được thực hiện với các khối hoặc hình trụ đơn giản, và sau đó
bao nhiêu trong số đó sẽ yêu cầu các lệnh phức tạp hơn như
PRISM, REVOLVE và TUBE.
– The GDL itself. The syntax of each command, which
command to use under the circumstances, how to control
polygons, how to define text style and materials – and
muchmore. You need to become conversant with 3D and
2D syntax.Bản thân GDL. Cú pháp của mỗi lệnh, lệnh sử
dụng trong các trường hợp nào, cách điều khiển đa giác,
cách xác định kiểu văn bản và chất liệu - và nhiều hơn thế
nữa. Bạn cần trở nên thông thạo với cú pháp 3D và 2D.
– The programming language of GDL. This has not been
covered in detail in this tutorial, but it is possible to write
longcomplex scripts in GDL using Loops and Subroutines.
GDL is based on BASIC, a programming language that
was devised inthe 70s, became universally known to users
of the Apple II, Commodore Pet and Tandy TRS-80
machines of the early eighties; and now it has been rather
forgotten. In GDL, it liveson! GDL can read and write
data/text files, include complex calculation routines with
a GDL script, such as structural calculation or predicting
the outline points of a surface in 3Dspace.Ngôn ngữ lập
trình của GDL. Điều này chưa được đề cập chi tiết trong
hướng dẫn này, nhưng bạn có thể viết các tập lệnh phức
tạp dài trong GDL bằng cách sử dụng Vòng lặp và
Chương trình con. GDL dựa trên BASIC, một ngôn ngữ
lập trình được phát minh ra vào những năm 70, đã trở nên
phổ biến đối với người dùng Apple II, Commodore Pet và
Tandy TRS-80 vào đầu những năm 80; và bây giờ nó đã
bị lãng quên. Trong GDL, nó vẫn tồn tại! GDL có thể đọc
và ghi dữ liệu / tệp văn bản, bao gồm các quy trình tính
toán phức tạp với tập lệnh GDL, chẳng hạn như tính toán
cấu trúc hoặc dự đoán các điểm phác thảo của bề mặt
trong không gian 3D.
– GDL can react according to conditions in the main
ArchiCAD model. We saw in Chapter 4 how a doorframe
could respond to the current drawing scale. With
knowledge of the thicknessand materials of the current
Wall, a Window can be more powerful. With knowledge of
the object’s position in 3D spaceand the location of the
current camera, the object knows howfar away the camera
is, and in which direction. Thus, it can turn to face the
camera if it’s a flat tree; or simplify itself if its acomplex
object that is too far away to require drawing in
detail.GDL có thể phản ứng theo các điều kiện trong mô
hình ArchiCAD chính. Chúng ta đã thấy trong Chương 4
cách khung cửa có thể đáp ứng với tỷ lệ bản vẽ hiện tại.
Với kiến thức về độ dày và vật liệu của Tường hiện tại,
Cửa sổ có thể mạnh hơn. Với kiến thức về vị trí của đối
tượng trong không gian 3D và vị trí của máy ảnh hiện tại,
đối tượng sẽ biết máy ảnh đang ở bao xa và theo hướng
nào. Do đó, nó có thể quay mặt về phía máy ảnh nếu nó là
một cái cây phẳng; hoặc tự đơn giản hóa nếu nó là một
đối tượng phức tạp ở quá xa để yêu cầu vẽ chi tiết.
See also.… Xem thêm....
The GDL Cookbook covers all of these topics in greater
detail,and provides practical working examples to help you
learn.
GDL Cookbook bao gồm tất cả các chủ đề này một cách chi
tiết hơn và cung cấp các ví dụ làm việc thực tế để giúp bạn tìm
hiểu.

98 Object Making with ArchiCAD


Chapter 7: GDL Roundup

The programming language of GDL Ngôn ngữ


lập trình của GDL
You have discovered that you can write GDL without being
a programmer. If you can issue a few GDL commands,
move thecursor around, write some IF statements that make
the object smarter and safer, then you have been
programming. In fact, programming is an activity all of us do
– ants do it when lookingafter their eggs, squirrels do it when
hoarding their winter food,lions do it when hunting zebra,
children do it when playing withtheir toys and developing
social relationships. Adults do it whenever they get in their
car and drive to work.Bạn đã phát hiện ra rằng bạn có thể
viết GDL mà không cần phải là một lập trình viên. Nếu bạn
có thể đưa ra một vài lệnh GDL, di chuyển con trỏ xung
quanh, viết một số câu lệnh IF để làm cho đối tượng thông
minh hơn và an toàn hơn, thì bạn đã được lập trình. Trên
thực tế, lập trình là một hoạt động mà tất cả chúng ta đều
làm - kiến làm khi chăm sóc trứng, sóc làm khi tích trữ thức
ăn mùa đông, sư tử làm khi săn ngựa vằn, trẻ em làm khi
chơi với đồ chơi của chúng và phát triển các mối quan hệ xã
hội. Người lớn làm điều đó bất cứ khi nào họ lên xe và lái
xe đi làm.
Programming simply means the organization of a set of
actions conditioned by a number of IFstatements that decide
which actions shall be taken. It also implies many repetitive
actions – inreal life, you could stack hundreds of books on a
shelf and makedecisions for each one as you proceeded to sort
them in alphabetical order, by ISBN or size.Lập trình đơn giản
có nghĩa là tổ chức một tập hợp các hành động được điều kiện
bởi một số câu lệnh IF để quyết định hành động nào sẽ được
thực hiện. Nó cũng ngụ ý nhiều hành động lặp đi lặp lại - trong
cuộc sống thực, bạn có thể xếp hàng trăm cuốn sách lên giá và
đưa ra quyết định cho từng cuốn khi bạn tiến hành sắp xếp
chúng theo thứ tự bảng chữ cái, theo ISBN hoặc kích thước.
To get further with GDL you will need to learn about
Subroutines
and Loops.Để tiến xa hơn với GDL, bạn sẽ cần tìm hiểu về
Chương trình con
và Vòng lặp.

7.2 Subroutines Chương trình


hành chính
Subroutines are used to avoid repetitive typing Các
chương trình con được sử dụng để tránh nhập lặp đi lặp
lại
You can take a piece of text that will have to be repeated
frequently, give it a number, and then call the subroutine with
a GOSUB command. For example, in the case of our basic chair
in Chapter 3, if your chair has an elaborate leg that takes a
hundredlines to describe and you have four legs to do, you
would not want to type that all out again, in fact you would
not even want tocopy and paste the leg four times.Bạn có thể
lấy một đoạn văn bản sẽ phải lặp lại thường xuyên, đặt cho nó
một số, sau đó gọi chương trình con bằng lệnh GOSUB. Ví
dụ: trong trường hợp chiếc ghế cơ bản của chúng tôi trong
Chương 3, nếu chiếc ghế của bạn có một chân phức tạp mà
bạn phải mất cả trăm dòng để mô tả và bạn có bốn chân để
làm, bạn sẽ không muốn gõ lại tất cả, thực tế là bạn. thậm chí
sẽ không muốn sao chép và dán chân bốn lần.
!All the legs GOSUB
100:!One leg
ADDX A
GOSUB 100:!One leg
ADDY B
GOSUB 100:!One leg
ADDX -A
GOSUB 100:!One legDEL
3
Subroutines are used to give structure to a long script
Các chương trình con được sử dụng để cung cấp cấu
trúc cho một tập lệnh dài
The main script can consist of a number of GOSUBcommands to
aseries of subroutines that build elements of the model. These
are logically based on your 3D analysis.Tập lệnh chính có thể
bao gồm một số lệnh GOSUB cho một loạt các chương trình
con xây dựng các phần tử của mô hình. Những điều này dựa
trên phân tích 3D của bạn một cách hợp lý.
Object Making with ArchiCAD
99
Chapter 7: GDL
Roundup
!Chair
GOSUB 200:!All the Legs GOSUB
300:!Draw the Seat GOSUB 400:!Build
the Back
END !-----------------------------
100:!One single leg
BLOCK tsec,tsec,seathit-tsecRETURN
200:!All the legs GOSUB
100:!One leg
ADDx A
GOSUB 100:!One legADDy B
GOSUB 100:!One legADDx -
A
GOSUB 100:!One legDEL 3
RETURN
In this case, you would refer to the first part of the script as the
‘executive script’, with most of the actual work being done by the
subroutines that follow the ENDcommand. Let’s summarize some
easy to remember ‘must-do’ rules.Trong trường hợp này, bạn sẽ gọi
phần đầu tiên của tập lệnh là 'tập lệnh điều hành', với hầu hết công
việc thực tế được thực hiện bởi các chương trình con tuân theo lệnh
END. Hãy tóm tắt một số quy tắc "phải làm" dễ nhớ.
The subroutines must all be written after the END command.
Subroutines must start with a number and a label, and end
withthe command RETURN. Subroutines may call other
subroutines. Subroutines must be self contained; the number
of DELs must exactly equal the number of cursor
movements.Các chương trình con đều phải được viết sau
lệnh END. Các chương trình con phải bắt đầu bằng một số
và một nhãn, và kết thúc bằng lệnh RETURN. Các chương
trình con có thể gọi các chương trình con khác. Các chương
trình con phải được khép kín; số DELs phải chính xác bằng
số chuyển động của con trỏ.
Subroutines are used to help with decision making Các
chương trình con được sử dụng để giúp đưa ra quyết định
When you have defined a flag, like ‘ws’ for window shape, to
bevalued 0, 1 or 2, you can issue a GOSUB command that
includes the flag in the line number. For example:
Khi bạn đã xác định một cờ, chẳng hạn như ‘ws’ cho hình
dạng cửa sổ, có giá trị 0, 1 hoặc 2, bạn có thể đưa ra lệnh
GOSUB bao gồm cờ trong số dòng. Ví dụ:
GOSUB 100+ws !Window
END:!-----------------------------------
100:!Rectangular window
...........
100 RETURN
101:!Round topped window
...........
RETURN
102:!Gothic
window
.
.
.
.
.
.
.
.
.
.
.

R
E
T
U
R
N

O
b
j
e
c
t

M
a
k
i
n
g

w
i
t
h

A
r
c
h
i
C
A
D
Chapter 7: GDL Roundup

7.3 Loops
Vòng lặp
Machines never tire of doing repetitive work. With a GDL
object, you may have many spokes in a wheel, many shelves
in a furniture system, many balusters in a handrail, many
rungs on a ladder. If we have a means of telling GDL how
many we want, andwhat spacing we want it at, we can get the
work done for us.Máy móc không bao giờ mệt mỏi khi làm
công việc lặp đi lặp lại. Với một đối tượng GDL, bạn có thể
có nhiều nan hoa trong một bánh xe, nhiều giá trong một hệ
thống đồ đạc, nhiều cụm trong lan can, nhiều bậc trên một cái
thang. Nếu chúng ta có phương tiện để cho GDL biết chúng ta
muốn có bao nhiêu và chúng ta muốn khoảng cách nào, chúng
ta có thể hoàn thành công việc cho mình.

The FOR... NEXTLoop Vòng lặp FOR ... NEXT


We can do this with the FOR... NEXTloop. We can do it in
several ways, but the most common is to do it by counting
numbers, by distance or by angle. Let’s show three simple
examples.Chúng ta có thể làm điều này với vòng lặp FOR ...
NEXT. Chúng ta có thể thực hiện theo một số cách, nhưng
phổ biến nhất là thực hiện bằng cách đếm số, theo khoảng
cách hoặc theo góc. Hãy trình bày ba ví dụ đơn giản.
Loop by counting numbers Lặp lại bằng cách đếm số
We want to plant a handrail at the racecourse and want to plant
6 x1 meter high poles at 0.6 meter intervals, then cap it with a
long rod. We assume an imaginary counter called ‘k’, and we
incrementit by 1 each time the program goes around the loop.
So it starts with a value of 1, does one pole, advances to the
position of the next pole, and waits. Then it meets the NEXT k
command. As the job is not finished, it returns to the FORline,
increments ‘k’ again, and plants another pole. Eventually, it
completes the task, and NEXT k recognizes that it has finished
and allows the program to continue, whereby it DELs back to the
origin.Chúng tôi muốn trồng lan can ở trường đua ngựa và muốn
trồng những cây cột cao 6 x 1 mét cách nhau 0,6 mét, sau đó
dùng thanh dài đậy nắp lại. Chúng tôi giả sử một bộ đếm tưởng
tượng được gọi là ‘k’ và chúng tôi tăng nó lên 1 mỗi khi chương
trình đi quanh vòng lặp. Vì vậy, nó bắt đầu với giá trị 1, hiện một
cực, tiến tới vị trí của cực tiếp theo và chờ đợi. Sau đó, nó gặp
lệnh NEXT k. Khi công việc chưa kết thúc, nó quay trở lại dòng
FOR, tăng ‘k’ một lần nữa và trồng một cực khác. Cuối cùng, nó
hoàn thành nhiệm vụ, và NEXT k nhận ra rằng nó đã hoàn thành
và cho phép chương trình tiếp tục, theo đó nó XÓA trở lại điểm
gốc.
!Long fence using numbersRESOL
10
MATERIAL 'Whitewash': PEN 1
pspac=0.6 !Pole spacing

FOR k=1 TO 6 STEP 1


CYLIND 1.0,0.05
ADDX pspac
NEXT k
DEL 6

!Capping piece ADD -


0.05,0,1.0
ROTY 90
CYLIND 3.1,0.05
DEL 2
Note that a trick is used to improve the look of the capping rail.
Bymaking it slightly longer (by one diameter) than the sum of
the distances of the poles, it looks more authentic.Lưu ý rằng
một thủ thuật được sử dụng để cải thiện giao diện của đường
ray đóng nắp. Bằng cách làm cho nó dài hơn một chút (bằng
một đường kính) so với tổng khoảng cách của các cực, nó
trông chân thực hơn.

Object Making with


ArchiCAD 101
Chapter 7: GDL
Roundup

We can improve the way the loop is coded in one small way.
Thefirst one worked fine, but we had to DEL all the cursor
moves AFTER the loop was complete. This method includes the
DEL inside the loop, so that the loop is cleanly self-contained.
Chúng tôi có thể cải thiện cách mã hóa vòng lặp theo một
cách nhỏ. Cách đầu tiên hoạt động tốt, nhưng chúng tôi phải
XÓA tất cả các chuyển động của con trỏ SAU KHI vòng lặp
hoàn tất. Phương thức này bao gồm DEL bên trong vòng lặp,
để vòng lặp hoàn toàn độc lập.
FOR k=1 TO 6 STEP 1
ADDX pspac*(k-1)
CYLIND 1.0,0.05
DEL 1
NEXT k
Now we place the ADDX command before the cylinder. The
first time, the value of (k-1) is zero, so if you multiply ‘pspac’ by
zero,the distance added is zero. So it plants the first pole. Then
it DELsback to the origin. When ‘k’ is equal to 2, the distance
moved is ‘pspac*1’ so it draws the next pole, then returns to the
origin.Bây giờ chúng ta đặt lệnh ADDX trước hình trụ. Lần đầu
tiên, giá trị của (k-1) bằng 0, vì vậy nếu bạn nhân ‘pspac’ với 0,
khoảng cách được thêm vào sẽ bằng 0. Vì vậy, nó trồng cây cực
đầu tiên. Sau đó, nó XÓA trở lại nguồn gốc. Khi ‘k’ bằng 2,
khoảng cách di chuyển là ‘pspac * 1’ vì vậy nó vẽ cực tiếp theo,
sau đó quay trở lại điểm gốc.
Notice that in both cases, we specified the stepping rate to be ‘1’.
Ifit is ‘1’, you can omit that STEP command, but if it is anything else
at all, you must specify the STEP, or GDL will assume a value of
1
– which could be misinterpreted as 1.0 meters, or 1.0 degrees!
Lưu ý rằng trong cả hai trường hợp, chúng tôi đã chỉ định tỷ lệ bước là
'1'. Nếu là ‘1’, bạn có thể bỏ qua lệnh STEP đó, nhưng nếu là lệnh
khác, bạn phải chỉ định STEP hoặc GDL sẽ giả định giá trị là 1
- có thể bị hiểu sai là 1,0 mét hoặc 1,0 độ
Loop by Distance Lặp lại theo khoảng cách
The next method is when you do not know how many will be
needed, but you know their spacing. This says, ‘starting from
pointzero, advance a distance of ‘d’ (which is zero) and plant a
pole. Phương pháp tiếp theo là khi bạn không biết sẽ cần bao
nhiêu cái, nhưng bạn biết khoảng cách của chúng. Điều này nói
rằng, "bắt đầu từ điểm 0, tiến thêm một khoảng là" d "(là 0) và
increment the value of ‘d’ by ‘pspac’, then advance ‘d’ (which by
now has been incremented), plant another pole, then return to
zero. Do this until you have covered atotal distance of 3.0
metres.’Sau đó trở về số không. Sau đó, tăng giá trị của ‘d’ bằng
‘pspac’, sau đó tăng ‘d’ (hiện đã được tăng dần), trồng một cực khác,
sau đó trở về 0. Làm điều này cho đến khi bạn đã đi được tổng khoảng
cách là 3,0 mét. '
pspac=0.6 !Pole spacing FOR d=0
TO 3.0 STEP pspac
ADDx d
CYLIND 1.0,0.05
DEL 1
NEXT d

trồng một cái


cột.
Then return to
zero. Then

102 Object Making with ArchiCAD


Chapter 7: GDL Roundup

Loop by Angle
There are many occasions when your object has interesting
circle geometry. Here is the same handrail, but now it’s on a
curved track. We use the FOR... NEXTloop to distribute the
posts at anangular spacing of 15˚.Có nhiều trường hợp đối tượng
của bạn có dạng hình tròn thú vị. Đây là cùng một lan can,
nhưng bây giờ nó ở trên một đường cong. Chúng tôi sử dụng
vòng lặp FOR ... NEXT để phân phối các bài viết với khoảng
cách góc là 15˚.
This brings the opportunity to introduce you to two more GDL
commands: ELBOWand RADIUS. ELBOWis like a cylinder but it
curves at a defined radius, to a defined angle.Điều này mang
đến cơ hội giới thiệu cho bạn thêm hai lệnh GDL: ELBOW và
RADIUS. ELBOW giống như một hình trụ nhưng nó cong ở
một bán kính xác định, đến một góc xác định.
ELBOW curve radius, alpha angle, tube radius
Bán kính đường cong ELBOW, góc alpha, bán kính ống
In this case, it is a 180˚ curve angle. Because elbows always
growupwards, you have to precede the command with a
ROTX -90and lift it to the height of the top of the
posts.Trong trường hợp này, nó là một góc đường cong
180˚. Vì khuỷu tay luôn hướng lên trên, bạn phải đặt trước
lệnh bằng ROTX -90 và nâng nó lên đến độ cao của đầu các
trụ.
RADIUS small radius, large radius
RADIUS bán kính nhỏ, bán kính lớn
RADIUS does something similar to the RESOL command.
However, RESOL is too simple. In this elbow, we have two
curves,the main curve and the tubing curve. If we have a large
resolution so that the rail looks right, the tubing will have too
many polygons, and the computer could be crippled trying to
shade all those surfaces.RADIUS thực hiện một cái gì đó
tương tự như lệnh RESOL. Tuy nhiên, RESOL quá đơn giản.
Trong khuỷu tay này, chúng ta có hai đường cong, đường
cong chính và đường cong hình ống. Nếu chúng ta có độ phân
giải lớn để đường ray trông phù hợp, đường ống sẽ có quá
nhiều đa giác và máy tính có thể bị hỏng khi cố gắng che
bóng tất cả các bề mặt đó.
If you issue a RADIUScommand, all radii equal to or less than the
small radius will have a RESOL 6, and all radii equal to or greater
than the larger one will have a RESOL of 36. All radii with in
between values will have in between values of RESOL. It is a
veryuseful command.Nếu bạn ra lệnh RADIUS, tất cả các bán
kính bằng hoặc nhỏ hơn bán kính nhỏ sẽ có RESOL 6 và tất cả
các bán kính bằng hoặc lớn hơn lớn hơn sẽ có RESOL là 36.
Tất cả các bán kính nằm giữa các giá trị sẽ có giá trị bằng giữa
các giá trị của RESOL. Đó là một lệnh rất hữu ích.
!Circular racecourse railRADIUS
0.05,0.3
crad=3.0 !Curve RadiusADDz
1.0
ROTx -90
ELBOW crad,180,0.05DEL
2
ADDx crad
FOR ang=0 TO 180 STEP 15
ROTz ang
ADDx crad
CYLIND 1.0,0.05
DEL 2
NEXT ang
DEL 1
We have to move to the centre of the circle first. Turn to face in
one direction using the ROTZcommand, move out to the rail
withan ADDXcommand, and draw the post. Withdraw to the
centre again, increment the value of ‘ang’ by 15˚, then do the
next one. One final DELreturns you to the starting place.Chúng
ta phải di chuyển đến tâm của vòng tròn trước. Quay mặt về
một hướng bằng lệnh ROTZ, di chuyển ra đường ray bằng lệnh
ADDX và vẽ cột. Rút về trung tâm một lần nữa, tăng giá trị của
‘ang’ lên 15˚, sau đó thực hiện thao tác tiếp theo. Một DEL cuối
cùng đưa bạn trở lại nơi xuất phát.

Object Making with


ArchiCAD 103
Chapter 7: GDL
Roundup

Other ways of Looping Các cách khác của Vòng


lặp
You have other methods of looping, Bạn có các phương pháp lặp
khác,
– DO... WHILE: do an action while a condition applies, for
example a dimension or an angle will eventually be
equal toless than zero; until then, keep doing it.DO ...
WHILE: thực hiện một hành động trong khi một điều
kiện được áp dụng, ví dụ một thứ nguyên hoặc một góc
cuối cùng sẽ bằng nhỏ hơn 0; cho đến lúc đó, hãy tiếp
tục làm việc đó.
– WHILE condition DO... ENDWHILE: does the same as
above.WHILE condition DO ... ENDWHILE: thực hiện
tương tự như trên.
– REPEAT... UNTIL: go on doing something until a condition
is met – for example, when a dimension or angle is equal to
orless than zero, or the numbers in a memory buffer have
been used up.REPEAT ... UNTIL: tiếp tục làm điều gì đó
cho đến khi một điều kiện được đáp ứng - ví dụ: khi một thứ
nguyên hoặc góc bằng hoặc nhỏ hơn 0, hoặc các số trong bộ
đệm bộ nhớ đã được sử dụng hết.
The FOR... NEXTloop meets almost all your requirements. Most
loops are based on counters, or incrementing until a distance
or angle are achieved. You will know when a situation
suitable for REPEAT... UNTILis the best way for you to
loop.Vòng lặp FOR ... NEXT đáp ứng hầu hết mọi yêu cầu của bạn.
Hầu hết các vòng đều dựa trên bộ đếm hoặc tăng dần cho đến khi
đạt được khoảng cách hoặc góc. Bạn sẽ biết khi nào một tình huống
thích hợp để LẶP LẠI ... BẤT NGỜ là cách tốt nhất để bạn lặp lại.

Look at the GDL Reference Manual Xem hướng dẫn


sử dụng GDL
This primer has been written in the hope that as your approach
to GDL becomes more confident, you will be more willing to
dip intothe actual manual. The explanations may not be as dry
or technicalas you first thought.Phần sơ yếu này được viết với
hy vọng rằng khi cách tiếp cận GDL của bạn trở nên tự tin
hơn, bạn sẽ sẵn sàng hơn để tham gia vào sách hướng dẫn
thực tế. Những lời giải thích có thể không khô khan hay kỹ
thuật như bạn nghĩ ban đầu.

Other possibilities Các khả năng khác


There are many more capabilities in GDL than we have had
spacefor in this primer. There are just too many to cover in one
tutorial.But you can find out more by reading further or taking
a course inGDL. If you made it this far the hard way – by
reading and doing some of the exercises – you may be prepared
to try some of these yourself.
Có nhiều khả năng trong GDL hơn chúng ta đã có không gian cho phần
sơ khai này. Có quá nhiều thứ cần trình bày trong một bài hướng dẫn.
Nhưng bạn có thể tìm hiểu thêm bằng cách đọc thêm hoặc tham gia một
khóa học về GDL. Nếu bạn đã làm được điều này một cách khó khăn -
bằng cách đọc và làm một số bài tập - bạn có thể chuẩn bị để tự mình
thử một số trong số này.

104 Object Making with ArchiCAD


Chapter 7: GDL Roundup

Capabilities of GDL that this tutorial leaves for future


investigation: Các khả năng của GDL mà hướng dẫn này
để lại cho việc điều tra trong tương lai:
– Organizing the parameter box with titles and ‘cascading’
parameters.Tổ chức hộp tham số với các tiêu đề và các
tham số ‘xếp tầng’.
– More powerful pop-up menus – with numbers and
pictures.Những menu bật lên mạnh mẽ hơn - với số và hình
ảnh.
– Numeric arrays (tables) available to the user as
parameters.Mảng số (bảng) có sẵn cho người dùng dưới
dạng tham số.
– Making curvy skin-based surfaces using COONSor MASS.Tạo
độ cong trên bề mặt da bằng COONS hoặc MASS.
– Planar 3D GDL objects when they do not need to be
solid.Planar 3D GDL đối tượng khi chúng không cần phải
rắn.
– Smart 2D symbols using FRAGMENT2, which combine
drawnsymbols with 2D scripting.Thông minh các biểu
tượng 2D bằng cách sử dụng FRAGMENT2, kết hợp các
biểu tượng đã vẽ với tập lệnh 2D.
– Applying ‘Polyline’ curves to the outlines of prism, poly,
extrude, revolve and other objects.Áp dụng các đường
cong ‘Polyline’ cho các đường viền ngoài của lăng trụ,
poly, extrude, revolve và các đối tượng khác.
– Using ‘masking’ to control the way objects and surfaces look
in 3D drawings and in photorendering.Sử dụng ‘che” để
kiểm soát cách các đối tượng và bề mặt trông trong bản vẽ
3D và trong kết xuất ảnh.
– Using a CUTPLANE, CUTSHAPEand CUTPOLYto carve
anddrill solid shapes, to make them more complex.Sử
dụng CUTPLANE, CUTSHAPE và CUTPOLY để
khắc và khoan các hình dạng rắn, để làm cho chúng
phức tạp hơn.
– Attaching PICTUREs to surfaces – for trees, people,
facades.Gắn HÌNH ẢNH với các bề mặt - cho cây cối, con người,
mặt tiền.
– Calling other library objects (such as taps or door
handles).Gọi các đối tượng thư viện khác (chẳng hạn như
vòi hoặc tay nắm cửa).
– Making Lamp objects with controllable light sources.Tạo các
đối tượng Đèn với nguồn sáng có thể điều khiển được.
– Using trigonometry to calculate the pathway of tubes
andedges through curved and parabolic pathways.Sử
dụng lượng giác để tính đường đi của ống và cạnh
qua đường cong và đường parabol.
– Reading and displaying the system date, time, project
name,and much more, using the REQUESTcommand.Đọc
và hiển thị ngày, giờ của hệ thống, tên dự án, v.v. bằng
cách sử dụng lệnh REQUEST.
– Defining your own materials, line types and fill patterns.Xác
định vật liệu, kiểu đường kẻ và mẫu tô của riêng bạn.
– Storing numbers in memory and bringing them out
later(Arrays and PUT& GET).Lưu trữ các số trong bộ
nhớ và đưa chúng ra sau (Mảng và PUT & GET).
– Building a graphic User Interface that replaces the
normalparameter box and makes the GDL object look
more professional.Xây dựng Giao diện Người dùng
đồ họa thay thế hộp tham số bình thường và làm cho
đối tượng GDL trông chuyên nghiệp hơn.
– Self-labelling objects – the font and text size can be defined
tobe parametric and scale sensitive.Các đối tượng tự gắn
nhãn - phông chữ và kích thước văn bản có thể được xác
định là nhạy cảm với tham số và tỷ lệ.
– Setting up animation possibilities by changing the
object’sshape according to the frame number in the
animation.Thiết lập khả năng hoạt ảnh bằng cách thay
đổi hình dạng của đối tượng theo số khung hình trong
hoạt ảnh.
– Knowing where the camera is, and changing
accordingly.Biết camera ở đâu và thay đổi cho phù hợp.
– Knowing which story the object is on.Biết câu chuyện kể về
đối tượng.
– Reading and writing text based datafiles.Đọc và ghi các tệp
dữ liệu dựa trên văn bản.

Object Making with


ArchiCAD 105
Chapter 7: GDL Roundup

106 Object Making with ArchiCAD


Index

Index

2D 13
2D Script 38, 49
First steps with ~ 44
"killer command" 38
3D 14, 98
~ Cursor 35
~ Entities 34
~ Pixel 43
~ Projections 16
~ Script 34
~ Space 35
~ View 36

A
ADD 36
Add-ons 5
add-ons 3
ADD2 44, 48
ARC2 45, 48
ArchiSite 5
Art•lantis Render 5, 95
Autoscripted GDL 82

B
BASIC 9, 98
Binary 5
Binary 3D 23
BLOCK 34, 39
Boolean choices 51
BPRISM_ 69

C
Chair 18, 39
Object Making with
ArchiCAD
CIRCLE2 45, 48 107
Commas 71
Comment 33
Index

CONE 34 L
Cones 22
CPRISM 6 Label 37
CPRISM_ 69 Lamp 7
CSLAB 6 LET 55
CUTPLANE 69 Libraries
CYLIND 34, 102 ArchiCAD ~ 4
Complementary ~ 4
DXF and DWG ~ 4
D listing ~ parts 10
loading ~ 3
DEL 38 LINE2 45, 48
Door 53 Location awareness 58
DWG 4 Loops 101
DXF 4, 95 DO... WHILE 104
DXF/DWG Conversion 4 FOR... NEXT 104
REPEAT... UNTIL 104
E WHILE 104

ELBOW 46, 103 M


Error checking 43
Magic Wand 12, 21
F Manufacturers' Rules 43, 63
Marquee 25
Fill tool 13 Masking codes 68
Find and Replace 70, 89 MASS 6
Flags 50, 76 Master Script 33, 60
FPRISM 69 Master window 32
MATERIAL 34
G MUL 36, 83
MUL2 48
GDL Cookbook 2, 98
GDL Object Web Plug-in 4 O
Global Variables 58, 85
Object Factory 4
H Objects On Line 4
hotspot 13 P
HOTSPOT2 48
Hotspots 45 Parameter Script 33
Parameter table 32
I Parametric 7, 40, 87
POLY2 48, 52
IF... ENDIF 50 POLY2_ 48
IF… ENDIF 62 Polylines 76
Instant GDL 67, 93
Internet Pop-up menu 60, 76
Objects on the ~ 4 Preview Picture 33
Investment object 9 Preview picture 63
PRISM 66, 69
PRISM_ 69
Prisms 66, 69

108 Object Making with ArchiCAD


Index

Profiler 5 Z
PROJECT2 38, 44, 56, 75
Properties Script 33, 63 Zoom 4
ZZYZX
R 84
RADIUS 103
RECT2 48
RESOL 95, 103
REVOLVE 93
Roof Truss 20
Roof vault 25
RoofMaker 5
ROT 36
ROT2 48

S
Scale
drawing ~ 58
Slab tool 14, 18
SPHERE 34
SPRISM_ 69
StairMaker 5
Status code 76
Stretchiness 41, 49, 83
stretchiness 12
SUBROUTINE 92
Subroutines 99

T
Table 14, 83

U
User Interface Script 34

V
VALUES 60, 76

W
Wall tool 18
WALLHOLE 57
Window 15, 71

X
XWALL 6
109
Object Making with
ArchiCAD
Index

110 Object Making with ArchiCAD


Contents

Contents
Chapter 1: Introduction to Object Making 1
1.1 About Object Making 2
Library Parts in ArchiCAD ........................................................................................................ 3
Sources of Library Parts ...................................................................................................... 4
1.2 Making your own Library Parts 6
Without GDL – using ArchiCAD’s Tools ..................................................................................................... 6
Making Objects with GDL ...................................................................................................................... 7
How do you make an Object? .......................................................................................................... 8
Does it need to LOOK right, or BE right? ............................................................................................. 8
The Idea of an ‘Investment object’ ......................................................................................................... 9
Can you learn GDL? ............................................................................................................................... 9
Object Making in the ArchiCAD Manuals ........................................................................................... 10

Chapter 2: Making Objects without GDL 11


Making Objects without GDL 12
Getting Started ...................................................................................................................................... 12
Let’s Make something in 2D .................................................................................................... 13
Let’s Make a 3D Object – a Table ................................................................................................... 14
Let’s Make a 3D Window ........................................................................................................ 15
Let’s Make a Furniture Object using Walls .............................................................................. 18
Let’s Make a Roof Truss .......................................................................................................... 20
Let’s Make an Object using existing Library Parts ................................................................. 22
Let’s Make an Object that we can cut to shape .................................................................. 24
How far can we take Object Making without GDL?............................................................................ 27
Notes on the naming of parts ................................................................................................................ 29
Summary of Object Making in this chapter ................................................................................... 29

Chapter 3: Starting with GDL 31


3.1 Starting with GDL 32
3D Entities ............................................................................................................................................. 34
First steps in 3D GDL ................................................................................................................................ 34
3D Space and the 3D Cursor ................................................................................................................ 35
Do not forget the 2D script ................................................................................................................... 38
Summary of GDL, to this point ...................................................................................................... 38
3.2 Let’s build a 3D Object 39
Let’s make this chair parametric .......................................................................................................... 40
3.3 First steps in 2D scripting 44
Summary of GDL, in this section .......................................................................................................... 46

Object Making with ArchiCAD


i
Contents

Chapter 4: Practical Uses for GDL 47


4.1 Practical Uses for GDL 48
GDL in 2D ............................................................................................................................... 48
Let’s build something in 2D – and make it snappy .............................................................................. 49
Summary of GDL in this section ...........................................................................................................53
4.2 Let’s make a 3D Door 53
Summary of GDL in this section ...........................................................................................................64

Chapter 5: The Power of PRISM 65


5.1 The Power of PRISM 66
PRISM is the most versatile element in 3D GDL ....................................................................................... 66
Instant GDL ...........................................................................................................................................67
About Prisms. .........................................................................................................................................69
5.2 Let’s make a 3D Window 71
Don’t forget the 2D Symbol...................................................................................................................75
Try WALLHOLE ......................................................................................................................................... 76
Summary of GDL in this section ...........................................................................................................79

Chapter 6: Looking into Autoscripted GDL 81


6.1 Looking into Autoscripted GDL 82
This can be tuned up – to be parametric .............................................................................................. 87
6.2 Come back to ‘Instant GDL’ 93
Try instant GDL with a REVOLVE .......................................................................................................93
Summary of GDL in this section ...........................................................................................................96

Chapter 7: GDL Roundup 97


7.1 GDL Roundup 98
The programming language of GDL ..................................................................................................... 99
7.2 Subroutines 99
7.3 Loops 101
The FOR... NEXT Loop ............................................................................................................................ 101
Other ways of Looping ........................................................................................................................104
Look at the GDL Reference Manual ...................................................................................................104
Other possibilities ............................................................................................................104
Index 107

ii Object Making with ArchiCAD

You might also like