Render.ru

Как создать круг в квадратном полигоне?

Anti Pirate

Активный участник
Рейтинг
5
#1
Как создать круг в квадратном полигоне с последующим выдавливанием в виде кнопки? Его можно вырезать с alt+c, но он не будет достаточно круглым.
Кто может что посоветовать?
Прикрепляю картинку для примера, хотя думаю тут и так понятно чаго я хочу добиться.
 

Вложения

Anti Pirate

Активный участник
Рейтинг
5
#3
Если в дело идёт iVAt, то успеха не миновать=)
А поточнее в нескольких словах? Как мне добиться правильно круга без alt+c?
 

iVAt

Знаток
Рейтинг
68
#4
оО, да вы батенька ещё и поэт))
красивых способ не знаю, сам бы делал Cat'ом - и просто и надёжно)
 

iVAt

Знаток
Рейтинг
68
#7
что за метод размножения? это который для взрослых мальчиков и девочек? :D
 

Anti Pirate

Активный участник
Рейтинг
5
#8
Если кому интересно, я просто скопировал и колапснул!
Мои Благодарности iVAt!

Тема закрыта!
 

Anti Pirate

Активный участник
Рейтинг
5
#11
ОООоооо, ДАВАЙ!! Всегда полезно освоить новые методы полигоного моделирования и я всеми четырьмя!!!=)
Пользуюсь 2011 максом!
 
Рейтинг
47
#13
Инструмент рассчитан на вынос в квадроменя. При нажатии на названии "Kvadrat_v_Krug" при зажатом Алте, в окружности будет больше промежуточных точек (то есть круг будет более гладким)

Если полигон не будет четырехугольным, то окружность сформируется не по центру полигона (но это не смертельно, можно будет подвинуть) И еще, чем больше будет вершин в полигоне, тем больше точек в итоге получится в окружности.

Код:
macroScript Kvadrat_v_Krug_2011
	category:"Poly_Tools_Chern"
	toolTip:"Kvadrat_v_Krug"

(	
	fn Remove=
	(
case (getSelectionLevel $) of 
(
#Vertex: $.EditablePoly.Remove selLevel:#Vertex
#Edge:(
sel = #{}
edgesel = polyOp.getEdgeSelection $
vertsel = polyOp.getVertsUsingEdge $ edgesel
$.EditablePoly.Remove selLevel:#Edge
for i = 1 to vertsel.numberset do
if ($.GetVertexEdgeCount (vertsel as array)[i]) == 2 then sel = sel + #{(vertsel as array)[i]}
polyop.setVertSelection $ sel
$.EditablePoly.Remove selLevel:#Vertex
)
#Face:
(
sel = #{}
facesel = polyOp.getFaceSelection $
edgesel = polyOp.getEdgesUsingFace $ facesel
for i = 1 to edgesel.numberset do
if (((polyOp.getEdgeFaces $ (edgesel as array)[i]) as bitarray)*(facesel as bitarray)).numberset == 2 then sel= sel + #{(edgesel as array)[i]}
polyop.setEdgeSelection $ sel
$.EditablePoly.Remove selLevel:#Edge
)
)
)

if keyboard.altPressed then (
$.tesselateBy = 0
$.EditablePoly.tessellate #Face
$.insetAmount = 1
$.EditablePoly.buttonOp #inset

macros.run "PolyTools" "GeoPoly"
Remove ()
macros.run "PolyTools" "GeoPoly"

$.tesselateBy = 0
$.EditablePoly.tessellate #Face
Remove ()
macros.run "PolyTools" "GeoPoly"

$.tesselateBy = 0
$.EditablePoly.tessellate #Face
Remove ()
macros.run "PolyTools" "GeoPoly"

$.tesselateBy = 0
$.EditablePoly.tessellate #Face
Remove ()
macros.run "PolyTools" "GeoPoly"

max select
macros.run "Editable Polygon Object" "EPoly_FOutline"
)

else

(
$.tesselateBy = 0
$.EditablePoly.tessellate #Face
$.insetAmount = 1
$.EditablePoly.buttonOp #inset

macros.run "PolyTools" "GeoPoly"
Remove ()
macros.run "PolyTools" "GeoPoly"

$.tesselateBy = 0
$.EditablePoly.tessellate #Face
Remove ()
macros.run "PolyTools" "GeoPoly"

$.tesselateBy = 0
$.EditablePoly.tessellate #Face
Remove ()
macros.run "PolyTools" "GeoPoly"

max select
macros.run "Editable Polygon Object" "EPoly_FOutline"
)
)
 

Anti Pirate

Активный участник
Рейтинг
5
#14
Никогда не пользовался скриптами, но ввиду того что в одном из прочитаных мною постов, Александр указал ссылку на быстрое внедрение скриптов и их использование, то и я делюсь с ней!
http://www.render.ru/forum/viewtopic.php?post_id=886002#886002
Да, этот метод и есть то самое, что я искал!
Уже в который раз, Александр спасает наши души =)
Моё почтение!
 

Anti Pirate

Активный участник
Рейтинг
5
#15
Пока читал несколько постов, наткнулся на видео где показывают ещё один альтернативный метод.
Create\Geometry\Compound Objects\ShapeMerge
Выбираем обьект, в котором хотим создать дополнительные рёбра любой формы. Создаём "shapes", нужной нам формы отдельно и выравниваем по нашему обьекту. После чаго вибираем наш обьект, жмём pickshape и наша форма(shape) отражается на обьекте.
 

Deruz

Мастер
Рейтинг
96
#16
Можно Про Булеан использовать в галкой Импринт, и рёбра доделать ручками. (можно и не делать, смотря что)
 

Вложения

Рейтинг
47
#17
Для этой цели можно использовать и ПроБулеан и ШейпМердж, но все таки для создания окружности в одном полигоне я предпочитаю скрипт. Так как им банально быстрее (не нужно создавать дополнительного объекта, лесть в Compound Objects и т.д.). А вот для создания круга в нескольких полигонах, базара нема, нужно использовать Составные Объекты. Я предпочитаю ShapeMerge, так как он сразу не вырезает и есть возможность сделать инсет (что бы потом был ровненький чамфер).
 

maiden666

Мастер
Рейтинг
112
#18
насчет ровненького чамфера я дико сомневаюсь изза того что будет дикое количество левых точек и соответственно диких полигонов разного размера
 

Anti Pirate

Активный участник
Рейтинг
5
#19
Тут всё зависит от твоего професионализма и в каком именно случае ты его спользуешь!
Александр показывал в видео, как пользоваться чамфером и честно говоря у него ничаго лишнего там не остовалось.
Если встречу ещё раз видео, выложу ...
 

maiden666

Мастер
Рейтинг
112
#20
я имел в виду что из за количества точек которые оставляет шейпмёрдж, сегменты круга будут разной длины, и потому аккуратный чамфер затруднителен
 
Сверху