Jump to content
  • 0
n-pigeon

Szybkie odpowiedzi na proste pytania. Blender Q&A

Question

Jeśli masz pytanie lub drobny problem z migracją w związku z Blenderem, typu "gdzie podział się przycisk XYZ" i nie chcesz tworzyć z tego powodu nowego wątku, jest to miejsce dla ciebie ;)

Edited by n-pigeon

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

Na szczescie odwolywanie sie do istniejacych pluginów jest w blenderze bardzo łatwe, każdy z nich tworzy wlasny operator ktoremu mozna podac jego ustawienia. Taki skrypt moze miec kilka linijek kodu. Poproś na blender artists żeby ktos ci napisal cos takiego.

Share this post


Link to post
Share on other sites
  • 0

Jestem baaardzo zielony w Blenderze i bardzo proszę o pomoc w prostej sprawie -

wchodzę w Materials i chcę dodać Glass BSDF, lecz gdy klikam NEW, zamiast TEGO mam TO.

 

Dzięki

 

edit: udało mi się rozwiązać, przestawiony rodzaj renderu.

Edited by Hant

Share this post


Link to post
Share on other sites
  • 0

Witam. Chciałbym w obrębie jednego panelu umieścić sobie w 2 boxach parametry dotyczące "Ray Visibility" dla zaznaczonego obiektu, a poniżej dotyczące aktywnego "World". Z obiektem mi się udało natomiast opcje odnośnie świata nie chcą się wyświetlić. Co może być nie tak?

 

Wglądówka:

 

lsvlUjo.png

 

 

       ob = context.object
       visibility = ob.cycles_visibility
       col = layout.column()

       box = col.box()
       box.label(text="Object Ray Visibility", icon='OBJECT_DATA')
       box.prop(visibility, "camera")
       box.prop(visibility, "diffuse")
       box.prop(visibility, "glossy")
       box.prop(visibility, "transmission")
       if ob.type != 'LAMP':
           box.prop(visibility, "shadow")


       col.separator()
       box = col.box()
       box.label(text="World Ray Visibility", icon='WORLD')

       world = context.world
       wovisibility = world.cycles_visibility
       row = box.row()
       row.prop(wovisibility, "camera")
       row.prop(wovisibility, "diffuse")
       row.prop(wovisibility, "glossy")
       row.prop(wovisibility, "transmission")

 

 

 

Dzięki..

Edited by Nanoman

Share this post


Link to post
Share on other sites
  • 0

Musisz się odwołać do sceny a dopiero potem do worlda który jest do tej sceny podłączony.

 

bpy.context.scene.world['cycles_visibility']

Share this post


Link to post
Share on other sites
  • 0

Czyli jak dokładnie w moim przypadku powinienem zadeklarować?

Nie orientuję się jeszcze w tym za bardzo :(

Share this post


Link to post
Share on other sites
  • 0

Po prostu zamień linijkę:

context.world['cycles_visibility']

na:

context.scene.world['cycles_visibility']

 

To "context.scene" to podstawa przy wielu działaniach bo w scenie zapisuje się większość ustawień.

Share this post


Link to post
Share on other sites
  • 0
Na szczescie odwolywanie sie do istniejacych pluginów jest w blenderze bardzo łatwe, każdy z nich tworzy wlasny operator ktoremu mozna podac jego ustawienia. Taki skrypt moze miec kilka linijek kodu. Poproś na blender artists żeby ktos ci napisal cos takiego.
w istocie jest bardzo łatwe sam dałem radę napisać gdyby ktoś potrzebował (trzba tylko włączyć plugin z exportemdxf bo domyślnie jest wyłączony):

fbxPathname = sys.argv[7]
axisFwd = sys.argv[8]
axisUp = sys.argv[9]



bpy.ops.export_scene.fbx(
   filepath=fbxPathname + ".fbx",
   axis_forward=axisFwd,
   axis_up=axisUp)

bpy.ops.export_scene.obj(
   filepath=fbxPathname + ".obj")

bpy.ops.export_scene.autodesk_3ds(
   filepath=fbxPathname + ".3ds",
   axis_forward=axisFwd,
   axis_up=axisUp)

bpy.ops.export.dxf(
   onlySelected=0,
   filepath=fbxPathname + ".dxf")

to powyżej trzeba zapisać do exportfbx.py

a w terminalu w linuksie trzeba otworzyć folder gdzie znajdują się pliki do exportu i wpisać

for i in `ls -1 *.blend`; do /home/mk/Programy/blender-2.71-linux-glibc211-x86_64/blender -b /home/mk/modele/$i --python "exportfbx.py" -- ModelName $i -Y Z; done

gdzie pierwsza ścieżka to lokalizacja blendera kolejna to miejsce gdzie są nasze pliki do exportu. (zapisany plik exportfbx.py też powinien być w tym folderze

Edited by zagloowka

Share this post


Link to post
Share on other sites
  • 0

Prośba o pomoc.

Potrzebuję wyrenderować w oddzielnych warstwach cień obiektu, cień rzucony przez obiekt i odbicie obiektu w podłożu. Potrzebuję warstw z kanałem alfa i np samym wyizolowanym cieniem lub odbiciem.

Edited by kraas

Share this post


Link to post
Share on other sites
  • 0

witam!

Na wstępie chciałbym podziękować Monio i jeszcze jednemu użytkownikowi którzy pomogli mi z copy rotation constraint na bodajże 280 stronie:P

jeszcze 2 szybkie pytania- mam armature, zrobilem pare obrotów, zapisałem plik w jakimś położeniu kości- nie wiem czy początkowe czy nie. Problem w tym że nawet jak ustawie kość do odpowiedniej pozycji- blender nie chce tego zapisać, i za kazdym razem musze to ustawiać.

Druga sprawa, przypisalem do obiektu szkielet, pozniej odparentowalem obiekt w celu poprawienia szkieletu. Teraz gdy znow parentuje with automatic weights, obiekt zawsze przesuwa sie trochę w dół i nie moge ustalić dokładnie właściwego położenia kości i obiektu.

Nawet jesli obiekt zrobię nowy- można coś z tym zrobić? - nie moge sobie poradzić.

z góry dzięki!

Share this post


Link to post
Share on other sites
  • 0

Witam,

próbuję napisać proste makro do :

1. snap cursour to selection

2. add orientation (use=True) -; działa tylko bez opcji use=True

3. get out of edit mode

4.add empty

 

 

ale z poziomu skryptu nie działa mi większość prostych komend jak zwyły grab x o 3m.

Problem w tym że w momencie wywoływania skryptu kursor jest w oknie text, wiecie jak to obejść?

Share this post


Link to post
Share on other sites
  • 0

Witam. Ja znowu potrzebuję pomocy w kodzie.

Swego czasu użytkownik BA napisał na moją prośbę skrypt, który oblicza całkowity rozmiar wszystkich zaznaczonych obiektów.

Plik ze scenką do uruchomienia można pobrać tutaj:

http://blenderartists.org/forum/attachment.php?attachmentid=318568&d=1404331888

 

Kod tworzy nowy panel w oknie "Properties" na zakładce "Object" i wygląda jak na poniższym obrazku.

I teraz nie chcę już chłopakowi głowy zawracać bo wspomagam się trochę translatorem i pewnie jakieś bzdury niekiedy wychodzą więc piszę tutaj. Dla mnie addon jest bardzo pomocny podczas tworzenia różnych konstrukcji opartych o profile aluminiowe i nie tylko.

Generalnie skrypt działa bardzo dobrze ale w obecnej wersji operator "custombutton1" nie jest rejestrowany wewnątrz blendera, a bardzo chciałbym przypisać sobie do niego skrót klawiszowy.

No i jeszcze kwestia checkboxa "Enable" nie jest on do niczego potrzebny a jego istnienie wynika z mojego niedogadania z autorem :(

 

Starałem się wzorować na innych skryptach i szablonach ale w dalszym ciągu nie mogę zarejestrować w blenderze tego operatora... Pomożecie? No i oczywiście może komuś z Was też się przyda to coś...

 

Dzięki

 

 

N67Z1ky.png

 

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
# ##### END GPL LICENSE BLOCK #####

import bpy
from bpy.props import *
from mathutils import *
from math import *





# Ckeck Box Properties


bpy.types.Scene.MyCkeckbox1 = BoolProperty(
       name="Boolean", 
       description="True or False?")
bpy.context.scene['MyCkeckbox1'] = False



bl_info = {
   "name": "Scene selected ob Dim",
   "author": "Rickyblender",
   "version": (0, 1, 0),
   "blender": (2, 71, 0),
   "location": "View3D > Add > Mesh > scenedim",
   "description": "Scene selected ob Dim  ",
   "warning": "Date  1 July 2014",
   "wiki_url": " http://blenderartists.org/forum/showthread.php?341699-Dimensions-of-all-selected-objects "
               "",
   "category": "Add Mesh",
}


scd1=[0,0,0,0]


###

def scenedim1():


   global scd1

   minx = 0
   miny = 0
   minz = 0

   maxx = 0
   maxy = 0
   maxz = 0


   c1=0

   for o1 in bpy.context.selected_objects:

       if o1.name=="Camera" or o1.name=="Empty":
           pass

       else:

#            print ('ob=',o1.name)
#            print ()

           bounds = functions.getobjectBounds(o1)


           oxmin = bounds[0][0]
           oxmax = bounds[1][0]

           oymin = bounds[0][1]
           oymax = bounds[1][1]

           ozmin = bounds[0][2]
           ozmax = bounds[1][2]

           if  c1==0 :
               minx=oxmin
               miny=oymin
               minz=ozmin

               maxx=oxmax
               maxy=oymax
               maxz=ozmax

        # min 

           if oxmin                 minx = oxmin

           if oymin                 miny = oymin

           if ozmin                 minz = ozmin

       # max 

           if oxmax >= maxx:
               maxx = oxmax

           if oymax >= maxy:
               maxy = oymax

           if ozmax >= maxz:
               maxz = ozmax

       c1+=1


#    print ('x min =', minx , 'y min =', miny, 'z min =', minz  )
#    print ('x max =', maxx , 'y max =', maxy, 'z max =', maxz  )
#    print ()
#    print ('x min =', minx , 'x max =', maxx )
#    print ('y min =', miny , 'y max =', maxy )
#    print ('z min =', minz , 'z max =', maxz )
#    print ()

   widhtx=(maxx-minx)

   widhty=maxy-miny

   widhtz=maxz-minz


#    print ('Scene X Y Z Bounds : { ',widhtx, ' + ' ,widhty , ' + ', widhtz )

   scd=[widhtx ,widhty ,widhtz ,len(bpy.context.selected_objects) ]

   scd1= scd
#    print ('scd1=',scd1)

   return 

###

###

class ScenedimdPanel(bpy.types.Panel):

   """Creates a Panel in the Object properties window"""

   bl_label = "Scene-dim-panel"
   bl_idname = "OBJECT_PT_hello"
   bl_space_type = 'PROPERTIES'
   bl_region_type = 'WINDOW'
   bl_context = "object"


   @classmethod
   def poll(cls, context):
       obs=bpy.context.selected_objects
       return obs

   def draw(self, context):

       global scd1

       layout = self.layout
       scene = context.scene

       col = layout.column()
       col.prop(scene, "MyCkeckbox1", text = "Enable")

       if scene.MyCkeckbox1:
#            print ('checkbox  True')


#            obj = context.object
#            obs=bpy.context.selected_objects


#            dim1=scenedim1()

#            dx1=dim1[0]
#            dy1=dim1[1]
#            dz1=dim1[2]

           dx1=scd1[0]
           dy1=scd1[1]
           dz1=scd1[2]

           row = layout.row()
           row.label(text="Scene selected ob DIM", icon='WORLD_DATA')

#        row = layout.row()
#        row.label(text="Active object is: " + obj.name)
#        row = layout.row()
#        row.prop(obj, "name")

#        row = layout.row()
#        row.operator("mesh.primitive_cube_add")

           le1=scd1[3]
           row = layout.row()
           row.label(text="selected object is: " + str(le1))

#        unit = bpy.context.scene.unit_settings
           unit =bpy.context.scene.unit_settings.system
#        bpy.context.scene.unit_settings
#        print ('UnitSettings.system =', bpy.context.scene.unit_settings[0])
#        print ('unit=',unit)
   # unitsettings

           if unit=="METRIC":
   #            print ('Metric units system')
               m1=" mm"
               dx1=dx1*1000
               dy1=dy1*1000
               dz1=dz1*1000
           elif unit=="IMPERIAL":
   #            print ('IMPERIA units system')
               m1=" Feet"
           else:
   #            print ('BU units system')
               m1=" BU"



           ASTx = str("%.2f"%(dx1))+" X " + m1
           row = layout.row()
           row.label(text="X Dim = " + ASTx)
           ASTy = str("%.2f"%(dy1))+" Y " + m1
           row = layout.row()
           row.label(text="Y Dim = " + ASTy)
           ASTz = str("%.2f"%(dz1))+" Z " + m1
           row = layout.row()
           row.label(text="Z Dim =" + ASTz)




           row = layout.row()
           layout.operator("custom.button1")

       else:
           print ('checkbox Fake')




###



"""




"""

###

class functions():

   def getobjectBounds(ob):

       obminx = ob.location.x
       obminy = ob.location.y
       obminz = ob.location.z

       obmaxx = ob.location.x
       obmaxy = ob.location.y
       obmaxz = ob.location.z

       for vertex in ob.bound_box[:]:
           x = ob.location.x + (ob.scale.x * vertex[0])
           y = ob.location.y + (ob.scale.y * vertex[1])
           z = ob.location.z + (ob.scale.z * vertex[2])

           if x                 obminx = x
           if y                 obminy = y
           if z                 obminz = z

           if x >= obmaxx:
               obmaxx = x
           if y >= obmaxy:
               obmaxy = y
           if z >= obmaxz:
               obmaxz = z

       boundsmin = [obminx,obminy,obminz]
       boundsmax = [obmaxx,obmaxy,obmaxz] 

       bounds = [boundsmin,boundsmax]

#        print (' ob.name=', ob.name)
#        print ('bound min =', boundsmin,' boundsmax =', boundsmax )
#        print ()

       return bounds

###
####





class custombutton1(bpy.types.Operator):
   bl_idname = "custom.button1"
   bl_label = "Do Calculations"
   __doc__ = "Simple Custom Button"

   def invoke(self, context, event):
                                                   # when the button is press it prints this to the log / Console
       scenedim1()
       print("Custom Button1  Calculate scene dim")
       return{'FINISHED'}    


###





###





def register():
   bpy.utils.register_module(__name__)


def unregister():
   bpy.utils.unregister_module(__name__)



if __name__ == "__main__":
   register()

Edited by Nanoman

Share this post


Link to post
Share on other sites
  • 0

mielnicki:

z text editora z menu template -> python wybierz simple operator

do metody main albo execute wrzuc swoje komendy

pozmieniaj nazwe klasy w odpowiednich miejscach i bl_idname bl_label

wywal test call

zarejestruj operator alt + P

wyszukaj w 3d view za pomocą spacji "My first operator"

poniżej przykład

import bpy
# zarejestruj operator alt + P 
# wyszukaj w 3d view za pomocą spacji "My first operator"

class MySimpleOperator(bpy.types.Operator):
   """Tooltip"""
   bl_idname = "object.my_operator"
   bl_label = "My First Operator"

   @classmethod
   def poll(cls, context):
       return context.active_object is not None

   def execute(self, context):
       bpy.ops.view3d.snap_cursor_to_selected()
       bpy.ops.transform.create_orientation(name="snap2", use=True)
       bpy.ops.object.editmode_toggle()
       bpy.ops.object.empty_add(type='PLAIN_AXES')
       return {'FINISHED'}

def register():
   bpy.utils.register_class(MySimpleOperator)

def unregister():
   bpy.utils.unregister_class(MySimpleOperator)

if __name__ == "__main__":
   register()

Share this post


Link to post
Share on other sites
  • 0

NanoMan:

wywaliłem ten enable, i zrobilem rejestracje bpy.ops.custom.button1()

tylko nie wiem czemu mi sie panel odswieza dopiero po najechaniu :)

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
# ##### END GPL LICENSE BLOCK #####

import bpy
from bpy.props import *
from mathutils import *
from math import *

# Ckeck Box Properties

bl_info = {
   "name": "Scene selected ob Dim",
   "author": "Rickyblender",
   "version": (0, 1, 0),
   "blender": (2, 71, 0),
   "location": "View3D > Add > Mesh > scenedim",
   "description": "Scene selected ob Dim  ",
   "warning": "Date  1 July 2014",
   "wiki_url": " http://blenderartists.org/forum/showthread.php?341699-Dimensions-of-all-selected-objects "
               "",
   "category": "Add Mesh",
}

scd1=[0,0,0,0]

###

def scenedim1():
   global scd1

   minx = 0
   miny = 0
   minz = 0

   maxx = 0
   maxy = 0
   maxz = 0

   c1=0

   for o1 in bpy.context.selected_objects:
       if o1.name=="Camera" or o1.name=="Empty":
           pass
       else:
#            print ('ob=',o1.name)
#            print ()

           bounds = functions.getobjectBounds(o1)

           oxmin = bounds[0][0]
           oxmax = bounds[1][0]

           oymin = bounds[0][1]
           oymax = bounds[1][1]

           ozmin = bounds[0][2]
           ozmax = bounds[1][2]

           if  c1==0 :
               minx=oxmin
               miny=oymin
               minz=ozmin

               maxx=oxmax
               maxy=oymax
               maxz=ozmax
        # min 
           if oxmin                 minx = oxmin
           if oymin                 miny = oymin
           if ozmin                 minz = ozmin
       # max 
           if oxmax >= maxx:
               maxx = oxmax
           if oymax >= maxy:
               maxy = oymax
           if ozmax >= maxz:
               maxz = ozmax
       c1+=1

   widhtx=(maxx-minx)
   widhty=maxy-miny
   widhtz=maxz-minz

   scd=[widhtx ,widhty ,widhtz ,len(bpy.context.selected_objects) ]

   scd1= scd
   return 

###

###

class ScenedimdPanel(bpy.types.Panel):
   """Creates a Panel in the Object properties window"""
   bl_label = "Scene-dim-panel"
   bl_idname = "OBJECT_PT_hello"
   bl_space_type = 'PROPERTIES'
   bl_region_type = 'WINDOW'
   bl_context = "object"

   @classmethod
   def poll(cls, context):
       obs=bpy.context.selected_objects
       return obs

   def draw(self, context):
       global scd1

       layout = self.layout
       scene = context.scene

       col = layout.column()

       dx1=scd1[0]
       dy1=scd1[1]
       dz1=scd1[2]

       row = layout.row()
       row.label(text="Scene selected ob DIM", icon='WORLD_DATA')

       le1=scd1[3]
       row = layout.row()
       row.label(text="selected object is: " + str(le1))

       unit =bpy.context.scene.unit_settings.system
   # unitsettings

       if unit=="METRIC":
           m1=" mm"
           dx1=dx1*1000
           dy1=dy1*1000
           dz1=dz1*1000
       elif unit=="IMPERIAL":
           m1=" Feet"
       else:
           m1=" BU"

       ASTx = str("%.2f"%(dx1))+" X " + m1
       row = layout.row()
       row.label(text="X Dim = " + ASTx)
       ASTy = str("%.2f"%(dy1))+" Y " + m1
       row = layout.row()
       row.label(text="Y Dim = " + ASTy)
       ASTz = str("%.2f"%(dz1))+" Z " + m1
       row = layout.row()
       row.label(text="Z Dim =" + ASTz)

       row = layout.row()
       layout.operator("custom.button1")

###

###

class functions():

   def getobjectBounds(ob):

       obminx = ob.location.x
       obminy = ob.location.y
       obminz = ob.location.z

       obmaxx = ob.location.x
       obmaxy = ob.location.y
       obmaxz = ob.location.z

       for vertex in ob.bound_box[:]:
           x = ob.location.x + (ob.scale.x * vertex[0])
           y = ob.location.y + (ob.scale.y * vertex[1])
           z = ob.location.z + (ob.scale.z * vertex[2])

           if x                 obminx = x
           if y                 obminy = y
           if z                 obminz = z

           if x >= obmaxx:
               obmaxx = x
           if y >= obmaxy:
               obmaxy = y
           if z >= obmaxz:
               obmaxz = z

       boundsmin = [obminx,obminy,obminz]
       boundsmax = [obmaxx,obmaxy,obmaxz] 

       bounds = [boundsmin,boundsmax]

       return bounds

###
####

class Custombutton1(bpy.types.Operator):
   bl_idname = "custom.button1"
   bl_label = "Do Calculations"
   __doc__ = "Simple Custom Button"


   def execute(self, context):
   # when the button is press it prints this to the log / Console
       scenedim1()
       print("Custom Button1  Calculate scene dim")
       return{'FINISHED'}    

###

###

def register():
   bpy.utils.register_module(__name__)
#    bpy.utils.register_class(Custombutton1)

def unregister():
   bpy.utils.unregister_module(__name__)
#   bpy.utils.unregister_class(Custombutton1)

if __name__ == "__main__":
   register()

Share this post


Link to post
Share on other sites
  • 0

Dzięki szczuro, bez checkboxa o wiele lepiej, jednak mój blender w dalszym ciągu nie widzi operatora...Może tylko u mnie jest coś nie tak?

 

REulUuh.png

Share this post


Link to post
Share on other sites
  • 0

@Nanoman

Zainstaluj addon i wklep pod spacją "Do Calculations"

edit:

w input -> 3d View -> Object Mode dodaj nowy skrót klawiszowy dla custom.button1 (np. ALT + L)

Edited by floo

Share this post


Link to post
Share on other sites
  • 0

@Szczuro ! mistrzu ! działa, taki krótki kod... myślałem że będzie trudniej... w dodatku można wklejać komendy prosto z info bara... genialne... makra so easy.... dodałem jeszcze align to orientation i włala wyrzuca empty wyrównane z krawędzią !!!

Powinien istnieć addon do generowania takich makro... wpisujemy w toolbarze nazwę, mamy przycisk nagraj który zapisuje wszystkie komendy w tym fragmencie " def execute(self, context):" po zakończeniu nagrania zapisywałby plik i odpalał skrypt :)

Gdybym ogarniał blenderowego pythona to bym sobie zrobił takowy :)

 

Jeszcze raz wielkie dzięki...

Share this post


Link to post
Share on other sites
  • 0
@Nanoman

Zainstaluj addon i wklep pod spacją "Do Calculations"

edit:

w input -> 3d View -> Object Mode dodaj nowy skrót klawiszowy dla custom.button1 (np. ALT + L)

 

No tak... ja przez cały czas wpisywałem w polu wyszukiwania zadeklarowaną nazwę operatora a nie przycisku dlatego nie mogłem znaleźć :(

 

...tylko nie wiem czemu mi sie panel odswieza dopiero po najechaniu :)...

 

@szczuro co do odświeżania faktycznie wartości aktualizują się dopiero po najechaniu kursorem - w pierwotnej wersji skrypt nie miał przycisku tylko zwracał wartości w trybie auto update, jednak przy większej ilości obiektów za bardzo zamulało więc poprosiłem gościa, aby dorobił przycisk, więc może jakaś część kodu ma wpływ na ten stan rzeczy...

Edited by Nanoman

Share this post


Link to post
Share on other sites
  • 0

Kiedys chciałem napisac skrypt do robienia macrosow. Tak to dziala w zecie i sprawdza sie perfekcyjnie.

Samo generowanie pythonowego kodu to banał ale niebardzo wiem jak zczytywac odpalane operatory podczas nagrywania.

Share this post


Link to post
Share on other sites
  • 0

Niekompatybilny z nową wersją pythona. Gość się tym zajmuje teraz.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy