Sub Project_38_EN(ByVal VecType, m, n, m1, n1 As Integer) ' 38_Paraboloid_EN ' Updated: 4/05/25 ' Created by: Daniela Ortiz, Fabian Gomez (13/12/24) ' Modified by: _________________ ' This is the code of your new project. ' Steps to embed the code to ScienSolar: ' Note 1: The number 38 in the name of this function must match the one in the list of the CONFIG sheet for this project. If not, please correct it. ' Note 2: This code will be integrated into the main code (into the VBA editor) to automate the download of the project. ' Note 3: The formulas and cell values generated here correspond only to the first 30 columns in the sheet. All your formulas and values are recommended to be written in these columns. ' Step 1. Go to the CONFIG sheet (at the end of column C) and add the number of your new project to the last row in the projects list, and a short name in the corresponding langage column. ' Step 2. Make sure that the list of projects in CONFIG sheet has the correct ascending numbering. ' Step 4. Open the VBA editor (Alt + F11 in Windows or Fn + Option + F11 in macOS). To avoid mistakes, make sure you only have one workbook open. ' Step 5. On the left, in the project explorer, select a non full module (or add a new one). ' Step 6. Select all the code in this file, copy and paste it at the end of the existing code in the module (or in the new one). ' Step 7. To load the project and to check it in a new sheet, go to the CONFIG sheet and click the New Sheet button, then select the project from the list and click the +Vector button. ' Step 8. Click any XYZ button to get the project in the coordinate system. Enjoy it! ' Visit www.sciensolar.com for news and updates of © ScienSolar. Cells(m1 -1, n1 + 2).FormulaR1C1 ="1" Cells(m1 - 1, n1 ).Value = "" Cells(m1 + 0, n1 + 2).FormulaR1C1 ="=CONFIG!R3C4" Cells(m1 + 0, n1 + 3).FormulaR1C1 ="900" Cells(m1 + 0, n1 + 6).FormulaR1C1 ="=CONFIG!R3C8" Cells(m1 + 0, n1 + 7).FormulaR1C1 ="=CONFIG!R3C9" Cells(m1 + 0, n1 + 8).FormulaR1C1 ="Daniela Ortiz, Fabian Gomez (13/12/24)" Cells(m1 + 1, n1 + 2).FormulaR1C1 ="=CONFIG!R4C4" Cells(m1 + 1, n1 + 3).FormulaR1C1 ="500" Cells(m1 + 1, n1 + 4).FormulaR1C1 ="=CONFIG!R4C6" Cells(m1 + 1, n1 + 5).FormulaR1C1 ="0" Cells(m1 + 1, n1 + 6).FormulaR1C1 ="=CONFIG!R4C8" Cells(m1 + 1, n1 + 7).FormulaR1C1 ="=CONFIG!R4C9" Cells(m1 + 2, n1 + 0).FormulaR1C1 ="t = 2,617188 s." Cells(m1 + 2, n1 + 2).FormulaR1C1 ="=CONFIG!R5C4" Cells(m1 + 2, n1 + 3).FormulaR1C1 ="5" Cells(m1 + 2, n1 + 4).FormulaR1C1 ="=CONFIG!R5C6" Cells(m1 + 2, n1 + 5).FormulaR1C1 ="15" Cells(m1 + 2, n1 + 6).FormulaR1C1 ="=CONFIG!R5C8" Cells(m1 + 2, n1 + 7).FormulaR1C1 ="=CONFIG!R5C9" Cells(m1 + 3, n1 + 0).FormulaR1C1 ="A" Cells(m1 + 3, n1 + 1).FormulaR1C1 ="15" Cells(m1 + 3, n1 + 2).FormulaR1C1 ="=CONFIG!R6C4" Cells(m1 + 3, n1 + 3).FormulaR1C1 ="=CONFIG!R6C5" Cells(m1 + 3, n1 + 4).FormulaR1C1 ="=CONFIG!R6C6" Cells(m1 + 3, n1 + 5).FormulaR1C1 ="15" Cells(m1, n1 + 9).FormulaR1C1 = "HELP" Dim HELPtxt as String HELPtxt = "HELP Comment:" & Chr(10) & _ " 1. To create new projects, press the +Vector button without selecting any project in the project list." & Chr(10) & _ " 2. To load an existing project, select a project from the list and then press +Vector" & Chr(10) & _ " 3. To export a new project, press the Get Code button. The code will be saved on your PC in the same directory where this file is located." & Chr(10) & _ " " & Chr(10) & _ " If necessary, use this comment to create your own HELP comment for your project. To do this, simply replace this text with your own (Right Click, Edit Comment) and avoid special characters." & Chr(10) & _ " After pressing Get Code, your comment will be updated and saved in the same txt file as your project and will be uploaded after the project appears in ScienSolar.To include the new project in ScienSolar, perform the following steps:" & Chr(10) & _ " a) Open the txt file where the project was saved; b) copy all the contents of the file and paste it in the VBA Editor of the Excel file ScienSolar; c) add the project name and number to the list on the CONFIG sheet; d) Verify that the number is correlative and that it agrees with the project header number, if not modify it in the header or in the list as necessary." & Chr(10) & _ " Right click to delete or edit this comment." & Chr(10) & _ " " & Chr(10) & _ " For documentation on ScienSolar, please visit www.sciensolar.com. ScienSolar was designed for 3D physics modeling in MS Excel.It is normal that for some projects it takes time to load it in the sheet, it depends on the number of objects in your project and the performance of your PC." On Error Resume Next Cells(m1 , n1 + 9).Comment.Text Text:= HELPtxt If m = m1 + 0 Then ' vector 2 Cells(m + 3, n + -1).FormulaR1C1 ="1" Cells(m + 3, n + 0).FormulaR1C1 ="A" Cells(m + 3, n + 1).FormulaR1C1 ="15" Cells(m + 3, n + 2).FormulaR1C1 ="=CONFIG!R6C4" Cells(m + 3, n + 3).FormulaR1C1 ="=CONFIG!R6C5" Cells(m + 3, n + 4).FormulaR1C1 ="=CONFIG!R6C6" Cells(m + 3, n + 5).FormulaR1C1 ="15" Cells(m + 4, n + -1).FormulaR1C1 ="1" Cells(m + 4, n + 0).FormulaR1C1 ="183" Cells(m + 4, n + 1).FormulaR1C1 ="=""o[""&R[6]C[4]&""]x=[-""&R[5]C[4]/2&"";""&R[5]C[4]/2&""]o2[""&R[6]C[4]&""]y=[-""&R[4]C[4]/2&"";""&R[4]C[4]/2&""]o3[0,5]z=[0;0]color=[""&R[7]C[4]+R[10]C[4]&""]origin[cart.]=[0;0;0]tfactor=0,002602243s""" Cells(m + 4, n + 2).FormulaR1C1 ="PARABOLOID" Cells(m + 4, n + 12).FormulaR1C1 ="PARABOLOID CONSTRUCTOR" Cells(m + 4, n + 24).FormulaR1C1 ="INSTRUCTIONS" Cells(m + 5, n + -1).FormulaR1C1 ="677" Cells(m + 5, n + 0).FormulaR1C1 ="1" Cells(m + 5, n + 1).FormulaR1C1 ="0.3" Cells(m + 7, n + -1).FormulaR1C1 ="=R[1]C" Cells(m + 7, n + 0).FormulaR1C1 ="=R[1]C" Cells(m + 7, n + 1).FormulaR1C1 ="=R[1]C" Cells(m + 7, n + 4).FormulaR1C1 ="Dimensions (cm):" Cells(m + 7, n + 21).FormulaR1C1 =" THEORETICAL FRAMEWORK " Cells(m + 8, n + -1).FormulaR1C1 ="50" Cells(m + 8, n + 0).FormulaR1C1 ="50" Cells(m + 8, n + 1).FormulaR1C1 ="0" Cells(m + 8, n + 4).FormulaR1C1 ="Length:" Cells(m + 8, n + 5).FormulaR1C1 ="100" Cells(m + 9, n + -1).FormulaR1C1 ="0" Cells(m + 9, n + 0).FormulaR1C1 ="0" Cells(m + 9, n + 1).FormulaR1C1 ="=R[4]C[2]*R[-1]C[-2]^2+R[5]C[2]*R[-1]C[-1]^2+R[2]C[4]" Cells(m + 9, n + 2).FormulaR1C1 ="=IF(R[4]C[-1]>1,"" <-- Variable coordinates"","""")" Cells(m + 9, n + 4).FormulaR1C1 ="Width:" Cells(m + 9, n + 5).FormulaR1C1 ="100" Cells(m + 9, n + 21).FormulaR1C1 ="A paraboloid is a quadratic surface that can be either elliptic or hyperbolic. In this case, we" Cells(m + 10, n + -1).FormulaR1C1 ="1" Cells(m + 10, n + 0).FormulaR1C1 ="=R[9]C[5]" Cells(m + 10, n + 1).FormulaR1C1 ="1" Cells(m + 10, n + 2).FormulaR1C1 ="=IF(R[3]C[-1]>1,"" <-- Field formulae"","""")" Cells(m + 10, n + 4).FormulaR1C1 ="Step:" Cells(m + 10, n + 5).FormulaR1C1 ="4" Cells(m + 10, n + 21).FormulaR1C1 ="focus on the elliptic paraboloid, which has the shape of a parabolic ""dish"" extended in 3D" Cells(m + 11, n + -1).FormulaR1C1 ="6" Cells(m + 11, n + 0).FormulaR1C1 ="=R[9]C[5]" Cells(m + 11, n + 1).FormulaR1C1 ="1" Cells(m + 11, n + 4).FormulaR1C1 ="Height:" Cells(m + 11, n + 5).FormulaR1C1 ="5" Cells(m + 3, n + 1).Interior.Color = "13998939" Cells(m + 3, n + 1).Font.Size = "14" Cells(m + 3, n + 1).Font.name = "Calibri" Cells(m + 4, n - 1).Value = 1 Cells(m1 + 1, n1 + 1).Value = "f" Call AddNewVector end if ' vector ends If m = m1 + 9 Then ' vector 1 Cells(m + 3, n + -1).FormulaR1C1 ="2" Cells(m + 3, n + 0).FormulaR1C1 ="f" Cells(m + 3, n + 21).FormulaR1C1 =" General Equation of the Elliptic Paraboloid" Cells(m + 4, n + -1).FormulaR1C1 ="1" Cells(m + 4, n + 0).FormulaR1C1 ="146" Cells(m + 4, n + 2).FormulaR1C1 ="A =" Cells(m + 4, n + 3).FormulaR1C1 ="=1/(4*RC[2])" Cells(m + 4, n + 4).FormulaR1C1 ="Focus:" Cells(m + 4, n + 5).FormulaR1C1 ="65" Cells(m + 5, n + -1).FormulaR1C1 ="1" Cells(m + 5, n + 0).FormulaR1C1 ="1" Cells(m + 5, n + 1).FormulaR1C1 ="0.3" Cells(m + 5, n + 2).FormulaR1C1 ="B =" Cells(m + 5, n + 3).FormulaR1C1 ="=1/(4*R[-1]C[2])" Cells(m + 5, n + 4).FormulaR1C1 ="Gradient:" Cells(m + 5, n + 5).FormulaR1C1 ="20" Cells(m + 5, n + 21).FormulaR1C1 ="The standard equation of an elliptic paraboloid centered at the origin and aligned with the axes is: " Cells(m + 7, n + -1).FormulaR1C1 ="=R[2]C" Cells(m + 7, n + 0).FormulaR1C1 ="=R[2]C" Cells(m + 7, n + 1).FormulaR1C1 ="=R[2]C" Cells(m + 8, n + 2).FormulaR1C1 =" TABLE WITH HEIGHTS AT EACH POINT:" Cells(m + 8, n + 27).FormulaR1C1 ="(Eq-Parab-1)" Cells(m + 9, n + -1).FormulaR1C1 ="0" Cells(m + 9, n + 0).FormulaR1C1 ="0" Cells(m + 9, n + 1).FormulaR1C1 ="=1/(4*R[-5]C[2])+R[-7]C[4]" Cells(m + 9, n + 2).FormulaR1C1 =" (Example: Row=40, Col=10, then op. XYZ):" Cells(m + 10, n + -1).FormulaR1C1 ="1" Cells(m + 10, n + 0).FormulaR1C1 ="0" Cells(m + 10, n + 1).FormulaR1C1 ="1" Cells(m + 10, n + 2).FormulaR1C1 =" The table starts at:" Cells(m + 10, n + 4).FormulaR1C1 ="Row:" Cells(m + 10, n + 5).FormulaR1C1 ="0" Cells(m + 11, n + -1).FormulaR1C1 ="6" Cells(m + 11, n + 0).FormulaR1C1 ="0" Cells(m + 11, n + 1).FormulaR1C1 ="10" Cells(m + 11, n + 4).FormulaR1C1 ="Column:" Cells(m + 11, n + 5).FormulaR1C1 ="0" Cells(m + 3, n + 1).Interior.Color = "255" Cells(m + 3, n + 1).Font.Size = "12" Cells(m + 3, n + 1).Font.name = "Calibri" Cells(m + 4, n - 1).Value = 1 Cells(m1 + 1, n1 + 1).Value = "" Cells(m1 + 2, n1 - 1).Value = 2 end if ' vector ends If m = m1 + 9 Then Cells(m + 12, n + 21).FormulaR1C1 =" - f is the focal distance (G16). " Cells(m + 13, n + 21).FormulaR1C1 =" - h is the vertex height (G14). " Cells(m + 14, n + 21).FormulaR1C1 =" - x and y are the horizontal coordinates (A11 and B11). " Cells(m + 15, n + 21).FormulaR1C1 =" - In G17, enter the blue height for the gradient (red-yellow-green-blue). " Cells(m + 17, n + 21).FormulaR1C1 =" MODEL INSTRUCTIONS " Cells(m + 19, n + 21).FormulaR1C1 ="1. Input Data " Cells(m + 20, n + 21).FormulaR1C1 =" - Length (G11): Defines the extension along the x -axis. " Cells(m + 21, n + 21).FormulaR1C1 =" - Width (G12): Defines the extension along the y -axis. " Cells(m + 22, n + 21).FormulaR1C1 =" - Step (G13): Determines the surface resolution. " Cells(m + 23, n + 21).FormulaR1C1 =" - Height (G14): Sets the base height of the paraboloid. " Cells(m + 24, n + 21).FormulaR1C1 =" - Focus (G16): Controls how ""open"" or ""closed"" the paraboloid is (a smaller value results in a sharper curvature). " Cells(m + 26, n + 21).FormulaR1C1 ="2. Generate Table " Cells(m + 27, n + 21).FormulaR1C1 =" - The model will automatically compute the z -values (height) at different (x, y) points using the equation above. " Cells(m + 28, n + 21).FormulaR1C1 =" - To generate the table, set G22=40 and G23=10, then press XYZ to create the data. " Cells(m + 29, n + 21).FormulaR1C1 =" - To clear the table, press the button on the right (B6) before resetting G22 and G23. " Cells(m + 30, n + 21).FormulaR1C1 =" - To skip table generation, set G22=0 and G23=0. " Cells(m + 31, n + 21).FormulaR1C1 =" - The x and y values are taken from cells A11 and B11, respectively. " Cells(m + 33, n + 21).FormulaR1C1 =" 3. Visualization " Cells(m + 34, n + 21).FormulaR1C1 =" - Press XYZ to visualize changes. " Cells(m + 36, n + 21).FormulaR1C1 =" 4. Notes " Cells(m + 37, n + 21).FormulaR1C1 =" - To create a paraboloid with different curvatures along x and y , adjust constants E16 and E17. " Cells(m + 38, n + 21).FormulaR1C1 =" - Ensure the focus (G16) is not zero to avoid division errors. " Cells(m + 39, n + 21).FormulaR1C1 =" - The paraboloid can be constructed from any material (e.g., aluminum) by mounting tubes at the heights specified in the table onto a base plate and covering the top surface with a flexible, highly reflective material. " Call BlackWhiteDesk Call PutEqBut end if ' actualizar hoja End Sub