home *** CD-ROM | disk | FTP | other *** search
- REM @(#)CADKEY SOLIDS groups.cdl 2.4 10/31/88
- REM
- REM program to set group information for CADKEY SOLIDS
- REM
-
- $tmpstr = " "
- $mat = " "
- $mat1 = " "
- $mat2 = " "
- $mat3 = " "
- $mat4 = " "
- $mat5 = " "
- $mat6 = " "
- $mat7 = " "
- $mat8 = " "
-
- $dum1 = " "
- $dum2 = " "
- $dum3 = " "
- $dum4 = " "
- $dum5 = " "
-
- REM "skip past the first entries "
-
- set devin, matter.dat
- input "%s %s %s %s %s",$dum1,$dum2,$dum3,$dum4,$dum5
- input "%s %s %s %s %s",$dum1,$dum2,$dum3,$dum4,$dum5
-
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- if ( @NREAD <= 0 )
- goto done
- CALL STRCPY ,$mat1,$tmpstr
-
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- if ( @NREAD <= 0 )
- goto done
- CALL STRCPY ,$mat2,$tmpstr
-
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- if ( @NREAD <= 0 )
- goto done
- CALL STRCPY ,$mat3,$tmpstr
-
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- if ( @NREAD <= 0 )
- goto done
- CALL STRCPY ,$mat4,$tmpstr
-
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- if ( @NREAD <= 0 )
- goto done
- CALL STRCPY ,$mat5,$tmpstr
-
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- if ( @NREAD <= 0 )
- goto done
- CALL STRCPY ,$mat6,$tmpstr
-
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- if ( @NREAD <= 0 )
- goto done
- CALL STRCPY ,$mat7,$tmpstr
-
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- if ( @NREAD <= 0 )
- goto done
- CALL STRCPY ,$mat8,$tmpstr
- :done
- set devout,tmp.grp
- REM '-----------------------------------------------------------------'
- REM '-- Handle group data '
- REM '-----------------------------------------------------------------'
- grp1 = 1
- :mainmenu
- getmenu "GROUPS : Choose option",\
- "SELECT",\
- "MATERIAL",\
- "VELOCITY",\
- "DENSITY",\
- "AWDENS",\
- "SHAD PR",\
- "DONE"
-
- on (@key + 3) goto leaveit,mainmenu,mainmenu,,\
- get_groups,\
- matmenu,\
- velomenu,\
- density,\
- awdens,\
- shadmenu,\
- getout
- goto mainmenu
-
- :get_groups
- getmenu "GROUPS : Choose option",\
- "SELECT",\
- "KEYIN",\
-
- on (@key + 3) goto leaveit,mainmenu,get_groups,,\
- selectg,\
- keyin
- goto get_groups
-
- :selectg
- getent "Select group",etype
- on ( @key + 3 ) goto leaveit,get_groups,selectg,
- grp1 = @INTDAT[1]
- goto get_groups
-
- :keyin
- tmp = grp1
- getint "GROUPS : Enter group number (%d) =>",tmp,grp
- on ( @key + 3 ) goto leaveit,get_groups,keyin,
- grp1 = grp
- goto get_groups
-
-
- :matmenu
- getmenu "GROUPS : Choose option",\
- $mat1,\
- $mat2,\
- $mat3,\
- $mat4,\
- $mat5,\
- $mat6,\
- $mat7,\
- $mat8
-
- on (@key + 3) goto leaveit,mainmenu,matmenu,,\
- s1,\
- s2,\
- s3,\
- s4,\
- s5,\
- s6,\
- s7,\
- s8
- goto mainmenu
- :s1
- CALL STRCPY ,$mat,$mat1
- goto setmater
- :s2
- CALL STRCPY ,$mat,$mat2
- goto setmater
- :s3
- CALL STRCPY ,$mat,$mat3
- goto setmater
- :s4
- CALL STRCPY ,$mat,$mat4
- goto setmater
- :s5
- CALL STRCPY ,$mat,$mat5
- goto setmater
- :s6
- CALL STRCPY ,$mat,$mat6
- goto setmater
- :s7
- CALL STRCPY ,$mat,$mat7
- goto setmater
- :s8
- CALL STRCPY ,$mat,$mat8
- goto setmater
-
- :setmater
- set devin, matter.dat
- input "%s %s %s %s %s",$dum1,$dum2,$dum3,$dum4,$dum5
- input "%s %s %s %s %s",$dum1,$dum2,$dum3,$dum4,$dum5
- iset = 0
- :loop
- INPUT "%s %f %f %f %d",$tmpstr,dens,diffuse,specular,reflect
- CALL STRCMPI ,$mat,$tmpstr,r
- if (r != 0 )
- goto nextone
- print "\nMATERIAL %d,%s",grp1,$mat
- print "\nDENSITY %d, %f",grp1,dens
- print "\nDIFFUSE %d, %f",grp1,diffuse
- print "\nSPECULAR %d, %f",grp1,specular
- print "\nREFLECTIVITY %d, %d",grp1,reflect
- iset = 1
- goto mainmenu
- :nextone
- if ( @nread != 0 )
- goto loop
- goto mainmenu
-
- :velomenu
- tmp = 1.0
- GETFLT "Enter x angular velocity of current group =>",tmp,xvel
- on ( @key + 3 ) goto leaveit,mainmenu,velomenu,
- print "\nANGVX %d,%f",grp1,xvel
-
- :yveloc
- GETFLT "Enter y angular velocity of current group =>",tmp,yvel
- on ( @key + 3 ) goto leaveit,velomenu,yveloc,
- print "\nANGVY %d,%f",grp1,yvel
-
- :zveloc
- GETFLT "Enter z angular velocity of current group =>",tmp,zvel
- on ( @key + 3 ) goto leaveit,yveloc,zveloc,
- print "\nANGVZ %d,%f",grp1,zvel
- goto mainmenu
-
- :density
- tmp = 1.0
- GETFLT "Enter density of current group (%f) =>",tmp,dens
- on ( @key + 3 ) goto leaveit,mainmenu,density,
- if ( dens > 0.0 )
- print "\nDENSITY %d,%f",grp1,dens
- if ( dens >= 0.0)
- goto mainmenu
- pause "Invalid density entered"
- goto density
-
- :awdens
- tmp = 1.0
- GETFLT "Enter area weighted density of current group (%f) =>",tmp,awd
- on ( @key + 3 ) goto leaveit,mainmenu,awdens,
- if ( awd >= 0.0)
- print "\nAWDENSITY %d,%f",grp1,awd
- if ( awd >= 0.0)
- goto mainmenu
- awd = tmp
- pause "Invalid area weighted density entered"
- goto awdens
-
- :shadmenu
- getmenu "GROUPS : Choose option",\
- "DIFFUSE",\
- "SPECULAR",\
- "REFLECT",\
-
- on (@key + 3) goto leaveit,mainmenu,shadmenu,,\
- diff,\
- spec,\
- ref
- goto mainmenu
-
- :diff
- tmp = 0.7
- GETFLT "Enter diffuse coefficient of current group (%f) =>",tmp,diffuse
- on ( @key + 3 ) goto leaveit,shadmenu,diff,
- if ( ( diffuse < 0.0 ) || ( diffuse > 1.0 ) )
- goto baddiff
- print "\nDIFFUSE %d,%f",grp1,diffuse
- goto shadmenu
- :baddiff
- pause "Invalid diffuse value entered"
- goto diff
- :spec
- tmp = 0.2
- GETFLT "Enter specular coefficient of current group (%f) =>",tmp,specular
- on ( @key + 3 ) goto leaveit,shadmenu,spec,
- if ( ( specular < 0.0 ) || ( specular > 1.0 ) )
- goto badspec
- print "\nSPECULAR %d,%f",grp1,specular
- goto shadmenu
- :badspec
- pause "Invalid specular value entered"
- goto spec
-
- :ref
- tmp = 5
- GETINT "Enter reflectivity coefficient of current group (%d) =>",tmp,reflect
- on ( @key + 3 ) goto leaveit,shadmenu,ref,
- if ( ( reflect < 0 ) || ( reflect > 200 ) )
- goto badref
- print "\nREFLECTIVITY %d,%f",grp1,reflect
- goto shadmenu
- :badref
- pause "Invalid reflectivity coefficient entered"
- goto ref
-
- :getout
- $ts = "sol.grp"
- getstr "GROUPS : Enter group information file name (%s) => ",$ts,$anname
- on (@key + 3 ) goto leaveit,mainmenu,makeit
-
- :makeit
- sprint $str,"copy tmp.grp %s \n", $anname
- exec 1, $str
-
- :leaveit
- clear tmp,xvel,yvel,zvel,diffuse,specular,reflect,grp1,$ts,$anname,$str
- clear dens,awd
- clear $mat1,$mat2,$mat3,$mat4,$mat5,$mat6,$mat7,$mat8
- clear $dum1,$dum2,$dum3,$dum4,$dum5,$tmpstr
-