Probleemstelling: We tekenen een rechthoek in AutoCAD. Bijvoorbeeld lengte 100, breedte 50. We plaatsen de bematingen. Is het nu mogelijk om met één of andere actie deze twee maten in apparte cellen in excel te krijgen.
Groetjes Steve
Citaat van: SteveProbleemstelling: We tekenen een rechthoek in AutoCAD. Bijvoorbeeld lengte 100, breedte 50. We plaatsen de bematingen. Is het nu mogelijk om met één of andere actie deze twee maten in apparte cellen in excel te krijgen.
Groetjes Steve
Beste Steve,
Als je dat in AutoLisp of met VisualLisp of met VBA wilt doen, dan is er
zeker een oplossing.
Een oplossing is bijv. dat je je bemating maakt met een programma
wat naast je bemating ook een block maakt met een onzichtbaar
attribuut.
Waar in de maat komt te staan.
Het schrijven van de rest van het programma, kun je leren bij de
artikelen die over ThomCAD gingen.
Zie daarvoor bij AutoLISP.
Groetjes HofCAD
CS
I
Bedankt voor de tips. We hebben de oplossing gevonden!
groetjes
Steve
Citaat van: SteveWe hebben de oplossing gevonden!
groetjes
Steve
Care to Share?
hey,
this is all we have.
greetz
steve
define program name and localize variables
(defun C:TXTOUT (/ FN2 FD2 KWD2 SS2 CTR2 SSQTY2 OBJD2 OBTXT2)
(setq FN2 (getstring "\nText export file name: ")) ;get file name
(if (setq FD2 (open FN2 "r")) ;if file can be found
(progn
(close FD2) ;close file
(initget "Overwrite Append Cancel") ;initialize allowable keywords
(setq KWD2 (getkword "\nFile exists! Overwrite, Append or Cancel <O/a/c>: "))
)
)
(if (= "Cancel" KWD2) ;if user response was Cancel
(prompt "\nOperation cancelled at user's request.") ;prompt to confirm
(progn
(if (= "Append" KWD2) ;if user response was Append
(progn
(setq FD2 (open FN2 "a")) ;open file for appending
(prompt (strcat "\nFile \"" FN2 "\" now ready for appending."));and confirm
)
(progn
(setq FD2 (open FN2 "w")) ;else open file for (over)writing
(prompt (strcat "\nFile \"" FN2 "\" now open.")) ;and confirm
)
)
(prompt "\nPick text objects to export: ") ;prompt to select text
;select only TEXT & MTEXT
(setq SS2 (ssget '((-4 . "<OR")(0 . "TEXT")(0 . "MTEXT")(-4 . "OR>")))
CTR2 0 ;initialize counter CTR2 to zero
SSQTY2 (sslength SS2) ;find size of selection set
)
(repeat SSQTY2 ;repeat for each object
(setq OBJD2 (entget (ssname SS2 CTR2)) ;extract object data
OBTXT2 (cdr (assoc 1 OBJD2)) ;extract string value
CTR2 (1+ CTR2) ;increment counter
)
(write-line OBTXT2 FD2) ;write string to file
) ;end REPEAT
(close FD2) ;close file
(if (= "Append" KWD2) ;\inform user
(prompt (strcat "\n" (itoa SSQTY2) " lines appended to file.")); >of number
(prompt (strcat "\n" (itoa SSQTY2) " lines written to file.")) ;/ of lines
)
) ;end PROGN
) ;close "(if (= "Append"..."
(princ) ;exit quietly
)
Citaat van: HofCADCitaat van: SteveProbleemstelling: We tekenen een rechthoek in AutoCAD. Bijvoorbeeld lengte 100, breedte 50. We plaatsen de bematingen. Is het nu mogelijk om met één of andere actie deze twee maten in apparte cellen in excel te krijgen.
Groetjes Steve
Beste Steve,
Als je dat in AutoLisp of met VisualLisp of met VBA wilt doen, dan is er
zeker een oplossing.
Een oplossing is bijv. dat je je bemating maakt met een programma
wat naast je bemating ook een block maakt met een onzichtbaar
attribuut.
Waar in de maat komt te staan.
Het schrijven van de rest van het programma, kun je leren bij de
artikelen die over ThomCAD gingen.
Zie daarvoor bij AutoLISP.
Groetjes HofCAD CSI
------------ ~\\|//~ ------------
------------ - -
- -------------
-------ooO---(_)---Ooo--------
[/color]
Beste Steve,
Ik heb nog eens nagedacht, maar dat is moeilijk voor een blondje.
Eigenlijk snap ik niet goed, waarom je de bemating van de rechthoek
wilt uitlezen.
Men kan net zo goed, vanuit de polylijnvertices de maten van de rechthoek halen.
Men heeft dan het probleem, van welke rechthoeken moet ik de maten wel of niet bepalen.
Dit kan men bijv. doen, als in het programma ThomCAD, door de speciale
rechthoeken op een speciale laag te zetten.
Een andere methode is, aan de polylijnentiteit een X-record te hangen.
a) Men kan in dit X-record alleen een herkenningscode schrijven.
b) Men kan in dit X-record naast de herkenningscode, ook van de rechthoek de afmetingen
en de coordinaten van de linker onderhoek zetten.
Dan kan men later zien of de rechthoek later veranderd is geworden.
De tekening wordt door de informatie te schrijven in een X-record
niet overspoeld met teksten.
Groetjes HofCAD CSI
Citaat van: SteveProbleemstelling: We tekenen een rechthoek in AutoCAD. Bijvoorbeeld lengte 100, breedte 50. We plaatsen de bematingen. Is het nu mogelijk om met één of andere actie deze twee maten in apparte cellen in excel te krijgen.
Groetjes Steve
----------- ~\\|//~ ------------
------------
Citaat van: SteveProbleemstelling: We tekenen een rechthoek in AutoCAD. Bijvoorbeeld lengte 100, breedte 50. We plaatsen de bematingen. Is het nu mogelijk om met één of andere actie deze twee maten in apparte cellen in excel te krijgen.
Groetjes Steve
----------- ~\\|//~ ------------
------------ - -
- -------------
-------ooO---(_)---Ooo-------- [/color]
Beste Steve,
De file Hofrec.lsp is aangepast, zodat zowel rechthoeken
met een LWPOLYLINE als POLYLINE herkend worden.
Groetjes HofCAD CSI
http://www.savefile.com/files/7375161
beetje zeer uitgebreid van HOFcad CSI naar mijn bescheiden mening, het leek mij idd ook simpeler om de bemating aan te klikken en naar de cellen te brengen....
Citaat van: WebRacerbeetje zeer uitgebreid van HOFcad CSI naar mijn bescheiden mening, het leek mij idd ook simpeler om de bemating aan te klikken en naar de cellen te brengen....
----------- ~\\|//~ ------------
------------ - -
- -------------
-------ooO---(_)---Ooo-------- [/color]
Beste WebRacer,
Het bovenstaande is weer te moeilijk voor mijn blonde koppie.
Omdat je dan twee bematingen aan elkaar moet koppelen, of begrijp
ik je verkeerd.
Verder hoe zou jij de bemating van de maatrechthoeken willen
discrimineren t.o.v. de overige bemating.
Door ze bijvoorbeeld op een aparte laag te zetten?
Voor het probleem van Steve zijn er nog meer oplossingen.
Bijvoorbeeld:
-Het stoppen van de breedte en hoogte in tekstobjecten.
-Het stoppen van de breedte en hoogte in attributenwaarden van
een block, waarbij de attribuutwaarden al of niet zichtbaar zijn.
Het opsporen van de objecten die de informatie bevatten van
de maatrechthoeken blijft voor mij hierbij een probleem.
Bij een block kun je dat o.a. doen met een uniek voorvoegsel of
met een unieke laag.
Het leek mij echter leuk om het opsporen, te laten geschieden
met X-data.
Natuurlijk stop ik iets te veel in de X-data, maar dat doe ik alleen
ter exploratie van X-data.
Ik wilde dat namelijk eens uitproberen.
Groetjes HofCAD CSI
PS Mijn programma Hofrec is overigens nog langer geworden :oops: :oops: :oops: :oops: :oops: :oops:
door:
1) Standaard bepaling van de linkeronderhoek
2) Automatische koppeling met Excel
3) Selectie van maatrechthoeken op hun volgnummer
4) Toepassing van hyperlinks
5) Customizing met configuratie file HofProg.cfg
6) Error afhandeling
Het lukt mij gewoon weg niet, om iets in het kort te schrijven.