2015-03-31 5 views
0

Я хочу создать polyhedron, указав его координаты, а затем получить конкретный раздел. Возможно, что-то вроде:Python: Создайте многогранник и получите его раздел

Points = [A(0,0,0),B(1,0,0),C(1,1,0),D(0,1,0),A"(0,0,1),B"(1,0,1),C"(1,1,1),D"(0,1,1)] 
Body = BodyGenerate(Points) 
section1 = Body.section(z = 0.5) 
section2 = Body.section(x+y= 1) 
#And then I can get properties like `area`, `width` of these sections. 

Как это сделать? Есть ли lib для этого?

Вот что я нашел до сих пор:

  1. Vpython довольно, что мне нужно, но это кажется слишком простой, и не может создать многогранник
  2. Blender и Rhino хорошие инструменты. Но они больше сосредоточены на modelling, а не на programming. Python больше похож на интерактивную командную строку, а не на саму программу.
  3. Three.js похоже, что мне нужно, но js не может выполнить научный расчет.

enter image description here

ответ

1

Как пользователь блендера мое мнение предвзято, что путь. Да, он сосредоточен на том, чтобы быть GUI-инструментом для конечных пользователей, но он глубоко интегрирует python для определения пользовательского интерфейса вплоть до добавления функций через аддоны python. Он также включает консоль python, которая позволяет вводить команды, напрямую изменяющие данные, позволяя вам видеть изменения в 3dview. Также возможно добавить дополнительные модули python, которые затем могут использоваться в блендере.

Пингтон блендера api может быть read and searched online.

Вы должны найти несколько примеров, чтобы помочь создать многогранник в extra objects addon. Он включен в блендер, чтобы вы могли также найти скрипты в вашей установке blender.

Возможно, вы можете позвонить в intersect tool works, вы также можете позвонить по телефону intersect operator, есть также boolean modifier, который может быть лучше, если вы хотите получить замкнутую сетку, чтобы рассчитать объем.

Для расчета объема BMesh.calc_volume, он используется 3d printing toolbox.

Возможно, вы захотите добавить blender.stackexchange.com в свой список, чтобы получить специальную помощь pender для блендера.