MC-Bauchemie offers new software for the design of CFRP reinforcement
Press release

Lasoft 4.1 for the design of CFRP reinforcement

MC-Bauchemie has launched a new version of its own Lasoft design software that comprises not just a dimensioning but also a structural analysis capability.

New version 4.1 of Lasoft software

8 Jul 2022

MC-Bauchemie has released the latest version 4.1 of the design and dimensioning program Lasoft. This software was developed based on the guideline „Strengthening of Concrete Members with Adhesively Bonded Reinforcement“ of the German Committee for Structural Concrete (Deut‍scher Aus‍schuss für Stahl‍be‍ton – DAfStb). Lasoft 4.1 comes as a handy tool complementing the product and service package offered by MC-Bauchemie.

Unique software: Unlike conventional programs, Lasoft 4.1, comprises not just a dimensioning but also an extensive structural analysis capability. <br>© MC-Bauchemie 2022

Unique software: Unlike conventional programs, Lasoft 4.1, comprises not just a dimensioning but also an extensive structural analysis capability. MC-Bauchemie 2022

The carbon fiber reinforced plastics (CFRP) in form of strips and sheets have been sucessfully applied for decades in the field of structural strengthening as well as for the subsequent increase of load bearing capacity of reinforced concrete elements. These strengthening systems are mounted by gluing on load bearing elements, such as beams, slabs, columns and walls, to adjust or increase their bearing capacity in view of their altered condition, modified boundary conditions, static configuration or increased effective loads. Compared to the common strengthening techniques involving additional steel reinforcement, the strengthening with CFRP provides a series of considerable structural, economical and architectural advantages. This technique implies a negligible additional dead weight, no mechanical intervention into the concerned structural members, a negligible cross-sectional increase and a rapid execution excluding framework, dust and noise. This makes the strengthening technique with CFRP essential and irreplaceable nowadays.

Complete analysis in one program

The design and dimensioning of such strengthening measures is carried out according to valid national or international codes and guidelines. The common design tools for structural strengthening are mainly focused on the cross-sectional dimensioning of the CFRP strips or sheets based on preliminary calculated load distributions and internal forces (cross-sectional efforts). The latter must be carried out by hand or in dedicated programs. MC-Bauchemie has released the latest version 4.1 of the design and dimensioning program Lasoft. This tool is based on the guideline „Strengthening of Concrete Members with Adhesively Bonded Reinforcement“ of the German Committee for Structural Concrete (Deutscher Ausschuss für Stahlbeton – DafStb). Besides the dimensioning and optimization modules, the software includes a structural analysis module, which allows conducting all the calculations within one single tool. The software allows the rapid and simple calculation of load and effort distributions in linear or plane structural systems as well as the cross-sectional dimensioning and optimization of the required CFRP strips or sheets. Furthermore, it allows the design of strengthening measures under flexural, shear and fatigue stresses at the ultimate limit state. Deformation and crack width verifications at the serviceability limit state are also provided.

The complete product and service package

Lasoft 4.1 comes as a handy tool complementing the product and service package offered by MC-Bauchemie. The product systems MC-CarbonFiber Lamella and MC-CarbonFiber Sheets are technically approved by the German Institute of Construction Technology (Deutsches Institut für Bautechnik – DIBt). Besides the CFRP strips themselves, the MC-CarbonFiber Lamella system consists of the corrosion primer Colusal VL, of the bonding coat MC-CarboSolid 1000 BC, repair mortar MC-CarboSolid 1000 and of the thermoset adhesive MC-CarbonSolid 1280. The CFRP strips are provided with a factory applied, protective tape on both sides, which is to be removed prior to adhesive application, in this way ensuring a clean surface and eliminating the need for a preliminary surface cleaning. The protective tape together with the excellent adhesive properties and optimum surface texture of the strips ensure a uniform and reliable bond, which is 40% stronger compared to common CFRP strips available on the market.

 

MC-CarbonFiber Sheets consist of unidirectional carbon fiber textiles. These are applied on plane or curved reinforced concrete surfaces for increasing their flexural and shear load bearing capacity and limit the crack width. In the case of columns, the cross-sectional confinement provided by the sheets can increase their load bearing capacity in compression. The system components next to the carbon fiber sheets are also system-designed and approved by DIBt. These are MC-CarbonSolid 1209 – lamination resin and MC-CarboSolid 1209 TX – adhesive. The bonding coat MC-CarboSolid 1000 BC and the repair mortar MC-CarboSolid 1000 are system components as well.

 

Related Products

pageImpression = pageImpression + 1; }); barba.init({ preventRunning: true, timeout: 5000, /* for debuggin usi this parameters debug: false, logLevel: 'debug', */ /*sync: true,*/ // define a custom function that will prevent Barba // from working on links that contains a `prevent` CSS class prevent: ({ el, event, href }) => { if (!el) { return false; } if (el.href && el.href.includes('landingpages')) { return true; } if (el.classList && el.classList.contains('prevent')) { return true; } return false; }, preventScroll: true, scroll: false, views: [], transitions: [ { name: 'header-transition', sync: false, from: { custom: ({ trigger }) => { if (trigger.classList && trigger.classList.contains('headerFlip')) { transistionImage = trigger.getElementsByClassName("transitionImage")[0]; if (typeof transistionImage == "undefined") { return false; } transisitionEffect = getRandomInt(1); return true; } return false; } }, async leave(data) { if (transistionImage === null) return; // can be null, return if null to not throw an error if ( transisitionEffect == 0) { const done = this.async(); let element = transistionImage; let state = Flip.getState(element); let headerImage = document.getElementById('headerImage'); headerImage.removeChild(headerImage.getElementsByTagName('img')[0]); let headerContent = document.querySelector('.headerContent'); gsap.to(headerContent, { opacity: 0, }); let content = document.querySelector('.content'); gsap.to(content, { opacity: 0, }); headerImage.appendChild(element); scroll(0,0); Flip.from(state, {duration:0.9, ease: "power1.inOut", scale: true, absolute:true,}); await delay(900); // Der await Operator wird genutzt, um auf einen Promise zu warten. Er kann nur in einer async Funktion benutzt werden. done(); } }, enter(data) { window.scrollTop = '0'; let content = data.next.container.querySelector('.content'); gsap.from(content, { opacity: 0, }); let headerContent = data.next.container.querySelector('.headerContent'); gsap.from(headerContent, { opacity: 0, delay: 0.5, }); }, after(data) { } }, { name: 'microsites_sliding_scroll', sync: true, from: { custom: (data) => { const { trigger, current, next } = data; function getParent(pathname) { const parts = pathname.split('/').filter(part => part !== '') return parts.length > 1 ? parts[parts.length - 2] : parts[0] || null } if (trigger === 'popstate' || trigger === 'back' || trigger === 'forward') { return false; } if(trigger.classList.contains('microsites_sliding_scroll') || trigger.classList.contains('sliding_scroll')){ return true; } if(current.namespace == 'template_138' && next.namespace == 'template_138') { return getParent(current.url.path) === getParent(next.url.path) } return false; } }, to: { namespace: [ 'template_120', 'template_138', ] },async leave({ current, next, trigger }) { const debug = window.debug; if (debug) console.log('Debug mode enabled'); const done = this.async(); const menuindexCurrent = +current.container.querySelector('[data-menuindex]').dataset.menuindex; const menuindexNext = +next.container.querySelector('[data-menuindex]').dataset.menuindex; const nextContent = next.container.querySelector('.content'); const currentContent = current.container.querySelector('.content'); let xPerc = menuindexCurrent < menuindexNext ? 100 : -100; const navbarHeight = document.querySelector('.navbar').offsetHeight; const pageHeight = document.querySelector('.header').offsetHeight; const nextContentHeight = nextContent.offsetHeight; const totalHeight = nextContentHeight + navbarHeight + pageHeight; document.body.style.minHeight = `${totalHeight}px`; const targetScrollY = trigger.classList.contains('microsites_sliding_scroll') ? pageHeight - navbarHeight : pageHeight + navbarHeight; const top = trigger.classList.contains('microsites_sliding_scroll') ? '0px' : '116px'; gsap.set(next.container, { xPercent: xPerc, position: 'absolute', top: top, left: 0, display: 'block' }); const tl = gsap.timeline({ onComplete: () => { gsap.set(current.container, { display: "none" }); gsap.set(next.container, { clearProps: 'position,top,left,xPercent' }); gsap.set(nextContent, { clearProps: 'xPercent' }); document.body.style.minHeight = ''; done(); } }); tl.to(currentContent, { xPercent: -xPerc, duration: debug ? 5 : 0.5, ease: "power1.inOut", }, 0); tl.to(nextContent, { xPercent: -xPerc, duration: debug ? 5 : 0.5, ease: "power1.inOut" }, 0); tl.to(window, { scrollTo: { y: targetScrollY }, duration: debug ? 5 : 0.5, ease: "power1.inOut" }, 0); }, enter({ next }) { gsap.from(next.container, { opacity: 0, }); } }, { name: 'microsites_sliding', sync: true, from: { custom: ({ trigger }) => { if (trigger === 'popstate' || trigger === 'back' || trigger === 'forward') { return false; } if(trigger.classList.contains('microsites_sliding')){ return true; } return false; } }, to: { namespace: [ 'template_120', ] }, async leave({current, next}) { const done = this.async(); const tl = gsap.timeline({onComplete: ()=>{ gsap.set(next.container, {clearProps: 'all'}) gsap.set(next.container.querySelector('.content'), {clearProps: 'all'}) }}) const currentContent = current.container.querySelector('.content') const nextContent = next.container.querySelector('.content') const currentH1 = document.querySelector('.currentPagetitle') const currentIntrotext = document.querySelector('.currentIntrotext') const nextH1 = next.container.querySelector('.pageTitle') const nextIntrotext = next.container.querySelector('.introtext') gsap.set(next.container, { xPercent: 100, position: 'absolute', top: 0, left: 0 }) tl.to(currentContent, {xPercent: -100, opacity: 0, duration: 1, ease: "power1.inOut", onComplete: () => { gsap.set(current.container, { display: "none" }); }}, 0) .to([currentH1, currentIntrotext], { opacity: 0, duration: 0.5, ease: "power1.inOut", onComplete: () => { currentH1.innerText = nextH1.innerText; currentIntrotext.innerText = nextIntrotext.innerText; }}, 0) .to([currentH1, currentIntrotext], { opacity: 1, duration: 0.5, ease: "power1.inOut" }, 0.5) .to(nextContent, {xPercent: -100, duration: 1, ease: "power1.inOut"}, 0) await delay(1000); done(); }, enter({next}){ gsap.from(next.container, { opacity: 0, }); } }, { name: 'default', sync: false, async leave(data) { const done = this.async(); gsap.to(data.current.container, { opacity: 0, duration: 0.5, }); await delay(500); // Der await Operator wird genutzt, um auf einen Promise zu warten. Er kann nur in einer async Funktion benutzt werden. scroll(0,0); done(); }, enter(data) { window.scrollTop = '0'; gsap.from(data.next.container, { opacity: 0, duration: 0.5, }); }, after(data) { // START: Ankur - 15062023 - For Scroll Position History if(scrollHistory[data.next.url.href]) { let scroll = scrollHistory[data.next.url.href]; window.scrollTo({top: scroll.y, behavior: 'instant'}); } // END: Ankur } }, { name: 'self', enter() { }, } ] }); });