Войти
АртФорумМоделирование

Blender 3.3 скрипт , как нарисовать линию по двум точкам ?

#0
17:36, 21 ноя 2023

Допустим есть две точки:
рBgn = (2,2,0)
рEnd = (9,7,5)

Как нарисовать по ним line ?

Нашел такое , но не понятно как конец задать и толщину линии.
И за одно и цвет как изменить ?

import bpy
spline = bpy.ops.curve.simple(align='WORLD', location=(0, 0, 0), rotation=(0, 0, 0), Simple_Type='Line', shape='3D', use_cyclic_u=False)
#1
1:00, 22 ноя 2023

Как добавлять ребра по координатам.

Блендер не умеет красить ребра и вершины. Вероятно верно и для толщины.

#2
15:00, 22 ноя 2023
import bge //ругается блендер 3.3 модуль не найден
bge.render.drawLine([0,0,0],[0,0,1],[255,40,0])
#3
15:27, 22 ноя 2023

Bge - это игровой движок на базе бледнера, его выпилили в третьей версии.

#4
15:39, 22 ноя 2023

Bge - это игровой движок на базе бледнера, его выпилили в третьей версии.

Чем заменить этот код ?

import bge 
bge.render.drawLine([0,0,0],[0,0,1],[255,40,0])
#5
15:53, 22 ноя 2023

Первые же ссылки из гугла:
https://b3d.interplanety.org/en/drawing-in-blender-viewport/
https://blender.stackexchange.com/questions/34678/how-can-i-draw-… nt55505_34678

#6
(Правка: 16:03) 16:00, 22 ноя 2023

Спасибо.
Это работает в Блендер 3.3
Только что проверил. Есть три линии разноцветные.

import bpy
import gpu
from gpu_extras.batch import batch_for_shader
import bgl
 
vertices = [(0.0, 0.0, 0.0), (1.0, 0.0, 0.0),
    (0.0, 0.0, 0.0), (0.0, 1.0, 0.0),
    (0.0, 0.0, 0.0), (0.0, 0.0, 1.0)]
shader = gpu.shader.from_builtin('3D_SMOOTH_COLOR')
col = [(1.0, 0.0, 0.0, 1.0), (1.0, 0.0, 0.0, 1.0),
    (0.0, 1.0, 0.0, 1.0), (0.0, 1.0, 0.0, 1.0),
    (0.0, 0.0, 1.0, 1.0), (0.0, 0.0, 1.0, 1.0)]
batch = batch_for_shader(shader, 'LINES', {"pos": vertices, "color": col})
 
def draw():
    bgl.glLineWidth(5)
    shader.bind()
    batch.draw(shader)
    bgl.glLineWidth(1)
 
draw_handler = bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
 
for area in bpy.context.window.screen.areas:
    if area.type == 'VIEW_3D':
        area.tag_redraw()
#7
14:16, 23 ноя 2023

Очистка консоли бывает полезно.

import os
os.system("cls")
АртФорумМоделирование