N-value and refusal display on boring logs

I am using gINT V8i S s1 version 08.30.03.140. on  MS windows 2007.

 I have a question regarding changing the reporting of N-values on boring log reports. The project manager wants to show an N-value for the sum of both the  2nd and 3rd intervals and the sum of 3rd and 4th intervals of a 4 interval SPT sampling program. I am not sure how to accomplish this. Our current output calculates the N-value from the 2nd and 3rd intervals even if there are 4 intervals. Furthermore, our current output does not show an N-value if there is refusal on the SPT sample (e.g. 50/4). We are wanting to display the N-value even if there is refusal.

 Below is the user system data of the “blows and N value” and the “refusal Penetration” functions from our current library file. Any help on this matter would be much appreciated.

blows and N value

<<Let(Refusal Pen = <<User System Data.Refusal Penetration>>)>>_
<<Let(Blows =_
    <<Case(<<Get(Max Blows Pen Inches)>>,
           =18,<<SAMPLE.Blows 3rd>>,_
           =12,<<SAMPLE.Blows 2nd>>,_
           =6,<<SAMPLE.Blows 1st>>_
     )>>_
)>>_
_
<<ListBuildSepTrim(_
  -,_
  <<SAMPLE.Blows 1st>>,_
  <<SAMPLE.Blows 2nd>>,_
  <<SAMPLE.Blows 3rd>>,_
  <<SAMPLE.Blows 4th>>_
)>>_
<<HasData(<<Get(Refusal Pen)>>,_
  /<<Get(Refusal Pen)>>,_
  <<DelimitData(_
    <<cr>>(,_
    <<Calc(<<SAMPLE.Blows 2nd>> + <<SAMPLE.Blows 3rd>>)>>,_
    )_
  )>>_
)>>

 

Refusal Penetration

<<IIF(<<PROJECT.Output Units>> = "M",_
  <<Let(Interval = 15)>>,_
  <<Let(Interval = 6)>>_
)>>_
<<Let(Pen Inches = _
   <<Format(_
     <<Case(<<PROJECT.Output Units>>,_
         <><<PROJECT.Input Units>>,_
           <<UnitsConvert(<<SAMPLE.Length>>,_
             <<IIF(<<PROJECT.Output Units>>="M",_
               <<Let(Factor E to M = 30.48)>>,_
               <<Let(Factor E to M = 1/0.3048*12)>>_
             )>>_
            <<Get(Factor E to M)>>_
           )>><<Let(Formatting=0.0)>>,_
       ="E",<<Calc(<<SAMPLE.Length>>*12)>><<Let(Formatting=0)>>,_
       ="M",<<Calc(<<SAMPLE.Length>>*100)>><<Let(Formatting=0)>>,_
     )>>,_
  <<Get(Formatting)>>)>>_
)>>_
_
<<Let(Max Blows Pen Inches = _
  <<Calc(_
    <<DataCount(_
      <<SAMPLE.Blows 1st>>,_
      <<SAMPLE.Blows 2nd>>,_
      <<SAMPLE.Blows 3rd>>,_
      <<SAMPLE.Blows 4th>>_
    )>> * <<Get(Interval)>>_
  )>>_
)>>_
_
<<IIf(<<HasData(<<Get(Pen Inches)>>)>> And _
      <<HasData(<<SAMPLE.Blows 1st>>)>>,_
  <<IIf(<<Get(Pen Inches)>> < <<Get(Max Blows Pen Inches)>>,_
    <<Format(_
      <<MaxVal(_
        <<Calc(<<Get(Interval)>> - (<<Get(Max Blows Pen Inches)>> - <<Get(Pen Inches)>>))>>,_
        0.00_
      )>>,_
      <<Get(Formatting)>>_
    )>>_
  )>>_
)>>

Parents
  • Hi DOUGRASZ,

    Using the suggested changes below, a sample with four sets of blows (4, 5, 6, and 7 respectively) and 24 inches of penetration will give you the following output:

    4-5-6-7
    N1(11)
    N2(13)

    ==========================================

    blows and N value

    <<Let(Refusal Pen = <<User System Data.Refusal Penetration>>)>>_
    <<Let(Blows =_
    <<Case(<<Get(Max Blows Pen Inches)>>,
    =18,<<SAMPLE.Blows 3rd>>,_
    =12,<<SAMPLE.Blows 2nd>>,_
    =6,<<SAMPLE.Blows 1st>>_
    )>>_
    )>>_
    _
    <<ListBuildSepTrim(_
    -,_
    <<SAMPLE.Blows 1st>>,_
    <<SAMPLE.Blows 2nd>>,_
    <<SAMPLE.Blows 3rd>>,_
    <<SAMPLE.Blows 4th>>_
    )>>_
    <<HasData(<<Get(Refusal Pen)>>,_
    /<<Get(Refusal Pen)>>,_
    <<ListBuildSepTrim(<<cr>>,_
    <<DelimitData(<<cr>>N1(,<<Calc(<<SAMPLE.Blows 2nd>> + <<SAMPLE.Blows 3rd>>)>>,))>>,_
    <<DelimitData(N2(,<<Calc(<<SAMPLE.Blows 3rd>> + <<SAMPLE.Blows 4th>>)>>,))>>_
    )>>_
    )>>
    
    

    ==========================================

    Please let me know if this solves your issue.
    Best Regards,
    -- 
    Johnny Martel
    Geotechnical Data Services 
    gINT Software Specialist
    Tel +34 617-217-012
    Los Angeles, USA
    Barcelona, SPAIN
  • Thanks a lot jmartel. that worked perfectly. I really appreciate your help. I can do gint basics but the more involved programing sometimes gives me problems.

    btw, do you have any aid on the second issued I asked about regarding why an N-value does not show up when there is refusal. I know that some folks consider there to be no N-value in that case. but others consider the refusal to be the N-value while others still would add the 50 and the previous interval to get an N-value.

    I assume that there is a way to get something to show up.

    thanks again,

    Doug

  • Try this

    ==========================================

    Blows and N Value

    <<Let(Refusal Pen = <<User System Data.Refusal Penetration>>)>>_
    _
    <<Let(N1 = <<Calc(<<SAMPLE.Blows 2nd>> + <<SAMPLE.Blows 3rd>>)>>)>>_
    _
    <<Let(N2 = <<Calc(<<SAMPLE.Blows 3rd>> + <<SAMPLE.Blows 4th>>)>>)>>_
    _
    <<ListBuildSepTrim(_
    -,_
    <<SAMPLE.Blows 1st>>,_
    <<SAMPLE.Blows 2nd>>,_
    <<SAMPLE.Blows 3rd>>,_
    <<SAMPLE.Blows 4th>>_
    )>>_
    <<HasData(<<Get(Refusal Pen)>>,_
    /<<Get(Refusal Pen)>>,_
    <<cr>>_
    <<ListBuildSepTrim(<<cr>>,_
    <<HasData(<<Get(N2)>>,_
    N1(<<Get(N1)>>),_
    <<DelimitData("N(",<<Get(N1)>>,")")>>_
    )>>,_
    <<DelimitData("N2(",<<Get(N2)>>,")")>>_
    )>>_
    )>>
  • Johnny,

    Sincere gratitude for you assistance on this issue. I am sure that you have other stuff to do. But I guess was not communicate properly what I am trying to accomplish.  

    What I am trying to accomplish is to have the refusal value show up as the N-value

    So for example, if there is not refusal it should look as you have created already:

    10-12-18-23

      N1(30)

      N2(41)

    But if there is refusal on the 4th interval it would look like this:

    10-12-36-50/4

        N1(48)

       N2(50/4)

    If there is refusal on the 1st 2nd  or 3rd interval it would look like this:

    15-22-50/2

     N1(50/2)

    Or

    26-50/3

    N1(50/3)

    Or

      50/4

    N1(50/4)

    Is this possible to accomplish?

    Thanks again for you help on this,

    Doug

  • Although there is a threshold of learning to overcome, gINT Rules (VBA) is a better language to use for this.  The result string is written back to a field by the VBA code, which you could then edit for the outlier tests, and the report can just reference the one field.

    Phil Wade
    Datgel
    Bentley Channel Partner and Developer Partner
    E: phil.wade@datgel.com | T: +61 2 8202 8600 & +65 6631 9780

    Get the most out of gINT with Datgel Tools.

  • Hi Doug,

    I would agree strongly with Phil that It would make sense to add two fields for N1 and N2 and then create gINT rules to automatically calculate them in your database. That will take you some time to learn, or of course you can have one of us do it for you. In the meantime here's is my last stab at it on the forum. 

    The following code is not very elegant but in my defense, I was in a bit of a hurry.

    ==========================================

    Blows and N Value

    <<Let(Refusal Pen = <<User System Data.Refusal Penetration>>)>>_
    _
    <<Let(N1 = <<IIf(Not<<HasData(<<Get(Refusal Pen)>>)>>,<<DelimitData("N1(",<<Calc(<<SAMPLE.Blows 2nd>> + <<SAMPLE.Blows 3rd>>)>>,")")>>)>>)>>_
    _
    <<Let(N2 = <<IIf(Not<<HasData(<<Get(Refusal Pen)>>)>>,<<DelimitData("N2(",<<Calc(<<SAMPLE.Blows 3rd>> + <<SAMPLE.Blows 4th>>)>>,")")>>)>>)>>_
    _
    <<Let(Final Interval = _
    <<FirstData(_
    <<SAMPLE.Blows 4th>>,_
    <<SAMPLE.Blows 3rd>>,_
    <<SAMPLE.Blows 2nd>>,_
    <<SAMPLE.Blows 1st>>_
    )>>_
    )>>_
    _
    <<ListBuildSepTrim(_
    -,_
    <<SAMPLE.Blows 1st>>,_
    <<SAMPLE.Blows 2nd>>,_
    <<SAMPLE.Blows 3rd>>,_
    <<SAMPLE.Blows 4th>>_
    )>>_
    <<DelimitData(/,<<Get(Refusal Pen)>>,)>>
    <<ListBuildSepTrim(<<cr>>,_
    <<Get(N1)>>,_
    <<Get(N2)>>,_
    <<IIf(_
    <<HasData(<<Get(Refusal Pen)>>)>>,_
    <<HasData(<<SAMPLE.Blows 4th>>,_
    N1(<<Calc(<<SAMPLE.Blows 2nd>> + <<SAMPLE.Blows 3rd>>)>>)<<cr>>_
    N2(<<Get(Final Interval)>>/<<Get(Refusal Pen)>>),_
    N1(<<Get(Final Interval)>>/<<Get(Refusal Pen)>>)_
    )>>_
    )>>_
    )>>

    ==========================================

    Also I noticed in your example that you didn't show the trailing zeros after the refusal penetration. To get rid of them go to the User System Data Item Refusal Penetration and change <<Let(Formatting=0.0)>> to <<Let(Formatting=0.#)>>
    Good Luck!
    --
    Johnny Martel
      Geotechnical Data Services 
      gINT Software Specialist
      Tel +34 617-217-012
      Los Angeles, USA
      Barcelona, SPAIN
  • Johnny,

    Thanks alot. that code works perfectly for what I was wanting to do. it does not need to be elegant. I fully understand you being done with helping me with this issue. I certainly feel that I have been abusing your kindness. we have gint, but have never had any training on how to program it. so it is alot of trial and error and help menu. I am glad this forum exists.

    Take care kind Sir.

    thanks again,

    Doug

Reply
  • Johnny,

    Thanks alot. that code works perfectly for what I was wanting to do. it does not need to be elegant. I fully understand you being done with helping me with this issue. I certainly feel that I have been abusing your kindness. we have gint, but have never had any training on how to program it. so it is alot of trial and error and help menu. I am glad this forum exists.

    Take care kind Sir.

    thanks again,

    Doug

Children