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

如何设置体编号线性增加

[复制链接]
发表于 2022-11-26 09:48:48 | 显示全部楼层 |阅读模式 来自 四川
问题:建立体时,编号由程序自动赋值,一般没有规律,不便于后续操作

举例如下:

BLOCK,-10,10,0,5,-10,10        !建立体,编号为1

BLOCK,-4,4,0,8,-4,4                !建立体,编号为2

VSBV,1,2,,,KEEP                        !体1减去体2,保留体2,相当于减去了体1中和体2相交的部分,

!这一操作后,新生成体的的编号为3,原来的体1和编号没有了,程序中只有体2和体3两个信息

BLOCK,-1,1,10,12,-1,1                !再建一个新体,系统赋值体的编号为1

此处新生成体的编号没有规律,如果能赋值为4,就容易理解了,请教高手如何实现?


换一种思路:在生成新体的时候,直接控制其编号或名称,效果如下:

BLOCK,-10,10,0,5,-10,10        !建立体,设置其编号或名称为A

BLOCK,-4,4,0,8,-4,4                !建立体,设置其编号或名称为B

VSBV,A,B,,,KEEP                        !体A减去体B,保留体B,设置新成生体的编号或名称为C

BLOCK,-1,1,10,12,-1,1        !再建一个新体,设置其编号或名称为D

请教高手,这种思路如何实现?

发表于 2022-12-8 13:40:20 | 显示全部楼层 来自 黑龙江哈尔滨
Simdroid开发平台
用组定义:

/PREP7
BLOCK,-10,10,0,5,-10,10     
CM,A,VOLU  
VSEL,NONE   
BLOCK,-4,4,0,8,-4,4              
CM,B,VOLU
ALLSEL,ALL
VSBV,A,B,,,KEEP
CM,C,VOLU
VSEL,NONE  
BLOCK,-1,1,10,12,-1,1
CM,D,VOLU
ALLSEL,ALL
回复 不支持

使用道具 举报

 楼主| 发表于 2022-12-8 17:24:47 | 显示全部楼层 来自 四川
雨人 发表于 2022-12-8 13:40
用组定义:

/PREP7

非常感谢,相当于每次建立新的体之前,把当前内存清空,新建立的体在当前内存中是惟一的。
回复 不支持

使用道具 举报

发表于 2022-12-9 18:51:42 | 显示全部楼层 来自 黑龙江哈尔滨
用component组名代替编号。编号会变,组名不会。
回复 不支持

使用道具 举报

发表于 2022-12-11 09:10:36 | 显示全部楼层 来自 上海
  创建 component 的方法不一定能达到楼主的要求,因为楼主的问题中使用了 布尔运算,形成的新的体的编号多数情况不会符合楼主的要求。且在执行布尔操作的过程中有的 component 会被删除。
  关键是看楼主对于体编号连续的具体要求是什么。
  如果只是要求体编号连续,而不管其顺序如何,可以执行一次命令:
      NUMCMP,ALL - 所有实体的编号都会成为连续的
  或 NUMCMP,VOLU - 仅体积的编号是连续的

  如果对体积的编号顺序有要求,可以试试如下的思路:
     1 使用 *get 命令获取当前体积的最大编号 vmax
     2 使用 numoff 命令,将当前体积的编号统一增加 vmax 或更多,空出前面的体积编号供后面生成的体积使用
     3  按照你对体积编号顺序的要求,顺序对体积进行拷贝操作 (命令是 vgen),拷贝完成后,删除原有t体积及其所有下属实体,命令是  vdele, nv1, , ,1    其中 nv1 是要删除的体积的编号
     4  所有老的体积都处理完成后,当前体积中只有新生成的体积,但是它们可能没有连成一个整体,因此还要执行如下两个命令:
          nummrg, all            - 将所有实体连接为一个整体
          numcmp, all            - 压缩所有实体的编号成为连续的编号。
     最后,检查一下体积的编号是否符合你的要求  (显示体积编号,或者逐一大家体积,查看其编号)
     比较麻烦,但可以试试。
回复 不支持

使用道具 举报

 楼主| 发表于 2022-12-12 15:25:16 | 显示全部楼层 来自 四川
htbbzzg 发表于 2022-12-11 09:10
创建 component 的方法不一定能达到楼主的要求,因为楼主的问题中使用了 布尔运算,形成的新的体的编号多 ...

谢谢,非常感谢。目前看来,一时还没有一个很好的解决方法。
非常感谢‘雨人’和‘htbbzzg’热心回贴,透过文字,感受到了两位的专业和专注。
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-6 11:56 , Processed in 0.026380 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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