问题方法的开头:
def create_axial_features(self):
# begin executing features
try:
roto.command.CommandExecute('TREEVIEW OBJECT SELECT ALL')
roto.command.CommandExecute('ALIGN COORDINATE_SYSTEM ACTIVE ( "world" )')
roto.command.CommandExecute('EDIT OBJECT DELETE ()')
roto.command.CommandExecute(
'FEATURE PLANE CREATE ("Thrust End of Shaft")')
if self.var.jobDetails["Thrust Collar"] == "1":
roto.command.CommandExecute('FEATURE PLANE CREATE ("Inactive Thrust Shoulder")')
print "done"
roto.command.CommandExecute(
'FEATURE PLANE CREATE ("Active Thrust Shoulder")')
roto.command.CommandExecute(
'FEATURE CYLINDER CREATE ("TE Bearing Journal")')
出于某种原因,if
语句下的代码仅在我在其下添加print
语句时执行。当我删除print
语句时,“Inactive Thrust Shoulder”行无法执行。
是的,self.var.jobDetails["Thrust Collar"]
总是等于1,所以绝对不是它。
我之前从来没有遇到这样的问题,所以我不知道从哪里开始排除故障。任何帮助表示赞赏。
答案 0 :(得分:0)
我想出了问题
这与这一行有关:
if self.var.jobDetails["Thrust Collar"] == "1":
当新作业启动时,值"1"
存储为整数,因为它刚刚由用户输入。但是,当加载旧作业时,它会将值作为字符串从保存的文本文件中加载。因此,if
条件只会在它是一个加载的作业时运行。我错误地将它归因于内存缓冲问题,因为我在第一次测试期间创建了新作业,并且只是在第二次测试中加载了作业,而在我的脑海中,我在第一次和第二次测试之间在代码本身中唯一改变的是添加print
语句。