找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?在线3D打印服务,一键上传,自动报价 
查看: 17780|回复: 2
打印 上一主题 下一主题

关于郑建荣书里的用户子程序编制的问题

[复制链接]
跳转到指定楼层
1
发表于 2005-5-12 22:53:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
nijinf wrote:
如何利用c语言进行二次开发困扰了我很长时间,得益于论坛上众多大侠的探索,如lemonwj,中山狼等。我也摸索了一点,如今能用c语言实现设计过程design time的函数。许多人能成功生成dll文件,可以看下中山狼的帖子,但在运行后却找不到自定义的函数。我发现要生成aview中的设计过程函数,在选择生成dll文件时不要选择adams/aview下的cr-user,而应直接选择adams cr-user,好像生成的是solver的动态连接库,但却可应用于aview中。生成动态连接库后,运行adams12 av ru-user,在询问aview的动态连接库时敲入生成的dll文件,在function builder的misc函数集中就可找到自定义函数了。郑建荣书中的例子我改了一下,实际上他写的有误。自定义函数必须在vc_initialize_user()中注册,而注册类型必须与mdi_c.h中的类型相符,他定义的函数有四个实数参数,这在mdi_c.h中找不到,我试着在mdi_c.h中加了fn_R_RRRR的类型,但在adams中发现参数类型为int型了。于是我用了三个实数参数,注意在vc_initialize_user()中参数个数为3,这样就可以成功进行函数的使用了。我定义的marc如下:  
!$first_marker:t=marker  
!$second_marker:t=marker  
!$new_marker:t=new_marker  
marker create marker_name=$new_marker &  
location =(dist2($first_marker.loc_x,$second_marker.loc_x,$first_marker.loc_y)),&  
($first_marker.loc_y),0 &  
orientation =0,0,0 &  
relative_to =ground  
  
Adams12的solver中没有提供c语言的子程序模板,只有fortran的。所以要进行运行过程函数的开发,只有用fortran了,要不就自己用c编,它提供了许多头函数。
  
这是在精华区以前nijinf的一篇文章.
可是我是一个刚入门的菜鸟,想知道用户子程序的编制详细的步骤是怎么样的,有谁能帮帮忙呢? 就拿郑建荣老师书上的拿个例子讲讲吧. 或者有没有相关的文章之类的.
  
先谢谢了.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2012-6-17 20:45:20 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
3
发表于 2012-12-11 17:43:24 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

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

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

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-6-4 22:46 , Processed in 0.022514 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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