{"id":359640,"date":"2024-05-21T00:36:48","date_gmt":"2024-05-21T00:36:48","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=359640"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=359640","title":{"rendered":"<span>\u041f\u0438\u0448\u0435\u043c Python-\u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f FreeCAD<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>0. \u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435<\/h3>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u0447\u0430\u0442\u044c \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c 3D-\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0412\u044b\u0431\u0440\u0430\u0432 FreeCAD \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0421\u0410\u041f\u0420 \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 (\u0430 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0439 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0438\u0437-\u043f\u043e\u0434 Linux), \u044f \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0445 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445. \u041e\u0434\u0438\u043d \u043c\u043e\u0439 \u0434\u0440\u0443\u0433, \u043f\u0440\u043e\u0437\u043d\u0430\u0432 \u043e \u043c\u043e\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u043d\u0438\u0438, \u0434\u0430\u043b \u043c\u043d\u0435 \u0434\u043b\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u043a\u0443:<\/p>\n<blockquote>\n<p>\u041e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430 \u0434\u043b\u044f \u0438\u0433\u0440\u0443\u0448\u0435\u0447\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u0442\u043e\u043b\u0435\u0442\u0438\u043a\u0430 \u043f\u043e\u0434 7 \u043f\u0443\u043b\u0435\u043a<\/p>\n<\/blockquote>\n<p>\u0414\u0435\u0441\u043a\u0430\u0442\u044c, \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u043f\u043e\u0434 \u0448\u0435\u0441\u0442\u044c \u043f\u0443\u043b\u0435\u043a \u043f\u0440\u043e\u0441\u0442\u043e, \u0442\u0430\u043c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439, \u0430 \u0442\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439 \u043f\u043e\u0434 \u0441\u0435\u043c\u044c \u043e\u0442\u0440\u0438\u0441\u0443\u0439!<br \/> \u0418, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0432, \u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u043f\u043e\u0434 7:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mb\/pw\/x3\/mbpwx3ns8bto8wakm1kpqkubzqi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mb\/pw\/x3\/mbpwx3ns8bto8wakm1kpqkubzqi.png\"\/><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/al\/mx\/kh\/almxkhmf8knhbnqi5hg_up6noaq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/al\/mx\/kh\/almxkhmf8knhbnqi5hg_up6noaq.png\"\/><\/figure>\n<p>\u0410 \u043f\u043e\u0442\u043e\u043c \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043b, \u0447\u0442\u043e freeCAD \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435, \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u043f\u043e\u0434 N \u043f\u0443\u043b\u0435\u043a. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0430\u043c \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0432 \u043b\u044e\u0431\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438: <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ma\/rl\/8s\/marl8sn0myg98cmeada1wupyt3q.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ma\/rl\/8s\/marl8sn0myg98cmeada1wupyt3q.png\"\/><\/figure>\n<p> \u0418 \u0445\u043e\u0442\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0441\u043f\u043e\u0440\u043d\u043e\u0439, \u044d\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0430\u0437\u0430\u0445 freeCAD, \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u044d\u0442\u0443 \u0421\u0410\u041f\u0420. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e &#8212; \u043f\u0440\u043e\u0448\u0443 \u043f\u043e\u0434 CAD:) <\/p>\n<h3>1. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0443\u0447\u043a\u0430\u043c\u0438<\/h3>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u043f\u043e\u0434 N \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439. \u0412\u043e\u0442 \u043a\u0430\u043a \u043c\u044b \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0438 \u0431\u044b \u0442\u0430\u043a\u043e\u0439 \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e:<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c N+1 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 (\u0432 \u0432\u0435\u0440\u0441\u0442\u0430\u043a\u0435 Part). \u041e\u0434\u0438\u043d \u0433\u043b\u0430\u0432\u043d\u044b\u0439, \u0441 \u0432\u044b\u0441\u043e\u0442\u043e\u0439 20 \u0438 \u0434\u0438\u0430\u043c\u0435\u0442\u0440\u043e\u043c 10, \u0438 N \u043f\u043e\u0434 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f (\u043d\u0430\u0437\u043e\u0432\u0451\u043c \u0438\u0445 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438): <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/9v\/nb\/ir\/9vnbir0oqkqgaibqdk1b-pgjos4.png\" data-src=\"https:\/\/habrastorage.org\/webt\/9v\/nb\/ir\/9vnbir0oqkqgaibqdk1b-pgjos4.png\"\/><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/sq\/pt\/uw\/sqptuwh2dlqy78ifmvfkz1wcqnc.png\" data-src=\"https:\/\/habrastorage.org\/webt\/sq\/pt\/uw\/sqptuwh2dlqy78ifmvfkz1wcqnc.png\"\/><\/figure>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0434\u0430\u0434\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043d\u0430\u0448\u0438\u043c \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430\u043c, \u043f\u0440\u0438\u0434\u0430\u0434\u0438\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0438\u0445 \u0432 &#171;\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435&#187; \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043d\u0438\u0436\u0435. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0432\u043e\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u0434\u043b\u044f 7 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439:<\/p>\n<p>x  y<br \/> 1:  6.97  0.0<br \/> 2:  4.35  5.45<br \/> 3: -1.55  6.8<br \/> 4: -6.28  3.03<br \/> 5: -6.28 -3.03<br \/> 6: -1.55 -6.8<br \/> 7:  4.35 -5.45<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qx\/yj\/ex\/qxyjexznaqwcqthxiavh2bczclg.png\" data-src=\"https:\/\/habrastorage.org\/webt\/qx\/yj\/ex\/qxyjexznaqwcqthxiavh2bczclg.png\"\/><\/figure>\n<ul>\n<li>\n<p>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b \u0432 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 (Part_Fuse \u0438\u043b\u0438 Union). \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0442\u0430\u043a: \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u0441\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b Cylinder001-Cylinder007 \u0447\u0435\u0440\u0435\u0437 Ctrl \u0438\u043b\u0438 Shift, \u043f\u043e\u0441\u043b\u0435 \u043a\u043b\u0438\u043a\u0430\u0435\u043c \u043f\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0443 Union \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0441\u0432\u0435\u0440\u0445\u0443. \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Fuz: <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/to\/ew\/ut\/toewutxuliz06lxs4kzjo8btaku.png\" data-src=\"https:\/\/habrastorage.org\/webt\/to\/ew\/ut\/toewutxuliz06lxs4kzjo8btaku.png\"\/><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/-w\/l-\/yd\/-wl-yd1ne2xdaaokdzqkynanaty.png\" data-src=\"https:\/\/habrastorage.org\/webt\/-w\/l-\/yd\/-wl-yd1ne2xdaaokdzqkynanaty.png\"\/><\/figure>\n<\/li>\n<li>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0443 \u0438 \u043d\u0430\u0448\u0435\u043c\u0443 \u043d\u043e\u0432\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e Fuz \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e Cut. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440, \u043f\u043e\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 Ctrl \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044e Fuz. \u0418 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c Cut \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432: <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/c9\/az\/fj\/c9azfjzjqlzu8jokmn53t3w6cju.png\" data-src=\"https:\/\/habrastorage.org\/webt\/c9\/az\/fj\/c9azfjzjqlzu8jokmn53t3w6cju.png\"\/><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/rm\/ds\/6u\/rmds6uyxmjw4tdfntjxmamxo5kk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/rm\/ds\/6u\/rmds6uyxmjw4tdfntjxmamxo5kk.png\"\/><\/figure>\n<\/li>\n<\/ul>\n<p>\u0413\u043e\u0442\u043e\u0432\u043e! \u041d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0442\u044c, \u0432 \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b \ud83d\ude42<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b:<\/p>\n<h3>2. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438<\/h3>\n<p>\u042f\u0441\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u0446\u0435\u043d\u0442\u0440\u044b \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 N-\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u0410 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e N-\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/zm\/6v\/hv\/zm6vhvwwwpnmez1agwofqgwyyew.png\" data-src=\"https:\/\/habrastorage.org\/webt\/zm\/6v\/hv\/zm6vhvwwwpnmez1agwofqgwyyew.png\"\/><\/figure>\n<p> \u041f\u0443\u043d\u043a\u0442\u0438\u0440\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u0446\u0435\u043d\u0442\u0440\u043e\u0432 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439. \u0412\u043d\u0435\u0448\u043d\u044f\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c &#8212; \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430. \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0451\u043d 8-\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u043d\u043e \u0432\u0441\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u043d\u044b \u0438 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. <\/p>\n<p>\u041e\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0432\u0432\u0435\u0434\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u041f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440 <img decoding=\"async\" class=\"formula inline\" source=\"\\vec r\" alt=\"\\vec r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/84\/84f\/84f8db4ecd09c74aca9dd406b53f72c9.svg\" width=\"auto\" height=\"auto\"\/> \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u0442\u043e\u0447\u043a\u0443 B, \u0435\u0433\u043e \u0443\u0433\u043e\u043b \u0441 \u043e\u0441\u044c\u044e <img decoding=\"async\" class=\"formula inline\" source=\"Ox\" alt=\"Ox\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/09\/091\/091fecdb12323ff7cfcbf10225acebd9.svg\" width=\"auto\" height=\"auto\"\/> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0437\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"\u03b1\" alt=\"\u03b1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/ab\/ab4\/ab410a966ac148e9b78c65c6cdf301fd.svg\" width=\"auto\" height=\"auto\"\/>.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/cc\/j7\/go\/ccj7govdjh0dj2ps9jxogwu1th8.png\" data-src=\"https:\/\/habrastorage.org\/webt\/cc\/j7\/go\/ccj7govdjh0dj2ps9jxogwu1th8.png\"\/><\/figure>\n<p>\u041f\u0430\u0440\u043e\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"(\u03b1, r)\" alt=\"(\u03b1, r)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d\/d3\/d39\/d392be5829d1ffb6de6c99b388228b5a.svg\" width=\"auto\" height=\"auto\"\/> \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0434\u0435\u043a\u0430\u0440\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"(x, y)\" alt=\"(x, y)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/49\/49b\/49b311da0ed4baee4da4dd66e37ef59c.svg\" width=\"auto\" height=\"auto\"\/>. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0442\u043e\u0447\u043a\u0430 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u0443\u0433\u043b\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 <img decoding=\"async\" class=\"formula inline\" source=\"Ox\" alt=\"Ox\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/09\/091\/091fecdb12323ff7cfcbf10225acebd9.svg\" width=\"auto\" height=\"auto\"\/>, \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u0441\u044f <strong>\u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0439<\/strong>. \u0418\u0437 \u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"x = r*cos\\alpha,y = r*sin\\alpha\" alt=\"x = r*cos\\alpha,y = r*sin\\alpha\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/00\/002\/002b65cf7c0169cd0a2a70b00beae002.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<p>\u042d\u0442\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u0432\u044b\u0448\u0435 \u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u043d\u0443\u0441\u043e\u0432 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0432 (\u0438\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u0440\u0443\u0433).<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 N \u0442\u043e\u0447\u0435\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043b\u0435\u0433\u043a\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u044f\u0440\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u0412\u0435\u043a\u0442\u043e\u0440 <img decoding=\"async\" class=\"formula inline\" source=\"r\" alt=\"r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4b\/4b4\/4b43b0aee35624cd95b910189b3dc231.svg\" width=\"auto\" height=\"auto\"\/> \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0442\u043e\u0447\u0435\u043a \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432 \u0438 \u0440\u0430\u0432\u0435\u043d \u0440\u0430\u0434\u0438\u0443\u0441\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438, \u0430 \u0443\u0433\u043e\u043b <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha\" alt=\"\\alpha\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7b7\/7b7f9dbfea05c83784f8b85149852f08.svg\" width=\"auto\" height=\"auto\"\/> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0438\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0434\u0435\u043b\u044f\u0442 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0440\u0430\u0432\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0441 \u0443\u0433\u043b\u043e\u043c \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha = \\frac{2\\pi}{N}\" alt=\"\\alpha = \\frac{2\\pi}{N}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/41\/418\/4184574e25655ecb8a5778fbc5d4919a.svg\" width=\"auto\" height=\"auto\"\/>.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"N_i\" alt=\"N_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/17\/173\/173eda91467d59e92b43f2a1d21ee177.svg\" width=\"auto\" height=\"auto\"\/> \u0438\u043c\u0435\u0435\u043c:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"x=r*cos(\\frac{2\\pi i}{N}), y=r*sin(\\frac{2\\pi i}{N}), i=0, 1,...,N-1\" alt=\"x=r*cos(\\frac{2\\pi i}{N}), y=r*sin(\\frac{2\\pi i}{N}), i=0, 1,...,N-1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/1d\/1db\/1dbf8ab4b3ed2adf2f295fd16eda9d13.svg\" width=\"auto\" height=\"auto\"\/>        <img decoding=\"async\" class=\"formula inline\" source=\"(1)\" alt=\"(1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7a\/7ac\/7acce3193127d4b71a6c2b140c22dc95.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0434\u0438\u0443\u0441 <img decoding=\"async\" class=\"formula inline\" source=\"r\" alt=\"r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4b\/4b4\/4b43b0aee35624cd95b910189b3dc231.svg\" width=\"auto\" height=\"auto\"\/>. \u0412\u0435\u0434\u044c \u0435\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c, \u0442\u043e \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f \u0432 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c, \u0430 \u0435\u0441\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c &#8212; \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430: <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/pr\/xn\/4v\/prxn4vvykqc0j6grh7fznck0lfi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/pr\/xn\/4v\/prxn4vvykqc0j6grh7fznck0lfi.png\"\/><\/figure>\n<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u0434\u0438\u0443\u0441\u044b <img decoding=\"async\" class=\"formula inline\" source=\"R'\" alt=\"R'\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e7\/e7d\/e7df32a1c68b30bea84a21f5867910b5.svg\" width=\"auto\" height=\"auto\"\/> \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439 \u043a\u0430\u0441\u0430\u044e\u0442\u0441\u044f (\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0442!) \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u0441\u0430\u044e\u0442\u0441\u044f (\u043d\u043e \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0442) \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430: <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bf\/kn\/jx\/bfknjxgxftfgrwk-79zkebkdzce.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bf\/kn\/jx\/bfknjxgxftfgrwk-79zkebkdzce.png\"\/><\/figure>\n<p> \u0427\u0442\u043e \u043c\u044b \u0432\u0438\u0434\u0438\u043c: <\/p>\n<ul>\n<li>\n<p>\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u0440\u0430\u0434\u0438\u0443\u0441 <img decoding=\"async\" class=\"formula inline\" source=\"R\" alt=\"R\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e1\/e1e\/e1e1d3d40573127e9ee0480caf1283d6.svg\" width=\"auto\" height=\"auto\"\/> \u0440\u0430\u0432\u0435\u043d \u0441\u0443\u043c\u043c\u0435 \u0440\u0430\u0434\u0438\u0443\u0441\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0434\u0438\u0443\u0441\u0430 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0440\u0430\u0432\u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"2R'\" alt=\"2R'\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/40\/400\/4000fd2327233dffd2af7f2b7e7a6178.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"BOC\" alt=\"BOC\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/86f\/86fdba8daca52c460fbbafe6bcd62e58.svg\" width=\"auto\" height=\"auto\"\/>   \u0440\u0430\u0432\u043d\u043e\u0431\u0435\u0434\u0440\u0435\u043d\u043d\u044b\u0439 &#8212; \u0435\u0433\u043e \u0432\u044b\u0441\u043e\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u043e\u0439 \u0438 \u0431\u0438\u0441\u0441\u0435\u043a\u0442\u0440\u0438\u0441\u043e\u0439, \u0442.\u0435. <img decoding=\"async\" class=\"formula inline\" source=\"BH=CH\" alt=\"BH=CH\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/3c\/3ce\/3ce4974bdfd3e4af98443f377fe0b716.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"\\angle{BOH}=\\angle{COH}=\\alpha\/2\" alt=\"\\angle{BOH}=\\angle{COH}=\\alpha\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/a7\/a7c\/a7c296fe6566db8b05a5a327221aed2e.svg\" width=\"auto\" height=\"auto\"\/>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<br \/> <img decoding=\"async\" class=\"formula inline\" source=\"R=r+R'\" alt=\"R=r+R'\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/41\/41b\/41bf1bbbe55b7b4d1ddb074307fa81d4.svg\" width=\"auto\" height=\"auto\"\/><br \/> \u0418\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0432\u0443\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"R' = r*\\sin{\\frac{\\alpha}{2}}\" alt=\"R' = r*\\sin{\\frac{\\alpha}{2}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/1e\/1e5\/1e561b408246cd178d71d9eb0b2b62f9.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<p>\u0420\u0435\u0448\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u0437\u0430\u0434\u0430\u043d \u0440\u0430\u0434\u0438\u0443\u0441 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"R\" alt=\"R\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e1\/e1e\/e1e1d3d40573127e9ee0480caf1283d6.svg\" width=\"auto\" height=\"auto\"\/>, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"r\" alt=\"r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4b\/4b4\/4b43b0aee35624cd95b910189b3dc231.svg\" width=\"auto\" height=\"auto\"\/> \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"r = \\frac{R}{1+\\sin{\\frac{\\alpha}{2}}}\" alt=\"r = \\frac{R}{1+\\sin{\\frac{\\alpha}{2}}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e9\/e97\/e97edf96d80fca0d754217a1233e5ac2.svg\" width=\"auto\" height=\"auto\"\/>      <img decoding=\"async\" class=\"formula inline\" source=\"(2)\" alt=\"(2)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e4\/e4b\/e4b00b4a65a415cf9ebaa9f83719c071.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0438\u0442\u043e\u043d\u0447\u0438\u043a \u0438 \u0437\u0430\u043f\u0438\u043b\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0440\u0430\u0434\u0438\u0443\u0441 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439, \u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u043e\u0432 \u0438 \u0440\u0430\u0434\u0438\u0443\u0441 \u0438\u0445 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439:<\/p>\n<pre><code class=\"python\">def calculate_sizes(radius, amount): alpha = math.radians(360\/int(amount))  #\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 (2): r = float(radius)\/(1+math.sin(alpha\/2))   vals = [] #\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0444\u044b\u043e\u0440\u043c\u0443\u043b\u0443 (1): for i in range(0,int(amount)): vals.append((round(r*math.cos(alpha*i), 2), round(r*math.sin(alpha*i), 2)))  little_rad = r*math.sin(360\/int(amount)\/2) return vals, little_rad*0.9 <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u043e\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0437\u0430\u0437\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f\u043c\u0438, \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439 \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0432 \u043c\u0430\u0442. \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445. \u042d\u0442\u043e \u0438 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043a\u043e\u0434\u0430 (\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 0.9 \u044f \u0432\u0437\u044f\u043b \u043e\u0442 \u0431\u0430\u043b\u0434\u044b, \u0432\u0435\u0434\u044c \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0431\u0430\u0440\u0430\u0431\u0430\u043d, \u0430 \u043c\u0435\u0442\u0430\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \ud83d\ude42 ).<\/p>\n<h3>3. \u0418\u0437\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c FreeCad<\/h3>\n<p>\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0431 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 \u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u043f\u0438\u0442\u043e\u043d\u044c\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f freeCAD, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f. \u0423 freeCAD \u0435\u0441\u0442\u044c <strong>\u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0444\u0438\u0447\u0430 &#8212; \u043a\u043e\u043d\u0441\u043e\u043b\u044c Python, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0430\u044f \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u043d\u0430\u0448\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 GUI. \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 View->Panels->python console.<\/p>\n<h4>\u041a\u043e\u043d\u0441\u043e\u043b\u044c, \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u0441\u0435 \u0448\u0430\u0433\u0438 \u0438\u0437 \u043f\u0443\u043d\u043a\u0442\u0430 1 \u0440\u0443\u043a\u0430\u043c\u0438, \u0442\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Python, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u0440\u0430\u0434\u0438\u0443\u0441 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 &#8216;Cylinder&#8217;, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430:<\/p>\n<pre><code class=\"python\">FreeCAD.getDocument('Unnamed').getObject('Cylinder').Radius = '10.00 mm' <\/code><\/pre>\n<p>\u0410 \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0436\u0438\u043c\u0430\u043b\u0438 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 Cut, \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442:<\/p>\n<pre><code class=\"python\">>>> App.activeDocument().addObject(\"Part::Cut\",\"Cut\") >>> App.activeDocument().Cut.Base = App.activeDocument().Cylinder >>> App.activeDocument().Cut.Tool = App.activeDocument().Fuz001 >>> Gui.activeDocument().Cylinder.Visibility=False >>> Gui.activeDocument().Fuz001.Visibility=False >>> App.getDocument('Unnamed').getObject('Cut').ViewObject.ShapeColor=getattr(App.getDocument('Unnamed').getObject('Cylinder').getLinkedObject(True).ViewObject,'ShapeColor',App.getDocument('Unnamed').getObject('Cut').ViewObject.ShapeColor) >>> App.getDocument('Unnamed').getObject('Cut').ViewObject.DisplayMode=getattr(App.getDocument('Unnamed').getObject('Cylinder').getLinkedObject(True).ViewObject,'DisplayMode',App.getDocument('Unnamed').getObject('Cut').ViewObject.DisplayMode) >>> App.ActiveDocument.recompute() <\/code><\/pre>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 Cut, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 Part, \u0438 \u0437\u0430\u0434\u0430\u0451\u0442 \u0435\u043c\u0443 \u0438\u043c\u044f &#171;Cut&#187;<\/p>\n<\/li>\n<li>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0438 \u0442\u0440\u0435\u0442\u044c\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u0435\u043b\u0430\u0435\u0442 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 Cylinder \u0431\u0430\u0437\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u043e\u0431\u044a\u0435\u043a\u0442 Fuz (\u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0438\u0445 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u043e\u0432 Cylinder001-Cylinder007) &#8212; \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0442\u043e \u0431\u0438\u0448\u044c Tool. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, Cylinder \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, <strong>\u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e<\/strong> \u043c\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0447\u0430\u0441\u0442\u044c, \u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0446\u0438\u043b\u0434\u0438\u043d\u0434\u0440\u043e\u0432 Fuz \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, <strong>\u043a\u043e\u0442\u043e\u0440\u044b\u0439<\/strong> \u043c\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u0438\u0437 Cylinder.<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u0438 \u043f\u044f\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0435\u043b\u0430\u044e\u0442 Cylinder \u0438 Fuz \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0440\u0435\u0437\u0430\u043d\u0438\u044f Cut.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u043e\u043a\u0438 6 \u0438 7 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442 \u043d\u043e\u0432\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 Cut \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0446\u0432\u0435\u0442\u0430 ShapeColor \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f DisplayMode, \u0447\u0442\u043e\u0431\u044b \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0432\u0438\u0437\u0443\u043b\u044c\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Cylinder. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b ShapeColor \u0438 DisplayMode \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 View \u0432 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u043e\u0444\u0435\u0439\u0441\u0430 freeCAD.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 Union (\u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b \u0432 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442). \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u0435 Shapes:<\/p>\n<pre><code class=\"python\">App.activeDocument().Fusion.Shapes = [App.activeDocument().Cylinder001,App.activeDocument().Cylinder002,App.activeDocument().Cylinder003,App.activeDocument().Cylinder004,App.activeDocument().Cylinder005,App.activeDocument().Cylinder006,App.activeDocument().Cylinder007,] <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0443\u0442 \u043d\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 Base \u0438 Tool, \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c.<\/p>\n<p>\u042d\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435.<\/p>\n<p>\u041d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a\u0438\u0435 \u0443 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0442.\u0434. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432.<\/p>\n<h3>4. \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u0415\u0449\u0451 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438<\/h3>\n<p>\u041e\u0431\u0441\u0443\u0434\u0438\u043c \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u0432\u0430\u0436\u043d\u0443\u044e \u0432\u0435\u0449\u044c &#8212; \u043a\u0430\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0441\u0442\u0430\u043d\u0441\u0442\u0432\u0435. \u0423 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 FreeCAD \u0437\u0430 \u0432\u0441\u0451 \u044d\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Placement. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"https:\/\/wiki.freecad.org\/Placement\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>, \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430:<\/p>\n<ol>\n<li>\n<p><strong>\u0423\u0433\u043e\u043b, \u043e\u0441\u044c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f<\/strong>.<br \/> <em>\u041f\u043e\u0437\u0438\u0446\u0438\u044f (Position)<\/em> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u0442\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. <em>\u041e\u0441\u044c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f (Axis)<\/em> \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u0435\u043a\u0442\u043e\u0440, \u0432\u043e\u0442\u043a\u0440\u0443\u0433 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442. <em>\u0423\u0433\u043e\u043b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f (Angle)<\/em> \u0437\u0430\u0434\u0430\u0451\u0442 \u0443\u0433\u043e\u043b \u0432 \u0433\u0440\u0430\u0434\u0443\u0441\u0430\u0445, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f.<br \/> \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 Axis = (1, 2, 0), Angle = 15, \u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 15 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0440\u044f\u043c\u043e\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"y=2x, z=0\" alt=\"y=2x, z=0\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/a0\/a06\/a0625679ab04aa27805f01e0d7afd665.svg\" width=\"auto\" height=\"auto\"\/> (\u0438\u043b\u0438 \u0436\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"\\vec v = (1, 2, 0)\" alt=\"\\vec v = (1, 2, 0)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4e\/4e0\/4e0b17fddc3b2686732275fc7a8ef4d8.svg\" width=\"auto\" height=\"auto\"\/>, \u0447\u0442\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435)<\/p>\n<\/li>\n<li>\n<p><strong>Position, Angle, Pitch, Yaw<\/strong><br \/> \u0421 Position \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e &#8212; \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u0410 \u0432\u043e\u0442 <em>angle, pitch \u0438 yaw<\/em> \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a <em>\u043a\u0440\u0435\u043d, \u0442\u0430\u043d\u0433\u0430\u0436 \u0438 \u0440\u044b\u0441\u043a\u0430\u043d\u044c\u0435<\/em> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u0440\u043e\u0449\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u043e \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438: <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/2f\/k2\/0j\/2fk20jdgtxv9dyiey7l1q0w_j8w.png\" data-src=\"https:\/\/habrastorage.org\/webt\/2f\/k2\/0j\/2fk20jdgtxv9dyiey7l1q0w_j8w.png\"\/><\/figure>\n<p> \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0430\u043a \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u043b\u0435\u0442\u0430\u0435\u0442 \u043f\u043e \u0432\u043e\u0437\u0434\u0443\u0445\u0443: \u0441\u0430\u043c\u043e\u043b\u0451\u0442\u044b, \u043f\u043b\u0430\u043d\u0435\u0440\u044b, \u043a\u0432\u0430\u0434\u0440\u043e\u043a\u043e\u043f\u0442\u0435\u0440\u044b \u0438 \u0442.\u0434. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f. <\/p>\n<\/li>\n<li>\n<p><strong>Matrix. \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0410\u0444\u0444\u0438\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439<\/strong>.<br \/> \u042d\u0442\u043e \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043f\u043e <img decoding=\"async\" class=\"formula inline\" source=\"Ox\" alt=\"Ox\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/09\/091\/091fecdb12323ff7cfcbf10225acebd9.svg\" width=\"auto\" height=\"auto\"\/>, <img decoding=\"async\" class=\"formula inline\" source=\"Oy\" alt=\"Oy\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8b\/8b6\/8b644cd5134d4a2c95f112c84649b4dd.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"Oz\" alt=\"Oz\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/0a\/0ad\/0adaeee8e8df29fe501cf3e675ebde70.svg\" width=\"auto\" height=\"auto\"\/>, \u0430 \u0435\u0449\u0451 \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u0436\u0430\u0442\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a:<br \/> [ R_11  R_12  R_13  T1]<br \/> |R_21  R_22  R_23  T2|<br \/> |R_31  R_32  R_33  T3|<br \/> [  0         0         0       1 ]<br \/> \u0415\u0441\u043b\u0438 \u0432\u043a\u0440\u0430\u0442\u0446\u0435, \u0441\u0442\u043e\u043b\u0431\u0435\u0446 <img decoding=\"async\" class=\"formula inline\" source=\"(T1, T2, T3, 1)^T\" alt=\"(T1, T2, T3, 1)^T\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c\/c1\/c1f\/c1f0055579ed2d0c09c483adf7e07315.svg\" width=\"auto\" height=\"auto\"\/> \u0437\u0430\u0434\u0430\u0451\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435. \u0422.\u0435. <img decoding=\"async\" class=\"formula inline\" source=\"(T1, T2, T3)=(x, y, z)\" alt=\"(T1, T2, T3)=(x, y, z)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7c\/7ce\/7ce8a088cf81c281240bcb72c80ea1db.svg\" width=\"auto\" height=\"auto\"\/>.  <img decoding=\"async\" class=\"formula inline\" source=\"R_{ij}\" alt=\"R_{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c\/c6\/c6a\/c6a107300a285e5c9da6797a614c1882.svg\" width=\"auto\" height=\"auto\"\/> \u0437\u0430\u0434\u0430\u044e\u0442 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0435\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u0436\u0430\u0442\u0438\u0435. \u041a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/compgraphics.info\/3D\/3d_affine_transformations.php\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/github.com\/gbroques\/freecad-rotations?ysclid=lokyv62lyl230886242\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u041a\u0440\u0430\u0441\u043e\u0442\u0430 \u043c\u0430\u0442\u0440\u0438\u0446 \u0430\u0444\u0438\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443 (\u0441\u0434\u0432\u0438\u0433, \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0438, \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u0441\u0434\u0432\u0438\u0433\u0430 \u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0442.\u0434.), \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0432\u0441\u0435 \u0435\u0451 \u0442\u043e\u0447\u043a\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"(x, y)^T\" alt=\"(x, y)^T\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b\/b7\/b74\/b74d4b1a9a51f0a81dd813c11f7396e9.svg\" width=\"auto\" height=\"auto\"\/> \u0421\u041f\u0420\u0410\u0412\u0410 (\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0436\u0435\u043d) \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 A, \u0437\u0430\u0434\u0430\u044e\u0449\u0443\u044e \u044d\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435:<\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"(x_1, y_1)^T =A*(x, y)^T\" alt=\"(x_1, y_1)^T =A*(x, y)^T\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/a9\/a9d\/a9d14a4eb0b6224d2b1ffc262b19c161.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0435\u0449\u0451 \u043a\u0430\u043a-\u0442\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c\/\u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u043d\u0430\u0448\u0443 \u0444\u0438\u0433\u0443\u0440\u0443, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 B (\u0442\u043e\u0436\u0435 \u0441\u043f\u0440\u0430\u0432\u0430):<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"formula\" source=\"(x_2, y_2)=B*(x_1, y_1)^T =BA*(x, y)^T\" alt=\"(x_2, y_2)=B*(x_1, y_1)^T =BA*(x, y)^T\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/45\/457\/45707dd63835836d6919fc1edca8f36f.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f &#8212; <img decoding=\"async\" class=\"formula inline\" source=\"BA\" alt=\"BA\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5f\/5fc\/5fc810cf62601df84b7923b9964c53e6.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043c\u0430\u0442\u0440\u0438\u0446. <strong>\u042d\u0442\u043e\u0442 \u0444\u0430\u043a\u0442 \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u0430<\/strong>.<\/p>\n<p>\u0423 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 FreeCAD, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u043e\u0442 Part (\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Cylinder, Sphere, Cone \u0438 \u0442.\u0434.) \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Placement, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0445\u0440\u0430\u043d\u0438\u0442 \u0438\u0445 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438 \u0443\u0433\u043b\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430.<br \/> \u041f\u043e\u0432\u043e\u0440\u043e\u0442 \u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0432\u043e\u0442 \u0442\u0430\u043a (\u0417\u0430\u0434\u0430\u0451\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u043e\u0441\u044c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438 \u0443\u0433\u043e\u043b):<\/p>\n<pre><code class=\"python\">>>>cylinder = App.ActiveDocument.getObject('Cylinder') >>>cylinder.Placement.Base = App.Vector(10, 10, 10) >>>cylinder.Placement.Rotation = App.Rotation(App.vector(0, 1, 0), 60) <\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u043d\u0443\u043b\u0438 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 \u0432 \u0442\u043e\u0447\u043a\u0443 (10, 10, 10)  \u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u0435\u0433\u043e \u043d\u0430 60 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"Oy\" alt=\"Oy\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8b\/8b6\/8b644cd5134d4a2c95f112c84649b4dd.svg\" width=\"auto\" height=\"auto\"\/>.<br \/> \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0430\u0444\u0444\u0438\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">>>> cylinder.Placement.Matrix Matrix ((0.5,-0.612372,0.612372,10),(0.612372,0.75,0.25,10),(-0.612372,0.25,0.75,10),(0,0,0,1)) <\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0435\u0449\u0451 \u043a\u0430\u043a-\u0442\u043e \u043f\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0438 \u043f\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 \u0438 \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>M<\/code> , \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0434\u0432\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b:<\/p>\n<pre><code class=\"python\">>>>cylinder.Placement = cylinder.Placement.multiply(M) <\/code><\/pre>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0432\u044b\u0448\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442 M \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 \u0441\u043f\u0440\u0430\u0432\u0430. \u0422.\u0435. \u0435\u0441\u043b\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7f\/7fc\/7fc56270e7a70fa81a5935b72eacbe29.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f &#8216;cylinder&#8217;, \u0442\u043e \u043d\u043e\u0432\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"A1 = M*A\" alt=\"A1 = M*A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/10\/10b\/10b4bdca553503f52a249c34f579748f.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<h3>5. \u041f\u0438\u0448\u0435\u043c \u043a\u043e\u0434<\/h3>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041f\u043e \u043c\u043e\u0435\u0439 \u0437\u0430\u0434\u0443\u043c\u043a\u0435, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u043e\u0440\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u0440\u0438\u0447\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440, \u0430 \u0443\u0436\u0435 \u0437\u0430 \u043d\u0438\u043c \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043e\u0434\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 Shift. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/lr\/oo\/py\/lroopyvsu2xiovp3bezowhzjcms.png\" data-src=\"https:\/\/habrastorage.org\/webt\/lr\/oo\/py\/lroopyvsu2xiovp3bezowhzjcms.png\"\/><\/figure>\n<\/li>\n<li>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 getSelection():<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\">def get_selection(): #\u0421\u043f\u0438\u0441\u043e\u043a \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. selection[0] \u043c\u0430\u043a\u0440\u043e\u0441 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439     selection = Gui.Selection.getSelection()     #\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0432\u0441\u0435 \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430\u043c\u0438 #\u0415\u0441\u043b\u0438 \u043d\u0435 \u0432\u0441\u0435, \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0448\u0438\u0431\u043a\u0443     for obj in selection:         if obj.Name[:8] != 'Cylinder':             raise ValueError     return selection <\/code><\/pre>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0440\u0430\u0434\u0438\u0443\u0441 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u043e\u0432 \u0432 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u043d\u0430\u043c \u0444\u0443\u043d\u0446\u0438\u044e <code>set_cyl()<\/code> \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 (x, y) \u0434\u043b\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u043e\u0432 \u0438 \u0438\u0445 \u0440\u0430\u0434\u0438\u0443\u0441.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\">positions, lilrad = calculate_sizes(main_cyl.Radius, len(selection)-1) <\/code><\/pre>\n<ul>\n<li>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0446\u0438\u043a\u043b \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0443 \u0438 \u0437\u0430\u0434\u0430\u0451\u043c \u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b, \u0430 \u0435\u0449\u0451 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435. \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0430\u0444\u0438\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\">def set_cyl(cyl, main, pos radius): #\u041f\u0440\u0438\u0441\u0432\u0430\u0435\u0432\u0430\u0435\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0443 \u0440\u0430\u0434\u0438\u0443\u0441, #\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 calculate_sizes(), #\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0443\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0443 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 cyl.Radius = radius cyl.Height = main.Height cyl.FirstAngle = main.FirstAngle cyl.SecondAngle = main.SecondAngle #\u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 cyl cyl.Placement.Base = App.Vector(pos[0], pos[1], 0) cyl.Placement.Rotation = App.Rotation(App.Vector(0, 0, 0), 0) #\u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 main \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 cyl \u0421\u041b\u0415\u0412\u0410 #C = M*C cyl.Placement = main.Placement.multiply(cyl.Placement)  '''...Some code in between...'''  for i in range(len(selection)-1):     set_cyl(selection[i+1], main_cyl, positions[i], lilrad) <\/code><\/pre>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0443 \u043b\u044e\u0431\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0430 \u0435\u0449\u0451 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a \u0435\u043c\u0443 \u0432\u0437\u0434\u0443\u043c\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0438. \u0410 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>calculate_sizes()<\/code> \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u044f, \u043a\u043e\u0433\u0434\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0431\u0435\u0437 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u0432 \u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442.<br \/> \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043f\u0440\u0438\u0434\u0430\u0451\u043c \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0443 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 &#8216;pos&#8217; \u0438 \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0432\u0441\u0435 \u0443\u0433\u043b\u044b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0435\u0439 (\u0438 \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0430\u0448 \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u0441\u0442\u043e\u044f\u043b \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0435 \u0432\u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u043a\u0430\u043a \u043d\u0430\u0434\u043e). \u0410 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0443 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430, \u043c\u044b \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 \u0421\u041f\u0420\u0410\u0412\u0410 \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0435\u0432\u0430\u0435\u043c \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0443.<\/p>\n<ul>\n<li>\n<p>\u041e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c Union \u0438 Cut.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\">def fusion(shapes, fn): #\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 MultiFuse fus_obj = App.activeDocument().addObject(\"Part::MultiFuse\",fn) #\u0417\u0430\u0433\u043e\u043d\u044f\u0435\u043c \u0432 \u043d\u0435\u0433\u043e \u0432\u0442\u043e\u0440\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b fus_obj.Shapes = shapes[1:] #\u0414\u0435\u043b\u0430\u0435\u043c \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u043c\u0438 for shape in shapes[1:]: shape.Visibility=False return fus_obj   def perform_cut(selection): #\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 FuzXXX \u0438 CutXXX \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438     cn, fn = get_good_names()      fus_obj = fusion(selection, fn)     main = selection[0]     #\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c Cut     cut = App.activeDocument().addObject(\"Part::Cut\",cn)     #\u0412 Base \u043a\u043b\u0430\u0434\u0435\u043c \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440, \u0432 Name - \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435     cut.Base = App.activeDocument().getObjectsByLabel(main.Name)[0]     cut.Tool = App.activeDocument().getObjectsByLabel(fus_obj.Name)[0] <\/code><\/pre>\n<h3>6. \u041a\u043e\u0434 \u0446\u0435\u043b\u0438\u043a\u043e\u043c<\/h3>\n<pre><code class=\"python\"># -*- coding: utf-8 -*- import FreeCAD import Part import math __title__   = \"pistol_drum\" __author__  = \"T\"  def get_selection():     selection = Gui.Selection.getSelection()     for obj in selection:         if obj.Name[:8] != 'Cylinder':             raise ValueError     return selection   def calculate_sizes(radius, amount):     angle = 360\/int(amount)     angle_rad = math.radians(angle)     r = float(radius)\/(1+math.sin(angle_rad\/2))     vals = []     for i in range(0,int(amount)):         vals.append((round(r*math.cos(angle_rad*i), 2),                      round(r*math.sin(angle_rad*i), 2)))     little_rad = r*math.sin(angle_rad\/2)     return vals, little_rad*0.9   def set_cyl(cyl, main, pos, radius):     cyl.Radius = radius     cyl.Height = main.Height     cyl.FirstAngle = main.FirstAngle     cyl.SecondAngle = main.SecondAngle     cyl.Placement.Base = App.Vector(pos[0], pos[1], 0)     cyl.Placement.Rotation = App.Rotation(App.Vector(0, 0, 0), 0)     cyl.Placement = main.Placement.multiply(cyl.Placement)   def get_good_names(): '''  \u041f\u0440\u043e\u0445\u043e\u0434\u0438\u043c \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438  \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u043b\u044f Fuz \u0438 Cut \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u044b\u0445 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u043d\u0430 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b\u0438 '''     l = App.activeDocument().Objects     cut = 0     fus = 0     for o in l:         s = o.Label         if s.startswith(\"Cut\"):             cut = max(cut, int(o.Label[-3:]))         elif s.startswith(\"Fusion\"):             fus = max(fus, int(o.Label[-3:]))     cutname = f\"Cut{str(cut+1).zfill(3)}\"     fuzname = f\"Fuz{str(fus+1).zfill(3)}\"     return cutname, fuzname    def fusion(shapes, fn): fus_obj = App.activeDocument().addObject(\"Part::MultiFuse\",fn) fus_obj.Shapes = shapes[1:] for shape in shapes[1:]: shape.Visibility=False return fus_obj   def perform_cut(selection):     cn, fn = get_good_names()     fus_obj = fusion(selection, fn)     main = selection[0]     cut = App.activeDocument().addObject(\"Part::Cut\",cn)     cut.Base = App.activeDocument().getObjectsByLabel(main.Name)[0]     cut.Tool = App.activeDocument().getObjectsByLabel(fus_obj.Name)[0]     selection = get_selection() main_cyl = selection[0] position, lilrad = calculate_sizes(main_cyl.Radius, len(selection)-1)  for i in range(len(selection)-1):     set_cyl(selection[i+1], main_cyl, position[i], lilrad)   perform_cut(selection) <\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/772666\/\"> https:\/\/habr.com\/ru\/articles\/772666\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>0. \u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435<\/h3>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u0447\u0430\u0442\u044c \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c 3D-\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0412\u044b\u0431\u0440\u0430\u0432 FreeCAD \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0421\u0410\u041f\u0420 \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 (\u0430 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0439 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0438\u0437-\u043f\u043e\u0434 Linux), \u044f \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0445 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445. \u041e\u0434\u0438\u043d \u043c\u043e\u0439 \u0434\u0440\u0443\u0433, \u043f\u0440\u043e\u0437\u043d\u0430\u0432 \u043e \u043c\u043e\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u043d\u0438\u0438, \u0434\u0430\u043b \u043c\u043d\u0435 \u0434\u043b\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u043a\u0443:<\/p>\n<blockquote>\n<p>\u041e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430 \u0434\u043b\u044f \u0438\u0433\u0440\u0443\u0448\u0435\u0447\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u0442\u043e\u043b\u0435\u0442\u0438\u043a\u0430 \u043f\u043e\u0434 7 \u043f\u0443\u043b\u0435\u043a<\/p>\n<\/blockquote>\n<p>\u0414\u0435\u0441\u043a\u0430\u0442\u044c, \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u043f\u043e\u0434 \u0448\u0435\u0441\u0442\u044c \u043f\u0443\u043b\u0435\u043a \u043f\u0440\u043e\u0441\u0442\u043e, \u0442\u0430\u043c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439, \u0430 \u0442\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439 \u043f\u043e\u0434 \u0441\u0435\u043c\u044c \u043e\u0442\u0440\u0438\u0441\u0443\u0439!<br \/> \u0418, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0432, \u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u043f\u043e\u0434 7:<\/p>\n<figure class=\"\"><\/figure>\n<figure class=\"\"><\/figure>\n<p>\u0410 \u043f\u043e\u0442\u043e\u043c \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043b, \u0447\u0442\u043e freeCAD \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435, \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u043f\u043e\u0434 N \u043f\u0443\u043b\u0435\u043a. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0430\u043c \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0432 \u043b\u044e\u0431\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438: <\/p>\n<figure class=\"\"><\/figure>\n<p> \u0418 \u0445\u043e\u0442\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0441\u043f\u043e\u0440\u043d\u043e\u0439, \u044d\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0430\u0437\u0430\u0445 freeCAD, \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u044d\u0442\u0443 \u0421\u0410\u041f\u0420. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e &#8212; \u043f\u0440\u043e\u0448\u0443 \u043f\u043e\u0434 CAD:) <\/p>\n<h3>1. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0443\u0447\u043a\u0430\u043c\u0438<\/h3>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u043f\u043e\u0434 N \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439. \u0412\u043e\u0442 \u043a\u0430\u043a \u043c\u044b \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0438 \u0431\u044b \u0442\u0430\u043a\u043e\u0439 \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e:<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c N+1 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 (\u0432 \u0432\u0435\u0440\u0441\u0442\u0430\u043a\u0435 Part). \u041e\u0434\u0438\u043d \u0433\u043b\u0430\u0432\u043d\u044b\u0439, \u0441 \u0432\u044b\u0441\u043e\u0442\u043e\u0439 20 \u0438 \u0434\u0438\u0430\u043c\u0435\u0442\u0440\u043e\u043c 10, \u0438 N \u043f\u043e\u0434 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f (\u043d\u0430\u0437\u043e\u0432\u0451\u043c \u0438\u0445 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438): <\/p>\n<figure class=\"\"><\/figure>\n<figure class=\"\"><\/figure>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0434\u0430\u0434\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043d\u0430\u0448\u0438\u043c \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430\u043c, \u043f\u0440\u0438\u0434\u0430\u0434\u0438\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0438\u0445 \u0432 &#171;\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435&#187; \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043d\u0438\u0436\u0435. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0432\u043e\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u0434\u043b\u044f 7 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439:<\/p>\n<p>x  y<br \/> 1:  6.97  0.0<br \/> 2:  4.35  5.45<br \/> 3: -1.55  6.8<br \/> 4: -6.28  3.03<br \/> 5: -6.28 -3.03<br \/> 6: -1.55 -6.8<br \/> 7:  4.35 -5.45<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><\/figure>\n<ul>\n<li>\n<p>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b \u0432 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 (Part_Fuse \u0438\u043b\u0438 Union). \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0442\u0430\u043a: \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u0441\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b Cylinder001-Cylinder007 \u0447\u0435\u0440\u0435\u0437 Ctrl \u0438\u043b\u0438 Shift, \u043f\u043e\u0441\u043b\u0435 \u043a\u043b\u0438\u043a\u0430\u0435\u043c \u043f\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0443 Union \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0441\u0432\u0435\u0440\u0445\u0443. \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Fuz: <\/p>\n<figure class=\"\"><\/figure>\n<figure class=\"\"><\/figure>\n<\/li>\n<li>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0443 \u0438 \u043d\u0430\u0448\u0435\u043c\u0443 \u043d\u043e\u0432\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e Fuz \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e Cut. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440, \u043f\u043e\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 Ctrl \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044e Fuz. \u0418 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c Cut \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432: <\/p>\n<figure class=\"\"><\/figure>\n<figure class=\"\"><\/figure>\n<\/li>\n<\/ul>\n<p>\u0413\u043e\u0442\u043e\u0432\u043e! \u041d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0442\u044c, \u0432 \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b \ud83d\ude42<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b:<\/p>\n<h3>2. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438<\/h3>\n<p>\u042f\u0441\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0431\u0430\u0440\u0430\u0431\u0430\u043d \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u0446\u0435\u043d\u0442\u0440\u044b \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 N-\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u0410 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e N-\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c. <\/p>\n<figure class=\"\"><\/figure>\n<p> \u041f\u0443\u043d\u043a\u0442\u0438\u0440\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u0446\u0435\u043d\u0442\u0440\u043e\u0432 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439. \u0412\u043d\u0435\u0448\u043d\u044f\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c &#8212; \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430. \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0451\u043d 8-\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u043d\u043e \u0432\u0441\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u043d\u044b \u0438 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. <\/p>\n<p>\u041e\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0432\u0432\u0435\u0434\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u041f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440  \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u0442\u043e\u0447\u043a\u0443 B, \u0435\u0433\u043e \u0443\u0433\u043e\u043b \u0441 \u043e\u0441\u044c\u044e  \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0437\u0430 .<\/p>\n<figure class=\"\"><\/figure>\n<p>\u041f\u0430\u0440\u043e\u0439  \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0434\u0435\u043a\u0430\u0440\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 . \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0442\u043e\u0447\u043a\u0430 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u0443\u0433\u043b\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 , \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u0441\u044f <strong>\u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0439<\/strong>. \u0418\u0437 \u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<\/p>\n<p>\u042d\u0442\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u0432\u044b\u0448\u0435 \u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u043d\u0443\u0441\u043e\u0432 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0432 (\u0438\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u0440\u0443\u0433).<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 N \u0442\u043e\u0447\u0435\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043b\u0435\u0433\u043a\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u044f\u0440\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u0412\u0435\u043a\u0442\u043e\u0440  \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0442\u043e\u0447\u0435\u043a \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432 \u0438 \u0440\u0430\u0432\u0435\u043d \u0440\u0430\u0434\u0438\u0443\u0441\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438, \u0430 \u0443\u0433\u043e\u043b  \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0438\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0434\u0435\u043b\u044f\u0442 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0440\u0430\u0432\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0441 \u0443\u0433\u043b\u043e\u043c \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 .<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0438  \u0438\u043c\u0435\u0435\u043c:<\/p>\n<\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0434\u0438\u0443\u0441 . \u0412\u0435\u0434\u044c \u0435\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c, \u0442\u043e \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f \u0432 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c, \u0430 \u0435\u0441\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c &#8212; \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430: <\/p>\n<figure class=\"\"><\/figure>\n<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u0434\u0438\u0443\u0441\u044b  \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439 \u043a\u0430\u0441\u0430\u044e\u0442\u0441\u044f (\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0442!) \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u0441\u0430\u044e\u0442\u0441\u044f (\u043d\u043e \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0442) \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430: <\/p>\n<figure class=\"\"><\/figure>\n<p> \u0427\u0442\u043e \u043c\u044b \u0432\u0438\u0434\u0438\u043c: <\/p>\n<ul>\n<li>\n<p>\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u0440\u0430\u0434\u0438\u0443\u0441  \u0440\u0430\u0432\u0435\u043d \u0441\u0443\u043c\u043c\u0435 \u0440\u0430\u0434\u0438\u0443\u0441\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0434\u0438\u0443\u0441\u0430 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0440\u0430\u0432\u043d\u0430 <\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443    \u0440\u0430\u0432\u043d\u043e\u0431\u0435\u0434\u0440\u0435\u043d\u043d\u044b\u0439 &#8212; \u0435\u0433\u043e \u0432\u044b\u0441\u043e\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u043e\u0439 \u0438 \u0431\u0438\u0441\u0441\u0435\u043a\u0442\u0440\u0438\u0441\u043e\u0439, \u0442.\u0435.  \u0438 .<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p> \u0418\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0432\u0443\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<\/p>\n<p>\u0420\u0435\u0448\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u0437\u0430\u0434\u0430\u043d \u0440\u0430\u0434\u0438\u0443\u0441 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430 , \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438  \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<\/p>\n<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0438\u0442\u043e\u043d\u0447\u0438\u043a \u0438 \u0437\u0430\u043f\u0438\u043b\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0440\u0430\u0434\u0438\u0443\u0441 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439, \u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u043e\u0432 \u0438 \u0440\u0430\u0434\u0438\u0443\u0441 \u0438\u0445 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439:<\/p>\n<pre><code class=\"python\">def calculate_sizes(radius, amount): alpha = math.radians(360\/int(amount))  #\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 (2): r = float(radius)\/(1+math.sin(alpha\/2))   vals = [] #\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0444\u044b\u043e\u0440\u043c\u0443\u043b\u0443 (1): for i in range(0,int(amount)): vals.append((round(r*math.cos(alpha*i), 2), round(r*math.sin(alpha*i), 2)))  little_rad = r*math.sin(360\/int(amount)\/2) return vals, little_rad*0.9 <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u043e\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0437\u0430\u0437\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f\u043c\u0438, \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439 \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0432 \u043c\u0430\u0442. \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445. \u042d\u0442\u043e \u0438 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043a\u043e\u0434\u0430 (\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 0.9 \u044f \u0432\u0437\u044f\u043b \u043e\u0442 \u0431\u0430\u043b\u0434\u044b, \u0432\u0435\u0434\u044c \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0431\u0430\u0440\u0430\u0431\u0430\u043d, \u0430 \u043c\u0435\u0442\u0430\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \ud83d\ude42 ).<\/p>\n<h3>3. \u0418\u0437\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c FreeCad<\/h3>\n<p>\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0431 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 \u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u043f\u0438\u0442\u043e\u043d\u044c\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f freeCAD, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f. \u0423 freeCAD \u0435\u0441\u0442\u044c <strong>\u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0444\u0438\u0447\u0430 &#8212; \u043a\u043e\u043d\u0441\u043e\u043b\u044c Python, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0430\u044f \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u043d\u0430\u0448\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 GUI. \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 View->Panels->python console.<\/p>\n<h4>\u041a\u043e\u043d\u0441\u043e\u043b\u044c, \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u0441\u0435 \u0448\u0430\u0433\u0438 \u0438\u0437 \u043f\u0443\u043d\u043a\u0442\u0430 1 \u0440\u0443\u043a\u0430\u043c\u0438, \u0442\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Python, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u0440\u0430\u0434\u0438\u0443\u0441 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 &#8216;Cylinder&#8217;, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430:<\/p>\n<pre><code class=\"python\">FreeCAD.getDocument('Unnamed').getObject('Cylinder').Radius = '10.00 mm' <\/code><\/pre>\n<p>\u0410 \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0436\u0438\u043c\u0430\u043b\u0438 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 Cut, \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442:<\/p>\n<pre><code class=\"python\">>>> App.activeDocument().addObject(\"Part::Cut\",\"Cut\") >>> App.activeDocument().Cut.Base = App.activeDocument().Cylinder >>> App.activeDocument().Cut.Tool = App.activeDocument().Fuz001 >>> Gui.activeDocument().Cylinder.Visibility=False >>> Gui.activeDocument().Fuz001.Visibility=False >>> App.getDocument('Unnamed').getObject('Cut').ViewObject.ShapeColor=getattr(App.getDocument('Unnamed').getObject('Cylinder').getLinkedObject(True).ViewObject,'ShapeColor',App.getDocument('Unnamed').getObject('Cut').ViewObject.ShapeColor) >>> App.getDocument('Unnamed').getObject('Cut').ViewObject.DisplayMode=getattr(App.getDocument('Unnamed').getObject('Cylinder').getLinkedObject(True).ViewObject,'DisplayMode',App.getDocument('Unnamed').getObject('Cut').ViewObject.DisplayMode) >>> App.ActiveDocument.recompute() <\/code><\/pre>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 Cut, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 Part, \u0438 \u0437\u0430\u0434\u0430\u0451\u0442 \u0435\u043c\u0443 \u0438\u043c\u044f &#171;Cut&#187;<\/p>\n<\/li>\n<li>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0438 \u0442\u0440\u0435\u0442\u044c\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u0435\u043b\u0430\u0435\u0442 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 Cylinder \u0431\u0430\u0437\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u043e\u0431\u044a\u0435\u043a\u0442 Fuz (\u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0438\u0445 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u043e\u0432 Cylinder001-Cylinder007) &#8212; \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0442\u043e \u0431\u0438\u0448\u044c Tool. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, Cylinder \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, <strong>\u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e<\/strong> \u043c\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0447\u0430\u0441\u0442\u044c, \u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0446\u0438\u043b\u0434\u0438\u043d\u0434\u0440\u043e\u0432 Fuz \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, <strong>\u043a\u043e\u0442\u043e\u0440\u044b\u0439<\/strong> \u043c\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u0438\u0437 Cylinder.<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u0438 \u043f\u044f\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0435\u043b\u0430\u044e\u0442 Cylinder \u0438 Fuz \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0440\u0435\u0437\u0430\u043d\u0438\u044f Cut.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u043e\u043a\u0438 6 \u0438 7 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442 \u043d\u043e\u0432\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 Cut \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0446\u0432\u0435\u0442\u0430 ShapeColor \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f DisplayMode, \u0447\u0442\u043e\u0431\u044b \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0432\u0438\u0437\u0443\u043b\u044c\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Cylinder. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b ShapeColor \u0438 DisplayMode \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 View \u0432 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u043e\u0444\u0435\u0439\u0441\u0430 freeCAD.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 Union (\u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u044b \u0432 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442). \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u0435 Shapes:<\/p>\n<pre><code class=\"python\">App.activeDocument().Fusion.Shapes = [App.activeDocument().Cylinder001,App.activeDocument().Cylinder002,App.activeDocument().Cylinder003,App.activeDocument().Cylinder004,App.activeDocument().Cylinder005,App.activeDocument().Cylinder006,App.activeDocument().Cylinder007,] <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0443\u0442 \u043d\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 Base \u0438 Tool, \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c.<\/p>\n<p>\u042d\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435.<\/p>\n<p>\u041d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a\u0438\u0435 \u0443 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0442.\u0434. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432.<\/p>\n<h3>4. \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u0415\u0449\u0451 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438<\/h3>\n<p>\u041e\u0431\u0441\u0443\u0434\u0438\u043c \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u0432\u0430\u0436\u043d\u0443\u044e \u0432\u0435\u0449\u044c &#8212; \u043a\u0430\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0441\u0442\u0430\u043d\u0441\u0442\u0432\u0435. \u0423 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 FreeCAD \u0437\u0430 \u0432\u0441\u0451 \u044d\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Placement. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"https:\/\/wiki.freecad.org\/Placement\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>, \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430:<\/p>\n<ol>\n<li>\n<p><strong>\u0423\u0433\u043e\u043b, \u043e\u0441\u044c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f<\/strong>.<br \/> <em>\u041f\u043e\u0437\u0438\u0446\u0438\u044f (Position)<\/em> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u0442\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. <em>\u041e\u0441\u044c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f (Axis)<\/em> \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u0435\u043a\u0442\u043e\u0440, \u0432\u043e\u0442\u043a\u0440\u0443\u0433 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442. <em>\u0423\u0433\u043e\u043b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f (Angle)<\/em> \u0437\u0430\u0434\u0430\u0451\u0442 \u0443\u0433\u043e\u043b \u0432 \u0433\u0440\u0430\u0434\u0443\u0441\u0430\u0445, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f.<br \/> \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 Axis = (1, 2, 0), Angle = 15, \u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 15 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0440\u044f\u043c\u043e\u0439  (\u0438\u043b\u0438 \u0436\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 , \u0447\u0442\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435)<\/p>\n<\/li>\n<li>\n<p><strong>Position, Angle, Pitch, Yaw<\/strong><br \/> \u0421 Position \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e &#8212; \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u0410 \u0432\u043e\u0442 <em>angle, pitch \u0438 yaw<\/em> \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a <em>\u043a\u0440\u0435\u043d, \u0442\u0430\u043d\u0433\u0430\u0436 \u0438 \u0440\u044b\u0441\u043a\u0430\u043d\u044c\u0435<\/em> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u0440\u043e\u0449\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u043e \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438: <\/p>\n<figure class=\"\"><\/figure>\n<p> \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0430\u043a \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u043b\u0435\u0442\u0430\u0435\u0442 \u043f\u043e \u0432\u043e\u0437\u0434\u0443\u0445\u0443: \u0441\u0430\u043c\u043e\u043b\u0451\u0442\u044b, \u043f\u043b\u0430\u043d\u0435\u0440\u044b, \u043a\u0432\u0430\u0434\u0440\u043e\u043a\u043e\u043f\u0442\u0435\u0440\u044b \u0438 \u0442.\u0434. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f. <\/p>\n<\/li>\n<li>\n<p><strong>Matrix. \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0410\u0444\u0444\u0438\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439<\/strong>.<br \/> \u042d\u0442\u043e \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043f\u043e ,  \u0438 , \u0430 \u0435\u0449\u0451 \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u0436\u0430\u0442\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a:<br \/> [ R_11  R_12  R_13  T1]<br \/> |R_21  R_22  R_23  T2|<br \/> |R_31  R_32  R_33  T3|<br \/> [  0         0         0       1 ]<br \/> \u0415\u0441\u043b\u0438 \u0432\u043a\u0440\u0430\u0442\u0446\u0435, \u0441\u0442\u043e\u043b\u0431\u0435\u0446  \u0437\u0430\u0434\u0430\u0451\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435. \u0422.\u0435. .   \u0437\u0430\u0434\u0430\u044e\u0442 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 <\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-359640","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/359640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=359640"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/359640\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=359640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=359640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=359640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}