def SetContourRange(minval, maxval, vp='Viewport: 1', minIntervals=10): """ Sets up nice contour ranges in ABAQUS/CAE Written by Lance C. Hibbeler, August 2014 """ from math import fabs, ceil, floor, copysign from abaqusConstants import USER_DEFINED minval = float(minval) # ensure minval is float maxval = float(maxval) # ensure minval is float r = maxval - minval # range of input d = int(round(log10(r)))-1 # next lowest power of 10 of range # find appropriate interval size from {1, 0.5, 0.25, 0.2} for i in [1, 2, 4, 5]: numIntervals = int(round(float(i)*r/(10.0**d))) if numIntervals >= minIntervals: interval = (10.0**d)/float(i) break # find first interval larger than minval if (minval < 0.0) and (maxval > 0): s = 1.0 else: s = 0.0 imin = copysign((ceil(fabs(minval)/interval)-s)*interval, minval) # find first interval smaller than maxval imax = copysign(floor(fabs(maxval)/interval)*interval, maxval) # define intervals ival = imin intervals = [ival] build = True while (build == True): ival = ival + interval if (ival > imax): build = False else: intervals.append(ival) # setup abaqus viewport co = session.viewports[vp].odbDisplay.contourOptions co.setValues(intervalType=USER_DEFINED, intervalValues=intervals) return