# Path: importerConstants.py
# MIN_0   = 0.0
# 
# MIN_PI  = -pi
# 
# MIN_PI2 = -pi / 2
# 
# MIN_INF = float('-inf')
# 
# MAX_2PI = 2 * pi
# 
# MAX_PI  = pi
# 
# MAX_PI2 = pi / 2
# 
# MAX_INF = float('inf')
# 
# MAX_LEN = 2e+100
# 
# Path: importerConstants.py
# CENTER = VEC(0, 0, 0)
# 
# DIR_X  = VEC(1, 0, 0)
# 
# DIR_Y  = VEC(0, 1, 0)
# 
# DIR_Z  = VEC(0, 0, 1)
# 
# ENCODING_FS      = 'utf8'


import traceback, Part, Draft, os, FreeCAD, re
from importerUtils              import *
from FreeCAD                    import Vector as VEC, Rotation as ROT, Placement as PLC, Matrix as MAT, Base
from math                       import pi, fabs, degrees, asin, sin, cos, tan, atan2, ceil, e, cosh, sinh, tanh, acos, acosh, asin, asinh, atan, atanh, log, sqrt, exp, log10
from importerConstants          import MIN_0, MIN_PI, MIN_PI2, MIN_INF, MAX_2PI, MAX_PI, MAX_PI2, MAX_INF, MAX_LEN
from importerConstants          import CENTER, DIR_X, DIR_Y, DIR_Z, ENCODING_FS


		off, i = getFloats(chunks, i, 2)   # left and right offset
		r1  , i = getEnumByValue(chunks, i, VAR_RADIUS)   # 0 = single_radius, 1 = two_radii
		bv1 , i = getBlendValues(chunks, i)
		if (r1 == 'two_radii'):
			bv2 , i  = getBlendValues(chunks, i)
			if (chunks[i].val in [3, 'rounded_chamfer']):
				vc  , i  = getEnumByValue(chunks, i, VAR_CHAMFER)
				ct  , i  = getEnumByTag(chunks, i, CHAMFER_TYPE)
				bv3 , i  = getBlendValues(chunks, i)
			else:
				vc  = None
				ct  = False
				bv3 = None
		elif (r1 == 'single_radius'):
			if (chunks[i].val in [1, 7]): # ???
				ut1, i = getValue(chunks, i)
				uv1, i = getFloats(chunks, i, 2)
		rU, i    = getInterval(chunks, i, 0, 1, 1.0)
		if (vrs > 7.0 and vrs < 23):
			r1, i = getInterval(chunks, i, 0, 1, 1.0)
			r2, i = getInterval(chunks, i, 0, 1, 1.0)
			i += 2 # skip e.g.0, 2
		rV, i    = getInterval(chunks, i, 0, 1, 1.0)
		if (vrs > 3.0):
			j, i    = getInteger(chunks, i)      # 1
			f, i    = getFloat(chunks, i)        #
			s, i    = getLength(chunks, i)       #

			if ((vrs > 22.0) and (isASM() == False)):

# Path: importerConstants.py
# MIN_0   = 0.0
# 
# MIN_PI  = -pi
# 
# MIN_PI2 = -pi / 2
# 
# MIN_INF = float('-inf')
# 
# MAX_2PI = 2 * pi
# 
# MAX_PI  = pi
# 
# MAX_PI2 = pi / 2
# 
# MAX_INF = float('inf')
# 
# MAX_LEN = 2e+100
# 
# Path: importerConstants.py
# CENTER = VEC(0, 0, 0)
# 
# DIR_X  = VEC(1, 0, 0)
# 
# DIR_Y  = VEC(0, 1, 0)
# 
# DIR_Z  = VEC(0, 0, 1)
# 
# ENCODING_FS      = 'utf8'


# Path: Acis.py
import traceback, Part, Draft, os, FreeCAD, re
from importerUtils              import *
from FreeCAD                    import Vector as VEC, Rotation as ROT, Placement as PLC, Matrix as MAT, Base
from math                       import pi, fabs, degrees, asin, sin, cos, tan, atan2, ceil, e, cosh, sinh, tanh, acos, acosh, asin, asinh, atan, atanh, log, sqrt, exp, log10
from importerConstants          import MIN_0, MIN_PI, MIN_PI2, MIN_INF, MAX_2PI, MAX_PI, MAX_PI2, MAX_INF, MAX_LEN
from importerConstants          import CENTER, DIR_X, DIR_Y, DIR_Z, ENCODING_FS


		off, i = getFloats(chunks, i, 2)   # left and right offset
		r1  , i = getEnumByValue(chunks, i, VAR_RADIUS)   # 0 = single_radius, 1 = two_radii
		bv1 , i = getBlendValues(chunks, i)
		if (r1 == 'two_radii'):
			bv2 , i  = getBlendValues(chunks, i)
			if (chunks[i].val in [3, 'rounded_chamfer']):
				vc  , i  = getEnumByValue(chunks, i, VAR_CHAMFER)
				ct  , i  = getEnumByTag(chunks, i, CHAMFER_TYPE)
				bv3 , i  = getBlendValues(chunks, i)
			else:
				vc  = None
				ct  = False
				bv3 = None
		elif (r1 == 'single_radius'):
			if (chunks[i].val in [1, 7]): # ???
				ut1, i = getValue(chunks, i)
				uv1, i = getFloats(chunks, i, 2)
		rU, i    = getInterval(chunks, i, 0, 1, 1.0)
		if (vrs > 7.0 and vrs < 23):
			r1, i = getInterval(chunks, i, 0, 1, 1.0)
			r2, i = getInterval(chunks, i, 0, 1, 1.0)
			i += 2 # skip e.g.0, 2
		rV, i    = getInterval(chunks, i, 0, 1, 1.0)
		if (vrs > 3.0):
			j, i    = getInteger(chunks, i)      # 1
			f, i    = getFloat(chunks, i)        #
			s, i    = getLength(chunks, i)       #

			if ((vrs > 22.0) and (isASM() == False)):

				b, i = getBoolean(chunks, i)
