丁越 发表于 2022-5-11 08:26 谢谢老师的批评指正! 我回去再好好学习一下TCL语法 |
本帖最后由 丁越 于 2022-5-11 12:07 编辑 吞木木 发表于 2022-4-30 14:46 你看看TCL语法中puts是怎么用的,显然不是这么接的。 set numframe [molinfo top get numframes] set a [atomselect top "same fragment as {element N} && numbonds=2"] set fileid [open num.dat w] for {set i 0} {$i <= $numframe} {incr i 1} { $a frame $i animate goto $i mol bondsrecalc all topo retypebonds $a update set N [$a num] puts $fileid "$i \t [expr double($N)/3]" } close $fileid [expr double($N)/3]"除以3是我假设你的每个分子片段有三个原子 |
sobereva 发表于 2022-3-28 10:35 谢谢卢天老师的回复 ![]() |
丁越 发表于 2022-3-27 22:32 谢谢丁老师的回复 ![]() |
|
还要注意在脚本中循环时必须实时更新连接关系,参考下文里的相关命令 VMD初始化文件(vmd.rc)我的推荐设置 http://sobereva.com/545(http://bbs.keinsci.com/thread-16834-1-1.html) |
|
same fragment as {element C} && numbonds=1 CO same fragment as {element C} && numbonds=4 CH4 same fragment as {element C} && numbonds=2 CO2 same fragment as {element O} && numbonds=2 H2O same fragment as {element O} && numbonds=1 && not same fragment as {element C} O2 按照上述片段选择就可以定义CO、CH4、CO2等了,然后通过for循环统计每帧的片段数目就行了 |
| 参与人数Participants 1 | eV +2 | 收起 理由Reason |
|---|---|---|
|
| + 2 |
手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图
GMT+8, 2026-2-19 19:57 , Processed in 0.175006 second(s), 26 queries , Gzip On.