[转帖]CAA 怎样能够得到每个面上的材质如图片等等
我现在想得到每个面上的材质,对图片进行处理,但是如何才能够得到每个面上的图片路径呢?据我所知,材质是以Feature为单位起作用的,并不是以面为单位
也许还有我所不知道的情况,我就不清楚了。
下面就说对Feature分配的材质:
1。材质是以Child的形式挂在Feature之下的,所以可以用CATIDescendants的GetChildren()方法来获得,获得的时候需要指定CATIPositionedMaterial接口
2。得到各个CATIPositionedMaterial后,用它的方法GetMaterial()莱得到具体的
CATIMaterialFeature
3。CATIMaterialFeature里面保存了关于材质的很多信息(不敢说所有信息),
这些信息用方法GetApplicativeSpec()来获得,这个方法需要一个属性名字的字符串作为输入
4。属性名字从那里得到呢?你观察一下一个具体的材质的属性(properties),
在这个属性页上有几个Tab,Analysis,Rendering...就是这些东西
5。好了,你指定了名字,终于得到了一个所谓的ApplicativeSpec,信息在哪儿呢?
6。还没有完,每一个ApplicativeSpec实际上是一个CATIParmPublisher,下面挂了很多CATICkeParm,具体的信息都在这些CATICkeParm里面呢。
7。得到了这些CATICkeParm里面的值,在对照一下材质的属性页上的显示,呵呵,是不是很有成就感呢?
这些是我两年前摸索出来的,你在任何资料上都不会找到。 :)
我们有个命令群处理 part材料特性的
基本就是用xls文件写各种材料ID和特性,配合具体厂家的材料的特性(因为catia的东西用起来麻烦,我们的客户比较变态,按秒计算一个操作的是时间)
然后把他们给set到catpart的feature extension里 能不能告诉我 通过CATI3DGeoVisu->BuildRep得到的CATRep 而得到CATIPositionedMaterial接口,
要是不能,有没有从CATRep到CATIPositionedMaterial的路子啊,
两位高手先谢谢了,我现在就是卡在这里了,解决不了啊,帮帮忙!
"据我所知,材质是以Feature为单位起作用的,并不是以面为单位
也许还有我所不知道的情况,我就不清楚了。 "
CATIA中的Material好像只能对Feature实施,而不是对CATRep。(你能对一个Solid的每个面单独贴图吗?)
因此,从CATRep是得不到CATIPositionedMaterial的,我认为。
那么能不能从CATRep中得到CATGraphicMaterial 类此类中有所有的Material属性
在CATIA 里有个Stick命令,此命令不是对Feature,可以对一个面的特定区域进行贴图,当然不是材质了.其实,我一直想实现对CATIA做出来的模型,比如一座山的反求模型,然后根据山体的照片,对CATIA里的反求山体模型进行贴图.或者有没有别人办法,能够实现对CATIA里的这座山模型贴上图后,让人感觉不是一个CAD模型,而是象一座虚拟的真实山.
不知道你要给每个面加特性是要做什么
材质是soild的特性,因为面是没有体积的,加个带密度的特性,你要给面加这个特性了话是违法通常的逻辑,
我或许可以这么假设,你要给每个面加表面粗慥度或加工方法的特性,并且上色,以便区分,如果是这样,你可以做一些CkeParm给加到feature exension里,当然颜色的更新就没法指望catia的功能,自己做个染色命令,手动执行好了
但不管合不合逻辑,你可以把任何属性给加到任意的feature(包括sub element)
因为cad无非是个数据库和绘图功能的合体
页:
[1]