MZ@ !L!This program cannot be run in DOS mode. $PELp-H!  Ρ @ @K  H.textԁ  `.rsrc@@.reloc @BH1o( *( *s s s s *0 ~o *0 ~o *0 ~o *0 ~o *0 ( ( *0( *0 ( *0( *0 -(+**0 *( *0( { o -(+ { o *J( s } *( *0 rp( *0 rOp*0rsp*0*0( *(! *0rp*0rp*0rp*0rp*0rp*0rp*0rp*0rp**>~,**(" *0r'p( *0rOp*0f(!rup rp(# rp(# r p(# rup(# rp(# rp(# rp(# rp(# rp(# rp(# rp(# r@p(# rvp(# rp(# rp(# rp(# rp(# rlp(# rp(# rp(# rp(# rp(# r4p(# r@p(# rp(# rp(# rp(# rp(# r\p(# rp(# r p(# r^ p(# r p(# rK p(# rp(# rp(# r} p(# r p(# r} p(# r p(# r p(# r7 p(# rq p(# r p(# r> p(# rp(# rp(# rp(# rX p(# rW p(# rp(# rp(# rp(# r p(# rHp(# rp(# rp(# r{p(# rp(# rp(# rp(# r p(# r=p(# rp(# rp(# r'p(# rp(# rp(# r> p(# rp(# rp(# rp(# rp(# rp(# rp(# rp(# r7p(# rp(# rp(# r1p(# rp(# r[p(# rp(# rNp(# r#p(# r[p(# rp(# rp(# r^p(# r-p(# rp(# rp(# rNp(# rp(# rp(# rup(# r6p(# rp(# rp(# rC p(# r !p(# r!p(# rV"p(# r"p(# r]#p(# r$p(# r$p(# rp%p(# r%p(# r[&p(# r&p(# r'p(# r"(p(# r(p(# rj)p(# r *p(# r*p(# r5+p(# r+p(# ri,p(# r-p(# r-p(# rx.p(# r3/p(# ru/p(# r0p(# r0p(# r1p(# rO2p(# r2p(# r3p(# rV4p(# r+5p(# rm5p(# r5p(# r[p(# r56p(# rw6p(# r>7p(# rp(# rp(# rH7p(# r7p(# rH7p(# r7p(# r*8p(# r\8p(# r8p(# rp(# r8p(# r8p(# r(9p(# rb9p(# r>7p(# r9p(# r9p(# r9p(# r:p(# r:p(# rn;p(# r;p(# r%<p(# r>7p(# rC<p(# r>7p(# r<p(# r<p(# rp(# rp(# rH7p(# r<p(# r=p(# rp(# rp(# r{=p(# r=p(# r>p(# rO>p(# r>p(# r<p(# rf?p(# r<p(# rr?p(# rp(# rp(# rp(# r?p(# r}@p(# r@p(# rAp(# r;Bp(# rBp(# rBp(# rOCp(# rCp(# r!Dp(# rDp(# rDp(# r_Ep(# r Fp(# rFp(# r6Gp(# rGp(# rdHp(# rHp(# rOIp(# rIp(# rJp(# rJp(# rKp(# r?Lp(# rLp(# r0Mp(# rp(# rp(# rH7p(# rMp(# r=p(# rp(# rMp(# r1Np(# rUNp(# rNp(# r9p(# rNp(# rn;p(# rNp(# r%<p(# r3Op(# r>7p(# rOp(# rOp(# rOp(# rWPp(# r>7p(# r>7p(# riPp(# r<p(# rPp(# rp(# rp(# rp(# rPp(# rAQp(# rRp(# rRp(# rKSp(# rSp(# r>Tp(# rp(# rTp(# rTp(# rTp(# r Up(# rp(# rp(# rZUp(# rnUp(# rVp(# rVp(# r Wp(# rWp(# rWp(# rWp(# rXp(# rMXp(# rXp(# rXp(# r)Yp(# rsYp(# rYp(# rYp(# rZp(# rmZp(# rZp(# rZp(# rZp(# rYp(# r[p(# rZp(# rmZp(# rZp(# rZp(# rE[p(# ra[p(# r[p(# r[p(# r[p(# rMXp(# rS\p(# r\p(# r[p(# r\p(# rp(# rC]p(# rU]p(# r]p(# r]p(# r%^p(# ro^p(# r^p(# r<p(# r^p(# r^p(# r^p(# ($ o% &*BSJB v2.0.50727l#~\#StringsL^#USHm#GUIDXm|#BlobW 3! %''   P2`Y 6Y Y/'<i 7\FuF  #X;mYY 6JWYelmm)7:7 E7 O ] x-  1"1{ 1-1:1G!P ,X ,` g n ( 5 B F!c!F*h!;l4!FCqH!Lxd!j!,!~!,!,!F !Fq"F!q"FM,"F\h@",H"Fq\"Fqp"Fq"Fq"Fq"Fq"Fq"Fq"g"#,#F$#Fq8#F3(aa> ,,,,,$,,,4,<,$~,~4~<~,,,g!c*h)tCq,,DLL L,,9,A,\hY,a,^5v;@,L ,)I.;Z.3Q@+@CCI5cciZ+s{!++#++ + #s@@+``++++++ lp{)0p)FPO TY^  uu  Y ___-- mscorlibMicrosoft.VisualBasicMyApplicationMyMyComputerMyProjectMyWebServicesThreadSafeObjectProvider`1MonkeyScriptWrapperPluginPlugInAttributesLibraryLoader_403da96d_8a8a_44bc_927a_9888e1dc3d29TheMembranes24ExportCommandMicrosoft.VisualBasic.ApplicationServicesApplicationBase.ctorMicrosoft.VisualBasic.DevicesComputerSystemObject.cctorget_Computerm_ComputerObjectProviderget_Applicationm_AppObjectProviderUserget_Userm_UserObjectProviderget_WebServicesm_MyWebServicesObjectProviderApplicationWebServicesEqualsoGetHashCodeTypeGetTypeToStringCreate__Instance__TinstanceDispose__Instance__get_GetInstanceMicrosoft.VisualBasic.MyServices.InternalContextValue`1m_ContextGetInstanceRhino_DotNetRMA.RhinoMRhinoUtilityPlugInGuidPlugInIDPlugInNamePlugInVersionIRhinoPlugInplugin_load_timePlugInLoadTimeOnLoadPlugInMRhinoPlugInAttributesAddressCountryEmailFaxOrganizationPhoneUpdateURLWebsitem_LoadedLoadLibrariesMRhinoScriptCommandCommandUUIDEnglishCommandNameIRhinoCommandresultIRhinoCommandContextRunCommandcontextSystem.ComponentModelEditorBrowsableAttributeEditorBrowsableStateSystem.CodeDom.CompilerGeneratedCodeAttributeSystem.DiagnosticsDebuggerHiddenAttributeMicrosoft.VisualBasic.CompilerServicesStandardModuleAttributeHideModuleNameAttributeSystem.ComponentModel.DesignHelpKeywordAttributeSystem.Runtime.CompilerServicesRuntimeHelpersGetObjectValueRuntimeTypeHandleGetTypeFromHandleActivatorCreateInstanceMyGroupCollectionAttributeget_Valueset_ValueSystem.Runtime.InteropServicesComVisibleAttributeMRhinoPlugInStringConcatRhUtilMRhinoAppRhinoAppRunScriptCompilationRelaxationsAttributeRuntimeCompatibilityAttributeMembranes24ExportMembranes24Export.dllM{403da96d-8a8a-44bc-927a-9888e1dc3d29}#Membranes24Export 1.0.0 MunichGermany)info@membranes24.com'www.membranes24.com5http://www.membranes24.comM{07f4f376-ebb8-48c7-bcb8-138d75cdf860}#! -_RunScript ( #Option Explicit O'Script written by <Johannes Linhard> g'Script version Mittwoch, 30. April 2008 17:11:16 Call Main() Sub Main()  ' Copyright M Dim strCopyrightMessage, strMessage strCopyrightMessage = "Membranes24Export for Rhino4.0 - copyright www.membranes24.com" I Rhino.Print (strCopyrightMessage)  ! ' Select mesh 5 Dim strMeshID,strResult Dim arrFaces, arrVertices, arrEdges, numElm, numNod, idObjects  Dim strText strMeshID = Rhino.GetObject("Select a mesh for export to Membranes24.com", 32, True, True) ; If IsNull(strMeshID) Then Y strMessage = "No mesh select - exiting" C Rhino.MessageBox (strMessage)  Exit Sub  End If Q Rhino.MeshQuadsToTriangles(strMeshID) ] arrFaces = Rhino.MeshFaces(strMeshID, True) ] arrVertices = Rhino.MeshVertices(strMeshID) _ arrEdges = Rhino.MeshFaceVertices(strMeshID) S If Not IsArray(arrFaces) Then Exit Sub W ' Determine number of elements and nodes U numElm =Rhino.MeshFaceCount (strMeshID) [ numNod = Rhino.MeshVertexCount (strMeshID) strText = "No. of elements: " &numElm & ", No. of nodes: " &numNod 1 Rhino.Print (strText) 9 ' ----------------------- A ' Maximum allowed node number  Dim maxNod ! maxNod = 1000 9 If (numNod > maxNod) Then strText = "Too many nodes - max. number allowed: " & CStr(maxNod) ? Rhino.MessageBox (strText)  Exit Sub strResult = Rhino.GetString("Select a filter for boundary nodes selection...", "All", Array("All", "Interior", "Exterior")) idObjects = GetMeshNodes(strMeshID, "Select fixed nodes", strResult) _ ' Prompt the user to specify a file name ; Dim strFilter, strFileName _ strFilter = "Membranes24 File (*.m24)|*.m24" strFileName = Rhino.SaveFileName("Save Membranes24-file as", strFilter) O If IsNull(strFileName) Then Exit Sub ? ' Get the file system object 1 Dim objFSO, objStream u Set objFSO = CreateObject("Scripting.FileSystemObject") C ' Open a text file to write to / On Error Resume Next w Set objStream = objFSO.CreateTextFile(strFileName, True)  If Err Then 5 MsgBox Err.Description C objStream.WriteLine("PC-HEAD") c objStream.WriteLine(" RHINO EXPORT ") Q objStream.WriteLine(" TEST") C objStream.WriteLine("PC-DATA")  objStream.WriteLine(" NUMEG = 1 : NUMBER OF ELEMENT GROUPS") objStream.WriteLine(" NUMSTEP = 1 : NUMBER OF LOAD STEPS") 7 objStream.WriteLine("C") objStream.WriteLine(" IDFG=1 : 1 = GENERATE DFG-FILE (DEFORMED GEOMETRY)")  objStream.WriteLine(" DESIGN = 0 : FEM-GENERATION WITH DESIGN-ELEMENTS (1=ON 0=OFF)")  objStream.WriteLine(" NUMNP = " & CStr(numNod) & " : NUMBER OF NODES") objStream.WriteLine(" MODEX=111 : EXECUTION CONTROL (INPUT-CALCULATION-OUTPUT)")  objStream.WriteLine(" IPRE=0 : DATA BACKUP (0=OFF 1=AFTER INPUT 2=AFTER CALCULATION)") objStream.WriteLine(" NUMDF=3 : NUMBER OF DEGREES OF FREEDOM PER NODE (FIXED VALUE)") objStream.WriteLine(" IOPT=0 : 0 = NO STRUCTURAL OPTIMIZATION") objStream.WriteLine(" IMOD=1 : 0 = EXT. CONTROLLER PROGRAMM 1=STATIC 2=DYNAMIC") objStream.WriteLine(" IKIN=3 : NONLINEAR KINMATICS (1=LINEAR 3=LARGE)") objStream.WriteLine(" IMAT=1 : MATERIAL (1=LINEAR 2=NONLINEAR)") objStream.WriteLine(" ITER=1 : EQUILIBRIUM ITERATIONS (0=OFF 1=YES)") objStream.WriteLine(" IEIG=0 : EIGENVALUE ANALYSIS (0=OFF 1=LINEAR 2=ACCOMPANYING)") objStream.WriteLine(" IRES=0 : RESTART-DATA (0=OFF 1=ALL STEPS 2=LAST STEP)")  objStream.WriteLine(" RESNUM=0 : RESTART WITH STEP N") objStream.WriteLine(" SSMOOTH=0 : SMOOTHING OF STRESSES (0=OFF 1=AVERAGING OF NODAL VALUE") objStream.WriteLine(" IPFM=1 : SKYLINE-OPTIMIZER (0=OFF 1=ON)")  objStream.WriteLine(" STRNOD=3 : 1=STRESSES AT GAUSSIAN POINTS 2=EXTRAPOL. 3=1+2") objStream.WriteLine(" ISUB=0 : SUBSTRUCTURES (0=OFF 1=GENERATE 2=APPLY)") objStream.WriteLine(" ICOP=0 : COUPLING OF NODES END") E objStream.WriteLine("PC-PRINT")  objStream.WriteLine(" NODES_COOR_BOUN :_EQUA_COUP_LOCAL_FULL_BOUN") objStream.WriteLine(" ELEMENT_STRESS_ECHO :_ECHO_NOSTRESS_ECHO_NOECHO") objStream.WriteLine(" CONTROL_FULL :_FULL_OFF_PARA") objStream.WriteLine(" ITER_ON_OUT_ON_TERM END :_ON_ERR_ON_OUT") C objStream.WriteLine("PC-ITER")  objStream.WriteLine(" BFGS=0 : 0=NEWTON-RAPHSON 1=BFGS-ORIG.")  objStream.WriteLine(" NEWTON=2 : 1=MODIFIED 2=ORIGINAL NR") objStream.WriteLine(" ARCLEN=0 : 0 ARC LENGTH OFF") objStream.WriteLine(" ITEMAX=5 : MAXIMUM NUMBER OF ITERATIONS") objStream.WriteLine(" ITEOPT=8 : OPTIMUM NUMBER OF ITERATIONS") objStream.WriteLine(" TOLRE=1E6 : TOLERANCE FOR RESIDUAL FORCES") objStream.WriteLine(" TOLDIS=1.0E-7: TOLERANCE FOR DISPLACEMENTS")  objStream.WriteLine(" SERTOL=1.0E-3: LINESEARCH TOLERANCE")  objStream.WriteLine(" DUN=1.0 : DISPLACEMENT INCREMENT") objStream.WriteLine(" SIGN_CH=3 : 1=DET 2=STIFFNESS PARAMETER") objStream.WriteLine(" DISNOD=1 : NODE FOR ITERATION") objStream.WriteLine(" DISDIR=1 : DEGREE OF FREEDOM FOR ITERATION") objStream.WriteLine(" CTRNOD=1 : NODE FOR DISPLACEMENT CONTROL") objStream.WriteLine(" CTRDIR=1 END : DEGREE OF FREEDOM FOR DISPLACEMENT CONTROL") objStream.WriteLine("PC-PARA $NEL = 10 : NUMBER OF FINITE ELEMENTS PER EDGE") A objStream.WriteLine("PC-GID")  objStream.WriteLine(" DEFGEO = 1 : DEFORMED GEOMETRY") objStream.WriteLine(" COMPGEO = 1 : COMPONENTS OF DEFORM: GEOMETRY (X,Y,Z)") objStream.WriteLine(" STROUTP = 1 : STRESSES (ONLY SCALARS)") objStream.WriteLine(" PRINSTR = 0 : PRINCIPAL STRESS DIRECTIONS (VECTORS)") objStream.WriteLine(" CURVATURE = 0 : CURVATURES") objStream.WriteLine(" BASEVECTORS = 0 : LOCAL BASEVECTORS") objStream.WriteLine(" PRESTR = 0 : PRESTRESS DIRECTIONS (ONLY ANISOTROPIC PRESTR") objStream.WriteLine(" FIBVEC = 0 END : FIBER DIRECTIONS (ONLY ANISOTROPIC MATERIAL)") A objStream.WriteLine("PC-DXF") ] objStream.WriteLine(" DXFOUT = 1") i objStream.WriteLine(" DXFDEF = 1 END") A objStream.WriteLine("PC-END")  objStream.WriteLine("C=======================================================================") ] ' ----------------------------------------- / ' Nodal coordinates S ' Write nodal coordinates to text file 1 Dim strVertex, arrPt % Dim x,y,z, node  Dim strData M For node = 0 To UBound(arrVertices) 9 x = arrVertices(node)(0) 9 y = arrVertices(node)(1) 9 z = arrVertices(node)(2) ) Select Case node  Case 0 strText = "ND-COOR NODE " &(node+1) & " X= " &CStr(x) & " Y= " &y & " Z= " &z & " " ; Case UBound(arrVertices) strText = " " &(node+1) & " X= " &x & " Y= " &y & " Z= " &z & " END"  Case Else strText = " " &(node+1) & " X= " &x & " Y= " &y & " Z= " &z & " "  End Select Q strText = Replace(strText, ",", ".") A objStream.WriteLine(strText)  Next 3 ' Boundary conditions _ ' -----------------------------------------  Dim nBound i objStream.WriteLine("ND-BOUND REL=R FIX=F SUP=S") M For nBound = 0 To UBound(idObjects) strText = " NODE " & CStr(idObjects(nBound)+1) & " CODE=F,F,F"  If nBound=UBound(idObjects) Then strText = strText & " END" C objStream.WriteLine("ND-END")  objStream.WriteLine("C================== INPUT OF ELEMENT PROPERTIES ========================") o objStream.WriteLine("EL-GROUP 1 ELEMENT WALL2")  objStream.WriteLine("EL-CTR NUMELM = " & CStr(numElm) & " :0 BECAUSE OF DESIGN")  objStream.WriteLine(" MAXNOD = 3 :1 BECAUSE OF DESIGN") [ objStream.WriteLine(" NUMMAT=1") [ objStream.WriteLine(" NUMSEC=1") [ objStream.WriteLine(" IFORM =2") k objStream.WriteLine(" LAGRANGE=UPDATED") e objStream.WriteLine(" PENFAC = 0.9") e objStream.WriteLine(" PRESS = 0.0") g objStream.WriteLine(" ALPHMAX = -1.0") o objStream.WriteLine(" DCMODE = 1 END") objStream.WriteLine("EL-MAT 1 ANISO = 3 FIB11 0.000 FIB12 1.000 FIB13 0.0")  objStream.WriteLine(" CMAT1 0.08 : MUEKS") objStream.WriteLine(" CMAT2 570.0 : EK") objStream.WriteLine(" CMAT3 330.0 : ES") objStream.WriteLine(" CMAT4 10.0 : GAMMA") objStream.WriteLine(" PRJCTMT = 2 END") ] objStream.WriteLine("EL-WRINK WRIMOD 0.0")  objStream.WriteLine(" WRIC1 0.0001 WRIC2 -0.0001 WRIC3 0.0")  objStream.WriteLine(" WRIC4 0.0 WRIC5 0.0 END") u objStream.WriteLine("EL-SEC 1 THICK= 1.0 END")  objStream.WriteLine("EL-PSTR SIG11 = 1.0 SIG22 = 1.0 SIG12=0 : ISOTROPIC PRESTRESS")  objStream.WriteLine(" AX = 1.0 AY = 0.0 AZ = 0.0") objStream.WriteLine(" BX = 0.0 BY = 1.0 BZ = 0.0") m objStream.WriteLine(" PRJCTPS = 1 END") objStream.WriteLine("EL-ATT NIR=1 NIS=0 IEL=3 MAT= 1 SEC= 1 ALL END") ' ' Mesh topology ; Rhino.Print ("Working...") # Dim elm,vertex 9 For elm = 0 To (numElm-1) ' Select Case elm = strText = "EL-TOP NEL= " = strText = " " S strText = strText & " " & CStr(elm+1) + For node = 0 To 2 K vertex = arrEdges(elm)(node) + 1 W strText = strText & " " & CStr(vertex)  Next k If elm=(numElm-1) Then strText = strText & " END"  Next Y objStream.WriteLine("EL-END GROUP 1")  objStream.WriteLine("C=============================================================================") objStream.WriteLine("LD-CTR NLCASE= 1 NLDFOR= 0 NLDELM= 0 NLCURVE=1 NLSTEP=10 END") y objStream.WriteLine("LD-CURVE CURVE=1 STEP=1 FAC=0.0")  objStream.WriteLine(" CURVE=1 STEP=10 FAC=1.0 GEN 1,10 END") Q objStream.WriteLine("C LD-COM END") C objStream.WriteLine("LD-END") ' ' Close the file % objStream.Close 9 Rhino.Print ("Finished!") O Rhino.Print ("Export successfull") End Sub 'This function asks the user to select any amount of nodes from the mesh. 'The return value is NULL if the user did not select any nodes or on error, {'The return value is an array of node indices if successful Private Function GetMeshNodes(idMesh, strMessage, FilterTypology) - GetMeshNodes = Null  Dim arrNaked % Dim selGrips, i / Dim arrSelected(), S 7 Rhino.EnableRedraw False C Rhino.EnableObjectGrips idMesh _ arrNaked = Rhino.MeshNakedEdgePoints(idMesh) I Select Case UCase(FilterTypology) ' Case "EXTERIOR" E For i = 0 To UBound(arrNaked) ; If Not arrNaked(i) Then O Rhino.SelectObjectGrip idMesh, i  End If  Next M Rhino.Command "-_HidePt", vbFalse ' Case "INTERIOR" 3 If arrNaked(i) Then  Case Else ' 'Show all grips  End Select 5 Rhino.EnableRedraw True w selGrips = Rhino.GetObjectGrips(strMessage, False, True) Q Rhino.EnableObjectGrips idMesh, False I Rhino.Command "-_ShowPt", vbFalse S If IsNull(selGrips) Then Exit Function  S = 0 A For i = 0 To Ubound(selGrips) G If selGrips(i)(0) = idMesh Then E ReDim Preserve arrSelected(S) I arrSelected(S) = selGrips(i)(1)  S= S+1  End If ; GetMeshNodes = arrSelected End Function )LFH|uʔz\V4?_ :        0 (U"|uU0 ! ) 9= E  MyTemplate8.0.0.0   My.WebServicesMy.Application My.Computer My.Usera  a4System.Web.Services.Protocols.SoapHttpClientProtocolCreate__Instance__Dispose__Instance__   !!)} 9 TWrapNonExceptionThrows _CorDllMainmscoree.dll% @0HXll4VS_VERSION_INFO?DVarFileInfo$TranslationStringFileInfo000004b0,FileDescription 0FileVersion0.0.0.0LInternalNameMembranes24Export.dll(LegalCopyright TOriginalFilenameMembranes24Export.dll4ProductVersion0.0.0.08Assembly Version0.0.0.0 1