找回密码
 注册
Simdroid-非首页
查看: 322|回复: 13

[命令/FISH] 怎样把自己编的fish命令放在fishlab里面?

[复制链接]
发表于 2006-11-7 18:26:50 | 显示全部楼层 |阅读模式 来自 湖北武汉
1.  下面这段代码到底是哪里出了问题,我百思不得其解,请各位帮忙看看
这是一段自定义的代码,想保存在fish库里面,用来分步加载,用txt后缀打开后如下:
;Name:subsection
;Input: p_end/int/0/The final pressure
;Input: s_extent/int/1/The extent of subset

def subsection
  p_end
  sub= min(1.0,float(step)/s_extent)
     command
          apply nstress  p_end hist sub from 1,11 to 5,11
     end_command
end

FLAC的抱错信息如下:
set p_end=-3e6 s_extent=200
; error --> subsection
;> subsection
; *** cannot process ... not a DEFined function
; *** FISH execution error




2.  flac文件夹有这么两个文件夹,里面都有不少*.fis文件。这两个文件夹分别是flac500\gui\fishlib和flac500\Fish\3-Library。 可以在giic中通过Utility--->Fishlab功能调用*.fis类型的文件,但是这里只能打开第一个文件夹里面的文件,而这里面现存的fish文件不充分.所以把上面所说的第二个文件夹里面的文件复制粘贴到第一个文件夹里面,想在giic中通过Utility--->Fishlab使用。可是这样做后,FLAC总是报错。比如:
set echo off
; directory is changed to call file in case of nested calls
set cd name C:\Program Files\Itasca\flac500\gui\fishlib\3-Library\Mises
; error --> call Mises.fis
;> call Mises.fis
; *** FLAC not CONFigured for EXtra grid variables
; *** FISH compilation error
set cd back



请指教,谢谢~!

[ 本帖最后由 伤天害你 于 2006-11-8 15:04 编辑 ]
 楼主| 发表于 2006-11-8 13:11:10 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
自己顶一下,请知道的帮忙说一下原因,谢谢
 楼主| 发表于 2006-11-9 22:45:40 | 显示全部楼层 来自 湖北武汉
有谁知道啊?请各位不吝赐教哈
自己顶一下  期待中哦
发表于 2006-11-9 22:55:53 | 显示全部楼层 来自 同济大学
1.将你定义的subsection中的p_end这一行去掉
2.注意fish中有一些要求设置extra,可以查看其fish原代码

[ 本帖最后由 mathing 于 2006-11-9 23:02 编辑 ]
 楼主| 发表于 2006-11-10 00:28:26 | 显示全部楼层 来自 湖北武汉
哦  谢谢~!
我去试试
第二个已经解决了~  config extra 2
 楼主| 发表于 2006-11-10 00:35:30 | 显示全部楼层 来自 湖北武汉
把p_end去掉之后,还是不能行啊,报错如下:
; error --> set p_end=3e-5 s_extent=200
;> set p_end=3e-5 s_extent=200
; *** Bad keyword ... p_end
; error --> subsection
;> subsection
; *** FISH execution error

呵呵~~ 不知道它所说的keyword是不是指在apply命令行中的p_end,手册上说用command和end_command可以嵌入FLAC的语句的....
发表于 2006-11-10 08:45:07 | 显示全部楼层 来自 安徽马鞍山
反正感觉你定义的函数里没来由的冒出一个p_end觉得挺怪。“手册上说用command和end_command可以嵌入FLAC的语句的”,没错,这个你可以参考一些例子,手册上比较多,慢慢看。
 楼主| 发表于 2006-11-10 12:41:01 | 显示全部楼层 来自 湖北武汉
这里p_end的实际意义是指最终载荷,是通过Input在giic里面直接输入的。呵呵,现在是声明和不声明这个变量都是错的,奇怪的很啊~   没有办法了,实在是拿它没辙,只有先放一放。当然,有知道为什么的同志,告诉我一下,叫我少走一些弯路
发表于 2006-11-10 23:53:54 | 显示全部楼层 来自 安徽马鞍山
原帖由 伤天害你 于 2006-11-10 00:35 发表
把p_end去掉之后,还是不能行啊,报错如下:
; error --> set p_end=3e-5 s_extent=200
;> set p_end=3e-5 s_extent=200
; *** Bad keyword ... p_end
; error --> subsection
;> subsection
; ...


不能去掉p_end,因为你在下面的执行过程中也用到了它,我想可能是你事先没有对p_end进行定义,因为从这段程序里面看,不知p_end为何意。
 楼主| 发表于 2006-11-11 23:25:58 | 显示全部楼层 来自 湖北武汉
可是p_end只是一个变量,声明一下就行了吧...?  呵呵,c里面是这样的,不知道这里该怎么处理,你说的定义,应该怎么做呢?
 楼主| 发表于 2006-11-11 23:38:35 | 显示全部楼层 来自 湖北武汉
问题解决了~
错误在于声明的时候没有指定p_end的变量类型,修改为int p_end,就行了~~ 呵呵
谢谢benjackxu 提醒~~~
发表于 2006-11-12 09:16:18 | 显示全部楼层 来自 陕西西安
楼主的这个帖子非常好,如何调用Fish函数的问题我正糊涂呢,这对我非常有帮助,谢谢楼主及回帖的朋友!
发表于 2009-5-25 10:53:17 | 显示全部楼层 来自 湖南湘潭
fishlab是个什么软件啊?哪里有下?
回复 不支持

使用道具 举报

发表于 2016-8-27 10:47:49 | 显示全部楼层 来自 北京

1.将你定义的subsection中的p_end这一行去掉
2.注意fish中有一些要求设置extra,可以查看其fish原代码
回复 不支持

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-7-7 23:11 , Processed in 0.059828 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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