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

[网格划分] hypermesh二次开发入门小问题

[复制链接]
发表于 2011-9-7 11:33:49 | 显示全部楼层 |阅读模式 来自 北京
    麻烦问个问题。我在用tcl做hypermesh二次开发,有两个问题百思不得其解,还望指教。

    问题一:
    在1.tcl中写入如下语句:
    puts "This is an example with quotes"

    然后通过file/Run/tcl Script来调用该tcl文件。
    但是提示如下错误
    can not find channel named "stdout"
    我想问一下,如果想要在调用tcl文件时想令其输出数据,应该如何操作?
    输出的数据又是输出到了什么地方?
    为什么不能找到名叫“stdout”的输出渠道呢?

    我现在暂时用写出文件的形式来输出数据,感觉很麻烦。。。


    问题二:
    在hypermesh中可否通过坐标来寻找面对象呢?比如给定曲面上的一个点
    既有函数能够找到该点是在哪个曲面对象上面。

    我只找到了这个函数:hm_findclosestpointonsurface寻找曲面上的最近点
    可问题是,这个函数要求有曲面ID才行。。。我又不知道如何遍历所有曲面ID。。。

    新手上路,还望好汉指点,感激不尽。。。。


发表于 2011-9-7 11:58:48 | 显示全部楼层 来自 江苏镇江
Simdroid开发平台
版主把二次开发的视频和ppt已经免费贴出来了,你可以搜索一下帖子。。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-9-7 15:58:57 | 显示全部楼层 来自 北京
417332551 发表于 2011-9-7 11:58
版主把二次开发的视频和ppt已经免费贴出来了,你可以搜索一下帖子。。

首先感谢你回复我的帖子,谢谢!
关于第一个问题,估计hypermesh只能通过文件的形式输出信息

我主要是关心第二个问题,不知道能不能直接回答一下呢?
版主的视频我已下载,正在研究中
回复 不支持

使用道具 举报

 楼主| 发表于 2011-9-8 09:39:42 | 显示全部楼层 来自 北京
第一个问题
还可以用
hm_usermessage
hm_errormessage
回复 不支持

使用道具 举报

发表于 2011-9-9 11:39:40 | 显示全部楼层 来自 北京
不知道是不是我理解错了
puts这个命令不是那么用的吧?

set SetOutFile "logfile.log"
set fout [open $SetOutFile w]
puts $fout "This is an example with quotes"
close $fout
回复 不支持

使用道具 举报

 楼主| 发表于 2011-9-10 20:35:01 | 显示全部楼层 来自 北京
wel8584 发表于 2011-9-9 11:39
不知道是不是我理解错了
puts这个命令不是那么用的吧?

是的,你理解的没错
回复 不支持

使用道具 举报

发表于 2012-2-7 11:03:07 | 显示全部楼层 来自 中国
直接调用tk命令:tk_messgebox "你要输出的内容"
回复 不支持

使用道具 举报

发表于 2012-2-9 17:56:28 | 显示全部楼层 来自 安徽芜湖
本帖最后由 littleaa 于 2012-2-9 17:57 编辑

*createmark elements 1 "displayed"
*createmark elements 2
*elementtesttetracollapse elements 1 $val 2 0 "Tetra Collapse"
set elemIDs [hm_getmark elem 2]
这样elemIDs里面就是你想要的单元的id 你把网格单元变通一下成面就ok了 我说不清楚的你再问我
我截取我脚本的一段 需要你自己修改下

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2012-3-22 21:45:11 | 显示全部楼层 来自 安徽芜湖
hm_getentityvalue
data name输入你想要的内容
回复 不支持

使用道具 举报

发表于 2012-9-14 13:41:20 | 显示全部楼层 来自 北京
打开view 里面的command window就可以了
回复 不支持

使用道具 举报

发表于 2013-1-3 14:42:27 | 显示全部楼层 来自 安徽合肥
417332551 发表于 2011-9-7 11:58
版主把二次开发的视频和ppt已经免费贴出来了,你可以搜索一下帖子。。

视频和ppt在哪里呀?正在学习中,,,急需这样的好东西
回复 不支持

使用道具 举报

发表于 2013-1-6 18:08:18 | 显示全部楼层 来自 广东佛山
如果你要遍历所有曲面,方法是有的,有一种比较没有效率的方法是你把所有的曲面都显示了,然后是用下面语语句获得曲面ID
*createmark surfs 1 "by displayed"
set surface_ids_list [hm_getmark surfs 1]
所有曲面Id就存在surface_ids_list 列表中了,但当模型很大时,Id值就会很多,程序效率可能会下降
如果要针对性地选择曲面,建议通过component来选择,前提是你要知道要用的曲面放在哪里,可以用下面语句实现
*createmark surfs 1 "by comp" "comp_name"
set surf_ids_list [ hm_getmark surfs 1]
如果配合*createmarkpanel 脚本会有更多的灵活性
回复 不支持

使用道具 举报

发表于 2013-1-6 18:11:01 | 显示全部楼层 来自 广东佛山
hyuanzhu 发表于 2013-1-6 18:08
如果你要遍历所有曲面,方法是有的,有一种比较没有效率的方法是你把所有的曲面都显示了,然后是用下面语语 ...

"by displayed" 应该是"displayed"打多了
回复 不支持

使用道具 举报

发表于 2018-10-4 10:22:43 | 显示全部楼层 来自 广东
楼主搞定了吗?我还是不知道如何得到某个面的ID号
例如:我的模型中已经有很多面了,我要选取某个面(得到该面的ID),但只知道这个面的位置,有办法得到这个面的ID吗?
求大神指导
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-5 11:33 , Processed in 0.040540 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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