3dcheapskate opened this issue on Apr 23, 2020 ยท 38 posts
3dcheapskate posted Fri, 24 April 2020 at 9:35 AM
Might as well post the relevant bits of the script as it stands,so you can see what I was doing.
For the Smart+ script this is how I find the datafile:
...
# Locate the smart plus datafile
sDatafile = os.path.join('Runtime','Python','poserScripts','3DCheapskate','SmartPlus','SmartPlusData.txt')
smartdatafile = locateDataFile(sDatafile
...
...and this is the locateDataFile() function, which checks the Poser applocation first, and then each mapped runtime in turn
# sFilename is the path in OS-specific format starting at Runtime
def locateDataFile(sFilename):
locatedfile = ""
filetocheck = ""
global sTempErrLog
# Check for the data file in the application location (Poser 6 PoserPython doesn't provide a method to scan mapped runtimes)
poserpath=os.path.split(poser.AppLocation())
filetocheck = os.path.join(poserpath[0],sFilename)
if os.path.exists(filetocheck):
locatedfile = filetocheck
else:
# If it's not found then log it so we can inform user later if necessary
sTempErrLog = sTempErrLog+"nFILE NOT FOUND: "+filetocheck
# Check for the data file in the mapped libraries (if already found we still check for multiple copies, but use the first one we found)
try:
aLibs = poser.Libraries()
for lib in aLibs:
filetocheck = os.path.join(lib,'Runtime','Python','poserScripts','3DCheapskate','SmartPlus','SmartPlusData.txt')
if os.path.exists(filetocheck):
if locatedfile == "":
locatedfile = filetocheck
else:
poser.DialogSimple.MessageBox("Multiple 'SmartPlusData.txt' files found")
else:
# If it's not found then log it so we can inform user later if necessary
sTempErrLog = sTempErrLog+"nFILE NOT FOUND: "+filetocheck
except: # Poser 6 will always cause an exception because the Libraries() function doesn't exist
pass
return locatedfile
The 3Dcheapskate* occasionally posts sensible stuff. Usually by accident. And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU or something else.
*soon only to be available in two flavours - DAZ and Renderosity