OpenSCAD Workbench/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "==Język OpenSCAD i format pliku==")
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 2: Line 2:


{{Docnav/pl
{{Docnav/pl
|[[Mesh_Workbench/pl|Środowisko pracy Siatka]]
|[[Mesh_Workbench/pl|środowisko pracy Siatka]]
|[[Part_Workbench/pl|Środowisko pracy Część]]
|[[Part_Workbench/pl|środowisko pracy Część]]
|IconL=Workbench_Mesh.svg
|IconL=Workbench_Mesh.svg
|IconR=Workbench_Part.svg
|IconR=Workbench_Part.svg
}}
}}


[[Image:Workbench_OpenSCAD.svg|thumb|128px|Ikonka FreeCAD dla Środowiska pracy OpenSCAD]]
[[Image:Workbench_OpenSCAD.svg|thumb|128px|Ikonka FreeCAD dla środowiska pracy OpenSCAD]]


<span id="Introduction"></span>
==Wprowadzenie==
==Wprowadzenie==


Line 16: Line 17:
OpenSCAD nie powinien być mylony z [[OpenCASCADE/pl|OpenCASCADE]] będącym nierozłącznym komponentem FreeCAD odpowiedzialnym za opis geometrii. Instalacja oprogramowania OpenSCAD jest w pełni opcjonalna.
OpenSCAD nie powinien być mylony z [[OpenCASCADE/pl|OpenCASCADE]] będącym nierozłącznym komponentem FreeCAD odpowiedzialnym za opis geometrii. Instalacja oprogramowania OpenSCAD jest w pełni opcjonalna.


It contains a [[OpenSCAD_CSG|CSG]] importer to open the CSG files from OpenSCAD, and an exporter to output a CSG based tree. Geometry which is not based on CSG operations will be exported as a mesh.
Zawiera importer formatu [[OpenSCAD_CSG/pl|CSG]], który otwiera pliki CSG z OpenSCAD, oraz eksporter, który tworzy drzewo oparte na CSG. Geometria, która nie jest oparta na operacjach CSG, zostanie wyeksportowana jako siatka.


To środowisko pracy zawiera funkcje do modyfikacji drzewa cech CSG i naprawy modeli. Zawiera także narzędzia ogólnego przeznaczenia, które nie wymagają instalacji OpenSCAD Mogą być one używane w połączeniu z innymi środowiskami pracy. Na przykład, środowiskiem [[Mesh_Workbench/pl|Projekt Siatki]] wewnętrznie używa funkcji OpenSCAD do wykonywania operacji z [[Mesh/pl|siatkami]], ponieważ są one dość stabilne.
This workbench contains functions to modify the CSG feature tree and repair models. It also contains general purpose tools that do not require installation of OpenSCAD; they can be used in conjunction with other workbenches. For example, the [[Mesh_Workbench|Mesh Workbench]] internally uses the OpenSCAD functions to perform operations with [[mesh|meshes]], as they are quite robust.


{{TOCright}}
{{TOCright}}
[[Image:OpenSCADexamaple1.png]]
[[Image:OpenSCADexamaple1.png]]


<span id="Dependencies"></span>
== Zależności ==
== Zależności ==


In FreeCAD 0.19, the Ply (Python-Lex-Yacc) module, which is used to import CSG files, was removed from the FreeCAD source code, as it is a third party library not developed by FreeCAD. As a result, you now need to install Ply before using the OpenSCAD Workbench. When using a pre-packaged, stable version of FreeCAD this dependency should be installed automatically in all platforms; in other cases, for example, when [[Compiling|compiling]] from source, you may have to install it from an online repository.
W wersji FreeCAD 0.19 moduł Ply ''(Python-Lex-Yacc)'', który jest używany do importowania plików CSG, został usunięty z kodu źródłowego FreeCAD, ponieważ jest to biblioteka zewnętrzna, która nie została opracowana przez zespół FreeCAD. W rezultacie musisz teraz zainstalować Ply przed użyciem środowiska OpenSCAD. W przypadku używania wstępnie spakowanej, stabilnej wersji FreeCAD zależność ta powinna być zainstalowana automatycznie na wszystkich platformach; w innych przypadkach, na przykład podczas [[Compiling/pl|kompilowania]] ze źródeł, może być konieczne zainstalowanie jej z repozytorium online.


W dystrybucjach opartych o openSUSE środowisko może zostać zainstalowane za pomocą:
W dystrybucjach opartych o openSUSE środowisko może zostać zainstalowane za pomocą:
Line 45: Line 47:
}}
}}


<span id="OpenSCAD_language_and_file_format"></span>
==Język OpenSCAD i format pliku==
==Język OpenSCAD i format pliku==


Język OpenSCAD pozwala na używanie zmiennych i pętli. Pozwala on na określenie modułów podrzędnych w celu ponownego użycia geometrii i kodu. Ten wysoki stopień elastyczności sprawia, że parsowanie kodu jest bardzo złożone. Obecnie środowisko OpenSCAD nie obsługuje natywnie języka OpenSCAD.
The OpenSCAD language allows the use of variables and loops. It allows you to specify sub-modules to reuse geometry and code. This high degree of flexibility makes parsing very complex. Currently the OpenSCAD Workbench cannot handle the OpenSCAD language natively.
Instead, if OpenSCAD is installed, it can be used to convert the input to the CSG format, which is a subset of the OpenSCAD language, and can be used as the input to OpenSCAD for further processing.
Zamiast tego, jeśli OpenSCAD jest zainstalowany, może być użyty do konwersji danych wejściowych do formatu CSG, który jest podzbiorem języka OpenSCAD i może być użyty jako dane wejściowe do OpenSCAD do dalszej obróbki.
Podczas konwersji wszystkie parametry są tracone, co oznacza, że wszystkie nazwy zmiennych są usuwane, pętle rozwijane, a wyrażenia matematyczne obliczane.
During conversion all parametric behavior is lost, meaning that all variable names are discarded, loops expanded, and mathematical expressions evaluated.


<span id="Tools"></span>
==Przybory==
==Przybory==


Line 69: Line 73:
* [[Image:OpenSCAD_Minkowski.svg|32px]] [[OpenSCAD_Minkowski/pl|Minkowski]]: Stosuje sumę minkowskiego do wybranych kształtów.
* [[Image:OpenSCAD_Minkowski.svg|32px]] [[OpenSCAD_Minkowski/pl|Minkowski]]: Stosuje sumę minkowskiego do wybranych kształtów.


<span id="Preferences"></span>
==Ustawienia==
==Ustawienia==


* [[Image:Std_DlgPreferences.svg|32px]] [[OpenSCAD_Preferences/pl|Preferencje]]: ustawienia dostępne dla środowiska OpenSCAD.
* [[Image:Std_DlgPreferences.svg|32px]] [[OpenSCAD_Preferences/pl|Preferencje]]: ustawienia dostępne dla środowiska OpenSCAD.


<span id="Limitations"></span>
==Ograniczenia==
==Ograniczenia==


OpenSCAD creates constructive solid geometry, as well as imports mesh files and extrudes 2D geometry from [[DXF|DXF]] files. FreeCAD allows you to create CSG with primitives as well. The FreeCAD geometry kernel (OCCT) works using a boundary representation. Therefore conversion from CSG to BREP should, in theory, be possible whereas conversion from BREP to CSG is, in general, not.
OpenSCAD tworzy konstrukcyjną geometrię bryłową, a także importuje pliki siatek i wytłacza geometrię 2D z plików [[DXF/pl|DXF]]. FreeCAD pozwala również na tworzenie formatu CSG za pomocą elementów pierwotnych. Jądro geometrii FreeCAD ''(OCCT)'' działa w oparciu o reprezentację brzegową. Dlatego konwersja z CSG do BREP teoretycznie powinna być możliwa, natomiast konwersja z BREP do CSG zasadniczo nie jest.


OpenSCAD pracuje wewnętrznie na siatkach. Niektóre operacje, które są przydatne w przypadku siatek, nie mają znaczenia w modelu BREP i nie mogą być w pełni obsługiwane. Należą do nich m.in. kadłub wypukły, suma minkowskiego, przesuwanie i podział. Obecnie w celu wykonania operacji na kadłubie i sumie minkwoskiej uruchamiamy binarny program OpenSCAD i importujemy wynik. Oznacza to, że zaangażowana geometria zostanie poddana triangulacji. W OpenSCAD często stosuje się skalowanie niejednolite, co nie stwarza problemów przy korzystaniu z siatek. W naszym jądrze geometrii elementy pierwotne geometrii (linie, odcinki koliste itp.) są konwertowane na krzywe złożone przed wykonaniem takich deformacji. Te krzywe złożone są znane z tego, że powodują problemy w późniejszych operacjach logicznych. W chwili obecnej nie jest dostępne automatyczne rozwiązanie tego problemu. Jeśli napotkasz takie problemy, napisz o tym na forum. Często takie problemy można rozwiązać, przemodelowując małe części. Zniekształcenie walca można zastąpić wycięciem elipsy.
OpenSCAD works internally on meshes. Some operations which are useful on meshes are not meaningful on a BREP model and can not be fully supported. Among these are convex hull, minkowski sum, glide and subdiv. Currently we run the OpenSCAD binary in order to perform hull and minkwoski operations and import the result. This means that the involved geometry will be triangulated. In OpenSCAD non-uniform scaling is often used, which does not impose any problems when using meshes. In our geometry kernel geometric primitives (lines, circular sections, etc) are converted to BSpline prior to performing such deformations. Those BSplines are known to cause trouble in later boolean operations. An automatic solution is not available at the moment. Please feel free to post to the forum if you encounter such problems. Often such problems can be solved be remodeling small parts. A deformation of a cylinder can substituted by an extrusion of an ellipses.


<span id="Importing_text"></span>
== Importing text ==
==Importowanie tekstu==


Importowanie kodu OpenSCAD z tekstami wymaga, aby czcionki, które są używane, były poprawnie zainstalowane w systemie. Można to sprawdzić otwierając OpenSCAD jako samodzielne narzędzie i sprawdzając listę w {{MenuCommand|Pomoc → Font List}}. Lista ta zawiera również prawidłowe nazwy czcionek. Jeżeli po zainstalowaniu czcionka nie pojawia się na liście, może być konieczne ręczne skopiowanie pliku z czcionką do odpowiedniego katalogu systemowego.
Importing OpenSCAD code with texts requires that the fonts that are used are properly installed on your system. You can verify this by opening OpenSCAD as a standalone tool and checking the list in {{MenuCommand|Help → Font List}}. The list will also give you the correct font names. If a font does not appear in the list after installing, you may have to manually copy the font file to the appropriate system directory.


Importing texts is relatively slow. Behind the scenes FreeCAD uses a DXF file created by OpenSCAD. The more contours there are the slower the import.
Importowanie tekstów jest stosunkowo powolne. Za kulisami FreeCAD korzysta z pliku DXF utworzonego przez OpenSCAD. Im więcej konturów, tym wolniejszy jest import.


It can be a good idea to first import a simple test case (replace {{Incode|NameOfFont}} with the correct font name):
Dobrym pomysłem może być zaimportowanie najpierw prostego przykładu testowego ''(zamień {{Incode|NameOfFont}} na poprawną nazwę czcionki)'':


<pre>
<pre>
Line 94: Line 101:
</pre>
</pre>


The {{Incode|<nowiki>script="Latn"</nowiki>}} parameter can be left out here, but is required if the text string does not contain any letters, but only punctuation and/or numbers.
Parametr {{Incode|<nowiki>script="Latn"</nowiki>}} można tutaj pominąć, ale jest on wymagany, jeśli łańcuch tekstowy nie zawiera żadnych liter, a jedynie znaki interpunkcyjne i / lub cyfry.


Please note that {{Incode|<nowiki>use <FONT>;</nowiki>}} statements in your source files are ignored when importing in FreeCAD. Under OpenSCAD the effect of a {{Incode|use}} statement is that the provided font file is temporarily added to the list of known fonts (although even there the statement does not work when a script is modified interactively).
Należy pamiętać, że deklaracje {{Incode|<nowiki>use <FONT>;</nowiki>}} w plikach źródłowych ignorowane podczas importu w FreeCAD. W OpenSCAD efektem deklaracji {{Incode|use}} jest tymczasowe dodanie podanego pliku czcionki do listy znanych czcionek ''(chociaż nawet tam deklaracja nie działa, gdy skrypt jest modyfikowany interaktywnie)''.


<span id="Hints"></span>
== Wskazówki ==
== Wskazówki ==


Line 104: Line 112:
Jeśli program FreeCAD zawiesza się podczas importowania pliku CSG, zaleca się włączenie opcji "Automatycznie sprawdź model po operacji logicznej" w menu {{MenuCommand|Edycja → Preferencje ... → Projekt Części → Ogólne → Ustawienia modelu}}.
Jeśli program FreeCAD zawiesza się podczas importowania pliku CSG, zaleca się włączenie opcji "Automatycznie sprawdź model po operacji logicznej" w menu {{MenuCommand|Edycja → Preferencje ... → Projekt Części → Ogólne → Ustawienia modelu}}.


<span id="Tutorials"></span>
==Poradniki==
==Poradniki==


* [[Import_OpenSCAD_code/pl|Importowanie kodu OpenSCAD]]
* [[Import_OpenSCAD_code/pl|Importowanie kodu OpenSCAD]]


<span id="Links"></span>
==Odnośniki internetowe==
==Odnośniki internetowe==


Line 116: Line 126:


{{Docnav/pl
{{Docnav/pl
|[[Mesh_Workbench/pl|Środowisko pracy Siatka]]
|[[Mesh_Workbench/pl|środowisko pracy Siatka]]
|[[Part_Workbench/pl|Środowisko pracy Część]]
|[[Part_Workbench/pl|środowisko pracy Część]]
|IconL=Workbench_Mesh.svg
|IconL=Workbench_Mesh.svg
|IconR=Workbench_Part.svg
|IconR=Workbench_Part.svg

Latest revision as of 14:57, 7 February 2024

Ikonka FreeCAD dla środowiska pracy OpenSCAD

Wprowadzenie

Środowisko pracy OpenSCAD służy do zapewnienia interoperacyjności z oprogramowaniem OpenSCAD. Program ten nie jest częścią projektu FreeCAD i by zapewnić pełną funkcjonalność tego środowiska należy zainstalować go samodzielnie.

OpenSCAD nie powinien być mylony z OpenCASCADE będącym nierozłącznym komponentem FreeCAD odpowiedzialnym za opis geometrii. Instalacja oprogramowania OpenSCAD jest w pełni opcjonalna.

Zawiera importer formatu CSG, który otwiera pliki CSG z OpenSCAD, oraz eksporter, który tworzy drzewo oparte na CSG. Geometria, która nie jest oparta na operacjach CSG, zostanie wyeksportowana jako siatka.

To środowisko pracy zawiera funkcje do modyfikacji drzewa cech CSG i naprawy modeli. Zawiera także narzędzia ogólnego przeznaczenia, które nie wymagają instalacji OpenSCAD Mogą być one używane w połączeniu z innymi środowiskami pracy. Na przykład, środowiskiem Projekt Siatki wewnętrznie używa funkcji OpenSCAD do wykonywania operacji z siatkami, ponieważ są one dość stabilne.

Zależności

W wersji FreeCAD 0.19 moduł Ply (Python-Lex-Yacc), który jest używany do importowania plików CSG, został usunięty z kodu źródłowego FreeCAD, ponieważ jest to biblioteka zewnętrzna, która nie została opracowana przez zespół FreeCAD. W rezultacie musisz teraz zainstalować Ply przed użyciem środowiska OpenSCAD. W przypadku używania wstępnie spakowanej, stabilnej wersji FreeCAD zależność ta powinna być zainstalowana automatycznie na wszystkich platformach; w innych przypadkach, na przykład podczas kompilowania ze źródeł, może być konieczne zainstalowanie jej z repozytorium online.

W dystrybucjach opartych o openSUSE środowisko może zostać zainstalowane za pomocą:

sudo zypper install python3-ply

W dystrybucjach opartych o Debian / Ubuntu środowisko może zostać zainstalowane za pomocą:

sudo apt install python3-ply

Ogólna instalacja na wszystkich platformach może być wykonana z indeksu pakietów Pythona.

pip3 install --user ply

Język OpenSCAD i format pliku

Język OpenSCAD pozwala na używanie zmiennych i pętli. Pozwala on na określenie modułów podrzędnych w celu ponownego użycia geometrii i kodu. Ten wysoki stopień elastyczności sprawia, że parsowanie kodu jest bardzo złożone. Obecnie środowisko OpenSCAD nie obsługuje natywnie języka OpenSCAD. Zamiast tego, jeśli OpenSCAD jest zainstalowany, może być użyty do konwersji danych wejściowych do formatu CSG, który jest podzbiorem języka OpenSCAD i może być użyty jako dane wejściowe do OpenSCAD do dalszej obróbki. Podczas konwersji wszystkie parametry są tracone, co oznacza, że wszystkie nazwy zmiennych są usuwane, pętle rozwijane, a wyrażenia matematyczne obliczane.

Przybory

Ustawienia

  • Preferencje: ustawienia dostępne dla środowiska OpenSCAD.

Ograniczenia

OpenSCAD tworzy konstrukcyjną geometrię bryłową, a także importuje pliki siatek i wytłacza geometrię 2D z plików DXF. FreeCAD pozwala również na tworzenie formatu CSG za pomocą elementów pierwotnych. Jądro geometrii FreeCAD (OCCT) działa w oparciu o reprezentację brzegową. Dlatego konwersja z CSG do BREP teoretycznie powinna być możliwa, natomiast konwersja z BREP do CSG zasadniczo nie jest.

OpenSCAD pracuje wewnętrznie na siatkach. Niektóre operacje, które są przydatne w przypadku siatek, nie mają znaczenia w modelu BREP i nie mogą być w pełni obsługiwane. Należą do nich m.in. kadłub wypukły, suma minkowskiego, przesuwanie i podział. Obecnie w celu wykonania operacji na kadłubie i sumie minkwoskiej uruchamiamy binarny program OpenSCAD i importujemy wynik. Oznacza to, że zaangażowana geometria zostanie poddana triangulacji. W OpenSCAD często stosuje się skalowanie niejednolite, co nie stwarza problemów przy korzystaniu z siatek. W naszym jądrze geometrii elementy pierwotne geometrii (linie, odcinki koliste itp.) są konwertowane na krzywe złożone przed wykonaniem takich deformacji. Te krzywe złożone są znane z tego, że powodują problemy w późniejszych operacjach logicznych. W chwili obecnej nie jest dostępne automatyczne rozwiązanie tego problemu. Jeśli napotkasz takie problemy, napisz o tym na forum. Często takie problemy można rozwiązać, przemodelowując małe części. Zniekształcenie walca można zastąpić wycięciem elipsy.

Importowanie tekstu

Importowanie kodu OpenSCAD z tekstami wymaga, aby czcionki, które są używane, były poprawnie zainstalowane w systemie. Można to sprawdzić otwierając OpenSCAD jako samodzielne narzędzie i sprawdzając listę w Pomoc → Font List. Lista ta zawiera również prawidłowe nazwy czcionek. Jeżeli po zainstalowaniu czcionka nie pojawia się na liście, może być konieczne ręczne skopiowanie pliku z czcionką do odpowiedniego katalogu systemowego.

Importowanie tekstów jest stosunkowo powolne. Za kulisami FreeCAD korzysta z pliku DXF utworzonego przez OpenSCAD. Im więcej konturów, tym wolniejszy jest import.

Dobrym pomysłem może być zaimportowanie najpierw prostego przykładu testowego (zamień NameOfFont na poprawną nazwę czcionki):

TESTFONT="NameOfFont";
linear_extrude(0.001) {
  text("A", size=5, font=TESTFONT, script="Latn");
};

Parametr script="Latn" można tutaj pominąć, ale jest on wymagany, jeśli łańcuch tekstowy nie zawiera żadnych liter, a jedynie znaki interpunkcyjne i / lub cyfry.

Należy pamiętać, że deklaracje use <FONT>; w plikach źródłowych są ignorowane podczas importu w FreeCAD. W OpenSCAD efektem deklaracji use jest tymczasowe dodanie podanego pliku czcionki do listy znanych czcionek (chociaż nawet tam deklaracja nie działa, gdy skrypt jest modyfikowany interaktywnie).

Wskazówki

Podczas importowania plików w formacie DXF ustaw precyzję szkicu na rozsądną wartość, ponieważ będzie to miało wpływ na wykrywanie połączonych krawędzi.

Jeśli program FreeCAD zawiesza się podczas importowania pliku CSG, zaleca się włączenie opcji "Automatycznie sprawdź model po operacji logicznej" w menu Edycja → Preferencje ... → Projekt Części → Ogólne → Ustawienia modelu.

Poradniki

Odnośniki internetowe