Jump to content


Popular Content

Showing most liked content since 04/06/19 in all areas

  1. 3 likes
    There is not a simple answer to your question. The general guidance is to reduce penetration between components as much as is reasonable, without making the stiffness so high that is results in computation difficulties. Sometimes you need to try different types of normal force calculation, sometimes it's the parameters themselves. In our help section, please read careful the section on Best practices for 3D contacts. Your wheel geometry does not have a uniform mesh, which is important for accurate contact forces. Just search the help for "Best Practices for Running 3D Contact Models in MotionSolve". There is a lot of important material there, that will save you a lot of time and headache if you will follows those best practices in setting up your problem.
  2. 3 likes
    Did you know that there are dozens of interesting examples accessible online for multi-body / motion simulation using Altair software?! See https://altairhyperworks.com/motionsolve-models/ These examples have been designed to help raise your awareness for the kinds of simulations that are possible with Altair's multi-body motion simulation tools. There are currently 17 examples for MotionView+MotionSolve and 29 examples for Inspire Motion -- with dozens more examples scheduled to be added quite soon. The goal is to continually add more and more over time. So consider bookmarking that page and check back often! Each example comprises two pieces: (1) a movie clip that plays automatically in your browser + (2) a downloadable zip file which typically contains: One or more movie (.mp4) files. Pre-built model files for the complete, mechanized multi-body system. Results files. A presentation (.pptx) file describing the model and how to use it. Enjoy!
  3. 3 likes
    あまり気付きにくいかも知れませんが、各投稿の右下には、(Likeボタン)があります。 質問内容や回答内容が「いいね」と感じたり、「役に立った」という場合には、ぜひ(Likeボタン)を押して下さい。 Likeボタンのクリックにより、投稿者の「評判(Reputation)」がアップします。
  4. 3 likes
    First createmark by card image, Then filter them by option Example *createmark sets 1 "by card image name" Part *createmark sets 2 "equal to value" \$LSD_TitleOpt 1 *markintersection sets 1 sets 2 puts [hm_getmark sets 1]
  5. 2 likes
    Thank you very much, that worked flawlessly. It also answered another question that came up concerning beam section properties which can be found in the utilities as well.
  6. 2 likes
    I've used pyaudio in the past to create .wav files, which is a package that is able to input/output audio. Steps to install the package: Open the command window (cmd) as Administrator Type cd C:\<Compose_installation_folder>\common\python\python3.5\win64 Type python.exe -m pip install pyaudio There are some examples at GitHub: https://gist.github.com/mabdrabo/8678538 https://gist.github.com/fopina/3cefaed1b2d2d79984ad7894aef39a68 And pyaudio documentation is at https://people.csail.mit.edu/hubert/pyaudio/docs/ - the class stream probably achieves what you are looking for. Regards, Roberta
  7. 2 likes
    Hi, Go to File > Preferences > Application and turn on "Enable CFD modelling" toggle. This will automatically set the skew as a default quality in volume mesh dialog. Please try this and let me know if you have any difficulty.
  8. 2 likes
    Hi Amasker, To smooth the curve in HyperStudy, you can use saefilter or polyfit functions available in the Expression builder. You would need to create data sources for each vector Time and Velocity and then create a Response defined with the filter expression. Hope it helps. Let us know if further questions. Diana
  9. 2 likes
    Hello I modify some things Please copy these modified files and overwrite the old ones If something's wrong, simply backup original files and let me know issuesReports_modified.zip
  10. 2 likes
    Crashphys - You can't accomplish exactly that, but here's a work-around. Create a DRESP1 with your stress response. Then create a DRESP2 with DEQATN. Pass the stress response and the property thickness (assuming this is a DESVAR) to the DEQATN. I'm not sure if you intend a linear relationship or something else. But your DRESP2/DEQATN could be written such that your stress responses is adjusted for thickness (or some function of thickness). Then constrain that stress with DCONSTR. - Robert
  11. 2 likes
    Let me add another approach that I've just learned. There are many options to perform it but I’ve found this method very simple, flexible and self-explanatory. Summary: In the example, watertank.oml is the master file. It: changes the input parameters (controller gains) runs (repeatedly) the file Watertank_parm.scm (slave) collects results doing post-processing (plot) at the end. I’ve created a quick video to summarize how to run the demo. Present working directory must be where you save the files (the video shows how to select the pwd). Otherwise use an absolute path in the oml file. Liv ParameterSweeping.mp4 watertank.oml watertank_param.scm
  12. 2 likes
  13. 2 likes
    Seem that before *feinputwithdata2 you are missing a *createstringarray Number 8 indicates that the array has 8 items If input reader parses 8 args but not found, it's crashed!
  14. 2 likes
    ... model and video are attached. impulsiveForce_IM.mp4 2_simplified_SingleBC_Impulse_2019.3.stmod
  15. 2 likes
    Hi forestis - You could use the type "Expression" and have an expression something like this - `STEP(TIME, 1,0,1.1,100)+STEP(TIME,1.1,0,1.2,-100)` In this expression, the first STEP function increases the force to 100 from time 1 sec. until then it is 0. In the next STEP function, the force is being dropped down back to 0.0. (otherwise the force will remain at 100 for the remaining time of the simulation) You may also use a Curve that has the impulse profile of your choice and use TIME as the independent variable while using the type Curve. regards praful
  16. 2 likes
    Hello @BG913 I guess "hm_gettiedentities" is you are looking for. Ex: *createmark nodes 1 248; hm_gettiedentities nodes elems 1 2; hm_getmark elems 2; Thanks, Imoto
  17. 2 likes
    @Joel Rodarte: use command "hm_getvolumeofsolid"
  18. 2 likes
    Hey Hyperman! Thanks for your effort, you understand me well. I was lame and did not leave the z0 offset blank, I left there a 0 mm value. Thanks again, you are the real hero, not superman.
  19. 2 likes
    Hi, with the setting Z0=blank, the plies will be arranged symmetrically, i.e. half the laminate thickness on both sides of the surface geometry (see image attached). Or have I misunderstood what you are trying to do? composite_laminate_edit.hm
  20. 2 likes
    Hi Widget pathname of that menu is .model._pw._fbr.content.frmTreeArea.frmTree._m But from v14, it doesn't come in a static way (depends on what you click on) so if you add a menu item then it will be cleared before pop up. To hook an item just before the menu pops up, thanks to Tk mechanism providing <<MenuSelect>> event. This is a way I used in menuexportdeck script: proc ::nexpd::p_Initialize {} { set BindScript [bind Menu <<MenuSelect>>] if {![string match *::nexpd::p_HookMenu* $BindScript]} { bind Menu <<MenuSelect>> {+after idle [list ::nexpd::p_HookMenu %W]} } } proc ::nexpd::p_HookMenu {menuName} { if {![winfo exists $menuName]} return if {[string equal Menu [winfo class $menuName]]} { if {[string match .model*.frmTreeArea.frmTree.* $menuName]} { set menuParent [winfo parent $menuName] while {![string equal TreeCtrl [winfo class $menuParent]]} { set menuName $menuParent set menuParent [winfo parent $menuName] if {![string equal Menu [winfo class $menuName]]} return } set Hooked 0 set Count [$menuName index end] for {set i 0} {$i<=$Count} {incr i} { if {[lsearch -exact {cascade command} [$menuName type $i]]!=-1&&[string equal "Export Deck" [$menuName entrycget $i -label]]} { set Hooked 1 break } } set Selection [$menuParent selection get] if {[llength $Selection]} { if {!$Hooked} { if {![winfo exists $menuName.exportdeck]} { menu $menuName.exportdeck -tearoff 0 -activebackground [$menuName cget -activebackground] \ -activeforeground [$menuName cget -activeforeground] \ -background [$menuName cget -background] \ -foreground [$menuName cget -foreground] $menuName.exportdeck add command -label "Only Selected" -command [list ::nexpd::p_ExportSelection $menuParent $Selection 0] $menuName.exportdeck add command -label "With References" -command [list ::nexpd::p_ExportSelection $menuParent $Selection 7] $menuName.exportdeck add command -label "Save Geometry" -command [list ::nexpd::p_ExportSelection $menuParent $Selection -1] } $menuName insert 0 cascade -label "Export Deck" -menu $menuName.exportdeck } else { if {[string equal disabled [$menuName entrycget "Export Deck" -label]]} { $menuName entryconfigure "Export Deck" -state normal } } } else { if {$Hooked} { if {![string equal disabled [$menuName entrycget "Export Deck" -label]]} { $menuName entryconfigure "Export Deck" -state disabled } } } } } }
  21. 2 likes
    With the last Activate version 2019.2, under Model we have the new “Finalization” tab where we can type an oml script that is executed at the end of the simulation. I’ve found this capability extremely useful for frequency analyses... I’ve created a simple model where we run a co-simulation between Activate & Motion (the approach works also using Activate in standalone mode but with the Motion integration is definitely more interesting). All the related files and the video are enclosed. In the example, we have a system of 2 masses: mass1 and mass2. The input to the Multi-body System is the force on mass2 while the output is the displacement of mass1. Force and displacement are respectively passed as Input1 and Input2 to the FrequencyWorld superblock in the Activate diagram. When you run the Activate model a dialog box appears. Here you can set the sampling frequency (be careful to aliasing issues since the value will affect the Nyquist frequency) and the type of analysis: Turn 0 to 1 the options if you want to analyse in frequency input 1, input 2 and/or the Transfer Function input1/input2. When you turn 1 the last option, the file TF.mat with the transfer function information is generated in the same model folder to be used for further analyses in Compose (e.g. LTI ROM generation…). For each input, the model calculates the fft together with the PSD. The calculation is made in Model-Finalization where we also handle the various options. The script is a bit articulated to properly handle every scenario (even/odd number of the sampling data, leakage, normalization…) Scripts and FrequencyWorld superblock can obviously be re-used for other applications (and easily improved e.g adding filters ...). Best, Liv FFT_PSD_TF.mp4 FFT_PSD_TF.zip
  22. 2 likes
    Based on my quick look at the database, you do not have the interface surface attached to the Rotor volume - only that for the Fixed/main volume. Right-click 'Air-rotor' under Volumes and select Mesh Op. > Find Missing Surfaces. This will generate the other set of surfaces, attached to the Rotor Volume. It appears you already have two sets of nodes there, but the surface definition was missing. This new surface set should have the same treatment as 'interface' > deactivate Simple BC, and activate Interface Surface with 0 for gap and gap_factor. If you know or can estimate the angular velocity, it's simpler to use rotation mesh motion rather than rigid body. It's difficult to estimate the resistance to rotation due to the gearbox, etc, so the angular velocity / rotation from Rigid Body motion is probably going to be higher than the actual would be.
  23. 2 likes
    Hi, you can try to add torque based on BISTOP function to limit joint motion. Please refer to the attached document (from Hyperworks for MBD 13). HyperWorks_for_MBD_v13.pdf
  24. 2 likes
    Hi Laura, You can merge the bodies in MV keeping only the necessary components to represent your system. For instance, parts represented on the CAD like bolts, bearings, welds, etc do not need to be represented in your simulation. Therefore it is either recommended to group it in one single body or delete them. Best regards, Felipe.
  25. 2 likes
    Hi Duc_Hoang, In preference you selected to run at the model location it seems, you can also do one thing, you can change the option in run option in inspire and also in run option in Inspire cast in preference, (try this it will work) if possible send the file if it doesn't work, we shall check. With Kind Regards, Sourav Das | HyperWorks Specialist-FEA| Academic Program | sourav.das@altair.com | www.altairhyperworks.com Altair | Innovation Intelligence® Secure file dropbox https://ftam1.altair.com/filedrop/sourav.das@altair.com
  26. 2 likes
    Hi, This is a lot more complicated. You can try the following: Create your derived load case 1 Switch on the needed contour (P1) Export model, including results (File->Export->Model) .. e.g. P1.h3d Create your derived load case 2 Switch on the needed contour (P3) Export model, including results (File->Export->Model) .. e.g. P3.h3d Open expression builder Add resources (Open first P1.h3d, than P3.h3d) Select the element stresses P1 (now scalar) and insert, press Minus Select the element stresses P3 (now scalar) and insert The result is simple: S1-S2 I can't try it at the moment, but please give me a feedback. Best regards, Mario
  27. 2 likes
    Hi, it is possible to use nonlinear quasistatic analysis as a preload for linear buckling analysis (see attached model). From Optistruct help: NLASTAT+BUCKLING.hm
  28. 2 likes
  29. 2 likes
    Hi Mohammed I haven't done this yet, you can try: pltINote_handle SetAttachment curve pltINote_handle SetAttachToCurveIndex $curveID pltINote_handle SetAttachToPointIndex point_index to find point_index you can GetVectorHandle and from vectorHandle GetValuesList list. Find at what index the maximum value occurs in the value list.
  30. 2 likes
    Hello Holo, In fact, your problem is that you have made a mistake in the input power calculus. You have assumed that, as far as each current source provides 2100 W (mean value) the three will provide three times this quantity (this is, 6300 W). This is not the case, as far as you have a neutral cable (four cable connexion, taking into account the ground) the sources are consuming some of the energy produced by the others, in other words some of this power is coming back to the grid. If you plot the sum of the active power of the three phases in each instant you will obtain the next curve below, with a mean (ignoring the transitory part) of 4235 W. This match much better with your results. Anyway, I advise you to simulate some additional rotor positions in order to assure global accuracy. So you will have a power equilibrium as follows: P_input = 4235 W P_mec=4170 W (mean torque equal to 26.55 Nm) P_Joule= 13+45=58 W P_Berttoti=2.56*4 W=10.24 W The rule is: any quantity calculated directly from the regions should be multiplied by the number of portions in your periodicity but the quantity calculated from the circuit are not multiplied since the circuit already takes into account the periodicity in order to obtain the electric variables (i.e., currents and voltages). On the other hand, if you want to avoid the problem of the neutral in your circuit I advise you to try this connexion: As you can see, the third current source is no longer necessary as far as the other two are already imposing the current to the third branch. If, anyway, you want to represent it (e.g., because you are interested in its behaviour) you should do as follows: The resistance above should be a very high one, since this branch is only there to avoid that small differences between the current sources (i.e., numerical noise) leaves to inconsistent equations . For example a value for 1E7 is fine. Hope this helps. Best regards,
  31. 2 likes
    Hi, Load Extraction is also possible with rigid bodies. Keshav_Webinar_Load_Extraction - Altair Check tutorial: mv-3030: Load export: load_export.mdl mv-3030.pdf
  32. 2 likes
    Solved : There was a small eeror in the code. One of the object was not destroyed properly set job_folder "C:\\Users\\xcxc\\Desktop\\test_ui\\test" set num_of_modes 15 #get the directory# set dirname [file dirname [info script]] set template_dirname "$dirname/Report_Template.pptx" #handle the files# file copy -force "$dirname/Report_Template.pptx" "$job_folder/Report/Report.pptx" #modify the PPts# package require twapi set ppt [::twapi::comobj PowerPoint.Application] $ppt DisplayAlerts [expr 0] set presents [$ppt Presentations] set active_presentation [$presents Open "$job_folder/Report/Report.pptx"]; #Open the Presnetation set slides [$active_presentation Slides]; #gte the slide list set slide_1 [$slides Item 1]; #get control on slide index 1 set object_list {} set mode_counter 1 while {$mode_counter <= $num_of_modes} { set slide_num [expr {$mode_counter + 1}] set slide_$slide_num [$slides Add $slide_num 12]; #add one more slide into the presentation set slide_$slide_num\_shapes [[set slide_$slide_num] Shapes] set slide_$slide_num\_video_1 [[set slide_$slide_num\_shapes] AddMediaObject2 [file nativename "$job_folder/Report/Mode_$mode_counter\_Iso_Front.avi"] -1 -1 20 100 650 300] set slide_$slide_num\_video_2 [[set slide_$slide_num\_shapes] AddMediaObject2 [file nativename "$job_folder/Modal_Analysis/Report/Mode_$mode_counter\_Iso_Back.avi"] -1 -1 500 100 650 300] lappend object_list "slide_$slide_num" lappend object_list "slide_$slide_num\_shapes" lappend object_list "slide_$slide_num\_video_1" lappend object_list "slide_$slide_num\_video_2" incr mode_counter 1 } $active_presentation Save foreach object $object_list { puts $object [set $object] -destroy } $slides -destroy $active_presentation -destroy $ppt Quit $ppt -destroy
  33. 2 likes
    Yes, No.3 is not clear how to do (i double click but its loadadd does not. Anyway try and reply me results: #hide all loadcols: *createmark loadcols 1 all *displaycollectorsbymark loadcols 1 off 1 1 #show all loadsteps foreach LS [hm_entitylist loadsteps name] {*displaycollectorwithfilter loadsteps on $LS 1 1} #delete undisplayed loadcols: *createmark loadcols 1 displayed *createmark loadcols 1 reverse *deletemark loadcols 1
  34. 2 likes
    Hi, With LAW2, Iflag=1 the UTS and strain at UTS are engineering strain values. But the output by Radioss is true stress and strain. If you look in the Radioss starter you can see the Iflag=0, a, b, n values that are calculated using your input. JOHNSON COOK MODEL : YIELD STRESS . . . . . . . . . . . . .= 355.0000000000 ULTIMATE STRESS (UTS) . . . . . . . . .= 470.0000000000 STRAIN AT UTS (Ag). . . . . . . . . . .= 9.0000000000000E-02 YIELD COEFFICIENT A . . . . . . . . . .= 355.0000000000 YIELD COEFFICIENT B . . . . . . . . . .= 312.9879880695 YIELD COEFFICIENT N . . . . . . . . . .= 0.2806664576242 EPS-MAX . . . . . . . . . . . . . . . .= 0.2100000000000 SIG-MAX . . . . . . . . . . . . . . . .= 1.0000000000000E+30 ISO-KINEMATIC HARDENING FACTOR. . . . .= 0.000000000000 You can input the a, b, n value into the equation in the comments of LAW2. Note this equation is true stress as a function of plastic strain and I have left off the temperature and strain rate terms. Or the pre-processor HyperCrash lets you plot a material when you use a, b, n in LAW2. Note that this is a plot of True stress versus true strain (not plastic strain). Please check if your output makes better sense using these stress strain plots. It is good that you are thinking about the results with respect to your material input to see if they make sense. Not everyone does this but they should! Thanks, Andy
  35. 2 likes
    Thanks for the reply I got the solution resultHandle GetSimulationLabel sub_id step_no
  36. 2 likes
    HI Create one userpage.mac file. code in that file to create button: *createbutton(5, "Deflection of Cantilever", -1, 0, 10, YELLOW, "Launch Solution To Cantilever Beam.", EvalTcl, "C:\Users\pdd914713\Documents\Test.tcl") *beginmacro("CantileverBeam") *endmacro() keep this file in current working directory...then restart the Hm. You can find this info in HW help as well. HyperWorks Desktop Applications > HyperMesh > HyperMesh Tutorials > Customization > Scripts:
  37. 2 likes
    A right programming flow is : make the script to create loads instead of clicking
  38. 2 likes
    You could run shape optimization for nonlinear cases with equivalent plastic strain as response.This is supported from OptiStruct 2017.2.3 or higher version.Please refer attached pdf and fem file. 62-Plastic_strain_response.pdf 62-Plastic_strain_response-conrod_shape_plas_mdl_start_dv_0.2.fem
  39. 2 likes
    The virtual wind tunnel you show in your screenshot if very small for any reasonable aerodynamics results. You might get colorful picture, but probably no useful interpretation. Wind tunnel dimensions: o 5 car lengths ahead of the car o 10 car lengths behind the car o 5 car widths on each side of the car o 10 car heights above the car o i.e., wind tunnel dimensions LWT x WWT x HWT = 16Lc x 11Wc x 11Hc. o The mesh farther away from the car will be coarse and increasing the wind tunnel domain would not affect the element count too much but it would still affect the B.Cs if they are too close to the car.  Boundary Layer details o First layer height will depend on the freestream velocity to obtain a maximum y+<100. A first guess would be 0.2mm<y<0.5mm. Ideally y+max<30. o For some applications y+max<100 should still give good results o growth rate of 1.3 o number of layers 5 o all tets in boundary layers
  40. 2 likes
    Hello @LFM1995 If you still have the hexa elements, please try this. hm_entityrecorder elems on; *createmark elems 1 "by config" 208; foreach elemid [hm_getmark elems 1] { lassign [hm_entityinfo centroid elems $elemid] X Y Z; *createnode $X $Y $Z; set center [hm_latestentityid nodes]; foreach nodeid [hm_getvalue elems id=$elemid dataname=nodes] { *createlist nodes 1 $center $nodeid; *createelement 2 1 1 1; } } hm_entityrecorder elems off; set newplot [hm_entityrecorder elems ids]; if {[llength $newplot] != "0"} { hm_createmark elems 1 $newplot; *configedit 1 "bar2"; } hm_markclearall 1; Download --->>> CreateBeamForCentroidHexElements.tcl
  41. 2 likes
    Hi @Jeffersondhv, It is because you have already defined cmd_btn with the value 'Nothing'. The value of textVar is actually changing. Replace the line like this, it should be working. button $lbl_ref.import_ref -text $textVar -command {tk_messageBox -message $textVar -type ok} -bg #60C060
  42. 2 likes
    Hi Mohammed, Try, SessionHandle GetSystemVariable "VERSION" Regards, Livil
  43. 2 likes
    As I see it, there is no easy tcl command like *createmark to solve your issue as the wholes are not of the same shape (like all cylindrical holes could be easily selected with a "by cylinder"). Well, all the elements, you want to select share one property: They are at the boundaries of your element set and they for a closed loop. So to select the elements you want, you have to do the following: - read in all the elements which are there - identify all elements with node ids, that are only referenced once in the entire element set (those are the boundary elements) - identify all closed loops within that element set You can do it with any programming language you like. Files to be processed are: the .fem file for getting the elements and nodes as well as the _des.h3d for getting the element densities. If there is an easy solution for this, I would be greatly interested if someone could share the findings. The above process takes a while (but on the other hand is applicable for 2d and 3d as well) All the best, Merula
  44. 2 likes
    I'd like to share the seamless integration that Compose with other HyperWorks applications, such as HyperMesh and OptiStruct. In order to expose the Compose function to other HyperWorks applications, we need to register the function. This is done clicking on the right mouse button on Register Function in Compose: After this step, we may now see that the function has been registered under the same mouse click shown above under Show Registered Functions button. Once it is registered, we may now use it inside other HyperWorks softwares, and the function will be available without the need for closing and reopening the application of interest. Example in HyperMesh: Why Compose and HyperMesh? Matrix Browser queries and modifies HyperMesh and HyperView data entities without writing cumbersome TCL coding, along with a Math method developed in Compose. Example in HyperGraph: Why Compose and HyperGraph? Plotting capabilities of HyperGraph are expanded with Compose’s advanced functions and custom procedures developed by the user. Example in HyperView: Why Compose and HyperView? Advanced post-processing or special mathematical approaches may be applied directly on the model. Example in HyperStudy: Add a new output response Define a new expression Use your custom Compose function Why Compose and HyperStudy? User-defined functions to perform design exploration and optimization. Example in OptiStruct: Why Compose and OptiStruct? User-defined functions to perform optimization with DRESP3 card (desired response based on external files). Regards, Roberta
  45. 2 likes
    If files pkgindex.tcl are there, you need append package's folder path to ::auto_path and then load packages by package require WS::Client refer to my pkgindex.tcl and installer.tcl it helps install packages via $::env(HOME) without affection to hw installation. https://forum.altair.com/topic/16835-update-hypermesh-extensions/?tab=comments#comment-30266
  46. 2 likes
    Actually i am not a tcl expert - it is used widely. I learned hypermesh before tcl. Once you're familiar with most hypermesh features, scripting is not a problem because hypermesh outputs every action of you, pick each command from command.cmf file, look it up in hm reference guide, do examples given by altair. Tcl features are listed in manual (activestate.com) similar to other languages. This is the most simple syntax language I ever know and much easier than pascal.
  47. 2 likes
    Free eBook: Design the Inspire Way – A Practical Introduction to solidThinking Inspire click on the title here This book is a very light-weight introduction into the exciting world of the “Simulation Driven Design Process”. It is meant to give pupils, undergraduate students and maybe even designers new to Computer Aided Engineering CAE a “taste”, a first idea on how simulation, especially conceptual design (simulation) works. The tool of choice used in this book is solidThinking Inspire®. Inspire enables design engineers, product designers, and architects unfamiliar with numeric simulation, to make optimal use of the material by placing it only where needed to meet structural requirements. Become Inspired ...
  48. 2 likes
    Alex, It has been a while since you asked that question. I don't know if you still need help. If you do, please check Analysis -> Preserve nodes see if there are any preserve nodes in your model. HM would automatically delete those once you transfer any preserve nodes to normal nodes.
  49. 2 likes
    Use MATHE card.PFA screenshot for same.
  50. 1 like
    Hi It is array get ::AbaqusCW::cwNonSurArray
  • Create New...