diff --git a/.editorconfig b/.editorconfig index f7dbe05..dd63891 100644 --- a/.editorconfig +++ b/.editorconfig @@ -20,5 +20,6 @@ insert_final_newline = false [*.md] charset = utf-8 +insert_final_newline = true indent_style = tab indent_size = 4 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..2eadfe6 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,14 @@ +# .gitattributes +# default behavior, in case people don't have core.autocrlf set +* text=auto + +# gdl files should display properly everywhere +*.gdl text eol=crlf + +# truly binary; should not be modified +*.png binary +*.jpg binary +*.gsm binary + +# exlude from statistics +docs/* linguist-vendored diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 8452326..a5017bf 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,7 +1,7 @@ # These are supported funding model platforms github: runxel -patreon: # Replace with a single Patreon username +patreon: runxel open_collective: # Replace with a single Open Collective username ko_fi: runxel tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..a4d4797 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,40 @@ +# Achieve auto-updating docs (actually generating the webpage via Jekyll) on every push. + +name: docs + +# Run everytime we push to Master AND push a md +on: + push: + branches: [ master ] + paths: 'Objects/*/README.md' + + +jobs: + docit: + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - uses: actions/checkout@master + #with: + #persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token + #fetch-depth: 0 # otherwise, you will failed to push refs to dest repo + - name: Create local changes + run: | + find ./Objects/ -type f -name "README.md" | while read fname; do + dirname=`dirname "$fname"` + foldername=`basename "$dirname"` + filename=`basename "$fname"` + newname=`echo "$dirname" | sed -e "s/ /_/g"` + cp "${dirname}/$filename" "./docs/_objects/${foldername}.md" + done + - name: Commit files + run: | + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + git add docs/_objects/* + git commit -m "Auto Publish" -a + - name: Push changes + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 5d46503..d135519 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,22 @@ # .gitignore ideas/ +todo.md # no big binaries / proprietary image files in git Objects/*/img/*.psd Objects/*/img/*.ai -# sublime text stuff -*.sublime-project -*.sublime-workspace \ No newline at end of file +# no PLN files I just use for testing +Objects/*/*/*.pln + +docs/_img/ +# no jekyll stuff +docs/_site/ +.sass-cache +.jekyll-cache +.jekyll-metadata + +# IDE stuff +*.sublime-* +*.code-workspace +.vscode diff --git a/Macros/_dev/localCoor3D/localCoor3D.gsm b/Macros/_dev/localCoor3D/localCoor3D.gsm new file mode 100644 index 0000000..9b7769f Binary files /dev/null and b/Macros/_dev/localCoor3D/localCoor3D.gsm differ diff --git a/Macros/_dev/localCoor3D/localCoor3D/ancestry.xml b/Macros/_dev/localCoor3D/localCoor3D/ancestry.xml new file mode 100644 index 0000000..56ce882 --- /dev/null +++ b/Macros/_dev/localCoor3D/localCoor3D/ancestry.xml @@ -0,0 +1,6 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + B2970E4C-8680-4061-8670-2F4B638F3953 + diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/calledmacros.xml b/Macros/_dev/localCoor3D/localCoor3D/calledmacros.xml similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/calledmacros.xml rename to Macros/_dev/localCoor3D/localCoor3D/calledmacros.xml diff --git a/Macros/_dev/localCoor3D/localCoor3D/libpartdata.xml b/Macros/_dev/localCoor3D/localCoor3D/libpartdata.xml new file mode 100644 index 0000000..293dbe4 --- /dev/null +++ b/Macros/_dev/localCoor3D/localCoor3D/libpartdata.xml @@ -0,0 +1,17 @@ + + + + 787E30D2-FF33-4075-B6C3-9EA3A8747FB6 + false + false + Normal + false + + + + + + + + + diff --git a/Macros/_dev/localCoor3D/localCoor3D/libpartdocs.xml b/Macros/_dev/localCoor3D/localCoor3D/libpartdocs.xml new file mode 100644 index 0000000..5d9eec1 --- /dev/null +++ b/Macros/_dev/localCoor3D/localCoor3D/libpartdocs.xml @@ -0,0 +1,20 @@ + + + + Lucas Becker + + CC0 + 1.0 + + + + + + + + + + diff --git a/Macros/_dev/localCoor3D/localCoor3D/paramlist.xml b/Macros/_dev/localCoor3D/localCoor3D/paramlist.xml new file mode 100644 index 0000000..b462d40 --- /dev/null +++ b/Macros/_dev/localCoor3D/localCoor3D/paramlist.xml @@ -0,0 +1,66 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 0 + + + diff --git a/Macros/_dev/localCoor3D/localCoor3D/scripts/3d.gdl b/Macros/_dev/localCoor3D/localCoor3D/scripts/3d.gdl new file mode 100644 index 0000000..71b05a0 --- /dev/null +++ b/Macros/_dev/localCoor3D/localCoor3D/scripts/3d.gdl @@ -0,0 +1,25 @@ +! --- DEV-MACRO --- ! +! "localCoor3D" +! Can be used to display the axis of the current +! coordinate system. Useful if you're lost in 3D. +! =============================================== + + +dict LOCOOR ! local coordinate system +LOCOOR.size = 0.15 +LOCOOR.sphere = 0.005 +LOCOOR.red = req("pen_of_rgb 1 0 0") +LOCOOR.green = req("pen_of_rgb 0 1 0") +LOCOOR.blue = req("pen_of_rgb 0 0 1") + +sphere LOCOOR.sphere + +pen LOCOOR.red ! RED – X axis +lin_ 0, 0, 0, LOCOOR.size, 0, 0 +pen LOCOOR.green ! GREEN – Y axis +lin_ 0, 0, 0, 0, LOCOOR.size, 0 +pen LOCOOR.blue ! BLUE – Z axis +lin_ 0, 0, 0, 0, 0, LOCOOR.size + +END ! -- END -- END -- END ! +! ------------------------- ! diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile.gsm b/Objects/2D Complex Profile/2D Complex Profile.gsm similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile.gsm rename to Objects/2D Complex Profile/2D Complex Profile.gsm diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/ancestry.xml b/Objects/2D Complex Profile/2D Complex Profile/ancestry.xml similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/ancestry.xml rename to Objects/2D Complex Profile/2D Complex Profile/ancestry.xml diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/calledmacros.xml b/Objects/2D Complex Profile/2D Complex Profile/calledmacros.xml similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/calledmacros.xml rename to Objects/2D Complex Profile/2D Complex Profile/calledmacros.xml diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/images/Picture_0.png b/Objects/2D Complex Profile/2D Complex Profile/images/Picture_0.png similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/images/Picture_0.png rename to Objects/2D Complex Profile/2D Complex Profile/images/Picture_0.png diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/libpartdata.xml b/Objects/2D Complex Profile/2D Complex Profile/libpartdata.xml similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/libpartdata.xml rename to Objects/2D Complex Profile/2D Complex Profile/libpartdata.xml diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/libpartdocs.xml b/Objects/2D Complex Profile/2D Complex Profile/libpartdocs.xml similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/libpartdocs.xml rename to Objects/2D Complex Profile/2D Complex Profile/libpartdocs.xml diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/paramlist.xml b/Objects/2D Complex Profile/2D Complex Profile/paramlist.xml similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/paramlist.xml rename to Objects/2D Complex Profile/2D Complex Profile/paramlist.xml diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/scripts/1d.gdl b/Objects/2D Complex Profile/2D Complex Profile/scripts/1d.gdl similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/scripts/1d.gdl rename to Objects/2D Complex Profile/2D Complex Profile/scripts/1d.gdl diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/scripts/2d.gdl b/Objects/2D Complex Profile/2D Complex Profile/scripts/2d.gdl similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/scripts/2d.gdl rename to Objects/2D Complex Profile/2D Complex Profile/scripts/2d.gdl diff --git a/Objects/2D_Complex_Profile/2D_Complex_Profile/scripts/vl.gdl b/Objects/2D Complex Profile/2D Complex Profile/scripts/vl.gdl similarity index 100% rename from Objects/2D_Complex_Profile/2D_Complex_Profile/scripts/vl.gdl rename to Objects/2D Complex Profile/2D Complex Profile/scripts/vl.gdl diff --git a/Objects/2D_Complex_Profile/CHANGELOG.md b/Objects/2D Complex Profile/CHANGELOG.md similarity index 100% rename from Objects/2D_Complex_Profile/CHANGELOG.md rename to Objects/2D Complex Profile/CHANGELOG.md diff --git a/Objects/2D Complex Profile/README.md b/Objects/2D Complex Profile/README.md new file mode 100644 index 0000000..2e724dd --- /dev/null +++ b/Objects/2D Complex Profile/README.md @@ -0,0 +1,11 @@ +--- +title: 2D Complex Profile +description: | + Zur Anzeige von Profilen aus dem Profilmanager im 2D. _Anmerkung: Profilmodifikatoren können nicht verwendet werden. Es kann jedoch über `A` und `B` Stretchfaktoren eingegeben werden._ +description_en: | + Displays a selected complex profile in 2D. _Note: Profile modifiers can not be used. However you may use `A` and `B` as stretch factors._ +tags: 2D Profile +version: 1.1 +compat: 23 +lang: de +--- diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht.gsm" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht.gsm" new file mode 100644 index 0000000..76e4a27 Binary files /dev/null and "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht.gsm" differ diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/ancestry.xml "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/ancestry.xml" similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/ancestry.xml rename to "Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/ancestry.xml" diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/calledmacros.xml" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/calledmacros.xml" new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/calledmacros.xml" @@ -0,0 +1,3 @@ + + + diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/images/Picture_0.png" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/images/Picture_0.png" new file mode 100644 index 0000000..39a9109 Binary files /dev/null and "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/images/Picture_0.png" differ diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/libpartdata.xml" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/libpartdata.xml" new file mode 100644 index 0000000..3976297 --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/libpartdata.xml" @@ -0,0 +1,21 @@ + + + + 4BFFDB8A-73A8-4D7C-9C8E-BFC32E1FA0CE + true + false + Normal + false + + + + + + + + + + + + + diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/libpartdocs.xml" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/libpartdocs.xml" new file mode 100644 index 0000000..843c8f1 --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/libpartdocs.xml" @@ -0,0 +1,17 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + \ No newline at end of file diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/paramlist.xml" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/paramlist.xml" new file mode 100644 index 0000000..a073f18 --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/paramlist.xml" @@ -0,0 +1,132 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + 0 + + + + + + + + 1 + + + + + + + + 0 + + + + + + + + + + + + + 1 + + + + 0.3 + + + + 0.3 + + + + 1 + + + + 1 + + + + 0 + + + + + + + + + + + + + + 300 + + + + + + + 5.1 + + + + + + + + + + + + + + 20 + + + + + + + 3 + + + diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/1d.gdl" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/1d.gdl" new file mode 100644 index 0000000..70e4dda --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/1d.gdl" @@ -0,0 +1 @@ +!--- Master script ---! dict bmat ! global goto 999 ! --------------------------------------------------------------------------- ! 100: ! We do this little trick to save us from doing double writing. consid = 1 ! consecutive id used as index for bmat array for i=1 to max_id ! Check the BMat at the current index ! "Brutforcing" to get a list of all BMats r = request ("Name_of_building_material", i, bm_name) if bm_name # "" then ! BMat exists bmat.name[consid] = bm_name ! get the real Index r = request{2} ("Building_Material_info", bm_name, "gs_bmat_id", real_id) bmat.real_id[consid] = real_id ! get the appearance r = request{2} ("Building_Material_info", bm_name, "gs_bmat_cutFill_properties", bm_fill, bm_fill_fg, bm_fill_bg) bmat.style.fill[consid] = bm_fill bmat.style.pen[consid] = bm_fill_fg bmat.style.pen_bg[consid] = bm_fill_bg ! 3D surface r = request{2} ("Building_Material_info", bm_name, "gs_bmat_surface", bm_surf) bmat.style.srf[consid] = bm_surf consid = consid+1 endif next i return 999: ! END --- END --- END ! \ No newline at end of file diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/2d.gdl" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/2d.gdl" new file mode 100644 index 0000000..100173a --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/2d.gdl" @@ -0,0 +1,129 @@ +!--- 2D script ---! + +gosub 100 ! get the 'bmat' dict filled +n_total_bmat = vardim1(bmat.real_id) + +line_type lt_basic ! Volllinie + +define style "st1_headline" fontType, 1, 7, 0 +set style "st1_headline" +pen pen_text +text2 0, size+0.3, text_h1 + +define style{2} "st2_default" fontType, 0.0125, 1 +set style "st2_default" + +poly_flag = 1+2+4+64 + +cols = 0 +rows = 0 + + +dim visibility[] +gosub "Visibility" +n = request ("Pen_of_RGB", "1 1 1", pen_white) + +! Place the actual fills +for i=1 to n_total_bmat + pen gs_cont_pen + fill bmat.style.fill[i] + + ! First let's test if we would go wider than the specified width + if i#1 and ((size + dist) * cols + size) > max_width then + del cols + cols = 0 + add2 0, -(size + dist) ! next row + rows = rows + 1 + endif + + poly2_b{2} 5, poly_flag, + bmat.style.pen[i], bmat.style.pen_bg[i], + 0, 0, 0, !fill loc + 0, 0, 33, + 0, size, 33, + size, size, 33, + size, 0, 33, + 0, 0, 33 + + ! Using richtext here, so we can limit the size of the text box + ! thus no names will flow out of their fills + if visibility[i] > 0 then + prg_pen = pen_white + else + prg_pen = pen_text + endif + paragraph "prg_bmat_name" 2, 0, 0, 0, 1 + pen prg_pen + bmat.name[i] + endparagraph + textblock "txtblock_bmat_name" size-0.02, 5, 0, 1, 1.1, 0, + "prg_bmat_name" + richtext2 size/2, size/2, "txtblock_bmat_name" + + add2 size + dist, 0 + cols = cols + 1 + +next i + +del ntr() + +! -- Hotspots: +hotspot2 0, size +hotspot2 max_width, size +hotspot2 0, -rows * (size + dist) + +! max_width adjusting +hotspot2 0, size, 201, max_width, 1+128 !base +hotspot2 max_width, size, 202, max_width, 2 !mov +hotspot2 -1, size, 203, max_width, 3 !ref + +! size +hotspot2 0, 0, 204, size, 1+128 !base +hotspot2 size, 0, 205, size, 2 !mov +hotspot2 -1, 0, 206, size, 3 !ref + + +END ! -- END -- END -- ! + +! --------------------------------------------------------------------------- ! +"Visibility": + ! We want to know if the background is totally black + ! so we can later change the font color to white. + ! This assumes we use a dark pen for the names of the BMats. + ! Change the names below for i18n / diff. standards: + test_1 = "Misch-Schraffur" + test_2 = "Nur Vordergrund" + test_3 = "Nur Hintergrund" + + for k=1 to n_total_bmat + ! Get the fill name first + n = request ("Name_of_fill", bmat.style.fill[k], currname) + + visibility[k] = 0 + + ! This problem is normally restricted to massive fills + if strstr(currname, test_1) > 0 then + ! naive solution, doesn't account for actual colors + r = split(currname, "%s %n%s", null1, percentage, null2) + if percentage > 40 then + visibility[k] = 1 + endif + endif + ! ..but let's also test the fore-/background + ! Foreground + if strstr(currname, test_2) > 0 then + n = request ("Rgb_of_pen", bmat.style.pen[k], r, g, b) + if r+g+b < 1.5 then ! too dark + visibility[k] = 1 + endif + endif + + ! Background + if strstr(currname, test_3) > 0 then + n = request ("Rgb_of_pen", bmat.style.pen_bg[k], r, g, b) + if r+g+b < 1.5 then ! too dark + visibility[k] = 1 + endif + endif + next k +return diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/3d.gdl" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/3d.gdl" new file mode 100644 index 0000000..6156f9c --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/3d.gdl" @@ -0,0 +1 @@ +!--- 3D script ---! if b_show_3d then gosub 100 ! get the 'bmat' dict filled n_total_bmat = vardim1(bmat.real_id) hotspot 0, size, 0 if b_cube then height = size else hotspot 0, size, 0, 301, ZZYZX, 1+128 !base hotspot 0, size, ZZYZX, 302, ZZYZX, 2 !mov hotspot 0, size, -1, 303, ZZYZX, 3 !ref height = ZZYZX endif cols = 0 rows = 0 ! Place some blocks for i=1 to n_total_bmat material bmat.style.srf[i] ! check if we flow into the next row if i#1 and ((size + dist) * cols + size) > max_width then del cols add 0, -(size + dist), 0 ! next row rows = rows + 1 cols = 0 endif block size, size, height add size + dist, 0, 0 cols = cols + 1 next i del ntr() endif \ No newline at end of file diff --git "a/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/vl.gdl" "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/vl.gdl" new file mode 100644 index 0000000..88740cc --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/Baustoff\303\274bersicht/scripts/vl.gdl" @@ -0,0 +1 @@ +!--- Param script ---! values "ZZYZX" range [0.1,] values "max_id" 300, 500, 1000, CUSTOM, range [1,] values "size" range [0.2,] values "dist" size/2, size, size*2, CUSTOM, range [0,] values "max_width" range[3*size,] if b_cube then hideparameter "ZZYZX" endif if not(b_show_3d) then hideparameter "b_cube" endif if not(b_show_hidden_param) then hideparameter "text_h1", "max_id", "max_width", "fontType", "pen_text", "gs_cont_pen" endif \ No newline at end of file diff --git "a/Objects/Baustoff\303\274bersicht/CHANGELOG.md" "b/Objects/Baustoff\303\274bersicht/CHANGELOG.md" new file mode 100644 index 0000000..7aaf726 --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/CHANGELOG.md" @@ -0,0 +1,15 @@ +# Changelog +All notable changes to "Baustoffübersicht" will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## Compatibility +Archicad 23 + +## [Unreleased] + + +## [1.0] – 2020-09-16 +First version of this object published. diff --git "a/Objects/Baustoff\303\274bersicht/README.md" "b/Objects/Baustoff\303\274bersicht/README.md" new file mode 100644 index 0000000..8389f4a --- /dev/null +++ "b/Objects/Baustoff\303\274bersicht/README.md" @@ -0,0 +1,11 @@ +--- +title: Baustoffübersicht +description: | + Platziert sämtliche Baustoffe/BMats als Schraffuren im 2D und wahlweise als Blöcke im 3D. +description_en: | + Places all BMats as fills in 2D and as blocks in the 3D. +tags: 2D 3D Helferlein Baustoff BIM Audit +version: 1.0 +compat: 23 +lang: de +--- diff --git a/Objects/Faltmarker/README.md b/Objects/Faltmarker/README.md new file mode 100644 index 0000000..322699a --- /dev/null +++ b/Objects/Faltmarker/README.md @@ -0,0 +1,11 @@ +--- +title: Faltmarker +description: | + Faltmarker zur Verwendung im Layout und der anschließenden (physischen) Ablage im A4-Endformat. DIN 824 konform. +description_en: | + Folding marker for the use in the layout. DIN 824 compliant. +tags: 2D Layout +version: 1.0 +compat: 20 +lang: de +--- diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24.gsm b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24.gsm new file mode 100644 index 0000000..cca0381 Binary files /dev/null and b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24.gsm differ diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/ancestry.xml b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/ancestry.xml new file mode 100644 index 0000000..e204647 --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/ancestry.xml @@ -0,0 +1,9 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + 784EAEA1-5041-4AA6-B6F4-EF263A891EE7 + AAB48AEB-4682-4E5A-8DE5-8AEA7FF52A61 + E38AD1B0-67AD-4F5D-A5FB-FB1EE46E66A6 + CFE94914-B1CD-4C53-8DF9-660EACAA9D42 + diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/calledmacros.xml b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/calledmacros.xml new file mode 100644 index 0000000..96e2a58 --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/calledmacros.xml @@ -0,0 +1,19 @@ + + + + + 8CB3732B-1A30-4267-85F3-4F0F06BBD13C + + + + 99EFD39F-78B2-4283-A498-33C2B8CE651D + + + + 1821DC44-15A2-476E-A6CD-BF3740259118 + + + + 2759D2DF-AA8E-44D1-AD1D-261581266B34 + + diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/images/Picture_0.png b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/images/Picture_0.png new file mode 100644 index 0000000..2c188d8 Binary files /dev/null and b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/images/Picture_0.png differ diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/libpartdata.xml b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/libpartdata.xml new file mode 100644 index 0000000..8790575 --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/libpartdata.xml @@ -0,0 +1,22 @@ + + + + 8022D595-0093-4322-9D4D-89CDB4D31FB1 + true + false + Normal + false + + + + + + + + + + + + + + diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/libpartdocs.xml b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/libpartdocs.xml new file mode 100644 index 0000000..3437e06 --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/libpartdocs.xml @@ -0,0 +1,22 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/paramlist.xml b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/paramlist.xml new file mode 100644 index 0000000..da2d21d --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/paramlist.xml @@ -0,0 +1,521 @@ + + + + false + + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 0 + + + + + + + + + 1 + + + + + + + + + 0 + + + + + + + + + -0.02 + -0.02 + 1.02 + -0.02 + 1.02 + 2.12 + -0.02 + 2.12 + + + + + + + + + + -0.015 + -0.015 + 1.015 + -0.015 + 1.015 + 2.115 + -0.015 + 2.115 + + + + + + + + + + 0 + 0 + 1 + 0 + 1 + 2.1 + 0 + 2.1 + + + + + + + + + 0 + + + + 4 + + + + 36 + + + + + 0 + + + + 0.1 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 0.1 + + + + + + + + 0.8 + + + + + + + + 0.8 + + + + + + + + 0.8 + + + + + + + + 0.8 + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + 1 + + + + + + + 1 + + + + + + + 2 + + + + + + + 2 + + + + + + <Description><![CDATA["Attribute"]]></Description> + <Fix/> + + + + + + + + 1 + + + + + + + + + 43 + + + + + + + + + 65 + + + + + + + + + 19 + + + + + + + + + 19 + + + + + + <Description><![CDATA["Stifte, Material und Oberflächen"]]></Description> + + + + + + + 0 + + + + + + + 0 + + + + + + + 1 + + + + + + + 1 + + + + + + + 47 + + + + + + + + 0 + + + + + + + + 0 + + + + + + <Description><![CDATA["DWG Export Parameter"]]></Description> + <Fix/> + <Flags> + <ParFlg_Hidden/> + </Flags> + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/1d.gdl b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/1d.gdl new file mode 100644 index 0000000..1fbb813 --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/1d.gdl @@ -0,0 +1,71 @@ +!--- MASTER script ---! + +eps = 0.0001 + +! GLOB_STRUCTURE_DISPLAY: 0 – entire structure, 1 – core only, 2 – without finishes +COMPTYPE_CORE = 0 +COMPTYPE_FINISH = 1 +COMPTYPE_OTHER = 2 + +! const values for parameter: iDetlevel3D +DETLEVEL3D_MVO = 1 +DETLEVEL3D_SCHEMATIC = 2 +DETLEVEL3D_SIMPLE = 3 +DETLEVEL3D_DETAILED = 4 +DETLEVEL3D_LINE = 5 + +dim aDetlevel3D[] , sDetlevel3D[] : i=1 + aDetlevel3D[i] = DETLEVEL3D_MVO : sDetlevel3D[i] = `nach Modelldarstellung` : i=i+1 + aDetlevel3D[i] = DETLEVEL3D_DETAILED : sDetlevel3D[i] = `Komplett` : i=i+1 + aDetlevel3D[i] = DETLEVEL3D_SIMPLE : sDetlevel3D[i] = `Vereinfacht` : i=i+1 + aDetlevel3D[i] = DETLEVEL3D_SCHEMATIC : sDetlevel3D[i] = `Schematisch` : i=i+1 + +! const values for parameter: iDetlevel2D +DETLEVEL2D_SCALESENSITIVE = -1 +DETLEVEL2D_MVO = 1 +DETLEVEL2D_SCHEMATIC = 2 +DETLEVEL2D_SIMPLE = 3 +DETLEVEL2D_DETAILED = 4 + +dim aDetlevel2D[] , sDetlevel2D[] : i=1 + aDetlevel2D[i] = DETLEVEL2D_MVO : sDetlevel2D[i] = `nach Modelldarstellung` : i=i+1 + aDetlevel2D[i] = DETLEVEL2D_SCALESENSITIVE : sDetlevel2D[i] = `Maßstabsabhängig` : i=i+1 + aDetlevel2D[i] = DETLEVEL2D_DETAILED : sDetlevel2D[i] = `Komplett` : i=i+1 + aDetlevel2D[i] = DETLEVEL2D_SIMPLE : sDetlevel2D[i] = `Vereinfacht` : i=i+1 + aDetlevel2D[i] = DETLEVEL2D_SCHEMATIC : sDetlevel2D[i] = `Schematisch` : i=i+1 + + +nCorners = vardim1(AC_FrameAxisCoords) +nCorners_in = vardim1(AC_clampFreeRegionCoords) + +if bExtendedPanel then + ! Normally this means the panel is extened by the clamp size. `AC_PanelCoords` + ! ("Auf Klemmleistenbreite erweitert") + ! But we do it differently and extend to the center of the frame axis. + leftSide_X = AC_FrameAxisCoords[1][1] + rightSide_X = AC_FrameAxisCoords[1][1] + downSide_Y = AC_FrameAxisCoords[1][2] + upperSide_Y = AC_FrameAxisCoords[1][2] + + for i = 1 to nCorners + if AC_FrameAxisCoords[i][1] < leftSide_X then leftSide_X = AC_FrameAxisCoords[i][1] + if AC_FrameAxisCoords[i][1] > rightSide_X then rightSide_X = AC_FrameAxisCoords[i][1] + if AC_FrameAxisCoords[i][2] < downSide_Y then downSide_Y = AC_FrameAxisCoords[i][2] + if AC_FrameAxisCoords[i][2] > upperSide_Y then upperSide_Y = AC_FrameAxisCoords[i][2] + next i +else + leftSide_X = AC_clampFreeRegionCoords[1][1] + rightSide_X = AC_clampFreeRegionCoords[1][1] + downSide_Y = AC_clampFreeRegionCoords[1][2] + upperSide_Y = AC_clampFreeRegionCoords[1][2] + + for i = 1 to nCorners_in + if AC_clampFreeRegionCoords[i][1] < leftSide_X then leftSide_X = AC_clampFreeRegionCoords[i][1] + if AC_clampFreeRegionCoords[i][1] > rightSide_X then rightSide_X = AC_clampFreeRegionCoords[i][1] + if AC_clampFreeRegionCoords[i][2] < downSide_Y then downSide_Y = AC_clampFreeRegionCoords[i][2] + if AC_clampFreeRegionCoords[i][2] > upperSide_Y then upperSide_Y = AC_clampFreeRegionCoords[i][2] + next i +endif + +centerX = (leftSide_X + rightSide_X) / 2 +centerY = (downSide_Y + upperSide_Y) / 2 diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/2d.gdl b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/2d.gdl new file mode 100644 index 0000000..0004b45 --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/2d.gdl @@ -0,0 +1,8 @@ +!--- 2D script ---! + +! `AC_AutoSchematicModel` is set to "ON" +! so we don't need to script it by hand. +! See http://gdl.graphisoft.com/reference-guide/parameters-for-curtain-wall#AC_AutoSchematicModel_gdlglobal +! and http://gdl.graphisoft.com/tips-and-tricks/how-to-make-a-curtain-wall-panel + +end diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/3d.gdl b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/3d.gdl new file mode 100644 index 0000000..d7c52a6 --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/3d.gdl @@ -0,0 +1,229 @@ +!--- 3D script ---! + +if iDetlevel3D = DETLEVEL3D_MVO then + iDetlevel3D = GLOB_MVO_CWPANEL_DETLEVEL ! Schematic, Simple, Detailed +endif + +if GLOB_FEEDBACK_MODE then + resol 8 +else + resol gs_resol +endif + +pen penUnCut +if not(gs_shadow) then shadow off + +! Hotspots are only visible when in the "EDIT"-mode +hotspot centerX, centerY, 0 + +if iDetlevel3D = DETLEVEL3D_DETAILED then + gosub "DetailedModel" +else + dim boundaryCoords[][] + if iDetlevel3D = DETLEVEL3D_SCHEMATIC then + boundaryCoords = AC_FrameAxisCoords + else + boundaryCoords = AC_clampFreeRegionCoords + endif + + call "SchematicCWSash" parameters iPanelType = 0, ! FIX_PANEL + iDetlevel3D = iDetlevel3D, + boundaryCoords = boundaryCoords, + ! --- Simple Model ------------------------------------------- + offsetPanel = AC_clampWidth/2 - panelThk/2 - offsetPanel, ! default: panel center is on the axis + panelThk = panelThk, + ! --- Panel Attributes --------------------------------------- + penPanelUncut = penUnCut, + penPanelCut = penCut, + panelBMat = panelBMat, + matPanel = matPanel +endif + +END !---END---END---END---END---END---END---END---END---END--! + +!-----------------------------------------------------------------------------! +"SchematicModel": + ! Just a simple panel in case no custom panel named. + building_material panelBMat + if bOverrideSurface then material matPanel + + addz offsetPanel + for i = 1 to nCorners_in + put AC_clampFreeRegionCoords [i][1], AC_clampFreeRegionCoords [i][2], 15 + next i + + prism_ nCorners_in, panelThk, + get (nsp) + del 1 +return + +!-----------------------------------------------------------------------------! +"DetailedModel": +if profileID < 0 then + ! Not a profile. + gosub "SchematicModel" +else + ! This is where it gets interesting + if GLOB_VIEW_TYPE > 2 and GLOB_VIEW_TYPE < 6 then ! 3D, section, elevation + unID = 1 + r = min(leftSide_X + rightSide_X, downSide_Y + upperSide_Y) / 4 + hotspot 0, 0, panelThk, unID, gs_updirection, 6 : unID=unID+1 !center of angle + hotspot 0, r, panelThk, unID, gs_updirection, 4+128 : unID=unID+1 !base hotspot + hotspot r * sin (gs_updirection), r * cos (gs_updirection), panelThk, unID, gs_updirection, 5 : unID=unID+1 !moving + hotspot 0, 0, -1, unID, gs_updirection, 7 : unID=unID+1 !center of angle + endif + + rotz -gs_updirection + + if abs(gs_updirection) < eps then + panelWidth = rightSide_X - leftSide_X + panelHeight = upperSide_Y - downSide_Y + endif + if abs(gs_updirection - 90) < eps then + panelWidth = upperSide_Y - downSide_Y + panelHeight = rightSide_X - leftSide_X + addx -panelWidth + endif + if abs(gs_updirection - 180) < eps then + panelWidth = rightSide_X - leftSide_X + panelHeight = upperSide_Y - downSide_Y + addx -panelWidth + addy -panelHeight + endif + if abs(gs_updirection - 270) < eps then + panelHeight = rightSide_X - leftSide_X + panelWidth = upperSide_Y - downSide_Y + addy -panelHeight + endif + + addz offsetPanel + + if bFlipped then + addx panelWidth + mulx -1 + endif + + gosub "Profile" +endif + +return + + +!-----------------------------------------------------------------------------! +"Profile": + n_components = 0 + dim _componentTypes[] + + ! Bounding Box + _result = request("Profile_default_boundingbox", profileID, _xMin, _yMin, _xMax, _yMax) + if _result then + _profileWidth = abs(_xMax - _xMin) + _profileHeight = abs(_yMax - _yMin) + else + _profileWidth = 0 + _profileHeight = 0 + gosub "SchematicModel" + end + endif + + ! stretch the profile to the extend of the cw panel + mul panelWidth/_profileWidth, panelHeight/_profileHeight, 1 + + n = request{2}("Profile_components", profileID, n_components, _componentTypes) + + if n then + dim _bShowPart[] + _needRequestDetails = 0 + + for i_curr_comp = 1 to n_components + _bShowPart[i_curr_comp] = 1 + if GLOB_STRUCTURE_DISPLAY = 1 & _componentTypes[i_curr_comp] <> COMPTYPE_CORE then _bShowPart[i_curr_comp] = 0 + if GLOB_STRUCTURE_DISPLAY = 2 & _componentTypes[i_curr_comp] = COMPTYPE_FINISH then _bShowPart[i_curr_comp] = 0 + if _bShowPart[i_curr_comp] then _needRequestDetails = 1 + next i_curr_comp + + if _needRequestDetails then + + dim _profileGeometryRawData[] + n = request("Profile_default_geometry", profileID, _profileGeometryRawData) + + dim _contStartPoints[] + dim _contEndPoints[] + + _contStartPoints[1] = n_components + 1 + + for i_curr_comp = 2 to n_components + _contStartPoints[i_curr_comp] = _contStartPoints[i_curr_comp - 1] + _profileGeometryRawData[i_curr_comp - 1] * 5 + _contEndPoints[i_curr_comp-1] = _contStartPoints[i_curr_comp] - 1 + next i_curr_comp + + _contEndPoints[n_components] = vardim1(_profileGeometryRawData) + + for _iComp = 1 to n_components + + if _bShowPart[_iComp] then + dim _currSurfaces[] + n = request{3}("Profile_component_info", profileID, _iComp, "gs_profile_comp_surfaces", _currSurfaces) + + if bOverrideSurface then + for _surf = 1 to vardim1(_currSurfaces) + _currSurfaces[_surf] = matPanel + next _surf + endif + + _bmat = 1 + _pen = 1 + n = request{3}("Profile_component_info", profileID, _iComp, "gs_profile_bmat", _bmat) + n = request{3}("Profile_component_info", profileID, _iComp, "gs_profile_outlinepen", _pen) + + ! ATTR OVERRIDES ----------------------- + if bOverrideBmat then + building_material panelBmat + else + building_material _bmat + endif + if bOverridePenCut then + sect_attrs{2} penCut + pen penUnCut + else + sect_attrs{2} _pen + pen _pen + endif + ! --------------------------------------- + + _surface = 1 + if bOverrideSurface then ! endstück + _surface = matPanel + else + n = request{3}("Profile_component_info", profileID, _iComp, "gs_profile_surface", _surface) + endif + + _surfIdx = 1 + + for i_curr_comp = _contStartPoints[_iComp] to _contEndPoints[_iComp] step 5 + + if _profileGeometryRawData[i_curr_comp + 4] # -1 then + _stat = _profileGeometryRawData[i_curr_comp + 4] + 15 + else + _stat = -1 + endif + + put _profileGeometryRawData[i_curr_comp], ! x + _profileGeometryRawData[i_curr_comp + 1], ! y + 0, ! alpha; 0 = vertical + _stat, + _currSurfaces[_surfIdx] + + _surfIdx = _surfIdx + 1 + next i_curr_comp + + cprism_{3} _surface, _surface, _surface, 8, + nsp/5, panelThk, + get(nsp) + body -1 + + endif + next _iComp + endif + endif +return diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/ui.gdl b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/ui.gdl new file mode 100644 index 0000000..fba59fc --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/ui.gdl @@ -0,0 +1,161 @@ +!--- UI script ---! + +dict UI + UI.width = 444 + UI.height = 200 + ! page IDs + UI.tabid.root = -1 + UI.tabid.settings = 100 + UI.tabid.representation = 200 + ! UI basic LAYOUT settings + UI.gap.h = 5 ! horizontal GAP + UI.gap.v = UI.gap.h ! vertical gap + ! Most layouts consist of one input and one output column + UI.layout.ncol = 2 ! determine how many columns you want + UI.layout.col[1] = 0 + UI.layout.col[2] = UI.width / 2 + UI.gap.h ! start of the second column, X-position + UI.layout.starty = 4 + UI.layout.line = 24 ! distance between lines + UI.text.align.left = 0 + ! UI elements + UI.el.in.w = (UI.width / UI.layout.ncol) * 0.7 ! infield width + UI.el.in.h = 19 ! infield height + UI.el.in.off = 4 ! vertical offset for infields + UI.el.out.w = UI.width / UI.layout.ncol + UI.el.out.h = 15 ! outfield height + UI.el.button.h = 25 + + +! ============================================================================== +! TRANSLATION ! +! TODO: translate to english +dict TLX, TLX_DE + TLX_DE.dialog = `Fassadenpaneel Einstellungen` + TLX_DE.tabid.settings = `Allgemeine Einstellungen` + TLX_DE.tabid.representation = `Darstellung und Erscheinung` + +TLX = TLX_DE +! ============================================================================== + +ui_dialog TLX.dialog, UI.width, UI.height +ui_current_page gs_ui_current_page + +! ----------------------------------------------------------------------------- +! UI Pages + +ui_page UI.tabid.settings, UI.tabid.root, TLX.tabid.settings, "uiTab_CW_panelGeneral_hl(1)" + gosub "GeneralSettingsPage" + +ui_page UI.tabid.representation, UI.tabid.root, TLX.tabid.representation, "uiTab_2DRepr_hl(1)" + gosub "pageCallRepresentation" + +file_dependence "uiTab_CW_panelGeneral_hl(1)" +file_dependence "uiTab_2DRepr_hl(1)" + + +END !---END---END---END---END---END---END---END---END---END--! + + +!-----------------------------------------------------------------------------! +"GeneralSettingsPage": + _yCurr = UI.layout.starty + UI.el.in.off + + graphic = 18 + ui_outfield `Profil`, UI.layout.col[1], _yCurr+2, UI.el.out.w-graphic-2, UI.el.out.h, UI.text.align.left + ui_pict "profile_control_hl(1)", UI.layout.col[2] - (UI.gap.h + graphic), _yCurr-1, graphic, graphic, 1 + file_dependence "profile_control_hl(1)" + ui_infield "profileID", UI.layout.col[2], _yCurr-4, UI.el.in.w, UI.el.button.h + + _yCurr = _yCurr + UI.layout.line + 5 + ui_outfield `Drehung des Paneels`, UI.layout.col[1], _yCurr, UI.el.out.w, UI.el.out.h, UI.text.align.left \ + ui_tooltip `Rotation des Paneels im Uhrzeigersinn gegenüber seiner ursprünglichen Position.` + ui_infield{3} "gs_updirection", UI.layout.col[2], _yCurr - UI.el.in.off, UI.el.in.w, UI.el.in.h, + 8, "", + 0, 0, 0, 0, 0, 0, + 0, "0°", 0, + 0, "90°", 90, + 0, "180°", 180, + 0, "270°", 270 + + _yCurr = _yCurr + UI.layout.line + ui_outfield `Paneeldicke`, UI.layout.col[1], _yCurr, UI.el.out.w, UI.el.out.h, UI.text.align.left \ + ui_tooltip `Stärke des Paneels` + ui_infield{3} "panelThk", UI.layout.col[2], _yCurr - UI.el.in.off, UI.el.in.w, UI.el.in.h + + _yCurr = _yCurr + UI.layout.line + ui_outfield `Offset von Referenzlinie`, UI.layout.col[1], _yCurr, UI.el.out.w, UI.el.out.h, UI.text.align.left \ + ui_tooltip "Abstand des Paneels von der Fassadenreferenzlinie" + ui_infield{3} "offsetPanel", UI.layout.col[2], _yCurr - UI.el.in.off, UI.el.in.w, UI.el.in.h + + _yCurr = _yCurr + UI.layout.line + ui_infield{3} "bFlipped", UI.layout.col[2], _yCurr, UI.el.out.w, UI.el.in.h, + 7, "", + 0, 0, + 0, 0, 0, 0, + "", `Paneel gespiegelt`, 0, + "", `Paneel gespiegelt`, 1 \ + ui_tooltip "Das Paneel wird horizontal gespiegelt." + + _yCurr = _yCurr + UI.layout.line + ui_infield{3} "bExtendedPanel", UI.layout.col[2], _yCurr, UI.el.out.w, UI.el.in.h, + 7, "", + 0, 0, + 0, 0, 0, 0, + "", `Ohne Lücke (ignoriert Profilbreite)`, 0, + "", `Ohne Lücke (ignoriert Profilbreite)`, 1 \ + ui_tooltip "Paneel wird auf Schemabreite erweitert" + + _yCurr = _yCurr + UI.layout.line + 12 + ui_outfield `Anmerkung: Der Nullpunkt des Profils muss sich \ + unten links befinden. Andernfalls wird das Paneel \ + an einer falschen Stelle sitzen.`, + UI.layout.col[1], _yCurr, UI.width, UI.el.out.h*2.1, UI.text.align.left + 4 +return + + +!-----------------------------------------------------------------------------! +"pageCallRepresentation": + itemID = 1 + listID = 1 + + ui_outfield `Anmerkung: Sofern nicht "Überschreiben" ausgewählt ist, \ + haben diese Attribute nur Auswirkungen auf die schematische Ansicht.`, + UI.layout.col[1], 4, UI.width-UI.layout.col[1], Ui.el.out.h*2.1, UI.text.align.left + + ! Make a list + ui_listfield listID, 0, UI.layout.starty + Ui.el.out.h*2.1 + UI.layout.line, UI.width, UI.height + + ui_listitem itemID, listID, "", 0, "ui_list_detailLevel2D_hl(1)", `2D Darstellung gleich wie 3D-Detaillierung` : itemID=itemID+1 ! iDetlevel2D + file_dependence "ui_list_detailLevel2D_hl(1)" + + ui_listitem itemID, listID, "iDetlevel3D", 0, "ui_list_detailLevel3D_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_detailLevel3D_hl(1)" + + if (iDetlevel3D = DETLEVEL3D_DETAILED |\ + iDetlevel3D = DETLEVEL3D_MVO) then + + ui_listitem itemID, listID, "gs_resol", 0, "ui_list_resol_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_resol_hl(1)" + endif + + ui_listitem itemID, listID, "gs_shadow", 0, "ui_list_shadow_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_shadow_hl(1)" + + ! --- Attributes ------- + ui_listitem itemID, listID, "gs_2D_representation", 1, "" : itemID=itemID+1 + + ui_listitem itemID, listID, "bOverridePenCut", 1, "ui_list_OverrideCutFillPens_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_OverrideCutFillPens_hl(1)" + ui_listitem itemID, listID, "penUnCut", 1, "ui_list_contourPen_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_contourPen_hl(1)" + ui_listitem itemID, listID, "penCut", 1, "ui_list_cutPen_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_cutPen_hl(1)" + + ui_listitem itemID, listID, "bOverrideBmat", 1, "" : itemID=itemID+1 + ui_listitem itemID, listID, "panelBmat", 1, "ui_list_BuildingMaterial_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_BuildingMaterial_hl(1)" + + ui_listitem itemID, listID, "bOverrideSurface", 1, "ui_list_SurfaceOverride_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_SurfaceOverride_hl(1)" + ui_listitem itemID, listID, "matPanel", 1, "ui_list_surface_hl(1)" : itemID=itemID+1 +return diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/vl.gdl b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/vl.gdl new file mode 100644 index 0000000..f9ed87b --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/Fassaden Eigenes Paneel (Profil) LX24/scripts/vl.gdl @@ -0,0 +1,41 @@ +!--- param script ---! + +hideparameter all + +! Accept only Profiles of type "Object" +values "profileID" profiletypes_mask 16 + +values "gs_resol" range [4,] + +! I don't care for the FM types +!call "FM_types" parameters all + +values "PanelThk" range [0.001,] + +values{2} "iDetlevel2D" aDetlevel2D, sDetlevel2D +values{2} "iDetlevel3D" aDetlevel3D, sDetlevel3D + +! rotation of the panel +values "gs_updirection" 0, 90, 180, 270 + +values "penCut" range [1,255] +values "penUnCut" range [1,255] + +!-----------------------------------------------------------------------------! + +parameters ac_thickness = panelThk + +parameters ac_width = rightSide_X - leftSide_X +parameters ac_nominalWidth = ac_width + +parameters ac_height = upperSide_Y - downSide_Y +parameters ac_nominalHeight = ac_height + +! If TRUE, the origin of the 2D model’s coordinate system is placed on the axis line of the connecting frame. +! Otherwise the origin of the coordinate system can be at the side or +! at the clamp’s depth of the connecting frame – depending on the ac_aSizeIsWithClamp parameter. +parameters ac_originIsFrameCenter = 0 + +! If TRUE the A is the distance between the frames plus the clamps size. +! Otherwise, the A size is measured between the frames. +parameters ac_aSizeIsWithClamp = 0 diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/README.md b/Objects/Fassaden Eigenes Paneel (Profil) LX24/README.md new file mode 100644 index 0000000..6d8ab2a --- /dev/null +++ b/Objects/Fassaden Eigenes Paneel (Profil) LX24/README.md @@ -0,0 +1,11 @@ +--- +title: Fassaden Eigenes Paneel (Profil) LX24 +description: | + Fassadenpaneel, welches aus dem Profilmanager kommt. +description_en: | + Curtain Wall panel which uses a profile from the profile manager als panel. +tags: 3D Fassade Paneel +version: 1.0 +compat: 24 +lang: de +--- diff --git a/Objects/Fassaden Eigenes Paneel (Profil) LX24/img/Fassaden Eigenes Paneel (Profil) LX24.tiff b/Objects/Fassaden Eigenes Paneel (Profil) LX24/img/Fassaden Eigenes Paneel (Profil) LX24.tiff new file mode 100644 index 0000000..3f27177 Binary files /dev/null and b/Objects/Fassaden Eigenes Paneel (Profil) LX24/img/Fassaden Eigenes Paneel (Profil) LX24.tiff differ diff --git a/Objects/Gartenstuhl/Gartenstuhl.gsm b/Objects/Gartenstuhl/Gartenstuhl.gsm new file mode 100644 index 0000000..098218b Binary files /dev/null and b/Objects/Gartenstuhl/Gartenstuhl.gsm differ diff --git a/Objects/Gartenstuhl/Gartenstuhl/ancestry.xml b/Objects/Gartenstuhl/Gartenstuhl/ancestry.xml new file mode 100644 index 0000000..57015ab --- /dev/null +++ b/Objects/Gartenstuhl/Gartenstuhl/ancestry.xml @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + diff --git a/Objects/Gartenstuhl/Gartenstuhl/calledmacros.xml b/Objects/Gartenstuhl/Gartenstuhl/calledmacros.xml new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ b/Objects/Gartenstuhl/Gartenstuhl/calledmacros.xml @@ -0,0 +1,3 @@ + + + diff --git a/Objects/Gartenstuhl/Gartenstuhl/images/Picture_0.png b/Objects/Gartenstuhl/Gartenstuhl/images/Picture_0.png new file mode 100644 index 0000000..13228c5 Binary files /dev/null and b/Objects/Gartenstuhl/Gartenstuhl/images/Picture_0.png differ diff --git a/Objects/Gartenstuhl/Gartenstuhl/libpartdata.xml b/Objects/Gartenstuhl/Gartenstuhl/libpartdata.xml new file mode 100644 index 0000000..806bae4 --- /dev/null +++ b/Objects/Gartenstuhl/Gartenstuhl/libpartdata.xml @@ -0,0 +1,20 @@ + + + + EFFCF6B3-82DC-40AA-8914-CCDE318BDFB0 + true + false + Normal + false + + + + + + + + + + + + diff --git a/Objects/Gartenstuhl/Gartenstuhl/libpartdocs.xml b/Objects/Gartenstuhl/Gartenstuhl/libpartdocs.xml new file mode 100644 index 0000000..efdb156 --- /dev/null +++ b/Objects/Gartenstuhl/Gartenstuhl/libpartdocs.xml @@ -0,0 +1,19 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + diff --git a/Objects/Gartenstuhl/Gartenstuhl/paramlist.xml b/Objects/Gartenstuhl/Gartenstuhl/paramlist.xml new file mode 100644 index 0000000..0ae376d --- /dev/null +++ b/Objects/Gartenstuhl/Gartenstuhl/paramlist.xml @@ -0,0 +1,146 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 0.55 + + + + + 0.55 + + + + + 0.99 + + + + + + + + 1 + + + + + + + + 0 + + + + + + + + 0.99 + + + + + + <Description><![CDATA["2D Darstellung"]]></Description> + + + + + + + 1 + + + + + + + 1 + + + + + + + 65 + + + + + + + 19 + + + + + + + 0 + + + + + + <Description><![CDATA["3D Darstellung"]]></Description> + + + + + + + 1 + + + + + + + 1 + + + + + + + 36 + + + + + + + 122 + + + + + + + 0 + + + + + + + 17 + + + diff --git a/Objects/Gartenstuhl/Gartenstuhl/scripts/2d.gdl b/Objects/Gartenstuhl/Gartenstuhl/scripts/2d.gdl new file mode 100644 index 0000000..73b02f1 --- /dev/null +++ b/Objects/Gartenstuhl/Gartenstuhl/scripts/2d.gdl @@ -0,0 +1,401 @@ +! ––– 2D script ––– ! + +pen gs_cont_pen +fill gs_fill +line_type gs_linetype + +poly2_b 106, 1+2+4, gs_fill_pen, gs_back_pen, + 0.0150002689877, 0.073, 1, + 0.0103984005942, 0.073, 1, + 0.0103984005942, 0.048, 1, + 0.06499999825893, 0.048, 1, + 0.06499999825893, 0.003, 1, + 0.5255439682176, 0.003, 1, + 0.5255439682176, 0.048, 1, + 0.5450327078557, 0.048, 1, + 0.5450327078557, 0.058, 900, + 0, 90, 4001, + 0.5550327078557, 0.498, 1, + 0.5450327078557, 0.498, 900, + 0, 90, 4001, + 0.5255439682176, 0.508, 1, + 0.5255439682176, 0.553, 1, + 0.06499999825893, 0.553, 1, + 0.06499999825893, 0.508, 1, + 0.0103984005942, 0.508, 1, + 0.0103984005942, 0.483, 1, + 0.0150002689877, 0.483, 1, + 0.0150002689877, 0.073, -1, + 0.0364265788555, 0.08140495977306, 1, + 0.1086633800631, 0.08140495977306, 1, + 0.1086633800631, 0.073, 1, + 0.0364265788555, 0.073, 1, + 0.0364265788555, 0.08140495977306, -1, + 0.1353366496251, 0.4626086209183, 1, + 0.1743557406632, 0.4626086209183, 1, + 0.1743557406632, 0.0933913790817, 1, + 0.1353366496251, 0.0933913790817, 1, + 0.1353366496251, 0.4626086209183, -1, + 0.0364265788555, 0.483, 1, + 0.1086633800631, 0.483, 1, + 0.1086633800631, 0.4745950402269, 1, + 0.0364265788555, 0.4745950402269, 1, + 0.0364265788555, 0.483, -1, + 0.0364265788555, 0.4316881787253, 1, + 0.1086633800631, 0.4316881787253, 1, + 0.1086633800631, 0.4245545803766, 1, + 0.0364265788555, 0.4245545803766, 1, + 0.0364265788555, 0.4316881787253, -1, + 0.0364265788555, 0.381647718875, 1, + 0.1086633800631, 0.381647718875, 1, + 0.1086633800631, 0.3745141205263, 1, + 0.0364265788555, 0.3745141205263, 1, + 0.0364265788555, 0.381647718875, -1, + 0.0364265788555, 0.3316072590247, 1, + 0.1086633800631, 0.3316072590247, 1, + 0.1086633800631, 0.324473660676, 1, + 0.0364265788555, 0.324473660676, 1, + 0.0364265788555, 0.3316072590247, -1, + 0.0364265788555, 0.2815667991744, 1, + 0.1086633800631, 0.2815667991744, 1, + 0.1086633800631, 0.2744332008256, 1, + 0.0364265788555, 0.2744332008256, 1, + 0.0364265788555, 0.2815667991744, -1, + 0.0364265788555, 0.231526339324, 1, + 0.1086633800631, 0.231526339324, 1, + 0.1086633800631, 0.2243927409753, 1, + 0.0364265788555, 0.2243927409753, 1, + 0.0364265788555, 0.231526339324, -1, + 0.0364265788555, 0.1814858794737, 1, + 0.1086633800631, 0.1814858794737, 1, + 0.1086633800631, 0.174352281125, 1, + 0.0364265788555, 0.174352281125, 1, + 0.0364265788555, 0.1814858794737, -1, + 0.0364265788555, 0.1314454196234, 1, + 0.1086633800631, 0.1314454196234, 1, + 0.1086633800631, 0.1243118212747, 1, + 0.0364265788555, 0.1243118212747, 1, + 0.0364265788555, 0.1314454196234, -1, + 0.2095687816249, 0.0933913790817, 1, + 0.2095687816249, 0.4626086209183, 1, + 0.2193446864735, 0.4626086209183, 1, + 0.2193446864735, 0.0933913790817, 1, + 0.2095687816249, 0.0933913790817, -1, + 0.4795024564866, 0.4626086209183, 1, + 0.4895, 0.4626086209183, 1, + 0.4895, 0.0933913790817, 1, + 0.4795024564866, 0.0933913790817, 1, + 0.4795024564866, 0.4626086209183, -1, + 0.389524564866, 0.0933913790817, 1, + 0.389524564866, 0.4626086209183, 1, + 0.3993004697146, 0.4626086209183, 1, + 0.3993004697146, 0.0933913790817, 1, + 0.389524564866, 0.0933913790817, -1, + 0.2643336322838, 0.4626086209183, 1, + 0.2643336322838, 0.0933913790817, 1, + 0.2545577274352, 0.0933913790817, 1, + 0.2545577274352, 0.4626086209183, 1, + 0.2643336322838, 0.4626086209183, -1, + 0.3093225780941, 0.4626086209183, 1, + 0.3093225780941, 0.0933913790817, 1, + 0.2995466732455, 0.0933913790817, 1, + 0.2995466732455, 0.4626086209183, 1, + 0.3093225780941, 0.4626086209183, -1, + 0.3445356190557, 0.4626086209183, 1, + 0.3543115239043, 0.4626086209183, 1, + 0.3543115239043, 0.0933913790817, 1, + 0.3445356190557, 0.0933913790817, 1, + 0.3445356190557, 0.4626086209183, -1, + 0.4345135106763, 0.4626086209183, 1, + 0.4442894155249, 0.4626086209183, 1, + 0.4442894155249, 0.0933913790817, 1, + 0.4345135106763, 0.0933913790817, 1, + 0.4345135106763, 0.4626086209183, -1 +poly2_b 23, 1, gs_fill_pen, gs_back_pen, + 0.0150002689877, 0.073, 1, + 0.0103984005942, 0.073, 1, + 0.0103984005942, 0.048, 1, + 0.06499999825893, 0.048, 1, + 0.06499999825893, 0.003, 1, + 0.5255439682176, 0.003, 1, + 0.5255439682176, 0.048, 1, + 0.5450327078557, 0.048, 1, + 0.5450327078557, 0.058, 900, + 0, 90, 4001, + 0.5550327078557, 0.058, 1, + 0.5550327078557, 0.498, 1, + 0.5450327078557, 0.498, 900, + 0, 90, 4001, + 0.5450327078557, 0.508, 1, + 0.5255439682176, 0.508, 1, + 0.5255439682176, 0.553, 1, + 0.06499999825893, 0.553, 1, + 0.06499999825893, 0.508, 1, + 0.0103984005942, 0.508, 1, + 0.0103984005942, 0.483, 1, + 0.0150002689877, 0.483, 1, + 0.0150002689877, 0.073, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.08140495977306, 1, + 0.1086633800631, 0.08140495977306, 1, + 0.1086633800631, 0.073, 1, + 0.0364265788555, 0.073, 1, + 0.0364265788555, 0.08140495977306, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.1353366496251, 0.4626086209183, 1, + 0.1353366496251, 0.0933913790817, 1, + 0.1743557406632, 0.0933913790817, 1, + 0.1743557406632, 0.4626086209183, 1, + 0.1353366496251, 0.4626086209183, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.483, 1, + 0.1086633800631, 0.483, 1, + 0.1086633800631, 0.4745950402269, 1, + 0.0364265788555, 0.4745950402269, 1, + 0.0364265788555, 0.483, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.4316881787253, 1, + 0.1086633800631, 0.4316881787253, 1, + 0.1086633800631, 0.4245545803766, 1, + 0.0364265788555, 0.4245545803766, 1, + 0.0364265788555, 0.4316881787253, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.381647718875, 1, + 0.1086633800631, 0.381647718875, 1, + 0.1086633800631, 0.3745141205263, 1, + 0.0364265788555, 0.3745141205263, 1, + 0.0364265788555, 0.381647718875, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.3316072590247, 1, + 0.1086633800631, 0.3316072590247, 1, + 0.1086633800631, 0.324473660676, 1, + 0.0364265788555, 0.324473660676, 1, + 0.0364265788555, 0.3316072590247, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.2815667991744, 1, + 0.1086633800631, 0.2815667991744, 1, + 0.1086633800631, 0.2744332008256, 1, + 0.0364265788555, 0.2744332008256, 1, + 0.0364265788555, 0.2815667991744, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.231526339324, 1, + 0.1086633800631, 0.231526339324, 1, + 0.1086633800631, 0.2243927409753, 1, + 0.0364265788555, 0.2243927409753, 1, + 0.0364265788555, 0.231526339324, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.1814858794737, 1, + 0.1086633800631, 0.1814858794737, 1, + 0.1086633800631, 0.174352281125, 1, + 0.0364265788555, 0.174352281125, 1, + 0.0364265788555, 0.1814858794737, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.1314454196234, 1, + 0.1086633800631, 0.1314454196234, 1, + 0.1086633800631, 0.1243118212747, 1, + 0.0364265788555, 0.1243118212747, 1, + 0.0364265788555, 0.1314454196234, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.2095687816249, 0.0933913790817, 1, + 0.2193446864735, 0.0933913790817, 1, + 0.2193446864735, 0.4626086209183, 1, + 0.2095687816249, 0.4626086209183, 1, + 0.2095687816249, 0.0933913790817, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.4795024564866, 0.4626086209183, 1, + 0.4795024564866, 0.0933913790817, 1, + 0.4895, 0.0933913790817, 1, + 0.4895, 0.4626086209183, 1, + 0.4795024564866, 0.4626086209183, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.389524564866, 0.0933913790817, 1, + 0.3993004697146, 0.0933913790817, 1, + 0.3993004697146, 0.4626086209183, 1, + 0.389524564866, 0.4626086209183, 1, + 0.389524564866, 0.0933913790817, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.2643336322838, 0.4626086209183, 1, + 0.2545577274352, 0.4626086209183, 1, + 0.2545577274352, 0.0933913790817, 1, + 0.2643336322838, 0.0933913790817, 1, + 0.2643336322838, 0.4626086209183, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.3093225780941, 0.4626086209183, 1, + 0.2995466732455, 0.4626086209183, 1, + 0.2995466732455, 0.0933913790817, 1, + 0.3093225780941, 0.0933913790817, 1, + 0.3093225780941, 0.4626086209183, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.3445356190557, 0.4626086209183, 1, + 0.3445356190557, 0.0933913790817, 1, + 0.3543115239043, 0.0933913790817, 1, + 0.3543115239043, 0.4626086209183, 1, + 0.3445356190557, 0.4626086209183, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.4345135106763, 0.4626086209183, 1, + 0.4442894155249, 0.4626086209183, 1, + 0.4442894155249, 0.0933913790817, 1, + 0.4345135106763, 0.0933913790817, 1, + 0.4345135106763, 0.4626086209183, 1 +line2 0.3257914419018, 0.073, 0.3257914419018, 0.048 +line2 0.3257914419018, 0.483, 0.3257914419018, 0.508 +line2 0.1353366496251, 0.0933913790817, 0.1743557406632, 0.0933913790817 +line2 0.1353366496251, 0.4626086209183, 0.1743557406632, 0.4626086209183 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.06499999825893, 0.048, 1, + 0.5255439682176, 0.048, 1, + 0.5255439682176, 0.003, 1, + 0.06499999825893, 0.003, 1, + 0.06499999825893, 0.048, 1 +poly2_b 11, 1, gs_fill_pen, gs_back_pen, + 0.5450327078557, 0.048, 1, + 0.4895, 0.048, 1, + 0.4895, 0.508, 1, + 0.5450327078557, 0.508, 1, + 0.5450327078557, 0.498, 900, + 0, -90, 4001, + 0.5550327078557, 0.498, 1, + 0.5550327078557, 0.058, 1, + 0.5450327078557, 0.058, 900, + 0, -90, 4001, + 0.5450327078557, 0.048, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.1743557406632, 0.079364, 1, + 0.2095687816249, 0.079364, 1, + 0.2095687816249, 0.476636, 1, + 0.1743557406632, 0.476636, 1, + 0.1743557406632, 0.079364, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0150002689877, 0.073, 1, + 0.0364265788555, 0.073, 1, + 0.0364265788555, 0.483, 1, + 0.0150002689877, 0.483, 1, + 0.0150002689877, 0.073, 1 +poly2_b 6, 1, gs_fill_pen, gs_back_pen, + 0.1086633800631, 0.08140495977306, 1, + 0.1086633800631, 0.073, 1, + 0.1353366496251, 0.073, 1, + 0.1353366496251, 0.483, 1, + 0.1086633800631, 0.483, 1, + 0.1086633800631, 0.4745950402269, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.2193446864735, 0.079364, 1, + 0.2545577274352, 0.079364, 1, + 0.2545577274352, 0.476636, 1, + 0.2193446864735, 0.476636, 1, + 0.2193446864735, 0.079364, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.2643336322838, 0.079364, 1, + 0.2995466732455, 0.079364, 1, + 0.2995466732455, 0.476636, 1, + 0.2643336322838, 0.476636, 1, + 0.2643336322838, 0.079364, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.3093225780941, 0.079364, 1, + 0.3445356190557, 0.079364, 1, + 0.3445356190557, 0.476636, 1, + 0.3093225780941, 0.476636, 1, + 0.3093225780941, 0.079364, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.3543115239043, 0.0770407407406, 1, + 0.389524564866, 0.0689093331741, 1, + 0.389524564866, 0.4870906668259, 1, + 0.3543115239043, 0.4789592592594, 1, + 0.3543115239043, 0.0770407407406, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.3993004697146, 0.0665860762845, 1, + 0.4345135106763, 0.0584546665871, 1, + 0.4345135106763, 0.4975453334129, 1, + 0.3993004697146, 0.4894139237155, 1, + 0.3993004697146, 0.0665860762845, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.4442894155249, 0.0561314045252, 1, + 0.4795024564866, 0.048, 1, + 0.4795024564866, 0.508, 1, + 0.4442894155249, 0.4998685954748, 1, + 0.4442894155249, 0.0561314045252, 1 +poly2_b 4, 1, gs_fill_pen, gs_back_pen, + 0.5255439682176, 0.048, 1, + 0.0103984005942, 0.048, 1, + 0.0103984005942, 0.073, 1, + 0.3718099419889, 0.073, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.06499999825893, 0.508, 1, + 0.5255439682176, 0.508, 1, + 0.5255439682176, 0.553, 1, + 0.06499999825893, 0.553, 1, + 0.06499999825893, 0.508, 1 +poly2_b 4, 1, gs_fill_pen, gs_back_pen, + 0.5255439682176, 0.508, 1, + 0.0103984005942, 0.508, 1, + 0.0103984005942, 0.483, 1, + 0.3718099419889, 0.483, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.4745950402269, 1, + 0.1201049244389, 0.4745950402269, 1, + 0.1201049244389, 0.4316881787253, 1, + 0.0364265788555, 0.4316881787253, 1, + 0.0364265788555, 0.4745950402269, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.4245545803766, 1, + 0.1201049244389, 0.4245545803766, 1, + 0.1201049244389, 0.381647718875, 1, + 0.0364265788555, 0.381647718875, 1, + 0.0364265788555, 0.4245545803766, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.3745141205263, 1, + 0.1201049244389, 0.3745141205263, 1, + 0.1201049244389, 0.3316072590247, 1, + 0.0364265788555, 0.3316072590247, 1, + 0.0364265788555, 0.3745141205263, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.324473660676, 1, + 0.1201049244389, 0.324473660676, 1, + 0.1201049244389, 0.2815667991744, 1, + 0.0364265788555, 0.2815667991744, 1, + 0.0364265788555, 0.324473660676, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.2744332008256, 1, + 0.1201049244389, 0.2744332008256, 1, + 0.1201049244389, 0.231526339324, 1, + 0.0364265788555, 0.231526339324, 1, + 0.0364265788555, 0.2744332008256, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.2243927409753, 1, + 0.1201049244389, 0.2243927409753, 1, + 0.1201049244389, 0.1814858794737, 1, + 0.0364265788555, 0.1814858794737, 1, + 0.0364265788555, 0.2243927409753, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.174352281125, 1, + 0.1201049244389, 0.174352281125, 1, + 0.1201049244389, 0.1314454196234, 1, + 0.0364265788555, 0.1314454196234, 1, + 0.0364265788555, 0.174352281125, 1 +poly2_b 5, 1, gs_fill_pen, gs_back_pen, + 0.0364265788555, 0.1243118212747, 1, + 0.1201049244389, 0.1243118212747, 1, + 0.1201049244389, 0.08140495977306, 1, + 0.0364265788555, 0.08140495977306, 1, + 0.0364265788555, 0.1243118212747, 1 +poly2_b 2, 1, gs_fill_pen, gs_back_pen, + 0.1086633800631, 0.1314454196234, 1, + 0.1086633800631, 0.1243118212747, 1 +poly2_b 2, 1, gs_fill_pen, gs_back_pen, + 0.1086633800631, 0.1814858794737, 1, + 0.1086633800631, 0.174352281125, 1 +poly2_b 2, 1, gs_fill_pen, gs_back_pen, + 0.1086633800631, 0.231526339324, 1, + 0.1086633800631, 0.2243927409753, 1 +poly2_b 2, 1, gs_fill_pen, gs_back_pen, + 0.1086633800631, 0.2815667991744, 1, + 0.1086633800631, 0.2744332008256, 1 +poly2_b 2, 1, gs_fill_pen, gs_back_pen, + 0.1086633800631, 0.3316072590247, 1, + 0.1086633800631, 0.324473660676, 1 +poly2_b 2, 1, gs_fill_pen, gs_back_pen, + 0.1086633800631, 0.381647718875, 1, + 0.1086633800631, 0.3745141205263, 1 +poly2_b 2, 1, gs_fill_pen, gs_back_pen, + 0.1086633800631, 0.4316881787253, 1, + 0.1086633800631, 0.4245545803766, 1 diff --git a/Objects/Gartenstuhl/Gartenstuhl/scripts/3d.gdl b/Objects/Gartenstuhl/Gartenstuhl/scripts/3d.gdl new file mode 100644 index 0000000..1fa3b45 --- /dev/null +++ b/Objects/Gartenstuhl/Gartenstuhl/scripts/3d.gdl @@ -0,0 +1,567 @@ +! ––– 3D script ––– ! + +! basic sizes ------- +chair_width = 0.51 +center = chair_width/2 +leg_thickness = 0.025 +armrest_thickness = 0.045 +seat_width = chair_width - 2*leg_thickness !46cm +inner_width = chair_width - 4*leg_thickness +back_stripe_width = 0.04 + + +bmat_srf = 0 +r = REQUEST{2} ("Building_Material_info", mat_chair, "gs_bmat_surface", bmat_srf) +if b_override_mat then + srf_material = override_mat +else + srf_material = bmat_srf +endif + +define material "mat_simple_grey" 2, 0.5, 0.5, 0.5 + +body -1 +model solid +resol gs_resol +pen gs_cont_pen +sect_attrs{2} gs_cont_pen, 1 +building_material mat_chair + +if b_shadow then + shadow auto +else + shadow off +endif + +! --- start geometry ----------------------- +group "group_leg_small" + cprism_{4} srf_material, srf_material, srf_material, 7, + 21, leg_thickness, + -8.101009594038E-18, -7.127158467192E-18, 0, 15, srf_material, + 0.08676206334353, -7.127158467192E-18, 0, 15, srf_material, + 0.5367723526908, 0.4260651265629, 0, 15, srf_material, + 0.5376020559738, 0.4273758173243, 0, 79, srf_material, + 0.538781054301, 0.4302455270976, 0, 79, srf_material, + 0.5394438211218, 0.4332763704423, 0, 79, srf_material, + 0.5395702186018, 0.436376256717, 0, 79, srf_material, + 0.5391564062175, 0.4394509974458, 0, 79, srf_material, + 0.5382149574488, 0.4424071681876, 0, 79, srf_material, + 0.5367744777401, 0.4451549471903, 0, 79, srf_material, + 0.5348787353385, 0.4476108445794, 0, 79, srf_material, + 0.5325853314175, 0.4497002391553, 0, 79, srf_material, + 0.5299639498948, 0.4513596457213, 0, 79, srf_material, + 0.5270942401215, 0.4525386440485, 0, 79, srf_material, + 0.5240633967768, 0.4532014108693, 0, 79, srf_material, + 0.5209635105021, 0.4533278083493, 0, 79, srf_material, + 0.5178887697733, 0.452913995965, 0, 79, srf_material, + 0.5149325990315, 0.4519725471963, 0, 79, srf_material, + 0.5121848200288, 0.4505320674876, 0, 79, srf_material, + 0.5110323446622, 0.4496421327325, 0, 79, srf_material, + -8.101009594038E-18, -7.127158467192E-18, 0, -1, srf_material + base + vert -0.01649990050194, 7.790008357803E-7, 0.3 + vert 0.6806850204124, -3.213681196257E-5, 0.3 + vert -0.01649719325781, 0.05734251305085, 0.3 + vert -0.01649990050194, 7.790008357803E-7, 0.5 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_leg_big" + cprism_{4} srf_material, srf_material, srf_material, 7, + 45, leg_thickness, + -0.4094204013976, 0.9735039268627, 0, 79, srf_material, + -0.4093924391827, 0.9748243964159, 0, 79, srf_material, + -0.4097959586338, 0.9774349248985, 0, 79, srf_material, + -0.4106466612314, 0.9799357231703, 0, 79, srf_material, + -0.4119186988077, 0.9822508057413, 0, 79, srf_material, + -0.4135734211445, 0.984309829999, 0, 79, srf_material, + -0.4155605503411, 0.9860502335332, 0, 79, srf_material, + -0.4178197084822, 0.9874191350634, 0, 79, srf_material, + -0.4202822521909, 0.9883749412091, 0, 79, srf_material, + -0.4228733583228, 0.9888886102844, 0, 79, srf_material, + -0.4255142974293, 0.9889445347143, 0, 79, srf_material, + -0.4281248259119, 0.9885410152632, 0, 79, srf_material, + -0.4306256241836, 0.9876903126656, 0, 79, srf_material, + -0.4329407067546, 0.9864182750893, 0, 79, srf_material, + -0.4349997310123, 0.9847635527524, 0, 79, srf_material, + -0.4367401345466, 0.9827764235559, 0, 79, srf_material, + -0.4381090360767, 0.9805172654148, 0, 79, srf_material, + -0.4390648422225, 0.9780547217061, 0, 79, srf_material, + -0.4395785112977, 0.9754636155741, 0, 79, srf_material, + -0.4396015994058, 0.9733242803272, 0, 79, srf_material, + -0.437536011423, 0.9108995546381, 0, 79, srf_material, + -0.4361651595381, 0.8548766929931, 0, 79, srf_material, + -0.4232459526589, 0.7435445092334, 0, 79, srf_material, + -0.4002562952874, 0.6338483985409, 0, 79, srf_material, + -0.367386686965, 0.5266973374363, 0, 79, srf_material, + -0.3249094956179, 0.4229792133578, 0, 79, srf_material, + -0.2731767006314, 0.323553467346, 0, 79, srf_material, + -0.2126169762373, 0.2292439724454, 0, 79, srf_material, + -0.1437321393844, 0.1408322068321, 0, 79, srf_material, + -0.06709299152528, 0.05905077824018, 0, 79, srf_material, + 0, 0, 0, 15, srf_material, + 0.08069834978682, 4.669453414794E-17, 0, 15, srf_material, + 0.08069834978682, 0.01088374015659, 0, 15, srf_material, + 0.05016659849421, 0.03337981183216, 0, 79, srf_material, + -0.03359101180474, 0.108073327467, 0, 79, srf_material, + -0.1103159634679, 0.1899741232701, 0, 79, srf_material, + -0.179390512298, 0.2784227821904, 0, 79, srf_material, + -0.240258510643, 0.3727071676333, 0, 79, srf_material, + -0.2924298851701, 0.4720681571656, 0, 79, srf_material, + -0.3354845826479, 0.5757057545228, 0, 79, srf_material, + -0.369075951968, 0.682785530709, 0, 79, srf_material, + -0.392933535176, 0.7924453423282, 0, 79, srf_material, + -0.4068652450401, 0.9038022730561, 0, 79, srf_material, + -0.408812078332, 0.9598810077098, 0, 79, srf_material, + -0.4094204013976, 0.9735039268627, 0, -1, srf_material + base + vert 0.03754284178839, 0.9792448229423, 0 + vert -0.4723025152542, 1.967664727637, 0 + vert -0.1214559195622, 0.8972303067786, 0 + vert 0.03754284178839, 0.9792448229423, leg_thickness + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_support" + cprism_{4} srf_material, srf_material, srf_material, 7, + 24, leg_thickness, + 0.02395822459365, 0.05246001498546, 0, 79, srf_material, + 0.02186762920355, 0.05246614587694, 0, 79, srf_material, + 0.01774783087011, 0.05175216521641, 0, 79, srf_material, + 0.01381460297108, 0.05033363605346, 0, 79, srf_material, + 0.01018745464587, 0.04825365967889, 0, 79, srf_material, + 0.006976594960909, 0.04557543512234, 0, 79, srf_material, + 0.004279584262955, 0.0423803388817, 0, 79, srf_material, + 0.00217836985731, 0.03876545233945, 0, 79, srf_material, + 0.0007367960804245, 0.03484061199395, 0, 79, srf_material, + -1.335577962568E-6, 0.03072507213304, 0, 79, srf_material, + -1.359736092375E-5, 0.02654388135283, 0, 79, srf_material, + 0.0007003832996115, 0.02242408301939, 0, 79, srf_material, + 0.002118912462564, 0.01849085512037, 0, 79, srf_material, + 0.004198888837129, 0.01486370679516, 0, 79, srf_material, + 0.006877113393683, 0.0116528471102, 0, 79, srf_material, + 0.01007220963432, 0.008955836412242, 0, 79, srf_material, + 0.01377121876295, 0.006916004331073, 0, 15, srf_material, + 0.06416867399168, 0.0009595891066865, 0, 79, srf_material, + 0.1301322962957, 0, 0, 79, srf_material, + 0.1792336786279, 0.001042487337212, 0, 79, srf_material, + 0.2767015772496, 0.01321371757097, 0, 79, srf_material, + 0.3728894581958, 0.03679801109924, 0, 15, srf_material, + 0.3395704358155, 0.05947701484713, 0, 15, srf_material, + 0.02395822459365, 0.05246001498546, 0, -1, srf_material + base + vert 0.02869695955749, 0.384904111879, 0 + vert -0.04109947046477, 0.01846821389048, 0 + vert 0.08264366131945, 0.3746286797635, 0 + vert 0.02869695955749, 0.384904111879, leg_thickness + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_armrest" + cprism_{4} srf_material, srf_material, srf_material, 7, + 38, armrest_thickness, + -1.741069347722E-9, 0.02638076960868, 0, 15, srf_material, + 0.0004299759897241, 0.0236764389515, 0, 79, srf_material, + 0.002216070976394, 0.0184992770545, 0, 79, srf_material, + 0.004874035895786, 0.0137109200193, 0, 79, srf_material, + 0.008323109828817, 0.009456859651401, 0, 79, srf_material, + 0.01245849440935, 0.005866353422422, 0, 79, srf_material, + 0.01715453806951, 0.003048497047247, 0, 79, srf_material, + 0.02226855389899, 0.00108890966593, 0, 79, srf_material, + 0.02764515511464, 4.713234945453E-5, 0, 79, srf_material, + 0.03312097640921, -4.518102558359E-5, 0, 79, srf_material, + 0.03440102093406, 0.0001917574901948, 0, 79, srf_material, + 0.1873271235432, 0.01735276503306, 0, 79, srf_material, + 0.2988460669793, 0.02619413600019, 0, 79, srf_material, + 0.3582912358406, 0.02525176809528, 0, 79, srf_material, + 0.4113667545452, 0.02203375299974, 0, 79, srf_material, + 0.4404696067103, 0.01476624161081, 0, 15, srf_material, + 0.4423014545396, 0.01484905567226, 0, 79, srf_material, + 0.4458807294071, 0.01564836160647, 0, 79, srf_material, + 0.449266829028, 0.01705705884562, 0, 79, srf_material, + 0.4523568684787, 0.01903234483696, 0, 79, srf_material, + 0.455056958474, 0.02151420151516, 0, 79, srf_material, + 0.4572850581458, 0.02442721892095, 0, 79, srf_material, + 0.4589734678131, 0.0276828864945, 0, 79, srf_material, + 0.4600708860025, 0.03118228242405, 0, 79, srf_material, + 0.4605439682176, 0.03481907933504, 0, 79, srf_material, + 0.4603783400947, 0.03848277499366, 0, 79, srf_material, + 0.4595790341605, 0.04206204986123, 0, 79, srf_material, + 0.4581703369213, 0.04544814948211, 0, 79, srf_material, + 0.45619505093, 0.04853818893275, 0, 79, srf_material, + 0.4537131942518, 0.05123827892809, 0, 79, srf_material, + 0.450800176846, 0.05346637859993, 0, 79, srf_material, + 0.4475445092724, 0.05515478826722, 0, 79, srf_material, + 0.4434912946638, 0.05628477724745, 0, 79, srf_material, + 0.4205626364775, 0.06083009007094, 0, 79, srf_material, + 0.388196255691, 0.06136377951195, 0, 79, srf_material, + 0.318720871834, 0.06068382403602, 0, 79, srf_material, + 0.1775404382385, 0.04771633483496, 0, 79, srf_material, + 0, 0.02638076960868, 0, -1, srf_material + base + vert 0.02971523537156, 0.008833358052729, 0 + vert 0.2926217606432, 0.3870567921587, 0 + vert -0.02078485163318, 0.04393642466126, 0 + vert 0.02971523537156, 0.008833358052729, armrest_thickness + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_armrest_support" + cprism_{4} srf_material, srf_material, srf_material, 7, + 29, leg_thickness, + 0.0002880145038081, 0.2052342398615, 0, 15, srf_material, + 0.008872662082227, 0.1666924602608, 0, 79, srf_material, + 0.03595649500423, 0.09250940431396, 0, 79, srf_material, + 0.07249145380103, 0.02249614427651, 0, 79, srf_material, + 0.08403916874096, 0.006608460752363, 0, 79, srf_material, + 0.08499242588569, 0.005409841983399, 0, 79, srf_material, + 0.08728625186906, 0.003380086602295, 0, 79, srf_material, + 0.08989769280459, 0.001779486468164, 0, 79, srf_material, + 0.09274740138089, 0.0006566750061375, 0, 79, srf_material, + 0.09574879064491, 4.57682743204E-5, 0, 79, srf_material, + 0.09881066490262, -3.467163537505E-5, 0, 79, srf_material, + 0.1018399906541, 0.0004177994030027, 0, 79, srf_material, + 0.1047447233693, 0.001389433285914, 0, 79, srf_material, + 0.1074366042145, 0.002850707409497, 0, 79, srf_material, + 0.1098338417524, 0.004757221698946, 0, 79, srf_material, + 0.1118635971335, 0.007051047682321, 0, 79, srf_material, + 0.1134641972677, 0.009662488617848, 0, 79, srf_material, + 0.1145870087297, 0.01251219719415, 0, 79, srf_material, + 0.1151979154615, 0.01551358645817, 0, 79, srf_material, + 0.1152783553712, 0.01857546071588, 0, 79, srf_material, + 0.1148258843328, 0.02160478646736, 0, 79, srf_material, + 0.1138542504499, 0.02450951918255, 0, 79, srf_material, + 0.1123929763263, 0.02720140002777, 0, 79, srf_material, + 0.1110010740513, 0.02892985612413, 0, 79, srf_material, + 0.07158768871476, 0.09172527718798, 0, 79, srf_material, + 0.03835770018335, 0.1655495289059, 0, 79, srf_material, + 0.02650003620173, 0.2042530025844, 0, 15, srf_material, + 0.003949001191945, 0.2051810587766, 0, 79, srf_material, + 0.0002880145038081, 0.2052342398615, 0, -1, srf_material + base + vert -9.46543613352E-5, 0.4101266101311, 0 + vert 0.07573817950254, 0.1952648614218, 0 + vert 0.0455487339289, 0.4262358873849, 0 + vert -9.46543613352E-5, 0.4101266101311, leg_thickness + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_seat_1" + cprism_{4} srf_material, srf_material, srf_material, 7, + 16, seat_width, + 0.04569503049042, 0.03340800930845, 0, 79, srf_material, + 0, 0.0328290098678, 0, 15, srf_material, + 2.900002754222E-5, 0.02267900705156, 0, 15, srf_material, + 0.03334802262963, -3.469446951954E-18, 0, 15, srf_material, + 0.04598803019726, 0.01053300301192, 0, 15, srf_material, + 0.06541704364119, 0.01256800366731, 0, 15, srf_material, + 0.06553270785573, 0.01427181932558, 0, 79, srf_material, + 0.06516879291789, 0.01766785082565, 0, 79, srf_material, + 0.06422069198439, 0.02094909581061, 0, 79, srf_material, + 0.06271721262231, 0.02401585531199, 0, 79, srf_material, + 0.06070403729129, 0.02677494739419, 0, 79, srf_material, + 0.05824233530504, 0.02914253844046, 0, 79, srf_material, + 0.05540690423274, 0.03104669039491, 0, 79, srf_material, + 0.0522838972127, 0.03242954656396, 0, 79, srf_material, + 0.04896820523293, 0.03324908956268, 0, 79, srf_material, + 0.04569503049042, 0.03340800930845, 0, -1, srf_material + base + vert 0.06512085742482, 0.04380452368582, 0 + vert -0.0001285941785307, 0.04297775115551, 0 + vert 0.06554211865249, 0.01055830047492, 0 + vert 0.06512085742482, 0.04380452368582, 0.025 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_seat_2" + cprism_{4} srf_material, srf_material, srf_material, 7, + 7, 0.01, + 0.035, 0.23, 0, 15, srf_material, + 0, 0.2218685954748, 0, 15, srf_material, + 0, 0, 0, 13, srf_material, + 0, -0.2218685954748, 0, 15, srf_material, + 0.035, -0.23, 0, 15, srf_material, + 0.035, 0, 0, 13, srf_material, + 0.035, 0.23, 0, -1, srf_material + base + vert 0.3960698891038, -0.242052444905, 0 + vert 0.3960698891038, 0.2198740600125, 0 + vert 0.3333798634365, -0.242052444905, 0 + vert 0.3960698891038, -0.242052444905, 0.025 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_seat_3" + cprism_{4} srf_material, srf_material, srf_material, 7, + 7, 0.01, + 0.035, 0.2195453334129, 0, 15, srf_material, + 0, 0.2114139237155, 0, 15, srf_material, + 0, 0, 0, 13, srf_material, + 0, -0.2114139237155, 0, 15, srf_material, + 0.035, -0.2195453334129, 0, 15, srf_material, + 0.035, 0, 0, 13, srf_material, + 0.035, 0.2195453334129, 0, -1, srf_material + base + vert 0.3960698891038, -0.272052444905, 0 + vert 0.3960698891038, 0.1898740600125, 0 + vert 0.3333798634365, -0.272052444905, 0 + vert 0.3960698891038, -0.272052444905, 0.025 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_seat_4" + cprism_{4} srf_material, srf_material, srf_material, 7, + 7, 0.01, + 0.035, 0.2090906668259, 0, 15, srf_material, + 0, 0.2009592592594, 0, 15, srf_material, + 0, 0, 0, 13, srf_material, + 0, -0.2009592592594, 0, 15, srf_material, + 0.035, -0.2090906668259, 0, 15, srf_material, + 0.035, 0, 0, 13, srf_material, + 0.035, 0.2090906668259, 0, -1, srf_material + base + vert 0.3960698891038, -0.272052444905, 0 + vert 0.3960698891038, 0.1898740600125, 0 + vert 0.3333798634365, -0.272052444905, 0 + vert 0.3960698891038, -0.272052444905, 0.025 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_seat_s" + cprism_{4} srf_material, srf_material, srf_material, 7, + 5, 0.01, + 0, -0.198636, 0, 15, srf_material, + 0.035, -0.198636, 0, 15, srf_material, + 0.035, 0.198636, 0, 15, srf_material, + 0, 0.198636, 0, 15, srf_material, + 0, -0.198636, 0, -1, srf_material + base + vert 0.3960698891038, -0.272052444905, 0 + vert 0.3960698891038, 0.1898740600125, 0 + vert 0.3333798634365, -0.272052444905, 0 + vert 0.3960698891038, -0.272052444905, 0.025 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_below_back" + cprism_{4} srf_material, srf_material, srf_material, 7, + 5, seat_width, + 0, 0, 0, 15, srf_material, + 0.025, 0, 0, 15, srf_material, + 0.025, 0.035, 0, 15, srf_material, + 0, 0.035, 0, 15, srf_material, + 0, 0, 0, -1, srf_material + base + vert 0.025, 0, 0 + vert 0.025, 0.035, 0 + vert 0, 0, 0 + vert 0.025, 0, 0.025 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_below_front" + cprism_{4} srf_material, srf_material, srf_material, 7, + 5, inner_width, + 0, 0, 0, 15, srf_material, + 0.025, 0, 0, 15, srf_material, + 0.025, 0.035, 0, 15, srf_material, + 0, 0.035, 0, 15, srf_material, + 0, 0, 0, -1, srf_material + base + vert 0.025, 0, 0 + vert 0.025, 0.035, 0 + vert 0, 0, 0 + vert 0.025, 0, 0.025 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_holder" + cprism_{4} srf_material, srf_material, srf_material, 7, + 5, chair_width, + 0.01848239658778, 0.01749894365806, 0, 15, srf_material, + 0, 0, 0, 15, srf_material, + 0.01006611517958, -0.01288947075154, 0, 15, srf_material, + 0.02967564278558, 0.005676629279407, 0, 15, srf_material, + 0.01848239658778, 0.01749894365806, 0, -1, srf_material + base + vert 0.02854851176736, 0.004609472906517, 0 + vert 0.0481580394012, 0.02317557296382, 0 + vert 0.01735526539241, 0.01643178741654, 0 + vert 0.02854851176736, 0.004609472906517, 0.485 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_back_hz" + cprism_{4} srf_material, srf_material, srf_material, 7, + 5, inner_width, + 0, 0, 0, 15, srf_material, + 0.02, 0, 0, 15, srf_material, + 0.02, 0.045, 0, 15, srf_material, + 0, 0.045, 0, 15, srf_material, + 0, 0, 0, -1, srf_material + base + vert 0.02, 0, 0 + vert 0.02, 0.045, 0 + vert 0, 0, 0 + vert 0.02, 0, 0.51 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_back_vt" + cprism_{4} srf_material, srf_material, srf_material, 7, + 11, back_stripe_width, + -0.05788468978133, 0.3374083378877, 0, 15, srf_material, + -0.0565156839175, 0.285026766275, 0, 79, srf_material, + -0.04383170023982, 0.180998263235, 0, 79, srf_material, + -0.02131661273246, 0.07864649861299, 0, 79, srf_material, + 0.004007668960291, 0.00130217058118, 0, 15, srf_material, + 0.01362856764872, 0.004428190060512, 0, 15, srf_material, + -0.01089334258, 0.0791861399663, 0, 79, srf_material, + -0.03353535670155, 0.1815099010544, 0, 79, srf_material, + -0.04634835416503, 0.2855225925045, 0, 79, srf_material, + -0.04778232632314, 0.3379024258903, 0, 15, srf_material, + -0.05788468978133, 0.3374083378877, 0, -1, srf_material + base + vert -0.1289021291036, 0.6723983421508, 0 + vert -0.06700977036196, 0.3362921748443, 0 + vert -0.105907258569, 0.6766327386445, 0 + vert -0.1289021291036, 0.6723983421508, 0.025 + coor{2} 20, 224, -1, -2, -3, -4 +endgroup +group "group_cylind" + set material "mat_simple_grey" + cylind 0.003, 0.007 +endgroup +! --- end geometry -------------- + +global_trx = ntr() +rotx 90 + +! Beine klein +placegroup ("group_leg_small") +addz -chair_width+leg_thickness +placegroup ("group_leg_small") +killgroup ("group_leg_small") +del 1 + +! Beine, groß rund +add 0.45, 0, -leg_thickness +placegroup ("group_leg_big") +addz -chair_width+leg_thickness*3 +placegroup ("group_leg_big") +killgroup ("group_leg_big") +del 2 + +! Support +add 0.15, 0.375, -leg_thickness*2 +placegroup ("group_support") +addz -chair_width+leg_thickness*5 +placegroup ("group_support") +killgroup ("group_support") +del 2 + +if b_show_arms then + ! Armrest + add 0.065, 0.6, 0 + placegroup ("group_armrest") + addz -chair_width + leg_thickness*2 - armrest_thickness + placegroup ("group_armrest") + killgroup ("group_armrest") + del 2 + + ! Armrest support + add 0.425, 0.42, leg_thickness/2 + placegroup ("group_armrest_support") + addz -chair_width + placegroup ("group_armrest_support") + killgroup ("group_armrest_support") + del 2 +endif + +seat_trx = ntr() +! seating +! seat edge +add 0.4895, 0.4118, -chair_width+leg_thickness*2 +placegroup ("group_seat_1") +killgroup ("group_seat_1") + +addz center-leg_thickness +! switch back to XY plane +rotx -90 +addz 0.0227 +roty -1.27 ! seating is slightly sloped + +seat_dist = 0.01 + 0.035 +addx -seat_dist +placegroup ("group_seat_2") +killgroup ("group_seat_2") + +addx -seat_dist +placegroup ("group_seat_3") +killgroup ("group_seat_3") + +addx -seat_dist +placegroup ("group_seat_4") +killgroup ("group_seat_4") + +for k = 1 to 4 + addx -seat_dist + placegroup ("group_seat_s") +next k +killgroup ("group_seat_s") + +del ntr()-seat_trx + + +! foot rest +add 0.06, 0.03, -chair_width+leg_thickness*2 +rotz -45 +placegroup ("group_below_back") +killgroup ("group_below_back") +del 2 + +add 0.4, 0.065, -chair_width+leg_thickness*3 +rotz 45 +placegroup ("group_below_front") +killgroup ("group_below_front") +del 2 + +add 0.3175, 0.21845, -chair_width+leg_thickness +placegroup ("group_holder") +killgroup ("group_holder") +del 1 + +! cylinders +gosub "go_cylind" +addz -seat_width +mulz -1 +gosub "go_cylind" +del 2 +killgroup ("group_cylind") + +! back +add 0.017, 0.92, -chair_width+leg_thickness*3 +rotz 2.8 +placegroup ("group_back_hz") +del 1 + +add 0.076, -0.38, 0 +rotz 18 +placegroup ("group_back_hz") +killgroup ("group_back_hz") +del 1 + +! back plate +add -0.014, 0.043, 0 +n_bs = 7 +add_dist = (inner_width - (n_bs * back_stripe_width)) / (n_bs+1) +addz add_dist +for j = 1 to n_bs + placegroup ("group_back_vt") + addz back_stripe_width + add_dist +next j + +! reset the transformation stack +del ntr()-global_trx +END ! -- END -- END -- END -- END -- END -- END -- END -- END -- END -- ! +! ---------------------------------------------------------------------- ! + + +! ---------------------------------------------------------------------- ! +"go_cylind": + add 0.17, 0.4, 0 + placegroup ("group_cylind") + del 1 + add 0.524, 0.437, leg_thickness*1.5 + placegroup ("group_cylind") + del 1 + add 0.09, 0.615, armrest_thickness + placegroup ("group_cylind") + del 1 +return diff --git a/Objects/Gartenstuhl/Gartenstuhl/scripts/vl.gdl b/Objects/Gartenstuhl/Gartenstuhl/scripts/vl.gdl new file mode 100644 index 0000000..3fbd51e --- /dev/null +++ b/Objects/Gartenstuhl/Gartenstuhl/scripts/vl.gdl @@ -0,0 +1,17 @@ +! ––– PARAM script ––– ! + +ac_bottomlevel = SYMB_POS_Z +ac_toplevel = ac_bottomlevel + ZZYZX +parameters ac_bottomlevel = ac_bottomlevel, + ac_toplevel = ac_toplevel + +values "gs_cont_pen", range [1,255] +values "gs_fill_pen", range [1,255] + +values "gs_resol", range [6,48] + +lock "A", "B", "ZZYZX" + +if not(b_override_mat) then + lock "override_mat" +endif diff --git a/Objects/Gartenstuhl/README.md b/Objects/Gartenstuhl/README.md new file mode 100644 index 0000000..50b7f4e --- /dev/null +++ b/Objects/Gartenstuhl/README.md @@ -0,0 +1,11 @@ +--- +title: Gartenstuhl +description: | + Ein einfacher Gartenstuhl aus Holz. +description_en: | + A simple garden chair. +tags: 3D Möbel Stuhl Garten Staffage +version: 1.0 +compat: 23 +lang: de +--- diff --git a/Objects/Glocke/Glocke.gsm b/Objects/Glocke/Glocke.gsm new file mode 100644 index 0000000..809c926 Binary files /dev/null and b/Objects/Glocke/Glocke.gsm differ diff --git a/Objects/Glocke/Glocke/ancestry.xml b/Objects/Glocke/Glocke/ancestry.xml new file mode 100644 index 0000000..57015ab --- /dev/null +++ b/Objects/Glocke/Glocke/ancestry.xml @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + diff --git a/Objects/Glocke/Glocke/calledmacros.xml b/Objects/Glocke/Glocke/calledmacros.xml new file mode 100644 index 0000000..e637f14 --- /dev/null +++ b/Objects/Glocke/Glocke/calledmacros.xml @@ -0,0 +1,7 @@ + + + + + 9137124A-DDF2-4A06-A532-5FC0CE873258 + + diff --git a/Objects/Glocke/Glocke/images/Picture_0.png b/Objects/Glocke/Glocke/images/Picture_0.png new file mode 100644 index 0000000..7cc8192 Binary files /dev/null and b/Objects/Glocke/Glocke/images/Picture_0.png differ diff --git a/Objects/Glocke/Glocke/libpartdata.xml b/Objects/Glocke/Glocke/libpartdata.xml new file mode 100644 index 0000000..bf52332 --- /dev/null +++ b/Objects/Glocke/Glocke/libpartdata.xml @@ -0,0 +1,21 @@ + + + + 5A1224F8-87C7-4420-9C08-2D9AFC92013B + true + false + Normal + false + + + + + + + + + + + + + diff --git a/Objects/Glocke/Glocke/libpartdocs.xml b/Objects/Glocke/Glocke/libpartdocs.xml new file mode 100644 index 0000000..e963b6b --- /dev/null +++ b/Objects/Glocke/Glocke/libpartdocs.xml @@ -0,0 +1,19 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + diff --git a/Objects/Glocke/Glocke/paramlist.xml b/Objects/Glocke/Glocke/paramlist.xml new file mode 100644 index 0000000..3b77a85 --- /dev/null +++ b/Objects/Glocke/Glocke/paramlist.xml @@ -0,0 +1,129 @@ + + + + false + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 1 + + + + + + + + 1 + + + + + 1 + + + + + + + + 1 + + + + + + + + 0 + + + + + + + + 1 + + + + + + + 0 + + + + 1 + + + + 1 + + + + 21 + + + + 65 + + + + 1 + + + + 19 + + + + + + <Description><![CDATA["3D Attribute"]]></Description> + + + + + + + 40 + + + + + + + 1 + + + + + + + 3 + + + + + + + 1 + + + + + + + 1 + + + diff --git a/Objects/Glocke/Glocke/scripts/1d.gdl b/Objects/Glocke/Glocke/scripts/1d.gdl new file mode 100644 index 0000000..5d799d3 --- /dev/null +++ b/Objects/Glocke/Glocke/scripts/1d.gdl @@ -0,0 +1,38 @@ +! ––– MASTER script ––– ! + + +! Detail Level 3D +dict DETLEVEL + DETLEVEL.d3.mvo = 1 + DETLEVEL.d3.scsens = 2 + DETLEVEL.d3.detailed = 3 + DETLEVEL.d3.simple = 4 + DETLEVEL.d3.draft = 5 + DETLEVEL.d3.off = 7 + + DETLEVEL.st3.mvo = `nach Modelldarstellung` + DETLEVEL.st3.scsens = `Maßstabsabhängig` + DETLEVEL.st3.detailed = `Detailliert` ! `Komplett` + DETLEVEL.st3.simple = `Vereinfacht` + DETLEVEL.st3.draft = `Schematisch` + DETLEVEL.st3.off = `Aus` + +! Determine the detail level for the 3D +if (iDetlevel3D = DETLEVEL.d3.mvo) then ! by MVO + if GLOB_PREVIEW_MODE = 1 | GLOB_PREVIEW_MODE = 3 then + ! In case of "by MVO" on Settings Dialog View and Favorite Saving use the Detailed/Full model + _detlevel3D = DETLEVEL.d3.detailed + else + _mvo_detlevel_3D = 0 + lgr = libraryglobal("LibraryGlobals13", "iDetlevelMVO3D", _mvo_detlevel_3D) + + _detlevel3D = DETLEVEL.d3.detailed + + if _mvo_detlevel_3D = DETLEVEL.d3.simple or \ + _mvo_detlevel_3D = DETLEVEL.d3.draft then _detlevel3D = DETLEVEL.d3.simple + + endif +else + ! just take the number as is + _detlevel3D = iDetlevel3D +endif diff --git a/Objects/Glocke/Glocke/scripts/2d.gdl b/Objects/Glocke/Glocke/scripts/2d.gdl new file mode 100644 index 0000000..4b0402d --- /dev/null +++ b/Objects/Glocke/Glocke/scripts/2d.gdl @@ -0,0 +1,13 @@ +! ––– 2D script ––– ! + +line_type gs_linetype + +! we don't need a detailed model for project2 +! status ist set to 15 := acts like the conventional project2s +project2{3} 3, 270, 2+32, 15, parameters iDetlevel3D = DETLEVEL.d3.simple + +fill gs_fill + +poly2_ 2, 2, + 0, 0, 900, + A/2, 360, 4001 diff --git a/Objects/Glocke/Glocke/scripts/3d.gdl b/Objects/Glocke/Glocke/scripts/3d.gdl new file mode 100644 index 0000000..9494aed --- /dev/null +++ b/Objects/Glocke/Glocke/scripts/3d.gdl @@ -0,0 +1,268 @@ +! ––– 3D script ––– ! + +if b_shadow then + shadow auto, on +else + shadow off, off +endif + +if _detlevel3D = DETLEVEL.d3.detailed then + resol 48 + ! Beware! -> `revolve` goes around the X-axis! + put 0.815, 0.1649, 2, + 0.815, 0.1650, 1, ! otherwise the `2` would make the rounding faceted + 0.833, 0.2039, 900, + 0.7931, 0.1928, 3001, + 0.7823, 0.2312, 1, + 0.7236, 0.2147, 900, + 0.7301, 0.2754, 3001, + 0.4032, 0.2997, 1, + 0.4328, 0.6976, 900, + 0.2213, 0.3593, 3001, + 0.4063, 0.6554, 900, + 0.1128, 0.4663, 3002, + 0, 0.5, 2, + 0.001, 0.49, 2, + 0.0578, 0.3963, 2, + 0.1549, 0.3392, 1, + 0.4426, 0.8286, 900, + 0.4004, 0.2625, 3001, + 0.7429, 0.2370, 1, + 0.0379, 0, 900, + 0.7817, 0.005, 3001 +else + ! not detailed + resol 24 + put 0.815, 0.1650, 2, + 0.7931, 0.1928, 2, + 0.7823, 0.2312, 1, + 0.7301, 0.2754, 1, + 0.4032, 0.2997, 1, + 0.2213, 0.3593, 1, + 0.1128, 0.4663, 2, + 0, 0.5, 2, + 0.001, 0.49, 2 +endif + + +material gs_mat +pen gs_cont_pen +sect_attrs fill_sect, pen_sect_bg, pen_sect_fg, gs_cont_pen + +group "Bell" + mul A, B, zzyzx ! Groups ignore any transformations from outside! + roty 270+y_rot_offset_ang + revolve nsp/3, 360, 1+2, + get(nsp) +endgroup + +! Glockenhenkel ----------------- +if i_mount = 1 then ! classic style + henkel_width = 0.05 + group "Henkel_1" + mul A, B, zzyzx + rotx 90 + add -0.1435, 0, -henkel_width/2 + gosub "Henkel" + endgroup + group "Henkel_2" + mul A, B, zzyzx + rotz 90 + rotx 90 + add -0.1435, 0, -henkel_width/2 + gosub "Henkel" + endgroup + union_henkel = addgroup ("Henkel_1", "Henkel_2") + killgroup "Henkel_1" + killgroup "Henkel_2" + addz 0.815*zzyzx + placegroup union_henkel + del 1 +else + addz 0.815*zzyzx + _hkl_w = 0.16*A + addx -_hkl_w/2 + addy -_hkl_w/2 - 0.01 + block _hkl_w, 0.02, 0.185*zzyzx + addy _hkl_w + block _hkl_w, 0.02, 0.185*zzyzx + del 4 +endif + +! Schlagwerk ---------------------- +if b_clapper then + + group "Mount" ! Halterung des Klöppels an der Glocke + mul A, B, zzyzx + _mnt_width = 0.08 + _mnt_height = 0.16 + _mnt_dist = 0.06 + add 0, _mnt_dist/2, 0.66 + rotx 90 + cylind _mnt_dist, 0.01 + del 2 + addx -_mnt_width/2 + addy _mnt_dist/2 + addz 0.782-_mnt_height + gosub "Mount" + addy -(_mnt_dist+0.01) + gosub "Mount" + endgroup + + group "kloeppel_mount" + mul A, B, zzyzx + addz 0.53 + rotx 90 + rotz 90 + addz -0.0125 + prism_ 8, 0.0125*2, + 0, 0, 79, + 0, 0.0125, 79, + 0.07, 0.05, 100+79, + 0.12, 0, 100+79, + 0, 0, 900, + 0.19, -0.0625, 3000+15, + -0.12, 0, 100+79, + 0, -0.0125, 79 + endgroup + group "kloeppel_stab" + mul A, B, zzyzx + addz 0.02 + cylind 0.51, 0.0125 + endgroup + group "kloeppel_sphere" + mul A, B, zzyzx + addz -0.032 + sphere 0.06 + endgroup + group "kloeppel_end" + mul A, B, zzyzx + resol 6 + roty -90 + addx -0.224 + revolve 3, 360, 1+2, + 0, 0.012, 2, + 0.01, 0.01, 100+2, + 0.135, 0.01, 2 + endgroup + + union_model = addgroup ("Bell", "Mount") + killgroup "Mount" + placegroup union_model + killgroup union_model + + kl_1 = addgroup ("kloeppel_mount", "kloeppel_stab") + kl_2 = addgroup ("kloeppel_sphere", "kloeppel_end") + union_kloeppel = addgroup (kl_1, kl_2) + killgroup kl_1 + killgroup kl_2 + killgroup "kloeppel_mount" + killgroup "kloeppel_stab" + killgroup "kloeppel_sphere" + killgroup "kloeppel_end" + placegroup union_kloeppel + killgroup union_kloeppel + +else + ! no union, just place the group + placegroup "Bell" +endif + +killgroup "Bell" + +END ! -- END -- END -- END -- END -- END -- END -- END -- END -- END -- ! +! ---------------------------------------------------------------------- !# + +! ---------------------------------------------------------------------- ! +"Mount": + block _mnt_width, 0.01, _mnt_height +return + +! ---------------------------------------------------------------------- ! +"Henkel": + prism_ 61, henkel_width, + 0, 0.1716, 79, + -0.0019, 0.1717, 79, + -0.00635, 0.171, 79, + -0.01062, 0.1695, 79, + -0.01457, 0.1673, 79, + -0.01807, 0.1645, 79, + -0.02103, 0.1611, 79, + -0.02336, 0.1572, 79, + -0.02498, 0.1530, 79, + -0.02584, 0.1486, 79, + -0.02592, 0.1440, 79, + -0.02515, 0.1398, 79, + 0.00206, 0.0276, 15, + 0, 0, 15, + 0.06889, 0, 15, + 0.05259, 0.0170, 15, + 0.04199, 0.1042, 79, + 0.04184, 0.1076, 79, + 0.04233, 0.1107, 79, + 0.04334, 0.1136, 79, + 0.04485, 0.1163, 79, + 0.04681, 0.1187, 79, + 0.04916, 0.1208, 79, + 0.05183, 0.1224, 79, + 0.05474, 0.1235, 79, + 0.05780, 0.1241, 79, + 0.05936, 0.1241, 79, + 0.14335, 0.1241, 13, + 0.22734, 0.1241, 79, + 0.23072, 0.1238, 79, + 0.23370, 0.1229, 79, + 0.23648, 0.1215, 79, + 0.23897, 0.1196, 79, + 0.24110, 0.1174, 79, + 0.24280, 0.1147, 79, + 0.24402, 0.1119, 79, + 0.24472, 0.1088, 79, + 0.24489, 0.1057, 79, + 0.24470, 0.1042, 79, + 0.23410, 0.0170, 15, + 0.21781, 0, 15, + 0.28670, 0, 15, + 0.28464, 0.0276, 15, + 0.31186, 0.1398, 79, + 0.31239, 0.1420, 79, + 0.31268, 0.1465, 79, + 0.31218, 0.1509, 79, + 0.31091, 0.1553, 79, + 0.30890, 0.1593, 79, + 0.30623, 0.1630, 79, + 0.30296, 0.1661, 79, + 0.29921, 0.1686, 79, + 0.29507, 0.1704, 79, + 0.29069, 0.1714, 79, + 0.28635, 0.1716, 79, + 0.18904, 0.1716, 15, + 0.18794, 0.1814, 15, + 0.14335, 0.1814, 13, + 0.09876, 0.1814, 15, + 0.09766, 0.1716, 15, + 0, 0.1716, -1 +return + +! ---------------------------------------------------------------------- ! +"Doughnut": + resol 24 + elbow dn_rad, 360, dnsect_rad +return + +! ---------------------------------------------------------------------- ! +"unused": + ! Eine alternative Aufhängung + cyl_height = 0.04 + cyl_width = 0.0125 + addz 0.785-cyl_height + rotz 90 + addy cyl_height + cylind cyl_height, cyl_width + rotz -90 + mulz -1 + elbow cyl_height, 180, cyl_width + del 1 + addx cyl_height*2 + cylind cyl_height, cyl_width +return diff --git a/Objects/Glocke/Glocke/scripts/vl.gdl b/Objects/Glocke/Glocke/scripts/vl.gdl new file mode 100644 index 0000000..271e91e --- /dev/null +++ b/Objects/Glocke/Glocke/scripts/vl.gdl @@ -0,0 +1,38 @@ +! ––– PARAM script ––– ! + +if GLOB_MODPAR_NAME = "A" then + zzyzx = A + parameters zzyzx = zzyzx +endif +if GLOB_MODPAR_NAME = "zzyzx" then + A = zzyzx + parameters A = A +endif + +B = A +parameters B = B + +ac_bottomlevel = SYMB_POS_Z +ac_toplevel = ac_bottomlevel + ZZYZX +parameters ac_bottomlevel = ac_bottomlevel, + ac_toplevel = ac_toplevel + + +! options for the detail level (not all are used) +values{2} "iDetlevel3D" DETLEVEL.d3.mvo, DETLEVEL.st3.mvo, + DETLEVEL.d3.detailed, DETLEVEL.st3.detailed, + DETLEVEL.d3.simple, DETLEVEL.st3.simple + + +if iDetlevel3D = DETLEVEL.d3.simple then + b_clapper = 0 + parameters b_clapper = b_clapper + lock "b_clapper" +endif + +values "gs_cont_pen", range [1,255] +values "pen_sect_fg", range [1,255] + + +values{2} "i_mount" 1, `Klassisch`, + 2, `Fest installiert` diff --git a/Objects/Glocke/README.md b/Objects/Glocke/README.md new file mode 100644 index 0000000..d7217f9 --- /dev/null +++ b/Objects/Glocke/README.md @@ -0,0 +1,11 @@ +--- +title: Glocke +description: | + Eine Glocke mit optionaler Aufhängung. +description_en: | + A simple church bell. +tags: 3D Kirche Glocke Denkmal Staffage +version: 1.0 +compat: 23 +lang: de +--- diff --git a/Objects/Isokorb (Attika)/README.md b/Objects/Isokorb (Attika)/README.md new file mode 100644 index 0000000..4cbce13 --- /dev/null +++ b/Objects/Isokorb (Attika)/README.md @@ -0,0 +1,12 @@ +--- +title: Isokorb (Attika) +description: | + Isokorb zur 2D Detaillierung von Attiken im Schnitt. +description_en: | + Isokorb for 2D detailing of parapet wall. +tags: 2D Detail Zeichnung +version: 1.0 +compat: 23 +lang: de +dependencies: "BasicGeometry macro (http://gdl.graphisoft.com/tips-and-tricks/using-basicgeometry-macro)" +--- diff --git a/Objects/Konzentrisch/Konzentrisch.gsm b/Objects/Konzentrisch/Konzentrisch.gsm new file mode 100644 index 0000000..34bbe88 Binary files /dev/null and b/Objects/Konzentrisch/Konzentrisch.gsm differ diff --git a/Objects/Konzentrisch/Konzentrisch/ancestry.xml b/Objects/Konzentrisch/Konzentrisch/ancestry.xml new file mode 100644 index 0000000..57015ab --- /dev/null +++ b/Objects/Konzentrisch/Konzentrisch/ancestry.xml @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + diff --git a/Objects/Konzentrisch/Konzentrisch/calledmacros.xml b/Objects/Konzentrisch/Konzentrisch/calledmacros.xml new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ b/Objects/Konzentrisch/Konzentrisch/calledmacros.xml @@ -0,0 +1,3 @@ + + + diff --git a/Objects/Konzentrisch/Konzentrisch/images/Picture_0.png b/Objects/Konzentrisch/Konzentrisch/images/Picture_0.png new file mode 100644 index 0000000..6bcb90b Binary files /dev/null and b/Objects/Konzentrisch/Konzentrisch/images/Picture_0.png differ diff --git a/Objects/Konzentrisch/Konzentrisch/libpartdata.xml b/Objects/Konzentrisch/Konzentrisch/libpartdata.xml new file mode 100644 index 0000000..14bcd37 --- /dev/null +++ b/Objects/Konzentrisch/Konzentrisch/libpartdata.xml @@ -0,0 +1,18 @@ + + + + 8A1228D5-ADE5-4843-A82B-D027A12E4DC7 + true + false + Normal + false + + + + + + + + + + diff --git a/Objects/Konzentrisch/Konzentrisch/libpartdocs.xml b/Objects/Konzentrisch/Konzentrisch/libpartdocs.xml new file mode 100644 index 0000000..f708e9f --- /dev/null +++ b/Objects/Konzentrisch/Konzentrisch/libpartdocs.xml @@ -0,0 +1,13 @@ + + + + + + CC BY + 4.0 + + + + + + diff --git a/Objects/Konzentrisch/Konzentrisch/paramlist.xml b/Objects/Konzentrisch/Konzentrisch/paramlist.xml new file mode 100644 index 0000000..bd5a08f --- /dev/null +++ b/Objects/Konzentrisch/Konzentrisch/paramlist.xml @@ -0,0 +1,86 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 0 + + + + 1 + + + + 1 + + + + 2 + + + + 4 + + + + 1 + + + diff --git a/Objects/Konzentrisch/Konzentrisch/scripts/2d.gdl b/Objects/Konzentrisch/Konzentrisch/scripts/2d.gdl new file mode 100644 index 0000000..7bcc9cc --- /dev/null +++ b/Objects/Konzentrisch/Konzentrisch/scripts/2d.gdl @@ -0,0 +1,60 @@ +! ––– 2D script ––– ! +! author: @runxel +! date: 2020-06-09 +! Displays concentric rings. +! Think like "Multiply", but with size in situ. +! Can be exploded in 2D and then used. +! ––– ––– ––– ––– ––– ! + +uID = 1 +pen gs_cont_pen + +! center hotspot +hotspot2 0, 0, uID : uID=uID+1 + +! --- inner circle ----------------- +hotspot2 0, 0, uID, rad_in, 1+128 : uID=uID+1 !base +hotspot2 rad_in, 0, uID, rad_in, 2 : uID=uID+1 !move +hotspot2 -1, 0, uID, rad_in, 3 : uID=uID+1 !ref +curr_rad = rad_in +gosub "circle" + +! --- outer circle ----------------- +hotspot2 0, 0, uID, rad_out, 1+128 : uID=uID+1 !base +hotspot2 rad_out, 0, uID, rad_out, 2 : uID=uID+1 !move +hotspot2 -1, 0, uID, rad_out, 3 : uID=uID+1 !ref +curr_rad = rad_out +gosub "circle" + + +rad_diff = abs(rad_out - rad_in) + +if obj_mode = 1 then + ! "Aufteilen" – user specifies the total distance + + rad_diff_case = rad_diff / (n_diff-1) + + for i = 1 to n_diff-2 + curr_rad = rad_in + i*rad_diff_case + gosub "circle" + next i + +else + ! "Verteilen" – user specifies the distance between two adjacent rings + + for i = 2 to n_diff-2 + curr_rad = rad_in + i*rad_diff + gosub "circle" + next i + +endif + + +END ! -- END -- END -- END -- END -- END -- END -- END -- END -- END -- ! +! ---------------------------------------------------------------------- ! + +! ---------------------------------------------------------------------- ! +"circle": + hotarc2 0, 0, curr_rad, 0, 360, uID : uID=uID+1 + circle2 0, 0, curr_rad +return diff --git a/Objects/Konzentrisch/Konzentrisch/scripts/vl.gdl b/Objects/Konzentrisch/Konzentrisch/scripts/vl.gdl new file mode 100644 index 0000000..a7d02f7 --- /dev/null +++ b/Objects/Konzentrisch/Konzentrisch/scripts/vl.gdl @@ -0,0 +1,12 @@ +! ––– PARAM script ––– ! + +values "gs_cont_pen", range [1,255] + +values{2} "obj_mode" 1, `Aufteilen`, + 2, `Verteilen` + + +values "rad_in", range [0.001,rad_out-0.001] +values "rad_out", range [rad_in+0.001,] + +values "n_diff", range [3,] diff --git a/Objects/Konzentrisch/README.md b/Objects/Konzentrisch/README.md new file mode 100644 index 0000000..a277624 --- /dev/null +++ b/Objects/Konzentrisch/README.md @@ -0,0 +1,11 @@ +--- +title: Konzentrisch +description: | + Konzentrische Kreise im 2D. +description_en: | + Concentric rings. +tags: 2D Helferlein Zeichnung +version: 1.0 +compat: 23 +lang: de +--- diff --git a/Objects/Kreis tangential an 2 Kreise LX/CHANGELOG.md b/Objects/Kreis tangential an 2 Kreise LX/CHANGELOG.md new file mode 100644 index 0000000..5a75c27 --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog +All notable changes to this object will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## Compatibility +Archicad version 24 + +## Dependencies +- "BasicGeometry" macro (vendored) + +## [Unreleased] + +## [1.0] – 2021-01-10 +First version of this object published. diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX.gsm b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX.gsm new file mode 100644 index 0000000..d491a7e Binary files /dev/null and b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX.gsm differ diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/ancestry.xml b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/ancestry.xml new file mode 100644 index 0000000..58d1218 --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/ancestry.xml @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + B176ABF1-5813-478F-926B-28EE7C5DC1F7 + diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/calledmacros.xml b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/calledmacros.xml new file mode 100644 index 0000000..bee6492 --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/calledmacros.xml @@ -0,0 +1,7 @@ + + + + + EEDF5B3C-D4C1-40DC-88F8-A8399D8569D5 + + diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/images/Picture_0.png b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/images/Picture_0.png new file mode 100644 index 0000000..b9e4ba5 Binary files /dev/null and b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/images/Picture_0.png differ diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/libpartdata.xml b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/libpartdata.xml new file mode 100644 index 0000000..019a664 --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/libpartdata.xml @@ -0,0 +1,20 @@ + + + + 3FCEDCFD-92A1-49DE-AEC6-0B481F1DD1D8 + true + false + Normal + false + + + + + + + + + + + + diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/libpartdocs.xml b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/libpartdocs.xml new file mode 100644 index 0000000..004b98b --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/libpartdocs.xml @@ -0,0 +1,22 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/paramlist.xml b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/paramlist.xml new file mode 100644 index 0000000..48a5e42 --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/paramlist.xml @@ -0,0 +1,93 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + + + + 1 + + + + + + + + 1 + + + + 0 + + + + 0.5 + + + + 1 + + + + 2.55 + + + + 1 + + + + 81 + + + + + + + 1 + + + + + + + 0 + + + + + + + 3 + + + + + + + 2 + + + + + + + 0 + + + diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/1d.gdl b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/1d.gdl new file mode 100644 index 0000000..d44798c --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/1d.gdl @@ -0,0 +1 @@ +!--- Master script ---! !- For a mathematical explanation see http://jwilson.coe.uga.edu/EMAT6680Su06/Swanagan/Assignment7/BSAssignment7.html -! !- uses the "BasicGeometry" macro -! dict BasicGeometry BasicGeometry.DIRECTION_POINTS_3D = 1 BasicGeometry.INTERSECT_LINE_LINE_2D = 4 BasicGeometry.INTERSECT_CIRCLE_LINE_2D = 5 BasicGeometry.INTERSECT_SEGMENT_LINE_2D = 6 BasicGeometry.INSERT_POINT_TO_SEGMENT_2D = 8 eps = 0.0001 !------------------------------------------------------------------------------! dict bigger_circle, smaller_circle, tpt ! Determine the bigger circle first bigger_circle.radius = max(radius1, radius2) if abs(bigger_circle.radius - radius1) < eps then bigger_circle.id = 1 bigger_circle.center.x = x1 bigger_circle.center.y = y1 smaller_circle.radius = radius2 smaller_circle.center.x = x2 smaller_circle.center.y = y2 else bigger_circle.id = 2 bigger_circle.center.x = x2 bigger_circle.center.y = y2 smaller_circle.radius = radius1 smaller_circle.center.x = x1 smaller_circle.center.y = y1 endif ! Set the coordinates of the point where the tangent circle will meet the bigger circle tpt.center.x = bigger_circle.radius * cos(tangent_point) tpt.center.y = bigger_circle.radius * sin(tangent_point) tpt.radius = smaller_circle.radius if bigger_circle.id = 1 then tpt.center.x = tpt.center.x + x1 tpt.center.y = tpt.center.y + y1 else tpt.center.x = tpt.center.x + x2 tpt.center.y = tpt.center.y + y2 endif ! Get the intersection of the Line with Circle ! (it's easier to just get the distance on the line right) dict _segment, _inserted _segment.begPoint = tpt.center _segment.endPoint = bigger_circle.center _segment.type = 0 ! straight call "BasicGeometry" \ parameters iFunction = BasicGeometry.INSERT_POINT_TO_SEGMENT_2D, segment = _segment, insertionDist = smaller_circle.radius, returned_parameters _inserted ! Center of the Line connecting center of the smaller circle and the ! intersection of the line connecting TangentPoint's center and the center of the bigger circle dict centerCF centerCF.point.x = (smaller_circle.center.x + _inserted.point.x) / 2 centerCF.point.y = (smaller_circle.center.y + _inserted.point.y) / 2 ! Get the direction vector of the Line connecting the center of the bigger circle ! and the helper circle dict _pointFrom, _pointTo, _direction, _directionCF _pointFrom.x = bigger_circle.center.x _pointFrom.y = bigger_circle.center.y _pointFrom.z = 0 _pointTo.x = tpt.center.x _pointTo.y = tpt.center.y _pointTo.z = 0 call "BasicGeometry" \ parameters iFunction = BasicGeometry.DIRECTION_POINTS_3D, PointFrom = _pointFrom, PointTo = _pointTo, returned_parameters _direction ! direction of the CF line _pointFrom.x = smaller_circle.center.x _pointFrom.y = smaller_circle.center.y _pointTo.x = _inserted.point.x _pointTo.y = _inserted.point.y call "BasicGeometry" \ parameters iFunction = BasicGeometry.DIRECTION_POINTS_3D, PointFrom = _pointFrom, PointTo = _pointTo, returned_parameters _directionCF ! Get the Center Point of the final tangent circle dict _lineA, _lineB, _intersection ! _lineA => line from the center of the bigger circle _lineA.point = bigger_circle.center _lineA.direction = _direction ! _lineB => perpendicular line from the center the CF line _lineB.point = centerCF.point _lineB.direction.ux = -_directionCF.uy _lineB.direction.uy = _directionCF.ux call "BasicGeometry" \ parameters iFunction = BasicGeometry.INTERSECT_LINE_LINE_2D, lineA = _lineA, lineB = _lineB, returned_parameters _intersection ! intersection of the lines ! And we've got the resulting tangent circle dict tangentC tangentC.center = _intersection.points[1] _dist_t_sc = sqr( (tangentC.center.x - smaller_circle.center.x)^2 +\ (tangentC.center.y - smaller_circle.center.y)^2) ! Check how we need to calculate the Radius _dist_t_bc = sqr( (tangentC.center.x - bigger_circle.center.x)^2 +\ (tangentC.center.y - bigger_circle.center.y)^2) _dist_t_tpt = sqr( (tangentC.center.x - tpt.center.x)^2 +\ (tangentC.center.y - tpt.center.y)^2) if _dist_t_bc > _dist_t_tpt then tangentC.radius = _dist_t_sc - smaller_circle.radius else ! the tangent point is of the other side of the circle which means ! we need to add instead of subtract tangentC.radius = _dist_t_sc + smaller_circle.radius endif \ No newline at end of file diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/2d.gdl b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/2d.gdl new file mode 100644 index 0000000..e4c769d --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/2d.gdl @@ -0,0 +1 @@ +!--- 2D script ---! unID = 1 pen pen_circles ! Hotspots at the center of the circles ! You can move the location of the circles with these, too ! { circle one hotspot2 0, y1, unID, x1, 1+128 : unID=unID+1 !base hotspot2 x1, y1, unID, x1, 2 : unID=unID+1 !move hotspot2 -1, y1, unID, x1, 3 : unID=unID+1 !ref hotspot2 x1, 0, unID, y1, 1+128 : unID=unID+1 !base hotspot2 x1, y1, unID, y1, 2 : unID=unID+1 !move hotspot2 x1, -1, unID, y1, 3 : unID=unID+1 !ref ! } ! { circle two hotspot2 0, y2, unID, x2, 1+128 : unID=unID+1 !base hotspot2 x2, y2, unID, x2, 2 : unID=unID+1 !move hotspot2 -1, y2, unID, x2, 3 : unID=unID+1 !ref hotspot2 x2, 0, unID, y2, 1+128 : unID=unID+1 !base hotspot2 x2, y2, unID, y2, 2 : unID=unID+1 !move hotspot2 x2, -1, unID, y2, 3 : unID=unID+1 !ref ! } ! First circle add2 x1, y1 rot2 -45 ! change the radius of the circle dynamically hotspot2 0, 0, unID, radius1, 1 : unID=unID+1 !base hotspot2 0, radius1, unID, radius1, 2 : unID=unID+1 !move hotspot2 0, -1, unID, radius1, 3 : unID=unID+1 !ref circle2 0, 0, radius1 ! there is a certain bug, that if you set the first hotarc2 with an angle of 360 ! it will only be set to 180° – thus you need to set to slightly less than a full circle hotarc2 0, 0, radius1, 0, 359.9, unID : unID=unID+1 del 2 ! Second circle add2 x2, y2 rot2 -45 ! change the radius of the circle dynamically hotspot2 0, 0, unID, radius2, 1 : unID=unID+1 !base hotspot2 0, radius2, unID, radius2, 2 : unID=unID+1 !move hotspot2 0, -1, unID, radius2, 3 : unID=unID+1 !ref circle2 0, 0, radius2 hotarc2 0, 0, radius2, 0, 359.9, unID : unID=unID+1 del 2 if bigger_circle.id = 1 then add2 x1, y1 else add2 x2, y2 endif ! Hotspots for the point where the tangent circle shall go through hotspot2 0, 0, unID, tangent_point, 6 : unID=unID+1 !mid hotspot2 bigger_circle.radius, 0, unID, tangent_point, 4+128 : unID=unID+1 !base rot2 tangent_point hotspot2 bigger_circle.radius, 0, unID, tangent_point, 5, res_radius, "Radius des tangierenden Kreises" : unID=unID+1 !mov del 2 if b_show_construction then pen pen_construction hotspot2 _inserted.point.x, _inserted.point.y circle2 tpt.center.x, tpt.center.y, smaller_circle.radius line2 smaller_circle.center.x, smaller_circle.center.y, _inserted.point.x, _inserted.point.y line2 centerCF.point.x, centerCF.point.y, tangentC.center.x, tangentC.center.y line2 bigger_circle.center.x, bigger_circle.center.y, tangentC.center.x, tangentC.center.y hotspot2 centerCF.point.x, centerCF.point.y hotspot2 tangentC.center.x, tangentC.center.y endif pen pen_circles circle2 tangentC.center.x, tangentC.center.y, tangentC.radius hotarc2 tangentC.center.x, tangentC.center.y, tangentC.radius, 0, 360, unID : unID=unID+1 \ No newline at end of file diff --git a/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/vl.gdl b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/vl.gdl new file mode 100644 index 0000000..eb817ae --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/Kreis tangential an 2 Kreise LX/scripts/vl.gdl @@ -0,0 +1 @@ +!--- param script ---! values "radius1" range (0,] values "radius2" range (0,] values "pen_circles" range [1,255] values "pen_construction" range [1,255] if not(b_show_construction) then hideparameter "pen_construction" endif res_radius = tangentC.radius parameters res_radius = res_radius lock "res_radius" \ No newline at end of file diff --git a/Objects/Kreis tangential an 2 Kreise LX/README.md b/Objects/Kreis tangential an 2 Kreise LX/README.md new file mode 100644 index 0000000..a52f33d --- /dev/null +++ b/Objects/Kreis tangential an 2 Kreise LX/README.md @@ -0,0 +1,12 @@ +--- +title: Kreis tangential an 2 Kreise LX +description: | + Erstellung eines Kreises, der tangential an zwei weiteren Kreisen liegt. +description_en: | + Draws a circle tangential to two other circles. +tags: 2D Helfer +version: 1.0 +compat: 24 +lang: de +dependency: BasicGeometry +--- diff --git "a/Objects/Linientypen\303\274bersicht/CHANGELOG.md" "b/Objects/Linientypen\303\274bersicht/CHANGELOG.md" new file mode 100644 index 0000000..4fa7e87 --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/CHANGELOG.md" @@ -0,0 +1,15 @@ +# Changelog +All notable changes to this object will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## Compatibility +Archicad 24 + +## [Unreleased] + +## [1.1] – 2020-12-26 +### Changed +- Lines are now selectable (via `hotline2`) diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht.gsm" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht.gsm" new file mode 100644 index 0000000..0df436f Binary files /dev/null and "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht.gsm" differ diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/ancestry.xml" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/ancestry.xml" new file mode 100644 index 0000000..58d1218 --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/ancestry.xml" @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + B176ABF1-5813-478F-926B-28EE7C5DC1F7 + diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/calledmacros.xml" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/calledmacros.xml" new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/calledmacros.xml" @@ -0,0 +1,3 @@ + + + diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/images/Picture_0.png" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/images/Picture_0.png" new file mode 100644 index 0000000..5beee29 Binary files /dev/null and "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/images/Picture_0.png" differ diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/libpartdata.xml" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/libpartdata.xml" new file mode 100644 index 0000000..e5090bd --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/libpartdata.xml" @@ -0,0 +1,19 @@ + + + + 9D8C5EF1-D277-4DEF-8C4A-9A13668B4C65 + true + false + Normal + false + + + + + + + + + + + diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/libpartdocs.xml" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/libpartdocs.xml" new file mode 100644 index 0000000..a4ba545 --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/libpartdocs.xml" @@ -0,0 +1,13 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/paramlist.xml" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/paramlist.xml" new file mode 100644 index 0000000..096e33f --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/paramlist.xml" @@ -0,0 +1,60 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 1 + + + + + 10 + + + + 1 + + + + 300 + + + + 3 + + + + 3 + + + + 0.4 + + + + + + + + 1 + + + + + + + diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/1d.gdl" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/1d.gdl" new file mode 100644 index 0000000..495f16a --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/1d.gdl" @@ -0,0 +1 @@ +!--- Master script ---! dict ltype !global consid = 1 ! consecutive id used as index ! we will brutforce our way through the list :) for i=1 to max_id r = request("Name_of_line_type", i, lt_name) if lt_name # "" then ! line type exists ltype.name[consid] = lt_name ! get the real index ltype.real_id[consid] = ind(line_type, lt_name) consid = consid+1 endif next i \ No newline at end of file diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/2d.gdl" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/2d.gdl" new file mode 100644 index 0000000..b641675 --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/2d.gdl" @@ -0,0 +1,138 @@ +!--- 2D script ---! + +n_total_lt = vardim1(ltype.real_id) ! causes warning in Master +unID = 1 +font_size = (dist/3)*1000/GLOB_SCALE + +define style "st1_headline" fontType, font_size*1.5, 7, 0 +set style "st1_headline" +pen pen_text +text2 0, dist+0.1, text_h1 + +define style{2} "st2_default" fontType, A*50/GLOB_SCALE, 1 +define style "st1_linetype" fontType, font_size, 4, 0 + + +if display_type = 1 then + gosub "Hline" +else + gosub "Polyform" +endif + +END ! --- END --- END --- END --- END --- END --- ! + + +! ------------------------------------------------------------------------ +"Hline": + set style "st1_linetype" + + ! -- Hotspots: + hotspot2 0, 0, unID : unID=unID+1 + hotspot2 0, -(n_total_lt-1) * dist, unID : unID=unID+1 + hotspot2 line_length, -(n_total_lt-1) * dist, unID : unID=unID+1 + + ! line width + hotspot2 0, 0, unID, line_length, 1 + 128 : unID=unID+1 + hotspot2 line_length, 0, unID, line_length, 2 : unID=unID+1 + hotspot2 -1, 0, unID, line_length, 3 : unID=unID+1 + + ! line distance (vertically) + hotspot2 line_length/2, 0, unID, dist, 1 + 128 : unID=unID+1 + hotspot2 line_length/2, -dist, unID, dist, 2 : unID=unID+1 + hotspot2 line_length/2, 1, unID, dist, 3 : unID=unID+1 + + + add2 line_length + dist, dist + text2 0, 0, "#ID | Linientyp-Name" + del 1 + + for i=1 to n_total_lt + hotspot2 0, 0, unID : unID=unID+1 + pen pen_text + add2 line_length + dist, 0 + text2 0, 0, str(ltype.real_id[i], 1,0) + " | " + ltype.name[i] + del 1 + + pen pen_lines + line_type ltype.real_id[i] + line2 0, 0, line_length, 0 + hotline2 0, 0, line_length, 0, unID : unID=unID+1 + add2 0, -dist + next i +return + +! ------------------------------------------------------------------------ +"Polyform": + set style "st2_default" + size = A + max_width = B + + ! -- Hotspots: + hotspot2 0, 0 + + ! size + hotspot2 0, 0, unID, A, 1 + 128 : unID=unID+1 + hotspot2 A, 0, unID, A, 2 : unID=unID+1 + hotspot2 -1,0, unID, A, 3 : unID=unID+1 + + ! max width + hotspot2 0, 0, unID, B, 1 + 128 : unID=unID+1 + hotspot2 B, 0, unID, B, 2 : unID=unID+1 + hotspot2 -1, 0, unID, B, 3 : unID=unID+1 + + ! dist + hotspot2 size, -size/2, unID, dist, 1 + 128 : unID=unID+1 + hotspot2 size+dist, -size/2, unID, dist, 2 : unID=unID+1 + hotspot2 -1, -size/2, unID, dist, 3 : unID=unID+1 + + ! polyform coordinates + szquart = size/4 + put 0, -size, 1, ! start at lower left + 0, -szquart, 1, + szquart, 0, 1001, + size, 0, 1, ! top right + size, -szquart, 1, + szquart, -szquart, 900, + szquart, -size, 3001, + -1, -1, 701 ! close + + poly_flag = 1+4 + cols = 0 + rows = 0 + + for i=1 to n_total_lt + pen pen_lines + line_type ltype.real_id[i] + + ! First let's test if we would go wider than the specified width + if i#1 and ((size + dist) * cols + size) > max_width then + del cols + cols = 0 + add2 0, -(size + dist) ! next row + rows = rows + 1 + endif + + poly2_ nsp/3, poly_flag, + use(nsp) + + + paragraph "lt_name" 2, 0, 0, 0, 1 + pen pen_text + str(ltype.real_id[i], 1,0) + "\n" + ltype.name[i] + endparagraph + textblock "textblock_lt_name" A*1000/GLOB_SCALE, 2, 0, 1, 1, 1, + "lt_name" + richtext2 size/2, -szquart, "textblock_lt_name" + + + add2 size + dist, 0 + cols = cols + 1 + next i + + del ntr() + + hotspot2 0, -(rows * (size + dist) + size) + hotspot2 max_width, -(rows * (size + dist) + size) +return diff --git "a/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/vl.gdl" "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/vl.gdl" new file mode 100644 index 0000000..4fdf804 --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/Linientypen\303\274bersicht/scripts/vl.gdl" @@ -0,0 +1 @@ +!--- Param script ---! if GLOB_MODPAR_NAME = "A" then line_length = A parameters line_length = line_length endif if GLOB_MODPAR_NAME = "line_length" then A = line_length parameters A = A endif values{2} "display_type", 1, "Horizontale Linien", 2, "Poly-Form" values "A" range [0.1,] values "B" range [A,] values "line_length" range [0.1,] values "max_id" 20, 50, 100, CUSTOM, range [1,] values "pen_lines" range [1,255] values "pen_text" range [1,255] if display_type = 1 then hideparameter "B" endif \ No newline at end of file diff --git "a/Objects/Linientypen\303\274bersicht/README.md" "b/Objects/Linientypen\303\274bersicht/README.md" new file mode 100644 index 0000000..3453f60 --- /dev/null +++ "b/Objects/Linientypen\303\274bersicht/README.md" @@ -0,0 +1,11 @@ +--- +title: Linientypenübersicht +description: | + Zur Anzeige aller im Projekt vorhandenen Linientypen. +description_en: | + Displays all linetypes in the project. +tags: 2D Helferlein BIM Audit +version: 1.0 +compat: 24 +lang: de +--- diff --git a/Objects/Locator LX/CHANGELOG.md b/Objects/Locator LX/CHANGELOG.md new file mode 100644 index 0000000..0b8b127 --- /dev/null +++ b/Objects/Locator LX/CHANGELOG.md @@ -0,0 +1,22 @@ +# Changelog +All notable changes to "Locator LX" will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## Compatibility +Archicad 23 + +## [Unreleased] + +## [1.1] – 2020-07-22 +### Added +- The surface material of the 3D object can now be chosen freely. + +### Fixed +- The ID text wasn't effected by the settings. +- Small problems are taken care of. + +## [1.0] – 2020-05-19 +First version of this object published. diff --git a/Objects/Locator LX/Locator LX.gsm b/Objects/Locator LX/Locator LX.gsm new file mode 100644 index 0000000..24462f1 Binary files /dev/null and b/Objects/Locator LX/Locator LX.gsm differ diff --git a/Objects/Locator LX/Locator LX/ancestry.xml b/Objects/Locator LX/Locator LX/ancestry.xml new file mode 100644 index 0000000..58d1218 --- /dev/null +++ b/Objects/Locator LX/Locator LX/ancestry.xml @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + B176ABF1-5813-478F-926B-28EE7C5DC1F7 + diff --git a/Objects/Locator LX/Locator LX/calledmacros.xml b/Objects/Locator LX/Locator LX/calledmacros.xml new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ b/Objects/Locator LX/Locator LX/calledmacros.xml @@ -0,0 +1,3 @@ + + + diff --git a/Objects/Locator LX/Locator LX/images/Picture_0.png b/Objects/Locator LX/Locator LX/images/Picture_0.png new file mode 100644 index 0000000..5034924 Binary files /dev/null and b/Objects/Locator LX/Locator LX/images/Picture_0.png differ diff --git a/Objects/Locator LX/Locator LX/libpartdata.xml b/Objects/Locator LX/Locator LX/libpartdata.xml new file mode 100644 index 0000000..3164781 --- /dev/null +++ b/Objects/Locator LX/Locator LX/libpartdata.xml @@ -0,0 +1,22 @@ + + + + B7C66ED3-28AA-4775-AD10-A14C6F8F24A0 + true + false + Normal + false + + + + + + + + + + + + + + diff --git a/Objects/Locator LX/Locator LX/libpartdocs.xml b/Objects/Locator LX/Locator LX/libpartdocs.xml new file mode 100644 index 0000000..fcb0414 --- /dev/null +++ b/Objects/Locator LX/Locator LX/libpartdocs.xml @@ -0,0 +1,20 @@ + + + + + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + diff --git a/Objects/Locator LX/Locator LX/paramlist.xml b/Objects/Locator LX/Locator LX/paramlist.xml new file mode 100644 index 0000000..9b0c38d --- /dev/null +++ b/Objects/Locator LX/Locator LX/paramlist.xml @@ -0,0 +1,485 @@ + + + + false + + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 0.5 + + + + + 0.5 + + + + + + + 0 + + + + + + <Description><![CDATA["Text"]]></Description> + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <Description><![CDATA["Display"]]></Description> + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 57 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 2 + + + + + + + 1 + + + + + + + 1 + + + + + + + 0 + + + + + + + 1 + + + + + + + 0.05 + + + + + + + 0 + + + + + + <Description><![CDATA["Font"]]></Description> + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + 1.5 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + <Description><![CDATA["Base Coordinates"]]></Description> + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + 1 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + + + + + + + + + 1 + + + + + + + + + 1 + + + + + + + + 0.125 + + + + + + + + 0.125 + + + diff --git a/Objects/Locator LX/Locator LX/scripts/1d.gdl b/Objects/Locator LX/Locator LX/scripts/1d.gdl new file mode 100644 index 0000000..7adc320 --- /dev/null +++ b/Objects/Locator LX/Locator LX/scripts/1d.gdl @@ -0,0 +1,59 @@ +! ––– MASTER script ––– ! +! Inspired by the work of Roberto Corona and Natalie McEvoy. +! TODO: +! - marker line, when text is far away from marker +! - 3d Text (XY plane | upright) +! - more 2d styles +! - frame w/ bg-fill in 2d for text w/ id as opt. headline +! - opt. link 2d and 3d symbol pen +! ---------------------------------------------------------------------- ! +dict OBJ + OBJ.NAME = "Locator LX" + OBJ.AUTHOR = "Lucas Becker" + OBJ.VERSION = "1.1" + OBJ.DATE = "2020-07-22" + OBJ.WEB = "https://runxel.xyz/archicad-objects" +! ---------------------------------------------------------------------- ! + +r = request("REFERENCE_LEVEL_DATA", "", level_name1, elev1, level_name2, elev2, level_name3, elev3, level_name4, elev4) + +dim ref_level_names[4], ref_level_values[4], ref_level_i[4] + +ref_level_names[1] = level_name1 : ref_level_values[1] = elev1 : ref_level_i[1] = 1 +ref_level_names[2] = level_name2 : ref_level_values[2] = elev2 : ref_level_i[2] = 2 +ref_level_names[3] = level_name3 : ref_level_values[3] = elev3 : ref_level_i[3] = 3 +ref_level_names[4] = level_name4 : ref_level_values[4] = elev4 : ref_level_i[4] = 4 + +if not(b_base_coor_custom) then + ! overwrite values + base_coor_x = 0 + base_coor_y = 0 +endif + +reference_height = ref_level_values[n_height_ref] + +xx = SYMB_POS_X + GLOB_WORLD_ORIGO_OFFSET_X + base_coor_x +yy = SYMB_POS_Y + GLOB_WORLD_ORIGO_OFFSET_Y + base_coor_y +zz = SYMB_POS_Z + reference_height + +parameters posX = xx, + posY = yy, + posZ = zz + + +! --- Font styles ------------------------------------------------------------ ! +stlye_x = 1*fontopt_bold_coor_x + 2*fontopt_italic_coor_x + 4*fontopt_underline_coor_x +define style "txt_style_coor_x_l" fontCoor, font_size_coor, 7, stlye_x +define style "txt_style_coor_x_r" fontCoor, font_size_coor, 9, stlye_x + +stlye_y = 1*fontopt_bold_coor_y + 2*fontopt_italic_coor_y + 4*fontopt_underline_coor_y +define style "txt_style_coor_y_l" fontCoor, font_size_coor, 7, stlye_y +define style "txt_style_coor_y_r" fontCoor, font_size_coor, 9, stlye_y + +stlye_z = 1*fontopt_bold_coor_z + 2*fontopt_italic_coor_z + 4*fontopt_underline_coor_z +define style "txt_style_coor_z_l" fontCoor, font_size_coor, 7, stlye_z +define style "txt_style_coor_z_r" fontCoor, font_size_coor, 9, stlye_z + +stlye_id = 1*fontopt_bold_id + 2*fontopt_italic_id + 4*fontopt_underline_id +define style "txt_style_id" fontId, font_size_id, 7, stlye_id + diff --git a/Objects/Locator LX/Locator LX/scripts/2d.gdl b/Objects/Locator LX/Locator LX/scripts/2d.gdl new file mode 100644 index 0000000..1a1916f --- /dev/null +++ b/Objects/Locator LX/Locator LX/scripts/2d.gdl @@ -0,0 +1,157 @@ +! ––– 2D script ––– ! + + +PAPER_TO_MODEL = GLOB_SCALE / 1000 + +rr = request ("View_Rotangle", "", ang_view_rotation) + +rs = request("Height_of_style", "txt_style_coor_x_l", text_height) +text_height = text_height * PAPER_TO_MODEL ! only used for 'add2' + + +if rr and b_disregard_viewrot then + rot2 -ang_view_rotation +endif + +! 2D symbol // we can define more possibilities later +gosub "Symb_Base" + +! text +gosub "Text2D" + +del ntr() + +END ! -- END -- END -- END -- END -- END -- END -- END -- END -- END -- ! +! ---------------------------------------------------------------------- ! + + +! ---------------------------------------------------------------------- ! +"Symb_Base": + pen pen_symbol2d + line2 -A/2, 0, A/2, 0 + line2 0, -B/2, 0, B/2 + hotspot2 0, 0, uID : uID=uID+1 + circle2 0, 0, 0.05 +return + + +! ---------------------------------------------------------------------- ! +"Text2D": + + tr_total = 0 + tr_y = 0 + + !! let the text be movable + ! horizontal + hotspot2 0, y_coor_text, uID, x_coor_text, 1+128 : uID=uID+1 !base + hotspot2 x_coor_text, y_coor_text, uID, x_coor_text, 2 : uID=uID+1 !move + hotspot2 -1, y_coor_text, uID, x_coor_text, 3 : uID=uID+1 !ref + ! vertical + hotspot2 x_coor_text, 0, uID, y_coor_text, 1+128 : uID=uID+1 !base + hotspot2 x_coor_text, y_coor_text, uID, y_coor_text, 2 : uID=uID+1 !move + hotspot2 x_coor_text, -1, uID, y_coor_text, 3 : uID=uID+1 !ref + + add2 x_coor_text, y_coor_text + tr_total=tr_total+1 + + ! alignment process + str_zz = str(zz, i_decimals+1, i_decimals) + str_yy = str(yy, i_decimals+1, i_decimals) + str_xx = str(xx, i_decimals+1, i_decimals) + + ! split strings + pos_sep_zz = strstr(str_zz, str_delimiter) + str_left_zz = strsub(str_zz, 0, pos_sep_zz-1) + str_right_zz = strsub(str_zz, pos_sep_zz, strlen(str_zz)) + + pos_sep_yy = strstr(str_yy, str_delimiter) + str_left_yy = strsub(str_yy, 0, pos_sep_yy-1) + str_right_yy = strsub(str_yy, pos_sep_yy, strlen(str_yy)) + + pos_sep_xx = strstr(str_xx, str_delimiter) + str_left_xx = strsub(str_xx, 0, pos_sep_xx-1) + str_right_xx = strsub(str_xx, pos_sep_xx, strlen(str_xx)) + + ! mitigate issue of no delimiter + if i_decimals < 1 then + str_left_zz = str_zz + str_right_zz = "" + + str_left_yy = str_yy + str_right_yy = "" + + str_left_xx = str_xx + str_right_xx = "" + endif + + ! calculate widths: + ! 'stw()' uses current style + style "txt_style_coor_z_l" + len_intpart_zz = stw(str_left_zz) + len_pre_zz = stw(custom_pre_z) + + style "txt_style_coor_y_l" + len_intpart_yy = stw(str_left_yy) + len_pre_yy = stw(custom_pre_y) + + style "txt_style_coor_x_l" + len_intpart_xx = stw(str_left_xx) + len_pre_xx = stw(custom_pre_x) + + + _gap = 1 + + if b_show_coor_z then + pre_max = max(len_pre_zz, len_pre_yy, len_pre_xx) + max_len = max(len_intpart_zz, len_intpart_yy, len_intpart_xx) + indent = (pre_max + _gap + max_len) * PAPER_TO_MODEL + else + pre_max = max(len_pre_yy, len_pre_xx) + max_len = max(len_intpart_yy, len_intpart_xx) + indent = (pre_max + _gap + max_len) * PAPER_TO_MODEL + endif + + + if b_show_coor_z then + ! Z coor + pen pen_text_coor_z + style "txt_style_coor_z_l" + text2 0, 0, custom_pre_z + style "txt_style_coor_z_r" + text2 indent, 0, str_left_zz + style "txt_style_coor_z_l" + text2 indent, 0, str_right_zz + custom_suf_z + + add2 0, text_height + tr_y=tr_y+1 + endif + + ! Y coor + pen pen_text_coor_y + style "txt_style_coor_y_l" + text2 0, 0, custom_pre_y + style "txt_style_coor_y_r" + text2 indent, 0, str_left_yy + style "txt_style_coor_y_l" + text2 indent, 0, str_right_yy + custom_suf_y + + add2 0, text_height + tr_y=tr_y+1 + + ! X coor + pen pen_text_coor_x + style "txt_style_coor_x_l" + text2 0, 0, custom_pre_x + style "txt_style_coor_x_r" + text2 indent, 0, str_left_xx + style "txt_style_coor_x_l" + text2 indent, 0, str_right_xx + custom_suf_x + + if b_show_locID then + add2 0, text_height + tr_y=tr_y+1 + pen pen_text_id + style "txt_style_id" + text2 0, 0, custom_pre_id + locID + custom_suf_id + endif +return diff --git a/Objects/Locator LX/Locator LX/scripts/3d.gdl b/Objects/Locator LX/Locator LX/scripts/3d.gdl new file mode 100644 index 0000000..3fa58db --- /dev/null +++ b/Objects/Locator LX/Locator LX/scripts/3d.gdl @@ -0,0 +1,61 @@ +! ––– 3D script ––– ! + + +if b_display3d then + + hotspot 0, 0, 0, uID + shadow off + pen pen_symbol3d + material gs_mat + + height = (A+B)/2 + + if b_show_lines3d then + gosub "Lines" + endif + + if type_symbol_3d = 1 then + resol 8 + gosub "Sphere" + else + resol 36 + if b_symb3d_cone_reverse then mulz -1 + gosub "Cone" + if b_symb3d_cone_reverse then del 1 + endif + + ! TODO: + ! gosub "Text3D" + +endif + +END ! -- END -- END -- END -- END -- END -- END -- END -- END -- END -- ! +! ---------------------------------------------------------------------- ! + +! ---------------------------------------------------------------------- ! +"Lines": + lin_ -A/2, 0, 0, A/2, 0, 0 + lin_ 0, -B/2, 0, 0, B/2, 0 + lin_ 0, 0, -height/2, 0, 0, height/2 +return + +! ---------------------------------------------------------------------- ! +! Small Sphere +"Sphere": + sphere symb3d_sphere_diam/2 +return + +! ---------------------------------------------------------------------- ! +! Cone +"Cone": + cone 0.35, 0, 0.15, 90, 90 +return + +! ---------------------------------------------------------------------- ! +"Text3D": + ! dummy ! + style "default_text_style" + pen 1 + material "mat" + text 0, 0, "text in 3d" +return diff --git a/Objects/Locator LX/Locator LX/scripts/ui.gdl b/Objects/Locator LX/Locator LX/scripts/ui.gdl new file mode 100644 index 0000000..3f7a39e --- /dev/null +++ b/Objects/Locator LX/Locator LX/scripts/ui.gdl @@ -0,0 +1,413 @@ +! ––– UI script ––– ! + +dict UI +UI.dialog.width = 555 +UI.dialog.height = 245 +UI.gap.x = 15 +UI.gap.y = 15 +UI.rowheight = 24 + +UI.in.height = 20 +UI.in.width = 130 +UI.in.bool.h = 22 +UI.in.bool.cell = 16 +UI.in.pen = 40 +UI.out.height = 16 + +o_d = 4 ! height difference of oufields + +ui_dialog `Locator LX Settings`, UI.dialog.width, UI.dialog.height +ui_current_page gs_ui_current_page + +! ---------------------------------------------------------------------- ! +TABID_ROOT = -1 +TABID_DISPLAY = 1 +TABID_STYLE = 2 +TABID_VIEW = 3 +TABID_INFO = 4 + +if TABID_DISPLAY > 0 then + ui_page TABID_DISPLAY, TABID_ROOT, `Text Display`, "uiTab_ZoneCustomText_hl(1)" + gosub "Page_Display" +endif + +if TABID_STYLE > 0 then + ui_page TABID_STYLE, TABID_ROOT, `Style`, "uiTab_2DRepr_hl(1)" + gosub "Page_Style" +endif + +if TABID_VIEW > 0 then + ui_page TABID_VIEW, TABID_ROOT, `View Options`, "uiTab_Silhouettes_hl(1)" + gosub "Page_View" +endif + +if TABID_INFO > 0 then + ui_page TABID_INFO, TABID_ROOT, `Info`, "ui_InfoIcon_hl(1)" + gosub "Page_Info" +endif + +file_dependence "uiTab_ZoneCustomText_hl(1)" +file_dependence "uiTab_2DRepr_hl(1)" +file_dependence "uiTab_Silhouettes_hl(1)" +file_dependence "ui_InfoIcon_hl(1)" + + +END ! -- END -- END -- END -- END -- END -- END -- END -- END -- END -- ! +! ---------------------------------------------------------------------- ! + + +! ---------------------------------------------------------------------- ! +"Page_Display": + + ! ---------------------------------------------------------------------- ! + UI.column.i = 4 + UI.column.width = (UI.dialog.width - (UI.gap.x * UI.column.i))/ UI.column.i + dim _colstart[] + _colstart[1] = 0 + for k = 2 to UI.column.i + p=k-1 + _colstart[k] = UI.column.width*p + UI.gap.x*p + next k + UI.column.start = _colstart + ! ---------------------------------------------------------------------- ! + + ui_style 0, 0 + UI.opt.greyout = 0 + if not(b_custom_text) then + UI.opt.greyout = 4 + endif + + ui_outfield `Prefix`, UI.column.start[2], UI.rowheight, UI.column.width, UI.out.height, 0+UI.opt.greyout + ui_outfield `Suffix`, UI.column.start[4], UI.rowheight, UI.column.width, UI.out.height, 0+UI.opt.greyout + + ! options + ui_infield{3} "b_custom_text", UI.column.start[3], UI.rowheight-4, UI.column.width, UI.in.bool.h, + 7, "", 2, + 1, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, + 1, `Custom Prefix/Suffix`, 0, + 2, `Custom Prefix/Suffix`, 1 + + ui_infield{3} "b_show_locID", 0, UI.rowheight*2, UI.column.width, UI.in.bool.h, + 7, "", 2, + 1, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, + 1, `Show Identifier`, 0, + 2, `Show Identifier`, 1 + + ui_infield{3} "b_show_coor_z", 0, UI.rowheight*5, UI.column.width, UI.in.bool.h, + 7, "", 2, + 1, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, + 1, `Show Z coordinate`, 0, + 2, `Show Z coordinate`, 1 + + ui_infield{3} "b_base_coor_custom", 0, UI.rowheight*7, 24, UI.in.bool.h, + 6, "", 2, + 1, 24, 24, UI.in.bool.cell, UI.in.bool.cell, + "ui_lock_closed_hl(1)", `Custom {0,0}`, 0, + "ui_lock_open_hl(1)", `Custom {0,0}`, 1 ui_tooltip `Click to unlock/lock` + + ui_outfield `Custom {0,0}`, 24+5, UI.rowheight*7+o_d, UI.column.width-29, UI.out.height, 0 + + ! inputs + if b_show_locID then + ui_infield "custom_pre_id", UI.column.start[2], UI.rowheight*2, UI.column.width, UI.in.height ui_tooltip `Custom Id prefix` + ui_infield "locID_sel", UI.column.start[3], UI.rowheight*2, UI.column.width, UI.in.height ui_tooltip `Identifier` + ui_infield "custom_suf_id", UI.column.start[4], UI.rowheight*2, UI.column.width, UI.in.height ui_tooltip `Custom Id suffix` + endif + + ui_infield "custom_pre_x", UI.column.start[2], UI.rowheight*3, UI.column.width, UI.in.height ui_tooltip `Prefix for X coor` + ui_infield "posX", UI.column.start[3], UI.rowheight*3, UI.column.width, UI.in.height ui_tooltip `X coor` + ui_infield "custom_suf_x", UI.column.start[4], UI.rowheight*3, UI.column.width, UI.in.height ui_tooltip `Suffix for X coor` + + ui_infield "custom_pre_y", UI.column.start[2], UI.rowheight*4, UI.column.width, UI.in.height ui_tooltip `Prefix for Y coor` + ui_infield "posY", UI.column.start[3], UI.rowheight*4, UI.column.width, UI.in.height ui_tooltip `Y coor` + ui_infield "custom_suf_y", UI.column.start[4], UI.rowheight*4, UI.column.width, UI.in.height ui_tooltip `Suffix for Y coor` + + if b_show_coor_z then + ui_infield "custom_pre_z", UI.column.start[2], UI.rowheight*5, UI.column.width, UI.in.height ui_tooltip `Prefix for Z coor` + ui_infield "posZ", UI.column.start[3], UI.rowheight*5, UI.column.width, UI.in.height ui_tooltip `Z coor` + ui_infield "custom_suf_z", UI.column.start[4], UI.rowheight*5, UI.column.width, UI.in.height ui_tooltip `Suffix for Z coor` + endif + + ! -------------------- ! + curr_sep_h = UI.rowheight*6+12 + ui_separator 0, curr_sep_h, UI.dialog.width, curr_sep_h + + short_w = 16 + short_d = short_w + 4 + + ui_outfield `X`, UI.column.start[2], UI.rowheight*7+o_d, short_w, UI.out.height, 0 + ui_infield "base_coor_x", UI.column.start[2]+short_d, UI.rowheight*7, UI.column.width-short_d, UI.in.height ui_tooltip `Archicad x=0 is...` + + ui_outfield `Y`, UI.column.start[3], UI.rowheight*7+o_d, short_w, UI.out.height, 0 + ui_infield "base_coor_y", UI.column.start[3]+short_d, UI.rowheight*7, UI.column.width-short_d, UI.in.height ui_tooltip `Archicad y=0 is...` + + if b_show_coor_z then + ui_outfield `Z`, UI.column.start[4], UI.rowheight*7+o_d, short_w, UI.out.height, 0 + ui_infield "n_height_ref", UI.column.start[4]+short_d, UI.rowheight*7, UI.column.width-short_d, UI.in.height ui_tooltip `Reference Level` + endif + + ! -------------------- ! + curr_sep_h = UI.rowheight*8+12 + ui_separator 0, curr_sep_h, UI.dialog.width, curr_sep_h + + ui_outfield `Decimals to display`, 0, UI.rowheight*9+o_d, UI.column.width, UI.out.height, 0 + ui_infield "i_decimals", UI.column.start[2], UI.rowheight*9, UI.column.width/3, UI.in.height ui_tooltip `The number of decimal places to display` + + ui_outfield `Decimal delimiter`, UI.column.start[3], UI.rowheight*9+o_d, UI.column.width, UI.out.height, 0 + ui_infield "str_delimiter", UI.column.start[4], UI.rowheight*9, UI.column.width/3, UI.in.height ui_tooltip `The delimiter of a number: Dot or Comma` + +return + + +! ---------------------------------------------------------------------- ! +"Page_Style": + + UI.column.i = 3 + UI.column.width = (UI.dialog.width - (UI.gap.x * UI.column.i))/ UI.column.i + dim _colstart[] + _colstart[1] = 50 + for k = 2 to UI.column.i + p=k-1 + _colstart[k] = UI.column.width*p + UI.gap.x*p + next k + UI.column.start = _colstart + ! ---------------------------------------------------------------------- ! + + ! ui pictures + ui_pict "ui_font_style_hl(1)", 0, UI.rowheight+2, 24, 17, 1 + ui_pict "ui_FontSize_hl(1)", 0, UI.rowheight*2+3, 27, 14, 1 + ui_pict "ui_text_pen_hl(1)", 0, UI.rowheight*5+2, 24, 17, 1 + ui_pict "ui_surface_hl(1)", 0, UI.rowheight*7+15,12, 17, 1 + + ui_style 0, 1 + ui_outfield `Coordinates`, UI.column.start[2], o_d, UI.column.width, UI.out.height + ui_outfield `Identifier`, UI.column.start[3]+35, o_d, UI.column.width, UI.out.height + + ui_outfield `Font`, UI.column.start[1], UI.rowheight+o_d, UI.column.width-UI.column.start[1], UI.out.height + ui_style 0, 0 + ui_infield "fontCoor", UI.column.start[2], UI.rowheight, UI.in.width, UI.in.height ui_tooltip `Font of the coordinates` + ui_infield{3} "b_link_font", UI.column.start[3]-20, UI.rowheight, 24, UI.in.bool.h, + 6, "", 2, + 1, 24, 24, UI.in.bool.cell, UI.in.bool.cell, + "ui_lock_open_hl(1)", "", 0, + "ui_lock_closed_hl(1)", "", 1 ui_tooltip `Link/unlink fonts` + ui_infield "fontId", UI.column.start[3]+35, UI.rowheight, UI.in.width, UI.in.height ui_tooltip `Font of the Identifier` + + ui_style 0, 1 + ui_outfield `Font size`, UI.column.start[1], UI.rowheight*2+o_d, UI.column.width/2, UI.out.height + ui_style 0, 0 + ui_infield "font_size_coor", UI.column.start[2], UI.rowheight*2, UI.column.width/3, UI.in.height + ui_infield{3} "b_link_size", UI.column.start[3]-20, UI.rowheight*2, 24, UI.in.bool.h, + 6, "", 2, + 1, 24, 24, UI.in.bool.cell, UI.in.bool.cell, + "ui_lock_open_hl(1)", "", 0, + "ui_lock_closed_hl(1)", "", 1 ui_tooltip `Link/unlink font sizes` + ui_infield "font_size_id", UI.column.start[3]+35, UI.rowheight*2, UI.column.width/3, UI.in.height + + ui_outfield `X coor`, UI.column.start[1]+20, UI.rowheight*3+o_d, 50, UI.out.height + ui_outfield `Y coor`, UI.column.start[1]+120, UI.rowheight*3+o_d, 50, UI.out.height + ui_outfield `Z coor`, UI.column.start[1]+220, UI.rowheight*3+o_d, 50, UI.out.height + + ! font options + opt_dist = 25 + dist = 100 + ui_infield{3} "fontopt_bold_coor_x", UI.column.start[1], UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_bold_hl(1)", "", 0, + "ui_bold_hl(1)", "", 1 + + ui_infield{3} "fontopt_italic_coor_x", UI.column.start[1]+opt_dist, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_italic_hl(1)", "", 0, + "ui_italic_hl(1)", "", 1 + + ui_infield{3} "fontopt_underline_coor_x", UI.column.start[1]+opt_dist*2, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_underline_hl(1)", "", 0, + "ui_underline_hl(1)", "", 1 + + ui_infield{3} "fontopt_bold_coor_y", UI.column.start[1]+dist, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_bold_hl(1)", "", 0, + "ui_bold_hl(1)", "", 1 + + ui_infield{3} "fontopt_italic_coor_y", UI.column.start[1]+dist+opt_dist, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_italic_hl(1)", "", 0, + "ui_italic_hl(1)", "", 1 + + ui_infield{3} "fontopt_underline_coor_y", UI.column.start[1]+dist+opt_dist*2, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_underline_hl(1)", "", 0, + "ui_underline_hl(1)", "", 1 + + ui_infield{3} "fontopt_bold_coor_z", UI.column.start[1]+dist*2, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_bold_hl(1)", "", 0, + "ui_bold_hl(1)", "", 1 + + ui_infield{3} "fontopt_italic_coor_z", UI.column.start[1]+dist*2+opt_dist, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_italic_hl(1)", "", 0, + "ui_italic_hl(1)", "", 1 + + ui_infield{3} "fontopt_underline_coor_z", UI.column.start[1]+dist*2+opt_dist*2, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_underline_hl(1)", "", 0, + "ui_underline_hl(1)", "", 1 + + ! font options for the Identifier + ui_infield{3} "fontopt_bold_id", UI.column.start[3]+20+35, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_bold_hl(1)", "", 0, + "ui_bold_hl(1)", "", 1 + + ui_infield{3} "fontopt_italic_id", UI.column.start[3]+20+opt_dist+35, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_italic_hl(1)", "", 0, + "ui_italic_hl(1)", "", 1 + + ui_infield{3} "fontopt_underline_id", UI.column.start[3]+20+opt_dist*2+35, UI.rowheight*4, 24, 24, + 6, "", 2, + 1, 16, 16, 16, 16, + "ui_underline_hl(1)", "", 0, + "ui_underline_hl(1)", "", 1 + + + ui_infield "pen_text_coor_x", UI.column.start[1]+18, UI.rowheight*5, UI.in.pen, UI.in.height + ui_infield "pen_text_coor_y", UI.column.start[1]+117, UI.rowheight*5, UI.in.pen, UI.in.height + ui_infield "pen_text_coor_z", UI.column.start[1]+216, UI.rowheight*5, UI.in.pen, UI.in.height + ui_infield{3} "b_link_pen", UI.column.start[3]-20, UI.rowheight*5, 24, UI.in.bool.h, + 6, "", 2, + 1, 24, 24, UI.in.bool.cell, UI.in.bool.cell, + "ui_lock_open_hl(1)", "", 0, + "ui_lock_closed_hl(1)", "", 1 ui_tooltip `Link/unlink pens` + ui_infield "pen_text_id", UI.column.start[3]+37+35, UI.rowheight*5, UI.in.pen, UI.in.height + + + ! -------------------- ! + curr_sep_h = UI.rowheight*6+12 + ui_separator 0, curr_sep_h, UI.dialog.width, curr_sep_h + + ui_style 0, 1 + ui_outfield `Symbol pen 2D`, UI.column.start[1], UI.rowheight*7+o_d, UI.column.width/2, UI.out.height + ui_infield "pen_symbol2d", UI.column.start[2], UI.rowheight*7, UI.in.pen, UI.in.height + + ui_outfield `Symbol pen 3D`, UI.column.start[1], UI.rowheight*8+o_d, UI.column.width/2, UI.out.height + ui_infield "pen_symbol3d", UI.column.start[2], UI.rowheight*8, UI.in.pen, UI.in.height + + ui_outfield `Surface`, UI.column.start[2]+UI.column.width/2, UI.rowheight*8+o_d, UI.column.width/2, UI.out.height + ui_infield "gs_mat", UI.column.start[3], UI.rowheight*8, UI.in.pen*3, UI.in.height +return + + +! ---------------------------------------------------------------------- ! +"Page_View": + + ! ---------------------------------------------------------------------- ! + UI.column.i = 2 + UI.column.width = (UI.dialog.width - (UI.gap.x * UI.column.i))/ UI.column.i + dim _colstart[] + _colstart[1] = 0 + for k = 2 to UI.column.i + p=k-1 + _colstart[k] = UI.column.width*p + UI.gap.x*p + next k + UI.column.start = _colstart + ! ---------------------------------------------------------------------- ! + UI.opt.greyout = 0 + if not(b_display3d) then + UI.opt.greyout = 4 + endif + ui_inset = 50 + + ui_style 0, 1 + + ui_infield{3} "b_disregard_viewrot", 0, UI.rowheight, UI.column.width, UI.in.bool.h, + 7, "", 2, + 1, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, + 1, `Disregard the rotation of the viewport`, 0, + 2, `Disregard the rotation of the viewport`, 1 + + ui_infield{3} "b_display3d", 0, UI.rowheight*2, UI.column.width, UI.in.bool.h, + 7, "", 2, + 1, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, + 1, `Show the Locator in 3D`, 0, + 2, `Show the Locator in 3D`, 1 + + ui_style 0, 0 + + ui_infield{3} "b_show_text3d", ui_inset, UI.rowheight*3, UI.column.width, UI.in.bool.h, + 7, "", 2, + 1, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, + 1, `Show the text in 3D`, 0, + 2, `Show the text in 3D`, 1 + + ui_infield{3} "b_show_lines3d", ui_inset, UI.rowheight*4, UI.column.width, UI.in.bool.h, + 7, "", 2, + 1, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, + 1, `Show the Locator lines in 3D`, 0, + 2, `Show the Locator lines in 3D`, 1 + + ui_outfield `3D symbol type`, ui_inset, UI.rowheight*5+o_d, 120, UI.out.height, 0+UI.opt.greyout + ui_infield "type_symbol_3d", ui_inset+120+5, UI.rowheight*5, 120, UI.in.height + + if type_symbol_3d = 1 then + ! sphere + ui_outfield `Diameter (3D)`, ui_inset, UI.rowheight*6+o_d, 120, UI.out.height, 0+UI.opt.greyout + ui_infield "symb3d_sphere_diam", ui_inset+120+5, UI.rowheight*6, 120, UI.in.height + else + ! cone + ui_infield{3} "b_symb3d_cone_reverse", ui_inset, UI.rowheight*6, UI.column.width, UI.in.bool.h, + 7, "", 2, + 1, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, UI.in.bool.cell, + 1, `Reverse cone`, 0, + 2, `Reverse cone`, 1 ui_tooltip `Determine if the cone will point downwards or upwards` + + endif + +return + + +! ---------------------------------------------------------------------- ! +"Page_Info": + + ! center alignment + txt_a = 2 + center = UI.dialog.width / 2 + out_w = UI.dialog.width - 300 + start_ = center - (out_w/2) + bt_w = 160 ! button width + box_x = 100 + box_h = UI.rowheight*6 + + ui_style 0, 0 + + str_info = "»" + OBJ.NAME + "«" + ` by ` + OBJ.AUTHOR + str_ver = "Version " + OBJ.VERSION + str_uptodate = `Object up-to-date?` + str_button = `Runxels's Archicad Library` + + ui_outfield str_info, start_, UI.rowheight+o_d, out_w, UI.out.height, txt_a + ui_outfield str_ver, start_, UI.rowheight*2+o_d, out_w, UI.out.height, txt_a + + ui_style 0, 2 + ui_outfield str_uptodate, start_, UI.rowheight*3.5+o_d, out_w, UI.out.height, txt_a + + ui_style 0, 0 + ui_button ui_link, str_button, center-(bt_w/2), UI.rowheight*4.5, bt_w, 22, 0, OBJ.WEB + + ui_separator box_x, UI.rowheight-5, UI.dialog.width-box_x, box_h + +return diff --git a/Objects/Locator LX/Locator LX/scripts/vl.gdl b/Objects/Locator LX/Locator LX/scripts/vl.gdl new file mode 100644 index 0000000..a3ec98b --- /dev/null +++ b/Objects/Locator LX/Locator LX/scripts/vl.gdl @@ -0,0 +1,145 @@ +! ––– PARAM script ––– ! + +values "gs_ui_current_page" 1, 2, 3, 4 + +dim fontNames[] +n = request("FONTNAMES_LIST", "", fontNames) +values "fontId" fontNames, custom +values "fontCoor" fontNames, custom + +! Identifier text +values "locID_sel" "Archicad ID", custom +if locID_sel = "Archicad ID" then + locID = GLOB_ID + parameters locID = locID +else + locID = locID_sel + parameters locID = locID +endif + +if not(b_show_locID) then + lock "locID_sel" +endif + + +values "A", range [0.1,] +values "B", range [0.1,] +values "i_decimals", range [0,9] +values "font_size_coor", range [0.2,] +values "font_size_id", range [0.2,] + +values "pen_symbol2d", range [1,255] +values "pen_symbol3d", range [1,255] +values "pen_text_id", range [1,255] +values "pen_text_coor_x", range [1,255] +values "pen_text_coor_z", range [1,255] +values "pen_text_coor_y", range [1,255] + +values "str_delimiter" ",", "." + + +lock "posX", "posY", "posZ" + +values "custom_pre_x" "X=", custom +values "custom_pre_y" "Y=", custom +values "custom_pre_z" "Z=", custom + +if not(b_custom_text) then + lock "custom_pre_id", "custom_pre_x", "custom_pre_y", "custom_pre_z", + "custom_suf_id", "custom_suf_x", "custom_suf_y", "custom_suf_z" +endif + + +if not(b_base_coor_custom) then + ! we don't write zero values back into the parameter, because we want the user + ! to have these data to persist + lock "base_coor_x", "base_coor_y" +endif + + +values{2} "n_height_ref", ref_level_i, ref_level_names + +values{2} "type_symbol_3d", 1, "Sphere", + 2, "Cone" + +if type_symbol_3d = 1 then + hideparameter "b_symb3d_cone_reverse" +else + hideparameter "symb3d_sphere_diam" +endif + + +if not(b_display3d) then + lock "b_show_text3d", + "b_show_lines3d", + "type_symbol_3d", + "symb3d_sphere_diam", + "b_symb3d_cone_reverse" +endif + + +! --> UI +hideparameter all + +! TODO: remove when feature implemented +lock "b_show_text3d" + + +! parameter linking +if b_link_font then + if GLOB_MODPAR_NAME = "fontId" then + fontCoor = fontId + parameters fontCoor = fontCoor + endif + if GLOB_MODPAR_NAME = "fontCoor" then + fontId = fontCoor + parameters fontId = fontId + endif +endif + +if b_link_size then + if GLOB_MODPAR_NAME = "font_size_coor" then + font_size_id = font_size_coor + parameters font_size_id = font_size_id + endif + if GLOB_MODPAR_NAME = "font_size_id" then + font_size_coor = font_size_id + parameters font_size_coor = font_size_coor + endif +endif + +if b_link_pen then + if GLOB_MODPAR_NAME = "pen_text_coor_x" then + pen_text_coor_y = pen_text_coor_x + pen_text_coor_z = pen_text_coor_x + pen_text_id = pen_text_coor_x + parameters pen_text_coor_y = pen_text_coor_y, + pen_text_coor_z = pen_text_coor_y, + pen_text_id = pen_text_id + endif + if GLOB_MODPAR_NAME = "pen_text_coor_y" then + pen_text_coor_x = pen_text_coor_y + pen_text_coor_z = pen_text_coor_y + pen_text_id = pen_text_coor_y + parameters pen_text_coor_x = pen_text_coor_x, + pen_text_coor_z = pen_text_coor_z, + pen_text_id = pen_text_id + endif + if GLOB_MODPAR_NAME = "pen_text_coor_z" then + pen_text_coor_x = pen_text_coor_z + pen_text_coor_y = pen_text_coor_z + pen_text_id = pen_text_coor_z + parameters pen_text_coor_x = pen_text_coor_x, + pen_text_coor_y = pen_text_coor_y, + pen_text_id = pen_text_id + endif + if GLOB_MODPAR_NAME = "pen_text_id" then + pen_text_coor_x = pen_text_id + pen_text_coor_y = pen_text_id + pen_text_coor_z = pen_text_id + parameters pen_text_coor_x = pen_text_coor_x, + pen_text_coor_y = pen_text_coor_y, + pen_text_coor_z = pen_text_coor_z + endif +endif + diff --git a/Objects/Locator LX/README.md b/Objects/Locator LX/README.md new file mode 100644 index 0000000..9cdb384 --- /dev/null +++ b/Objects/Locator LX/README.md @@ -0,0 +1,11 @@ +--- +title: Locator LX +description: | + Der 'Locator LX' dient dazu, die Koordinaten eines Punktes anzuzeigen. Kann auch in einer interaktiven Auswertung ausgewertet werden. +description_en: | + The 'Locator LX' displays the coordinates of a point. Can also be evaluated in an interactive schedule. +tags: 2d 3d Helferlein Auswertung +version: 1.1 +compat: 23 +lang: de +--- diff --git "a/Objects/Ma\303\237kettenschablone LX/CHANGELOG.md" "b/Objects/Ma\303\237kettenschablone LX/CHANGELOG.md" new file mode 100644 index 0000000..a94adcc --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/CHANGELOG.md" @@ -0,0 +1,20 @@ +# Changelog +All notable changes to this object will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## Compatibility +Archicad version 24 + +## [Unreleased] + +## [1.1] – 2020-12-13 +### Changed +- Instead of dedicated parameters we now use an array to store the dimension texts. + This means also that there is no limit of dimensions anymore. + +### Added +- UI (but just a `ui_listfield`) so the user can input to the array directly. +- The dimension texts can now have a back fill for better visibility in messy plans. diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX.gsm" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX.gsm" new file mode 100644 index 0000000..9d127f9 Binary files /dev/null and "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX.gsm" differ diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/ancestry.xml" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/ancestry.xml" new file mode 100644 index 0000000..58d1218 --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/ancestry.xml" @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + B176ABF1-5813-478F-926B-28EE7C5DC1F7 + diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/calledmacros.xml" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/calledmacros.xml" new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/calledmacros.xml" @@ -0,0 +1,3 @@ + + + diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/images/Picture_0.png" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/images/Picture_0.png" new file mode 100644 index 0000000..6c7789a Binary files /dev/null and "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/images/Picture_0.png" differ diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/libpartdata.xml" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/libpartdata.xml" new file mode 100644 index 0000000..73aa875 --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/libpartdata.xml" @@ -0,0 +1,21 @@ + + + + 180B6FE3-6614-4576-A830-E7E5DEE1933E + true + false + Normal + false + + + + + + + + + + + + + diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/libpartdocs.xml" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/libpartdocs.xml" new file mode 100644 index 0000000..25d9312 --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/libpartdocs.xml" @@ -0,0 +1,22 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/paramlist.xml" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/paramlist.xml" new file mode 100644 index 0000000..fe0b4b1 --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/paramlist.xml" @@ -0,0 +1,225 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 12 + + + + + 9 + + + + + + <Description><![CDATA["Allgemeine Einstellungen"]]></Description> + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + <Description><![CDATA["Einstellungen Maßketten"]]></Description> + + + + + + + 4 + + + + + + + 0.1 + + + + + + + 1 + + + + + + + + + 2 + 2 + 2 + 2 + + + + + + + + 2 + + + + + + + 0.6 + + + + + + + 0.6 + + + + + + + 0.6 + + + + + + + 0.6 + + + + + + + 0.6 + + + + + + <Description><![CDATA["Einstellungen Text"]]></Description> + + + + + + + + 1 + + + + + + + 3 + + + + + + + 2 + + + + + + + + + + + + + + 0 + + + + + + + 0 + + + + + + <Description><![CDATA["Maßkettenbeschriftung"]]></Description> + + + + + + + + + + + + + + + + + + + + + + diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/1d.gdl" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/1d.gdl" new file mode 100644 index 0000000..809ae91 --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/1d.gdl" @@ -0,0 +1,26 @@ +!--- Master script ---! + +! text anchor +dict TA + TA.top.left = 1 + TA.top.mid = 2 + TA.top.right = 3 + TA.mid.left = 4 + TA.mid.center = 5 + TA.mid.right = 6 + TA.bot.left = 7 + TA.bot.mid = 8 + TA.bot.right = 9 + +! text style +dict TS + TS.normal = 0 + TS.bold = 1 + TS.italic = 2 + TS.underlined = 4 + TS.sup = 32 + TS.sub = 64 + TS.strike = 128 + +model_to_paper = GLOB_SCALE/1000 + diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/2d.gdl" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/2d.gdl" new file mode 100644 index 0000000..00ef88f --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/2d.gdl" @@ -0,0 +1,195 @@ +!--- 2d script ---! + +fill GLOB_FILL_INDEX_SOLID +pen gs_cont_pen +! have a white pen ready +rrr = request("Pen_of_RGB", "1 1 1", _whitepen) + +! make the backfill slightly bigger than the text +bfill_large = 1 * model_to_paper + +uID = 1 + +if GLOB_CONTEXT # 8 then ! not layout + + define style "styleleft" font, font_size, TA.mid.left, font_style + define style "styleright" font, font_size, TA.mid.right, font_style + set style "styleleft" + + ! ::: Frame ::: + if build_contour then + gosub "Contour" + endif + + ! ::: Corner Points + if b_corner_pt then + gosub "Marker" + circle2 0, 0, 2*marker_size + add2 A, 0 + gosub "Marker" + circle2 0, 0, 2*marker_size + del 1 + add2 A, B + gosub "Marker" + circle2 0, 0, 2*marker_size + del 1 + add2 0, B + gosub "Marker" + circle2 0, 0, 2*marker_size + del 1 + + hotspot2 0, 0 + hotspot2 A, 0 + hotspot2 A, B + hotspot2 0, B + endif + + ! ::: Dimension Points ::: + ! `index` is the side, but stays at "1" if the dim-dim distance is set to "same" + ! `side` is the direction, either "A" or "B" + ! `type` determines if the text is left or right aligned+ + + ! :: top + ! (we start in lower left corner) + add2 0, B ! --{ transformation stack begin + index = 1 : side = A : gosub "Dim_Points" + type = 1 : gosub "Dim_Text" + del 1 + ! :: bottom + add2 A, 0 + rot2 180 + if b_dim_dist_same then index = 1 else index = 2 + side = A : gosub "Dim_Points" + type = -1 : gosub "Dim_Text" + del 2 + ! :: left + rot2 90 + if b_dim_dist_same then index = 1 else index = 3 + side = B : gosub "Dim_Points" + type = 1 : gosub "Dim_Text" + del 1 + ! :: right + add2 A, B + rot2 -90 + if b_dim_dist_same then index = 1 else index = 4 + side = B : gosub "Dim_Points" + type = -1 : gosub "Dim_Text" + del 2 ! --} tx stack end +else + text2 0, 0, "Bitte im Plan platzieren" +endif + +END ! -- END -- END -- END -- END -- END -- ! + +! ----------------------------------------------------------------- ! +"Dim_Points": +! Places the Dimensioning Points in the floor plan. +! input: index +! side + ! left hotspots; first is moveable + hs_x_coor = 0 + gosub "Hotspot_Movedim" + hs_x_coor = side + gosub "Hotspot_Movedim" + + add2 0, dim_dist[index] + gosub "Marker" + add2 side, 0 + gosub "Marker" + del 1 + ! Regular Hotspots + for i = 1 to n_dims-1 + add2 0, dim_dim_dist + gosub "Hotspot_Marker" + add2 side, 0 + gosub "Hotspot_Marker" + del 1 ! delete the move to the right + next i + + del n_dims ! --} delete the rest of the tx stack +return + + +! ----------------------------------------------------------------- ! +"Dim_Text": + if b_text then + add2 0, dim_dist[index] + for _idx = 1 to n_dims + if type < 0 then + ! reversed; bottom and right + rot2 180 + set style "styleright" + endif + ! gosub "Text" + str(_idx, 1, 0) + gosub "Text" + if type < 0 then + del 1 + set style "styleleft" + endif + add2 0, dim_dim_dist + next _idx + del n_dims+1 + endif +return + +"Text": + if dim_text[_idx] # "" then + add2 -dist_text * type, 0 + text2 0, 0, dim_text[_idx] + + if b_backfill then + ! make backfill so the text is better visible + _strw = stw(dim_text[_idx]) * model_to_paper + _strw = _strw + bfill_large + + rrr = request("Height_of_style", "styleright", _strh) + _strh = _strh * model_to_paper + bfill_large + + ! adjust to have the fill in the right place + add2 -type * bfill_large/2, (-_strh/2) + (0.5*model_to_paper) + mul2 type, 1 + poly2_b 5, 2+4, + _whitepen, -1, + 0, 0, 1, + 0, _strh, 1, + _strw, _strh, 1, + _strw, 0, 1, + 0, 0, -1 + del 2 + endif + del 1 + endif +return + +! ----------------------------------------------------------------- ! +"Hotspot_Movedim": + hotspot2 hs_x_coor, 0, uID, dim_dist[index], 1 + 128 : uID=uID+1 + hotspot2 hs_x_coor, dim_dist[index], uID, dim_dist[index], 2 : uID=uID+1 + hotspot2 hs_x_coor, -1, uID, dim_dist[index], 3 : uID=uID+1 +return + +! ----------------------------------------------------------------- ! +"Hotspot_Marker": + gosub "Marker" + hotspot2 0, 0 +return + +! ----------------------------------------------------------------- ! +"Marker": + if b_marker then + line2 -marker_size, -marker_size, marker_size, marker_size + line2 -marker_size, marker_size, marker_size, -marker_size + endif +return + +! ------------------------------Kontur Gebäude------------------------- ! +"Contour": + line2 0, 0, A, 0 + line2 0, 0, 0, B + line2 0, B, A, B + line2 A, 0, A, B + hotline2 0, 0, A, 0 + hotline2 0, 0, 0, B + hotline2 0, B, A, B + hotline2 A, 0, A, B +return \ No newline at end of file diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/ui.gdl" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/ui.gdl" new file mode 100644 index 0000000..e1d063d --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/ui.gdl" @@ -0,0 +1,52 @@ +!--- UI script ---! + +dict UI + UI.width = 444 + UI.height = 260 + UI.listID = 1 + +itemID = 1 + +ui_listfield UI.listID, 0, 0, UI.width, UI.height + +! --- General Settings +ui_listitem itemID, UI.listID, "", 0, "ui_select_all_hl(1)", `Allgemeine Einstellungen` : itemID=itemID+1 +ui_listitem itemID, UI.listID, "build_contour", 1, "" : itemID=itemID+1 +ui_listitem itemID, UI.listID, "b_corner_pt", 1, "" : itemID=itemID+1 +ui_listitem itemID, UI.listID, "b_text", 1, "" : itemID=itemID+1 +ui_listitem itemID, UI.listID, "b_marker", 1, "" : itemID=itemID+1 +ui_listitem itemID, UI.listID, "gs_cont_pen", 1, "ui_list_pencolor_hl(1)" : itemID=itemID+1 + file_dependence "ui_list_pencolor_hl(1)", "ui_select_all_hl(1)" + +! --- Settings Dimension lines +ui_listitem itemID, UI.listID, "", 0, "ui_horizontalSeparator_hl(1)", `Einstellungen Schablone` : itemID=itemID+1 +ui_listitem itemID, UI.listID, "n_dims", 1, "" : itemID=itemID+1 +ui_listitem itemID, UI.listID, "marker_size", 1, "" : itemID=itemID+1 +ui_listitem itemID, UI.listID, "b_dim_dist_same", 1, "" : itemID=itemID+1 +ui_listitem itemID, UI.listID, "dim_dist_generic", 1, "ui_list_thickness_hl(1)" : itemID=itemID+1 +if not(b_dim_dist_same) then + ui_listitem itemID, UI.listID, "dist_top", 1, "" : itemID=itemID+1 + ui_listitem itemID, UI.listID, "dist_bottom", 1, "" : itemID=itemID+1 + ui_listitem itemID, UI.listID, "dist_left", 1, "" : itemID=itemID+1 + ui_listitem itemID, UI.listID, "dist_right", 1, "" : itemID=itemID+1 +endif +ui_listitem itemID, UI.listID, "dim_dim_dist", 1, "" : itemID=itemID+1 + file_dependence "ui_list_thickness_hl(1)", "ui_horizontalSeparator_hl(1)" + +if b_text then + ! --- Settings Text + ui_listitem itemID, UI.listID, "", 0, "ui_bold_hl(1)", `Texteinstellungen` : itemID=itemID+1 + ui_listitem itemID, UI.listID, "dist_text", 1, "" : itemID=itemID+1 + ui_listitem itemID, UI.listID, "font", 1, "ui_font_style_hl(1)" : itemID=itemID+1 + ui_listitem itemID, UI.listID, "font_size", 1, "ui_FontSize_hl(1)" : itemID=itemID+1 + ui_listitem itemID, UI.listID, "font_style", 1, "ui_underline_hl(1)" : itemID=itemID+1 + ui_listitem itemID, UI.listID, "b_backfill", 1, "" : itemID=itemID+1 + file_dependence "ui_custom_text_hl(1)", "ui_font_style_hl(1)", "ui_FontSize_hl(1)", "ui_bold_hl(1)", "ui_underline_hl(1)" + + ! --- Settings Text + ui_listitem itemID, UI.listID, "", 0, "ui_custom_text_hl(1)", `Beschriftung` : itemID=itemID+1 + ui_listitem itemID, UI.listID, "dim_preset", 1, "" : itemID=itemID+1 + for k=1 to n_dims + ui_listitem{2} itemID, UI.listID, dim_text[k], 1, "", `Text Maßkette ` + str(k, 1, 0) : itemID=itemID+1 + next k +endif diff --git "a/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/vl.gdl" "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/vl.gdl" new file mode 100644 index 0000000..90559d9 --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/Ma\303\237kettenschablone LX/scripts/vl.gdl" @@ -0,0 +1,87 @@ +!--- Param script ---! + +hideparameter all + +! Get font list +dim fontnames[] +err = request("fontnames_list", "", fontnames) +values "font" fontnames, CUSTOM + +values{2} "font_style" \ + 0, "Normal", + TS.bold, "Fett", + TS.italic, "Kusiv", + TS.bold+TS.italic, "Fett Kursiv" + +values "gs_cont_pen" range [1,255] + +! ::: Number of Dimensions (Maßkettenanzahl) +values "n_dims", range [1,] + +if GLOB_MODPAR_NAME = "n_dims" then + ! temporary new array to make the existing one smaller + dim _tdt[] + for k=1 to n_dims + ! copy the existing values over, as long there are any + if k <= vardim1(dim_text) then + _tdt[k] = dim_text[k] + else + _tdt[k] = "" + endif + next k + dim_text = _tdt +endif +parameters dim_text = dim_text + +! ::: Define your presets here +values "dim_preset", "Typisch", custom + +if dim_preset = "Typisch" then + dim_text[1] = "[GDL Objekt editieren für eigene Liste]" + parameters dim_text = dim_text +endif + +! ::: Values for the dimension annotaion +dim dim_text_values[] + dim_text_values[1] = "Achsen" + dim_text_values[2] = "Öffnungen" + dim_text_values[3] = "Achse" + dim_text_values[4] = "Rohbau" + dim_text_values[5] = "Trockenbau" + dim_text_values[6] = "TGA" + +values "dim_text" dim_text_values, custom + +! ::: Values for the dimension +values{2} "pos_text", + 1, "Links", + 2, "Rechts" + + +values "marker_size", range[0.04, 1] + +if not(b_text) then + lock "__text_contents" +endif + +! ::: Make the dimension distance uniform. +if b_dim_dist_same then + _temp_dist = dim_dist[1] + for k = 1 to 4 + dim_dist[k] = _temp_dist + next k + parameters dim_dist = dim_dist, + dim_dist_generic = dim_dist[1] + + hideparameter "dist_top", + "dist_bottom", + "dist_left", + "dist_right" +else + hideparameter "dim_dist_generic" + parameters dist_top = dim_dist[1], + dist_bottom = dim_dist[2], + dist_left = dim_dist[3], + dist_right = dim_dist[4] +endif + diff --git "a/Objects/Ma\303\237kettenschablone LX/README.md" "b/Objects/Ma\303\237kettenschablone LX/README.md" new file mode 100644 index 0000000..a6fed8b --- /dev/null +++ "b/Objects/Ma\303\237kettenschablone LX/README.md" @@ -0,0 +1,11 @@ +--- +title: Maßkettenschablone LX +description: | + Schablone zur einfachen Platzierung von Maßketten der Außenbemaßung mit Beschriftung. +description_en: | + Guide to place dimensions easily. +tags: 2D Helferlein Bemaßung Beschriftung +version: 1.1 +compat: 24 +lang: de +--- diff --git a/Objects/Nummerierung/README.md b/Objects/Nummerierung/README.md new file mode 100644 index 0000000..2866204 --- /dev/null +++ b/Objects/Nummerierung/README.md @@ -0,0 +1,11 @@ +--- +title: Nummerierung +description: | + Zur schnellen, linearen Nummerierung im 2D. Unterstützter Output: numerisch (1, 2, 3, …), römisch (I, II, III, …) und Buchstaben (a, b, c, …). +description_en: | + Let's you quickly enumerate linearly in the floorplan. Has numeric (1, 2, 3, …), roman (I, II, III, …) und alpha (a, b, c, …) output. +tags: 2D Helferlein Beschriftung +version: 1.1 +compat: 23 +lang: de +--- diff --git a/Objects/Platzierschablone/Platzierschablone.gsm b/Objects/Platzierschablone/Platzierschablone.gsm new file mode 100644 index 0000000..c2c8abb Binary files /dev/null and b/Objects/Platzierschablone/Platzierschablone.gsm differ diff --git a/Objects/Platzierschablone/Platzierschablone/ancestry.xml b/Objects/Platzierschablone/Platzierschablone/ancestry.xml new file mode 100644 index 0000000..57015ab --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/ancestry.xml @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + diff --git a/Objects/Platzierschablone/Platzierschablone/calledmacros.xml b/Objects/Platzierschablone/Platzierschablone/calledmacros.xml new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/calledmacros.xml @@ -0,0 +1,3 @@ + + + diff --git a/Objects/Platzierschablone/Platzierschablone/images/Picture_0.png b/Objects/Platzierschablone/Platzierschablone/images/Picture_0.png new file mode 100644 index 0000000..d29216e Binary files /dev/null and b/Objects/Platzierschablone/Platzierschablone/images/Picture_0.png differ diff --git a/Objects/Platzierschablone/Platzierschablone/libpartdata.xml b/Objects/Platzierschablone/Platzierschablone/libpartdata.xml new file mode 100644 index 0000000..9cf85ab --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/libpartdata.xml @@ -0,0 +1,21 @@ + + + + DBDBF216-4F0C-43FC-95A7-0F223FB3D267 + true + false + Normal + false + + + + + + + + + + + + + diff --git a/Objects/Platzierschablone/Platzierschablone/libpartdocs.xml b/Objects/Platzierschablone/Platzierschablone/libpartdocs.xml new file mode 100644 index 0000000..54e2d76 --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/libpartdocs.xml @@ -0,0 +1,17 @@ + + + + Lucas Becker + + CC BY + 4.0 + + + + + + + + + + diff --git a/Objects/Platzierschablone/Platzierschablone/paramlist.xml b/Objects/Platzierschablone/Platzierschablone/paramlist.xml new file mode 100644 index 0000000..af2be58 --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/paramlist.xml @@ -0,0 +1,86 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 0 + + + + 1 + + + + 0 + + + + + + + 3 + + + + 0.1 + + + + 0.175 + + + diff --git a/Objects/Platzierschablone/Platzierschablone/scripts/1d.gdl b/Objects/Platzierschablone/Platzierschablone/scripts/1d.gdl new file mode 100644 index 0000000..0eb6fe8 --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/scripts/1d.gdl @@ -0,0 +1 @@ +!--- Master script ---! ! TODO: ! - number + gap given => width? ! - width + gap given => number? ! - nice UI ! - make endpoints Z movable in 3D _ptm = GLOB_SCALE / 1000 ! Paper to Model marker_size = min(A/5, 0.7) c_size = min(width_obj/3, gap, A/40, 0.25) ! Number of Objects + Width of Objects given gap_total = A - (n_obj * width_obj) gap = gap_total / (n_obj+1) parameters gap = gap \ No newline at end of file diff --git a/Objects/Platzierschablone/Platzierschablone/scripts/2d.gdl b/Objects/Platzierschablone/Platzierschablone/scripts/2d.gdl new file mode 100644 index 0000000..7399000 --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/scripts/2d.gdl @@ -0,0 +1 @@ +!--- 2d script ---! pen gs_pen if gap < 0 then text2 0, 0, "Oops!" else unID = 1 hotspot2 0, 0, unID, A, 1 : unID=unID+1 !base hotspot2 A, 0, unID, A, 2+256 : unID=unID+1 !move hotspot2 -1, 0, unID, A, 3 : unID=unID+1 ! ref ! circles around boundary hotspots circle2 0, 0, c_size circle2 A, 0, c_size line2 0, marker_size, 0, -marker_size line2 A, marker_size, A, -marker_size ! main "axis" line2 0, 0, A, 0 hotline2 0, 0, A, 0 for i = 1 to n_obj*2 if i % 2 then dist = gap else dist = width_obj add2 dist, 0 circle2 0, 0, c_size line2 0, marker_size/3, 0, -marker_size/3 hotspot2 0, 0, unID : unID=unID+1 next i endif \ No newline at end of file diff --git a/Objects/Platzierschablone/Platzierschablone/scripts/3d.gdl b/Objects/Platzierschablone/Platzierschablone/scripts/3d.gdl new file mode 100644 index 0000000..deed90a --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/scripts/3d.gdl @@ -0,0 +1 @@ +!--- 3d script ---! pen gs_pen shadow off model wire if gap > 0 and b_3d then unID = 1 hotspot 0, 0, 0, unID, A, 1 : unID=unID+1 !base hotspot A, 0, 0, unID, A, 2+256 : unID=unID+1 !move hotspot -1, 0, 0, unID, A, 3 : unID=unID+1 ! ref ! circles around boundary hotspots circle c_size addx A circle c_size del 1 lin_ 0, marker_size, 0, 0, -marker_size, 0 lin_ A, marker_size, 0, A, -marker_size, 0 ! main "axis" lin_ 0, 0, 0, A, 0, 0 hotline 0, 0, 0, A, 0, 0, unID : unID=unID+1 for i = 1 to n_obj*2 if i % 2 then dist = gap else dist = width_obj addx dist circle c_size lin_ 0, marker_size/3, 0, 0, -marker_size/3, 0 hotspot 0, 0, 0, unID : unID=unID+1 next i endif \ No newline at end of file diff --git a/Objects/Platzierschablone/Platzierschablone/scripts/vl.gdl b/Objects/Platzierschablone/Platzierschablone/scripts/vl.gdl new file mode 100644 index 0000000..a24bb77 --- /dev/null +++ b/Objects/Platzierschablone/Platzierschablone/scripts/vl.gdl @@ -0,0 +1 @@ +!--- Param script ---! values "gs_pen" range [1, 255] values "n_obj" range [1,] \ No newline at end of file diff --git a/Objects/Platzierschablone/README.md b/Objects/Platzierschablone/README.md new file mode 100644 index 0000000..6dcfb49 --- /dev/null +++ b/Objects/Platzierschablone/README.md @@ -0,0 +1,11 @@ +--- +title: Platzierschablone +description: | + Helferchen für Platzierung von Objekten mit Abstand nach außen. +description_en: | + Helping guide for placement. +tags: 2D Helferlein Zeichnung +version: 1.0 +compat: 24 +lang: de +--- diff --git a/Objects/Polygon/README.md b/Objects/Polygon/README.md new file mode 100644 index 0000000..eecb7e2 --- /dev/null +++ b/Objects/Polygon/README.md @@ -0,0 +1,11 @@ +--- +title: Polygon +description: | + Regelmäßiges, in einen Kreis eingeschriebenes Polygon mit 3–360 Ecken. +description_en: | + A regular polygon inscribed in a circle with 3–360 vertices. +tags: 2D Helferlein Zeichnung +version: 1.1 +compat: 23 +lang: de +--- diff --git a/Objects/Profilierte Setzstufe LX23/README.md b/Objects/Profilierte Setzstufe LX23/README.md new file mode 100644 index 0000000..232e921 --- /dev/null +++ b/Objects/Profilierte Setzstufe LX23/README.md @@ -0,0 +1,11 @@ +--- +title: Profilierte Setzstufe LX23 +description: | + Modifikation der 'Profilierten Setzstufe 23' von Graphisoft. Man kann nun zum einen das Setzstufenprofil auf die Höhe der Setzstufe strecken, sodass man bei Änderungen nicht unbedingt stets auch das Profil anpassen muss. Zum anderen ist es nun möglich Löcher in Lauflinienrichtung in die Setzstufe zu schneiden. Das Objekt bietet dabei viele Anpassungsmöglichkeiten. +description_en: | + Modifiction of the 'Profiled Riser 23', provided by Graphisoft. You are now able to stretch the profile to fit the riser height. Also it is possible to cut holes orthogonally with many settings to customize. +tags: 3D Profile Treppe Stufe +version: 1.1 +compat: 23 +lang: de en +--- diff --git a/Objects/Rollstuhlgerecht/README.md b/Objects/Rollstuhlgerecht/README.md new file mode 100644 index 0000000..7cfed2a --- /dev/null +++ b/Objects/Rollstuhlgerecht/README.md @@ -0,0 +1,11 @@ +--- +title: Rollstuhlgerecht +description: | + Zur Überprüfung von Bewegungsflächen und des Wendekreises eines Rollstuhlfahrers. +description_en: | + For checking of turning circle of wheelchair users. +tags: 2D Helferlein Rechtliches +version: 1.0 +compat: 22 +lang: de +--- diff --git "a/Objects/Schraffur\303\274bersicht/README.md" "b/Objects/Schraffur\303\274bersicht/README.md" new file mode 100644 index 0000000..22f7401 --- /dev/null +++ "b/Objects/Schraffur\303\274bersicht/README.md" @@ -0,0 +1,11 @@ +--- +title: Schraffurübersicht +description: | + Darstellung aller im Projekt verwendeten Schraffuren im Grundriss. +description_en: | + Displays all fills in the current project. +tags: 2D Helferlein Druck BIM Audit +version: 1.0 +compat: 24 +lang: de +--- diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht.gsm" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht.gsm" new file mode 100644 index 0000000..ae24629 Binary files /dev/null and "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht.gsm" differ diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/ancestry.xml" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/ancestry.xml" new file mode 100644 index 0000000..58d1218 --- /dev/null +++ "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/ancestry.xml" @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + B176ABF1-5813-478F-926B-28EE7C5DC1F7 + diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/calledmacros.xml" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/calledmacros.xml" new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/calledmacros.xml" @@ -0,0 +1,3 @@ + + + diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/images/Picture_0.png" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/images/Picture_0.png" new file mode 100644 index 0000000..693c0a7 Binary files /dev/null and "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/images/Picture_0.png" differ diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/libpartdata.xml" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/libpartdata.xml" new file mode 100644 index 0000000..2e2f1a6 --- /dev/null +++ "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/libpartdata.xml" @@ -0,0 +1,19 @@ + + + + B30A23C4-C9D7-4502-8171-31DD49BD5024 + true + false + Normal + false + + + + + + + + + + + diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/libpartdocs.xml" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/libpartdocs.xml" new file mode 100644 index 0000000..477f36b --- /dev/null +++ "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/libpartdocs.xml" @@ -0,0 +1,22 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/paramlist.xml" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/paramlist.xml" new file mode 100644 index 0000000..709e574 --- /dev/null +++ "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/paramlist.xml" @@ -0,0 +1,78 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 0.3 + + + + + 15.1 + + + + 0.3 + + + + 0.3 + + + + + + + + + + + 300 + + + + 15.1 + + + + + + + + 20 + + + + 1 + + + + + + + 1 + + + + 1 + + + + 0 + + + diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/scripts/2d.gdl" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/scripts/2d.gdl" new file mode 100644 index 0000000..6675814 --- /dev/null +++ "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/scripts/2d.gdl" @@ -0,0 +1 @@ +!--- 2D script ---! dict fill_ consid = 0 ! consecutive id used as index for fill array for i=1 to max_id ! Check the Fill at the current index ! "Brutforcing" to get a list of all Fills r = request ("Name_of_fill", i, fill_name) if r then ! Fill exists consid = consid+1 fill_.name[consid] = fill_name ! get the real index real_id = ind(FILL, fill_name) fill_.real_id[consid] = real_id endif next i n_total_bmat = consid line_type lt_basic ! Volllinie define style "st1_headline" fontType, 1, 7, 0 set style "st1_headline" pen pen_text text2 0, size+0.3, text_h1 define style{2} "st2_default" fontType, size*0.05, 1 set style "st2_default" if gs_cont_pen = 0 then gs_cont_pen = 1 _cont = 0 else _cont = 1 endif poly_flag = _cont*1+2+4+64 cols = 0 rows = 0 ! Place the actual fills for i=1 to n_total_bmat pen gs_cont_pen fill fill_.real_id[i] ! First let's test if we would go wider than the specified width if i#1 and ((size + dist) * cols + size) > max_width then del cols cols = 0 add2 0, -(size + dist) ! next row rows = rows + 1 endif poly2_b{2} 5, poly_flag, foreground_pen, background_pen, 0, 0, 0, !fill loc 0, 0, 33, 0, size, 33, size, size, 33, size, 0, 33, 0, 0, 33 ! Using richtext here, so we can limit the size of the text box ! thus no names will flow out of their fills paragraph "prg_fill_name" 2, 0, 0, 0, 1 pen pen_text str(fill_.real_id[i], 1, 0) "\n" fill_.name[i] endparagraph textblock "txtblock_fill_name" size-0.02, 2, 0, 1, 1.1, 0, "prg_fill_name" rr = request("Textblock_info", "txtblock_fill_name", tb_width, tb_width) if GLOB_CONTEXT = 2 then ! we don't want a cluttered preview richtext2 size/2, size+tb_width+0.035*size, "txtblock_fill_name" endif add2 size + dist, 0 cols = cols + 1 next i del ntr() ! -- Hotspots: hotspot2 0, size hotspot2 max_width, size hotspot2 0, -rows * (size + dist) ! max_width adjusting hotspot2 0, size, 201, max_width, 1+128 !base hotspot2 max_width, size, 202, max_width, 2 !mov hotspot2 -1, size, 203, max_width, 3 !ref ! size hotspot2 0, 0, 204, size, 1+128 !base hotspot2 size, 0, 205, size, 2 !mov hotspot2 -1, 0, 206, size, 3 !ref \ No newline at end of file diff --git "a/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/scripts/vl.gdl" "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/scripts/vl.gdl" new file mode 100644 index 0000000..331f565 --- /dev/null +++ "b/Objects/Schraffur\303\274bersicht/Schraffur\303\274bersicht/scripts/vl.gdl" @@ -0,0 +1 @@ +!--- Param script ---! A = size B = max_width parameters A = A, B = B values "dist" range [0,] values "max_id" 100, 200, 300, 400, 500, custom, range [1,] values "max_width" range (size,] values "pen_text" range [1,255] values "gs_cont_pen" range [0,255] values "foreground_pen" range [1,255] \ No newline at end of file diff --git a/Objects/Simple Panel LX24/CHANGELOG.md b/Objects/Simple Panel LX24/CHANGELOG.md new file mode 100644 index 0000000..b9146cf --- /dev/null +++ b/Objects/Simple Panel LX24/CHANGELOG.md @@ -0,0 +1,13 @@ +# Changelog +All notable changes to this object will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## Compatibility +Archicad version 24 + +## [Unreleased] + +## [1.1] – 2020-12-15 diff --git a/Objects/Simple Panel LX24/README.md b/Objects/Simple Panel LX24/README.md new file mode 100644 index 0000000..d7025cd --- /dev/null +++ b/Objects/Simple Panel LX24/README.md @@ -0,0 +1,11 @@ +--- +title: Simple Panel LX24 +description: | + Modifikation des "Integrierten Fassadenpaneels" von Graphisoft. Im Grundriss werden Symbolschraffuren des verwendeten Baustofft jetzt richtig skaliert. Außerdem kann das Paneel von der Referenzlinie geoffsetet werden. +description_en: | + Modification of the "Integrated Curtain Wall Panel" by Graphisoft. Fills are now correctly scaled in plan. Furthermore the panel can be offsetted from the reference line. +tags: 3D Fassade Paneel +version: 1.1 +compat: 24 +lang: de en +--- diff --git a/Objects/Simple Panel LX24/Simple Panel LX24.gsm b/Objects/Simple Panel LX24/Simple Panel LX24.gsm new file mode 100644 index 0000000..d7320e4 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24.gsm differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/ancestry.xml b/Objects/Simple Panel LX24/Simple Panel LX24/ancestry.xml new file mode 100644 index 0000000..fd6fc41 --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/ancestry.xml @@ -0,0 +1,8 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + 784EAEA1-5041-4AA6-B6F4-EF263A891EE7 + AAB48AEB-4682-4E5A-8DE5-8AEA7FF52A61 + E38AD1B0-67AD-4F5D-A5FB-FB1EE46E66A6 + diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/calledmacros.xml b/Objects/Simple Panel LX24/Simple Panel LX24/calledmacros.xml new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/calledmacros.xml @@ -0,0 +1,3 @@ + + + diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_1.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_1.tiff new file mode 100644 index 0000000..9747be4 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_1.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_2.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_2.tiff new file mode 100644 index 0000000..783fee2 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_2.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_3.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_3.tiff new file mode 100644 index 0000000..039fd08 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_3.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_4.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_4.tiff new file mode 100644 index 0000000..8a2c2ca Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_4.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_5.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_5.tiff new file mode 100644 index 0000000..b956e03 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_5.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_6.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_6.tiff new file mode 100644 index 0000000..8865f27 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_6.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_7.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_7.tiff new file mode 100644 index 0000000..378d553 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_7.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_8.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_8.tiff new file mode 100644 index 0000000..0a0a800 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_8.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_9.tiff b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_9.tiff new file mode 100644 index 0000000..672f51a Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/GDLPict_9.tiff differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/images/Picture_0.png b/Objects/Simple Panel LX24/Simple Panel LX24/images/Picture_0.png new file mode 100644 index 0000000..23c22f5 Binary files /dev/null and b/Objects/Simple Panel LX24/Simple Panel LX24/images/Picture_0.png differ diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/libpartdata.xml b/Objects/Simple Panel LX24/Simple Panel LX24/libpartdata.xml new file mode 100644 index 0000000..99fce08 --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/libpartdata.xml @@ -0,0 +1,31 @@ + + + + DFF4925B-A067-4FD7-B542-2A0AA169EEC5 + true + false + Normal + false + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/libpartdocs.xml b/Objects/Simple Panel LX24/Simple Panel LX24/libpartdocs.xml new file mode 100644 index 0000000..40933bb --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/libpartdocs.xml @@ -0,0 +1,22 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/paramlist.xml b/Objects/Simple Panel LX24/Simple Panel LX24/paramlist.xml new file mode 100644 index 0000000..0956b57 --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/paramlist.xml @@ -0,0 +1,505 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 0 + + + + + + + + 0 + + + + + + + + 0 + + + + + + + + + -0.02 + -0.02 + 1.02 + -0.02 + 1.02 + 2.12 + -0.02 + 2.12 + + + + + + + + + + -0.015 + -0.015 + 1.015 + -0.015 + 1.015 + 2.115 + -0.015 + 2.115 + + + + + + + + + + 0 + 0 + 1 + 0 + 1 + 2.1 + 0 + 2.1 + + + + + + + + + 0.1 + + + + + + + + 0 + + + + + + + + 0.1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 2.1 + + + + + + + + 2.1 + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + <Description><![CDATA["2D-Darstellung"]]></Description> + <Fix/> + + + + + + + + + 2 + + + + + + + + + 65 + + + + + + + + + 19 + + + + + + + + + 19 + + + + + + <Description><![CDATA["3D-Darstellung"]]></Description> + + + + + + + 2 + + + + + + + 1 + + + + + + + 2 + + + + + + + 117 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + + 1 + + + + + + + 24 + + + + + + + 24 + + + + + + + 24 + + + + + + + + 0 + + + + + + + + 0 + + + + 0 + + + + + + <Description><![CDATA["DWG Export Parameter"]]></Description> + <Fix/> + <Flags> + <ParFlg_Hidden/> + </Flags> + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/scripts/1d.gdl b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/1d.gdl new file mode 100644 index 0000000..07e7c44 --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/1d.gdl @@ -0,0 +1,56 @@ +!--- Master script ---! + +dict UI + +eps = 0.0001 + +! const values for GLOB_MVO_CWPANEL_DETLEVEL +DETLEVEL3D_SCHEMATIC = 2 +DETLEVEL3D_SIMPLE = 3 +DETLEVEL3D_DETAILED = 4 + +nCorners = vardim1(AC_PanelCoords) + +! const values for iLastModSurf +SURF_OUTSIDE = 1 +SURF_EDGE = 2 +SURF_INSIDE = 3 + + +! Determine the Language of the user +! see https://lucasbecker.de/posts/detecting-user-s-language-via-gdl + +! declare all the variables we need +_dummy = "" ! only made so it can be ignored… +pos = "" +nodename = "" +nodevalue = "" +nodetype = "" +err = 0 : errex = "" + +ch = open('xml', 'ARCHICAD Library.version', 'rl') +r = input(ch, "NewPositionDesc", _dummy, pos) +r = input(ch, "MoveToNode FromFirstChild g* ELEM 1", pos, nodename, nodevalue, nodetype) +r = input(ch, "MoveToNode FromFirstChild * TXT", pos, nodename, nodevalue, nodetype) +e = input(ch, "GetLastError", _dummy, err, errex) +close ch + +if err = 0 then + if nodevalue = "GER" |\ + nodevalue = "CHE" |\ + nodevalue = "AUT" \ + then + + UI.lang = "GER" + else + goto "g_set_lang" + endif +else + if debug then + ! error message + print errex + endif + "g_set_lang": + UI.lang = "ENG" +endif + diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/scripts/2d.gdl b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/2d.gdl new file mode 100644 index 0000000..832d675 --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/2d.gdl @@ -0,0 +1 @@ +!--- 2D script ---! ! CW Transformation leftClamp_X = AC_PanelCoords[1][1] rightClamp_X = AC_PanelCoords[1][1] for i = 1 to nCorners if AC_PanelCoords[i][1] < leftClamp_X then leftClamp_X = AC_PanelCoords[i][1] if AC_PanelCoords[i][1] > rightClamp_X then rightClamp_X = AC_PanelCoords[i][1] next i if abs (a) < EPS then end if abs (rightClamp_X - leftClamp_X) > EPS then tranWidth = a / (rightClamp_X - leftClamp_X) else tranWidth = 1 endif if not(ac_originIsFrameCenter) then ! correction when sometimes origin is not in frameCenter tranX = leftClamp_X else tranX = 0 endif _yDistort = 1 if abs(CWPANEL_VERTICAL_DIRECTION) > EPS then _yDistort = 1 / sin(CWPANEL_VERTICAL_DIRECTION) ! Distort Panel Thickness in case of slanted CW endif mul2 tranWidth, -_yDistort add2 -tranX, 0 ! --- cutfill attributes --- ! Initialize attributes _fillPanel = SYMB_FILL _penFgPanel = SYMB_FILL_PEN _penBgPanel = SYMB_FBGD_PEN bSucceed = request{2}("Building_Material_info", panelBMat, "gs_bmat_cutfill_properties", _fillPanel, _penFgPanel, _penBgPanel) pen penCut line_type lineTypeCut if GLOB_MVO_CWPANEL_DETLEVEL = DETLEVEL3D_SCHEMATIC then ! Reset sizes only in 2D Schematic model generation nCorners_in = vardim1 (AC_FrameAxisCoords) leftSide_X = AC_FrameAxisCoords[1][1] rightSide_X = AC_FrameAxisCoords[1][1] for i = 1 to nCorners_in if AC_FrameAxisCoords[i][1] < leftSide_X then leftSide_X = AC_FrameAxisCoords[i][1] if AC_FrameAxisCoords[i][1] > rightSide_X then rightSide_X = AC_FrameAxisCoords[i][1] next i line2 leftSide_X, 0, rightSide_X, 0 else ! DETLEVEL3D_SIMPLE, DETLEVEL3D_DETAILED ! No Detailed/Middle Symbol if panel is only in frame clamps if vardim1(AC_PanelCoords) < 3 then end add2 0, ac_thickness - panel_offset ! + AC_clampWidth/2 fill _fillPanel flag = 8+32+64 put leftClamp_X, 0, 1, rightClamp_X, 0, 1, rightClamp_X, -ac_thickness, 1, leftClamp_X, -ac_thickness, 1, leftClamp_X, 0, -1 poly2_b{5} nsp/3, 1+2+32, 1, flag, _penFgPanel, _penBgPanel, 0, 0, ! origos 1, 0, 0, ac_thickness, 0, get(nsp) del 1 endif end \ No newline at end of file diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/scripts/3d.gdl b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/3d.gdl new file mode 100644 index 0000000..887d097 --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/3d.gdl @@ -0,0 +1,57 @@ +!--- 3D script ---! + +! Set Surfaces +_matPanel = outsideSurface +bSucceed = request{2}("Building_Material_info", panelBMat, "gs_bmat_surface", _matPanel) +if bOverrideOutSurf then + _outsideSurface = outsideSurface +else + _outsideSurface = _matPanel +endif +if bOverrideEdgeSurf then + _edgeSurface = edgeSurface +else + _edgeSurface = _matPanel +endif +if bOverrideInSurf then + _insideSurface = insideSurface +else + _insideSurface = _matPanel +endif + +pen penUnCut +sect_attrs{2} penCut, lineTypeCut +building_material panelBMat +material _matPanel + +base +if GLOB_MVO_CWPANEL_DETLEVEL = DETLEVEL3D_SCHEMATIC then + for i = 1 to vardim1(AC_FrameAxisCoords) + put AC_FrameAxisCoords[i][1], AC_FrameAxisCoords[i][2], 0, 15 + next i + + material _outsideSurface + plane_ nsp/4, + get (nsp) +else ! DETLEVEL3D_DETAILED, DETLEVEL3D_SIMPLE + ! No Detailed/Middle Model if panel is only in frame clamps + if vardim1(AC_PanelCoords) < 3 then end + + ! Panel coords with clamps + for i = 1 to nCorners + put AC_PanelCoords[i][1], AC_PanelCoords [i][2], 15 + next i + + addz -ac_thickness + panel_offset + cprism_ _outsideSurface, _insideSurface, _edgeSurface, + nCorners, ac_thickness, + get (nsp) + del 1 +endif + +vert 0, 0, 0 +vert 1, 0, 0 +vert 0, 1, 0 +vert 0, 0, 1 +coor 2, -1, -2, -3, -4 +body 1 diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/scripts/ui.gdl b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/ui.gdl new file mode 100644 index 0000000..8ac0fef --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/ui.gdl @@ -0,0 +1 @@ +!--- UI script --! dict TLX_DE, TLX_EN, TLX TLX_DE.dialog = `Fassadenpaneel Einstellungen` TLX_EN.dialog = `Simple Panel LX24 Settings` TLX_DE.surfoverwrite = `Oberflächen überschreiben:` TLX_EN.surfoverwrite = `Overwrite Surfaces:` TLX_DE.paneloffset = `Paneel Offset` TLX_EN.paneloffset = `Panel offset` TLX_DE.tooltip.surf.same = `Einheitliche Oberflächen` TLX_EN.tooltip.surf.same = `Uniform Surfaces` TLX_DE.tooltip.surf.outer = `Äußere Oberflächen überschreiben` TLX_EN.tooltip.surf.outer = `Overwrite outer Surfaces` TLX_DE.tooltip.surf.edge = `Kante Oberflächen überschreiben` TLX_EN.tooltip.surf.edge = `Overwrite edge Surfaces` TLX_DE.tooltip.surf.inner = `Innere Oberflächen überschreiben` TLX_EN.tooltip.surf.inner = `Overwrite inner Surfaces` if UI.lang = "GER" then TLX = TLX_DE else TLX = TLX_EN endif ! Display the only one Tabpage ui_dialog TLX.dialog ui_current_page 1 ui_page 1 _pageStartY = 1 _infHeight1 = 27 _outfHeight = 15 _picSize1 = 24 _buttonSize = 30 _infWidth1 = 365 _infWidth2 = 293 _penWidth = 35 _penHeight = 22 _dy = 35 _x1 = 10 _x2 = _x1 + _buttonSize + 3 _x3 = 373 _x4 = 415 _x5 = _x3 - 28 _yCurr = _pageStartY ui_pict 1, _x1, _yCurr, _picSize1, _picSize1, 1 ! CWBuildingMaterial_hl(1) ui_infield "panelBMat", _x2, _yCurr - 1, _infWidth2, _infHeight1 ui_pict 8, _x5, _yCurr, _picSize1, _picSize1, 1 ! CWUnCutPen_hl(1) ui_infield "penUnCut", _x3, _yCurr + 4, _penWidth, _penHeight _yCurr = _yCurr + _dy ui_pict 2, _x1, _yCurr, _picSize1, _picSize1, 1 ! CWCutLinePen_hl(1) ui_infield "lineTypeCut", _x2, _yCurr - 1, _infWidth2, _infHeight1 ui_pict 7, _x5, _yCurr, _picSize1, _picSize1, 1 ! CWCutPen_hl(1) ui_infield "penCut", _x3, _yCurr + 4, _penWidth, _penHeight _yCurr = _yCurr + _dy + 6 ui_outfield TLX.surfoverwrite, _x1, _yCurr, _infWidth1, _outfHeight _yCurr = _yCurr + 20 _dy = 30 if bUniformSurfaces then _picIndex = 6 ! uniform3SurfacesOn_hl(1) else _picIndex = 9 ! uniform3SurfacesOff_hl(1) endif ui_pict_pushcheckbutton "bUniformSurfaces", "", _picIndex, 1, _x4, _yCurr + 2, 25, _infHeight1 + _dy * 2 ui_tooltip TLX.tooltip.surf.same ui_pict_pushcheckbutton "bOverrideOutSurf", "", 3, 1, ! CWSettingsPanelExterSurf_hl(1) _x1 - 2, _yCurr, _buttonSize, _buttonSize ui_tooltip TLX.tooltip.surf.outer ui_infield "outsideSurface", _x2, _yCurr + 2, _infWidth1, _infHeight1 _yCurr = _yCurr + _dy ui_pict_pushcheckbutton "bOverrideEdgeSurf", "", 4, 1, ! CWSettingsPanelEdgeSurf_hl(1) _x1 - 2, _yCurr, _buttonSize, _buttonSize ui_tooltip TLX.tooltip.surf.edge ui_infield "edgeSurface", _x2, _yCurr + 2, _infWidth1, _infHeight1 _yCurr = _yCurr + _dy ui_pict_pushcheckbutton "bOverrideInSurf", "", 5, 1, ! CWSettingsPanelInterSurf_hl(1) _x1 - 2, _yCurr, _buttonSize, _buttonSize ui_tooltip TLX.tooltip.surf.inner ui_infield "insideSurface", _x2, _yCurr + 2, _infWidth1, _infHeight1 _yCurr = _yCurr + _dy + 10 ui_separator 0, _yCurr, _x4+26, _yCurr _yCurr = _yCurr + 5 ui_outfield TLX.paneloffset, _x1, _yCurr+7, 90, _outfHeight ui_infield "panel_offset", 100, _yCurr, 50, _infHeight1 \ No newline at end of file diff --git a/Objects/Simple Panel LX24/Simple Panel LX24/scripts/vl.gdl b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/vl.gdl new file mode 100644 index 0000000..a32efa5 --- /dev/null +++ b/Objects/Simple Panel LX24/Simple Panel LX24/scripts/vl.gdl @@ -0,0 +1 @@ +!--- Param script ---! hideparameter all values "penCut" range [1,255] values "penUnCut" range [1,255] if not(bOverrideOutSurf) then lock "outsideSurface" endif if not(bOverrideEdgeSurf) then lock "edgeSurface" endif if not(bOverrideInSurf) then lock "insideSurface" endif if (bOverrideOutSurf & not(bOverrideInSurf) & not(bOverrideEdgeSurf)) |\ (not(bOverrideOutSurf) & bOverrideInSurf & not(bOverrideEdgeSurf)) |\ (not(bOverrideOutSurf) & not(bOverrideInSurf) & bOverrideEdgeSurf) |\ (not(bOverrideOutSurf) & not(bOverrideInSurf) & not(bOverrideEdgeSurf)) then lock "bUniformSurfaces" endif ! Uniform Surfaces - Use last edited surface if switched if GLOB_MODPAR_NAME = "bUniformSurfaces" then if bUniformSurfaces then if iLastModSurf = SURF_INSIDE then _actSurface = insideSurface else if iLastModSurf = SURF_EDGE then _actSurface = edgeSurface else ! Default: Outside _actSurface = outsideSurface endif endif outsideSurface = _actSurface edgeSurface = _actSurface insideSurface = _actSurface parameters outsideSurface = outsideSurface, edgeSurface = edgeSurface, insideSurface = insideSurface endif else if bUniformSurfaces then if GLOB_MODPAR_NAME = "outsideSurface" then edgeSurface = outsideSurface insideSurface = outsideSurface parameters edgeSurface = edgeSurface, insideSurface = insideSurface endif if GLOB_MODPAR_NAME = "edgeSurface" then outsideSurface = edgeSurface insideSurface = edgeSurface parameters outsideSurface = outsideSurface, insideSurface = insideSurface endif if GLOB_MODPAR_NAME = "insideSurface" then outsideSurface = insideSurface edgeSurface = insideSurface parameters outsideSurface = outsideSurface, edgeSurface = edgeSurface endif else if GLOB_MODPAR_NAME = "outsideSurface" then iLastModSurf = SURF_OUTSIDE parameters iLastModSurf = iLastModSurf endif if GLOB_MODPAR_NAME = "edgeSurface" then iLastModSurf = SURF_EDGE parameters iLastModSurf = iLastModSurf endif if GLOB_MODPAR_NAME = "insideSurface" then iLastModSurf = SURF_INSIDE parameters iLastModSurf = iLastModSurf endif endif endif ! --- Size parameters for listing --------------------------------------------------- parameters ac_openingDir = 0 ! This is important, because the UI makes it look like the user is editing the panel ! thickness; it even says so in the tooltip! Instead the user only manipulates the ! *clamp thickness*, and not the actual panel thickness. That's why you want to have this line: parameters ac_thickness = ac_clampWidth nCorners = vardim1(AC_clampFreeRegionCoords) ! Just set them initially leftSide_X = AC_clampFreeRegionCoords[1][1] rightSide_X = AC_clampFreeRegionCoords[1][1] downSide_Y = AC_clampFreeRegionCoords[1][2] upperSide_Y = AC_clampFreeRegionCoords[1][2] ! Now see if there aren't lower/higher values for i = 1 to nCorners if AC_clampFreeRegionCoords[i][1] < leftSide_X then leftSide_X = AC_clampFreeRegionCoords[i][1] if AC_clampFreeRegionCoords[i][1] > rightSide_X then rightSide_X = AC_clampFreeRegionCoords[i][1] if AC_clampFreeRegionCoords[i][2] < downSide_Y then downSide_Y = AC_clampFreeRegionCoords[i][2] if AC_clampFreeRegionCoords[i][2] > upperSide_Y then upperSide_Y = AC_clampFreeRegionCoords[i][2] next i parameters ac_width = rightSide_X - leftSide_X parameters ac_nominalWidth = ac_width parameters ac_height = upperSide_Y - downSide_Y parameters ac_nominalHeight = ac_height ! If TRUE, the origin of the 2D model’s coordinate system is placed on the axis line of the connecting frame. ! Otherwise the origin of the coordinate system can be at the side or ! at the clamp’s depth of the connecting frame – depending on the ac_aSizeIsWithClamp parameter. parameters ac_originIsFrameCenter = 0 ! If TRUE the A is the distance between the frames plus the clamps size. ! Otherwise, the A size is measured between the frames. parameters ac_aSizeIsWithClamp = 0 \ No newline at end of file diff --git a/Objects/Spannrichtung/CHANGELOG.md b/Objects/Spannrichtung/CHANGELOG.md new file mode 100644 index 0000000..3f1df91 --- /dev/null +++ b/Objects/Spannrichtung/CHANGELOG.md @@ -0,0 +1,24 @@ +# Changelog +All notable changes to "Spannrichtung" will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + + +## Compatibility +Archicad Version 23 + +## [Unreleased] + + +## [3.0] – 2020-02-16 +### Changed +- Compatibility is now AC v23 +- Renovated the whole object, nearly completly rewritten it, incl. UI +- User can now choose in which plan types they want to show the symbol + +### Removed +- The `Resize_A_B_ZZYZ` macro is not longer needed. + +## [2.0] – 2016-02-24 diff --git a/Objects/Spannrichtung/README.md b/Objects/Spannrichtung/README.md new file mode 100644 index 0000000..2da2f47 --- /dev/null +++ b/Objects/Spannrichtung/README.md @@ -0,0 +1,11 @@ +--- +title: Spannrichtung +description: | + Zeigt die Spannrichtung von Deckenplatten im Tragwerksplan an. Darstellung gemäß DIN 1356-1 (12.4). +description_en: | + Shows the direction of stress in ceiling slabs in the structural plan. Representation according to DIN 1356-1. +tags: 2D Helferlein Tragwerk Zeichnung +version: 3.0 +compat: 23 +lang: de +--- diff --git a/Objects/Spannrichtung/Spannrichtung.gsm b/Objects/Spannrichtung/Spannrichtung.gsm index 0beb407..9fe8541 100644 Binary files a/Objects/Spannrichtung/Spannrichtung.gsm and b/Objects/Spannrichtung/Spannrichtung.gsm differ diff --git a/Objects/Spannrichtung/Spannrichtung/libpartdata.xml b/Objects/Spannrichtung/Spannrichtung/libpartdata.xml index 139612f..9b812e6 100644 --- a/Objects/Spannrichtung/Spannrichtung/libpartdata.xml +++ b/Objects/Spannrichtung/Spannrichtung/libpartdata.xml @@ -18,4 +18,5 @@ + diff --git a/Objects/Spannrichtung/Spannrichtung/libpartdocs.xml b/Objects/Spannrichtung/Spannrichtung/libpartdocs.xml index dcb0a9e..eb58070 100644 --- a/Objects/Spannrichtung/Spannrichtung/libpartdocs.xml +++ b/Objects/Spannrichtung/Spannrichtung/libpartdocs.xml @@ -3,16 +3,15 @@ Lucas Becker - CC0 - 1.0 + CC BY + 4.0 - + - diff --git a/Objects/Spannrichtung/Spannrichtung/paramlist.xml b/Objects/Spannrichtung/Spannrichtung/paramlist.xml index 4c9cc9e..80ea74a 100644 --- a/Objects/Spannrichtung/Spannrichtung/paramlist.xml +++ b/Objects/Spannrichtung/Spannrichtung/paramlist.xml @@ -18,33 +18,13 @@ - - - - 1 + 2 - - - - 1 + 2 - - - - - - 0.5 - - - - - - - 1 - 1 @@ -65,16 +45,13 @@ 0 - - - - - - - - - + + + 1 + + + 1 - + \ No newline at end of file diff --git a/Objects/Spannrichtung/Spannrichtung/scripts/1d.gdl b/Objects/Spannrichtung/Spannrichtung/scripts/1d.gdl new file mode 100644 index 0000000..f40ec8d --- /dev/null +++ b/Objects/Spannrichtung/Spannrichtung/scripts/1d.gdl @@ -0,0 +1,29 @@ +! ––– MASTER script ––– ! +! Spannrichtung.gsm +! author: Lucas Becker +! version: 3.0 +! date: 2020-06-06 + +dict TLX_DE, TLX + + TLX_DE.dialog = `Einstellungen Spannrichtungssymbol` + + TLX_DE.symbtype.four = `Vierseitig gelagert` + TLX_DE.symbtype.two = `Zweiseitig gelagert` + TLX_DE.symbtype.three = `Dreiseitig gelagert` + TLX_DE.symbtype.cantilever = `Auskragend` + + TLX_DE.opt.point = `Punktgelagert` + TLX_DE.opt.dynarrow = `Dynamische Pfeilspitzenlänge` + TLX_DE.ui.out.arrowlen = `Länge Pfeilspitzen` + TLX_DE.ui.dynarr_tooltip = `Pfeilspitzen ändern ihre Länge abhängig von der Plattengröße` + + TLX_DE.ui.out.disp = `Anzeige` + TLX_DE.ui.disp_tooltip = `Wann soll das Objekt zu sehen sein?` + TLX_DE.opt.disp.always = `Immer` + TLX_DE.opt.disp.rcp = `Nur im Deckenspiegel (nach MVO)` + + TLX_DE.ui.linetype = `Linienart` + + +TLX = TLX_DE diff --git a/Objects/Spannrichtung/Spannrichtung/scripts/2d.gdl b/Objects/Spannrichtung/Spannrichtung/scripts/2d.gdl index 16f520f..3e6bdc4 100644 --- a/Objects/Spannrichtung/Spannrichtung/scripts/2d.gdl +++ b/Objects/Spannrichtung/Spannrichtung/scripts/2d.gdl @@ -1,139 +1,158 @@ - -! -! Name : Spannrichtung.gsm -! Datum : 2016-02-24 -! Version : 2.0 -! Autor : Lucas Becker -! - -!! Im Tragwerksplan anzeigen, sonst nicht -rr = REQUEST('floor_plan_option', "", floorPlanOption) -IF floorPlanOption=0 THEN END !! 1=Deckenspiegel / RCP - - -IF b_dynamicArrows THEN - _q = (A+B)/2 - lengthArrows = 0.0014 * _q^2 + 0.0432 * _q + 0.3461 ! Parabelfunktion -ENDIF - - -pen pen_line ! Stiftfarbe -line_type lt_line ! Linienart -line_property 0 ! allgemeine Linie - +! ––– 2D script ––– ! + +if i_display_type = 2 then + ! show in RCP only + rr = request("floor_plan_option", "", floorPlanOption) + if floorPlanOption # 1 then END ! 1 = RCP +endif + +if b_dynamicArrows then + _q = (A+B)/2 + lengthArrows = 0.0014 * _q^2 + 0.0432 * _q + 0.3461 ! parabola fnc +endif + +pen pen_line +line_type lt_line +line_property 0 unID = 1 -! HOTSPOTS -hotspot2 0, 0, unID - unID = unID+1 -hotspot2 0, B/2, unID - unID = unID+1 -hotspot2 0, 0, unID, B, 1+128 ! Basisfangpunkt - unID = unID+1 -hotspot2 0, B, unID, B, 2 ! beweglicher Punkt - unID = unID+1 -hotspot2 0, -1, unID, B, 3 ! Referenzvektor - unID = unID+1 - -IF symbolStyles_m = 1 AND b_pointsusp THEN - GOSUB 'point' -ELSE - nasty_caller = B - GOSUB 'axis' ! eine Achse -ENDIF - -IF symbolStyles_m = 1 THEN ! vierseitig gelagert - hotspot2 -A_half, B/2, unID - unID = unID+1 - hotspot2 0, B/2, unID, A_half, 1+128 ! Basisfangpunkt - unID = unID+1 - hotspot2 A_half, B/2, unID, A_half, 2 ! beweglicher Punkt - unID = unID+1 - hotspot2 (-A)-1, B/2, unID, A_half, 3 ! Referenzvektor - unID = unID+1 - - add2 -A_half, B/2 - rot2 -90 - - nasty_caller = A - GOSUB 'axis' -ENDIF - - -IF symbolStyles_m = 3 THEN ! dreiseitig gelagert - hotspot2 0, B/2, unID, A_half, 1+128 ! Basisfangpunkt - unID = unID+1 - hotspot2 A_half, B/2, unID, A_half, 2 ! beweglicher Punkt - unID = unID+1 - hotspot2 (-A )-1, B/2, unID, A_half, 3 ! Referenzvektor - unID = unID+1 - GOSUB 'halfaxis' -ENDIF +b_one_head = 0 + +! vierseitig gelagert +if i_symbol_styles = 1 then + + hotspot2 A/2, B/2, unID : unID = unID+1 ! mid point + gosub "hotspotsAll" + + if b_pointsusp then + gosub "point" + END ! -- END -- END -- ! + endif + + add2 A/2, 0 + axis_length = B + gosub "axis" + del 1 + + add2 0, B/2 + rot2 -90 + axis_length = A + gosub "axis" + del 2 +endif + +! zweiseitig gelagert +if i_symbol_styles = 2 or i_symbol_styles = 4 then + gosub "hotspotsLinear" + rot2 -90 + axis_length = A + if i_symbol_styles = 4 then b_one_head = 1 + gosub "axis" + del 1 +endif + +! dreiseitig gelagert +if i_symbol_styles = 3 then + gosub "hotspotsAll" + + rot2 -90 + axis_length = A + gosub "axis" + del 1 + add2 A/2, 0 + axis_length = B + b_one_head = 1 + gosub "axis" + del 1 +endif + +END ! -- END -- END -- END -- END -- END -- END -- END -- END -- END -- ! +! ---------------------------------------------------------------------- ! ! ---------------------------------------------------------------------- ! -END ! ------------------------------------------------------------------ ! -! ---------------------------------------------------------------------- ! +! Draws one axis. +"axis": + line2 0, 0, 0, axis_length + hotline2 0, 0, 0, axis_length + + add2 0, axis_length + rot2 210 + gosub "arrow" + del 2 + + if not(b_one_head) then + rot2 30 + gosub "arrow" + del 1 + endif + + b_one_head = 0 ! reset ! +return ! ---------------------------------------------------------------------- ! -! ---------------------------------------------------------------------- ! -'axis': ! eine Achse zeichnen - line2 0, 0, 0, nasty_caller - hotline2 0, 0, 0, nasty_caller - add2 0, nasty_caller - rot2 210 ! Pfeil - GOSUB 'arrow' - del 2 ! 0punkt reset - IF NOT(symbolStyles_m = 4) THEN - rot2 30 ! Pfeil 2 - GOSUB 'arrow' - del top ! 0punkt reset - ENDIF +! punktgelagert / point suspended +"point": + line2 0, 0, A, B + hotline2 0, 0, A, B + line2 0, B, A, 0 + hotline2 0, B, A, 0 + + gosub "arrow" + add2 0, B + rot2 270 + gosub "arrow" + add2 0, A + rot2 270 + gosub "arrow" + add2 0, B + rot2 270 + gosub "arrow" + del 6 + return ! ---------------------------------------------------------------------- ! -! ---------------------------------------------------------------------- ! -'point': ! punktgelagert - line2 0, 0, A, B - hotline2 0, 0, A, B - line2 A, 0, 0, B - hotline2 A, 0, 0, B - - GOSUB 'arrow' - add2 0, B - rot2 270 ! Pfeil - GOSUB 'arrow' - add2 0, A - rot2 270 ! Pfeil - GOSUB 'arrow' - add2 0, B - rot2 270 - GOSUB 'arrow' - del 6 - - CALL 'Resize_A_B_ZZYZX' Parameters ALL - - EXIT +! Draws the arrow heads +"arrow": + line2 0, 0, 0, lengthArrows + hotline2 0, 0, 0, lengthArrows return - ! ---------------------------------------------------------------------- ! -! ---------------------------------------------------------------------- ! -'halfaxis': ! dreiseitig gelagert - add2 0, B/2 - rot2 -90 - - line2 0, 0, 0, A_half - hotline2 0, 0, 0, A_half - add2 0, A_half - rot2 210 - GOSUB 'arrow' - del 4 +"hotspotsAll": + ! Hotspots for height only (@ mid) + hotspot2 A/2, 0, unID, B, 1+256 : unID=unID+1 !base + hotspot2 A/2, B, unID, B, 2 : unID=unID+1 !mov + hotspot2 A/2, -1, unID, B, 3+128 : unID=unID+1 !ref + ! Hotspots for width only (@ mid) + hotspot2 0, B/2, unID, A, 1+256 : unID=unID+1 !base + hotspot2 A, B/2, unID, A, 2 : unID=unID+1 !mov + hotspot2 -1, B/2, unID, A, 3+128 : unID=unID+1 !ref + + ! Corner Hotspots + ! upper right, width + hotspot2 0, B, unID, A, 1+256 : unID=unID+1 !base + hotspot2 A, B, unID, A, 2 : unID=unID+1 !mov + hotspot2 -1, B, unID, A, 3+128 : unID=unID+1 !ref + ! upper right, height + hotspot2 A, 0, unID, B, 1+256 : unID=unID+1 !base + hotspot2 A, B, unID, B, 2 : unID=unID+1 !mov + hotspot2 A, -1, unID, B, 3+128 : unID=unID+1 !ref + ! lower left, width + hotspot2 0, 0, unID, A, 1+256 : unID=unID+1 !base + hotspot2 A, 0, unID, A, 2 : unID=unID+1 !mov + hotspot2 -1, 0, unID, A, 3+128 : unID=unID+1 !ref + ! lower left, height + hotspot2 0, 0, unID, B, 1+256 : unID=unID+1 !base + hotspot2 0, B, unID, B, 2 : unID=unID+1 !mov + hotspot2 0, -1, unID, B, 3+128 : unID=unID+1 !ref return - ! ---------------------------------------------------------------------- ! -! ---------------------------------------------------------------------- ! -'arrow': ! Pfeile - line2 0, 0, 0, lengthArrows - hotline2 0, 0, 0, lengthArrows -Return +! Hotspots for width +"hotspotsLinear": + hotspot2 A/2, 0, unID : unID=unID+1 !center + hotspot2 0, 0, unID, A, 1+256 : unID=unID+1 !base + hotspot2 A, 0, unID, A, 2 : unID=unID+1 !mov + hotspot2 -1, 0, unID, A, 3+128 : unID=unID+1 !ref +return diff --git a/Objects/Spannrichtung/Spannrichtung/scripts/ui.gdl b/Objects/Spannrichtung/Spannrichtung/scripts/ui.gdl index 22fd3fa..78c7443 100644 --- a/Objects/Spannrichtung/Spannrichtung/scripts/ui.gdl +++ b/Objects/Spannrichtung/Spannrichtung/scripts/ui.gdl @@ -1,69 +1,75 @@ - -uiDialogWidth = 444 ! px -xOfs = 10 ! Offset X-Richtung -yOfs = 5 ! dynamischer Abstand Y-Richtung -linespace = 25 ! Zeilenabstand -lengthOut = (uiDialogWidth/2)*0.6 - xOfs ! Länge UI_OUTFIELD -inOfs = lengthOut + xOfs ! Offset UI_INFIELD -lengthIn = uiDialogWidth/2 - inOfs - xOfs ! Länge UI_INFIELD -heightOutIn = 16 -heightInPen = 20 -heightInMat = 24 - -xOfs2 = uiDialogWidth/2 + xOfs ! Offset 2. Spalte -inOfs2 = lengthOut + xOfs2 + xOfs - - - -UI_DIALOG "Symboleinstellungen", uiDialogWidth, 266 - -UI_STYLE 2,1 ! groß, fett - -UI_OUTFIELD "Achtung! Die Spannrichtung ist nur im Deckenspiegel zu sehen.\n(siehe Modelldarstellung)", 0, yOfs, uiDialogWidth, 32, 0\ - UI_TOOLTIP "Dokumentation > Modelldarstellung > Erstellen >> Verschiedene Einstellungen der Bibliothekselemente" -UI_SEPARATOR 0,36,uiDialogWidth,36 ! waagerechte Linie - -yOfs = 25 + linespace - -UI_STYLE 0,0 ! klein, normal -UI_OUTFIELD "Stift", 0, yOfs, lengthOut, heightOutIn, 0 -UI_INFIELD 'pen_line', inOfs, yOfs-6, 40, heightInPen - -yOfs = yOfs + linespace - -UI_OUTFIELD "Linientyp", 0, yOfs, lengthOut, heightOutIn, 0 -UI_INFIELD 'lt_line', inOfs, yOfs-7, lengthIn, heightInMat - -yOfs = yOfs + linespace - -UI_INFIELD{3} 'b_dynamicArrows', 0, yOfs, 200, heightOutIn, +! ––– UI script ––– ! + +! Setup +! Sizes and Positions +dict UI + UI.dialog.width = 555 + UI.dialog.height = 222 + UI.gap.x = 25 + UI.gap.y = 15 + + UI.in.height = 20 + UI.in.width = 130 + UI.in.bool.h = 22 + UI.in.bool.cell = 16 + UI.in.pen = 40 + UI.out.height = 16 + + UI.rowheight = UI.in.height + UI.gap.y +o_d = 4 ! height difference of oufields + +! ---------------------------------------------------------------------- ! + UI.column.n = 3 + UI.column.width = (UI.dialog.width - (UI.gap.x * UI.column.n-1))/ UI.column.n + dim _colstart[] + _colstart[1] = 0 + for k = 2 to UI.column.n + p=k-1 + _colstart[k] = UI.column.width*p + UI.gap.x*p + next k + UI.column.start = _colstart +! ---------------------------------------------------------------------- ! + +! ---------------------------------------------------------------------- ! +ui_dialog TLX.dialog, UI.dialog.width, UI.dialog.height +ui_style 0,0 ! small normal + +ui_outfield TLX_DE.ui.out.disp, UI.column.start[1], UI.rowheight+o_d, UI.column.width, UI.out.height, 1 +ui_infield "i_display_type", UI.column.start[2], UI.rowheight, UI.column.width, UI.in.height\ + ui_tooltip TLX.ui.disp_tooltip + +ui_outfield TLX.ui.out.disp, UI.column.start[1], UI.rowheight*2+o_d, UI.column.width, UI.out.height, 1 +ui_infield "pen_line", UI.column.start[2], UI.rowheight*2, UI.in.pen, UI.in.height + +ui_outfield TLX.ui.linetype, UI.column.start[1], UI.rowheight*3+o_d, UI.column.width, UI.out.height, 1 +ui_infield "lt_line", UI.column.start[2], UI.rowheight*3, UI.column.width, UI.in.height+10 + +ui_infield{3} "b_dynamicArrows", UI.column.start[1]+UI.column.width/2, UI.rowheight*5, UI.column.width*1.5, UI.in.bool.h, 7, "", 2, 1, - 0,0,0,0, - 1, "Dynamische Pfeilspitzen", 0, - 2, "Dynamische Pfeilspitzen", 1\ - UI_TOOLTIP "Pfeilspitzen ändern ihre Länge abhängig von der Plattengröße" - -yOfs = yOfs + linespace - -UI_OUTFIELD "Länge Pfeilspitzen", 0, yOfs, lengthOut, heightOutIn, 0 -UI_INFIELD 'lengthArrows', inOfs, yOfs, 62, 15 - -yOfs = yOfs + linespace - -IF symbolStyles_m = 1 THEN - UI_INFIELD{3} 'b_pointsusp', 0, yOfs, 200, heightOutIn, + 0, 0, 0, 0, + 1, TLX.opt.dynarrow, 0, + 2, TLX.opt.dynarrow, 1\ + ui_tooltip TLX.ui.dynarr_tooltip + + +ui_outfield TLX.ui.out.arrowlen, UI.column.start[1], UI.rowheight*6+o_d, UI.column.width, UI.out.height, 1 +ui_infield "lengthArrows", UI.column.start[2], UI.rowheight*6, UI.column.width/2, UI.in.height + +! big selection with picture +! +ui_infield{3} "i_symbol_styles", UI.column.start[3], UI.rowheight-3, 125, 118, + 2, 1, 4, 4, + 110, 110, 109, 110, + 1, TLX.symbtype.four, 1, + 2, TLX.symbtype.two, 2, + 3, TLX.symbtype.three, 3, + 4, TLX.symbtype.cantilever, 4 + +! Option punktgelagert +if i_symbol_styles = 1 then ! vierseitig gelagtert + ui_infield{3} "b_pointsusp", UI.column.start[3]+12, UI.rowheight*5+o_d, UI.column.width, UI.out.height, 7, "", 2, 1, - 0,0,0,0, - 1, "Punktgelagert", 0, - 2, "Punktgelagert", 1\ - UI_TOOLTIP "Decke ist punktgelagert." -ENDIF - -! rechts: -UI_INFIELD{3} 'symbolStyles_m', 270, 50, 120, 114, - 2, 1, 4, 4, - 110, 110, 109, 110, - 1, "vierseitig gelagert", 1, - 2, "zweiseitig gelagert", 2, - 3, "dreiseitig gelagert", 3, - 4, "auskragend", 4 + 0, 0, 0, 0, + 1, TLX.opt.point, 0, + 2, TLX.opt.point, 1 +endif diff --git a/Objects/Spannrichtung/Spannrichtung/scripts/vl.gdl b/Objects/Spannrichtung/Spannrichtung/scripts/vl.gdl index f7f10d1..9447999 100644 --- a/Objects/Spannrichtung/Spannrichtung/scripts/vl.gdl +++ b/Objects/Spannrichtung/Spannrichtung/scripts/vl.gdl @@ -1,47 +1,25 @@ - -HIDEPARAMETER ALL "A", "B" +! ––– PARAM script ––– ! -DIM stSymbolStyles[4] - stSymbolStyles[1] = 'vierseitig gelagert' - stSymbolStyles[2] = 'zweiseitig gelagert' - stSymbolStyles[3] = 'dreiseitig gelagert' - stSymbolStyles[4] = 'auskragend' +hideparameter all "A", "B" -VALUES "symbolStyles" stSymbolStyles -VALUES "symbolStyles_m" 1,2,3,4 +values{2} "i_symbol_styles", + 1, TLX_DE.symbtype.four, + 2, TLX_DE.symbtype.two, + 3, TLX_DE.symbtype.three, + 4, TLX_DE.symbtype.cantilever -VALUES "A" range [1,50] -VALUES 'A_half' range [0.5,25] -VALUES "B" range [1,50] +values{2} "i_display_type", + 1, TLX_DE.opt.disp.always, + 2, TLX_DE.opt.disp.rcp -IF b_dynamicArrows THEN LOCK "lengthArrows" ELSE VALUES "lengthArrows" range [0.6,6] +values "A" range [1,50] +values "A_half" range [0.5,25] +values "B" range [1,50] -IF symbolStyles_m % 2 = 0 THEN LOCK 'A' - - -IF ( GLOB_MODPAR_NAME = 'symbolStyles_m' AND symbolStyles_m = 3 ) THEN - PARAMETERS A = A_half -ENDIF - -IF ( GLOB_MODPAR_NAME = 'symbolStyles_m' AND symbolStyles_m = 1 ) THEN - PARAMETERS A = A_half * 2 -ENDIF - -IF NOT(symbolStyles_m = 3) THEN - IF GLOB_MODPAR_NAME = 'A' THEN - PARAMETERS A_half = A/2 - ENDIF - - IF GLOB_MODPAR_NAME = 'A_half' THEN - PARAMETERS A = A_half * 2 - ENDIF -ELSE - IF GLOB_MODPAR_NAME = 'A' THEN - PARAMETERS A_half = A - ENDIF - - IF GLOB_MODPAR_NAME = 'A_half' THEN - PARAMETERS A = A_half - ENDIF -ENDIF +if b_dynamicArrows then + lock "lengthArrows" +else + values "lengthArrows" range [0.6,6] +endif +if i_symbol_styles % 2 = 0 then hideparameter "B" diff --git a/Objects/Stiftfarben/README.md b/Objects/Stiftfarben/README.md new file mode 100644 index 0000000..b7f676b --- /dev/null +++ b/Objects/Stiftfarben/README.md @@ -0,0 +1,11 @@ +--- +title: Stiftfarben +description: | + Erweiterung des mitgelieferten 'Stiftfarben' Objekts. Dabei wurden die Standardeinstellungen etwas geändert, Schreibfehler ausgebessert und unsinnige Eingaben ausgeschlossen. Außerdem wurde die numerische Ausgabe der Farben um Webfarbcodes (Hexcode, z.B. `#fefefe`) erweitert. +description_en: | + An extension to the default supplied 'pen color test' object (the one you ought to print and check your pen colors). Displays now also hexcodes (like `#fefefe`). +tags: 2D Helferlein Druck BIM Audit +version: 1.0 +compat: 23 +lang: de +--- diff --git a/Objects/Tangenten an 2 Kreisen LX/CHANGELOG.md b/Objects/Tangenten an 2 Kreisen LX/CHANGELOG.md new file mode 100644 index 0000000..d27679d --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog +All notable changes to this object will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## Compatibility +Archicad version 24 + +## [Unreleased] + +## [1.0] – 2020-12-28 +First version of this object published. diff --git a/Objects/Tangenten an 2 Kreisen LX/README.md b/Objects/Tangenten an 2 Kreisen LX/README.md new file mode 100644 index 0000000..1e3c08f --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/README.md @@ -0,0 +1,11 @@ +--- +title: Tangenten an 2 Kreisen LX +description: | + Erstellung von Außen- und Kreuztangenten zwischen zwei Kreisen. +description_en: | + Draws outer and cross tangents between two circles. +tags: 2D Helfer +version: 1.0 +compat: 24 +lang: de +--- diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX.gsm b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX.gsm new file mode 100644 index 0000000..a889f44 Binary files /dev/null and b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX.gsm differ diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/ancestry.xml b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/ancestry.xml new file mode 100644 index 0000000..57015ab --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/ancestry.xml @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/calledmacros.xml b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/calledmacros.xml new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/calledmacros.xml @@ -0,0 +1,3 @@ + + + diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/images/Picture_0.png b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/images/Picture_0.png new file mode 100644 index 0000000..9f0aecc Binary files /dev/null and b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/images/Picture_0.png differ diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/libpartdata.xml b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/libpartdata.xml new file mode 100644 index 0000000..eb84993 --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/libpartdata.xml @@ -0,0 +1,19 @@ + + + + 165E0DE7-B9E6-4518-8136-367CF465CD73 + true + false + Normal + false + + + + + + + + + + + diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/libpartdocs.xml b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/libpartdocs.xml new file mode 100644 index 0000000..c748c77 --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/libpartdocs.xml @@ -0,0 +1,22 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + + + + diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/paramlist.xml b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/paramlist.xml new file mode 100644 index 0000000..1538101 --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/paramlist.xml @@ -0,0 +1,153 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 0 + + + + 0.5 + + + + 0.25 + + + + + + + 1 + + + + 0 + + + + 0 + + + + 0 + + + + 2 + + + + 1 + + + + 106 + + + + 5 + + + + 102 + + + + 2 + + + + 1 + + + + 1 + + + + + + + 1 + + + + + + + 0 + + + + + + + 3 + + + + + + + 2 + + + diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/scripts/2d.gdl b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/scripts/2d.gdl new file mode 100644 index 0000000..5a5a213 --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/scripts/2d.gdl @@ -0,0 +1,220 @@ +!--- 2D script ---! + +! overwrite pens and linetypes +if b_link_colors then + pen_circles = pen_linked + pen_tangents = pen_linked + pen_helpers = pen_linked +endif +if b_link_linetypes then + lt_circles = lt_linked + lt_tangents = lt_linked + lt_helpers = lt_linked +endif + +unID = 1 + +! Hotspots at the center of the circles +! You can move the location of the circles with these, too +! { circle one +hotspot2 0, y1, unID, x1, 1+128 : unID=unID+1 !base +hotspot2 x1, y1, unID, x1, 2 : unID=unID+1 !move +hotspot2 -1, y1, unID, x1, 3 : unID=unID+1 !ref + +hotspot2 x1, 0, unID, y1, 1+128 : unID=unID+1 !base +hotspot2 x1, y1, unID, y1, 2 : unID=unID+1 !move +hotspot2 x1, -1, unID, y1, 3 : unID=unID+1 !ref +! } + +! { circle two +hotspot2 0, y2, unID, x2, 1+128 : unID=unID+1 !base +hotspot2 x2, y2, unID, x2, 2 : unID=unID+1 !move +hotspot2 -1, y2, unID, x2, 3 : unID=unID+1 !ref + +hotspot2 x2, 0, unID, y2, 1+128 : unID=unID+1 !base +hotspot2 x2, y2, unID, y2, 2 : unID=unID+1 !move +hotspot2 x2, -1, unID, y2, 3 : unID=unID+1 !ref +! } + +pen pen_helpers +line_type lt_helpers + +! Center line +line2 x1, y1, x2, y2 +hotline2 x1, y1, x2, y2, unID : unID=unID+1 + +pen pen_circles +line_type lt_circles + +! First circle +add2 x1, y1 +rot2 -45 + ! change the radius of the circle dynamically + hotspot2 0, 0, unID, radius1, 1 : unID=unID+1 !base + hotspot2 0, Radius1, unID, radius1, 2 : unID=unID+1 !move + hotspot2 0, -1, unID, radius1, 3 : unID=unID+1 !ref + + circle2 0, 0, radius1 + ! there is a certain bug, that if you set the first hotarc2 with an angle of 360 + ! it will only be set to 180° – thus you need to set to slightly less than a full circle + hotarc2 0, 0, radius1, 0, 359.9, unID : unID=unID+1 +del 2 + +! Second circle +add2 x2, y2 +rot2 -45 + ! change the radius of the circle dynamically + hotspot2 0, 0, unID, radius2, 1 : unID=unID+1 !base + hotspot2 0, radius2, unID, radius2, 2 : unID=unID+1 !move + hotspot2 0, -1, unID, radius2, 3 : unID=unID+1 !ref + + circle2 0, 0, radius2 + hotarc2 0, 0, radius2, 0, 359.9, unID : unID=unID+1 +del 2 + + +center_dist_x = x2 - x1 +center_dist_y = y2 - y1 + +thales_diam = sqr(center_dist_x ^ 2 + center_dist_y ^ 2) +thales_angle = asn(center_dist_y / thales_diam) +if x1 > x2 then thales_angle = -thales_angle - 180 + + +if disp_type = 1 then gosub "Tangents_Outer" +if disp_type = 2 then gosub "Tangents_Cross" +if disp_type = 3 then + gosub "Tangents_Outer" + gosub "Tangents_Cross" +endif + +END !---END---END---END---END---END---END---END---END---END---END---! + + +!-------------------------------------------------------------------! +"Tangents_Cross": + if radius1 + radius2 < thales_diam then + radius_sum = radius1 + radius2 + + if b_show_construction then + pen pen_helpers + line_type lt_helpers + circle2 x2, y2, radius_sum + hotarc2 x2, y2, radius_sum, 0, 360, unID : unID=unID+1 + endif + + add2 x1, y1 + rot2 thales_angle + + ankathete = sqr(thales_diam ^ 2 - radius_sum ^ 2) + thales_angle = asn(radius_sum / thales_diam) + gegenwinkel = 180 - thales_angle - 90 + + x2tA = ankathete * cos(thales_angle) + y2tA = ankathete * sin(thales_angle) + + x2tA = radius_sum * cos(180 - gegenwinkel) + thales_diam + y2tA = radius_sum * sin(180 - gegenwinkel) + + if b_show_construction then + arc2 thales_diam/2, 0, thales_diam/2, 0, 180 + hotarc2 thales_diam/2, 0, thales_diam/2, 0, 180, unID : unID=unID+1 + + line2 0, 0, x2tA, y2tA + hotline2 0, 0, x2tA, y2tA, unID : unID=unID+1 + + line2 thales_diam, 0, x2tA, y2tA + hotline2 thales_diam, 0, x2tA, y2tA, unID : unID=unID+1 + endif + + x1t = -radius1 * cos(180 - gegenwinkel) + y1t = -radius1 * sin(180 - gegenwinkel) + + x2t = radius2 * cos(180 - gegenwinkel) + thales_diam + y2t = radius2 * sin(180 - gegenwinkel) + + ! draw the cross tangents + pen pen_tangents + line_type lt_tangents + + hotspot2 x2t, y2t + hotspot2 x1t, y1t + + line2 x1t, y1t, x2t, y2t + hotline2 x1t, y1t, x2t, y2t, unID : unID=unID+1 + + hotspot2 x2t, -y2t + hotspot2 x1t, -y1t + + line2 x1t, -y1t, x2t, -y2t + hotline2 x1t, -y1t, x2t, -y2t, unID : unID=unID+1 + + del 2 + else + ! Show a warning + text2 (x1+x2)/2 + max(radius1, radius2), (y1+y2)/2 + max(radius1, radius2), "Abstand zu klein" + endif +return + +!-------------------------------------------------------------------! +"Tangents_Outer": + radius_diff = radius1 - radius2 + + ankathete = sqr(thales_diam ^ 2 - radius_diff ^ 2) + gegenwinkel = asn(radius_diff / thales_diam) + anwinkel = 180 - gegenwinkel - 90 + + if b_show_construction then + pen pen_helpers + line_type lt_helpers + circle2 x1, y1, radius_diff + endif + + ! Isect point tangents/circle + sx1 = radius1 * cos(anwinkel) + sy1 = radius1 * sin(anwinkel) + + sx2 = radius2 * cos(anwinkel) + sy2 = radius2 * sin(anwinkel) + + ! display actual tangents: + pen pen_tangents + line_type lt_tangents + + add2 x1, y1 + rot2 thales_angle + + ! first side + hotspot2 sx1, sy1 + hotspot2 thales_diam+sx2, sy2 + + line2 sx1, sy1, thales_diam+sx2, sy2 + hotline2 sx1, sy1, thales_diam+sx2, sy2, unID : unID=unID+1 + + ! mirrored + hotspot2 sx1, -sy1 + hotspot2 thales_diam+sx2, -sy2 + + line2 sx1, -sy1, thales_diam+sx2, -sy2 + hotline2 sx1, -sy1, thales_diam+sx2, -sy2, unID : unID=unID+1 + + if b_show_construction then + pen pen_helpers + line_type lt_helpers + + arc2 thales_diam/2, 0, thales_diam/2, 0, 180 + hotarc2 thales_diam/2, 0, thales_diam/2, 0, 180, unID : unID=unID+1 + + circle2 0, 0, radius_diff + hotarc2 0, 0, radius_diff, 0, 360, unID : unID=unID+1 + + rot2 anwinkel + line2 0, 0, radius1, 0 + hotline2 0, 0, radius1, 0, unID : unID=unID+1 + del 1 + endif + + del 2 +return + + diff --git a/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/scripts/vl.gdl b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/scripts/vl.gdl new file mode 100644 index 0000000..a1e1b3d --- /dev/null +++ b/Objects/Tangenten an 2 Kreisen LX/Tangenten an 2 Kreisen LX/scripts/vl.gdl @@ -0,0 +1,27 @@ +!--- Param script ---! + +values{2} "disp_type" \ + 1, "Außentangenten", + 2, "Kreuztangenten", + 3, "Außen- und Kreuztangenten" + +if b_link_colors then + hideparameter "pen_circles", + "pen_tangents", + "pen_helpers" +else + hideparameter "pen_linked" +endif + +if b_link_linetypes then + hideparameter "lt_circles", + "lt_tangents", + "lt_helpers" +else + hideparameter "lt_linked" +endif + +values "pen_circles" range [1,255] +values "pen_tangents" range [1,255] +values "pen_helpers" range [1,255] +values "pen_linked" range [1,255] diff --git a/Objects/Text auf Polylinie/README.md b/Objects/Text auf Polylinie/README.md new file mode 100644 index 0000000..55fad9a --- /dev/null +++ b/Objects/Text auf Polylinie/README.md @@ -0,0 +1,12 @@ +--- +title: Text auf Polylinie +description: | + Zur Darstellung von Text auf einer Polylinie, auch in 3D. Nutzbar für Höhenlinien, Grenzen, u.ä. +description_en: | + Shows text on a polyline, even in 3D. Use cases are elevation lines, boundary curves, etc. +tags: 2D 3D Zeichnung +version: 1.0 +compat: 20 +lang: de +credits: Esteban Ramos for his polyline code +--- diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie.gsm b/Objects/Text auf Polylinie/Text auf Polylinie.gsm similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie.gsm rename to Objects/Text auf Polylinie/Text auf Polylinie.gsm diff --git a/Objects/Text auf Polylinie/Text auf Polylinie/ancestry.xml b/Objects/Text auf Polylinie/Text auf Polylinie/ancestry.xml new file mode 100644 index 0000000..57015ab --- /dev/null +++ b/Objects/Text auf Polylinie/Text auf Polylinie/ancestry.xml @@ -0,0 +1,5 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + 103E8D2C-8230-42E1-9597-46F84CCE28C0 + diff --git a/Objects/Text auf Polylinie/Text auf Polylinie/calledmacros.xml b/Objects/Text auf Polylinie/Text auf Polylinie/calledmacros.xml new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ b/Objects/Text auf Polylinie/Text auf Polylinie/calledmacros.xml @@ -0,0 +1,3 @@ + + + diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/images/Picture_0.png b/Objects/Text auf Polylinie/Text auf Polylinie/images/Picture_0.png similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/images/Picture_0.png rename to Objects/Text auf Polylinie/Text auf Polylinie/images/Picture_0.png diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/libpartdata.xml b/Objects/Text auf Polylinie/Text auf Polylinie/libpartdata.xml similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/libpartdata.xml rename to Objects/Text auf Polylinie/Text auf Polylinie/libpartdata.xml diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/libpartdocs.xml b/Objects/Text auf Polylinie/Text auf Polylinie/libpartdocs.xml similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/libpartdocs.xml rename to Objects/Text auf Polylinie/Text auf Polylinie/libpartdocs.xml diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/paramlist.xml b/Objects/Text auf Polylinie/Text auf Polylinie/paramlist.xml similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/paramlist.xml rename to Objects/Text auf Polylinie/Text auf Polylinie/paramlist.xml diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/scripts/1d.gdl b/Objects/Text auf Polylinie/Text auf Polylinie/scripts/1d.gdl similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/scripts/1d.gdl rename to Objects/Text auf Polylinie/Text auf Polylinie/scripts/1d.gdl diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/scripts/2d.gdl b/Objects/Text auf Polylinie/Text auf Polylinie/scripts/2d.gdl similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/scripts/2d.gdl rename to Objects/Text auf Polylinie/Text auf Polylinie/scripts/2d.gdl diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/scripts/3d.gdl b/Objects/Text auf Polylinie/Text auf Polylinie/scripts/3d.gdl similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/scripts/3d.gdl rename to Objects/Text auf Polylinie/Text auf Polylinie/scripts/3d.gdl diff --git a/Objects/Text_auf_Polylinie/Text_auf_Polylinie/scripts/vl.gdl b/Objects/Text auf Polylinie/Text auf Polylinie/scripts/vl.gdl similarity index 100% rename from Objects/Text_auf_Polylinie/Text_auf_Polylinie/scripts/vl.gdl rename to Objects/Text auf Polylinie/Text auf Polylinie/scripts/vl.gdl diff --git "a/Objects/Verk\303\274rzer/README.md" "b/Objects/Verk\303\274rzer/README.md" new file mode 100644 index 0000000..2036235 --- /dev/null +++ "b/Objects/Verk\303\274rzer/README.md" @@ -0,0 +1,11 @@ +--- +title: Verkürzer +description: | + Darstellung eines Symbol zur Verkürzung/Auslassung bei runden Stabelementen (z.B. Pfahlgründungen). +description_en: | + Display a 'shortening' symbol. +tags: 2D Zeichnung +version: 1.0 +compat: 23 +lang: de +--- diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer.gsm" "b/Objects/Verk\303\274rzer/Verk\303\274rzer.gsm" new file mode 100644 index 0000000..c78c317 Binary files /dev/null and "b/Objects/Verk\303\274rzer/Verk\303\274rzer.gsm" differ diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/ancestry.xml" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/ancestry.xml" new file mode 100644 index 0000000..936ddff --- /dev/null +++ "b/Objects/Verk\303\274rzer/Verk\303\274rzer/ancestry.xml" @@ -0,0 +1,6 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + B176ABF1-5813-478F-926B-28EE7C5DC1F7 + 4FD10D67-2F29-4844-A65A-6597589B0CB5 + diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/calledmacros.xml" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/calledmacros.xml" new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ "b/Objects/Verk\303\274rzer/Verk\303\274rzer/calledmacros.xml" @@ -0,0 +1,3 @@ + + + diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/images/Picture_0.png" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/images/Picture_0.png" new file mode 100644 index 0000000..62ce9ed Binary files /dev/null and "b/Objects/Verk\303\274rzer/Verk\303\274rzer/images/Picture_0.png" differ diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/libpartdata.xml" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/libpartdata.xml" new file mode 100644 index 0000000..2a132e5 --- /dev/null +++ "b/Objects/Verk\303\274rzer/Verk\303\274rzer/libpartdata.xml" @@ -0,0 +1,20 @@ + + + + 1D8EB0B3-FA9E-419F-A26B-E75BD9C0A561 + true + false + Normal + false + + + + + + + + + + + + diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/libpartdocs.xml" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/libpartdocs.xml" new file mode 100644 index 0000000..1d1aaa7 --- /dev/null +++ "b/Objects/Verk\303\274rzer/Verk\303\274rzer/libpartdocs.xml" @@ -0,0 +1,17 @@ + + + + Lucas Becker + + CC BY + 4.0 + + + + + + + + + + diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/paramlist.xml" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/paramlist.xml" new file mode 100644 index 0000000..3065e05 --- /dev/null +++ "b/Objects/Verk\303\274rzer/Verk\303\274rzer/paramlist.xml" @@ -0,0 +1,96 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 65535 + 0 + 0 + + + + + + 1 + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + + + + 65 + + + + + + + 19 + + + + + + + -1 + + + + 1 + + + + + + + + 65 + + + + + + + + 0.2 + + + + 1 + + + + + + + + 0.2 + + + diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/1d.gdl" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/1d.gdl" new file mode 100644 index 0000000..9907b30 --- /dev/null +++ "b/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/1d.gdl" @@ -0,0 +1,3 @@ +! ––– MASTER script ––– ! + +eps = 0.001 diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/2d.gdl" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/2d.gdl" new file mode 100644 index 0000000..5465fdc --- /dev/null +++ "b/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/2d.gdl" @@ -0,0 +1,80 @@ +! ––– 2D script ––– ! + +uID = 1 +gap = 0.005 + +pen gs_cont_pen +fill gs_filltype +line_type gs_linetype + +hotspot2 A/2, 0, uID : uID=uID+1 ! center + +hotspot2 0, 0, uID, A, 1+256 : uID=uID+1 !base +hotspot2 A, 0, uID, A, 2 : uID=uID+1 !move +hotspot2 -1, 0, uID, A, 3 : uID=uID+1 !ref + +if b_side_lines then + line2 0, 0, 0, side_lines_len + line2 A, 0, A, side_lines_len + + hotspot2 A/2, 0, uID, side_lines_len, 1+128 : uID=uID+1 !base + hotspot2 A/2, side_lines_len, uID, side_lines_len, 2 : uID=uID+1 !move + hotspot2 A/2, -1, uID, side_lines_len, 3 : uID=uID+1 !ref +endif +! Kreisberechnung über die Sehne +! https://www.arndt-bruenner.de/mathe/scripts/kreissehnen.htm +! Sehnenlänge s := A/2 +! Stichhöhe a := Sehnenlänge/6.5 +! Radius r := (4a² + s²)/8a +! Winkel alpha := 2asin(s/2r) +! Höhe unter Sehne := r-a + +arc_chord = A/2 +arc_height = arc_chord/6.5 +arc_rad = (4*arc_height*arc_height + arc_chord*arc_chord)/(8*arc_height) +arc_ang = 2*asn(arc_chord/(2*arc_rad)) + +arc_x = arc_chord/2 +arc_y = arc_rad - arc_height + +! arcs go CCW +arc_start = 90 - arc_ang/2 +arc_end = arc_start + arc_ang + +if b_fill_cut then + poly2_b 5, 2+4, + gs_fill_pen, gs_back_pen, + 0, 0, 1, + arc_x, -arc_y, 901, + arc_chord, 0, 3001, + arc_x, arc_y, 901, + 0, 0, 3001 +endif + +if b_fill_over then + hotspot2 arc_chord, 0, uID, fill_over_height, 1+128 : uID=uID+1 !base + hotspot2 arc_chord, -fill_over_height, uID, fill_over_height, 2 : uID=uID+1 !move + hotspot2 arc_chord, 1, uID, fill_over_height, 3 : uID=uID+1 !ref + fill fill_over + poly2_b 10, 2+4, + 1, -1, + 0, 0, 1, + arc_x, arc_y, 901, + arc_chord, 0, 3001, + arc_x+arc_chord, arc_y, 901, + A, 0, 3001, + A+gap, 0, 1, + A+gap, -fill_over_height, 1, + -gap, -fill_over_height, 1, + -gap, 0, 1, + -1, -1, 701 +endif + +arc2 arc_x, -arc_y, arc_rad, arc_start, arc_end +add2 arc_chord, 0 +mul2 -1,-1 + arc2 arc_x, -arc_y, arc_rad, arc_start, arc_end +del 1 +mul2 1, -1 + arc2 arc_x, -arc_y, arc_rad, arc_start, arc_end +del 2 diff --git "a/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/vl.gdl" "b/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/vl.gdl" new file mode 100644 index 0000000..d5f1649 --- /dev/null +++ "b/Objects/Verk\303\274rzer/Verk\303\274rzer/scripts/vl.gdl" @@ -0,0 +1,13 @@ +! ––– PARAM script ––– ! + +values "gs_cont_pen", range [1,255] +values "gs_fill_pen", range [1,255] + +values "fill_over_height", range [A/2/6.5,] +values "side_lines_len", range [A/2/6.5,] + +if not(b_fill_cut) then + lock "gs_filltype", + "gs_fill_pen", + "gs_back_pen" +endif diff --git "a/Objects/Wandpr\303\274fer LX/README.md" "b/Objects/Wandpr\303\274fer LX/README.md" new file mode 100644 index 0000000..58c8962 --- /dev/null +++ "b/Objects/Wandpr\303\274fer LX/README.md" @@ -0,0 +1,11 @@ +--- +title: Wandprüfer LX +description: | + Zur Überprüfung von schief gezeichneten Wänden im Grundriss. +description_en: | + To detect misplaced walls in the floor plan. +tags: 2D Etikett Helferlein +version: 1.0 +compat: 24 +lang: de +--- diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX.gsm" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX.gsm" new file mode 100644 index 0000000..93b154c Binary files /dev/null and "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX.gsm" differ diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/ancestry.xml" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/ancestry.xml" new file mode 100644 index 0000000..6921988 --- /dev/null +++ "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/ancestry.xml" @@ -0,0 +1,7 @@ + + + F938E33A-329D-4A36-BE3E-85E126820996 + B176ABF1-5813-478F-926B-28EE7C5DC1F7 + 4FD10D67-2F29-4844-A65A-6597589B0CB5 + BDB8C3EE-4019-46C8-91D0-7A8DE0A5EC6D + diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/calledmacros.xml" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/calledmacros.xml" new file mode 100644 index 0000000..0d577e3 --- /dev/null +++ "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/calledmacros.xml" @@ -0,0 +1,3 @@ + + + diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/images/Picture_0.png" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/images/Picture_0.png" new file mode 100644 index 0000000..448933d Binary files /dev/null and "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/images/Picture_0.png" differ diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/libpartdata.xml" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/libpartdata.xml" new file mode 100644 index 0000000..a4fabe7 --- /dev/null +++ "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/libpartdata.xml" @@ -0,0 +1,19 @@ + + + + 3F4E35EE-22D0-4986-BA54-23F95828513F + true + false + Normal + false + + + + + + + + + + + diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/libpartdocs.xml" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/libpartdocs.xml" new file mode 100644 index 0000000..58d3a76 --- /dev/null +++ "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/libpartdocs.xml" @@ -0,0 +1,20 @@ + + + + Lucas Becker + + CC BY-SA + 4.0 + + + + + + + "Ausgewählte Elemente etikettieren". +Wände die unterhalb einer einstellbaren Toleranz geneigt oder aus dem Raster verschoben sind, werden beschriftet und ggf. markiert. +]]> + + + diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/paramlist.xml" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/paramlist.xml" new file mode 100644 index 0000000..549decb --- /dev/null +++ "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/paramlist.xml" @@ -0,0 +1,156 @@ + + + + false + + + + 0 + 0 + 0 + 0 + 61057 + 0 + 0 + + + + + + + + + 1 + + + + + + + + 1 + + + + + + + + 0 + + + + + 1 + + + + + + + + + + 3 + + + + + 0 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 46 + + + + + 1 + + + + + 0 + + + + + 0 + + + + + -1 + + + + + 0 + + + + + 0 + + + + + 85 + + + + + 1 + + + + + 0 + + + + 0 + + + + 90 + + + + 0 + + + + + + + + 6 + + + + 1 + + + diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/scripts/2d.gdl" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/scripts/2d.gdl" new file mode 100644 index 0000000..32fe64b --- /dev/null +++ "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/scripts/2d.gdl" @@ -0,0 +1 @@ +!--- 2D script ---! comma = strstr(max_deviation_str, ",") ! beware of german notation! if comma then wtf = "0." + strsub(max_deviation_str, comma+1, strlen(max_deviation_str)) else wtf = max_deviation_str endif n = split(wtf, "%n", max_deviation) ! this is done so the input param doesn't get truncated dict result result.text = "" result.status = 0 str_format = "%." + str(precision, 1, 0) ! -- define Text style txt_anchor = 7 if AC_LabelPointerConnection = 1 then txt_anchor = 1 if AC_LabelPointerConnection = 0 then txt_anchor = 4 if AC_LabelPointerConnection = 2 then txt_anchor = 7 if not(LABEL_HAS_POINTER) then txt_anchor = 8 add2 LABEL_POSITION [2][1] + LABEL_POSITION [3][1], LABEL_POSITION [2][2] + LABEL_POSITION [3][2] endif define style "label_text_style" AC_TextFont_1, AC_TextSize_1*100/GLOB_SCALE, txt_anchor, AC_TextStyle_1 set style "label_text_style" ! -- get some colors r = request("Pen_of_RGB", "1 0 0", pen_red) r = request("Pen_of_RGB", "0 1 0", pen_green) r = request("Pen_of_RGB", "1 0.596 0", pen_orange) ! -- angle computation angleViewRotation = 0 if reference = 1 then angleViewRotation = GLOB_NORTH_DIR if reference = 2 then r = request("view_rotangle", "", angleViewRotation) endif if reference = 3 then angleViewRotation = ang_free ! free choice of a system angle _compangle = WALL_DIRECTION + angleViewRotation if _compangle < 0 then _compangle = _compangle + 360 n = int(_compangle/grid + 0.5) gridangle = grid*n deviation = abs(_compangle - gridangle) deviation_str = str(str_format, deviation) + "°" ! -- making the result if GLOB_ELEM_TYPE # 5 then result.text = "Keine Wand etikettiert ¯\_(ツ)_/¯" result.status = -1 else if WALL_RESOL > 36 or WALL_INCL > 0 then result.text = "Wand gebogen/trapezförmig (" + deviation_str + ")" result.status = -1 else if deviation > max_deviation then result.text = "⚠! " + deviation_str result.status = 1 else result.text = "Ok. (" + deviation_str + ")" result.status = 0 endif endif endif ! -- display if b_use_color then if result.status > 0 then pen pen_red if result.status < 0 then pen pen_orange if result.status = 0 then pen pen_green else pen AC_TextPen_1 ! pen for text of the text settings dialog endif hotspot2 0, 0 text2 0,0.1, result.text if not(LABEL_HAS_POINTER) then fill GLOB_FILL_INDEX_SOLID poly2_ 4,1+2+4, -0.1, 0.05, 1, 0.1, 0.05, 1, 0, -0.1, 1, -1, -1, 701 endif \ No newline at end of file diff --git "a/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/scripts/vl.gdl" "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/scripts/vl.gdl" new file mode 100644 index 0000000..2db1962 --- /dev/null +++ "b/Objects/Wandpr\303\274fer LX/Wandpr\303\274fer LX/scripts/vl.gdl" @@ -0,0 +1 @@ +!--- Param script ---! values "grid" 30, 45, 60, 90 values{2} "reference" 0, "Absolut", 1, "Orientierung des Projekts (Norden)", 2, "Aktuelle Ansichtsdrehung", 3, "Feier Winkel" if reference # 3 then lock "ang_free" values "precision" range [1,9] \ No newline at end of file diff --git a/README.md b/README.md index 993c89b..ecfc8e6 100644 --- a/README.md +++ b/README.md @@ -1,190 +1,36 @@ -# [ArchiCAD-Objects](https://github.com/runxel/ArchiCAD-Objects) -ArchiCAD Objects made (or modified) by me. +# [Archicad-Objects](https://runxel.xyz/archicad-objects/) +> Archicad Objects made (or modified) by Runxel. --- -### How to use? -Files are uploaded as `.gsm` (ArchiCAD library part / "object") and in the new HSF format introduced in Archicad 23. -Thus they are easier to maintain and also you can see the source code directly. Converting can be done by using the [LP_XMLConverter](http://gdl.graphisoft.com/tips-and-tricks/how-to-use-the-lp_xmlconverter-tool/). -The `.gsm` can be used directly and hasslefree. Please have a look at the compatibility down below. - -#### Why are you not using the XML exchange format? -I did for a while, but it's plain useless now that we have the HSF format available thru the LP_XMLConverter. If you want to use it right away, there is `.gsm`; if you want to get a grasp of the code, the `.gdl` files are much more legible (And also you can go and edit it in an instant by cloning the repo unto your PC). - +[Go here for a nice overview of all available objects](https://runxel.xyz/archicad-objects/) --- -## Objects: - -### [2D Complex Profile](Objects/2D_Complex_Profile) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v23_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-none-a9dfbf?style=flat-square) -[![Version](https://img.shields.io/badge/version-1.1-2980b9?style=flat-square)](Objects/2D_Complex_Profile/CHANGELOG.md) - - -(DE) Zur Anzeige von Komplexen Profilen aus dem Profil Manager im 2D. -(EN) Displays a selected complex profile in 2D. - -_Anmerkung: Profilmodifikatoren können nicht verwendet werden. Es kann jedoch über `A` und `B` Stretchfaktoren eingegeben werden._ -_Note: Profile modifiers can not be used. However you may use `A` and `B` as stretch factors._ - -
- -### [Text auf Polylinie](Objects/Text_auf_Polylinie) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v20_build_6005_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-none-a9dfbf?style=flat-square) -![Version](https://img.shields.io/badge/version-1.0-2980b9?style=flat-square) - -(DE) Zur Darstellung von Text auf einer Polylinie, auch in 3D. Nutzbar für Höhenlinien, Grenzen, u.ä. -(EN) Shows text on a polyline, even in 3D. Use cases are elevation lines, boundary curves, etc. -Credit to Esteban Ramos for his polyline code. - -
- -### [Spannrichtung](Objects/Spannrichtung) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v19_build_5005_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-"Resize__A__B__ZZYZX"_macro-ff7979?style=flat-square) -![Version](https://img.shields.io/badge/version-2.0-2980b9?style=flat-square) - -(DE) Zeigt die Spannrichtung von Deckenplatten im Tragwerksplan an. Sichtbarkeit richtet sich nach der Modelldarstellung. Darstellung gemäß DIN 1356-1 (12.4). -(EN) Shows the direction of stress in ceiling slabs in the structural plan. Visibility depends on the MVO. Representation according to DIN 1356-1. - -
- -### [Rollstuhlgerecht](Objects/Rollstuhlgerecht) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v22_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-none-a9dfbf?style=flat-square) -![Version](https://img.shields.io/badge/version-1.0-2980b9?style=flat-square) - -(DE) Zur Überprüfung von Bewegungsflächen und des Wendekreises eines Rollstuhlfahrers. -(EN) For checking of turning circle of wheelchair users. - -
- -### [Faltmarker](Objects/Faltmarker) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v20_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-none-a9dfbf?style=flat-square) -![Version](https://img.shields.io/badge/version-1.2-2980b9?style=flat-square) - -(DE) Faltmarker zur Verwendung im Layout und der anschließenden (physischen) Ablage im A4-Endformat. DIN 824 konform. -(EN) Folding marker for the use in the layout. DIN 824 compliant. - -
- -DIN 824: - - -
- -### [Isokorb (Attika)](Objects/Isokorb%20(Attika)) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v23_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -[![Dependencies](https://img.shields.io/badge/dependencies-"BasicGeometry"_macro-ff7979?style=flat-square)](http://gdl.graphisoft.com/tips-and-tricks/using-basicgeometry-macro) -![Version](https://img.shields.io/badge/version-1.0-2980b9?style=flat-square) - -(DE) Isokorb zur 2D Detaillierung von Attiken im Schnitt. -(EN) Isokorb for 2D detailing of parapet wall. - -
- -### [Polygon](Objects/Polygon) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v23_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-none-a9dfbf?style=flat-square) -![Version](https://img.shields.io/badge/version-1.0-2980b9?style=flat-square) - -(DE) Regelmäßiges Polygon. -(EN) A regular polygon inscribed in a circle. - -
- -### [Profilierte Setzstufe LX23](Objects/Profilierte%20Setzstufe%20LX23) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v23_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-MULTILANG-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-none-a9dfbf?style=flat-square) -![Version](https://img.shields.io/badge/version-1.0-2980b9?style=flat-square) -[![License](https://img.shields.io/badge/license-Attribution_4.0-ffd46b?style=flat-square)](https://creativecommons.org/licenses/by/4.0/) - -(DE) Modifikation der 'Profilierten Setzstufe 23' von Graphisoft. Man kann nun zum einen das Setzstufenprofil auf die Höhe der Setzstufe strecken, sodass man bei Änderungen nicht unbedingt stets auch das Profil anpassen muss. Zum anderen ist es nun möglich Löcher in Lauflinienrichtung in die Setzstufe zu schneiden. Das Objekt bietet dabei viele Anpassungsmöglichkeiten. -(EN) Modifiction of the 'Profiled Riser 23', provided by Graphisoft. You are now able to stretch the profile to fit the riser height. Also it is possible to cut holes orthogonally with many settings to customize. - - - -
- -### [Stiftfarben](Objects/Stiftfarben) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v23_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-none-a9dfbf?style=flat-square) -[![Version](https://img.shields.io/badge/version-1.0-0086d1?style=flat-square)](objects/Stiftfarben/CHANGELOG.md) -[![License](https://img.shields.io/badge/license-Attribution_4.0-ffd46b?style=flat-square)](https://creativecommons.org/licenses/by/4.0/) - -(DE) Erweiterung des mitgelieferten 'Stiftfarben' Objekts. Dabei wurden die Standardeinstellungen etwas geändert, Schreibfehler ausgebessert und unsinnige Eingaben ausgeschlossen. -(EN) An extension to the default supplied 'pen color test' object (the one you ought to print and check your pen colors). - -
- -### [Nummerierung](Objects/Nummerierung) - - - -![Compatibility](https://img.shields.io/badge/compatibility-v23_▲-lightgrey?style=flat-square&logo=archicad&logoColor=white) -![Language](https://img.shields.io/badge/language-GER-lightgrey?style=flat-square) -![Dependencies](https://img.shields.io/badge/dependencies-none-a9dfbf?style=flat-square) -[![Version](https://img.shields.io/badge/version-1.0-0086d1?style=flat-square)](objects/Nummerierung/CHANGELOG.md) -[![License](https://img.shields.io/badge/license-Attribution_4.0-ffd46b?style=flat-square)](https://creativecommons.org/licenses/by/4.0/) - -(DE) Zur schnellen, linearen Nummerierung im 2D. Unterstützt numerisch (1, 2, 3, …), römisch (I, II, III, …) und Buchstaben (a, b, c, …). -(EN) Let's you quickly enumerate linearly in the floorplan. - -
+## How to use? +Files are uploaded as `.gsm` (ArchiCAD library part / "object") and in the new [HSF](http://gdl.graphisoft.com/tips-and-tricks/hsf-source-format) format introduced in Archicad 23. +Thus they are easier to maintain and also you can see the source code directly. Converting can be done by using the [LP_XMLConverter](http://gdl.graphisoft.com/tips-and-tricks/how-to-use-the-lp_xmlconverter-tool/). +The `.gsm` can be used directly and hasslefree. Please have a look at the compatibility down below. ---- +#### Why are you not using the XML exchange format? +I did for a while, but it's plain useless now that we have the HSF format available through the LP_XMLConverter. If you want to use the object right away, there is a `.gsm` provided; if you want to get a grasp of the code, the `.gdl` files are much more legible than the XML garbage (And also you can go and edit it in an instant by cloning the repo unto your PC). -### Compatibility +## Compatibility It is assumed that objects will be upwards compatible. Meaning: the version numbers above are the _lowest_ possible Archicad version where you can use the corresponding object. (If for any reason an object is not upwards compatible at some point in the future I will either make a new one, or will clearly state it here.) ---- +## License +The objects are licensed under different licenses. Please see per object. -If not stated otherwise the license is [Public Domain CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/). -Please consider making pull requests if you find and correct bugs and/or introduce new features! +## Contribute +Please consider making pull requests if you found bugs, corrected them, or introduced new features! --- - **Proudly made with [Sublime Text 3](https://www.sublimetext.com/) and the [GDL-Sublime](https://github.com/runxel/GDL-sublime) plugin.** _Tautological boilerplate: All trademarks and copyrights on this page are the property of their respective owners._ + +
+ +_For more fun hop over to the [playground](https://github.com/runxel/GDL-playground)._ diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..7868a0f --- /dev/null +++ b/docs/404.html @@ -0,0 +1,24 @@ +--- +permalink: /404 +layout: default +--- + + + +
+

404

+ +

Seite nicht gefunden :(

+
diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 0000000..59a5d71 --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,24 @@ +source "https://rubygems.org" +# Run with +# bundle exec jekyll serve (--port 4001) +# +# we use GitHub Pages +# gem "jekyll", "~> 4.0.1" +# To upgrade, run `bundle update github-pages`. +gem "github-pages", group: :jekyll_plugins +# PLUGINS +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.12" + gem "jekyll-relative-links" +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do + gem "tzinfo", "~> 1.2" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform? + diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock new file mode 100644 index 0000000..2e9bc5a --- /dev/null +++ b/docs/Gemfile.lock @@ -0,0 +1,256 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (6.0.3.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + zeitwerk (~> 2.2, >= 2.2.2) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.6) + dnsruby (1.61.3) + addressable (~> 2.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.12.0) + ffi (>= 1.3.0) + eventmachine (1.2.7) + execjs (2.7.0) + faraday (1.0.1) + multipart-post (>= 1.2, < 3) + ffi (1.13.1) + forwardable-extended (2.6.0) + gemoji (3.0.1) + github-pages (206) + github-pages-health-check (= 1.16.1) + jekyll (= 3.8.7) + jekyll-avatar (= 0.7.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.6) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.13.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.13.0) + jekyll-mentions (= 1.5.1) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.15.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.6.1) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.4) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.11.1) + kramdown (= 1.17.0) + liquid (= 4.0.3) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.10.4, < 2.0) + rouge (= 3.19.0) + terminal-table (~> 1.4) + github-pages-health-check (1.16.1) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (~> 3.0) + typhoeus (~> 1.3) + html-pipeline (2.13.0) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.8.7) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.3.1) + commonmarker (~> 0.14) + jekyll (>= 3.7, < 5.0) + jekyll-commonmark-ghpages (0.1.6) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1.2) + rouge (>= 2.0, < 4.0) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.13.0) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.5.1) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.15.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.1) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + rubyzip (>= 1.3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.4) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.11.1) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (1.17.0) + liquid (4.0.3) + listen (3.2.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + mini_portile2 (2.4.0) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.14.1) + multipart-post (2.1.1) + nokogiri (1.10.9) + mini_portile2 (~> 2.4.0) + octokit (4.18.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (3.1.1) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + rouge (3.19.0) + ruby-enum (0.8.0) + i18n + rubyzip (2.3.0) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (1.2.7) + thread_safe (~> 0.1) + tzinfo-data (1.2020.1) + tzinfo (>= 1.0.0) + unicode-display_width (1.7.0) + wdm (0.1.1) + zeitwerk (2.3.0) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + jekyll-feed (~> 0.12) + jekyll-relative-links + tzinfo (~> 1.2) + tzinfo-data + wdm (~> 0.1.1) + +BUNDLED WITH + 2.1.4 diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..edc3211 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,72 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'bundle exec jekyll serve'. If you change this file, please restart the server process. +# +# If you need help with YAML syntax, here are some quick references for you: +# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml +# https://learnxinyminutes.com/docs/yaml/ +# +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. + +title: "Runxel's Archicad Objects" +# email: mail@runxel.xyz +description: >- + Frisch aus dem Ofen die besten Archicad Objekte für Euch – kostenlos! +baseurl: /archicad-objects +repo_name: archicad-objects +# url: "https://runxel.xyz" +twitter_username: runxel +github_username: runxel +author: Lucas Becker +# lang: de + +# Build settings +plugins: + - jekyll-feed + - jekyll-relative-links + - jekyll-seo-tag + +# SEO +# see also https://jekyll.github.io/jekyll-seo-tag/usage/ +tagline: Kostenlose Archicad Objekte von Runxel. +twitter: + username: runxel + card: summary + +# Include for Collection +include: + - _objects + +collections: + objects: + output: true + +# Exclude from processing. +# The following items will not be processed, by default. +# Any item listed under the `exclude:` key here will be automatically added to +# the internal "default list". +# +# Excluded items can be processed by explicitly listing the directories or +# their entries' file path in the `include:` list. +# +# exclude: +# - .sass-cache/ +# - .jekyll-cache/ +# - gemfiles/ +# - Gemfile +# - Gemfile.lock +# - node_modules/ +# - vendor/bundle/ +# - vendor/cache/ +# - vendor/gems/ +# - vendor/ruby/ diff --git a/docs/_data/footer.yml b/docs/_data/footer.yml new file mode 100644 index 0000000..ac27e50 --- /dev/null +++ b/docs/_data/footer.yml @@ -0,0 +1,11 @@ +- link: https://github.com/runxel/archicad-objects/ + title: GitHub + icon: github + +- link: https://lucasbecker.de/ + title: Blog + emoji: 🌐 + +- link: https://discord.gg/HdafAUY + title: Discord + icon: discord diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html new file mode 100644 index 0000000..2c594b5 --- /dev/null +++ b/docs/_includes/footer.html @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/docs/_includes/head.html b/docs/_includes/head.html new file mode 100644 index 0000000..b3db94d --- /dev/null +++ b/docs/_includes/head.html @@ -0,0 +1,23 @@ + + + + + {{ site.title }} + {% if site.plugins.jekyll-seo == nil %} + {% if page.description %} + + {% endif %} + {% endif %} + + + + + + {%- seo title=false -%} + + + + + \ No newline at end of file diff --git a/docs/_includes/logo.html b/docs/_includes/logo.html new file mode 100644 index 0000000..5f08673 --- /dev/null +++ b/docs/_includes/logo.html @@ -0,0 +1 @@ + diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html new file mode 100644 index 0000000..29d2e3b --- /dev/null +++ b/docs/_layouts/default.html @@ -0,0 +1,22 @@ + + +{% include head.html %} + +
+
+ + +
+ +
+
+ {{ content }} +
+ + {% include footer.html %} + + diff --git a/docs/_objects/.gitkeep b/docs/_objects/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/docs/_objects/.gitkeep @@ -0,0 +1 @@ + diff --git a/docs/_objects/2D Complex Profile.md b/docs/_objects/2D Complex Profile.md new file mode 100644 index 0000000..2e724dd --- /dev/null +++ b/docs/_objects/2D Complex Profile.md @@ -0,0 +1,11 @@ +--- +title: 2D Complex Profile +description: | + Zur Anzeige von Profilen aus dem Profilmanager im 2D. _Anmerkung: Profilmodifikatoren können nicht verwendet werden. Es kann jedoch über `A` und `B` Stretchfaktoren eingegeben werden._ +description_en: | + Displays a selected complex profile in 2D. _Note: Profile modifiers can not be used. However you may use `A` and `B` as stretch factors._ +tags: 2D Profile +version: 1.1 +compat: 23 +lang: de +--- diff --git "a/docs/_objects/Baustoff\303\274bersicht.md" "b/docs/_objects/Baustoff\303\274bersicht.md" new file mode 100644 index 0000000..8389f4a --- /dev/null +++ "b/docs/_objects/Baustoff\303\274bersicht.md" @@ -0,0 +1,11 @@ +--- +title: Baustoffübersicht +description: | + Platziert sämtliche Baustoffe/BMats als Schraffuren im 2D und wahlweise als Blöcke im 3D. +description_en: | + Places all BMats as fills in 2D and as blocks in the 3D. +tags: 2D 3D Helferlein Baustoff BIM Audit +version: 1.0 +compat: 23 +lang: de +--- diff --git a/docs/_objects/Faltmarker.md b/docs/_objects/Faltmarker.md new file mode 100644 index 0000000..322699a --- /dev/null +++ b/docs/_objects/Faltmarker.md @@ -0,0 +1,11 @@ +--- +title: Faltmarker +description: | + Faltmarker zur Verwendung im Layout und der anschließenden (physischen) Ablage im A4-Endformat. DIN 824 konform. +description_en: | + Folding marker for the use in the layout. DIN 824 compliant. +tags: 2D Layout +version: 1.0 +compat: 20 +lang: de +--- diff --git a/docs/_objects/Fassaden Eigenes Paneel (Profil) LX24.md b/docs/_objects/Fassaden Eigenes Paneel (Profil) LX24.md new file mode 100644 index 0000000..6d8ab2a --- /dev/null +++ b/docs/_objects/Fassaden Eigenes Paneel (Profil) LX24.md @@ -0,0 +1,11 @@ +--- +title: Fassaden Eigenes Paneel (Profil) LX24 +description: | + Fassadenpaneel, welches aus dem Profilmanager kommt. +description_en: | + Curtain Wall panel which uses a profile from the profile manager als panel. +tags: 3D Fassade Paneel +version: 1.0 +compat: 24 +lang: de +--- diff --git a/docs/_objects/Gartenstuhl.md b/docs/_objects/Gartenstuhl.md new file mode 100644 index 0000000..50b7f4e --- /dev/null +++ b/docs/_objects/Gartenstuhl.md @@ -0,0 +1,11 @@ +--- +title: Gartenstuhl +description: | + Ein einfacher Gartenstuhl aus Holz. +description_en: | + A simple garden chair. +tags: 3D Möbel Stuhl Garten Staffage +version: 1.0 +compat: 23 +lang: de +--- diff --git a/docs/_objects/Glocke.md b/docs/_objects/Glocke.md new file mode 100644 index 0000000..d7217f9 --- /dev/null +++ b/docs/_objects/Glocke.md @@ -0,0 +1,11 @@ +--- +title: Glocke +description: | + Eine Glocke mit optionaler Aufhängung. +description_en: | + A simple church bell. +tags: 3D Kirche Glocke Denkmal Staffage +version: 1.0 +compat: 23 +lang: de +--- diff --git a/docs/_objects/Isokorb (Attika).md b/docs/_objects/Isokorb (Attika).md new file mode 100644 index 0000000..4cbce13 --- /dev/null +++ b/docs/_objects/Isokorb (Attika).md @@ -0,0 +1,12 @@ +--- +title: Isokorb (Attika) +description: | + Isokorb zur 2D Detaillierung von Attiken im Schnitt. +description_en: | + Isokorb for 2D detailing of parapet wall. +tags: 2D Detail Zeichnung +version: 1.0 +compat: 23 +lang: de +dependencies: "BasicGeometry macro (http://gdl.graphisoft.com/tips-and-tricks/using-basicgeometry-macro)" +--- diff --git a/docs/_objects/Konzentrisch.md b/docs/_objects/Konzentrisch.md new file mode 100644 index 0000000..a277624 --- /dev/null +++ b/docs/_objects/Konzentrisch.md @@ -0,0 +1,11 @@ +--- +title: Konzentrisch +description: | + Konzentrische Kreise im 2D. +description_en: | + Concentric rings. +tags: 2D Helferlein Zeichnung +version: 1.0 +compat: 23 +lang: de +--- diff --git a/docs/_objects/Kreis tangential an 2 Kreise LX.md b/docs/_objects/Kreis tangential an 2 Kreise LX.md new file mode 100644 index 0000000..a52f33d --- /dev/null +++ b/docs/_objects/Kreis tangential an 2 Kreise LX.md @@ -0,0 +1,12 @@ +--- +title: Kreis tangential an 2 Kreise LX +description: | + Erstellung eines Kreises, der tangential an zwei weiteren Kreisen liegt. +description_en: | + Draws a circle tangential to two other circles. +tags: 2D Helfer +version: 1.0 +compat: 24 +lang: de +dependency: BasicGeometry +--- diff --git "a/docs/_objects/Linientypen\303\274bersicht.md" "b/docs/_objects/Linientypen\303\274bersicht.md" new file mode 100644 index 0000000..3453f60 --- /dev/null +++ "b/docs/_objects/Linientypen\303\274bersicht.md" @@ -0,0 +1,11 @@ +--- +title: Linientypenübersicht +description: | + Zur Anzeige aller im Projekt vorhandenen Linientypen. +description_en: | + Displays all linetypes in the project. +tags: 2D Helferlein BIM Audit +version: 1.0 +compat: 24 +lang: de +--- diff --git a/docs/_objects/Locator LX.md b/docs/_objects/Locator LX.md new file mode 100644 index 0000000..9cdb384 --- /dev/null +++ b/docs/_objects/Locator LX.md @@ -0,0 +1,11 @@ +--- +title: Locator LX +description: | + Der 'Locator LX' dient dazu, die Koordinaten eines Punktes anzuzeigen. Kann auch in einer interaktiven Auswertung ausgewertet werden. +description_en: | + The 'Locator LX' displays the coordinates of a point. Can also be evaluated in an interactive schedule. +tags: 2d 3d Helferlein Auswertung +version: 1.1 +compat: 23 +lang: de +--- diff --git "a/docs/_objects/Ma\303\237kettenschablone LX.md" "b/docs/_objects/Ma\303\237kettenschablone LX.md" new file mode 100644 index 0000000..a6fed8b --- /dev/null +++ "b/docs/_objects/Ma\303\237kettenschablone LX.md" @@ -0,0 +1,11 @@ +--- +title: Maßkettenschablone LX +description: | + Schablone zur einfachen Platzierung von Maßketten der Außenbemaßung mit Beschriftung. +description_en: | + Guide to place dimensions easily. +tags: 2D Helferlein Bemaßung Beschriftung +version: 1.1 +compat: 24 +lang: de +--- diff --git a/docs/_objects/Nummerierung.md b/docs/_objects/Nummerierung.md new file mode 100644 index 0000000..2866204 --- /dev/null +++ b/docs/_objects/Nummerierung.md @@ -0,0 +1,11 @@ +--- +title: Nummerierung +description: | + Zur schnellen, linearen Nummerierung im 2D. Unterstützter Output: numerisch (1, 2, 3, …), römisch (I, II, III, …) und Buchstaben (a, b, c, …). +description_en: | + Let's you quickly enumerate linearly in the floorplan. Has numeric (1, 2, 3, …), roman (I, II, III, …) und alpha (a, b, c, …) output. +tags: 2D Helferlein Beschriftung +version: 1.1 +compat: 23 +lang: de +--- diff --git a/docs/_objects/Platzierschablone.md b/docs/_objects/Platzierschablone.md new file mode 100644 index 0000000..6dcfb49 --- /dev/null +++ b/docs/_objects/Platzierschablone.md @@ -0,0 +1,11 @@ +--- +title: Platzierschablone +description: | + Helferchen für Platzierung von Objekten mit Abstand nach außen. +description_en: | + Helping guide for placement. +tags: 2D Helferlein Zeichnung +version: 1.0 +compat: 24 +lang: de +--- diff --git a/docs/_objects/Polygon.md b/docs/_objects/Polygon.md new file mode 100644 index 0000000..eecb7e2 --- /dev/null +++ b/docs/_objects/Polygon.md @@ -0,0 +1,11 @@ +--- +title: Polygon +description: | + Regelmäßiges, in einen Kreis eingeschriebenes Polygon mit 3–360 Ecken. +description_en: | + A regular polygon inscribed in a circle with 3–360 vertices. +tags: 2D Helferlein Zeichnung +version: 1.1 +compat: 23 +lang: de +--- diff --git a/docs/_objects/Profilierte Setzstufe LX23.md b/docs/_objects/Profilierte Setzstufe LX23.md new file mode 100644 index 0000000..232e921 --- /dev/null +++ b/docs/_objects/Profilierte Setzstufe LX23.md @@ -0,0 +1,11 @@ +--- +title: Profilierte Setzstufe LX23 +description: | + Modifikation der 'Profilierten Setzstufe 23' von Graphisoft. Man kann nun zum einen das Setzstufenprofil auf die Höhe der Setzstufe strecken, sodass man bei Änderungen nicht unbedingt stets auch das Profil anpassen muss. Zum anderen ist es nun möglich Löcher in Lauflinienrichtung in die Setzstufe zu schneiden. Das Objekt bietet dabei viele Anpassungsmöglichkeiten. +description_en: | + Modifiction of the 'Profiled Riser 23', provided by Graphisoft. You are now able to stretch the profile to fit the riser height. Also it is possible to cut holes orthogonally with many settings to customize. +tags: 3D Profile Treppe Stufe +version: 1.1 +compat: 23 +lang: de en +--- diff --git a/docs/_objects/Rollstuhlgerecht.md b/docs/_objects/Rollstuhlgerecht.md new file mode 100644 index 0000000..7cfed2a --- /dev/null +++ b/docs/_objects/Rollstuhlgerecht.md @@ -0,0 +1,11 @@ +--- +title: Rollstuhlgerecht +description: | + Zur Überprüfung von Bewegungsflächen und des Wendekreises eines Rollstuhlfahrers. +description_en: | + For checking of turning circle of wheelchair users. +tags: 2D Helferlein Rechtliches +version: 1.0 +compat: 22 +lang: de +--- diff --git "a/docs/_objects/Schraffur\303\274bersicht.md" "b/docs/_objects/Schraffur\303\274bersicht.md" new file mode 100644 index 0000000..22f7401 --- /dev/null +++ "b/docs/_objects/Schraffur\303\274bersicht.md" @@ -0,0 +1,11 @@ +--- +title: Schraffurübersicht +description: | + Darstellung aller im Projekt verwendeten Schraffuren im Grundriss. +description_en: | + Displays all fills in the current project. +tags: 2D Helferlein Druck BIM Audit +version: 1.0 +compat: 24 +lang: de +--- diff --git a/docs/_objects/Simple Panel LX24.md b/docs/_objects/Simple Panel LX24.md new file mode 100644 index 0000000..d7025cd --- /dev/null +++ b/docs/_objects/Simple Panel LX24.md @@ -0,0 +1,11 @@ +--- +title: Simple Panel LX24 +description: | + Modifikation des "Integrierten Fassadenpaneels" von Graphisoft. Im Grundriss werden Symbolschraffuren des verwendeten Baustofft jetzt richtig skaliert. Außerdem kann das Paneel von der Referenzlinie geoffsetet werden. +description_en: | + Modification of the "Integrated Curtain Wall Panel" by Graphisoft. Fills are now correctly scaled in plan. Furthermore the panel can be offsetted from the reference line. +tags: 3D Fassade Paneel +version: 1.1 +compat: 24 +lang: de en +--- diff --git a/docs/_objects/Spannrichtung.md b/docs/_objects/Spannrichtung.md new file mode 100644 index 0000000..2da2f47 --- /dev/null +++ b/docs/_objects/Spannrichtung.md @@ -0,0 +1,11 @@ +--- +title: Spannrichtung +description: | + Zeigt die Spannrichtung von Deckenplatten im Tragwerksplan an. Darstellung gemäß DIN 1356-1 (12.4). +description_en: | + Shows the direction of stress in ceiling slabs in the structural plan. Representation according to DIN 1356-1. +tags: 2D Helferlein Tragwerk Zeichnung +version: 3.0 +compat: 23 +lang: de +--- diff --git a/docs/_objects/Stiftfarben.md b/docs/_objects/Stiftfarben.md new file mode 100644 index 0000000..b7f676b --- /dev/null +++ b/docs/_objects/Stiftfarben.md @@ -0,0 +1,11 @@ +--- +title: Stiftfarben +description: | + Erweiterung des mitgelieferten 'Stiftfarben' Objekts. Dabei wurden die Standardeinstellungen etwas geändert, Schreibfehler ausgebessert und unsinnige Eingaben ausgeschlossen. Außerdem wurde die numerische Ausgabe der Farben um Webfarbcodes (Hexcode, z.B. `#fefefe`) erweitert. +description_en: | + An extension to the default supplied 'pen color test' object (the one you ought to print and check your pen colors). Displays now also hexcodes (like `#fefefe`). +tags: 2D Helferlein Druck BIM Audit +version: 1.0 +compat: 23 +lang: de +--- diff --git a/docs/_objects/Tangenten an 2 Kreisen LX.md b/docs/_objects/Tangenten an 2 Kreisen LX.md new file mode 100644 index 0000000..1e3c08f --- /dev/null +++ b/docs/_objects/Tangenten an 2 Kreisen LX.md @@ -0,0 +1,11 @@ +--- +title: Tangenten an 2 Kreisen LX +description: | + Erstellung von Außen- und Kreuztangenten zwischen zwei Kreisen. +description_en: | + Draws outer and cross tangents between two circles. +tags: 2D Helfer +version: 1.0 +compat: 24 +lang: de +--- diff --git a/docs/_objects/Text auf Polylinie.md b/docs/_objects/Text auf Polylinie.md new file mode 100644 index 0000000..55fad9a --- /dev/null +++ b/docs/_objects/Text auf Polylinie.md @@ -0,0 +1,12 @@ +--- +title: Text auf Polylinie +description: | + Zur Darstellung von Text auf einer Polylinie, auch in 3D. Nutzbar für Höhenlinien, Grenzen, u.ä. +description_en: | + Shows text on a polyline, even in 3D. Use cases are elevation lines, boundary curves, etc. +tags: 2D 3D Zeichnung +version: 1.0 +compat: 20 +lang: de +credits: Esteban Ramos for his polyline code +--- diff --git "a/docs/_objects/Verk\303\274rzer.md" "b/docs/_objects/Verk\303\274rzer.md" new file mode 100644 index 0000000..2036235 --- /dev/null +++ "b/docs/_objects/Verk\303\274rzer.md" @@ -0,0 +1,11 @@ +--- +title: Verkürzer +description: | + Darstellung eines Symbol zur Verkürzung/Auslassung bei runden Stabelementen (z.B. Pfahlgründungen). +description_en: | + Display a 'shortening' symbol. +tags: 2D Zeichnung +version: 1.0 +compat: 23 +lang: de +--- diff --git "a/docs/_objects/Wandpr\303\274fer LX.md" "b/docs/_objects/Wandpr\303\274fer LX.md" new file mode 100644 index 0000000..58c8962 --- /dev/null +++ "b/docs/_objects/Wandpr\303\274fer LX.md" @@ -0,0 +1,11 @@ +--- +title: Wandprüfer LX +description: | + Zur Überprüfung von schief gezeichneten Wänden im Grundriss. +description_en: | + To detect misplaced walls in the floor plan. +tags: 2D Etikett Helferlein +version: 1.0 +compat: 24 +lang: de +--- diff --git a/docs/_sass/base.scss b/docs/_sass/base.scss new file mode 100644 index 0000000..878963d --- /dev/null +++ b/docs/_sass/base.scss @@ -0,0 +1,51 @@ +@charset "utf-8"; + +html { + height: 100%; + max-height: 100%; + font-size: 10px; + -webkit-tap-highlight-color: transparent +} + +body { + display: flex; + flex-direction: column; + height: 100%; + max-height: 100%; + min-height: 100vh; + + color: $text-color; + background-color: $background-color; +} + +.wrapper { + flex: 1; + max-width: 900px; + margin: 0 auto; + padding: 0 30px; + position: relative; +} + +::selection { + color: $text-color; + background-color: $selection-color; + text-shadow: none; +} + +.noise { + /* A nice pure CSS noise. + * source: https://gist.github.com/Sulcalibur/5178883 */ + position: relative; + z-index: 1; + + &::before { + content: ""; + position: absolute; + z-index: -1; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==); + } +} diff --git a/docs/_sass/cards.scss b/docs/_sass/cards.scss new file mode 100644 index 0000000..975b053 --- /dev/null +++ b/docs/_sass/cards.scss @@ -0,0 +1,92 @@ +@charset "utf-8"; + +.card { + display: grid; + gap: 1em; + grid-template-columns: auto 200px; + min-width: 100%; + margin: 1em 0 2em; + padding: 1em; + border-radius: 20px; + box-shadow: 5px 5px 10px #d6d6d6, + -5px -5px 10px #ffffff; + + ul.obj-tags { + list-style-type: none; + margin: 0; + margin-bottom: 1em; + padding: 0; + text-transform: lowercase; + + li { + font-size: 70%; + display: inline-block; + margin-right: 1em; + padding: 0 0.5em; + border-radius: 10px; + background: $background-color; + box-shadow: 5px 5px 10px #d4d4d4, + -5px -5px 10px #ffffff; + + .hash { + filter: opacity(0.7); + } + } + } + + h2 { + margin: 0.4em 0; + } + + .preview { + overflow: hidden; + border-radius: 10px; + box-shadow: 5px 5px 10px #e4e4e4, + -5px -5px 10px #f8f8f8; + } + + .download { + padding: 0.3em 1.2em; + border-radius: 4px; + background: linear-gradient(145deg, #ffffff, #e5e5e5); + box-shadow: 8px 8px 25px #d5d5d5, + -8px -8px 25px #ffffff; + vertical-align: middle; + display: inline-block; + text-decoration: none; + text-transform: uppercase; + + &:hover { + background: linear-gradient(145deg, #d6d6d6, #ffffff); + box-shadow: 5px 5px 10px #d6d6d6, + -5px -5px 10px #ffffff; + } + &:active { + background: $background-color; + box-shadow: inset 5px 5px 10px #d6d6d6, + inset -5px -5px 10px #ffffff; + } + } + + .compatibility { + .icon { + margin: 0 5px; + position: relative; + top: 3px; + // and now: a crazy hack to turn a black icon into blue: + // see https://stackoverflow.com/questions/42966641/how-to-transform-black-into-any-given-color-using-only-css-filters/43960991#43960991 + filter: invert(25%) sepia(67%) saturate(815%) hue-rotate(176deg) brightness(90%) contrast(84%); + } + } + + .version { + margin-left: 2em; + font-size: 70%; + } +} + +.divider { + background-image:radial-gradient(currentColor .7px, transparent .7px); + background-size:calc(10 * .5px) calc(10 * .5px); + height: 15px; +} diff --git a/docs/_sass/footer.scss b/docs/_sass/footer.scss new file mode 100644 index 0000000..abd0b70 --- /dev/null +++ b/docs/_sass/footer.scss @@ -0,0 +1,45 @@ +footer { + background: #000851; + color: $light-grey; + padding: 20px 0; + + .emoji { + filter: saturate(0); + } + + .icon { + position: relative; + top: 2px; + filter: invert(0.9); //its black otherwise + } + + .copyright { + margin: 0; + text-align: center; + font-size: .9em; + } + + a { + text-decoration: none; + color: $light-grey; + + &:hover { + color: #fff; + border-top: 2px dotted #fff; + } + } + + ul { + display: flex; + margin: 0 auto; + padding: 0; + width: 300px; + list-style: none; + text-align: center; + justify-content: space-between; + } + + li { + display: inline-block; + } +} diff --git a/docs/_sass/header.scss b/docs/_sass/header.scss new file mode 100644 index 0000000..7097cf4 --- /dev/null +++ b/docs/_sass/header.scss @@ -0,0 +1,149 @@ +@charset "utf-8"; + +header { + padding: 16px 0 10px 0; + background: linear-gradient(100deg, #1CB5E0 0%, #000851 100%); + color: #fff; + + form { + position: relative; + + input[type=search] { + box-sizing: border-box; + width: 100%; + } + } + + + .logo { + position: absolute; + right: 0; + + svg { + fill: #ffffff3d; + width: 100%; + height: 200px; + min-width: 500px; + } + } + + form svg { + fill: #eee; + } + + nav { + @media #{$mid-point} { + flex: 1; + margin: 0 0 0 10px; + display: block; + + form { + position: absolute; + right: 25px; + top: 4px; + text-align: right; + } + + input[type="search"] { + max-width: 300px; + } + } + display: none; + + input[type="search"] { + width: 100%; + padding: 5px 10px; + } + + svg { + position: absolute; + top: 6px; + right: 7px; + width: 25px; + cursor: pointer; + } + + a { + color: #fff; + text-decoration: none; + display: block; + padding: 20px 0; + + @media #{$mid-point} { + display: inline-block; + padding: 7px 0; + margin: 0 15px; + border-bottom: 2px solid rgba(255, 255, 255, 0) + } + + &.active, &.active:hover { + border-bottom-color: rgba(255, 255, 255, .3); + } + + &:hover { + text-decoration: none; + color: #fff; + @media #{$mid-point} { + border-bottom-color: rgba(255, 255, 255, .1); + } + } + } + } +} + +.nav-open header nav { + display: block; +} + +.nav-toggle { + position: absolute; + right: 25px; + font-size: 1.6em; + line-height: 1em; + text-decoration: none; + color: #fff; + top: 4px; + + @media #{$mid-point} { + display: none; + } +} + +.hero_search { + text-align: center; + flex: 0 0 100%; + padding: 60px 0 30px 0; + + form { + position: relative; + max-width: 800px; + margin: 0 auto; + padding: 20px 0; + + svg { + fill: #eee; + position: absolute; + top: 31px; + right: 12px; + display: inline-block; + width: 36px; + height: 40px; + cursor: pointer; + } + } + + h1 { + // font-size: 2.4em; + color: #fff; + } + + input[type=search] { + margin: 0; + color: #555; + padding: 15px; + font-size: 1.1em; + border-radius: 8px; + box-shadow: 6px 6px 17px #26356aaa, + -6px -6px 17px #309ed1aa; + } +} \ No newline at end of file diff --git a/docs/_sass/search.scss b/docs/_sass/search.scss new file mode 100644 index 0000000..fd66b35 --- /dev/null +++ b/docs/_sass/search.scss @@ -0,0 +1,24 @@ +#search-results { + margin: 0; + padding: 0; + + li { + list-style: none; + margin: 0; + padding: 0; + + h4 { + margin: 20px 0 10px 0; + } + + p { + line-height: 1.5; + padding: 0; + margin: 0; + } + } +} + +#search-query { + font-weight: bold; +} \ No newline at end of file diff --git a/docs/_sass/typography.scss b/docs/_sass/typography.scss new file mode 100644 index 0000000..b1125dd --- /dev/null +++ b/docs/_sass/typography.scss @@ -0,0 +1,241 @@ +@charset "utf-8"; + +body { + font-family: $base-font-family; + letter-spacing: 0.01rem; + font-size: 1.8em; + line-height: 1.75em; + -webkit-font-feature-settings: 'kern' 1; + -moz-font-feature-settings: 'kern' 1; + -o-font-feature-settings: 'kern' 1; + text-rendering: geometricPrecision +} + +h1, h2, h3, h4, h5, h6, +input, label, select, textarea, table, header, footer, .categories, .listing, .sidebar, .tutorial-share, .modalDialog, .faq ul, .tutorial-series ul { + -webkit-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + -moz-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + -o-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + font-family: $base-font-family; + text-rendering: geometricPrecision; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.15em; + margin: 0 0 0.4em 0; + font-weight: 500; +} + +h1 { + font-size: 5rem; + letter-spacing: -2px; + text-indent: -3px; +} + +.tutorial-content h1 { + font-size: 4.5rem; + margin: 0 0 .7em 0; +} + +h2 { + font-size: 3.6rem; + letter-spacing: -1px; +} + +h3 { + font-size: 3rem; +} + +h4 { + font-size: 2.5rem; +} + +h5 { + font-size: 2rem; +} + +h6 { + font-size: 2rem; +} + +a { + color: $link-color; + transition: color 0.3s ease; + + &:hover { + color: $link-hover-color; + } +} + +p, +ul, +ol, +dl { + -webkit-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + -moz-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + -o-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + margin: 0 0 1.75em 0; + text-rendering: geometricPrecision; +} + +ol, +ul { + padding-left: 3rem; +} + +ol ol, +ul ul, +ul ol, +ol ul { + margin: 0 0 0.4em 0; + padding-left: 2em; +} + +li { + margin: 0.4em 0; +} + +li li { + margin: 0; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: #EFEFEF 1px solid; + margin: 3.2em 0; + padding: 0; +} + +blockquote { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: 1.75em 0 1.75em -2.2em; + padding: 0 0 0 1.75em; + border-left: #4A4A4A 0.4em solid; +} + +blockquote p { + margin: 0.8em 0; + font-style: italic; +} + +blockquote small { + display: inline-block; + margin: 0.8em 0 0.8em 1.5em; + font-size: 0.9em; + color: #CCC; +} + +blockquote small:before { + content: "\2014 \00A0"; +} + +blockquote cite { + font-weight: 700; +} + +blockquote cite a { + font-weight: normal; +} + +mark { + background-color: #fdffb6; +} + +kbd { + display: inline-block; + margin-bottom: 0.4em; + padding: 1px 8px; + border: #CCC 1px solid; + color: #666; + text-shadow: #FFF 0 1px 0; + font-size: 0.9em; + font-weight: 700; + background: #F4F4F4; + border-radius: 4px; + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 1px 0 0 #fff inset +} + +code, pre { + font-family: $base-font-family-mono; +} + +@media only screen and (max-width: 900px) { + blockquote { + margin-left: 0 + } + hr { + margin: 2.4em 0 + } + ol, + ul { + padding-left: 2em + } + h1 { + font-size: 4.5rem; + text-indent: -2px + } + h2 { + font-size: 3.6rem + } + h3 { + font-size: 3.1rem + } + h4 { + font-size: 2.5rem + } + h5 { + font-size: 2.2rem + } + h6 { + font-size: 1.8rem + } +} + +@media only screen and (max-width: 500px) { + hr { + margin: 1.75em 0 + } + p, + ul, + ol, + dl { + font-size: 0.95em; + margin: 0 0 2.5rem 0 + } + h1, + h2, + h3, + h4, + h5, + h6 { + margin: 0 0 0.3em 0 + } + h1 { + font-size: 2.8rem; + letter-spacing: -1px + } + h2 { + font-size: 2.4rem; + letter-spacing: 0 + } + h3 { + font-size: 2.1rem + } + h4 { + font-size: 1.9rem + } + h5 { + font-size: 1.8rem + } + h6 { + font-size: 1.8rem + } +} \ No newline at end of file diff --git a/docs/_sass/variables.scss b/docs/_sass/variables.scss new file mode 100644 index 0000000..74aae1e --- /dev/null +++ b/docs/_sass/variables.scss @@ -0,0 +1,55 @@ +@charset "utf-8"; + +// Breakpoints +$tablet: "(min-width: 450px)"; +$mid-point: "(min-width: 750px)"; +$desktop: "(min-width: 900px)"; + +$content-width: 800px !default; + +// Typography +$base-font-family: "Open Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !default; +$base-font-family-mono: Consolas, Monaco, 'Space Mono', "Lucida Console", "DejaVu Sans Mono", monospace !default; +$base-font-size: 16px !default; +$base-font-weight: 400 !default; +$small-font-size: $base-font-size * 0.875 !default; +$base-line-height: 1.5 !default; + +$spacing-unit: 30px !default; + +// Colors +$text-color: #2c2c2c !default; +$background-color: #eeeeee !default; +$dark-grey: #222; +$medium-grey: #666; +$light-grey: #ccc; +$header-color: #23a4c5; +$selection-color: hsla(337, 75%, 51%, 0.5); + +$link-color: #4A4A4A; +$link-hover-color: #111; + +// MIXINS +@mixin relative-font-size($ratio) { + font-size: $base-font-size * $ratio; +} + +@mixin transition($time: 0.5s, $what: all) { + transition: $time $what ease-in-out; +} + +@mixin border-radius($radius: 7px) { + border-radius: $radius; +} + +@mixin box-shadow { + box-shadow: + 0 0.7px 2.4px -16px rgba(0, 0, 0, 0.001), + 0 1.7px 5.4px -16px rgba(0, 0, 0, 0.003), + 0 3px 9.3px -16px rgba(0, 0, 0, 0.005), + 0 5px 15px -16px rgba(0, 0, 0, 0.008), + 0 8.2px 24px -16px rgba(0, 0, 0, 0.013), + 0 14.3px 40.5px -16px rgba(0, 0, 0, 0.019), + 0 31px 84px -16px rgba(0, 0, 0, 0.03) + ; +} \ No newline at end of file diff --git a/docs/_sass/vendor/normalize.scss/normalize.scss b/docs/_sass/vendor/normalize.scss/normalize.scss new file mode 100644 index 0000000..ce38a4f --- /dev/null +++ b/docs/_sass/vendor/normalize.scss/normalize.scss @@ -0,0 +1,427 @@ +/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/docs/_sass/vendor/normalize.scss/package.json b/docs/_sass/vendor/normalize.scss/package.json new file mode 100644 index 0000000..2d051c2 --- /dev/null +++ b/docs/_sass/vendor/normalize.scss/package.json @@ -0,0 +1,70 @@ +{ + "_args": [ + [ + "normalize.scss", + "/Users/pmarsceill/_projects/just-the-docs" + ] + ], + "_from": "normalize.scss@*", + "_id": "normalize.scss@0.1.0", + "_inCache": true, + "_installable": true, + "_location": "/normalize.scss", + "_nodeVersion": "0.10.32", + "_npmUser": { + "email": "alexguerrero1092@gmail.com", + "name": "alexguerrero" + }, + "_npmVersion": "2.0.2", + "_phantomChildren": {}, + "_requested": { + "name": "normalize.scss", + "raw": "normalize.scss", + "rawSpec": "", + "scope": null, + "spec": "*", + "type": "range" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npmjs.org/normalize.scss/-/normalize.scss-0.1.0.tgz", + "_shasum": "4a21dc25bd4c019c857785f829b658aba2a8f9ab", + "_shrinkwrap": null, + "_spec": "normalize.scss", + "_where": "/Users/pmarsceill/_projects/just-the-docs", + "author": "", + "bugs": { + "url": "https://github.com/guerrero/normalize.scss/issues" + }, + "dependencies": {}, + "description": "Normalize.scss as a node packaged module", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "4a21dc25bd4c019c857785f829b658aba2a8f9ab", + "tarball": "https://registry.npmjs.org/normalize.scss/-/normalize.scss-0.1.0.tgz" + }, + "files": [ + "normalize.scss" + ], + "gitHead": "d67d517e28615a873066438af1d4845c157c9baf", + "homepage": "https://github.com/guerrero/normalize.scss", + "license": "MIT", + "maintainers": [ + { + "name": "alexguerrero", + "email": "alexguerrero1092@gmail.com" + } + ], + "name": "normalize.scss", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git://github.com/guerrero/normalize.scss.git" + }, + "scripts": {}, + "style": "normalize.scss", + "version": "0.1.0" +} diff --git a/docs/css/style.scss b/docs/css/style.scss new file mode 100644 index 0000000..de21cbd --- /dev/null +++ b/docs/css/style.scss @@ -0,0 +1,27 @@ +--- +# Only the main Sass file needs front matter +--- + +// ext dependencies +@import "./vendor/normalize.scss/normalize.scss"; + + +// {% if site.color_scheme == "dark" %} +// @import "./color_schemes/dark.scss"; +// {% endif %} + +// Modules +// @import "./base"; +// @import "./labels"; +// Import partials +@import + "./variables", + "./base", + "./typography", + "./header", + "./cards", + "./footer" + ; + + // TODO: + // "./search", diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..a845151 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,2 @@ +--- +--- diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..119ee79 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,23 @@ +--- +layout: default +--- +
+{% for obj in site.objects %} +
+
+
    +{% for tag in obj.tags %} +
  • #{{ tag }}
  • +{% endfor %} +
+
+

{{ obj.title }}

+
{{ obj.description | markdownify }}
+Download +icon{{ obj.compat }} +Version: {{ obj.version }} +
+{{ obj.title }} icon +
+{% endfor %} +
diff --git a/makeGSM.ps1 b/makeGSM.ps1 new file mode 100644 index 0000000..6334da6 --- /dev/null +++ b/makeGSM.ps1 @@ -0,0 +1,41 @@ +<# PS script to use with the pucelle.run-and-save Plugin for VSC #> +<# Put the following into your *.code-workspace file: + "settings": { + "runOnSave.commands": [ + { + "match": "\\.gdl$", + "command": "Powershell.exe -File ${workspaceFolder}\\makeGSM.ps1 ${file}", + "runIn": "terminal", + "runningStatusMessage": "LP_XMLConverter" + } + ] + } +#> +param ( + [string] $source, + [string] $dest = $null +) + +$AC_VER = "24" +$LPXCONV_PATH = "C:/Program Files/GRAPHISOFT/ARCHICAD $AC_VER/LP_XMLConverter.exe" +$COMM = "hsf2libpart" + +# $source is a path to a GDL file +$source_base = Split-Path -Path $source | Split-Path +# went two folders up +$main_name = Split-Path -Path $source_base -Leaf + +if ($dest -eq "") { + $dest = $source_base + ".gsm" +} + +# write-host $source_base +# write-host $dest + +# -NoNewWindow will not spawn a new terminal but use the VSC one instead +# and a stupid trick: +# those weirdos @MS didn't thought of spaces, so we do have to +# with ridiculous triple quotes +Start-Process -NoNewWindow -FilePath "`"$LPXCONV_PATH`"" -ArgumentList $COMM, "`"$source_base`"", "`"$dest`"" + +# write-host "Finished." diff --git a/tpl/CHANGELOG.md b/tpl/CHANGELOG.md new file mode 100644 index 0000000..4423276 --- /dev/null +++ b/tpl/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog +All notable changes to this object will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project has heard of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## Compatibility +Archicad version XX + +## [Unreleased] + +## [1.1] – 20YY-MM-DD +### Fixed +- .... + +### Added +- ..... + +## [1.0] – 20YY-MM-DD +First version of this object published. diff --git a/tpl/README.md b/tpl/README.md new file mode 100644 index 0000000..f6479cd --- /dev/null +++ b/tpl/README.md @@ -0,0 +1,12 @@ +--- +title: XXX +description: | + Beschreibung +description_en: | + Description +tags: +version: 1.0 +compat: 2x +lang: de +credits: +--- diff --git a/tpl/description_tpl.txt b/tpl/description_tpl.txt new file mode 100644 index 0000000..8c8943e --- /dev/null +++ b/tpl/description_tpl.txt @@ -0,0 +1,6 @@ +{{{Beschreibung}}} +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# vM.M | 20YY-MM-DD +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# runxel.xyz +# visit https://runxel.xyz/archicad-objects \ No newline at end of file