!****h* Control/Main ! NAME ! Main -- Base Varkon 'main' routine to control NGB model generation. ! [Main.MBS] ! DESCRIPTION ! The file 'Control.MBS' should be cut and pasted into the interactive ! active project file named 'Control()'. See the Control() documentation ! for more information. 'Control' calls this MBS file. ! ! The steps performed in this module are: ! * Set-Up Layers & Initialize Arrays ! * Set up Cross-Section Curves ! * Develop the Hull Surface ! * Develop the 'lines' of the glideboat with b_plane curve intersects ! * Plot 15" oc Station Section ! * Develop Keel Board Drawing from model ! * Develop Station Mold Drawings from model ! * Develop Stem Mold Drawing from model ! * Develop Transom Drawing from model ! * Develop Valve Detail Drawing from model ! * Develop Floor Support Drawing from model ! * Develop Floor Rail Drawing from model ! * Develop Typical Gunwale (inwale & outwale) ! ! The following lists provide sub-topic breakdown for selected ! steps listed above. ! ! Layers & Array Initialization ! ! Steps are as folows: ! * Set up layers for model ! * Transfer Pts to Pt to get zero index option ! * Create Views and set Scale Factor for plotted lineweight ! * Display Centerlines ! * 2-way Midplanes (These were used to generate cross-section views ! originally but ultimately line blanking was used instead) ! ! Cross-Section Curves ! ! Steps as follows: ! * Load point cloud for display of historical glideboat profile ! data comparison. NOTE: This command is commented out, but it ! may be uncommented if the address of the data file (which ! is distributed in the ./app/NGB directory) is updated for ! for your system in the PointCloud.MBS file. ! * Add Z offset to convert local planes into BASIC coordinates ! * Develop each Bezier Section Curve from 'Pt' array data ! ! Hull Surface ! ! To Develop the Hull Surface: ! * Initialize the longitudinal curve U-Values in a vector ! (This selects the inflection points and curve transition ! location) ! * Capture coordinates for longitudinal surface generation lines ! * Capture coordinates for Tangent surface generation lines for the ! longitudinals above the keel, Keel coordinates loaded #60 to #70 ! * Project longitudinal and tangent points onto Z-Plane beyond tip ! and replace last point, which was on the Tip Curve, with the point ! which intersects the Z-Plane. ! * First initialize Temporary vector CrvPts & NoPts for all ! longitudinal and tangential lines for conic lofting surface ! * Generate Longitudinals, including Generation of ! 'P' & P-value vectors needed to generate 'CubicCrv()' ! longitudinal and tangent curves. ! * Generate Tangent Lines for each ! longitudinal ! * Generate Hull Surface Spine ! * Generate a Hull Surface "P-value" lines ! * Generate the half-hull surface of the Guideboat ! * Generate the Tip Curve along the bicubic surface intersect with ! the X=0 plane ! * Get Layer for Fore and Aft Keelboard Edge ! * Pick up side-hull craft edges ! * Generate Transom Plane and transom ! * Place drain hole ! * Mirror Both Sides of the Glideboat ! * Mirror Both Surface Edges of the Glideboat ! * Transom hull intersect opposite edge ! ! Waterline Intersect Curves ! ! To develop the 'lines' of the glideboat: ! * Store all surface REFs in array for later referance ! * Generate faceted surfaces for rendered viewing ! * Call module to generate waterline intersect curves ! * Generate Rulers ! ! SOURCE GLOBAL GEOMETRY MODULE Main( VAR VECTOR Pts(8,7); ! Array containing control points FLOAT L);! Parametric Length of Boat !*** ! ! Copyright 2006, John J. Hughes (Email: n4yvt@arrl.net) ! ! This source code file is part of the 'NGBproject' files which ! execute interactively under the 'VARKON' program, which is ! distributed under the terms of the GNU General Public License. ! ! The 'NGBproject' files are also distributed under the terms of ! the GNU GeneralPublic License. See the GNU General Public License ! included ithe file name "COPYING.txt" in the Varkon ./app/NGB/doc ! directory for more details. ! ! NGB is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published ! by the Free Software Foundation; either version 2 of the License, ! or (at your option) any later version. ! ! NGB is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License included in the file name "COPYING.txt". ! ! You should have received a copy of the GNU General Public License ! along with NGB; if not, write to the Free Software Foundation, ! Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA VECTOR Pt(0:7,0:6),Long(0:4,1:6),Tangt(0:4,1:6),SpinePt(0:15), P_hull_keel,P_hull_shear,UV_keel,UV_shear,TransP(0:12), TransT(0:12),Points(13,3),tmpP,tmpMdPt,TipPts(13,3),tmpP2, StemPts(13),TransomTop(3),TmpTgt(6),TmpLng(6),TmpMid(6), CrvPts(13),Tgts(13),MidPts(13); INT CrdBlnk,StrnBlnk,AftBlnk,MidBlnk,ForeBlnk,Bow_XBlnk,Bow_CRVBlnk, Sect,Node,Longitudinal,i,u,v,NoPts; CONSTANT INT Coord=0,Stern=1,Aft=2,Mid=3,Fore=4,Bow_X=5,Bow_CRV=6, ZPlane=7,Shear=4,Keel=0,KeelBoard=7; FLOAT UVal(0:4),tmp1,tmp2,tmp3,TmpPval(5),PVal,PValues(13),Lspine, ZCrd,SF; STRING PFlag(0:4)*2, LevelStat(100,2)*24,TmpPstg(5)*1,PStg(13)*1; REF Lng(0:4),Tan(0:4),BowTip(4),Transom(0:1),Surface(0:5),tmpRef; BEGINMODULE !*********************************************************************** ! ~ * Set up layers for model !----------------------------------------------------------------------- part(#1,LevelInit(LevelStat)); part(#2,LevelSet("ConstLines","OFF",LevelStat)); part(#3,LevelSet("CenterLines","ON",LevelStat)); part(#4,LevelSet("PointCloud","OFF",LevelStat)); !Uncomment line#210 part(#5,LevelSet("Surf_Loft","OFF",LevelStat)); part(#6,LevelSet("ForeKeelBoardOtl","ON",LevelStat)); part(#7,LevelSet("AftKeelBoardOtl","ON",LevelStat)); part(#8,LevelSet("Surf_Bicubic","OFF",LevelStat)); part(#9,LevelSet("Surf_Facet","OFF",LevelStat)); part(#10,LevelSet("ForeCraftEdges","ON",LevelStat)); part(#11,LevelSet("AftCraftEdges","ON",LevelStat)); part(#12,LevelSet("AftLines","ON",LevelStat)); part(#13,LevelSet("ForeLines","ON",LevelStat)); part(#14,LevelSet("CmnLines","ON",LevelStat)); part(#15,LevelSet("CntrlCrvs","OFF",LevelStat)); part(#16,LevelSet("MidPlane","OFF",LevelStat)); part(#17,LevelSet("Drain","OFF",LevelStat)); part(#18,LevelSet("StemOtln","ON",LevelStat)); part(#19,LevelSet("StemHidden","ON",LevelStat)); part(#20,LevelSet("TransomOtln","ON",LevelStat)); part(#21,LevelSet("TransomHidden","ON",LevelStat)); part(#22,LevelSet("Ruler","ON",LevelStat)); part(#23,LevelSet("BowIsoParm","OFF",LevelStat)); ! ~ part(#23,LevelSet("StripLines","OFF",LevelStat)); !*********************************************************************** ! ~ * Transfer Pts to Pt to get ! ~ zero index option !----------------------------------------------------------------------- Pt:=Pts; !*********************************************************************** ! ~ * Create Views and Scale Factor !----------------------------------------------------------------------- cre_view("xy",vec(0,0,1)); cre_view("iso",vec(1,1,1)); cre_view("back",vec(0,0,-1)); cre_view("down",vec(0,1,0)); cre_view("115",vec(1,1,5)); perp_view("115",325); rep_view(); cre_view("side",vec(1,0,0)); SF:=24; !*********************************************************************** ! ~ * Display Centerlines !----------------------------------------------------------------------- part(#900,cmp("CenterLines",LevelStat,SF)); part(#35,CtrLn(vec(-24,-2.5,0),vec(24,-2.5,0),SF)); ! X-Axis part(#36,CtrLn(vec(0,-12,0),vec(0,30,0),SF)); ! Y-Axis part(#37,CtrLn(vec(0,-2.5,-12),vec(0,-2.5,200),SF)); ! Z-Axis !*********************************************************************** ! ~ * 2-way Midplanes (These were used to generate cross-section views ! ~ originally but ultimately line blanking was used instead) !----------------------------------------------------------------------- part(#910,ofc("MidPlane",LevelStat,SF)); b_plane(#40,vec(-30,-12,96),vec(30,-12,96),vec(30,24,96), vec(-30,24,96)); b_plane(#41,vec(-30,-12,96),vec(-30,24,96),vec(30,24,96), vec(30,-12,96)); !*********************************************************************** ! ~ * Load point cloud for display of historical glideboat profile data !----------------------------------------------------------------------- part(#1000,ofc("PointCloud",LevelStat,SF)); part(#50,PointCloud(0,35)); part(#1010,cns("ConstLines",LevelStat,SF)); ! Return to default layer !*********************************************************************** ! ~ * Add Z offset to convert local planes into BASIC coordinates !----------------------------------------------------------------------- FOR Sect:=Stern to Bow_X DO FOR Node:=0 to 5 DO Pt(Sect,Node).z:=Pt(Coord,Sect-1).z; ENDFOR; ENDFOR; !*********************************************************************** ! ~ * Develop each Bezier Section Curve from 'Pt' array data !----------------------------------------------------------------------- part(#1012,ofc("CntrlCrvs",LevelStat,SF)); part(#60,Bez6(Pt(Stern,0),Pt(Stern,1),Pt(Stern,2),Pt(Stern,3), Pt(Stern,4),Pt(Stern,5),Tangt(Keel,Stern)):BLANK=0); part(#62,Bez6(Pt(Aft,0),Pt(Aft,1),Pt(Aft,2),Pt(Aft,3), Pt(Aft,4),Pt(Aft,5),Tangt(Keel,Aft)):BLANK=0); part(#64,Bez6(Pt(Mid,0),Pt(Mid,1),Pt(Mid,2),Pt(Mid,3), Pt(Mid,4),Pt(Mid,5),Tangt(Keel,Mid)):BLANK=0); part(#66,Bez6(Pt(Fore,0),Pt(Fore,1),Pt(Fore,2),Pt(Fore,3), Pt(Fore,4),Pt(Fore,5),Tangt(Keel,Fore)):BLANK=0); part(#68,Bez6(Pt(Bow_X,0),Pt(Bow_X,1),Pt(Bow_X,2),Pt(Bow_X,3), Pt(Bow_X,4),Pt(Bow_X,5),Tangt(Keel,Bow_X)):BLANK=0); part(#70,Bez6(Pt(Bow_CRV,0),Pt(Bow_CRV,1),Pt(Bow_CRV,2), Pt(Bow_CRV,3),Pt(Bow_CRV,4),Pt(Bow_CRV,5), Tangt(Keel,Bow_CRV)):BLANK=0); ! ~ Reset lowest Bow curve tangent point parametrically since value ! ~ returned by Bez6() is not properly aligned. Tangt(Keel,Bow_CRV):=Pt(Bow_CRV,0)+vec(-0.25,-0.1,0); !*********************************************************************** ! ~ * Initialize the longitudinal curve U-Values in a vector ! ~ (This selects the inflection points and curve transition ! ~ location) !----------------------------------------------------------------------- UVal(0):= 0.0; UVal(1):= 2.0; UVal(2):= 5.0; UVal(3):= 7.0; UVal(4):= 10.0; !*********************************************************************** ! ~ * Capture coordinates for longitudinal surface generation lines !----------------------------------------------------------------------- FOR Longitudinal:=Keel to Shear DO Long(Longitudinal,Stern):= on(#60#530,UVal(Longitudinal)); Long(Longitudinal,Aft):= on(#62#530,UVal(Longitudinal)); Long(Longitudinal,Mid):= on(#64#530,UVal(Longitudinal)); Long(Longitudinal,Fore):= on(#66#530,UVal(Longitudinal)); Long(Longitudinal,Bow_X):= on(#68#530,UVal(Longitudinal)); Long(Longitudinal,Bow_CRV):= on(#70#530,UVal(Longitudinal)); ENDFOR; !*********************************************************************** ! ~ * Capture coordinates for Tangent surface generation lines for the ! ~ longitudinals above the keel, Keel coordinates loaded #60 to #70 !----------------------------------------------------------------------- FOR Longitudinal:=1 to Shear DO Tangt(Longitudinal,Stern):= on(#60#530,UVal(Longitudinal)-0.05); Tangt(Longitudinal,Aft):= on(#62#530,UVal(Longitudinal)-0.05); Tangt(Longitudinal,Mid):= on(#64#530,UVal(Longitudinal)-0.05); Tangt(Longitudinal,Fore):= on(#66#530,UVal(Longitudinal)-0.05); Tangt(Longitudinal,Bow_X):= on(#68#530,UVal(Longitudinal)-0.05); Tangt(Longitudinal,Bow_CRV):=on(#70#530,UVal(Longitudinal)-0.05); ENDFOR; !*********************************************************************** ! ~ * Project longitudinal and tangent points onto Z-Plane beyond tip ! ~ and replace last point, which was on the Tip Curve, with the point ! ~ which intersects the Z-Plane. !----------------------------------------------------------------------- FOR Longitudinal:=Keel to Shear DO ZCrd:=1.05*L; part(#80,ZPlanePt(ZCrd, Long(Longitudinal,Bow_X), Long(Longitudinal,Bow_CRV), Long(Longitudinal,Bow_CRV))); part(#84,ZPlanePt(ZCrd, Tangt(Longitudinal,Bow_X), Tangt(Longitudinal,Bow_CRV), Tangt(Longitudinal,Bow_CRV))); ENDFOR; !*********************************************************************** ! ~ * First initialize Temporary vector CrvPts & NoPts for all ! ~ longitudinal and tangential lines for conic lofting surface !----------------------------------------------------------------------- FOR i:=1 TO 10 DO CrvPts(i):=vec(0,0,0); ENDFOR; NoPts:=6; !*********************************************************************** ! ~ * Generate Longitudinals, including Generation of ! ~ 'P' & P-value vectors needed to generate 'CubicCrv()' ! ~ longitudinal and tangent curves. !----------------------------------------------------------------------- part(#1030,ofc("CntrlCrvs",LevelStat,SF)); part(#90,PInit(NoPts,0.2,0.6,0.2,PValues)); FOR Longitudinal:=Keel TO Shear DO FOR i:=1 TO NoPts DO CrvPts(i):=Long(Longitudinal,i); ENDFOR; part(#100,CubicCrv(NoPts,PValues,CrvPts)); ENDFOR; !*********************************************************************** ! ~ * Generate Tangent Lines for each ! ~ longitudinal !----------------------------------------------------------------------- FOR Longitudinal:= Keel to Shear DO FOR i:=1 TO NoPts DO CrvPts(i):=Tangt(Longitudinal,i); ENDFOR; part(#1048,ofc("CntrlCrvs",LevelStat,SF)); part(#160, CubicCrv(NoPts,PValues,CrvPts)); ENDFOR; !*********************************************************************** ! ~ * Generate Hull Surface Spine !----------------------------------------------------------------------- Lspine:=1.03*L; cur_conic(#170,"FREE", vec(0,-12,0), vec(0,-12,ZCrd),0.2, vec(0,-12,Lspine),vec(0,-12,Lspine+1)); !*********************************************************************** ! ~ * Generate a Hull Surface "P-value" lines !----------------------------------------------------------------------- mode_basic(); NoPts:=3; part(#179,PInit(NoPts,0.8,0.6,0.4,PValues)); CrvPts(1):=vec(0,0.65); !Stern Shear CrvPts(2):=vec(96,0.55); CrvPts(3):=vec(Lspine,0.3); !Bow Shear part(#180,CubicCrv(NoPts,PValues,CrvPts)); CrvPts(1):=vec(0,0.4); CrvPts(2):=vec(96,0.24); CrvPts(3):=vec(Lspine,0.05); part(#182,CubicCrv(NoPts,PValues,CrvPts)); CrvPts(1):=vec(0,0.4); CrvPts(2):=vec(96,0.25); CrvPts(3):=vec(Lspine,0.06); part(#184,CubicCrv(NoPts,PValues,CrvPts)); CrvPts(1):=vec(0,0.55); ! Stern Keel CrvPts(2):=vec(96,0.35); CrvPts(3):=vec(Lspine,0.2); ! Bow Keel part(#186,CubicCrv(NoPts,PValues,CrvPts)); mode_global(); !*********************************************************************** ! ~ * Generate the half-hull surface of the Guideboat !----------------------------------------------------------------------- part(#1060,ofc("Surf_Loft",LevelStat,SF)); sur_conic( #200, #170, #100.5#20, #160.5#20, ! Shear "P", #180#20, #100.4#20, #160.4#20, "P", #182#20, #100.3#20, #160.3#20, "P", #184#20, #100.2#20, #160.2#20, "P", #186#20, #100.1#20, #160.1#20); ! Keel part(#1070,ofc("Surf_Bicubic",LevelStat,SF)); sur_approx(#210,#200,"CUB_SUR", 1, 1, 1); part(#1080,cns("ConstLines",LevelStat,SF)); !Return to default !*********************************************************************** ! ~ * Generate the Tip Curve along the bicubic surface intersect with ! ~ the X=0 plane !----------------------------------------------------------------------- csys_1p(#202,"Tip_Intercept",vec(0,0,0),,-90); part(#1090,ifc("StemOtln",LevelStat,SF)); cur_int(#204,#210,#202); ! Tip Curve !*********************************************************************** ! ~ * Get Layer for Fore and Aft Keelboard Edge !----------------------------------------------------------------------- part(#1105,cns("ConstLines",LevelStat,SF)); cur_trim(#206,#100.1#20,0,2); ! Side part(#1110,cmp("ForeKeelBoardOtl",LevelStat,SF)); tmpP:=intersect(#100.1#20,#202); tmp1:=inv_on(#100.1#20,tmpP); cur_trim(#208,#100.1#20,2,tmp1); part(#1115,cns("ConstLines",LevelStat,SF)); !*********************************************************************** ! ~ * Pick up side-hull craft edges !----------------------------------------------------------------------- cur_iso(#212,#210,"V",0,0,5); cur_approx(#214,#212,"CUB_SEG",1,1); part(#1120,ifc("AftCraftEdges",LevelStat,SF)); cur_trim(#216,#214,0,2.0); part(#1130,ifc("ForeCraftEdges",LevelStat,SF)); tmpP:=intersect(#214,#202); tmp1:=inv_on(#214,tmpP); cur_trim(#220,#214,2,tmp1); part(#1046,cns("ConstLines",LevelStat,SF)); !*********************************************************************** ! ~ * Generate Transom Plane and transom !----------------------------------------------------------------------- csys_3p(#350,"Transom",vec(0.0,-2.5,2.0), vec(8.0,-2.5,2.0),vec(0.0,22.0,0.0)); cre_view("Transom",#350); !Create normal view of transom mode_local(#350); b_plane(#352,vec(-12.0,-3.0,1.25),vec(12.0,-3.0,1.25), vec( 12.0,24.0,1.25),vec(-12.0,24.0,1.25)); !Forward edge Plane cur_int(#360,#210,#350); ! Transom & side hull intersection part(#1136,ifc("TransomOtln",LevelStat,SF)); cur_approx(#362,#360,"CUB_SEG",1,1); part(#1138,cns("ConstLines",LevelStat,SF)); !Return to default cur_int(#354,#210,#352); !Forward edge of transom part(#1140,ifc("TransomHidden",LevelStat,SF)); part(#1141,DshLn(SF)); cur_approx(#355,#354,"CUB_SEG",1,1); part(#1150,cns("ConstLines",LevelStat,SF)); !Return to default tmpP:=intersect(#206,#350); !Trim keelboard to transom tmp1:=inv_on(#206,tmpP); part(#1152,cmp("AftKeelBoardOtl",LevelStat,SF)); cur_trim(#364,#206,tmp1,2); part(#1154,cns("ConstLines",LevelStat,SF)); !Return to default tmpP:=on(#362,0.0); tmpP2:=on(#364,0.0); lin_free(#368,vec(0.0,tmpP.y,0.0),vec(0.0,tmpP2.y,0.0)); part(#1160,ofc("Surf_Bicubic",LevelStat,SF)); sur_ruled(#369,#362,#368); !Transom Surface sur_approx(#370,#369,"CUB_SUR",1,1); !Convert to bicubic part(#1170,cns("ConstLines",LevelStat,SF)); !Return to default ! ~ TransomOtln ! ~ TransomHidden ! ~ ------------------- cur_iso(#372,#370,"U",0,0,1); part(#1180,ifc("TransomOtln",LevelStat,SF)); cur_approx(#375,#372,"CUB_SEG",1,1); !Top edge of transom part(#1190,cns("ConstLines",LevelStat,SF)); !Return to default cur_iso(#376,#370,"U",7,0,1); part(#1109,ifc("TransomOtln",LevelStat,SF)); cur_approx(#377,#376,"CUB_SEG",1,1); !Bottom edge of transom part(#1200,cns("ConstLines",LevelStat,SF)); !Return to default !*********************************************************************** ! ~ * Place drain hole !----------------------------------------------------------------------- part(#1210,ifc("Drain",LevelStat,SF)); arc_1pos(#382,vec(0,2.5,0),1); part(#1220,cns("ConstLines",LevelStat,SF)); !Return to default mode_global(); !*********************************************************************** ! ~ * Mirror Both Sides of the Glideboat !----------------------------------------------------------------------- tform_mirr(#400,vec(0,0,0),vec(0,0,183),vec(0,24,0)); tcopy(#410,#210,#400); ! Bicubic hull surface tcopy(#430,#370,#400); ! Bicubuic Transom surface !*********************************************************************** ! ~ * Mirror Both Surface Edges of the Glideboat !----------------------------------------------------------------------- tcopy(#440,#216,#400); ! Aft Side hull top edge tcopy(#441,#220,#400); ! Fore Side hull top edge tcopy(#442,#364,#400); ! Aft Keelboard edge tcopy(#443,#208,#400); ! Fore Keelboard edge tcopy(#444,#375,#400); ! Transom Top Edge tcopy(#445,#362,#400); ! Transom Side Edge tcopy(#446,#377,#400); ! Transom Bottom Edge tcopy(#447,#355,#400); ! Transom Forward Edge !*********************************************************************** ! ~ * Transom hull intersect opposite edge !----------------------------------------------------------------------- cur_int(#448,#410,#350); ! Transom & side hull intersection part(#1230,cns("ConstLines",LevelStat,SF)); !Return to default !*********************************************************************** ! ~ * Store all surface REFs in array for later referance !----------------------------------------------------------------------- Surface(0):= global_ref(#210); ! bicubic side hull Surface(1):= global_ref(#370); ! Transom plane surface Surface(2):= global_ref(#410); ! bicubic side hull (mirror) Surface(3):= global_ref(#430); ! Transom planes surface (mir) !*********************************************************************** ! ~ * Generate faceted surfaces for rendered viewing !----------------------------------------------------------------------- part(#1240,pce("Surf_Facet",LevelStat,SF)); FOR i:=0 TO 3 DO sur_approx(#450,Surface(i),"FAC_SUR", 1, 3, 3); ENDFOR; part(#1250,cns("ConstLines",LevelStat,SF)); !Return to default !*********************************************************************** ! ~ * Call module to generate waterline intersect curves !----------------------------------------------------------------------- part(#500,Waterline(Surface,LevelStat)); !*********************************************************************** ! ~ Call module to develop stem pattern linework !----------------------------------------------------------------------- part(#1254,pce("StemHidden",LevelStat,SF)); part(#1256,DshLn(SF)); part(#510,StemPattern(Surface,LevelStat)); !*********************************************************************** ! ~ * Generate Rulers !----------------------------------------------------------------------- part(#1260,ofc("Ruler",LevelStat,SF)); part(#570,Ruler(vec(-24,30,0),vec(24,-8.5,200),1,"IMPERIAL","INCH")); part(#1270,cns("ConstLines",LevelStat,SF)); !Return to default !*********************************************************************** ! ~ * Check Isoparametric curves at bow !----------------------------------------------------------------------- part(#1280,cns("BowIsoParm",LevelStat,SF)); !Return to default sur_trim(#580,#200, 0.0, 5.0, 0.0, 4.0); part(#590,s_isovpar(global_ref(#580),48)); ENDMODULE !*********************************************************************** ! ~ * Miscellaneous cut-paste debug tool listings !----------------------------------------------------------------------- ! ~ part(#1000,ofc("Surf_Loft",LevelStat,SF)); ! ~ part(#1010,cns("ConstLines",LevelStat,SF)); !Return to default ! ! ~ lst_ini("MAIN"); ! Debug Listing ! ~ FOR i:=1 TO 7 DO ! ~ lst_lin(str(CrvPts(i).y)); ! ~ ENDFOR; ! ~ lst_exi(); ! ! ~ lst_ini("MAIN"); ! Debug Listing ! ~ lst_lin(str(tmpP.y)); ! ~ lst_lin(str(tmpP.y)); ! ~ lst_lin(str(tmp1)); ! ~ lst_exi();