Blender 3D to 2d DXF

Small Python script witch can make 2d from selected 3D objects in Blender. Useful for furniture. For 2D I use qCad (free version).

import bpy, os

# get the current selection
selection = bpy.context.selected_objects

# initialize a blank result variable
element_width = "-x"
element_height = "z"

list_dims = []

# Put Origin to middle
#bpy.ops.object.origin_set( type = 'ORIGIN_GEOMETRY' )
bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
bpy.ops.object.origin_set(type='ORIGIN_CENTER_OF_VOLUME', center='MEDIAN')


# iterate through the selected objects
for sel in selection:
    # get the current object's dimensions
    dims = sel.dimensions
    
    # fix dimensions
    a = dims.x*1000
    b = dims.y*1000
    c = dims.z*1000
    
    # fix locations
    lcx = sel.location.x*1000
    lcy = sel.location.y*1000
    lcz = sel.location.z*1000
    
    w = 0
    h = 0
    
    lx = 0
    ly = 0

    x_and_width = {
    	# w, lx
    	"x": [round(a, 1), round(lcx - a/2, 3)],
    	"y": [round(b, 1), round(lcy - b/2, 3)],
    	"z": [round(c, 1), round(lcz - c/2, 3)],
    	"-x": [round(a, 1), round(-(lcx) - a/2, 3)],
    	"-y": [round(b, 1), round(-(lcy) - b/2, 3)],
    	"-z": [round(c, 1), round(-(lcz) - c/2, 3)]
    }

    y_and_height = {
    	"x": [round(a, 1), round(lcx - a/2, 3)],
    	"y": [round(b, 1), round(lcy - b/2, 3)],
    	"z": [round(c, 1), round(lcz - c/2, 3)],
    	"-x": [round(a, 1), round(-(lcx) - a/2, 3)],
    	"-y": [round(b, 1), round(-(lcy) - b/2, 3)],
    	"-z": [round(c, 1), round(-(lcz) - c/2, 3)]
    }

    celX = x_and_width[element_width]
    celY = y_and_height[element_height]

    list_dims.append( [ celX[0], celY[0], celX[1], celY[1] ] )


print("");
prnt_rect_funct = """
function rect(x, z, m){
    var doc = getDocument();
    var pList = [new RVector(0,0), new RVector(x,0), new RVector(x,z), new RVector(0,z)];
    var poly = new RPolyline(pList, true);
    var polyData = new RPolylineData(poly);
    var n = new RPolylineEntity(doc, polyData);
    addEntity(n);
    move(n, m);
}
"""
print(prnt_rect_funct)

for x in list_dims:
    print("rect(", x[0], ", ", x[1], ",", "[", x[2], ", ", x[3], "])")

Share and Enjoy !

Shares

Kitchen cabinet calculator

Написах един инструмент, който да ми помогне при калкулирането на необходимите плоскости за сглобяване на кухненски шкафове. Интрумента представлява един HTML файл, който може да се стартира от всяко устройство. Кода е респонзив. Най-полезната за мен опция е възможността за експортиране на модела в Blender чрез генериране на Python скрипт. Кръстих го Kitchen cabinet calculator и е на английски, за да мога да обхвана по-голяма аудитория. Като ми остане време, ще направя и версия на български, но за сега мисля, че е достатъчно разбираем. Кода е напълно свободен и всеки с PHP 7 и по-висока версия може да си го компилира.

Demo: Kitchen cabinet calculator

Download: Kitchen cabinet calculator
Source: Kitchen cabinet calculator – Source

Видео ръководство, как се използва инструмента:
https://youtu.be/LPJBfQQgEp8

Share and Enjoy !

Shares

Blender 2.79 тест на 2 нови функции – Denoising и Filmic Color Management

Днес е ден за айляк и докато се ровех за нещо интересно с изненада установих, че в новата версия на Blender са добавени 2 много готини функции. Една драстично намаля шума и времето на ренване – Denoising. Другата функция нормализира динамичния баланс, така че да се избегне прегаряне в рендваното изображение – Filmic Color Management. Засърбяха ме ръчичките да направя набързо един тест и много се накефих на новите опции!
Blender файла: Kyshticha_v_ezero-v.001.zip
Blender 3D - къщичка в езеро

Share and Enjoy !

Shares




Snowman – Blender 3D

Тъй като тази Коледа няма сняг и на мен и дъщеря ми ужасно ни липсва, решихме да си нарисуваме поне снежен човек.
Весели празници на всички!
Blender 3D - snowman

Сорс файл: Snejen_chovek-blender.zip
Рендер: GPU, Cycles render

Share and Enjoy !

Shares