System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'AlsoVisibleInDomains'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
   at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   --- End of inner exception stack trace ---
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
   at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass41_0.<GetResults>b__0()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__31_0()
   at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
   at MuME2.Data.Managers.CachingManagerBase`2.GetDictionary() in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\CachingManagerBase.cs:line 70
   at MuM.Foundation.Caching.Services.CustomCacheService.Get[T](String key, GetFromSourceDelegate`1 getDelegate) in D:\a\1\s\src\Foundation\Caching\code\Services\CustomCacheService.cs:line 260
   at MuME2.Data.Managers.CachingManagerBase`2.get_CachedDictionary() in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\CachingManagerBase.cs:line 72
   at MuME2.Data.Managers.CachingManagerBase`2.All() in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\CachingManagerBase.cs:line 67
   at MuME2.Data.Managers.EventTypeManager.All() in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\EventTypeManager.cs:line 26
   at MuME2.Data.Managers.EventTypeManager.SingleByName(String name) in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\EventTypeManager.cs:line 90
   at MuME2.Data.Managers.EventManager.SingleForDetails(Uri url) in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\EventManager.cs:line 73
   at MuM.Project.Website.Services.SeoService.GetCurrentEvent() in D:\a\1\s\src\Project\Website\code\Services\SeoService.cs:line 216
   at MuM.Project.Website.Services.SeoService.GetCanonicalUrl(Base_Page page, String customHost) in D:\a\1\s\src\Project\Website\code\Services\SeoService.cs:line 188
   at MuM.Project.Website.Services.SeoService.RenderHrefLangTags(Base_Page page) in D:\a\1\s\src\Project\Website\code\Services\SeoService.cs:line 65
   at Mum.Relaunch.Web.Controllers.Framework.DefaultPageController.HtmlHead() in D:\a\1\s\src\Legacy\Mum.Relaunch.Web\Controllers\Framework\DefaultPageController.cs:line 111
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__11_0()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_1.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_1.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.<BeginInvokeAction>b__3()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult)
    
Wohin mit den neuen Rohrleitungen? Produktionsanlagen zu erweitern, ist eine Herausforderung für jeden Planer.

Maßarbeit

Laserscanning vermindert bei der Purplan GmbH Ausschuss und Fehlerquote

Industrieanlagen entstehen nur selten auf der sprichwörtlichen grünen Wiese. Oft müssen ältere Anlagen ergänzt oder erweitert werden. Die Purplan GmbH in Wallenhorst bei Osnabrück hat ihre Anlagenbausoftware durch eine Laserscanning-Lösung von MuM modernisiert und damit die Qualität ihrer Arbeit erheblich verbessert. Auch die Auslandsniederlassungen ziehen nach.
Seit 2003 plant und baut die Purplan GmbH Anlagen zur Polyurethan und Kunstharzproduktion für Kunden in der ganzen Welt. Das inhabergeführte Familienunternehmen beschäftigt rund 200 Mitarbeiterinnen und Mitarbeiter, davon 25 Auszubildende. Zu den Kunden gehören international tätige Konzerne ebenso wie mittelständische Unternehmen aus der chemischen und kunststoffverarbeitenden, der Lebensmittel- und Automobilindustrie.

Erfolgsfaktor Vorproduktion

Jede Anlage wird für den Kunden individuell entwickelt und konfiguriert. Bei Purplan kennt man die Produktionserfordernisse ebenso wie die landesspezifischen Regelungen und betreut Projekte von der Konfiguration über die Automatisierungstechnik bis zur Übergabe und Inbetriebnahme. Die Vorproduktion der Anlagenkomponenten in den eigenen Werken spielt dabei eine wichtige Rolle: Je exakter die einzelnen Einheiten im Werk gefertigt werden können, desto weniger Abfall entsteht bei der Montage vor Ort, desto schneller kann die Anlage abgenommen werden und in Betrieb gehen.

Von AutoCAD zu Plant 3D

Schon bei der Gründung hatte man sich für Software aus dem Hause Autodesk entschieden: Mit AutoCAD zeichneten die Planer Fließbilder, mit Hilfe von Autodesk Inventor entstanden die 3DKonstruktionen der Anlagen. Die MuM-Niederlassung in Osnabrück war von Anfang an Partner und beratender Begleiter auf dem Erfolgsweg. Der Umstieg auf AutoCAD P&ID, um mehr Intelligenz in der Planung zu nutzen und saubere Dokumentationen zu erzeugen, war ebenso konsequent, wie die Einführung von Autodesk Plant 3D. „Für uns war die Verknüpfung von Schema und Anlagenkonstruktion wichtig“, sagt Geschäftsführer Christian Bertram. „Wenn man sicher sein kann, dass Änderungen an einer Stelle im Projekt automatisch überall nachgeführt werden, ist das ein großer Vorteil.“

„Händisches“ Aufmessen wird immer schwieriger

Doch alle Software-Intelligenz half nicht, Bestandsdaten von Anlagen zu erfassen, die erweitert werden mussten. Wenn bereits Rohrleitungssysteme vorhanden sind, müssen die neuen Rohrleitungen „irgendwie“ ergänzt werden, und dazu muss man genau wissen, welche Leitung wo verläuft und wo Platz für neue Leitungen ist. Auch modernere Anlagen, die vor 20 oder 30 Jahren gebaut wurden, sind meist nicht in 3D dokumentiert. Zum Vermessen des Ist-Zustandes musste man die Anlagen bisher aufwändig einrüsten und dann sehr sorgfältig arbeiten, um alle Bestandteile korrekt zu erfassen.

Laserscan als Pilotversuch

„Dann kam der Auftrag eines Kunstharzherstellers, bei dem ein händisches Aufmessen einfach unmöglich war“, erinnert sich Christian Bertram. „Es mussten etwa 60 bis 70 Meter Rohre mit einer Nennweite von DN 600 und DN 800 durch den Bestand geplant werden.“ Bei Purplan war bekannt, dass MuM nicht nur eine Lösung für das Laserscanning anbot, sondern Scanarbeiten auch als Dienstleistung durchführte. MuM wurde beauftragt, die Kundenanlage zu scannen. Natürlich beobachteten die Konstrukteure bei Purplan sorgfältig, wie hier gearbeitet wurde, um zu entscheiden, ob sich die Anschaffung einer eigenen Scannerlösung lohnen würde.

Einfacher als man denkt

Tatsächlich war die Aufnahme der Anlage mit dem Focus S150 von Faro innerhalb eines einzigen Tages erledigt. Der Scan liefert sowohl Punktwolken der Anlage als auch hochaufgelöste Fotos. Die Daten werden in der Scannersoftware Autodesk ReCap „vorbearbeitet“ und können dann in Plant 3D eingelesen werden. Die Rohrleitungskonstruktion aus Plant 3D wird zusammen mit den Stahlbaukonstruktionen aus einer Drittsoftware nach Navisworks eingelesen, wo Kollisionsprüfungen durchgeführt werden. Nach Abschluss der Planung lassen sich die Isometrien für die Fertigung direkt aus Plant 3D generieren.
Wo händisches Messen nicht oder nur mit hohem Aufwand möglich ist, springt der 3D-Laserscanner ein und liefert Punktwolken und digitale Fotos.
Purplan-Geschäftsführer Christian Bertram kann Laserscanning heute als neue Dienstleistung anbieten.

Neuausrichtung in zwei Monaten

Damit können weit mehr Anlagenteile in der exakten Größe im Werk produziert werden, auf der Baustelle wird schneller montiert, und natürlich „produziert“ man weniger Ausschuss, da die Rohre passgenau vorgefertigt sind. „Das Ergebnis hat uns absolut überzeugt, und wir haben drei Monate später einen eigenen Scanner angeschafft“, erzählt Christian Bertram. Wie bei früheren Softwareumstellungen übernahmen die Spezialisten von MuM auch hier Schulung und Einführung, und innerhalb von zwei Monaten wurde bei Purplan die komplette Fertigung umgestellt.

Mitarbeiter mitnehmen

Von den rund 20 Mitarbeiterinnen und Mitarbeitern, die mit der CAD-Software arbeiten, nutzen mittlerweile acht Personen AutoCAD Plant 3D, sechs davon beherrschen auch die Verarbeitung der Daten des Laserscanners. Die Umstellung sei leicht gefallen, erinnert sich Christian Bertram, alle hätten die neue Technologie spannend gefunden und die Erleichterungen erkannt, die die neue Arbeitsweise bietet.

Kürzere Stillstandzeiten beim Kunden

Die Erfahrungen aus dem Pilotprojekt ließen sich bei jedem weiteren Projekt wiederholen. „Die Fehlerrate ist drastisch gesunken, und das Qualitätsmanagement im eigenen Haus hat sich stark verbessert“, weiß der Geschäftsführer. Auch die Kunden profitieren unmittelbar von der neuen Technologie: Notwendige Betriebsunterbrechungen während der Aufmaß- und Bauphase sind deutlich kürzer als früher.

Die Reise – mit MuM – geht weiter

Auch die Purplan-Niederlassungen im Ausland nutzen inzwischen die Scanninglösung, und für Purplan Deutschland hat sich ein neues Geschäftsfeld eröffnet: Heute bietet man Laserscans als Dienstleistung an. Christian Bertram und sein Führungsteam sind – gut begleitet von MuM – bereits einen Schritt weiter: Im Augenblick wird die CAD-Server-Struktur virtualisiert, damit die volle Rechenleistung auch mobil verfügbar ist. Damit vereinfacht man die Administration, die Arbeitsumgebung ist weltweit verfügbar und die Daten bleiben sicher am Firmenstandort in Wallenhorst.
Das Ergebnis eines Laserscans sieht aus wie ein Foto, hat aber viel mehr zu bieten: Man kann z. B. Abstände exakt ausmessen oder neue Verrohrungen einzeichnen.