/* vertex position v 0.5 open beta Author: Georgy Chakarov Version: 3dsmax 2012 (probably older versions too) show selected vertex position in world space for now work with poly and mesh objects ////// quick help single click: row marking double click: left panel: close dialog /alt+F4 works too/ right panel: copy position value right click: left panel: about right panel: refresh message: !!! warning !!! means that several vertices is selected and only first is analyzed my site: http://georgychakarov.eu5.org/ */ /****************************************************************************************************************************/ /* FUNCTIONS /****************************************************************************************************************************/ macroScript VtxPstn category:"Georgy Chakarov" buttontext:"Vtx pos" tooltip:"vertex position" --icon:#("UVWUnwrapTools",23) ( rollout vertex_pos "vertex position .5 beta" ( listbox info_ "" items:#("obj type", "object name", "vertex ID","x pos","y pos","z pos") width:70 height:6 pos:[5,7] --readonly:true listbox obj_info "" items:#("---", "---", "---","---", "---", "---") width:100 height:6 pos:[75,7] --readonly:true --button rfr "refresh" pos:[126,64] width:55 height:53 label warning_1 "!!! warning !!!" pos:[75,100] style_sunkenedge:true width:100 height:15 visible:false label warning_2 "!!! warning !!!" pos:[5,100] style_sunkenedge:true width:70 height:15 visible:false on info_ selected nameIndex do ( obj_info.selection = info_.selection ) on obj_info selected nameIndex do ( info_.selection = obj_info.selection ) on obj_info doubleClicked itm do ( if obj_info.selection > 3 then ( if obj_info.selected != "---" then ( setclipboardText (obj_info.selected as string) ) ) ) on info_ doubleClicked itm do ( destroydialog vertex_pos ) on info_ rightClick clicked do ( messagebox "vertex position ver. 0.5 beta \nby Georgy Chakarov \ngeorgychakarov.eu5.org \nCopyright © 2007-2011" title:"about vertex position ver. 0.5 beta" ) on obj_info rightClick clicked do ( if $ != undefined and $ != $selection then ( if (classof $ == Editable_Poly) or (classof $ == PolyMeshObject) then ( if (($.getselection #vertex).numberset > 0) then ( if ($.getselection #vertex).numberset > 1 then ( warning_1.text =" " + (($.getselection #vertex).numberset as string) + " vertices" warning_1.visible = true warning_2.visible = true --messagebox ((($.getselection #vertex).numberset as string) + " vertices are selected, only first is analyzed") ) else ( warning_1.visible = false warning_2.visible = false ) obj_info.items = #("poly object", ($.name), (((($.getselection #vertex) as array)[1] as string)),(formattedPrint ($.pos[1] + ($.getvertex ((($.getselection #vertex) as array)[1]))[1]) format:".4f") as string,(formattedPrint ($.pos[2] + ($.getvertex ((($.getselection #vertex) as array)[1]))[2]) format:".4f") as string,(formattedPrint ($.pos[3] + ($.getvertex ((($.getselection #vertex) as array)[1]))[3]) format:".4f") as string) ) else ( obj_info.items = #("poly object", ($.name), "not selected","---", "---", "---") warning_1.visible = false warning_2.visible = false ) ) if classof $ == Editable_mesh then ( if $.selectedVerts.count > 0 then ( if $.selectedVerts.count > 1 then ( warning_1.text =" " + ($.selectedVerts.count as string) + " vertices" warning_1.visible = true warning_2.visible = true --messagebox (($.selectedVerts.count as string) + " vertices are selected, only first is analyzed") ) else ( warning_1.visible = false warning_2.visible = false ) obj_info.items = #("mesh object", ($.name), ($.selectedVerts[1].index as string),(formattedPrint ($.selectedVerts[1].pos[1]) format:".4f") as string, (formattedPrint ($.selectedVerts[1].pos[2]) format:".4f") as string,(formattedPrint ($.selectedVerts[1].pos[3]) format:".4f") as string) ) else ( obj_info.items = #("mesh object", ($.name), "not selected","---", "---", "---") warning_1.visible = false warning_2.visible = false ) ) ) else ( obj_info.items = #("---", "---", "---","---", "---", "---") warning_1.visible = false warning_2.visible = false ) ) ) createdialog vertex_pos width:182 height:123 style:#(#style_border,#style_toolwindow) modal:false )