| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3158 人关注过本帖
标题:c语言读取step文件信息
只看楼主 加入收藏
lihouqi
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-3-14
结帖率:100%
收藏
 问题点数:0 回复次数:7 
c语言读取step文件信息
从step文件中读取三维模型的信息,比如面的类型和数量,边的类型和数量。QQ 915601564
搜索更多相关主题的帖子: c语言 信息 模型 
2017-03-14 16:42
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
如果是类似txt 贴一段 文本  或是  上传一个step文件  看看
2017-03-14 22:16
lihouqi
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-3-14
收藏
得分:0 
回复 2楼 寒风中的细雨
图片附件: 游客没有浏览图片的权限,请 登录注册
这是step文件中的一段,数据段每行都是以‘#’开头,‘;’结尾。比如查找整个文本中的‘ADVANCED_FACE',‘EDGE_LOOP’等出现的次数,返回一个向量,存储出现的次数.
2017-03-16 22:31
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:0 
什么条件?
2017-03-16 23:21
lihouqi
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-3-14
收藏
得分:0 
零件9.STEP.rar (4.29 KB)

    在这个文件中,数据段都是以‘#’开始,‘;’结尾。先查找每个ADVANCED_FACE行,看里面的括号里有几个‘#xxx(数字)’(比如有的行:#130 = ADVANCED_FACE ( 'NONE', ( #317 ), #213, .T. ) ;里面的括号就一个#317,而#108 = ADVANCED_FACE ( 'NONE', ( #188, #223 ), #266, .T. ) ;里面的括号有两个,#188和#233),一个的就直接定位到括号里对应的行,比如对前一个ADVANCED_FACE找到行:#317 = FACE_OUTER_BOUND ( 'NONE', #301, .T. ) ;,继续找到行:#301 = EDGE_LOOP ( 'NONE', ( #68, #27, #233, #308 ) ) ;,到EDGE_LOOP为止,此时这个EDGE_LOOP里有4个数,那么这个ADVANCED_FACE就有4个数。超过两个以上的就要分别定位到对应的行,比如找到行:#188 = FACE_OUTER_BOUND ( 'NONE', #309, .T. ) ;,继续找到行:#309 = EDGE_LOOP ( 'NONE', ( #297, #183 ) ) ;此时看EDGE_LOOP里的括号有几个#xxx(这里是两个#297和#183),记下个数2;同理找到行:#223 = FACE_BOUND ( 'NONE', #337, .T. ) ;,继续找到行:#337 = EDGE_LOOP ( 'NONE', ( #142, #29, #161, #239 ) ) ;,此时EDGE_LOOP里的括号里有4个#xxx,那么这个ADVANCED_FACE就有6个数(2+4)。 同理ADVANCED_FACE里面的括号里有两个以上的数用类似的方法。然后输出每个ADVANCED_FACE有多少个数。求高手指导 QQ:915601564.不胜感激!
2017-03-16 23:49
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
语言 没限制吧

能提取出来  符合要求就OK吧?
2017-03-17 23:58
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
shell 脚本

提取 基本思路  没写完 参考下

程序代码:
$ IFS=$'\n'; for line in $(grep "^#.*;$" step.txt | grep "ADVANCED_FACE") ;do echo $line; done
#28 = ADVANCED_FACE ( 'NONE', ( #325 ), #221, .F. ) ;
#77 = ADVANCED_FACE ( 'NONE', ( #326 ), #260, .T. ) ;
#108 = ADVANCED_FACE ( 'NONE', ( #188, #223 ), #266, .T. ) ;
#130 = ADVANCED_FACE ( 'NONE', ( #317 ), #213, .T. ) ;
#185 = ADVANCED_FACE ( 'NONE', ( #137 ), #184, .F. ) ;
#211 = ADVANCED_FACE ( 'NONE', ( #134 ), #242, .F. ) ;
#235 = ADVANCED_FACE ( 'NONE', ( #111 ), #40, .T. ) ;
#259 = ADVANCED_FACE ( 'NONE', ( #63 ), #65, .F. ) ;
#307 = ADVANCED_FACE ( 'NONE', ( #10 ), #227, .F. ) ;
#329 = ADVANCED_FACE ( 'NONE', ( #236 ), #257, .T. ) ;

$ IFS=$'\n'; i=0; for line in $(grep "^#.*;$" step.txt | grep "ADVANCED_FACE") ;do adv[$i]=$line; ((++i)); done


$ grep "^#.*;$" step.txt | grep "ADVANCED_FACE" | egrep -o "\( #[^\)]*\)" | sed -e 's/ //g' | egrep -o "#[^\)]*" | awk -F, '{for (i=1;i<=NF; ++i){if (i>1) printf(" ");printf("%s", $i)} printf("\n");}'
#325
#326
#188 #223
#317
#137
#134
#111
#63
#10
#236

$ i=0; for line in $(grep "^#.*;$" step.txt | grep "ADVANCED_FACE" | egrep -o "\( #[^\)]*\)" | sed -e 's/ //g' | egrep -o "#[^\)]*" | awk -F, '{for (i=1;i<=NF; ++i){if (i>1) printf(" ");printf("%s", $i)} printf("\n");}');do advline[$i]=$line; ((++i));done

$ i=0; while [ $i -le ${#advline[@]} ];do echo ${advline[$i]}; ((++i)); done
#325
#326
#188 #223
#317
#137
#134
#111
#63
#10
#236


$ i=0; while [ $i -lt ${#advline[@]} ];do echo ${advline[$i]}; egrep "^${advline[$i]} = " step.txt; ((++i)); done
#325
#325 = FACE_OUTER_BOUND ( 'NONE', #314, .T. ) ;
#326
#326 = FACE_OUTER_BOUND ( 'NONE', #87, .T. ) ;
#188 #223
#317
#317 = FACE_OUTER_BOUND ( 'NONE', #301, .T. ) ;
#137
#137 = FACE_OUTER_BOUND ( 'NONE', #272, .T. ) ;
#134
#134 = FACE_OUTER_BOUND ( 'NONE', #267, .T. ) ;
#111
#111 = FACE_OUTER_BOUND ( 'NONE', #107, .T. ) ;
#63
#63 = FACE_OUTER_BOUND ( 'NONE', #99, .T. ) ;
#10
#10 = FACE_OUTER_BOUND ( 'NONE', #18, .T. ) ;
#236
#236 = FACE_OUTER_BOUND ( 'NONE', #202, .T. ) ;


2017-03-18 01:01
lihouqi
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-3-14
收藏
得分:0 
回复 7楼 寒风中的细雨
看不太懂,大神能用C或C++吗?
2017-03-20 00:32
快速回复:c语言读取step文件信息
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017012 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved