Code Monkey home page Code Monkey logo

xlframe's People

Contributors

dmorchard avatar jwock82 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xlframe's Issues

Functions to delete loads

Is your feature request related to a problem? Please describe.
Related to the Load Combinations request

Describe the solution you'd like
Functions available to remove or edit existing loads on existing nodes or members.

Additional context
This will be necessary as part of the Load Combinations request. To remove existing loads and replace them with loads from a different LC without having to build an entirely separate model.

add module(s) of tools related to drawing diagrams of V(x), M(x), etc.

Is your feature request related to a problem? Please describe.
No.

Describe the solution you'd like
In order to visualize shear, moment, etc. it's handy to include XLscatter charts in worksheets or workbooks; however, creating and fine-tuning them includes a lot of repetitive tasks that are begging to be automated. I'll start working on a PR that adds a basic toolkit for these tasks in the form of a new module (working title = "DiagramTools") and if appropriate an associated class module once I become more familiar with the ins/outs of OOP.

Additional context
Some initial ideas:

  • Support for multiple collinear beam elements, i.e. each member is a separate series with local-x transformed by adding .iNode.Xcoord of that member (or iNode.Ycoord for columns, or whatever is appropriate for sloped members... Pythagoras, right?).
  • Automatically set min/max bounds and major/minor units of X-axis based on X coordinates of the member(s)
  • Experiment with implementation of user-defined preferences for chart format characteristics such as colors, linetype, use of Excel's built-in styles, etc.

Member Internal Moment & Shear for Point Loads at Member Ends are Not Reported

Describe the bug
Member point loads and moments applied at x = 0 along the length of a member are not reported in member shear and moment results. This is because the results are always reported "looking to the left" (or "just to the right") of the cut. This causes the reaction and the point load to cancel each other out at x=0. This is rarely an issue, since it usually makes sense to apply these loads as nodal loads instead of member loads.

To Reproduce
Steps to reproduce the behavior:

  1. Create a complete model with a support at x=0.
  2. Apply a member point load at x = 0 that will be resisted by the support.
  3. Solve the model.
  4. Request the shear force at x = 0.
  5. The shear force due to the point load will be left out, since the member end force and the point load are summed at this point, and they cancel each other out.

Suggested Fix*
The fix is pretty simple: change the code to report member end forces at the starts and ends of members, rather than calculating the internal shear force or moment as you would away from the ends.

Add support for load combinations

Is your feature request related to a problem? Please describe.
n/a

Describe the solution you'd like
Ability to assign categories to all types of applied loads, and to factor and combine these various categories of load in accordance with whatever governing code is applicable.

Additional context

Invalid perameters

Hi

I am using code in the documentation and have hit a brick wall. In the Analyze Sub, in the FEModel Class, when we have no load combination defined it tries to create default load combination. See code below

If LoadCombos.Count = 0 Then

    'Create and add a default load combination to the dictionary of load combinations
    Call LoadCombos.Add("Combo 1", Array("Case 1"), Array(1))
    
End If

It is hear that it appears their is too many perimeters. Hence the error.

Also I would like to contribute as well. I am not an engineer, but a software developer with a degree in computer science. For the last 19 years I have been working with structural engineers developing software for portal frame design detailing. Please let me know how I can help.

Regards

Shazad.

Problem in Test Example: Private Sub FEM_Problem_3_27()

in this example ( Private Sub FEM_Problem_3_27()) the result is always empty. After some investigation I believe this line has an issue:

'Define the joint loads
Call myModel.AddNodeLoad("N3", 5000, -10000, 0)

and something like this will solve the problem based on the definition of the AddNodeLoad Function:

'Define the joint loads
Call myModel.AddNodeLoad("N3", 5000, FY)

In this way, the load is being applied in FY direction and is considered in the default load case and combination which is being used by default in next commands to show the result.
@JWock82 Craig, Can I add some features to your code?
By the way, I will be happy to participate in this project whenever I can. How I can contact you?

Sign convention

Member sign convention is a little different from most commercial programs. "Beam sign convention" is used. For a simple beam with uniform load, this means that the moment diagram would be positive. It's not an error, just an unusual convention for finite element modeling. At some point I may change this.

Nice work!

I love what you've done so far! I've been fiddling with VBA for years doing similar things in Excel, but I've been reluctant to learn and implement classes. Stumbling across your xlFrame code has encouraged me to take another look. Hopefully I can get myself up to speed such that I can start submitting PRs here.

Automatically segment physical members

Is your feature request related to a problem? Please describe.
xlFrame doesn't have the capability to support physical members that have members framing into them, without actually separating the member. Segmenting the member by hand can make it time-consuming to query the member for max/min values at the end of the process.

Describe the solution you'd like
I'd like the solver to scan for nodes that lie along members, segment them behind the scenes, and then (after solving) reconstitute them into their physical members for postprocessing.

Additional context
A technically related issue is automatically applying nodal loads to members, where the nodes are at the midspan of a member without any other members framing in at that point. Once the former task is complete, this should be trivial, if not automatic.

Member Code Checks

Describe the solution you'd like
I know it's a lot of work to program in member capacities, but it would be nice to have some method of calculating and comparing to code allowables. Most users of this package will probably be more interested in obtaining code checks than anything else.

Additional context
Obviously it's a big "add-on", somewhat removed from the core of the FEA solver. But it seems it would make a huge difference in usability for the typical end-user to include.

Add "Vertical" as a load direction

Is your feature request related to a problem? Please describe.
When adding a gravity loads, such as snow, to a sloped member the user has to resolve the load into the appropriate "Transverse" and "Axial" components and apply both.

Describe the solution you'd like
It'd be handy to have a third load direction, "Vertical", with the T and A components automatically resolved and applied to the member.

Additional context
Taking it a step further, perhaps there could be 4 load types: x-local, y-local, X-global & Y-global. Or "Axial", "Transverse", "Horizontal" & "Vertical" if you prefer.

application of known displacements to nodes

Is your feature request related to a problem? Please describe.
In addition to nodal and member loading I'd like to be able to apply a known nodal displacement to a structure, to examine the internal loading that arises from foundation settlement for example.

Describe the solution you'd like
At the moment I don't believe there's a way to do this - no purposely written sub/function that I've seen anyways. Is that correct? If so it's something I will work towards including, although I have a feeling it'll require much more familiarity with the existing code than I currently have, not to mention a better grasp of OOP.

LoadCombo.cls is being imported as a Module not a Class

Describe the bug
While attempting to import LoadCombo.cls into a VBA project, it will be imported as a Module not a Class. Additional header lines will be added, see first screenshot below.

To Reproduce

  1. Download the code as zip from github and unzip locally.
  2. In Excel, open a VBA Project.
  3. Right click the project name and select "Import File...".
  4. Find the file "LoadCombo.cls" and hit open.

Expected behavior
A LoadCombo class should be created instead of a LoadCombo Module and without the additional header lines.

Screenshots
image
image
image

Additional context
I'm going to leave this in here just in case someone else needs it. This is not a bug per se, as I believe the code will work just fine if you create the class manually and copy/paste the code into it (minus the added header lines.) This happens because the line endings in the file LoadCombo.cls are UNIX-style (LF) vs the Windows-style (CR+LF). See this from Tim Hall.

Run-time error : wrong number of arguments or invalid property assignment

Describe the bug
I am running the "TestRountine" modules and I receive a Run-time error

To Reproduce
Steps to reproduce the behavior:

  1. I set a break point at Sheet1.Range("A2') = myModel.GetDisp("N3", DX)
  2. I get a wrong number of arguments or invalid property argument warning
  3. Then I step into this line and I think the problem is related with this LoadCombos.Add function

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image

Additional context
Add any other context about the problem here.

Graphical User Interface

Describe the solution you'd like
It would be nice to have a Module that supports some graphing functionality. Eventually it could become a full-fledged GUI, but to start, I recommend we leverage Excel's graphing functionality to graph each member in the X,Y coordinate plane.

Additional context
This would provide a much-needed sanity check on one's own code when actually using the xlFrame package.

not getting correct member moment diagram

1.I am not getting correct member moment diagram. Reaction are correct. I am analyzing simply supported beam with both side overhang. If the support are fixed than member moment diagram are correct. Let me know if I have done mistakes anywhere.

GetMaxMemberDisp / GetMinMemberDisp functions

Describe the solution you'd like
Functions - one min. and one max. - for Member Displacement, similar to current functions for shear, axial, and moment.

Additional context
It looks like there are already functions for Max/Min Displacement under the Member2D Class Module, so this request shouldn't be too hard to throw together, just have to make the wrapper function in the FEModel Class Module.

add spring supports

Is your feature request related to a problem? Please describe.
No. Just more wish list stuff :)

Describe the solution you'd like
Spring supports.

Additional context
One of the uses I have in mind for xlFrames is modeling treated wooden posts embedded in the ground, a.k.a. post frame foundations. Current best practice is to model the soil's lateral capacity as a series of springs with k-values determined by geotechnical properties of the various soil horizons, something like this...
image

When analysis software lacks spring supports these soil springs are modeled as additional nodes and members (with AE/L = k_soil_spring) - not the end of the world - It's simple enough to set that up, just a bit of a hassle to exclude these extra nodes and members from the desired results. Built-in spring supports would be a welcome upgrade.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.