FastFiber

Paste & Redefine in een keer, Part I

Gestart door AdenRob, do 01 11 2012, 12:04:38

Vorige topic - Volgende topic

AdenRob

Hallo mede cadgebruikers,

Wij zitten met een cadprobleem in onze maag, daar onze manager geen cadspecialist is, laat hij ons dwg’s opsplitsen in meerdere dwg’s, zodat ontwerp en uitvoering door elkaar lopen. Hij heeft snel zijn gewenste tekening, wij een probleem erbij.
Wij hebben één project wat dus HELAAS NIET in één dwg getekend is. Dit is de KERN van het probleem!
Wij tekenen (bijna) 100% in BLOCKEN.
Wat doet autocad, de eerste dwg die geopend is, wordt door autocad beschouwd als basis.
Meestal is dit zoals gewenst, maar niet altijd!

Ps windows verkenner heeft WEL deze functie; deze vraagt altijd wat men wil doen als er een bestand gekopieerd wordt wat reeds bestaat;  bestand overschrijven of bestaande handhaven.

Voorbeeld;
Drawing 1 wordt beschouwd als de basistekening! Deze dient aan het einde van de bouw als revisietekening!
In zowel drawing 1 als drawing 2 staan beide gebouwen A en gebouw B getekend.
Als gebouw A in drawing 1 wordt gewijzigd en gebouw B in drawing 2 (opgegeven door de manager) wordt gewijzigd zijn BEIDE tekeningen NIET meer compleet kloppend.

Nu heeft autocad hier wel wat voor bedacht; autocad design center door hier op een block te gaan staan wat men wil inserten en/of redefinen.
Prima!
Dit zal ook werken in de bijgevoegde drawing 1 en drawing 2 voorbeelden.

MAAAAR.. Dit werkt niet meer als men meer dan 1000 blocks in een tekening heeft zitten, waar men in een gedeelte van de tekening er b.v. 150 heeft gewijzigd.

Onze vraag; hoe kunnen wij gebouw B in drawing 2 met behulp van een window of crossing selekteren en deze dan in drawing 2 kopiëren zodat hier ook de wijziging van gebouw B zichtbaar wordt?
Wij zijn eigenlijk op zoek naar een soort functie van; paste to original coordinates and redefine, met behulp van selecteren d.m.v. een window of crossing.

Wie heeft er suggesties of
nog mooier de oplossing voor dit (helaas steeds vaker) voorkomend probleem?

Groeten,
AdenRob

EddyBeerke

Is het misschien een idee om met xref's te wereken.
Dit werkt bijna hetzelfde als een block.
In wezen is het ook een block dat gelinked is aan een andere dwg-file.
Als je dan het "block" moet aanpassen doe je dat gewoon in de bron van de xref.
Je in tekening  even de xref herladen en het resultaat is dat je nooit meer redefine issues krijgt.
Als je dan de tekening opleverd maak je een e-transmit waar ook de xref's bij zitten.

Wij werken op die manier al jaren!
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

MK90

Misschien is het een idee om de blokken dynamisch te maken? Op die manier zijn ze makkelijker aan te passen en bij het plakken in een andere tekening blijft het object zoals je het hebt aangepast.

AdenRob

@ Eddy,

Bedankt voor het meedenken.
Dit zou een mooie oplossing zijn als dit inderdaad de standaard is binnen het bedrijf.
Wij werken reeds zo'n 17 jaar met dwg's en (gelukkig) komen opdrachtgevers steeds terug.
Dus grijpen wij ook vaak terug op bestaande dwg's en moeten daar weer een kloppende versie van maken (revisie) als startpunt voor de nieuwe opdracht.
Bijkomend probleem is als men een block bv. installatie noemt. Dan heet deze in de Xref;
naamXrefinstallatie. Met andere woorden men heeft dan 1 blockobject met 2 verschillende blocknamen.
Dit is NIET gewenst!
Wij zouden dan uitsluitend ALLES met Xref's moeten gaan tekenen. Maar dat gaat niet lukken met onze dwg's waar, niet ongewoon, zo'n 1000 blocks (en blocks in blocks) in zitten.

@MK90
Dynamisch maken van blocks werkt niet voor het door ons geschetst probleem.

Autocad zou een optie, op een of andere manier, moeten geven dat bij command; ctrl.+c en selektie m.b.v. een crossing, de vraag verschijnt; REDEFINE BLOCKS or not REDEFINE BLOCKS, als autocad verschil ziet in de inhoud van de geselekteerde blocks en de basis dwg (doelbron).

Met vriendelijke groet,
AdenRob

bart

Voor het aangegeven probleem is een xref de perfecte oplossing
daarmee laat je in tekening 1 gewoon tekening 2 (of een deel daarvan) zien
je hebt dus maar 1 xref nodig om gebouw B in zijn geheel in tekening 1 te plaatsen

Maar de kern van jouw probleem is dat er blijkbaar niet gestructureerd wordt gewerkt en er dezelfde naam wordt gebruikt voor verschillende blocks
Of dat standaard blocken handmatig worden aangepast

Als de blocken van gebouw b niet in gebouw a zitten
kan je natuurlijk in tekening 1 gebouw b weggooien met erase een en  purge uitvoeren voordat je gebouw b opnieuw insert.
Er zitten dan als het goed is geen conflicterende blocken meer in tekening 1
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

AdenRob

@ Bart,
De functie xref is ons bekend (zie reactie #3 gericht aan Eddy).

We hebben vaak te maken met vele honderden al dan niet duizenden blocks in één dwg.

Je spreekt over gestructureerd werken; helemaal mee eens; dat is wat wij bovenaan in het “vaandel” hebben staan.

De tekening leegmaken en purgen kan inderdaad een optie zijn! Echter helaas gaat dit niet op bij grote projecten. Een Block kan op vele plaatsen staan in de dwg .
Deze is niet even snel te verwijderen (denk aan blocks IN blocks wat b.v. een filter niet kan vinden) en daarna opnieuw te plaatsen op alle plaatsen waar we deze verwijderd hebben.

Hetgeen waar we naar op zoek zijn is een functie die bij het plakken van meerdere blocks (geselecteerd middels een window en/of crossing) TEGELIJKERTIJD de mogelijkheid geeft om deze allemaal te redefinen.
Windows heeft deze functie ook bij het plakken van meerdere bestanden van de ene naar de andere map waarin dezelfde bestandsnamen voor komen. Hier wordt ook gevraagd;  “wilt u de bestaande behouden of overschrijven?”.

Tegen dit probleem lopen vele Cadtekenaars aan!

Wie heeft het Ei van Columbus?


EddyBeerke

Is het "BLOCKREPLACE" commando iets voor je?
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

MarcooPoloo

Ik dacht in de richting van VBA, zie hieronder een behandeling, echter lijkt niet zo simpel als het lijkt...

http://www.theswamp.org/index.php?topic=21998.0


bart

besten adenrob

Als die blocken zo moeilijk te achterhalen zijn zitten ze waarschijnlijk ook wel meerdere keren in een tekening
een block kan onder de zelfde naam echter maar 1 * in de database

ik vraag me af of je bij de xref inderdaad begrijpt wat ik  bedoel.
je kan namelijk gewoon een complete tekening xreffen in een andere al zitten er 10.000 blocks in.


om bij jouw voorbeeld te blijven met gebouw a en b

ik zou in tekening 1 bijvoorbeeld gebouw b weggooien
in tekening 2 gebouw a  en een tekening 3 maken waarin beide tekeningen zitten met een xref

Het bewerken blijf je gewoon in tekening 1 en 2 doen
waarbij tekening 3 automatisch meegaat.
tekening 1 en 2 zijn tekeningen zonder naamtoevoegingen

als alle blocks meegaan kan je de insert ook andersom uitvoeren

als je bij 1000 blocks handmatig moet beslissen kost dit veel tijd en worden er naar alle waarschijnlijkheid ook veel fouten gemaakt.




Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

EddyBeerke

Citaat van: AdenRob op do 01 11 2012, 12:04:38
Hallo mede cadgebruikers,

Wij zitten met een cadprobleem in onze maag, daar onze manager geen cadspecialist is, laat hij ons dwg’s opsplitsen in meerdere dwg’s...

Het werken met xref's bied dan juist een uitkomst.

Citaat van: AdenRob op do 01 11 2012, 12:04:38
Wij hebben één project wat dus HELAAS NIET in één dwg getekend is. Dit is de KERN van het probleem!
Wij tekenen (bijna) 100% in BLOCKEN.
Wat doet autocad, de eerste dwg die geopend is, wordt door autocad beschouwd als basis.
Meestal is dit zoals gewenst, maar niet altijd!
...

De KERN van het probleem is dus dat er niet een goed systeem is voor de naamgeving van de blocken.
Als je daar eerst aan werkt, ook al zijn het er 1000000, je moet ergens beginnen!
Of toch maar een xref.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

AdenRob

#10
Als eerste allen bedankt voor het meedenken!

@EddyBeerke; wij zijn bekend met het commando “blockreplace”’ echter biedt het voor ons geen oplossing omdat men hier de blocken één voor één moet behandelen, autocad designcenter biedt een soortgelijke functie. Dit werkt mooi voor ’n paar blocks, maar helaas niet voor (een gedeelte) van een gebouw in één keer.

@MarcooPoloo; wij hebben de link doorgenomen, echter zijn wij niet bekend met het werken met VBA, onze kennis qua programmeren reikt (helaas) maar tot de basisbeginselen van (V)lisp. Hierdoor kunnen wij niet testen of dit de functie is die wij zoeken. We willen onze kennis echter altijd uitbreiden, dus als dit de oplossing blijkt te zijn dan gaan we de studie boeken in voor een cursus VBA! Helaas zagen we bij de laatste post dat de lisp niet helemaal af is gemaakt.
Ook hebben we het idee dat het hierbij gaat over attribute informatie die niet wordt overgenomen. Wellicht komen we dit probleem ook nog tegen, maar we willen ons nu eerst even beperken tot onze HOOFDvraag.

@Bart; we zijn bekend met het werken met Xrefs. Maar dit werkt niet voor ons geschetst probleem. We willen 2 (of meerdere) tekeningen (of GEDEELTES) hiervan samenvoegen.  Xref’s zou kunnen, maar roept hele andere problematiek op, waarvoor beter een aparte topic gemaakt kan worden. Zie eventueel bijgevoegde jpg om de complexiteit van ons “probleem” enigszins te verduidelijken.

@EddyBeerke;  de naamgeving van de blocken heeft hier niks mee te maken. We snappen wel wat jij bedoelt. Maar wij willen BEWUST een gedeelte van een tekening waarvan wij 100% zeker weten dat DAT gedeelte goed is, in een andere tekening inserten. Komt het block nog niet voor is er niets aan de hand, komt echter WEL de blocknaam reeds voor (maar is de inhoud anders) dan zou dat block moet worden GEREDIFINED.

Omdat we denken dat het probleem niet voor iedere lezer helemaal begrepen wordt hebben we een voorbeeld project in de bijlage bijgevoegd. Dit is een project wat inmiddels uit ruim 10 gebouwen bestaat op een perceel van circa 7 hectare. Startdatum zo’n 15 jaar geleden en hier wordt de komende decennia nog veel aan gewerkt. Zowel nieuwbouw als renovatie etc.. Aangezien 99% van deze tekening uit blocks bestaat (dus vele duizenden blocks!) is het misschien voor te stellen dat het probleem complexer is dan onze voorbeeld dwg met gebouw A en gebouw B.
Maar het principe van “paste and redefine” blijft gelijk!

Wij zijn dus op zoek naar een (simpele) manier om een grote hoeveelheid blocks van dwg 1 naar dwg 2 te kopiëren, maar hierbij dienen wel alle blocks die in dwg 2 gekopieerd worden geredefined te worden, als deze reeds voorkomen en de inhoud (wellicht) anders is. AutoCAD werkt standaard helaas anders, MEN KRIJGT HIER GEEN KEUZE,  de blocks met dezelfde naam worden standaard NIET geredefined. AUTOCAD heeft, in onze optiek, hier een veer laten liggen en zou de gebruiker op het verschil moeten wijzen en de keuze moeten geven, redifine all or not.
Bij het commando insert (van één block) doet autocad dit standaard WEL, als deze reeds voorkomt in de dwg.

We hopen samen met jullie tot een oplossing te komen voor PASTE (van een grote hoeveelheid blocks in een keer) & de functie REDIFINE in één keer! Dit probleem zal ongetwijfeld voor vele van jullie herkenbaar zijn.

Wie kan hier “richting aan geven?” Bij voorbaat dank!
AdenRob

Reimer

Citaat van: AdenRob op do 15 11 2012, 16:51:18
...
Wij zijn dus op zoek naar een (simpele) manier om een grote hoeveelheid blocks van dwg 1 naar dwg 2 te kopiëren, maar hierbij dienen wel alle blocks die in dwg 2 gekopieerd worden geredefined te worden, als deze reeds voorkomen en de inhoud (wellicht) anders is.
...

Als je het nu omdraaid en dwg 2 in dwg 1 plakt, dan wordt de nieuwe versie van de overeenkomstige blokken gebruikt.
Misschien een optie?

Reimer

bart

besten adenrob.

Als ik 100% weet dat wat ik insert de andere tekening mag overrulen
doe ik de insert gewoon andersom zoals ik hierboven ook al als een van de oplossingen aangaf
desnoods haal ik het stuk eerst uit de tekening met het commando wblock.
om het in een tijdelijke tekening te kunnen bewerken.
ik bedoel met met insert overigens geen paste maar echt het commando insert
want copy-paste moet je gewoon niet willen gebruiken voor autocad objecten.

Wat is trouws de winst van 10 gebouwen in 1 tekening
(ik neem aan dat het niet alleen de situatie is) 
het lijkt me dat een dergelijke tekening op een gegevenmoment niet meer vooruit te branden is tijdens het bewerken.


Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

sschevers

Beste adenrob,

Wat wijzigt er precies aan je blocken? De geometrie of de attribuut waardes. Zoals bart al eerder aangaf kan een block maar eenmaal bestaan in je tekening.

Bijvoorbeeld een block met de naam "boom" en heeft als geometrische vorm een vierkant in tekening 1. Vervolgens kopieer je uit tekening 2 ook het block "boom" met de geometrische vorm cirkel. Wanneer je de cirkel boom insert in tekening 1 wordt er gevraagd of je je eerdere block wil redefinen. Indien je dit doet worden al je instancies (blockreferences) in je tekening geupdate. Alle bomen in tekening in worden een cirkel.

Wat ik uit je verhaal begrijp wil je alleen een kleine selectie updaten dmv een redefine en dat kan autocad niet.

Een block definieer je eenmalig in je tekening database. Alle wijzigingen die er naderhand aan worden doorgevoerd (geometrische vorm wijzigen en attributen toevoegen) gelden voor alle afgeleiden in je tekeningen. De blockreferences (hetgeen je ziet op je scherm) in je tekeningen  kunnen wel verschillende attribuut waardes hebben en een andere kleur door ze in een andere laag te zetten.

Zoals eerder al is aangegeven is het werken xref's de beste oplossing. Indien je een product moet leveren kun je tekeningen binden en dan heb je alsnog alles in een tekening. Voordeel van xref's  is ook nog dat je met meerdere mensen tegelijkertijd aan je project kan werken.

groeten

stephan

AdenRob

@Reimer:  Dit kan inderdaad. Maar werkt alleen voor blocken die men kan pakken, er zijn ook blocken in blocken, waarvan alleen het subblock gewijzigd moet worden, dan loopt men met deze methodiek helaas vast.

@bart: zie reactie op Reimer. Volgens mij bedoelen jullie hetzelfde. Het commando insert werkt maar voor één block tegelijk. Wij zitten met vele honderden blocks (en blocks in block in blocks) die we willen inserten of plakken in onze tekening. De winst van één dwg (met meerdere gebouwen) is dat alles up-to-date is, op ieder (hectisch) moment van de dag. Werken met Xrefs is in ons geval geen optie, de methodiek is bekend, maar dit geeft weer hele andere beperkingen, wat in een ander topic thuishoort.

@sschevers: Dat alle blocks in een dwg wijzigen bij het redefinen is ook de bedoeling. Alleen we willen een grote hoeveelheid blocks in één keer wijzigen (redefine) door een nieuwere versie van de blocks te plakken in de tekening.

Aan jullie reacties te lezen is de oplossing van het probleem nog niet helemaal duidelijk. Zoals we al eerder hebben aangegeven hebben wij erg grote projecten, welke vrijwel geheel zijn opgebouwd uit vele duizenden blocks.

Het ENIGE waar wij naar opzoek zijn is een aantal blocken tegelijkertijd in een tekening plakken en dat daarmee meteen alle reeds bestaande blocken (met exact dezelfde naam uiteraard) geredefined worden met de nieuw (te plakken) blocken.
Het plakken binnen AutoCAD is geen probleem, maar tegelijkertijd redefinen wel, helaas.

Wie heeft hiervoor een oplossing?

Groeten AdenRob

FastFiber