Skip to content

Repository files navigation

NLCS Legenda

CI Release License

Voor een NLCS-tekening teken je de legenda meestal met de hand: voor elk element een blokje, de juiste arcering erin en de tekst ernaast. Dat werk neemt deze plugin over. Hij leest de InfraCAD/NLCS-lagen die al in je Civil 3D- of AutoCAD-tekening zitten en zet daar de bijbehorende legenda bij, in dezelfde stijl.

De tab NLCS Legenda in het lint

Zo werkt het

Start NLCSLEGENDA. Je kunt eerst nog de schaal of een paar opties zetten; daarna hangt de legenda aan je cursor en zet je hem naast de tekening neer. Standaard maakt hij een legenda van de hele tekening; kies je in het optiemenu Selecteren, dan komt er een legenda van alleen die selectie. Alles komt in de model space op de eigen NLCS-lagen, dus kleur en lijntype kloppen meteen. Wie liever klikt dan typt vindt in het lint een tab NLCS Legenda met dezelfde functies.

Je kunt meerdere legenda's naast elkaar in één tekening hebben, bijvoorbeeld één voor de hele tekening en aparte legenda's voor deelgebieden. Elke legenda onthoudt zijn eigen bron (hele tekening of selectie) en zijn eigen instellingen. NLCSLEGENDABEHEER toont de legenda's en laat je ze bijwerken, hernoemen, opzoeken (zoomen) en verwijderen. In hetzelfde venster pas je per gekozen legenda de instellingen aan (de legenda wordt daarna in dezelfde bewerking opnieuw opgebouwd), neem je de instellingen over van een andere legenda, dupliceer je een legenda, wijzig je de bronselectie of zet je de opmaak van die legenda als globale standaard voor nieuwe legenda's.

Is het ontwerp veranderd, dan tekent NLCSLEGENDAUPDATE de legenda opnieuw op precies dezelfde plek. Is er één legenda, dan gaat dat direct; bij meerdere klik je de gewenste legenda aan (of kies je uit een lijst). Een selectielegenda wordt daarbij opnieuw van diezelfde selectie opgebouwd, niet van de hele tekening. NLCSLEGENDAVIEWPORT maakt in de paper space een viewport rond de gekozen legenda op de ingestelde schaal.

De globale instellingen zijn het startpunt voor een nieuwe legenda. Zet je later de globale standaard anders, dan verandert een bestaande legenda niet mee: die houdt de instellingen waarmee hij is gemaakt. De instelcommando's (NLCSLEGENDAOPTIES, NLCSLEGENDASAMENSTELLEN, NLCSLEGENDATEKST, NLCSLEGENDASTATUS, NLCSLEGENDAXREFS, NLCSLEGENDAUITVINKEN, NLCSLEGENDATOEVOEGEN, NLCSLEGENDAPRESET) vragen eerst waarop je het toepast: op een bestaande legenda (die wordt dan meteen bijgewerkt) of op de globale standaard voor nieuwe legenda's. Bestaat er nog geen legenda, dan geldt vanzelf de globale standaard. De instellingen van één bestaande legenda bewerk je ook via NLCSLEGENDABEHEER. Het instellingenvenster bundelt alles in tabbladen: naast schaal, inhoud, opmaak, teksten, hoeveelheden en schaalbalk zitten daar ook de per-xref keuze, de eigen statussen inclusief ledentoewijzing en de omschrijvingen. De losse commando's blijven als snelkoppeling bestaan. De omschrijvingen bewerk je met NLCSLEGENDAOMSCHRIJVINGEN, en NLCSLEGENDATEKST past de tekst van één aangeklikt element aan. Een nieuwe legenda wordt standaard als één blok geplaatst; met Exploderen bij plaatsen kies je losse entiteiten.

Weet je niet zeker waarom een element niet in de legenda staat? NLCSLEGENDAELEMENT laat je een object aanwijzen en meldt of en waarom het wel of niet in de gekozen legenda komt (status, discipline, hoofdgroep, elementsoort, xref, zichtbaarheid of uitgevinkt).

De teksten volgen de NLCS-template: tekststijl NLCS-ISO met vaste hoogtes (2,5 mm voor regels, 5 mm voor koppen, 7 mm voor de titel) op de tekstlagen -T25 en -T50.

Onder de legenda komen standaard een meeschalende schaalbalk en een opmerkingenblok. Allebei kun je uitzetten of aanpassen.

NLCSLEGENDAEXPORT schrijft de regels van de huidige tekening weg als CSV en JSON. Wil je een hele projectmap in één keer, dan leest NLCSLEGENDABATCH elke DWG in een gekozen map (zonder ze te openen of te wijzigen) en zet alles in één uittrekstaat met een kolom Tekening; een tekening die niet leesbaar is, wordt overgeslagen en gemeld.

Niet elke NLCS-laag hoeft in de legenda. Met NLCSLEGENDAUITVINKEN klik je een element aan om die regel weg te laten (of weer terug te zetten). Heb je een eigen laag die er juist wél bij hoort, dan maak je met NLCSLEGENDATOEVOEGEN een regel aan: je kiest het type (lijn, vlak, arcering, vlakvulling of symbool), de laag en de omschrijving. In NLCSLEGENDABEHEER staat dit bij elkaar in één venster. Het uitvinken en de eigen regels horen bij de globale standaard of bij één legenda.

Heb je eigen (niet-NLCS) lagen die als echte bron moeten meetellen, dan koppel je die in het instellingenvenster onder Eigen lagen. Zo'n koppeling werkt als een NLCS-laag: je kiest de laag, het type en de hoeveelheid (lengte, aantal of oppervlak), en de legenda leest de echte geometrie van die laag. Je kiest ook de bron: alleen de hoofdtekening (lokaal), elke meegenomen bron, of één specifieke xref. Zit dezelfde laagnaam zowel in de host als in een xref, dan houdt de bron ze uit elkaar. Het verschil met NLCS zit alleen in de herkenning: een NLCS-laag wordt automatisch uit de laagnaam geclassificeerd, een eigen laag expliciet via jouw regel; daarna doorlopen beide exact dezelfde legendapipeline (groeperen, hoeveelheden, zichtbaarheid, filters, rendering). Anders dan een handmatige regel (die vast is) verschijnt een eigen laag alleen als er objecten op staan, en de hoeveelheden komen uit de tekening. Je koppelt alleen de lagen die je zelf aanwijst; hulp- en annotatielagen blijven buiten beeld.

Je kunt ook per elementsoort kiezen wat in de legenda komt: geometrie/lijnen, vlakken, arceringen, vlakvullingen en symbolen zijn afzonderlijk aan of uit te zetten. Standaard staat alles aan. Je vindt dit in NLCSLEGENDAOPTIES onder Elementsoorten en in het keuzemenu vóór het plaatsen. NLCSLEGENDAINFO meldt welke soorten uitstaan.

Voor KLIC-tekeningen (kabels en leidingen) kun je regels samenvoegen op een eigenschap. Onder Groepering in de instellingen zet je los aan of je samenvoegt op soort, spanning/druk, uitvoering (mantelbuis/hulpstuk) of volgnummer. Zo worden bijvoorbeeld DATA, DATA2 en DATA3 één regel, of hoog- en laagspanning samen. De hoeveelheden tellen op en het is omkeerbaar: zet je de groepering uit, dan staat elke laag weer apart. Generieke placeholdertekst uit KLIC-symbolen (zoals "TYPE \ LABEL \ OMSCHRIJVING") wordt standaard weggelaten; echte tekst blijft staan.

Onder Groepering staat ook Gelijke statussen samenvoegen. Die voegt dezelfde regel uit verschillende statussen samen, maar alleen als lijn, vlak, arcering en symbool er precies hetzelfde uitzien. Standaard staat dit uit, omdat de status in NLCS meestal juist de kleur bepaalt.

Naast de vaste statussen (Nieuw, Bestaand, Vervallen, Tijdelijk, Revisie) maak je met NLCSLEGENDASTATUS eigen statussen aan. Daar wijs je regels aan toe: automatische NLCS-lagen door ze in de tekening aan te wijzen, handmatige regels via een lijstje. Zo'n regel verschijnt dan onder de eigen kopregel, ook als de gewone status ervan uitstaat.

Werk je met externe referenties, dan bepaalt NLCSLEGENDAXREFS per gekoppelde xref of die meetelt. Dit geldt als globale standaard; per legenda pas je het aan via NLCSLEGENDABEHEER.

Heb je een legenda-opzet die je vaker gebruikt, dan bewaar je die met NLCSLEGENDAPRESET als profiel. In een volgende tekening laad je het profiel weer als globale standaard. Zo hoef je schaal, teksten en opmaak niet telkens opnieuw in te stellen. Een profiel kun je ook exporteren naar een .json-bestand en op een andere computer weer importeren, zodat je een opzet met collega's kunt delen.

Commando Doet
NLCSLEGENDA Legenda genereren en met de muis plaatsen (hele tekening of selectie).
NLCSLEGENDAUPDATE Een legenda opnieuw tekenen op dezelfde plek; bij meerdere kies je welke.
NLCSLEGENDABEHEER Legenda's bekijken, bijwerken, hernoemen, opzoeken, verwijderen, en per legenda instellingen aanpassen, overnemen, dupliceren of de bron wijzigen.
NLCSLEGENDAELEMENT Klik een object aan en zie of en waarom het in de gekozen legenda komt.
NLCSLEGENDAINFO Tonen wat erin zou komen (aantallen, lengtes, oppervlakten, totalen per hoofdgroep) en welke regels nog een eigen omschrijving missen, zonder te tekenen.
NLCSLEGENDAEXPORT De regels wegschrijven als CSV en JSON, met hoeveelheden en de herkomst van elke omschrijving.
NLCSLEGENDABATCH Alle DWG's in een map samen in één uittrekstaat (CSV/JSON) met een kolom Tekening.
NLCSLEGENDAVIEWPORT Een viewport in de huidige layout rond de legenda, op schaal.
NLCSLEGENDAOPTIES Alle instellingen bewerken in een venster met normale tabbladen (schaal, inhoud, opmaak, teksten).
NLCSLEGENDAOMSCHRIJVINGEN De omschrijvingen per element bewerken in een tabel.
NLCSLEGENDATEKST Klik een element aan en pas de tekst ervan aan (meerdere regels mogelijk).
NLCSLEGENDASAMENSTELLEN Regels uitvinken en eigen regels toevoegen in één venster.
NLCSLEGENDAUITVINKEN Klik een element aan om die regel uit de legenda te laten.
NLCSLEGENDATOEVOEGEN Een eigen regel toevoegen (type, laag en omschrijving zelf kiezen).
NLCSLEGENDASTATUS Eigen statussen maken en er regels aan toewijzen (naast Nieuw/Bestaand/...).
NLCSLEGENDALAAGNAAM Een NLCS-laagnaam component voor component bewerken en de laag hernoemen.
NLCSLEGENDAXREFS Per gekoppelde xref kiezen of die in de legenda wordt meegenomen.
NLCSLEGENDAPRESET Instellingen van de globale standaard of een gekozen legenda als profiel opslaan, laden, en im-/exporteren.
NLCSLEGENDACONFIG De globale configuratiebestanden aanmaken en de paden tonen.
NLCSLEGENDATEST Plaatsen zonder vragen; bedoeld voor scripts en tests.

Headless gebruik (Core Console)

De meeste commando's zijn bedoeld voor AutoCAD/Civil 3D met venster. In de AutoCAD Core Console (accoreconsole.exe, zonder venster) werken alleen de commando's die geen muis of dialoog nodig hebben: NLCSLEGENDAINFO, NLCSLEGENDATEST, NLCSLEGENDAEXPORT, NLCSLEGENDAUPDATE en NLCSLEGENDABATCHTEST. Een venster-commando (zoals NLCSLEGENDA, NLCSLEGENDABEHEER of NLCSLEGENDAVIEWPORT) weigert in de Core Console netjes en wijzigt niets.

NLCSLEGENDAUPDATE en NLCSLEGENDAEXPORT kiezen headless automatisch de legenda als er maar één is. Zijn er meerdere, kies er dan één via de omgevingsvariabele NLCSLEGENDA_TARGET (een legenda-id of een unieke naam) vóór het starten van de Core Console; zonder die keuze weigeren ze veilig in plaats van een object te vragen.

Installatie

Er zijn twee manieren, allebei bij de releases.

Met de installer (aanbevolen). Download NlcsLegenda-X.Y.Z.msi en voer die uit. De installer zet de plugin per gebruiker neer in %APPDATA%\Autodesk\ApplicationPlugins (geen beheerdersrechten nodig), staat daarna in Windows bij Apps om te de-installeren, en bevat één bestand dat voor 2025, 2026 én 2027 werkt. Start Civil 3D of AutoCAD daarna opnieuw.

De installer is self-signed ondertekend als joligej. Die handtekening laat zien dat het bestand na ondertekening niet is gewijzigd; hij zegt niets over een door een externe autoriteit geverifieerde identiteit. Windows toont pas een vertrouwde uitgever als je het meegeleverde joligej-codesign.cer zelf importeert. Doe dat alleen als je dit certificaat vertrouwt: een certificaat in Vertrouwde basiscertificeringsinstanties geldt voor je hele gebruikersprofiel. Zonder import werkt de installer gewoon, maar staat er "onbekende uitgever". Een download controleer je met SHA256SUMS.txt bij de release.

Handmatig (zip). Download NlcsLegenda-2027-vX.Y.Z.zip (of de 2025-/2026-variant), pak de map NlcsLegenda.bundle uit in %APPDATA%\Autodesk\ApplicationPlugins\ en start Civil 3D of AutoCAD opnieuw. De bundle bestaat uit twee dll's die bij elkaar horen.

Aan het ontwikkelen? Bouw met dotnet build -c Release en laad de gebouwde NlcsLegenda.dll met NETLOAD. Voor 2027 geef je -p:AcadVersion=2027 mee; dat is .NET 10 en de dll belandt in bin\Release\net10.0-windows. 2025 en 2026 zijn .NET 8 (bin\Release\net8.0-windows).

Welke lagen worden opgepakt

Alleen op basis van de laagnaam. Een NLCS-laag ziet er zo uit: N-WE-VH-OPENVERHARDING_BETONSTRAATSTEEN-A. Het eerste teken is de status (N voor nieuw, B voor bestaand, V voor vervallen, enzovoort); de rest beschrijft het element en het tekentype: lijn, arcering of symbool. De volledige opbouw staat in docs/NLCS-conventies.md.

Voor de tekst naast een symbool kijkt de plugin op volgorde naar: de laagbeschrijving die InfraCAD invult, de omschrijvingen (de ingebouwde NLCS-catalogus plus je eigen per-legenda omschrijvingen uit NLCSLEGENDAOMSCHRIJVINGEN), en anders een opgeschoonde laagnaam. Er is geen koppeling met InfraCAD of een externe database; alles komt uit de tekening zelf. NLCSLEGENDAINFO laat zien welke regels op de laagnaam terugvallen, zodat je gericht een eigen omschrijving kunt toevoegen.

Een omschrijving heeft een algemeen en een specifiek deel, bijvoorbeeld "Verharding" en "Betonstraatsteen". Standaard toont de legenda alleen het specifieke deel; met de optie Algemeen (of includeGeneralDescription) zet je het algemene deel ervoor.

Configuratie

NLCSLEGENDAOPTIES bewerkt de globale standaard die geldt voor nieuwe legenda's. De instellingen van een bestaande legenda pas je aan via NLCSLEGENDABEHEER; die horen bij die ene legenda en worden in de tekening bewaard. De opmaak van een legenda kun je in het beheervenster ook als nieuwe globale standaard instellen.

De globale standaard staat in %APPDATA%\NlcsLegenda\settings.json, los van de plugin zelf: de dll's staan in ApplicationPlugins (vaak alleen-lezen) en je instellingen bij je profiel. NLCSLEGENDACONFIG maakt dat bestand aan en toont de paden. Een voorbeeld staat in deploy/settings.sample.json; wat je weglaat krijgt de standaardwaarde.

De omschrijvingen bewerk je met NLCSLEGENDAOMSCHRIJVINGEN; die worden globaal bewaard in %APPDATA%\NlcsLegenda\omschrijvingen.json. Een voorbeeld staat in deploy/omschrijvingen.sample.json. Omschrijvingen die je voor één legenda wilt afwijken, stel je per legenda in via NLCSLEGENDABEHEER.

Bouwen en testen

Je hebt de .NET SDK nodig (versie 8 voor AutoCAD 2025 en 2026, versie 10 voor 2027). AutoCAD hoeft er niet op te staan om te bouwen: is het niet geïnstalleerd, dan gebruikt de build de AutoCAD.NET-referenties van NuGet.

dotnet build NlcsLegenda.slnx -c Release
dotnet test NlcsLegenda.slnx

Het ontleden van laagnamen, groeperen en de opmaak zitten in NlcsLegenda.Core, los van AutoCAD, en zijn dus met dotnet test te controleren. Wil je de hele plugin op een echte tekening draaien, dan doet dev/scripts/Run-HeadlessLegendTest.ps1 dat headless via de AutoCAD Core Console. dev/scripts/Run-IntegrationTests.ps1 draait plaatsen, overzicht, export en bijwerken achter elkaar en controleert de resultaten.

Ondersteunde versies

AutoCAD/Civil 3D 2025, 2026 en 2027 (64-bit). De plugin bouwt op .NET 8 voor 2025/2026 en op .NET 10 voor 2027. De .NET 8-build laadt zowel op de oudere .NET 8-hosts (2025 t/m Update 1.3, 2026 t/m Update 1.1) als op de nieuwere .NET 10-hosts (2025.1.4+, 2026.1.2+), zodat één installatie alle updates dekt. Getest op AutoCAD 2025 (Update 1.4, .NET 10) en 2027.1 (.NET 10). Werk Autodesk-producten en object enablers op dezelfde machine samen bij naar hun .NET 10-versie; dat is Autodesk-advies, los van deze plugin.

Beperkingen

De ingebouwde teksten dekken de gangbare elementen. Voor de rest valt de plugin terug op de laagbeschrijving of de laagnaam. Wil je een sluitende lijst, vul dan omschrijvingen.json aan; NLCSLEGENDAINFO wijst aan welke regels nog terugvallen op de laagnaam. De maatvoering rekent van papier-millimeters naar modeleenheden en gaat uit van een tekening in meters (de gebruikelijke RD-eenheid); annotatieve schaal wordt niet gebruikt.

Licentie

MIT, zie LICENSE.

About

Civil 3D / AutoCAD-plugin die automatisch NLCS-legenda's genereert uit een tekening

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages