@rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT perl -x -S "%0" %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl if %errorlevel% == 9009 echo You do not have Perl in your PATH. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul goto endofperl @rem '; #!/usr/bin/perl #line 16 #### #### All Code by Steve Michel #### ### Accepts first Argument as file to evaluate if ($ARGV[0]){ $XYZFile = $ARGV[0] } ######### # Otherwise, the program will prompt the user for the name of the file that they wish to be manipulated. else { print "Enter the name of the file to convert to XY vector: "; $XYZFile = ; chomp($XYZFile); } if ($ARGV[1]){ $CadLWtemp = $ARGV[1] } else { print "Enter LW or CAD - "; $CadLWtemp = ; chomp($CadLWtemp); } #print ($CadLWtemp . " "); $test = "no good"; if ($CadLWtemp eq "CAD"){ $test = "good"; $CadLW = "CAD"; } if ($CadLWtemp eq "cad"){ $test = "good"; $CadLW = "CAD"; } if ($CadLWtemp eq "c"){ $test = "good"; $CadLW = "CAD"; } if ($CadLWtemp eq "LW"){ $test = "good"; $CadLW = "LW"; } if ($CadLWtemp eq "lw"){ $test = "good"; $CadLW = "LW"; } if ($CadLWtemp eq "l"){ $test = "good"; $CadLW = "LW"; } #print ($test . " "); if ($test eq "no good"){ $CadLW = "CAD"; } if ($test eq "no good"){ $DefaultChoice = "Default = "; } if ($test eq "good"){ $DefaultChoice = "choice = "; } print ($DefaultChoice . " " . $CadLW . " "); print "\n"; ### Splits filename.txt from path ### shoves filename into $XYZFileName my @split_XYZFile = split(/\\/, $XYZFile); my $XYZFileName = $split_XYZFile[$#split_XYZFile]; ### Splits filename.txt into filename ### shoves filename into $XYZFileRoot my @split_XYZFile2 = split(/\./, $XYZFile); my $XYZFileRoot = $split_XYZFile2[0]; open (FILEHANDLE, $XYZFile); while () { push(@lines,$_) } $listNum = @lines; open (FILEIN, ">" . $XYZFileRoot . "_" . $CadLW . "_temp.txt"); $Dele = "G01 "; $Delt = "F6"; $x = "X "; $y = "Y "; $z = "Z "; $lineNum = 0; open (FILEHANDLE, $XYZFile); while() { chomp; s/$Dele//g; s/$Delt//g; s///g; s/X/$x/g; s/Y/$y/g; s/Z/$z/g; # print FILEIN ($lineNum . " "); print FILEIN ("$_"); print FILEIN ("\n"); $lineNum = $lineNum + 1; } $loopNum = $lineNum; open (FILEOUT, ">" . $XYZFileRoot . "_" . $CadLW . ".dxf"); open (FILEIN, $XYZFileRoot . "_" . $CadLW . "_temp.txt"); while () { push(@splines,$_) } $listNum2 = @splines; #$CadLW $ScaleFactor = .0254; $ScaleFactor2 = .0254; if ($CadLW eq "LW"){ $ScaleFactor = .0254; $ScaleFactor2 = -0.0254; } if ($CadLW eq "CAD"){ $ScaleFactor = 1; $ScaleFactor2 = 1; } for ($Loop = 0; $Loop <= $loopNum; $Loop++){ chomp ($splines[$Loop]); $ThisLine = $splines[$Loop]; my @split_ThisLine = split(/,/, $ThisLine); $xVal[$Loop] = $split_ThisLine[0]; $yVal[$Loop] = $split_ThisLine[1]; $zVal[$Loop] = 0; $xVal[$Loop] = $xVal[$Loop] * $ScaleFactor; $yVal[$Loop] = $yVal[$Loop] * $ScaleFactor; print ($Loop . " "); print ("X=" . $xVal[$Loop] . " Y=" . $yVal[$Loop] . " Z=" .$zVal[$Loop] . " "); print ("\n"); } print FILEOUT ("0" . "\n"); print FILEOUT ("SECTION" . "\n"); print FILEOUT ("2" . "\n"); print FILEOUT ("HEADER" . "\n"); print FILEOUT ("999" . "\n"); print FILEOUT ("DXF File Generated by LightWave 3D(TM)" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("ENDSEC" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("SECTION" . "\n"); print FILEOUT ("2" . "\n"); print FILEOUT ("TABLES" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("ENDSEC" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("SECTION" . "\n"); print FILEOUT ("2" . "\n"); print FILEOUT ("BLOCKS" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("ENDSEC" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("SECTION" . "\n"); print FILEOUT ("2" . "\n"); print FILEOUT ("ENTITIES" . "\n"); print FILEOUT ("0" . "\n"); for ($Loop = 1; $Loop < $loopNum; $Loop++){ print FILEOUT ("LINE" . "\n"); print FILEOUT ("8" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("70" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("10" . "\n"); print FILEOUT ($xVal[$Loop-1] . "\n"); print FILEOUT ("20" . "\n"); print FILEOUT ($yVal[$Loop-1] . "\n"); print FILEOUT ("30" . "\n"); print FILEOUT ($zVal[$Loop-1] . "\n"); print FILEOUT ("11" . "\n"); print FILEOUT ($xVal[$Loop] . "\n"); print FILEOUT ("21" . "\n"); print FILEOUT ($yVal[$Loop] . "\n"); print FILEOUT ("31" . "\n"); print FILEOUT ($zVal[$Loop] . "\n"); print FILEOUT ("0" . "\n"); } print FILEOUT ("ENDSEC" . "\n"); print FILEOUT ("0" . "\n"); print FILEOUT ("EOF" . "\n"); __END__ :endofperl