发帖
 找回密码
 立即注册
搜索
23 0 0
2010-9-3 11:21:26
提示: 作者被禁止或删除 内容自动屏蔽
2011-5-20 11:43:58
我是新手,架子没学会,到学会了组合器的组合,收货不小:lol
2011-6-16 08:58:42
提示: 作者被禁止或删除 内容自动屏蔽
2012-10-4 22:32:38
提示: 作者被禁止或删除 内容自动屏蔽
2014-12-30 18:07:19
opengl看看咋弄,谢谢大家:D
2015-10-8 17:09:54
[quote]我所了解的就是这样,至于为什么最后一个BAY,最高一层及最后一个BAY的最高一层,要单独画,我也不很明白。
[size=2][color=#999999]wj109260758 发表于 2010-7-17 15:11[/color] [url=http://flexsim.asia/redirect.php?goto=findpost&pid=616&ptid=207]http://flexsim.asia/images/common/back.gif[/url][/size][/quote]
我今天测试了一下代码,发现了最后一个bay要单独画的原因。
比如货架有5列,那要画6个立柱。
立柱的X轴相对坐标位置的获取用的是
getnodenum(rank(locationtable,index))
也就是货架树结构中的locationtable节点中的第几个子节点。
很显然,货架有5列,在locationtable中就有5个子节点。
那么,即使在for循环中让index从1增加到6,也无法在第6次获取到正确的坐标值。
即:
getnodenum(rank(locationtable,6)),因为没有第6个子节点,所以无法返回值。
2015-10-9 09:45:50
如果不是以坐标值(rackgetlevelloc)来获取货架的外观,而是根据货架的行列数量来完成层列的架构,应该就可以避免需要单独再画一个bay的情况。
2015-10-9 10:08:56
请问各位大神,这个代码drawtomodelscale是什么意思呢?
2015-10-9 10:11:36
还有drawtoobjectscale
2015-10-9 11:11:14
[i=s] 本帖最后由 zorsite 于 2015-10-9 16:04 编辑 [/i]

向[url=http://www.flexsim.asia/space.php?uid=36]wj109260758[/url]、[url=http://www.flexsim.asia/space.php?uid=25]flyingwind[/url]、[url=http://www.flexsim.asia/space.php?uid=47]george[/url]表示感谢。
原代码贡献者:[url=http://www.flexsim.asia/space.php?uid=47]george[/url]
修改者:[url=http://www.flexsim.asia/space.php?uid=36]wj109260758[/url]
我在两位的基础之上又做了一些注释工作,以便新手理解,如果错误之处请大家指正。[code]/**自定义货架*/
treenode current = ownerobject(c);
treenode view = parnode(1);
double bayloc;
double levelloc;
double baysize;
double levlsize;
double sizex=xsize(current);
double sizey=ysize(current);
double sizez=zsize(current);
int nrofbays=rackgetnrofbays(current);
int nroflevels;

drawtomodelscale(current);
for(int i=1;i<=nrofbays;i++)
{        bayloc=rackgetbayloc(current,i);
    baysize=rackgetbaysize(current,i);
    nroflevels=rackgetnroflevels(current,i);
        for(int j=1;j<=nroflevels;j++)
        {
                levelloc=rackgetlevelloc(current,i,j);
                levlsize=rackgetlevelsize(current,i,j);
               
                //货位底部交叉,承重部分。
                drawcube(bayloc,-0.08,levelloc,0.1,0.1,2.7*levlsize,90,45,0,50,180,50);
                drawcube(bayloc+0.1,-sizey+0.02,levelloc,0.1,0.1,2.7*levlsize,90,135,0,50,180,50);
               
                for(int q=0;q<=sizex;q=q+sizex/10)
                {
                //立柱,此处画了11条立柱。
        drawcube(q,0,levelloc,0.1,0.1,levlsize,0,0,0,100,100,100);//后立柱
                drawcube(q,-sizey+0.1,levelloc,0.1,0.1,levlsize,0,0,0,50,180,50);//前立柱
                //左侧交叉,画出来之后货架显得太杂乱了,视觉效果不好。
                //drawcube(q,-sizey+0.1,levelloc,0.1,0.1,-sizey+0.1,120,0,0,100,100,100);
                //drawcube(q,-sizey+0.1,levelloc+1,0.1,0.1,-sizey+0.1,60,0,0,100,100,100);
                //立柱左侧面短梁,这里有十一列,但是每列只有十条。最上面一层的短梁未画出。
                drawcube(q,-sizey+0.1,levelloc  ,0.1,0.1,-sizey+0.1,90,0,0,155,00,155);
                        }
                for(int r=0;r<=sizez;r=r+sizez/10)
                {

                //横梁,此处画了11条横梁。
                drawcube(bayloc,0,r,0.1,0.1,baysize,0,90,0,100,100,100); //后横梁
                drawcube(bayloc,-sizey+0.1,r,0.1,0.1,baysize,0,90,0,150,150,150);//前横梁
                //立柱左侧面短梁,这里有十一条,但是只有十列,最后一列未画出。
                drawcube(bayloc,-sizey+0.1,r,0.1,0.1,-ysize(current)+0.1,90,0,0,150,0,0);
                }        
                //最右上角的一根短梁。
                drawcube(sizex,-sizey+0.1,sizez,0.1,0.1,-sizey+0.1,90,0,0,0,0,255);
                }
        }
return 1;  //返回1之后不再显示原有货架外观。[/code]我感觉定义了变量之后程序变得更快了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 立即登录
高级模式
技术交流2
热门问答
查看更多
1
Flexsim初级建模工程师水平标准
Flexsim初级建模工程师水平标准
62
234
2
无意中找到的资料,非常适合于初学者
无意中找到的资料,非常适合于初学者
47
229
3
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
43
224
4
流水作业线的仿真
流水作业线的仿真
36
83
5
flexsim中文教程,pdf文档已整理-重新整理
flexsim中文教程,pdf文档已整理-重新整理
36
114
博主榜
+ 5