计算化学公社

 找回密码 Forget password
 注册 Register
Views: 597|回复 Reply: 1
打印 Print 上一主题 Last thread 下一主题 Next thread

[辅助/分析程序] 使用剪切板传递几何结构到gview

[复制链接 Copy URL]

683

帖子

12

威望

2825

eV
积分
3748

Level 5 (御坂)

鸩羽

本帖最后由 wal 于 2025-10-21 20:45 编辑

笔者之前为了避免将完整log输出从服务器下载到本地,已经做了个壳用来让gview可以直接打开xyz文件双击使用GaussView打开xyz/trj文件的小trick,但笔者觉得这还是不够懒。

我不仅不想下载log到本地进行可视化,就连xyz我也不想下载在后处理之前,我就是不想从服务器上下载任何半成品文件 ;)

于是,使用剪切板传递结构的想法诞生了。最早的时候我试过rainmeter做个窗口,结果发现这个东西经常卡住,还要装各种插件,并不好用。后面想了下干脆让AI帮我弄成一个C++程序,直接用windows.h提供的剪切板API来读剪切板中xyz text,再用快捷键来触发,这下连粘贴到窗口的功夫都省了

xyz_monitor.exe (3.33 MB, 下载次数 Times of downloads: 20)

使用方法:双击启动,程序会进入托盘待机。当监听到预设快捷键时,读取剪切板内容,尝试转换为Gaussian日志文件并用gview打开。支持单帧xyz、多帧xyz、只有元素符号与坐标的4列xyz坐标数据。在通过VScode等方式连接到服务器时,只要复制xyz文件内容,或是gjf文件的几何部分,或是任何符合坐标 x y z四列的几何坐标信息,按一下快捷键即可立即在本地打开gview,无缝可视化。可以考虑放进启动项,反正这个东西已经在我的启动项里了

首次启动时,会生成config.ini、temp/、logs/文件夹。config.ini中可以配置各种选项
  1. # 设置快捷键
  2. hotkey=CTRL+ALT+C
  3. # gview可执行文件路径。若在PATH里则可以直接gview.exe,否则需要绝对路径
  4. gview_path=gview.exe
  5. # 临时文件目录名
  6. temp_dir=temp
  7. # 日志文件保存位置
  8. log_file=logs/xyz_monitor.log
  9. # 日志级别
  10. log_level=INFO
  11. # 是否保存日志
  12. log_to_file=true
  13. #删除临时文件的等待时间
  14. wait_seconds=5
  15. # 为避免xyz文件过大,占用过多内存造成卡顿,指定内存使用限制
  16. max_memory_mb=500
  17. # 设定处理字符限制,0表示根据分配内存决定
  18. max_clipboard_chars=0
复制代码
修改配置文件后需要在系统托盘处右击并reload才能成功加载配置

PS:本程序未来可能会支持写入真正的收敛信息,这样就能通过xyz文件检测收敛情况了
已实现

源码与Makefile:去github看吧,有点多
本程序是使用mingw进行编译的







评分 Rate

参与人数
Participants 5
eV +17 收起 理由
Reason
〇66 + 5 好物!
Stardust0831 + 5 谢谢
Voidmio + 4 很好的想法
SharkYYX2025 + 2 牛!
guoguoping199 + 1 牛!

查看全部评分 View all ratings

某不知名实验组从苞米地里长出来的计算选手

683

帖子

12

威望

2825

eV
积分
3748

Level 5 (御坂)

鸩羽

2#
 楼主 Author| 发表于 Post on 2025-10-21 21:06:00 | 只看该作者 Only view this author
本帖最后由 wal 于 2025-10-21 21:19 编辑

2.0.2
- 支持将Gview Clipboard转换为xyz text(需要用户找到自己的Clipboard.frg)
- 支持转换chg text并写入电荷信息
- 继承此贴[辅助/分析程序] 双击使用GaussView打开xyz/trj文件的小trick功能,支持以设定默认打开方式的形式双击打开xyz\trj\chg文件
- 可以将形如
MaxF=6.9e-03 RMSF=7.8e-04 MaxD=2.2e-01 RMSD=5.1e-02 E=-1941.608811
的收敛信息写入log文件 (此功能与笔者未来将发布的某小玩具有联动)
- 支持指定识别坐标列数,例如对于gamess输出
  1. COORDINATES OF ALL ATOMS ARE (ANGS)
  2.    ATOM   CHARGE       X              Y              Z
  3. ------------------------------------------------------------
  4. C           6.0   7.8449680100  -0.8450630000   0.0002460000
  5. N           7.0   6.9265290000   0.2807020000  -0.0000410000
  6. C           6.0   7.4702390000   1.6279360000   0.0002520000
  7. C           6.0   5.5954119800   0.0786870000   0.0000600000
  8. C           6.0   4.6758330000   1.1757670000   0.0000850000
  9. C           6.0   3.3248500000   0.9678360000   0.0001060000
  10. C           6.0   2.7608200000  -0.3489860000   0.0001440000
复制代码

可以指定第1列为元素符号,3、4、5列为xyz来转换结构

当前配置文件设置项:
  1. hotkey=CTRL+ALT+X
  2. hotkey_reverse=CTRL+ALT+G
  3. gview_path=D:\program\G16W\gview.exe
  4. gaussian_clipboard_path=D:\program\G16W\Scratch\fragments-12_10_2024_15_55_36\Clipboard.frg
  5. temp_dir=D:\MyProgram\xyzFakeG\temp
  6. log_file=D:\MyProgram\xyzFakeG\logs\xyz_monitor.log
  7. log_level=INFO
  8. log_to_console=true
  9. log_to_file=true
  10. wait_seconds=5
  11. # Memory limit in MB for processing (default: 500MB)
  12. max_memory_mb=500
  13. # Optional: set explicit character limit (0 = auto calculate from memory)
  14. max_clipboard_chars=65536000
  15. # XYZ Converter Column Definitions (1-based indexing)
  16. element_column=1
  17. xyz_columns=2,3,4
  18. # CHG Format Support (format: Element X Y Z Charge)
  19. try_parse_chg_format=true
  20. # Atomic Number Parsing (try to parse element column as atomic number)
  21. try_parse_atomic_number=true
复制代码



某不知名实验组从苞米地里长出来的计算选手

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-1-25 07:30 , Processed in 0.259638 second(s), 26 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list