BlenderУкраина
Главная
Новости
Статьи
Уроки
Файлы
Ссылки
Форум
Галерея
Конкурсы
• Поиск по сайту


Логин:

Пароль:

 Запомнить
Восстановление пароля

Зарегистрироваться

Наше сообщество:

 Форум

 Галерея
       Все работы по рейтингу
       Все новые работы
       Последние комментарии

 Конкурсы
       Ежедневный
       На баннер (прием работ)
       Повтори
       Художественный
       Модель для сборки

 Гостевая

 Радио

RSSНовости Blender
Последние сообщения форума

 Добавить новость
парфюмерияпарфюмерия : Днепропетровск : модели радиомоделирадиомодели модели на радиоуправлении
Сейчас на сайте 11 посетителей:
Игор, starik99, taburet и 8 гостей

Обсуждаемые темы:

motion blur для анимации (taburet)
Уголок юного музыканта.) (MORee.?!))
Linux (5araon)
Болталка (Lanuhum)
SILICONE-2 (игра разрабатывается) (Дима Кива)
W.I.P. newman (newman)
Конкурсы от Lanuhum (Lanuhum)
Пожелания и предложения Blender 2.46 (Илья Джордан)
Ежедневный Конкурс моделирования в Blender (Илья Джордан)
Blender 2.5 Materials and Textures Cookbook (Lanuhum)
Вопросы новичков и ответы (newman)
Рисование (XDev)
WIP by ПыщПыщ (ПыщПыщ)
Анекдоты (DukeNukem2005)
Помощь с управлением blender (SWaP)
Blender Foundation - News, Announcements & Another (nazyk950)

Работа дня:

Em
Ежедневный конкурс моделирования

Новые работы в галерее:


Автор: M_Rodionov

Автор: Sever

Автор: zloy_tux


Автоматический полив


Лекарственные травы


Прически и стрижки  

Уроки по созданию Python скриптов для Blender



Главная » Форум » Python и плагины » Уроки по созданию Python скриптов для Blender

Сообщений 29, на страницах: 1 2
добавить сообщение
Morthan
переводчик
Morthan
Сообщений: 388
Рейтинг: +168



31 января 2010 в 17:47Рейтинг: 0    0    0
#16


> Разве количество загруженных на сервер байтов разное получается от текста в топике и от текста в файле.

Кстати да, результат получается разный. В Питоне имеют значение отступы, а в HTML они мало того, что скрадываются, так ещё и скобки в смайлики перепиливаются. В общем, оба скрипта в студию в виде прикреплённых файлов! А то в скрипте добавления звезды я не нашёл IntProperty вообще. :(

Lanuhum
отшельник
Lanuhum
Сообщений: 5883
Рейтинг: +270



31 января 2010 в 18:01Рейтинг: 0    0    0
#17


> оба скрипта в студию в виде прикреплённых файлов
Все четыре натте:


Прикреплен файл: star_torus_scripts.tar.bz2

Morthan
переводчик
Morthan
Сообщений: 388
Рейтинг: +168



31 января 2010 в 18:19Рейтинг: 0    0    0
#18


Ага. Есть одно подозрительное местечко. В файле add_mesh_torus_250.py есть строчка номер 74, а в ней написано:

from bpy.props import *

Здесь из bpy.props импортируются все имена, которые там есть. Причём этот вызов делается до первого использования FloatProperty(). В файле add_mesh_star_250.py подобного импортирования нет.

Lanuhum
отшельник
Lanuhum
Сообщений: 5883
Рейтинг: +270



31 января 2010 в 18:49Рейтинг: 0    0    0
#19


Добавил эту строчку, исправил пропущенные torus на star и немного продвинулся к цели. Теперь уже add star у меня есть в меню, но:

/home/leonid/2.5/26464/bin/blender
found bundled python: /home/leonid/.blender/python
Traceback (most recent call last):
File "/home/leonid/.blender/scripts/op/add_mesh_star.py", line 95, in execute
if self.properties.use_abso == True:
AttributeError: 'MESH_OT_primitive_star_add' object has no attribute 'use_abso'

А это ещё куда?

Morthan
переводчик
Morthan
Сообщений: 388
Рейтинг: +168



31 января 2010 в 19:11Рейтинг: 0    0    0
#20


В скрипте создания тора в строке 96 есть создание свойства use_abso:

use_abso = BoolProperty(name="Use Int+Ext Controls",
description="Use the Int / Ext controls for torus dimensions", default=False)

Аналогичного фрагмента в скрипте создания звезды нет. Потому и ругается, что нету такого атрибута.


Morthan
переводчик
Morthan
Сообщений: 388
Рейтинг: +168



31 января 2010 в 19:12Рейтинг: 0    0    0
#21


Между прочим, вместо

if self.properties.use_abso == True:

я бы написал

if self.properties.use_abso:

:)


Lanuhum
отшельник
Lanuhum
Сообщений: 5883
Рейтинг: +270



31 января 2010 в 20:29Рейтинг: 0    0    0
#22


Я уже почти что программист!!! Если бы ни вот эта бяка:
TypeError: integer argument expected, got float
TypeError: integer argument expected, got float

Но, уже ещё ближе, помогайте мне, может, в программирование ударюсь. Интересно, чёрт бы его побрал. Объект добавлен, но не видно его.
Я вот это выбросил:
if self.properties.use_abso == True:
extra_helper = (self.properties.abso_outer_rad - self.properties.abso_inner_rad) * 0.5
self.properties.outer_radius = self.properties.abso_inner_rad + extra_helper
self.properties.inner_radius = extra_helper

verts_loc, faces = add_star(self.properties.points,
self.properties.outer_radius,
self.properties.inner_radius,
self.properties.depth)
А он начал ругаться на (verts_loc) вот здесь:

mesh.add_geometry(int(len(verts_loc) / 3), 0, int(len(faces) / 4))
mesh.verts.foreach_set("co", verts_loc)
mesh.faces.foreach_set("verts_raw", faces)

Ну, я и это выбросил, а получилось вот как:

Прикреплено изображение (нажмите, чтобы увеличить):
прикрепленное изображение

Morthan
переводчик
Morthan
Сообщений: 388
Рейтинг: +168



31 января 2010 в 20:40Рейтинг: 0    0    0
#23


> Я уже почти что программист!!! Если бы ни вот эта бяка:
> TypeError: integer argument expected, got float
> TypeError: integer argument expected, got float

Здесь оно ругается, что хотели что-то целочисленное (IntProperty), а получили с плавающей запятой (FloatProperty).

> А он начал ругаться на (verts_loc) вот здесь:

На verts_loc он ругается совершенно правильно, поскольку ты выбросил вызов add_star(), возвращающий кортеж (verts_loc, faces).

> mesh.add_geometry(int(len(verts_loc) / 3), 0, int(len(faces) / 4))
> mesh.verts.foreach_set("co", verts_loc)
> mesh.faces.foreach_set("verts_raw", faces)

Теперь мы пытаемся к мешу добавить грани с вершинами (которых нет, потому что выбросили участок, где они создавались). Выбрасываем этот блок и получаем что?

Правильно, меш без единого гвоздя граней и вершин! Иными словами, Empty.
:D

Lanuhum
отшельник
Lanuhum
Сообщений: 5883
Рейтинг: +270



31 января 2010 в 20:56Рейтинг: 0    0    0
#24


> На verts_loc он ругается совершенно правильно, поскольку ты выбросил вызов add_star(), возвращающий кортеж (verts_loc, faces).
Вернул на место:

File "/home/leonid/.blender/scripts/op/add_mesh_star.py", line 96, in execute
verts_loc, faces = add_star(self.properties.points,
AttributeError: 'MESH_OT_primitive_star_add' object has no attribute 'points'

Вообще ничего не понимаю. В старом скрипте же указываются points. Мне что их на verts_loc заменить или что? Points указывают количество концов у звезды

Belsagor
пользователь
Belsagor
Сообщений: 191
Рейтинг: 0



3


31 января 2010 в 21:05Рейтинг: 0    0    0
#25


Держи, только там гдето переменные перепутаны, косячит звезду.


Belsagor
пользователь
Belsagor
Сообщений: 191
Рейтинг: 0



3


31 января 2010 в 21:06Рейтинг: 0    0    0
#26


Блин, файл не прицепился. :D

Прикреплен файл: add_mesh_star_25-2.7z

Lanuhum
отшельник
Lanuhum
Сообщений: 5883
Рейтинг: +270



31 января 2010 в 21:21Рейтинг: 0    0    0
#27


Спасибо, завтра после работы будет чем заняться. Косячит, и, если поместить в родную папку, то не появляется в меню, и, вдобавок, и add torus из меню пропадает.


Belsagor
пользователь
Belsagor
Сообщений: 191
Рейтинг: 0



3


01 февраля 2010 в 16:29Рейтинг: 0    0    0
#28


Вот рабочий скрипт. В отличие от старого варианта делает все фейсы четырехугольные.

Иконку взял от Empty.
Установка: поместить скрипт в папку [БЛЕНДЕР]/.blender/scripts/op/
Если не появится в меню Add-Mesh, удалите файл add_mesh_star.pyc (в той-же папке) и перезапустите блендер.


Прикреплен файл: add_mesh_star.7z


Сообщений 29, на страницах: 1 2
добавить сообщение
© 2007-2012 Юлия Корбут, некоторые права соблюдены.
© 2007-2012 Julia Korbut, some rights reserved.