CADsite forum

AutoCAD => AutoCAD probleem => Topic gestart door: Nico160775 op di 05 01 2010, 11:42:15

Titel: Attributes invullen via excel (opgelost)
Bericht door: Nico160775 op di 05 01 2010, 11:42:15
Ik heb een 1000-tal tekeningen waarin een bepaald attribute moet ingevuld worden.
De waarde die hier moet ingevuld worden is te halen uit een excel.
Of kan ook gehaald worden uit de bestandsnaam zelf. vb.       123456_00.dwg      123456 moet worden ingevuld in de attribute.

Kan iemand me hier verder bij helpen?
Titel: Re:Attributes invullen via excel
Bericht door: Nico160775 op di 05 01 2010, 12:09:43
Dit is een titelhoek als block met enkele attributen in.
De attribute die moet ingevuld worden is     TAG:      IDENTIFICATION
En de filename is vb. 12345678910_05.dwg waarvan alleen 12345678910 moet ingevuld worden.

Alvast merci.
Titel: Re:Attributes invullen via excel
Bericht door: H@rm op di 05 01 2010, 12:22:57
Citaat van: Nico160775 op di 05 01 2010, 11:42:15

Of kan ook gehaald worden uit de bestandsnaam zelf. vb.       123456_00.dwg      123456 moet worden ingevuld in de attribute.


Je zou ook een field kunnen aanmaken die zoekt naar die dwg-naam. ! keer het block aanmaken en redefinen in de tekeningen.

Michel
Titel: Re:Attributes invullen via excel
Bericht door: Nico160775 op di 05 01 2010, 12:26:38
Citaat van: H@rm op di 05 01 2010, 12:22:57
Je zou ook een field kunnen aanmaken die zoekt naar die dwg-naam. ! keer het block aanmaken en redefinen in de tekeningen.

Michel

Wat bedoel je met keer het block aanmaken en redefinen?
Titel: Re:Attributes invullen via excel
Bericht door: cadtools@gmail.com op di 05 01 2010, 13:15:36
Fields is inderdaad een goede optie.
Ik ben toch wel benieuwd of iemand een techniek kent om TAG definities in te vullen mbt Excel. Hoe?
Titel: Re:Attributes invullen via excel
Bericht door: Nico160775 op di 05 01 2010, 13:25:33
Die fields zijn wel goed maar niet zo als je maar een deel nodig hebt van die field.
Titel: Re:Attributes invullen via excel
Bericht door: H@rm op di 05 01 2010, 13:25:41
Citaat van: Nico160775 op di 05 01 2010, 12:26:38
Wat bedoel je met keer het block aanmaken en redefinen?

Ik heb een blockje aangemaakt (zij bijlage) met daar in een 4-tal atributen. (plotdatum, tekenaar, dwgnaam en blad nummer)
Probeer daar eens mee te stoeien of dat iets is?
Als dat een beetje lijkt op het geen je voor ogen hebt wil ik wel verdere uitleg geven.

Michel
Titel: Re:Attributes invullen via excel
Bericht door: Nico160775 op di 05 01 2010, 14:01:08
Citaat van: H@rm op di 05 01 2010, 13:25:41
Ik heb een blockje aangemaakt (zij bijlage) met daar in een 4-tal atributen. (plotdatum, tekenaar, dwgnaam en blad nummer)
Probeer daar eens mee te stoeien of dat iets is?
Als dat een beetje lijkt op het geen je voor ogen hebt wil ik wel verdere uitleg geven.

Michel

Jip dit is een block... maar hoe vul je die automatisch in?
Heb een 1000-tal tekeningen met een block en nu wil ik via een macrotje of een lisp al die blocks automatisch invullen zodat ik niet alle tekeningen moet openen en block aanklikken en nummer invullen.
Maar zodat dit een beetje automatisch gaat....

Titel: Re:Attributes invullen via excel
Bericht door: Reimer op di 05 01 2010, 14:25:21
Het principe van Harm is als volgt:
- pas jouw standaard tekenhoofd aan door het attribuut IDENTIFICATION in te vullen met een field die de bestandsnaam weergeeft.
- Sla dit tekenhoofd op als aparte dwg.
- Insert het aangepaste hoofd in een bestaande tekening (gebruik browse om hem op te halen). Acad zal aangeven dat het block al bestaat en vraagt of je hem wil in de tekening wilt vernieuwen (redefine).
- Kies voor Redefine block en alle bestaande tekenhoofden worden vervangen door de nieuwe, waarbij reeds ingevulde attributen blijven bestaan. Dit is meteen een probleem omdat het attribuut IDENTIFICATION al is ingevuld en dus niet de nieuwe inhoud krijgt.
- Door in het standaard block het attribuut IDENTIFICATION te hernoemen kan deze niet ingevuld zijn in bestaande tekeningen. Je zult echter wel even ATTSYNC moeten toepassen om bestaande blocken te updaten naar de nieuwe definitie.

Je kunt BaBe gebruiken om bovenstaande stappen geautomatiseerd op meerdere dwg's toe te passen.
Ik ken echter geen mogelijkheid om met een field de bestandsnaam in te korten zoals je aangegeven hebt. Dus of je uiteindelijk geholpen bent met deze oplossing is de vraag.

Met behulp van een lisproutine is het wel mogelijk om de bestandsnaam in te korten en kun je opdracht geven om alle attributen met de tag IDENTIFICATION binnen een bepaald block aan te passen. Ik denk echter dat er anderen op dit forum zijn die dit sneller/beter voor elkaar krijgen dan ik.

Reimer.
Titel: Re:Attributes invullen via excel
Bericht door: H@rm op di 05 01 2010, 14:33:13
Nico,

Het is in principe zo dat als je een block met Fields maakt dat deze fields automatisch worden in gevuld. (soms is nog een regen nodig)
Ik ben er vanuit gegaan dat je de onderhoek van een tekening wilt invullen. De onderhoek heeft in alle 1000 tekeningen dezelfde naam. Je past dan de onderhoek aan in 1 tekening d.m.v. het toevoegen van de fields die je nodig acht. Dan insert je het block en als Acad meld dat het block al bestaat beantwoord je met ja dat je het bestaande block wilt overschrijven. Omdat je aan het wijzigen bent geweest in de atributen moet je ook nog het commando "attsync" gebruiken om alle attributen weer te synchroniseren.
Ik begrijp nu ook dat dit voor die duizend tekeningen een bereklus is.

Volgende voorstel is: maak gebruik van de bijlage bij deze topic.
Als je een klein beetje handig bent met lisp kun je de bijlage om bouwen naar je eigen indeling.

Verder zul je (ongeacht welke oplossing je kiest) voor die 1000 tekening ook gebruik moeten maken van BaBe. (even hier op de site zoeken) Die zorgt ervoor dat je een bewerking op heel veel tekeningen kunt los laten.

Succes

Michel
Titel: Re:Attributes invullen via excel
Bericht door: Nico160775 op di 05 01 2010, 15:03:48
Merci,

Ga dan eerst nog eens moeten kijken om die BAbe aan de praat te krijgen want dat was me tot nog niet gelukt...
Ben bezig om de goei titelhoek te verkrijgen zodat ik deze kan verwerken in die lisp.
verder fields zal ik niet kunnen gebruiken want dan zit ik met de volledige field name.
...

Zal nog een beetje testen worden....

alvast bedankt..
Titel: Re:Attributes invullen via excel
Bericht door: cetacad op di 05 01 2010, 17:09:14
Plaats het onderstaande in het bestand Acad2009doc.lsp . Dit bestand wordt bij het openen van iedere tekening doorlopen, dus zal de routine bij het openen van iedere tekening uitgevoerd worden.

(load "TEKNUM")
(C:TEKNUM)


Het bestand TEKNUM.lsp heb toegevoegd. Deze moet in een dir geplaatst worden die AutoCad weet te vinden.

In deze routine heb ik de volgende uitgangspunten gehanteerd:
- Dat de onderhoek "Titelhoek" heet. Dit is waarschijnlijk niet zo en moet dus aangepast worden.
- Dat de aan te passen regel het 5e element in de attribute is. Als dit niet zo is moet je even spelen met de positie van het teken ; wat voor de regels staat. Dit geeft aan dat een regel wel of niet uitgevoerd wordt.
- Dat je alles wat voor het teken _ staat als nummer wilt weergeven    (123456_00.dwg wordt 123456).

succes. Fred



Titel: Re:Attributes invullen via excel
Bericht door: roy_043 op di 05 01 2010, 20:18:45
@cetacad
Goed werk! Maar bepaalde dingen moeten mij toch van het LISP-hart :wink:.
Daarom deze 3 tips:
1. Declareer de variabelen zodat het locale variabelen worden.
  Dit is de allerbelangrijkste tip want dit is fundamenteel.
  (setq streep nil) ; dit wordt dan overbodig
2. Je kunt bij (ssget ...) filters opgeven:
  (setq sset (ssget "_X" '((0 . "INSERT") (2 . "TitelHoek"))))
  ; Let op: de bloknaam is nu HoofdLetterGevoelig!
  ; Jouw lisp kan hierdoor vele malen efficiĆ«nter worden.
3. Bij (While ...) is het gebruik van (progn ...) overbodig.

Tenslotte: Als je meer wilt weten over het vinden van het juiste attribuut kijk dan hier:
http://www.cadsite.be/smf/index.php?topic=3564.msg18262#msg18262

<EDIT>Opmerking HoofdLetterGevoelig klopt niet</EDIT>
Titel: Re:Attributes invullen via excel
Bericht door: cetacad op wo 06 01 2010, 08:55:30
Bedankt voor de tips. Ik ben weer iets wijzer geworden.
Titel: Re:Attributes invullen via excel
Bericht door: Reimer op wo 06 01 2010, 09:03:31
Citaat van: roy_043 op di 05 01 2010, 20:18:45
[tt...
Tenslotte: Als je meer wilt weten over het vinden van het juiste attribuut kijk dan hier:
http://www.cadsite.be/smf/index.php?topic=3564.msg18262#msg18262
...[/tt]

Ik had dit al wel eens voorbij zien komen maar niet goed bekeken. Nu heb ik dat wel gedaan en er is mij nu veel meer duidelijk over locale en globale variabelen. Super  :vreegoe: Mijn complimenten

Reimer
Titel: Re:Attributes invullen via excel
Bericht door: Nico160775 op wo 06 01 2010, 14:06:50
Ja, mannen  da gaat ier een beetje mijn petje te boven...
Denk dat ik een paar stappen terug ga moeten zetten en me eerst een beetje moet verdiepen in LSP.

In ieder geval, iedereen merci...
Titel: Re:Attributes invullen via excel
Bericht door: Nico160775 op wo 06 01 2010, 14:24:53
Citaat van: cetacad op di 05 01 2010, 17:09:14
Plaats het onderstaande in het bestand Acad2009doc.lsp . Dit bestand wordt bij het openen van iedere tekening doorlopen, dus zal de routine bij het openen van iedere tekening uitgevoerd worden.

(load "TEKNUM")
(C:TEKNUM)


Het bestand TEKNUM.lsp heb toegevoegd. Deze moet in een dir geplaatst worden die AutoCad weet te vinden.

In deze routine heb ik de volgende uitgangspunten gehanteerd:
- Dat de onderhoek "Titelhoek" heet. Dit is waarschijnlijk niet zo en moet dus aangepast worden.
- Dat de aan te passen regel het 5e element in de attribute is. Als dit niet zo is moet je even spelen met de positie van het teken ; wat voor de regels staat. Dit geeft aan dat een regel wel of niet uitgevoerd wordt.
- Dat je alles wat voor het teken _ staat als nummer wilt weergeven    (123456_00.dwg wordt 123456).

succes. Fred






Dag Fred,

Heb je lps getest en super gevonden....het werkt dus echt wel goed....nu zou ik een stap verder willen gaan en naar dit getal altijd /000/ willen hebben.
dus dan wordt       12345678910_00      wordt    12345678910/000/

merci
Titel: Re:Attributes invullen via excel
Bericht door: cetacad op vr 08 01 2010, 14:11:10


(setq teknaam (substr teknaam 1 (- nummer 2)))          ;= 11e regel in de routine

moet dan worden :

(setq teknaam (strcat(substr teknaam 1 (- nummer 2))"/000/"))  


succes, Fred
Titel: Re:Attributes invullen via excel
Bericht door: Nico160775 op di 12 01 2010, 10:49:35
Citaat van: cetacad op vr 08 01 2010, 14:11:10

(setq teknaam (substr teknaam 1 (- nummer 2)))          ;= 11e regel in de routine

moet dan worden :

(setq teknaam (strcat(substr teknaam 1 (- nummer 2))"/000/"))  


succes, Fred




Merci, Fred dit heeft me veel geholpen.... aan de rest ook bedankt.