FastFiber

Maten van AutoCAD-tekening in Excel importeren

Gestart door Steve, do 01 09 2005, 09:37:46

Vorige topic - Volgende topic

Steve

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

HofCAD

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 CSI
ACADcadabra

Steve

Bedankt voor de tips. We hebben de oplossing gevonden!

groetjes

Steve

Dnereb

Citaat van: SteveWe hebben de oplossing gevonden!
groetjes

Steve

Care to Share?

Steve

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
)

HofCAD

Citaat van: HofCAD
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 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
ACADcadabra

HofCAD

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


----------- ~\\|//~ ------------
------------
ACADcadabra

HofCAD

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
ACADcadabra

WebRacer

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....
?

HofCAD

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.
ACADcadabra