Tutorial custom placing of windows and doors/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "{{Caption|align=center|Nazwane wiązania szkicu, które można modyfikować bez wchodzenia do szkicu.}}")
No edit summary
 
(48 intermediate revisions by the same user not shown)
Line 120: Line 120:
{{Caption|align=center|Nazwane wiązania szkicu, które można modyfikować bez wchodzenia do szkicu.}}
{{Caption|align=center|Nazwane wiązania szkicu, które można modyfikować bez wchodzenia do szkicu.}}


11. Wróć do środowiska pracy [[Arch_Workbench/pl|Architektura]] i po wybraniu nowego {{Incode|Sketch002}} użyj narzędzia [[Arch_Window/pl|Okno]]. Okno zostanie utworzone i zrobi dziurę w ścianie. Okno zostało utworzone z niestandardowego szkicu, a nie z ustawienia wstępnego, więc należy je edytować, aby poprawnie wyświetlić jego komponenty, czyli stałą ramę, wewnętrzną ramę i szklany panel.
11. Change back to the [[Arch Workbench]] and, with the new {{incode|Sketch002}} selected, use [[Arch Window]]. A window will be created, and will make a hole in the wall. The window is made from a custom sketch, and not from a preset, so it needs to be edited in order to correctly display its components, that is, the fixed frame, the inner frame, and the glass panel.


[[Image:08_T02_window_basic_in_wall.png|600px|center]]
[[Image:08_T02_window_basic_in_wall.png|600px|center]]


{{Caption|align=center|Custom window created from the sketch; it still doesn't have a proper frame, nor glass}}
{{Caption|align=center|Niestandardowe okno utworzone na podstawie szkicu. Nadal nie ma odpowiedniej ramy ani szyby.}}


<span id="Setting_up_the_custom_window"></span>
== Setting up the custom window ==
==Konfigurowanie okna niestandardowego==


12. In the tree view select {{incode|Sketch002}} underlying {{incode|Window}}, and press {{KEY|Space}}, or change the property {{PropertyView|Visibility}} to {{TRUE}}.
12. W widoku drzewa wybierz {{Incode|Sketch002}} leżący pod {{Incode|Oknem}} i naciśnij {{KEY|Spacja}} lub zmień właściwość {{PropertyView|Widoczność}} na {{TRUE/pl}}.


13. Double click {{incode|Window}} in the tree view to start editing it.
13. Kliknij dwukrotnie {{Incode|Okno}} w widoku drzewa, aby rozpocząć jego edycję.
:13.1. Inside the {{incode|Window elements}} dialog there are two panes, {{incode|Wires}} and {{incode|Components}}. There are three wires, {{incode|Wire0}}, {{incode|Wire1}}, and {{incode|Wire2}}, and one component, {{incode|Default}}. The wires refer to the closed loops that were drawn in the sketch; the components define the areas in the sketch that will be extruded to create frame or glass panels with real thicknesses; these areas are delimited by the wires. A window created from a preset already has two components, {{incode|OuterFrame}} and {{incode|Glass}}. The custom window needs to be edited to have a similar structure.
:13.1. Wewnątrz okna dialogowego {{incode|Elementy okna}} znajdują się dwa panele, {{incode|Polilinie}} i {{incode|Komponent}}. Dostępne trzy polilinie {{incode|Wire0}}, {{incode|Wire1}} i {{incode|Wire2}} oraz jeden komponent {{incode|Default}}. Polilinie odnoszą się do zamkniętych pętli, które zostały narysowane w szkicu. Komponenty definiują obszary w szkicu, które zostaną wyciągnięte w celu utworzenia ramy lub szklanych paneli o rzeczywistej grubości. Obszary te ograniczone przez polilinie. Okno utworzone z ustawienia wstępnego ma już dwa komponenty, {{incode|OuterFrame}} i {{incode|Glass}}. Okno niestandardowe musi być edytowane, aby miało podobną strukturę.


[[Image:09_T02_window_edit_default.png|center]]
[[Image:09_T02_window_edit_default.png|center]]


{{Caption|align=center|Dialog to edit a window or a door}}
{{Caption|align=center|Okno dialogowe do edycji okna lub drzwi.}}


:13.2. Click on {{incode|Default}}, and click the {{Button|Remove}} button to eliminate it.
:13.2. Kliknij {{Incode|Default}} i kliknij przycisk {{Button|Usuń}}, aby go usunąć.


:13.3. Click {{Button|Add}}; this shows the properties of a new component like {{incode|Name}}, {{incode|Type}}, {{incode|Wires}}, {{incode|Thickness}}, {{incode|Offset}}, {{incode|Hinge}}, and {{incode|Opening mode}}. Give a name, such as {{incode|OuterFrame}}, choose {{incode|Frame}} for {{incode|Type}}, and click on {{incode|Wire0}} and then {{incode|Wire1}}; they should highlight in the 3D viewport. Add a small value for {{incode|Thickness}}, {{incode|15 mm}}, and check the checkbox to add the default value. This default value is the length assigned to the {{PropertyData|Frame}} property; a similar default can be assigned to the {{PropertyData|Offset}} property. Click the {{Button|+Create/update component}} button to finish editing the component.
:13.3. Kliknij {{Button|Dodaj}}. Zostaną wyświetlone właściwości nowego komponentu, takie jak {{incode|Nazwa}}, {{incode|Typ}}, {{incode|Polilinie}}, {{incode|Grubość}}, {{incode|Przesunięcie}}, {{incode|Zawias}} i {{incode|Tryb otwierania}}. Nadaj nazwę, na przykład {{incode|OuterFrame}}, wybierz {{incode|Rama}} dla {{incode|Typu}} i kliknij {{incode|Wire0}}, a następnie {{incode|Wire1}}; powinny one zostać podświetlone w oknie widoku 3D. Dodaj małą wartość dla {{incode|Grubość}}, {{incode|15 mm}} i zaznacz pole wyboru, aby dodać wartość domyślną. Wartość domyślna to długość przypisana do właściwości {{PropertyData|Rama}}. Podobną wartość domyślną można przypisać do właściwości {{PropertyData|Odsunięcie}}. Kliknij przycisk {{Button|+Utwórz/aktualizuj komponent}}, aby zakończyć edycję komponentu.


:13.4. Click {{Button|Add}}; give another name, such as {{incode|InnerFrame}}, choose {{incode|Frame}} for {{incode|Type}}, and click on {{incode|Wire1}} and then {{incode|Wire2}}. Add a sensible {{incode|Thickness}}, {{incode|60 mm}}, and {{incode|Offset}}, {{incode|15 mm}}. Then click the {{Button|+Create/update component}} button.
:13.4. Kliknij {{Button|Dodaj}}. Nadaj inną nazwę, taką jak {{incode|InnerFrame}}, wybierz {{incode|Rama}} dla własciwości {{incode|Typ}} i kliknij {{incode|Wire1}}, a następnie {{incode|Wire2}}. Dodaj odpowiednią wartość właściwości {{incode|Grubość}}, {{incode|60 mm}} i {{incode|Odsunięcie}}, {{incode|15 mm}}. Następnie kliknij przycisk {{Button|+Utwórz/aktualizuj komponent}}.


:13.5. Click {{Button|Add}}; give another name, such as {{incode|Glass}}, choose {{incode|Glass panel}} for {{incode|Type}}, and click on {{incode|Wire2}}. Add a sensible {{incode|Thickness}}, {{incode|10 mm}}, and {{incode|Offset}}, {{incode|40 mm}}. Then click the {{Button|+Create/update component}} button. If any of the three components needs to be modified, select it and press {{Button|Edit}}; modifications are only saved after pressing the {{Button|+Create/update component}} button.
:13.5. Kliknij {{Button|Dodaj}}. Nadaj inną nazwę, na przykład {{incode|Glass}}, wybierz {{incode|Panel szklany}} dla własciwości {{incode|Typ}} i kliknij {{incode|Wire2}}. Dodaj sensowną {{incode|Grubość}}, {{incode|10 mm}}, i {{incode|Odsunięcie}}, {{incode|40 mm}}. Następnie kliknij przycisk {{Button|+Utwórz / aktualizuj komponent}}. Jeśli którykolwiek z trzech komponentów wymaga modyfikacji, wybierz go i naciśnij przycisk {{Button|Edycja}}. Modyfikacje zostaną zapisane dopiero po naciśnięciu przycisku {{Button|+Utwórz / aktualizuj komponent}}.


[[Image:10_T02_window_edit_components.png|center]]
[[Image:10_T02_window_edit_components.png|center]]


{{Caption|align=center|Editing a previously defined component of a window or a door}}
{{Caption|align=center|Edytowanie wcześniej zdefiniowanego elementu okna lub drzwi.}}


:13.6. If everything is set, click {{Button|Close}} to finish editing the window. The sketch may become hidden again, but the window will show distinct solid elements for the {{incode|OuterFrame}}, the {{incode|InnerFrame}}, and the {{incode|Glass}}. Give a value of {{incode|100 mm}} to {{PropertyData|Frame}} to assign a default thickness, which will be added to the value specified in the {{incode|OuterFrame}} component.
:13.6. Jeśli wszystko jest ustawione, kliknij {{Button|Zamknij}}, aby zakończyć edycję okna. Szkic może zostać ponownie ukryty, ale w oknie będą widoczne różne elementy stałe dla {{incode|OuterFrame}}, {{incode|InnerFrame}} i {{incode|Glass}}. Podaj wartość {{Incode|100 mm}} do {{PropertyData|Frame}}, aby przypisać domyślną grubość, która zostanie dodana do wartości określonej w elemencie {{Incode|OuterFrame}}.


[[Image:11_T02_window_property_view.png|center]]
[[Image:11_T02_window_property_view.png|center]]


{{Caption|align=center|Property view of the window to add default Frame length, Offset length, and other options}}
{{Caption|align=center|Widok właściwości okna, aby dodać domyślną długość ramki, długość przesunięcia i inne opcje.}}


[[Image:12_T02_window_finished.png|600px|center]]
[[Image:12_T02_window_finished.png|600px|center]]


{{Caption|align=center|Finished window with appropriate components embedded in the wall}}
{{Caption|align=center|Gotowe okno z odpowiednimi elementami osadzonymi w ścianie.}}


<span id="Duplicating_the_custom_window"></span>
== Duplicating the custom window ==
==Powielanie niestandardowego okna==


14. In the tree view, select {{incode|Window}} and its underlying {{incode|Sketch002}}. Then go to {{MenuCommand|EditDuplicate selection}}, and answer {{Button|No}} if asked to duplicate unselected dependencies. A new {{incode|Window001}} and {{incode|Sketch003}} will appear in the same position as the original elements.
14. W widoku drzewa wybierz {{incode|Okno}} i jego bazowy {{incode|Szkic002}}. Następnie przejdź do {{MenuCommand|EdycjaPowiel zaznaczony obiekt}} i odpowiedz {{Button|Nie}}, jeśli pojawi się pytanie o powielenie niezaznaczonych zależności. Nowe obiekty {{Incode|Okno001}} i {{Incode|Szkic003}} pojawią się w tym samym miejscu co oryginalne elementy.


Jeśli okno już istnieje i wymaga przeniesienia, jak miało to miejsce w przypadku zduplikowanego obiektu {{incode|Okno001}}, szkic musi zostać przemapowany na inną płaszczyznę. Dokonanie tego przenosi zarówno szkic, jak i okno, ale to drugie nie aktualizuje automatycznie swojej normalnej, więc ma niewłaściwe informacje o ekstruzji. Normalna musi zostać obliczona ręcznie i wpisana do {{PropertyData|Normalnej}}.
15. Select the new {{incode|Sketch003}}. Go to the {{PropertyData|Map Mode}} property, and click on the ellipsis next to the {{incode|FlatFace}} value. In the 3D viewport select the left side of the wall which doesn't have any element; rotate the [[standard view]] as necessary. Change the {{incode|Attachment offset}} to [-1 m, 0 m, 0 m] to center the window, and click {{Button|OK}}. The sketch and the window should appear in a new position.
:{{Emphasis|Note:}} the [[Part_EditAttachment|attachment operation]] can also be performed by changing to the [[Part Workbench]], and then using the menu {{MenuCommand|Part → Attachment}}.


[[Image:13_T02_sketch_attachment_edit.png|center]]
[[Image:13_T02_sketch_attachment_edit.png|center]]


{{Caption|align=center|Dialog to edit the attachment plane of the sketch}}
{{Caption|align=center|Okno dialogowe do edycji płaszczyzny mocowania szkicu.}}


16. You may adjust the dimensions of the new window by changing the named parameters in {{incode|Sketch003}} under {{PropertyData|Constraints}}, for example, set {{incode|Height}} to {{incode|2 m}}, and {{incode|Frame Fixed Bottom}} to {{incode|0 m}}. Then press {{KEY|Ctrl}}+{{KEY|R}} to [[recompute]] the model. If the wall doesn't show a bigger hole for the new window, select the wall in the tree view, right click and choose {{incode|Mark to recompute}}, then press {{KEY|Ctrl}}+{{KEY|R}} again.
16. Możesz dostosować wymiary nowego okna, zmieniając nazwane parametry w {{incode|Sketch003}} pod włąściwością {{PropertyData|Wiązania}}, na przykład ustaw wartość parametru {{incode|Wysokość}} na {{incode|2 m}}, a wartość parametru {{incode|Stała dolna część ramy}} na {{incode|0 m}}. Następnie naciśnij {{KEY|Ctrl}} + {{KEY|R}}, aby [[Recompute|przeliczyć]] model. Jeśli ściana nie pokazuje większego otworu dla nowego okna, wybierz ścianę w widoku drzewa, kliknij prawym przyciskiem myszy i wybierz {{incode|Zaznacz do przeliczenia}}, a następnie ponownie naciśnij {{KEY|Ctrl}}+{{KEY|R}}.


17. Operacje te zmieniły położenie nowego okna, ale otwór w ścianie nie wygląda prawidłowo. Jest pochylony, tzn. otwór nie jest prostopadły do lica ściany, a nawet może przecinać inne części ściany. Problem polega na tym, że {{Incode|Okno001}} zachował informacje {{PropertyData|Normal}} oryginalnego {{Incode|Okna}}.
17. These operations have changed the position of the new window, but the opening in the wall doesn't look correct. It is slanted, that is, the hole is not perpendicular to the face of the wall, and it may even cut other parts of the wall. The problem is that {{incode|Window001}} has retained the {{PropertyData|Normal}} information of the original {{incode|Window}}.


[[Image:14_T02_sketch_2_attached_slanted.png|600px|center]]
[[Image:14_T02_sketch_2_attached_slanted.png|600px|center]]


{{Caption|align=center|Incorrect opening in the wall due to bad Normal of the window}}
{{Caption|align=center|Nieprawidłowy otwór w ścianie z powodu złej normalnej okna.}}


<span id="Normals_of_doors_and_windows"></span>
== Normals of doors and windows ==
==Normalne drzwi i okien==


18. Each [[Arch Window]] object controls the extrusion of its body and the opening that is created in its host wall by means of the {{PropertyData|Normal}}.
18. Każdy obiekt [[Arch_Window/pl|okna]] kontroluje wyciągnięcie swojego korpusu i otwór, który jest tworzony w ścianie hosta za pomocą {{PropertyData|Normalnej}}.


Normalna jest wektorem {{incode|[x, y, z]}}, który wskazuje kierunek prostopadły do ściany. Gdy okno lub drzwi są tworzone za pomocą narzędzia [[Arch_Window/pl|Okno]] bezpośrednio nad obiektem [[Arch_Wall/pl|ściana]], normalna jest automatycznie obliczana, a powstałe okno lub drzwi są prawidłowo wyrównane. Pierwsze dwa obiekty, {{Incode|Drzwi}} i {{Incode|Drzwi001}}, zostały utworzone w ten sposób.
The normal is a vector {{incode|[x, y, z]}} that indicates a direction perpedicular to a wall. When a window or door preset is created with the [[Arch Window]] tool directly over an [[Arch Wall]], the normal is automatically calculated, and the resulting window or door is correctly aligned; the first two objects, {{incode|Door}} and {{incode|Door001}}, were created in this way.


W podobny sposób, gdy szkic jest tworzony poprzez wybór powierzchni płaskiej, jest on orientowany na tej płaszczyźnie. Następnie, gdy używane jest narzędzie [[Arch_Window/pl|Okno]], okno będzie używać jako normalnej kierunku prostopadłego do szkicu. Tak było w przypadku trzeciego obiektu, niestandardowego okna.
In similar way, when a sketch is created by selecting a planar surface, it is oriented on this plane. Then when the [[Arch Window]] tool is used, the window will use as normal the perpendicular direction to the sketch. This was the case with the third object, the custom {{incode|Window}}.


Jeśli okno już istnieje i wymaga przeniesienia, jak miało to miejsce w przypadku zduplikowanego obiektu {{incode|Okno001}}, szkic musi zostać przemapowany na inną płaszczyznę. Dokonanie tego przenosi zarówno szkic, jak i okno, ale to drugie nie aktualizuje automatycznie swojej normalnej, więc ma niewłaściwe informacje o ekstruzji. Normalna musi zostać obliczona ręcznie i wpisana do właściwości {{PropertyData|Normal}}.
If the window already exists and needs to be moved, as was the case with the duplicated {{incode|Window001}} object, the sketch needs to be remapped to another plane; doing this moves both the sketch and the window, but the latter doesn't automatically update its normal, so it has incorrect extrusion information. The normal needs to be calculated manually and written to {{PropertyData|Normal}}.


Trzy wartości wektora normalnego są obliczane w następujący sposób.
The three values of the normal vector are calculated as following.
{{Code|code=
{{Code|code=
x = -sin(angle)
x = -sin(kąt)
y = cos(angle)
y = cos(kąt)
z = 0
z = 0
}}
}}
Where {{incode|angle}} is the angle of the local Z axis of the sketch with respect to the global Y axis.
Gdzie {{incode|angle}} jest kątem lokalnej osi Z szkicu względem globalnej osi Y.


Kiedy szkic jest tworzony, zawsze posiada dwie osie: lokalną X ''(czerwoną)'' i lokalną Y ''(zieloną)''. Jeśli szkic jest mapowany na globalną płaszczyznę roboczą XY, to te osie są wyrównane. Ale jeśli szkic jest mapowany na globalne płaszczyzny XZ lub YZ, jak ma to miejsce z oknami i drzwiami ''(szkice stoją pionowo)'', to lokalna oś Z ''(niebieska)'' tworzy kąt ze globalną osią Y. Ten kąt zmienia się od -180 do 180°. Kąt jest uważany za dodatni, jeśli otwiera się przeciwnie do ruchu wskazówek zegara, a jest ujemny, jeśli otwiera się zgodnie z ruchem wskazówek zegara, zaczynając od globalnej osi Y.
When a sketch is created, it always has two axes, a local X (red) and a local Y (green). If the sketch is mapped to the global XY working plane, then these axes are aligned; but if the sketch is mapped on the global XZ or global YZ planes, as is common with windows and doors (the sketches are "standing up"), then the local Z (blue) forms an angle with the global Y axis; this angle varies from -180 to 180 degrees. The angle is considered positive if it opens counterclockwise, and it is negative if it opens clockwise, starting from the global Y axis.


[[Image:15_T02_sketch_local_coordinates.png|600px|center]]
[[Image:15_T02_sketch_local_coordinates.png|600px|center]]


{{Caption|align=center|Local coordinates of a sketch that is "standing up", that is, mapped to the global XZ plane}}
{{Caption|align=center|Lokalne współrzędne szkicu, który jest usytuowany "na stojąco", czyli odwzorowany na globalną płaszczyznę XZ.}}


[[Image:16_T02_sketch_correct_normal_direction.png|600px|center]]
[[Image:16_T02_sketch_correct_normal_direction.png|600px|center]]


{{Caption|align=center|Intended directions of the normals for each door and window}}
{{Caption|align=center|Zamierzone kierunki normalnych dla każdych drzwi i okien.}}


Jeśli spojrzymy na geometrię utworzoną do tej pory, zobaczymy następujące normy.
If we look at the geometry created so far, we see the following normals.


;{{incode|Door}}
;{{incode|Drzwi}}
: The local Z is aligned with the global Y, therefore, the {{incode|angle}} is zero. The normal vector is
: Lokalne Z jest wyrównane z globalnym Y, dlatego {{incode|angle}} wynosi zero. Wektor normalny to:
{{Code|code=
{{Code|code=
x = -sin(0) = 0
x = -sin(0) = 0
Line 215: Line 217:
z = 0
z = 0
}}
}}
or {{PropertyData|Normal}} is {{incode|[0, 1, 0]}}.
lub {{PropertyData|Normal}} to {{incode|[0, 1, 0]}}.


;{{incode|Door001}}
;{{incode|Drzwi001}}
: The local Z is rotated 90 degrees from the global Y, therefore, the {{incode|angle}} is 90 (positive, because it opens counterclockwise). The normal vector is
: Lokalne Z jest obrócone o 90° względem globalnego Y, dlatego {{incode|angle}} wynosi 90 ''(dodatnie, ponieważ otwiera się przeciwnie do ruchu wskazówek zegara)''. Wektor normalny to:
{{Code|code=
{{Code|code=
x = -sin(90) = -1
x = -sin(90) = -1
Line 224: Line 226:
z = 0
z = 0
}}
}}
or {{PropertyData|Normal}} is {{incode|[-1, 0, 0]}}.
lub {{PropertyData|Normal}} to {{incode|[-1, 0, 0]}}.


;{{incode|Window}}
;{{incode|Okno}}
: The local Z is rotated 45 degrees from the global Y, therefore, the {{incode|angle}} is 45 (positive, because it opens counterclockwise). The normal vector is
: Lokalne Z jest obrócone o 45° względem globalnego Y, dlatego {{incode|angle}} wynosi 45 ''(dodatnie, ponieważ otwiera się przeciwnie do ruchu wskazówek zegara)''. Wektor normalny to
{{Code|code=
{{Code|code=
x = -sin(45) = -0.7071
x = -sin(45) = -0.7071
Line 233: Line 235:
z = 0
z = 0
}}
}}
or {{PropertyData|Normal}} is {{incode|[-0.7071, 0.7071, 0]}}.
lub {{PropertyData|Normal}} to {{incode|[-0.7071, 0.7071, 0]}}.


;{{incode|Window001}}
;{{incode|Okno001}}
: The local Z direction is found by using the [[Draft Dimension]] tool and measuring the angle that the wall trace ({{incode|Wire}}) makes with the global Y axis, or any line aligned to it. This angle is {{incode|26.57}}; the desired angle is the complement to this, so <code>90 - 26.57 = 63.43</code>.
: Kierunek lokalny Z jest określany za pomocą narzędzia [[Draft_Dimension/pl|Wymiar]], mierząc kąt, jaki ślad ściany tworzy ''({{incode|polilinia}})'' z globalną osią Y lub dowolną linią wyrównaną do niej. Ten kąt wynosi {{incode|26,57}}. Pożądany kąt jest dopełnieniem do tego, czyli <code>90 - 26,57 = 63,43</code>.


This means the local Z axis is rotated 63.43 degrees from the global Y, therefore, the {{incode|angle}} is -63.46 (negative, because it opens clockwise). The normal vector is
Oznacza to, że lokalna Z jest obrócona o 63,43 stopnia w stosunku do globalnej osi Y, dlatego {{incode|angle}} wynosi -63,46 ''(ujemny, ponieważ otwiera się zgodnie z ruchem wskazówek zegara)''. Wektor normalny to
{{Code|code=
{{Code|code=
x = -sin(-63.43) = 0.8943
x = -sin(-63.43) = 0.8943
Line 244: Line 246:
z = 0
z = 0
}}
}}
Therefore {{PropertyData|Normal}} should be changed to {{incode|[0.8943, 0.4472, 0]}}.
Dlatego {{PropertyData|Normalna}} powinien zostać zmieniona na {{incode|[0.8943, 0.4472, 0]}}.


After doing these changes, recompute the model with {{KEY|Ctrl}}+{{KEY|R}}. If the wall doesn't update the hole, select it in the tree view, right click and choose {{incode|Mark to recompute}}, then press {{KEY|Ctrl}}+{{KEY|R}} again.
Po wprowadzeniu tych zmian ponownie przelicz model za pomocą {{KEY|Ctrl}} + {{KEY|R}}. Jeśli ściana nie zaktualizuje otworu, zaznacz w widoku drzewa, kliknij prawym przyciskiem myszy i wybierz {{incode|Zaznacz do przeliczenia}}, a następnie ponownie naciśnij {{KEY|Ctrl}} + {{KEY|R}}.


19. Orientacja wytłoczenia okna jest rozwiązana, wraz z otworem w ścianie.
19. The orientation of the extrusion of the window is resolved, together with the opening in the wall.


[[Image:17_T02_sketch_2_attached_correctly.png|600px|center]]
[[Image:17_T02_sketch_2_attached_correctly.png|600px|center]]


{{Caption|align=center|Correct opening in the wall due to proper Normal of the window}}
{{Caption|align=center|Prawidłowy otwór w ścianie dzięki odpowiedniej normalności okna.}}


<span id="Final_remarks"></span>
== Final remarks ==
==Uwagi końcowe==


20. Jak pokazano, początkowe umieszczenie [[Arch_Window/pl|Okna]] jest bardzo ważne. Użytkownik powinien:
20. As demonstrated, the initial placement of the [[Arch Window]] is very important. The user should either
* użyć narzędzia [[Arch_Window/pl|Okna]], aby wstawić i automatycznie wyrównać ustawienie wstępne do ściany, lub
* use the [[Arch Window]] tool to insert and automatically align a preset to a wall, or
* zmapować szkic do żądanej ściany, a następnie zbudować okno.
* map a sketch to the desired wall, and build the window after that.


If a window already exists, and it needs to be moved, the supporting sketch should be remapped to a new plane, and the {{PropertyData|Normal}} of the window needs to be recalculated.
Jeśli okno już istnieje i musi zostać przeniesione, szkic pomocniczy powinien zostać przemapowany na nową płaszczyznę, a {{PropertyData|Normal}} okna musi zostać ponownie przeliczone.


Nowy kierunek normalny można uzyskać, mierząc {{incode|angle}} nowej ściany w odniesieniu do globalnej osi Y, biorąc pod uwagę, czy kąt ten jest dodatni ''(przeciwnie do ruchu wskazówek zegara)'' czy ujemny ''(zgodnie z ruchem wskazówek zegara)'' i używając prostego wzoru.
The new normal direction can be obtained by measuring the {{incode|angle}} of the new wall with respect to the global Y axis, considering whether this angle is positive (counterclockwise) or negative (clockwise), and using a simple formula.
{{Code|code=
{{Code|code=
x = -sin(angle)
x = -sin(angle)
Line 269: Line 272:
}}
}}


Aby potwierdzić poprawność operacji, bezwzględna wielkość wektora normalnego powinna wynosić jeden. To znaczy:
To confirm that the operations are correct, the absolute magnitude of the normal vector should be one. That is,
{{Code|code=
{{Code|code=
abs(N) = 1 = sqrt(x^2 + y^2 + z^2)
abs(N) = 1 = sqrt(x^2 + y^2 + z^2)

Latest revision as of 12:38, 15 March 2024

Ćwiczenie
Temat
Architektura
Poziom trudności
średnio zaawansowany
Czas wykonania
60 minut
Autorzy
vocx
Wersja FreeCAD
0.18 lub nowszy
Pliki z przykładami
nie dołączono
Zobacz również
-

Wprowadzenie

Ten poradnik pokazuje, jak umieścić niestandardowe okno i drzwi w modelu budynku. Wykorzystuje on środowisko Rysunek Roboczy, Architektura i Szkicownik.

Często używanymi narzędziami są: siatka, narzędzia przyciągania, polilinia, ściana, okno i Utwórz szkic. Użytkownik powinien być zaznajomiony z tworzeniem szkiców z wiązaniami.

Ten poradnik został zainspirowany poradnikami autorstwa jpg87 opublikowanymi na forum FreeCAD.

Zobacz także poniższy wątek, aby uzyskać więcej informacji na temat położenia okien i drzwi.

Zobacz także poniższą stronę, aby zobaczyć kilka filmów na temat wyrównywania okien.

Konfiguracja

1. Otwórz program FreeCAD, utwórz nowy pusty dokument i przejdź do środowiska Architektura.

2. Upewnij się, że jednostki są prawidłowo ustawione w menu Edycja → Preferencje ... → Ogólne → Jednostki. Na przykład MKS (m/kg/s/stopnie) jest dobre do radzenia sobie z odległościami w typowym budynku; co więcej, ustaw liczbę miejsc dziesiętnych na 4, aby uwzględnić nawet najmniejsze ułamki metra.

3. Użyj przycisku Przełącz widoczność siatki, aby wyświetlić siatkę z wystarczającą rozdzielczością. Wygląd siatki można dostosować w menu Edycja → Preferencje → Rysunek Roboczy → Siatka i przyciąganie → Siatka. Ustaw linie co 50 mm, z głównymi liniami co 20 linii (co metr) i 1000 linii w sumie (siatka obejmuje obszar 50 m x 50 m).

4. Oddal widok 3D, jeśli znajdujesz się zbyt blisko siatki.

Teraz możemy stworzyć prostą ścianę, na której umieścimy okna i drzwi.

Umieszczenie ściany

5. Użyj narzędzia Polilinia, aby utworzyć linie. Idź w kierunku przeciwnym do ruchu wskazówek zegara.

5.1. Najpierw wskaż punkt (0, 4, 0); w oknie dialogowym wpisz 0 m Enter, 4 m Enter, 0 m Enter.
5.2. Drugi punkt w (2, 0, 0); w oknie dialogowym wpisz 2 m Enter, 0 m Enter, 0 m Enter.
5.3. Trzeci punkt w (4, 0, 0); w oknie dialogowym wpisz 4 m Enter, 0 m Enter, 0 m Enter.
5.4. Czwarty punkt w (6, 2, 0); w oknie dialogowym wpisz 6 m Enter, 2 m Enter, 0 m Enter.
5.4. Piąty punkt w (6, 5, 0); w oknie dialogowym wpisz 6 m Enter, 5 m Enter, 0 m Enter.
5.5. Na klawiaturze naciśnij A, aby zakończyć polilinię.
5.6. Na klawiaturze numerycznej naciśnij 0, aby uzyskać widok aksonometryczny modelu.

Upewnij się, że pole wyboru Względnie jest wyłączone, jeśli podajesz współrzędne bezwzględne. Uwaga 2: punkty mogą być również definiowane za pomocą kursora myszki poprzez wybranie przecięć na siatce, przy pomocy paska narzędzi przyciągania i metody Przyciągnij do siatki. Uwaga 3: można również tworzyć kształty programowo za pomocą skryptów w Python. Należy pamiętać, że większość funkcji oczekuje danych wejściowych w milimetrach.

import FreeCAD
import Draft

p = [FreeCAD.Vector(0.0, 4000.0, 0),
FreeCAD.Vector(2000.0, 0.0, 0.0),
FreeCAD.Vector(4000.0, 0.0, 0.0),
FreeCAD.Vector(6000.0, 2000.0, 0.0),
FreeCAD.Vector(6000.0, 5000.0, 0.0)]

w = Draft.makeWire(p, closed=False)

6. Wybierz DWire i kliknij narzędzie ściana. Ściana zostanie natychmiast utworzona z domyślną szerokością (grubością) 0,2 m i wysokością 3 m.

Linia bazowa dla ściany

Ściana utworzona z polilini

Umieszczanie wstępnie ustawionych drzwi i okien

7. Kliknij narzędzie okno. Jako ustawienie wstępne wybierz Zwykłe drzwi i zmień wysokość na 2 m.

7.1. Zmień przyciąganie na Przyciągnij do punktu środkowego i spróbuj wybrać dolną krawędź ściany frontowej. W razie potrzeby ustaw widok standardowy, aby wybrać krawędź, a nie lico ściany; gdy punkt środkowy jest aktywny, kliknij, aby umieścić drzwi.
7.2. Kliknij ponownie narzędzie okno i umieść kolejne drzwi, ale tym razem w punkcie środkowym prawej ściany. Ustaw widok standardowy w razie potrzeby.

Przyciąganie do punktu środkowego dolnej krawędzi ściany w celu umieszczenia drzwi.

Uwaga: Wysokość parapetu to odległość od podłogi do dolnej krawędzi elementu. W przypadku drzwi Wysokość parapetu wynosi zwykle 0 m, ponieważ drzwi zwykle dotykają podłog. Z drugiej strony okna mają zwykle odległość od 0,5 m do 1,5 m od podłogi. Wysokość parapetu można ustawić tylko podczas początkowego tworzenia okna lub drzwi z ustawienia wstępnego. Po wstawieniu okna lub drzwi można zmodyfikować ich położenie, edytując wektor DANEPozycja [x, y, z] bazowego szkicu.

Tworzenie niestandardowych drzwi i okien

8. Przejdź do szkicownika. Wybierz część ściany po prawej stronie, która nie ma drzwi, kliknij na utwórz szkic. Wybierz Płaska ściana jako metodę mocowania. Jeśli istniejąca geometria zasłania widok, kliknij Widok przekroju, aby ją usunąć.

9. Narysuj efektowny szkic zawierający trzy zamknięte krzywe. Upewnij się, że nałożysz wiązania na wszystkie krzywe.

  9.1. Zewnętrzna krzywa jest największa i definiuje główne wymiary obiektu okna oraz wielkość otworu tworzonego, gdy jest on osadzony w ścianie. Upewnij się, że wymiary są odpowiednio nazwane, na przykład Szerokość i Wysokość. Wiązanie również określa krzywiznę zewnętrznej krzywej. Nadaj mu odpowiednią nazwę, na przykład HeightCurve.
  9.2. Druga krzywa jest przesunięta od zewnętrznej krzywej, i razem z nią definiują szerokość stałej ramy okna. Nazwij przesunięcie odpowiednio, na przykład FrameFixedOffset. Będzie ono używane zarówno do górnego pionowego, jak i poziomego przesunięcia. Dolne przesunięcie, jeśli ustawione na zero, spowoduje dotknięcie stałej ramy dolnej krawędzi okna. Można to wykorzystać do modelowania drzwi zamiast okna. Nadaj mu odpowiednią nazwę, na przykład FrameFixedBottom.
  9.3. Trzecia, najbardziej wewnętrzna krzywa jest przesunięta od drugiej krzywej, i razem z nią definiują ramę okna, która może być otwierana. Najbardziej wewnętrzna krzywa również określa wielkość panelu szklanego. Ponownie, nadaj znaczące nazwy tym przesunięciom, na przykład FrameInnerOffset i FrameInnerBottom.
  9.4. Aby z powodzeniem zbudować szkic, użyj wiązań poziomych (Wiązanie poziome) i pionowych (Wiązanie pionowe) dla prostych boków; użyj pomocniczej geometrii konstrukcyjnej (Przełącz tryb konstrukcji), oraz wiązań styczności (Wiązanie styczności) do poprawnego umieszczenia łuków kołowych na górze. Ponieważ okno jest symetryczne, rozważ używanie wiązań równości (Wiązanie równości), symetrii (Wiązanie symetrii), oraz punktu na obiekcie (Zwiąż punkt na obiekcie) tam, gdzie to ma sens.

Wiązania dla zewnętrznych linii szkicu tworzących okno.

Wiązania dla wewnętrznych linii szkicu tworzących okno.

10. Gdy szkic zostanie w pełni związany, naciśnij Zamknij, aby wyjść ze szkicu (Zamknij szkic).

10.1. Ponieważ powierzchnia ściany została wybrana podczas początkowego etapu tworzenia szkicu, szkic jest współpłaszczyznowy z tą powierzchnią. Może jednak znajdować się w niewłaściwym położeniu, z dala od ściany. W takim przypadku należy dostosować DANEPozycję w DANEOdsunięciu dołączenia. Ustaw własciwość DANEPozycja na [4 m, 1 m, 0 m], aby szkic był wyśrodkowany na ścianie i znajdował się metr nad poziomem podłogi.
10.2. Nazwane więzy można zobaczyć w DANEWiązaniach. Wartości można zmodyfikować, aby szkic natychmiast zmienił wymiary.

Szkic okna przesunięty do żądanej pozycji na ścianie.

Nazwane wiązania szkicu, które można modyfikować bez wchodzenia do szkicu.

11. Wróć do środowiska pracy Architektura i po wybraniu nowego Sketch002 użyj narzędzia Okno. Okno zostanie utworzone i zrobi dziurę w ścianie. Okno zostało utworzone z niestandardowego szkicu, a nie z ustawienia wstępnego, więc należy je edytować, aby poprawnie wyświetlić jego komponenty, czyli stałą ramę, wewnętrzną ramę i szklany panel.

Niestandardowe okno utworzone na podstawie szkicu. Nadal nie ma odpowiedniej ramy ani szyby.

Konfigurowanie okna niestandardowego

12. W widoku drzewa wybierz Sketch002 leżący pod Oknem i naciśnij Spacja lub zmień właściwość WIDOKWidoczność na PRAWDA.

13. Kliknij dwukrotnie Okno w widoku drzewa, aby rozpocząć jego edycję.

13.1. Wewnątrz okna dialogowego Elementy okna znajdują się dwa panele, Polilinie i Komponent. Dostępne są trzy polilinie Wire0, Wire1 i Wire2 oraz jeden komponent Default. Polilinie odnoszą się do zamkniętych pętli, które zostały narysowane w szkicu. Komponenty definiują obszary w szkicu, które zostaną wyciągnięte w celu utworzenia ramy lub szklanych paneli o rzeczywistej grubości. Obszary te są ograniczone przez polilinie. Okno utworzone z ustawienia wstępnego ma już dwa komponenty, OuterFrame i Glass. Okno niestandardowe musi być edytowane, aby miało podobną strukturę.

Okno dialogowe do edycji okna lub drzwi.

13.2. Kliknij Default i kliknij przycisk Usuń, aby go usunąć.
13.3. Kliknij Dodaj. Zostaną wyświetlone właściwości nowego komponentu, takie jak Nazwa, Typ, Polilinie, Grubość, Przesunięcie, Zawias i Tryb otwierania. Nadaj nazwę, na przykład OuterFrame, wybierz Rama dla Typu i kliknij Wire0, a następnie Wire1; powinny one zostać podświetlone w oknie widoku 3D. Dodaj małą wartość dla Grubość, 15 mm i zaznacz pole wyboru, aby dodać wartość domyślną. Wartość domyślna to długość przypisana do właściwości DANERama. Podobną wartość domyślną można przypisać do właściwości DANEOdsunięcie. Kliknij przycisk +Utwórz/aktualizuj komponent, aby zakończyć edycję komponentu.
13.4. Kliknij Dodaj. Nadaj inną nazwę, taką jak InnerFrame, wybierz Rama dla własciwości Typ i kliknij Wire1, a następnie Wire2. Dodaj odpowiednią wartość właściwości Grubość, 60 mm i Odsunięcie, 15 mm. Następnie kliknij przycisk +Utwórz/aktualizuj komponent.
13.5. Kliknij Dodaj. Nadaj inną nazwę, na przykład Glass, wybierz Panel szklany dla własciwości Typ i kliknij Wire2. Dodaj sensowną Grubość, 10 mm, i Odsunięcie, 40 mm. Następnie kliknij przycisk +Utwórz / aktualizuj komponent. Jeśli którykolwiek z trzech komponentów wymaga modyfikacji, wybierz go i naciśnij przycisk Edycja. Modyfikacje zostaną zapisane dopiero po naciśnięciu przycisku +Utwórz / aktualizuj komponent.

Edytowanie wcześniej zdefiniowanego elementu okna lub drzwi.

13.6. Jeśli wszystko jest ustawione, kliknij Zamknij, aby zakończyć edycję okna. Szkic może zostać ponownie ukryty, ale w oknie będą widoczne różne elementy stałe dla OuterFrame, InnerFrame i Glass. Podaj wartość 100 mm do DANEFrame, aby przypisać domyślną grubość, która zostanie dodana do wartości określonej w elemencie OuterFrame.

Widok właściwości okna, aby dodać domyślną długość ramki, długość przesunięcia i inne opcje.

Gotowe okno z odpowiednimi elementami osadzonymi w ścianie.

Powielanie niestandardowego okna

14. W widoku drzewa wybierz Okno i jego bazowy Szkic002. Następnie przejdź do Edycja → Powiel zaznaczony obiekt i odpowiedz Nie, jeśli pojawi się pytanie o powielenie niezaznaczonych zależności. Nowe obiekty Okno001 i Szkic003 pojawią się w tym samym miejscu co oryginalne elementy.

Jeśli okno już istnieje i wymaga przeniesienia, jak miało to miejsce w przypadku zduplikowanego obiektu Okno001, szkic musi zostać przemapowany na inną płaszczyznę. Dokonanie tego przenosi zarówno szkic, jak i okno, ale to drugie nie aktualizuje automatycznie swojej normalnej, więc ma niewłaściwe informacje o ekstruzji. Normalna musi zostać obliczona ręcznie i wpisana do DANENormalnej.

Okno dialogowe do edycji płaszczyzny mocowania szkicu.

16. Możesz dostosować wymiary nowego okna, zmieniając nazwane parametry w Sketch003 pod włąściwością DANEWiązania, na przykład ustaw wartość parametru Wysokość na 2 m, a wartość parametru Stała dolna część ramy na 0 m. Następnie naciśnij Ctrl + R, aby przeliczyć model. Jeśli ściana nie pokazuje większego otworu dla nowego okna, wybierz ścianę w widoku drzewa, kliknij prawym przyciskiem myszy i wybierz Zaznacz do przeliczenia, a następnie ponownie naciśnij Ctrl+R.

17. Operacje te zmieniły położenie nowego okna, ale otwór w ścianie nie wygląda prawidłowo. Jest pochylony, tzn. otwór nie jest prostopadły do lica ściany, a nawet może przecinać inne części ściany. Problem polega na tym, że Okno001 zachował informacje DANENormal oryginalnego Okna.

Nieprawidłowy otwór w ścianie z powodu złej normalnej okna.

Normalne drzwi i okien

18. Każdy obiekt okna kontroluje wyciągnięcie swojego korpusu i otwór, który jest tworzony w ścianie hosta za pomocą DANENormalnej.

Normalna jest wektorem [x, y, z], który wskazuje kierunek prostopadły do ściany. Gdy okno lub drzwi są tworzone za pomocą narzędzia Okno bezpośrednio nad obiektem ściana, normalna jest automatycznie obliczana, a powstałe okno lub drzwi są prawidłowo wyrównane. Pierwsze dwa obiekty, Drzwi i Drzwi001, zostały utworzone w ten sposób.

W podobny sposób, gdy szkic jest tworzony poprzez wybór powierzchni płaskiej, jest on orientowany na tej płaszczyźnie. Następnie, gdy używane jest narzędzie Okno, okno będzie używać jako normalnej kierunku prostopadłego do szkicu. Tak było w przypadku trzeciego obiektu, niestandardowego okna.

Jeśli okno już istnieje i wymaga przeniesienia, jak miało to miejsce w przypadku zduplikowanego obiektu Okno001, szkic musi zostać przemapowany na inną płaszczyznę. Dokonanie tego przenosi zarówno szkic, jak i okno, ale to drugie nie aktualizuje automatycznie swojej normalnej, więc ma niewłaściwe informacje o ekstruzji. Normalna musi zostać obliczona ręcznie i wpisana do właściwości DANENormal.

Trzy wartości wektora normalnego są obliczane w następujący sposób.

x = -sin(kąt)
y = cos(kąt)
z = 0

Gdzie angle jest kątem lokalnej osi Z szkicu względem globalnej osi Y.

Kiedy szkic jest tworzony, zawsze posiada dwie osie: lokalną X (czerwoną) i lokalną Y (zieloną). Jeśli szkic jest mapowany na globalną płaszczyznę roboczą XY, to te osie są wyrównane. Ale jeśli szkic jest mapowany na globalne płaszczyzny XZ lub YZ, jak ma to miejsce z oknami i drzwiami (szkice stoją pionowo), to lokalna oś Z (niebieska) tworzy kąt ze globalną osią Y. Ten kąt zmienia się od -180 do 180°. Kąt jest uważany za dodatni, jeśli otwiera się przeciwnie do ruchu wskazówek zegara, a jest ujemny, jeśli otwiera się zgodnie z ruchem wskazówek zegara, zaczynając od globalnej osi Y.

Lokalne współrzędne szkicu, który jest usytuowany "na stojąco", czyli odwzorowany na globalną płaszczyznę XZ.

Zamierzone kierunki normalnych dla każdych drzwi i okien.

Jeśli spojrzymy na geometrię utworzoną do tej pory, zobaczymy następujące normy.

Drzwi
Lokalne Z jest wyrównane z globalnym Y, dlatego angle wynosi zero. Wektor normalny to:
x = -sin(0) = 0
y = cos(0) = 1
z = 0

lub DANENormal to [0, 1, 0].

Drzwi001
Lokalne Z jest obrócone o 90° względem globalnego Y, dlatego angle wynosi 90 (dodatnie, ponieważ otwiera się przeciwnie do ruchu wskazówek zegara). Wektor normalny to:
x = -sin(90) = -1
y = cos(90) = 0
z = 0

lub DANENormal to [-1, 0, 0].

Okno
Lokalne Z jest obrócone o 45° względem globalnego Y, dlatego angle wynosi 45 (dodatnie, ponieważ otwiera się przeciwnie do ruchu wskazówek zegara). Wektor normalny to
x = -sin(45) = -0.7071
y = cos(45) = 0.7071
z = 0

lub DANENormal to [-0.7071, 0.7071, 0].

Okno001
Kierunek lokalny Z jest określany za pomocą narzędzia Wymiar, mierząc kąt, jaki ślad ściany tworzy (polilinia) z globalną osią Y lub dowolną linią wyrównaną do niej. Ten kąt wynosi 26,57. Pożądany kąt jest dopełnieniem do tego, czyli 90 - 26,57 = 63,43.

Oznacza to, że lokalna oś Z jest obrócona o 63,43 stopnia w stosunku do globalnej osi Y, dlatego angle wynosi -63,46 (ujemny, ponieważ otwiera się zgodnie z ruchem wskazówek zegara). Wektor normalny to

x = -sin(-63.43) = 0.8943
y = cos(-63.43) = 0.4472
z = 0

Dlatego DANENormalna powinien zostać zmieniona na [0.8943, 0.4472, 0].

Po wprowadzeniu tych zmian ponownie przelicz model za pomocą Ctrl + R. Jeśli ściana nie zaktualizuje otworu, zaznacz ją w widoku drzewa, kliknij prawym przyciskiem myszy i wybierz Zaznacz do przeliczenia, a następnie ponownie naciśnij Ctrl + R.

19. Orientacja wytłoczenia okna jest rozwiązana, wraz z otworem w ścianie.

Prawidłowy otwór w ścianie dzięki odpowiedniej normalności okna.

Uwagi końcowe

20. Jak pokazano, początkowe umieszczenie Okna jest bardzo ważne. Użytkownik powinien:

  • użyć narzędzia Okna, aby wstawić i automatycznie wyrównać ustawienie wstępne do ściany, lub
  • zmapować szkic do żądanej ściany, a następnie zbudować okno.

Jeśli okno już istnieje i musi zostać przeniesione, szkic pomocniczy powinien zostać przemapowany na nową płaszczyznę, a DANENormal okna musi zostać ponownie przeliczone.

Nowy kierunek normalny można uzyskać, mierząc angle nowej ściany w odniesieniu do globalnej osi Y, biorąc pod uwagę, czy kąt ten jest dodatni (przeciwnie do ruchu wskazówek zegara) czy ujemny (zgodnie z ruchem wskazówek zegara) i używając prostego wzoru.

x = -sin(angle)
y = cos(angle)
z = 0

Aby potwierdzić poprawność operacji, bezwzględna wielkość wektora normalnego powinna wynosić jeden. To znaczy:

abs(N) = 1 = sqrt(x^2 + y^2 + z^2)
abs(N) = 1 = sqrt(sin^2(angle) + cos^2(angle) + z^2)