首页/文章/ 详情

ANSA二次开发_Python基础-字符串

27天前浏览590

回顾一下以前的笔记,便于以后的查看,以ANSA二次开发作为基础,记录下用到的基础知识。

字符串、列表、字典将以修改part的名字为例进行演示。

    import ansafrom ansa import basefrom ansa import constantspart = base.GetFirstEntity(constants.NASTRAN,"ANSAPART")vals = ('Name', 'Module Id')ret = base.GetEntityCardValues(constants.NASTRAN,part, fields=vals) oldname = ret['Name']print (oldname)# 固定字符串,测试时可以将该行注释oldname = "HWCOLOR PROP            1001199      24"cleaned = oldname.strip("HWCOLOR") # " PROP 1001199 24"vals = {'Name':cleaned,}# ANSA命名是会自动将首位的空格字符移除base.SetEntityCardValues(constants.NASTRAN, part, vals)

    这是基础的修改代码,后续代码皆可通过替换上述代码的字符串处理行进行测试

    1. strip()
    去除字符串两端的空格(或指定字符)。
      cleaned = oldname.strip("HWCOLOR")print(cleaned)  # " PROP 1001199 24"# 去除左侧空白:print(" HWCOLOR PROP ".lstrip())  # 输出: 'HWCOLOR PROP            1001199      24'#去除右侧空白:print(" HWCOLOR PROP ".rstrip())  # 输出: 'HWCOLOR PROP            1001199      24'
      2. split()
      根据指定的分隔符将字符串分割成一个列表。
        parts = oldname.split()print(parts)  # ['HWCOLOR', 'PROP', '1001199', '24']
        3. replace()
        替换字符串中的某些部分。
          replaced = oldname.replace("1001199", "0000000")print(replaced)  # "HWCOLOR PROP 0000000 24"
          4. find()
          查找子字符串第一次出现的位置。
            position = oldname.find("PROP")print(position)  # 8
            5. upper()
            转换字符串的大写。
              upper_name = oldname.upper()print(upper_name)  # "HWCOLOR PROP 1001199 24"
              6. lower()
              转换字符串的小写。
                lower_name = oldname.lower()print(lower_name)  # "hwcolor prop 1001199 24"
                7. startswith(), endswith()
                检查字符串是否以指定的子字符串开始或结束。
                  starts_with = oldname.startswith("HW")print(starts_with)  # Trueends_with = oldname.endswith("24")print(ends_with)  # True
                  8. isdigit()
                  检查字符串是否只包含数字。
                    is_digit = oldname.isdigit()print(is_digit)  # False
                    9. len()
                    获取字符串长度。
                      length = len(oldname)print(length)  # 27

                      10. 索引

                      访问字符串中的特定位置

                          print(oldname[0])  # 输出: 'H'

                        11. 切片

                        获取字符串的一部分

                            print(oldname[0:7])  # 输出: 'HWCOLOR'

                          12. capitalize()

                          首字母大写

                             print(oldname.capitalize())  # 输出: 'Hwcolor prop 1001199 24'


                            13.  title()

                            每个单词首字母大写:

                               print(oldname.title())  # 输出: 'Hwcolor Prop 1001199 24'

                              14. 连接字符串:

                                 words = ['HWCOLOR', 'PROP', '1001199', '24']print(" ".join(words))  # 输出: 'HWCOLOR PROP 1001199 24'
                                来源:TodayCAEer
                                Nastran二次开发ANSApython
                                著作权归作者所有,欢迎分享,未经许可,不得转载
                                首次发布时间:2024-08-14
                                最近编辑:27天前
                                TodayCAEer
                                本科 签名征集中
                                获赞 16粉丝 8文章 163课程 0
                                点赞
                                收藏
                                作者推荐

                                人可以不活,但不能没活

                                最近发现越来越多的老表都在整活,那么我们也运用hyperwork进行一些新颖有趣的改造活动。该逻辑的实现过程是,先解析GIF动图的每一帧,并提取其中每一帧图片中的所有黑色像素点(当然也可以提取出64种颜色,但hypermesh的comps颜色显示最多也就是64种,后续TCL的功能也要由高亮显示修改为将单元移动到对应的comps当中去),将它们的XY坐标转化为编号(编号规则从左上角开始),然后将编号进行保存,得到图片信息。接下来就需要做的是准备网格,实现类似于动图播放的效果。为此,我们考虑将图片像素点ID与网格的单元ID一一对应,然后再调用相应的高亮显示API即可实现这一功能。需要注意的是,在软件界面当中创建的单元ID并不是我们所需要的状态,它的ID编号是随机的,如果直接以renumber方式修改每个单元的ID,由于图片大小可能是300*300(即90000个像素点)或者更大,那时间复杂度将是相当高的,因此需要考虑采样或其他有效的方法进行降低分辨率,提高效率。而本次整活采用了不同的技巧——直接写入fem文件,以避免二次开发过程中的效率问题。后续还可以继续优化,例如写一个很大的fem文件,例如1000*1000的fem文件,这样可以避免每次运行重新写;同样是将图片的像素点保存成文件,当文件已经存在时,就无须重新提取节点。另外一个有趣的整活在后处理中提供了仿真结果与实际录像进行对标的功能--ImagePlanes,就是说支持导入图片或者视频,那么是不是可以在发散一下,按照自己的喜好更改背景呢,换个赏心悦目的背景,是不是在100万个单元中,查看应力集中区域的时候鼠标移动,缩放的速度更快呢。取消Fit,即可扩展显示满屏。这里面用到了前面介绍的tclCallPython内容,忘记的朋友传送门如下。代码获取方式,不是完整的代码,仅包含提取图片黑色像素点的代码,以及单元高亮显示的代码,获取方式后台回复整活来源:TodayCAEer

                                未登录
                                还没有评论
                                课程
                                培训
                                服务
                                行家
                                VIP会员 学习 福利任务 兑换礼品
                                下载APP
                                联系我们
                                帮助与反馈