Topic: Blender en Python  (gelezen 37708 keer)


Offline Mark aka Dark

  • *
  • Berichten: 785
    • Bekijk profiel
    • Mijn eigen site
« Reactie #45 Gepost op: 12 juni 2014, 11:23:54 am »
Ja ja, die Peter weet er wel van.
Ben zelf ook veel bezig met python en Blender, en ben al een paar keer de naam PKHG tegen gekomen. Gisteren ook weer in het handleiding hoe je addons voor blender kunt maken met behulpt van eclipse IDE en Pydev.

MAD

P.S. schoot net door mn hoofd: een titel Scriptor op het forum introduceren? :-)
MAD staat voor: Mark Aka Dark
Problemen met inloggen? Mail naar: info@dbc-3d.nl

Offline JvL

  • Member
  • *
  • Berichten: 3,415
    • Bekijk profiel
    • Llyr Studio
« Reactie #46 Gepost op: 12 juni 2014, 11:28:35 am »
Lijkt mij wel een goed plan.

Offline IJp

  • *
  • Berichten: 4,387
    • Bekijk profiel
    • IJpart
« Reactie #47 Gepost op: 12 juni 2014, 15:45:19 pm »
Ja die titel pas Peter wel. ;)

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #48 Gepost op: 12 juni 2014, 16:04:25 pm »
Ja, programmeren, scripten, is zeker een hobby van mij .... niet alleen Python maar ook PHP, Java, Javascript, Lisp .... en nog wat meer  :D
(EDIT overigens sinds ca. 1963, tijdens numerieke wiskunde praktikum in HH ;-) ).

EDIT:
Mark, de link over eclipse en .. Heb je die nog voor mij (ons?) ?
« Laatst bewerkt op: 12 juni 2014, 16:09:17 pm door PKHG »
Doei
       Peter

Offline Mark aka Dark

  • *
  • Berichten: 785
    • Bekijk profiel
    • Mijn eigen site
« Reactie #49 Gepost op: 12 juni 2014, 17:03:21 pm »
MAD staat voor: Mark Aka Dark
Problemen met inloggen? Mail naar: info@dbc-3d.nl

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #50 Gepost op: 12 juni 2014, 17:26:00 pm »
Leuk, bedankt Mark!
Doei
       Peter

Offline JvL

  • Member
  • *
  • Berichten: 3,415
    • Bekijk profiel
    • Llyr Studio
« Reactie #51 Gepost op: 12 juni 2014, 20:33:48 pm »
Zeker leuk! Nog meer reden om er verder in te duiken (alsof ik nog niet druk genoeg ben... ;)).

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #52 Gepost op: 25 juni 2014, 18:53:52 pm »
Eindelijk begrepen :
Waar komen de verschillende UI (de panels) terecht
Dat is te achterhalen en werkt via http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Cookbook/Code_snippets/Interface

Voor het gemak de code
#----------------------------------------------------------
# File hello.py http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Cookbook/Code_snippets/Interface
#----------------------------------------------------------
import bpy
 
#
#    Menu in tools region
#
class ToolsPanel(bpy.types.Panel):
    bl_label = "Hello from Tools"
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOLS"
 
    def draw(self, context):
        self.layout.operator("hello.hello")
 
#
#    Menu in toolprops region
#
class ToolPropsPanel(bpy.types.Panel):
    bl_label = "Hello from Tool props"
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOL_PROPS"
 
    def draw(self, context):
        self.layout.operator("hello.hello", text='Hej').country = "Sweden"
 
#
#    Menu in UI region
#
class UIPanel(bpy.types.Panel):
    bl_label = "Hello from UI panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
 
    def draw(self, context):
        self.layout.operator("hello.hello", text='Servus (VIEW3D UI)').country="The Netherlands"
 
#
#    Menu in window region, object context
#
class ObjectPanel(bpy.types.Panel):
    bl_label = "Hello from Object context"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "object"
 
    def draw(self, context):
        self.layout.operator("hello.hello", text='Bonjour').country = "France (PROPERTiES)"
 
#
#    Menu in window region, material context
#
class MaterialPanel(bpy.types.Panel):
    bl_label = "Hello from Material context"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "material"
 
    def draw(self, context):
        self.layout.operator("hello.hello", text='Ciao').country = "Italy"
 
#
#    The Hello button prints a message in the console
#
class OBJECT_OT_HelloButton(bpy.types.Operator):
    bl_idname = "hello.hello"
    bl_label = "Say Hello"
    country = bpy.props.StringProperty()
 
    def execute(self, context):
        if self.country == '':
            print("Hello world!")
        else:
            print("Hello world from %s!" % self.country)
        return{'FINISHED'}   
 
#
# Registration
#   All panels and operators must be registered with Blender; otherwise
#   they do not show up. The simplest way to register everything in the
#   file is with a call to bpy.utils.register_module(__name__).
#
 
bpy.utils.register_module(__name__)

Pak de code in een Text-Window van Blender en Alt P (run script)
maak te console zichtbaar boven op de Windows klikken en toggle de Console.
Maak het Blender window iets kleiner zodat je de console kunt zien (of zoals ik het do ik start blender altijd vanuit een console al op, dan hoeft dit niet meer)
Nu zoek je de verschillende plaatsen op waar de button voor hello.hello kan/moet zijn!
Klik er op en kijk wat er in de consolte afgedrukt wordt.

He he, eindelijk (ook voor mij), nu glas-helder.
Doei
       Peter

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #53 Gepost op: 23 juli 2014, 17:10:04 pm »
Dit tutorial https://www.youtube.com/watch?v=WItCoAzA_XM  (Engels) (is misschien al eerder hier ergens)

is de moeite waard om te zien hoe eenvoudig het tools panels ... kan worden aangepast
Doei
       Peter

Offline IJp

  • *
  • Berichten: 4,387
    • Bekijk profiel
    • IJpart
« Reactie #54 Gepost op: 23 juli 2014, 17:59:05 pm »
Mooie tutorial en volgens mij kan nu iemand die slim genoeg is een Nederlandse Blender maken. ;)

Offline JvL

  • Member
  • *
  • Berichten: 3,415
    • Bekijk profiel
    • Llyr Studio
« Reactie #55 Gepost op: 24 juli 2014, 16:32:47 pm »
Die tutorial wilde ik al gaan volgen na mijn vakantie dus dat komt mooi uit.

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #56 Gepost op: 28 juli 2014, 08:45:08 am »
Hmm, het lijkt er op, dat ik alles (wat mijn bijdrages betreft) moet opschonen ... werk voor opa Peter ;-).

Mijn nieuwste ontdekking: In de opdrachten van de Geodesic Dome addon ontstaat een Operator Preset button
En ik heb net ontdekt WAAR daamee alle parameters van het onderwerk worden opgeboren, en dat helemaal automatisch!!! In een iets oudere versie had ik dat zelf geprogrammeerd  maar dat doet nu preset.py voor ...
Nog even uitzoeken welk onderdeel deze button toevoegd ... oh nu eindelijk ontdekt:
de operator class moet slechts dit hebben:  bl_options = {'REGISTER', 'UNDO', 'PRESET'}

Doei
       Peter

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #57 Gepost op: 01 augustus 2014, 12:05:38 pm »
Haal de twee sciipts te zien
http://blenderartists.org/forum/showthread.php?344695-addon-develop-using-unittests-who-would-join&p=2697665#post2697665

en maar proberen!

Dat was leren gebruiken van een bmesh !  ging heel erg leuk ;)
Doei
       Peter

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #58 Gepost op: 15 augustus 2014, 15:09:25 pm »
Pak het volgende script maar in een text-venster
In het View3D een 'Object' activeren en dan het script maar laten werken!

Dit was eigenlijk maar 3 kliks (in bestaande belichting):



import bpy
import bmesh

#bm = bmesh.new()
obj = bpy.context.scene.objects.active #bpy.data.objects['Plane.002']
bpy.ops.object.mode_set(mode='EDIT')
bm = bmesh.from_edit_mesh(obj.data)
#print(bm.faces[:], bm.verts[:])


#strak Object bpy.ops.object.mode_set(mode='EDIT')


result = bmesh.ops.poke(bm, faces= bm.faces[:], offset =1 , center_mode = 1, use_relative_offset = True)
#print(result)
bpy.ops.object.mode_set(mode='OBJECT')
bm.free()           
[code]

Het komt van bmesh willen bgrijpen, wat het inmiddels alles zo kan!
Doei
       Peter

Offline IJp

  • *
  • Berichten: 4,387
    • Bekijk profiel
    • IJpart
« Reactie #59 Gepost op: 15 augustus 2014, 16:39:01 pm »
ik heb de code geprobeerd en een cube werd een ster en als je de code daarna weer gebruikt dan krijg je weer andere effecten.
Dit is het effect op een Torus.