12 threads found!
Thread | Author | Replies | Views | Last Reply |
---|---|---|---|---|
deastham | 3 | 65 | ||
deastham | 0 | 30 |
(none)
|
|
deastham | 3 | 52 | ||
deastham | 4 | 72 | ||
deastham | 1 | 42 | ||
deastham | 2 | 74 | ||
deastham | 1 | 40 | ||
deastham | 0 | 32 |
(none)
|
|
deastham | 2 | 142 | ||
deastham | 0 | 46 |
(none)
|
|
deastham | 6 | 278 | ||
deastham | 10 | 363 |
36 comments found!
Thread: Poser Pro 11.3 Released | Forum: Poser - OFFICIAL
Update 818 seems to be missing the textures for the P6 characters (or at least they're not included with either the Nudes or Figures zips). Actually it seems to be missing ALL textures. There's not even a textures directory in the Poser 11 Content Runtime. Clearly I am missing something, but do not know what.
Thread: Open settings dialogs with PoserPython or send keyboard shortcuts to open? | Forum: Poser Python Scripting
Thread: Open settings dialogs with PoserPython or send keyboard shortcuts to open? | Forum: Poser Python Scripting
I solved my issue. The code I used is below. I got the answer from http://stackoverflow.com/questions/11906925/python-simulate-keydown and wanted to share it here for others wishing to be able to open Poser settings windows or execute menu commands via shortcut using a button.
import ctypes
LONG = ctypes.c_long DWORD = ctypes.c_ulong ULONG_PTR = ctypes.POINTER(DWORD) WORD = ctypes.c_ushort
class MOUSEINPUT(ctypes.Structure): fields = (('dx', LONG), ('dy', LONG), ('mouseData', DWORD), ('dwFlags', DWORD), ('time', DWORD), ('dwExtraInfo', ULONG_PTR))
class KEYBDINPUT(ctypes.Structure): fields = (('wVk', WORD), ('wScan', WORD), ('dwFlags', DWORD), ('time', DWORD), ('dwExtraInfo', ULONG_PTR))
class HARDWAREINPUT(ctypes.Structure): fields = (('uMsg', DWORD), ('wParamL', WORD), ('wParamH', WORD))
class _INPUTunion(ctypes.Union): fields = (('mi', MOUSEINPUT), ('ki', KEYBDINPUT), ('hi', HARDWAREINPUT))
class INPUT(ctypes.Structure): fields = (('type', DWORD), ('union', _INPUTunion))
def SendInput(*inputs): nInputs = len(inputs) LPINPUT = INPUT * nInputs pInputs = LPINPUT(*inputs) cbSize = ctypes.c_int(ctypes.sizeof(INPUT)) return ctypes.windll.user32.SendInput(nInputs, pInputs, cbSize)
INPUT_MOUSE = 0 INPUT_KEYBOARD = 1 INPUT_HARDWARD = 2
def Input(structure): if isinstance(structure, MOUSEINPUT): return INPUT(INPUT_MOUSE, _INPUTunion(mi=structure)) if isinstance(structure, KEYBDINPUT): return INPUT(INPUT_KEYBOARD, _INPUTunion(ki=structure)) if isinstance(structure, HARDWAREINPUT): return INPUT(INPUT_HARDWARE, _INPUTunion(hi=structure)) raise TypeError('Cannot create INPUT structure!')
WHEEL_DELTA = 120 XBUTTON1 = 0x0001 XBUTTON2 = 0x0002 MOUSEEVENTF_ABSOLUTE = 0x8000 MOUSEEVENTF_HWHEEL = 0x01000 MOUSEEVENTF_MOVE = 0x0001 MOUSEEVENTF_MOVE_NOCOALESCE = 0x2000 MOUSEEVENTF_LEFTDOWN = 0x0002 MOUSEEVENTF_LEFTUP = 0x0004 MOUSEEVENTF_RIGHTDOWN = 0x0008 MOUSEEVENTF_RIGHTUP = 0x0010 MOUSEEVENTF_MIDDLEDOWN = 0x0020 MOUSEEVENTF_MIDDLEUP = 0x0040 MOUSEEVENTF_VIRTUALDESK = 0x4000 MOUSEEVENTF_WHEEL = 0x0800 MOUSEEVENTF_XDOWN = 0x0080 MOUSEEVENTF_XUP = 0x0100
def MouseInput(flags, x, y, data): return MOUSEINPUT(x, y, data, flags, 0, None)
VK_LBUTTON = 0x01 # Left mouse button VK_RBUTTON = 0x02 # Right mouse button VK_CANCEL = 0x03 # Control-break processing VK_MBUTTON = 0x04 # Middle mouse button (three-button mouse) VK_XBUTTON1 = 0x05 # X1 mouse button VK_XBUTTON2 = 0x06 # X2 mouse button VK_BACK = 0x08 # BACKSPACE key VK_TAB = 0x09 # TAB key VK_CLEAR = 0x0C # CLEAR key VK_RETURN = 0x0D # ENTER key VK_SHIFT = 0x10 # SHIFT key VK_CONTROL = 0x11 # CTRL key VK_MENU = 0x12 # ALT key VK_PAUSE = 0x13 # PAUSE key VK_CAPITAL = 0x14 # CAPS LOCK key VK_KANA = 0x15 # IME Kana mode VK_HANGUL = 0x15 # IME Hangul mode VK_JUNJA = 0x17 # IME Junja mode VK_FINAL = 0x18 # IME final mode VK_HANJA = 0x19 # IME Hanja mode VK_KANJI = 0x19 # IME Kanji mode VK_ESCAPE = 0x1B # ESC key VK_CONVERT = 0x1C # IME convert VK_NONCONVERT = 0x1D # IME nonconvert VK_ACCEPT = 0x1E # IME accept VK_MODECHANGE = 0x1F # IME mode change request VK_SPACE = 0x20 # SPACEBAR VK_PRIOR = 0x21 # PAGE UP key VK_NEXT = 0x22 # PAGE DOWN key VK_END = 0x23 # END key VK_HOME = 0x24 # HOME key VK_LEFT = 0x25 # LEFT ARROW key VK_UP = 0x26 # UP ARROW key VK_RIGHT = 0x27 # RIGHT ARROW key VK_DOWN = 0x28 # DOWN ARROW key VK_SELECT = 0x29 # SELECT key VK_PRINT = 0x2A # PRINT key VK_EXECUTE = 0x2B # EXECUTE key VK_SNAPSHOT = 0x2C # PRINT SCREEN key VK_INSERT = 0x2D # INS key VK_DELETE = 0x2E # DEL key VK_HELP = 0x2F # HELP key VK_LWIN = 0x5B # Left Windows key (Natural keyboard) VK_RWIN = 0x5C # Right Windows key (Natural keyboard) VK_APPS = 0x5D # Applications key (Natural keyboard) VK_SLEEP = 0x5F # Computer Sleep key VK_NUMPAD0 = 0x60 # Numeric keypad 0 key VK_NUMPAD1 = 0x61 # Numeric keypad 1 key VK_NUMPAD2 = 0x62 # Numeric keypad 2 key VK_NUMPAD3 = 0x63 # Numeric keypad 3 key VK_NUMPAD4 = 0x64 # Numeric keypad 4 key VK_NUMPAD5 = 0x65 # Numeric keypad 5 key VK_NUMPAD6 = 0x66 # Numeric keypad 6 key VK_NUMPAD7 = 0x67 # Numeric keypad 7 key VK_NUMPAD8 = 0x68 # Numeric keypad 8 key VK_NUMPAD9 = 0x69 # Numeric keypad 9 key VK_MULTIPLY = 0x6A # Multiply key VK_ADD = 0x6B # Add key VK_SEPARATOR = 0x6C # Separator key VK_SUBTRACT = 0x6D # Subtract key VK_DECIMAL = 0x6E # Decimal key VK_DIVIDE = 0x6F # Divide key VK_F1 = 0x70 # F1 key VK_F2 = 0x71 # F2 key VK_F3 = 0x72 # F3 key VK_F4 = 0x73 # F4 key VK_F5 = 0x74 # F5 key VK_F6 = 0x75 # F6 key VK_F7 = 0x76 # F7 key VK_F8 = 0x77 # F8 key VK_F9 = 0x78 # F9 key VK_F10 = 0x79 # F10 key VK_F11 = 0x7A # F11 key VK_F12 = 0x7B # F12 key VK_F13 = 0x7C # F13 key VK_F14 = 0x7D # F14 key VK_F15 = 0x7E # F15 key VK_F16 = 0x7F # F16 key VK_F17 = 0x80 # F17 key VK_F18 = 0x81 # F18 key VK_F19 = 0x82 # F19 key VK_F20 = 0x83 # F20 key VK_F21 = 0x84 # F21 key VK_F22 = 0x85 # F22 key VK_F23 = 0x86 # F23 key VK_F24 = 0x87 # F24 key VK_NUMLOCK = 0x90 # NUM LOCK key VK_SCROLL = 0x91 # SCROLL LOCK key VK_LSHIFT = 0xA0 # Left SHIFT key VK_RSHIFT = 0xA1 # Right SHIFT key VK_LCONTROL = 0xA2 # Left CONTROL key VK_RCONTROL = 0xA3 # Right CONTROL key VK_LMENU = 0xA4 # Left MENU key VK_RMENU = 0xA5 # Right MENU key VK_BROWSER_BACK = 0xA6 # Browser Back key VK_BROWSER_FORWARD = 0xA7 # Browser Forward key VK_BROWSER_REFRESH = 0xA8 # Browser Refresh key VK_BROWSER_STOP = 0xA9 # Browser Stop key VK_BROWSER_SEARCH = 0xAA # Browser Search key VK_BROWSER_FAVORITES = 0xAB # Browser Favorites key VK_BROWSER_HOME = 0xAC # Browser Start and Home key VK_VOLUME_MUTE = 0xAD # Volume Mute key VK_VOLUME_DOWN = 0xAE # Volume Down key VK_VOLUME_UP = 0xAF # Volume Up key VK_MEDIA_NEXT_TRACK = 0xB0 # Next Track key VK_MEDIA_PREV_TRACK = 0xB1 # Previous Track key VK_MEDIA_STOP = 0xB2 # Stop Media key VK_MEDIA_PLAY_PAUSE = 0xB3 # Play/Pause Media key VK_LAUNCH_MAIL = 0xB4 # Start Mail key VK_LAUNCH_MEDIA_SELECT = 0xB5 # Select Media key VK_LAUNCH_APP1 = 0xB6 # Start Application 1 key VK_LAUNCH_APP2 = 0xB7 # Start Application 2 key VK_OEM_1 = 0xBA # Used for miscellaneous characters; it can vary by keyboard. # For the US standard keyboard, the ';:' key VK_OEM_PLUS = 0xBB # For any country/region, the '+' key VK_OEM_COMMA = 0xBC # For any country/region, the ',' key VK_OEM_MINUS = 0xBD # For any country/region, the '-' key VK_OEM_PERIOD = 0xBE # For any country/region, the '.' key VK_OEM_2 = 0xBF # Used for miscellaneous characters; it can vary by keyboard. # For the US standard keyboard, the '/?' key VK_OEM_3 = 0xC0 # Used for miscellaneous characters; it can vary by keyboard. # For the US standard keyboard, the '`~' key VK_OEM_4 = 0xDB # Used for miscellaneous characters; it can vary by keyboard. # For the US standard keyboard, the '[{' key VK_OEM_5 = 0xDC # Used for miscellaneous characters; it can vary by keyboard. # For the US standard keyboard, the '|' key VK_OEM_6 = 0xDD # Used for miscellaneous characters; it can vary by keyboard. # For the US standard keyboard, the ']}' key VK_OEM_7 = 0xDE # Used for miscellaneous characters; it can vary by keyboard. # For the US standard keyboard, the 'single-quote/double-quote' key VK_OEM_8 = 0xDF # Used for miscellaneous characters; it can vary by keyboard. VK_OEM_102 = 0xE2 # Either the angle bracket key or the backslash key on the RT 102-key keyboard VK_PROCESSKEY = 0xE5 # IME PROCESS key VK_PACKET = 0xE7 # Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP VK_ATTN = 0xF6 # Attn key VK_CRSEL = 0xF7 # CrSel key VK_EXSEL = 0xF8 # ExSel key VK_EREOF = 0xF9 # Erase EOF key VK_PLAY = 0xFA # Play key VK_ZOOM = 0xFB # Zoom key VK_PA1 = 0xFD # PA1 key VK_OEM_CLEAR = 0xFE # Clear key
KEYEVENTF_EXTENDEDKEY = 0x0001 KEYEVENTF_KEYUP = 0x0002 KEYEVENTF_SCANCODE = 0x0008 KEYEVENTF_UNICODE = 0x0004
KEY_0 = 0x30 KEY_1 = 0x31 KEY_2 = 0x32 KEY_3 = 0x33 KEY_4 = 0x34 KEY_5 = 0x35 KEY_6 = 0x36 KEY_7 = 0x37 KEY_8 = 0x38 KEY_9 = 0x39 KEY_A = 0x41 KEY_B = 0x42 KEY_C = 0x43 KEY_D = 0x44 KEY_E = 0x45 KEY_F = 0x46 KEY_G = 0x47 KEY_H = 0x48 KEY_I = 0x49 KEY_J = 0x4A KEY_K = 0x4B KEY_L = 0x4C KEY_M = 0x4D KEY_N = 0x4E KEY_O = 0x4F KEY_P = 0x50 KEY_Q = 0x51 KEY_R = 0x52 KEY_S = 0x53 KEY_T = 0x54 KEY_U = 0x55 KEY_V = 0x56 KEY_W = 0x57 KEY_X = 0x58 KEY_Y = 0x59 KEY_Z = 0x5A
def KeybdInput(code, flags): return KEYBDINPUT(code, code, flags, 0, None)
def HardwareInput(message, parameter): return HARDWAREINPUT(message & 0xFFFFFFFF, parameter & 0xFFFF, parameter >> 16 & 0xFFFF)
def Mouse(flags, x=0, y=0, data=0): return Input(MouseInput(flags, x, y, data))
def Keyboard(code, flags=0): return Input(KeybdInput(code, flags))
def Hardware(message, parameter=0): return Input(HardwareInput(message, parameter))
################################################################################
import string
UPPER = frozenset('~!@#$%^&*()+QWERTYUIOP|ASDFGHJKL:"ZXCVBNM<>?')
LOWER = frozenset("1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./") ORDER = string.ascii_letters + string.digits + ' brt' ALTER = dict(zip('!@#$%^&*()', '1234567890')) OTHER = {'
': VK_OEM_3,
'~': VK_OEM_3,
'-': VK_OEM_MINUS,
'': VK_OEM_MINUS,
'=': VK_OEM_PLUS,
'+': VK_OEM_PLUS,
'[': VK_OEM_4,
'{': VK_OEM_4,
']': VK_OEM_6,
'}': VK_OEM_6,
'': VK_OEM_5,
'|': VK_OEM_5,
';': VK_OEM_1,
':': VK_OEM_1,
"'": VK_OEM_7,
'"': VK_OEM_7,
',': VK_OEM_COMMA,
'<': VK_OEM_COMMA,
'.': VK_OEM_PERIOD,
'>': VK_OEM_PERIOD,
'/': VK_OEM_2,
'?': VK_OEM_2}
################################################################################
def open_render_settings(): SendInput(Keyboard(VK_CONTROL), Keyboard(KEY_Y)) time.sleep(0.2) SendInput(Keyboard(VK_CONTROL, KEYEVENTF_KEYUP), Keyboard(KEY_Y, KEYEVENTF_KEYUP))
def open_render_dimensions(): SendInput(Keyboard(VK_SHIFT),Keyboard(VK_CONTROL), Keyboard(KEY_Y)) time.sleep(0.2) SendInput(Keyboard(VK_SHIFT, KEYEVENTF_KEYUP), Keyboard(VK_CONTROL, KEYEVENTF_KEYUP), Keyboard(KEY_Y, KEYEVENTF_KEYUP))
def open_movie_settings(): SendInput(Keyboard(VK_CONTROL), Keyboard(KEY_J)) time.sleep(0.2) SendInput(Keyboard(VK_CONTROL, KEYEVENTF_KEYUP), Keyboard(KEY_J, KEYEVENTF_KEYUP))
#open_render_settings() #open_render_dimensions() open_movie_settings()
Thread: PoserPython prevented from using os.system on OS X? | Forum: Poser Python Scripting
TDLmake works now if I specify the path to tdlmake as part of the string passed to os.system. However, multiple command strings such as "cd "/Users/deastham/Desktop/RIBoutput"; /Applications/3Delight/bin/renderdl -D /Users/deastham/Desktop/RIBoutput/dgfg_0.rib" still don't work. (I am making sure to use the escape codes for slashes correctly. They are also used in the tdlmake calls.
Thread: PoserPython prevented from using os.system on OS X? | Forum: Poser Python Scripting
I am attempting to run tdlmake to convert a texture to TDL format. ("tdlmake inputtexturepath outputtexturepath" (where they were given values such that copying and pasting the whole string worked as a command in Terminal).
When I am in the PoserPython shell in Poser Pro 2012, I can run os.system("echo hello world") and it returns the exit code of 0 to the shell output, but if I attempt to run a command that requires an environment variable, it returns a non-zero error code. Even just os.system("echo $DELIGHT") (which returns the path in a real Terminal session) gives the same error code 32512. For what I am doing now, I can just store a variable in the script with that information, and now that I realize halfway through this reply what's going on, I can hopefully find the solution in a more general Python resource.
Thanks Paolo. :)
Thread: Not rendering what is below sea level | Forum: Poser Python Scripting
I would put a plane (scaled very, very, large) at height 0, with diffuse, specular, ambient and transparency all set to 0/black.
Thread: Python and recursion limits | Forum: Poser Python Scripting
Hm.. what if you checked the length of the polygons list, and if it were higher than a certain amount, you split the list in two, and called build on both of those? Or even had a function to take one long huge list and return a list of lists of polygons to run build on.
Thread: Python and recursion limits | Forum: Poser Python Scripting
I'm not sure if Python can do it or not, to be completely honest. What are you trying to do specifically? I do Python and C#, perhaps I could write a helper program.
Thread: Python and recursion limits | Forum: Poser Python Scripting
I was more referring to an external command line tool. With something like MonoDevelop, written in C#, it could be compiled for Mac and Windows.
Thread: Python and recursion limits | Forum: Poser Python Scripting
What about writing a helper program to which your script can export the meshes to be processed. The script can then generate the desired geometry, and your script can reimport it into Poser? I realize this takes it out of the bounds of just being PoserPython-only, but that may be a practical solution.
Thread: Undocumented PoserPython methods and options? | Forum: Poser Python Scripting
Ah, thank you. I had incorrectly assumed the latest DLM version had the SR3 applied. It's working now. Thank you! :D
Thread: Undocumented PoserPython methods and options? | Forum: Poser Python Scripting
I am not able to get SkinType() to work..
figureSkinType = actor.ItsFigure().SkinType()
returns the error AttributeError: 'NoneType' object has no attribute 'SkinType'
I see a method to set the skin type, but nothing to set it.
My code follows.. what am I doing wrong? I am trying to check the skin type so that I can check for (valid) subdivision geometry. SubdivGeometry returns true where tnere is none, so I am changing my methods.
Thank you for any help.
import poser
scene = poser.Scene()
actorlist = scene.Actors()
for actor in actorlist:
figure = actor.ItsFigure()
if actor.IsBodyPart():
print actor.Name() + " is a body part."
try:
figureName = figure.Name() # This is the only way I can get the name
except:
pass
print actor.Name() + " belongs to " + figureName
figureSkinType = actor.ItsFigure().SkinType()
Thread: Undocumented PoserPython methods and options? | Forum: Poser Python Scripting
Thread: Undocumented PoserPython methods and options? | Forum: Poser Python Scripting
Hi Pret-a-3D,
Sorry to hijack (sort of), but I have a related question. I am writing an exporter, and when the geometry is subdivided, it is exported with seams between the sections. Manual testing has shown that even when Smooth Polygons is turned on, the mesh is set to single skin and the subdivision is set to 1 or higher, SubdivGeometry comes back as None for one of Rex's body parts, but his hair (which shouldn't be subdividing) returns something for SubdivGeometry. What am I doing wrong? I have been using Actor.Geometry() before now, but would like to be able to export Rex's geo with the subdivision info intact (exporting to 3Delight for a personal project, no release or competition planned :P).
Thank you in advance for any help,
Jadan
This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.
Thread: PoserPhysics now available for Poser 12 as Open Source (ie. free!) | Forum: Poser 12