1. Overview of General purpose auxiliary functions
The ptsxpy provides General purpose auxiliary functions that can be used in your Python scripts. Import ptsxgp module to your script aside from ptsxpy.
import ptsxgp
ptsxgp.msgbox_info( "your title here", "Hello World!" )
You could give it an alias like "gp" like we do for ptsxpy, but the aliasing may not be necessary because you wouldn't have many opportunities to use ptsxgp.
2. Currently active functions
Name | Usage |
---|---|
getpymjrver | Gets Python major version (2 or 3). |
scrfname | Gets user script file name. |
scrdir | Gets user script directory name. |
memcpy_p2top1 | Copies memory area pointed by parameter 2 to one pointed by parameter 1. |
msgbox_info | Display a Windows popup message box with infomation icon. Specify a title and a body of text. |
msgbox_excl | Display a Windows popup message box with exclamation icon. Specify a title and a body of text. |
rand | Returns a random number using tsxAPI. |
randomize | Randomizes the seed of random number. |
doosevents | Waits Windows events have done. |
getdlldir | Gets the directory name where the ptsxpy.tsx is placed. |
3. Functions for internal use
Name | Usage |
---|---|
alloc_char() alloc_short() alloc_int() alloc_long() alloc_float() alloc_double() alloc_str() alloc_vec3f() alloc_vec2f() alloc_txmx3f() alloc_axes3f() alloc_bbox3f() alloc_latvec() alloc_wdgreg() alloc_colrpt() alloc_quaternion() alloc_viewparam() alloc_wdg_callbacks() alloc_color() alloc_surfaceprops() alloc_protexgranite() alloc_protexmarble() alloc_protexwood() alloc_textureprops() alloc_bumpprops() alloc_txmx2f() alloc_rect() alloc_facevx() alloc_face() alloc_hole() alloc_uv() alloc_edge() alloc_latticevector() alloc_matrectprops() alloc_derivcurves() alloc_subdivedge() alloc_physenvir() alloc_floatcolor() alloc_rendertofiledata() alloc_renderdata() alloc_image() alloc_texturefromlightingdata() | Allocates memory dynamically. These are used internally by ptsxpydef1.py (one of the ptsxpy's parts), and you don't need to use them directly. It is recommended to use predefined classes (e.g. Float, Short, IntArray, Vec3f, Vec3f_p, etc. The reason is that the freeing of memory is done automatically by each class instance. ----- In case that you use these methods, write like p1 = alloc_xxxx( n ). Where xxxx is a C/C++ type name such as float or short. A heap memory area with n times of the size for each type is dynamically allocated, and the address is returned. You must free it using ptsxpy's p.Free( p1 ) before the script terminates. ----- In case of classes (recommended), write like f1 = Float() or fa1 = FloatArray( 10 ) in your script. An instance is returned and assign to the left side (f1 of fa1 in this example), and your script can access the address of the emmory area using the attribute p (f1.p or fa1.p in this example). No explicit freeing needed. Please read ptsxpydef1.py installed in your tS's tsx folder for details. |
loadfloat() storefloat() loaddouble() storedouble() loadlong() storelong() loadulong() storeulong() loadint() storeint() loadshort() storeshort() loadushort() storeushort() loadchar() storechar() loaduchar() storeuchar() loadptr() storeptr() loadstr() storestr() | Reads from or write to memory area. The methods for load takes an address like x = ptsxgp.loadxxxx( p1 ) and returns the memory contents. The methods for store takes an address and a value like ptsxgp.storexxxx( p1, val1 ) and write the value to the memory addressed. In both cases, the addresses must be one got from tS via some tsxAPI functions. The storing value may be one got from tS or may be your value. It's recommended to use pre-defined classes (like Vec3f, p1 = Vec3f_p, p1.x(), p1.set_ z(), p1.inc(). etc.) insted. |
sizeof_int() sizeof_float() sizeof_long() sizeof_short() sizeof_pointer() sizeof_struct_CtsxAxes3f() sizeof_struct_CtsxBBox3f() sizeof_struct_CtsxBumpProps() sizeof_struct_CtsxCollFaceReport() sizeof_struct_CtsxCollisionReport() sizeof_struct_CtsxCollVertexReport() sizeof_struct_CtsxColor() sizeof_struct_CtsxDerivCurves() sizeof_struct_CtsxEdge() sizeof_struct_CtsxFace() sizeof_struct_CtsxFaceVx() sizeof_struct_CtsxFloatColor() sizeof_struct_CtsxGraniteProps() sizeof_struct_CtsxHole() sizeof_struct_CtsxLatticeFloor() sizeof_struct_CtsxLatticeVector() sizeof_struct_CtsxMarbleProps() sizeof_struct_CtsxMatRectProps() sizeof_struct_CtsxPhysEnvir() sizeof_struct_CtsxProcTexture() sizeof_struct_CtsxQuaternion() sizeof_struct_CtsxRect() sizeof_struct_CtsxSubDivEdge() sizeof_struct_CtsxSubDivFace() sizeof_struct_CtsxSurfaceProps() sizeof_struct_CtsxTextureProps() sizeof_struct_CtsxTxmx2f() sizeof_struct_CtsxTxmx3f() sizeof_struct_CtsxUV() sizeof_struct_CtsxVector2f() sizeof_struct_CtsxVector3f() sizeof_struct_CtsxViewParam() sizeof_struct_CtsxWDG_CALLBACKS() sizeof_struct_CtsxWidgetReg() sizeof_struct_CtsxWoodProps() sizeof_struct_CtsxWoodProps() sizeof_struct_tsxEventMouseData() sizeof_struct_tsxEventRenderData() sizeof_struct_tsxEventViewMsgData() sizeof_struct_tsxImage() sizeof_struct_tsxMousetool() sizeof_struct_tsxObjectNotifyMessage() sizeof_struct_tsxRenderData() sizeof_struct_tsxRenderToFileData() sizeof_struct_tsxTextureFromLightingData() | These are called from ptsxdef1.py and pre-defined as constants like sizeof_int (without parentheses), so you don't need to call these methods directly. You can simply use the constants in your scripts like p1 = p1 + sizeof_Vec3f. However it's recommended to use predefined classes (e.g. Vec3f_p() and the inc() method of it). |