NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 458|回复: 4

[话题讨论] rhino 操作sap2000过程中的问题

[复制链接]
发表于 2018-6-23 22:39:05 | 显示全部楼层 |阅读模式
   工作中的这样的需求: rhino建的一些建筑曲面,龙骨也是比较复杂的,很多都是钢龙骨。 这些钢龙骨是需要计算结构安全性的。   现有的计算软件中,计算钢结构常用的就有sap2000.  sap2000 也提供了比较完善的api接口,无论建模还是提取计算结果,api都是可以的。  rhino4food上就有这样的插件Bullant. 但这个插件要求的版本太新,并且rhino6也不能用。 所以我就打算自己写。 网上这方面的内容很少,最新版的sap2000官方文档提供的 python方法是cpython 用comtypes操作com。  而rhino的python 是ironpython ,所以官方的文档在rhino里是用不了的。 所幸在网上也真找到了一点rhino 调用sap2000 api的资料。  但ironpython 确实是有问题的。  sap2000 api函数中有一部分需要提供一个 动态数值的引用来输出结果。像这样,GetNameList(ByRef NumberNames As Long, ByRef MyName() As String) As Long   
  类似refarrstr = StrongBox[array[str]](array[str]()) 运行错误,提示 值不在预设的范围。 好像是参数设置的问题。请问,哪位大牛遇到过,还请指点一二。
 楼主| 发表于 2018-6-23 22:58:55 | 显示全部楼层
  接上文,还有两个问题也是ironpython的问题。  在cpython中,获取一个文件的大小os.getsize(),调用外部命令os.system() 网上的资料到处都是。 但ironpython 中不知道相对应的函数在那个模块中。 我打算在cpython中处理部分sap问题,但要在rhino 调用 cpython,并且二者需要交换数据。
发表于 2018-6-25 09:46:35 | 显示全部楼层
可以用插件试一下
 楼主| 发表于 2018-6-25 16:52:57 | 显示全部楼层

那个插件里面东西很多,我要做的比较少。  就是把rhino中的线和网格转进去  线是龙骨,网格是面,方便加荷载。  导进去的网格和线都分好组,同时定义截面并赋与相应的龙骨。  sap2000 api中的操作 基本上都可以用编号或组名。 我基本上都用组名。 所以基本上 单在rhino中就可以了。  有个别在rhino中有问题的操作,我用cpython把数据提出来来,保存在.ini文件中, 刚好rhino有一个读取.ini文件的函数,用这个函数把数据读出来,虽然终绕了一点。 但问题也算结决了。 C#中有调用外部命令的方法,借用过来,在rhino中执行cpyghon部分,结果存储在中间文件中,再读出来。   
      虽说有点别扭,但文件不太大的情况下,运行的还是可以的。  有些情况在rhino中操作比在sap中要方便很多。 比如,一个模型的约束点在一个不规则的曲线上。  在sap中选这 些点是很烦索的的。 在rhino中就很方便了。直接选这条曲线,直接把把曲线附近的点全部约束。  这样可以把自己常用的一些操作写成一些命令,一键完成,就不用在sap2000一步步的消磨时光了。

小黑屋|手机版|NCF参数化建筑论坛 ( 辽ICP备12011358号-1   辽公网安备 21020302000097号

GMT+8, 2018-9-22 12:22 , Processed in 0.200595 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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