查看: 2076|回复: 1
收起左侧

[Tribon] 数据抽取肘板COMP_ID值的特殊之处

[复制链接]
发表于 2008-12-30 23:27 | 显示全部楼层 |阅读模式 来自: 中国上海
近日用Vitess做一个船体模型修改的东西。
首先使用kcs_dex抽取各个零件的COMP_ID,即component id。用如下语句:

  1. HULL.PANEL('123-'*).PLATE(1:100).COMP_ID
  2. HULL.PANEL('123-'*).BRACKET(1:200).COMP_ID
  3. HULL.PANEL('123-'*).STIF(1:200).COMP_ID
  4. ......
复制代码
上面的意思是,抽取以"123-"开头的板架的所有板、肘板、型材的零件内部ID号。少数板架内stiffener或bracket过多,超过200,就把200这个数字再往上加,tribon会自动识别最后一个零件并退出抽取。

获得comp_id后,再用kcs_hullpan.group_get(panelname,comp_id)来取得此零件在对应的sch文件内的行值。
取得groupid后,就能取得零件的sch语句:

  1. st=kcs_hullpan.stmt_get(panel,group)
  2. #修改st
复制代码
执行修改后的sch语句,就完成了修改模型的任务了。

问题出现在group_get这个阶段,经我测试,除了肘板,所有零件的comp_id均能正常取得goupid。数据抽取出的肘板的comp_id为1001,1002,1003...等的int型数字,但对这串数字使用group_get,总会报出modelnotfound的错误。
这个问题困扰了我几天,我判断为tribon本身的bug,但我认为正确的comp_id肯定是存在的。我为此特别编写循环了一千万次的程序,试图获得正确的comp_id。仍然无法取到。
偶然的机会,我把测试程序用的数字倒转了一下,从负数开始测试,奇迹出现了,在-1001,-1002,-1003这个地方,groupid被正确读取出来了。。。

so....把这个经验与后来者分享,请在肘板的comp_id前加个负号,你的程序就成功了。
回复

使用道具 举报

龙船学院
头像被屏蔽
发表于 2009-4-8 22:07 | 显示全部楼层 来自: 中国江苏镇江
感谢楼主分享工作经验!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|标签|免责声明|龙船社区

GMT+8, 2024-11-13 08:55

Powered by Imarine

Copyright © 2006, 龙船社区

快速回复 返回顶部 返回列表