Changeset 1007 in main


Ignore:
Timestamp:
04/16/12 15:28:43 (11 years ago)
Author:
agalech
Message:

New algorithm of decomposition

Location:
trunk/openPLM/document3D
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/openPLM/document3D/arborescense.py

    r1005 r1007  
    11import os, os.path 
    2 from OCC.gp import * 
    32from openPLM.plmapp.controllers.part import PartController 
    43from classes import * 
     
    110109    locate+="object%s.matrixAutoUpdate = false;\n"%numeration 
    111110    if len(loc)>0: 
    112         transformation=gp_Trsf() 
    113         gp=gp_XYZ() 
    114111        for g in range(len(loc)): 
    115             if g==0: 
    116                 transformation=loc[g].Transformation() 
    117             else: 
    118                 transformation.Multiply(loc[g].Transformation()) 
    119                  
    120         a ,b =transformation.GetRotation(gp) 
    121         t=transformation.TranslationPart() 
    122  
    123  
    124  
    125         if a:         
    126             locate+="object%s.matrix.setRotationAxis(new THREE.Vector3( %s, %s, %s ), %s);\n"%(numeration,gp.X(),gp.Y(),gp.Z(),b) 
    127                    
    128         locate+="object%s.matrix.setPosition(new THREE.Vector3( %s, %s, %s ));\n"%(numeration,t.X(),t.Y(),t.Z()) 
     112            locate+="object%s.matrix.multiplySelf(new THREE.Matrix4(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,0,0,0,1));\n"%(numeration,loc[g].x1,loc[g].x2,loc[g].x3,loc[g].x4,loc[g].y1, 
     113            loc[g].y2,loc[g].y3,loc[g].y4,loc[g].z1,loc[g].z2,loc[g].z3,loc[g].z4) 
     114 
    129115         
    130116    locate+="object3D.add(object%s);\n"%numeration     
     
    175161        new_product=generateArbre(json.loads(new_ArbreFile.file.read()),product=False,product_root=product_root,deep=deep,from_child_ArbreFile=product)                                                                                      
    176162        for location in list_loc[i]: 
    177             product.links[-1].add_occurrence(location.name,Matrix_rotation(location.to_array())) 
     163            product.links[-1].add_occurrence(location.name,location) 
    178164             
    179165        if new_product: 
  • trunk/openPLM/document3D/classes.py

    r1005 r1007  
    1 from OCC.gp import gp_Trsf 
    2 from OCC.GarbageCollector import garbage 
     1 
    32import hashlib 
    43import string 
     
    87import sys 
    98 
    10 def new_collect_object(self, obj_deleted): 
    11         self._kill_pointed() 
    12  
    13 garbage.collect_object=new_collect_object 
     9 
     10 
    1411 
    1512 
     
    108105            self.z4=list_coord[11]     
    109106 
    110      
     107    """     
    111108    def Transformation(self): 
    112109        transformation=gp_Trsf() 
    113110        transformation.SetValues(self.x1,self.x2,self.x3,self.x4,self.y1,self.y2,self.y3,self.y4,self.z1,self.z2,self.z3,self.z4,1,1) 
    114111        return transformation      
    115            
     112    """           
    116113    def to_array(self):     
    117114        return [self.x1,self.x2,self.x3,self.x4,self.y1,self.y2,self.y3,self.y4,self.z1,self.z2,self.z3,self.z4]  
     
    182179 
    183180                    if link.product.label_reference==label: 
    184                         print "Encontrado : " , link.product.name  
    185181                        return link.product 
    186182                     
    187183                elif id==link.product.doc_id and geometry==link.product.geometry: 
    188                     print "Encontrado : " , link.product.name  
    189184                    return link.product                                         
    190185 
  • trunk/openPLM/document3D/generateComposition.py

    r1005 r1007  
    77from OCC.STEPCAFControl import STEPCAFControl_Writer 
    88from OCC.TopLoc import TopLoc_Location 
    9  
     9from OCC.gp import gp_Trsf 
    1010from STP_converter_WebGL import NEW_STEP_Import , SetLabelNom , colour_chercher 
    1111from classes import generateArbre 
     
    5555 
    5656     
    57         if link.product.doc_id!= product.doc_id: 
    58             print "adding labels to : " , link.product.name 
    59             my_step_importer = NEW_STEP_Import(link.product.doc_path) 
    60             print "A" 
    61             lr_2= TDF_LabelSequence() 
     57        if link.product.doc_id!= product.doc_id: # solo los que esten descompuesto, si no esta descompuesto no tiene que anadirlo 
    6258 
    63             my_step_importer.shape_tool.GetFreeShapes(lr_2) 
    64              
    65             add_labels(link.product,lr_2.Value(1),my_step_importer.shape_tool) 
    66             print "B"                 
     59            if not link.product.label_reference: 
     60 
     61                my_step_importer = NEW_STEP_Import(link.product.doc_path) 
     62                lr_2= TDF_LabelSequence() 
     63                my_step_importer.shape_tool.GetFreeShapes(lr_2)         
     64                add_labels(link.product,lr_2.Value(1),my_step_importer.shape_tool) 
     65                link.product.label_reference=lr_2.Value(1) 
     66               
     67               
    6768            for d in range(link.quantity): 
    6869 
    69                 new_label=st.AddComponent(lr,lr_2.Value(1),TopLoc_Location(link.locations[d].Transformation())) 
     70                transformation=gp_Trsf() 
     71                transformation.SetValues(link.locations[d].x1,link.locations[d].x2,link.locations[d].x3,link.locations[d].x4,link.locations[d].y1,link.locations[d].y2,link.locations[d].y3,link.locations[d].y4,link.locations[d].z1,link.locations[d].z2,link.locations[d].z3,link.locations[d].z4,1,1)   
     72                new_label=st.AddComponent(lr,link.product.label_reference,TopLoc_Location(transformation)) 
    7073                SetLabelNom(new_label,link.names[d]) 
    71             print "C"                                             
     74 
     75             
     76        else: 
     77            pass # no hace falta por que ya esta en la geometria                                             
    7278                 
    7379     
Note: See TracChangeset for help on using the changeset viewer.