| 1 | # Dimensions demo |
| 2 | # |
| 3 | # It shows capability of OCC to create different kinds |
| 4 | # of dimensions (linear and angular) with 2D or 3D text. |
| 5 | |
| 6 | #Category: Visualization |
| 7 | #Title: Dimensions in 3d viewer |
| 8 | |
| 9 | set aTopLoc [locate_data_file occ/Top.brep] |
| 10 | set aBotLoc [locate_data_file occ/Bottom.brep] |
| 11 | set aHatch [locate_data_file images/hatch_1.png] |
| 12 | |
| 13 | pload MODELING VISUALIZATION |
| 14 | |
| 15 | puts "Importing shapes..." |
| 16 | restore $aTopLoc a |
| 17 | restore $aBotLoc b |
| 18 | |
| 19 | vinit View1 w=768 h=768 |
| 20 | vclear |
| 21 | vsetdispmode 0 |
| 22 | vsetcolorbg 255 255 255 |
| 23 | vbottom |
| 24 | |
| 25 | puts "Getting cut projection..." |
| 26 | box bb -150 -250 0 150 250 100 |
| 27 | bsection bs b bb |
| 28 | bsection as a bb |
| 29 | vdisplay bs as |
| 30 | vfit |
| 31 | |
| 32 | set anAEdges [explode as E] |
| 33 | set aBEbges [explode bs E] |
| 34 | |
| 35 | set anArrAngle [expr 3.14 * 12.0 / 180.0] |
| 36 | |
| 37 | # Form dimension names list to set parameters with vdimparam command |
| 38 | set aList {rd_1 rd_2 ad_1 ad_2 ad_3} |
| 39 | for {set i 1} {$i <= 10} {incr i} { |
| 40 | lappend aList ld_$i |
| 41 | } |
| 42 | |
| 43 | puts "Creating dimensions..." |
| 44 | vdimension ld_1 -length -shapes bs_27 -plane xoy -color black -flyout -15 |
| 45 | vdimension ld_2 -length -shapes bs_14 -plane xoy -color black -flyout 15 |
| 46 | vdimension ld_3 -length -shapes bs_28 -plane xoy -color black -label right -flyout -27 |
| 47 | vdimension ld_4 -length -shapes as_7 -plane xoy -color black -flyout -20 |
| 48 | vdimension ld_5 -length -shapes as_28 -plane xoy -color black -flyout -15 |
| 49 | vdimension ld_6 -length -shapes as_18 -plane xoy -color black -flyout 30 |
| 50 | vdimension ld_7 -length -shapes bs_20 -plane xoy -color black -flyout -20 |
| 51 | vdimension ld_8 -length -shapes as_43 -plane xoy -color black -flyout 55 -label right |
| 52 | vdimension ld_9 -length -shapes as_12 -plane xoy -color black -flyout 35 -label right |
| 53 | vdimension ld_10 -length -shapes as_40 -plane xoy -color black -flyout 15 |
| 54 | |
| 55 | vdimension rd_1 -radius -shapes bs_45 -color black -label right |
| 56 | vdimension rd_2 -radius -shapes bs_63 -color black |
| 57 | |
| 58 | vdimension ad_1 -angle -shapes as_38 as_49 -color black |
| 59 | vdimension ad_2 -angle -shapes bs_24 bs_25 -color black |
| 60 | vdimension ad_3 -angle -shapes as_48 as_43 -color black |
| 61 | |
| 62 | puts "Changing text and arrow parameters of dimensions..." |
| 63 | foreach i $aList { |
| 64 | vdimparam $i -text 3d sh 6 -arrowlength 4 -arrowangle $anArrAngle |
| 65 | } |
| 66 | |
| 67 | vfit |
| 68 | |
| 69 | puts "Displaying exported shapes..." |
| 70 | vdisplay a b |
| 71 | vsetdispmode a 1 |
| 72 | vsetdispmode b 1 |
| 73 | vaspects a -setmaterial steel |
| 74 | vaspects b -setmaterial bronze |
| 75 | |
| 76 | puts "Clipping shapes for better view..." |
| 77 | vclipplane create pa |
| 78 | vclipplane change pa equation 0 0 1 0 |
| 79 | vclipplane change pa capping on |
| 80 | vclipplane change pa capping color 0.9 0.9 0.9 |
| 81 | vclipplane set pa object a |
| 82 | |
| 83 | vclipplane create pb |
| 84 | vclipplane change pb equation 0 0 1 0 |
| 85 | vclipplane change pb capping on |
| 86 | vclipplane change pb capping color 1.0 0.8 0.0 |
| 87 | vclipplane set pb object b |
| 88 | |
| 89 | vclipplane change pa capping texname $aHatch |
| 90 | vclipplane change pa capping texscale 0.05 -0.05 |
| 91 | vclipplane change pb capping texname $aHatch |
| 92 | vclipplane change pb capping texscale 0.05 0.05 |
| 93 | |
| 94 | vbottom |
| 95 | vrotate -0.3 -0.3 0 |
| 96 | vfit |
| 97 | vzoom 1.2 |
| 98 | vrenderparams -msaa 8 |
| 99 | |
| 100 | puts "Done." |