Bestaat er een mogelijkheid om een koppeling te maken met een excel bestand om dan vandaaruit weer een tek aan te sturen.
De mogelijkheid bestaat wel om attributes te exporteren naar een excel bestand, maar naar mijn inziens geeft dit alleen een weerzien van getallen reeks.
Wie :? oh wie 8) weet hier een antwoord op ?
e.a is te doen zij veel voorbeelden van te vinden op het net waarbij een database wordt gekoppeld aan een tekening(meestal niet gratis).
Zelf heb ik nooit de moeite genomen om uit te zoeken hoe rechtstreeks koppelen precies werkt.
(heb ook haast gen werk waarop ik dat zinvol zou kunnen toepassen)
ik gebruik een tussenstapje door het excel bestand te exporteren als comma gescheiden tekst bestand.
Deze zijn middels een lisp uitstekend te benaderen. (*.csv)
je kan daarmee een alles tekenen wat je wilt.
Weer een stapje dichterbij.
Heb hiernaar gekeken, maar als ik het bestand open en een paar getallen wijzigd, kan ik het bestand niet opslaan (read only).
Je heb het over het besturen middels een lisp (welke ??)
Ook ben ik erachter dat je de tekening met blokken moet opbouwen.
http://new.cadalyst.com/code/tips/CodeSearch_Detail.cfm?ID=ALSP403
zie hier een voorbeeld voor het tekenen van een 3d polyline
De lisp (of vba) routine die in jouw geval nodig is zal je waarschijnlijk zelf moeten (laten) schrijven.
een pasklare oplossing bestaat over het algemeen niet
Bedankt bart, hier gaan we zeker mee verder stoeien. :D
Citaat van: Michel HoogwerfBestaat er een mogelijkheid om een koppeling te maken met een excel bestand om dan vandaaruit weer een tek aan te sturen.
De mogelijkheid bestaat wel om attributes te exporteren naar een excel bestand, maar naar mijn inziens geeft dit alleen een weerzien van getallen reeks.
Wie :? oh wie 8) weet hier een antwoord op ?
Beste Michel,
In de dikke pillen van ir. R. Boeklagen van het CAD College TEC in
Nijmegen zit een hoofdstuk over ActiveX in Visual LISP voor "Koppeling met Office".
Zie ook http://www.cadcollege.nl/boeken/ voor:
AutoCAD 2002 Comuter ondersteund ontwerpen ISBN 90-72487-29-x
AutoCAD 2004 Comuter ondersteund ontwerpen ISBN 90-72487-37-0
AutoCAD 2005 Comuter ondersteund ontwerpen ISBN 90-72487-41-9. In deze boeken geeft hij een uitgewerkt voorbeeld: hoe je vanuit een Excelbestand met coordinaten,
je automatisch binnen AutoCAD "het geheim van de Smid" kan laten tekenen.
Indien je daarbij ook de DSX procedures neemt, die J
oop mij eerder op
mijn vraag "
Kan men met Visual LISP velden selecteren in EXCEL"
http://www.cadsite.be/smf/index.php/topic,194.msg811.html#msg811in CADsite Forum Index » Autolisp heeft gestuurd, dan kun je zoals
Joopmij heeft verteld een heeeeel eind komen.
En dat is inderdaad ook zo.
Zie ook
http://www.atablex.com/htmls/excel-bible.htmGroetjes HofCAD CSI.
Harstikke bedankt Hofstad CSI, hier ga ik zeker mee aan de slag. :D
Sorry, HofCAD CSI, ben er nog niet helemaal bij op de vroege woensdag morgen om 07:25 uur.
Citaat van: HofCADCitaat van: Michel HoogwerfBestaat er een mogelijkheid om een koppeling te maken met een excel bestand om dan vandaaruit weer een tek aan te sturen.
De mogelijkheid bestaat wel om attributes te exporteren naar een excel bestand, maar naar mijn inziens geeft dit alleen een weerzien van getallen reeks.
Wie :? oh wie 8) weet hier een antwoord op ?
Beste Michel,
In de dikke pillen van ir. R. Boeklagen van het CAD College TEC in
Nijmegen zit een hoofdstuk over ActiveX in Visual LISP voor "Koppeling met Office".
Zie ook http://www.cadcollege.nl/boeken/ voor:
AutoCAD 2002 Comuter ondersteund ontwerpen ISBN 90-72487-29-x
AutoCAD 2004 Comuter ondersteund ontwerpen ISBN 90-72487-37-0
AutoCAD 2005 Comuter ondersteund ontwerpen ISBN 90-72487-41-9.
In deze boeken geeft hij een uitgewerkt voorbeeld: hoe je vanuit een Excelbestand met coordinaten,
je automatisch binnen AutoCAD "het geheim van de Smid" kan laten tekenen.
Indien je daarbij ook de DSX procedures neemt, die Joop mij eerder op
mijn vraag "Kan men met Visual LISP velden selecteren in EXCEL"
in CADsite Forum Index » Autolisp heeft gestuurd, dan kun zoals Joop
mij heeft verteld een heeeeel eind komen.
En dat is inderdaad ook zo.
Groetjes HofCAD CSI.
Alvast bedankt, zie ook berichtgevingen hierboven.
Maar nu het volgende: de verwijzing die je op gegeven heb van
JOOPheb ik binnen gehaald, kan er alleen niet veel mee, gaarne een korte uitleg?!?
Michel,
Als je de lisproutines en de erbij gegeven commentaar bestudeerd "kom je een heel eind".
Dit vraagt wel enige kennis van programmeren in LISP.
De basis is dat je nieuwe commandos ter beschikking hebt voor toegang en manipulatie van Exell vanuit AutoCAD.
:P
Citaat van: Michel Hoogwerf
Maar nu het volgende: de verwijzing die je op gegeven heb van JOOPheb ik binnen gehaald, kan er alleen niet veel mee, gaarne een korte uitleg?!?
Beste Michel,
Dit is deel 1 van een programma waarin ik laat zien, dat je vanuit
excel een LISP-programma van data kan voorzien.
Het getekende huisje staat bekend als
'Het geheim van de smid'.
Volgende week probeer ik je weer iets aan te reiken.
Groetjes HofCAD CSI.
Maak in Excel het bestand C:\temp\smid.xls met
daarin:120 120 200 120
200 120 200 240
200 240 120 240
120 240 120 120
120 120 200 240
200 240 160 300
160 300 120 240
120 240 200 120Maak in Notepad het bestand C:\temp\smid.lsp met
daarin:(defun C:Smid()
(defun ExcelKoppel ()
;Procedure voor het koppelen van Excel
(if (not (setq Excel (vlax-get-object "Excel.Application")))
(setq Excel (vlax-create-object "Excel.Application"))
)
(vlax-put-property Excel 'Visible :vlax-true)
)
(defun ExcelOpen (Bestand / ExcelBestanden)
;Procedure voor het openen van een Excelbestand
(setq ExcelBestanden (vlax-get-property Excel 'Workbooks))
(setq ExcelBestand
(vlax-invoke-method ExcelBestanden 'Open Bestand)
)
)
(defun ExcelLees (Tabblad Rij Kolom / Bladen Blad Velden Veld Waarde)
;Procedure voor het lezen van een Celwaarde
(setq Bladen (vlax-get-property ExcelBestand 'worksheets))
(setq Blad (vlax-get-property Bladen 'item Tabblad))
(setq Velden (vlax-get-property Blad 'Cells))
(setq Veld (vlax-get-property Velden 'item Rij Kolom))
(setq Waarde (vlax-variant-value Veld))
(setq Waarde (vlax-get-property Waarde 'Value))
(setq Waarde (vlax-variant-value Waarde))
)
(defun Excel_Lijnen (Space tabblad RijStart KolomStart regels / i)
;Procedure voor het tekenen van het huisje
(setq i 1)
(while (<= i regels)
(TekLijn Space
(ExcelLees tabblad (+ RijStart i) (+ KolomStart 1))
(ExcelLees tabblad (+ RijStart i) (+ KolomStart 2))
(ExcelLees tabblad (+ RijStart i) (+ KolomStart 3))
(ExcelLees tabblad (+ RijStart i) (+ KolomStart 4))
)
(setq i (+ i 1))
)
)
(defun TekLijn (Space X1 Y1 X2 Y2 / Punt1 Punt2)
;Procedure voor het tekenen van een lijn
(setq Punt1 (vlax-3d-point (list X1 Y1 0)))
(setq Punt2 (vlax-3d-point (list X2 Y2 0)))
(vla-AddLine Space Punt1 Punt2)
)
;;;******Begin van het programma**********************************
(setq Tabblad "Blad1"
Bestandsnaam "smid"
Bestand (strcat bestandsnaam ".xls")
DirBestand (strcat (vl-filename-directory (vl-filename-mktemp)) "\\")
;; Of bijvoorbeeld DirBestand "c:\\temp\\"
DirEXCEL "c:\\progra~1\\micros~1\\office\\"
;; Of bijvoorbeeld DirEXCEL "c:\\Microsoft Office\\Office\\"
)
(if (car (atoms-family 1 '("vl-load-com")))
(vl-load-com)
)
(setq AutoCAD (vlax-get-acad-object))
(setq Pref (vla-get-Preferences AutoCAD))
(setq Screen (vla-get-Display Pref))
(setq Doc (vla-get-ActiveDocument AutoCAD))
(setq MS (vla-get-ModelSpace Doc))
(setq ~cmd (getvar "CMDECHO")
~osm (getvar "OSMODE")
)
(setvar "CMDECHO" 0)
(setvar "OSMODE" 0)
(setvar "LIMMIN" '(0 0))
(setvar "LIMMAX" '(420 297))
(setvar "LIMCHECK" 0)
(vla-ZoomAll AutoCAD)
(if (findfile (strcat DirBestand Bestand))
(progn
(ExcelKoppel)
(ExcelOpen (strcat DirBestand Bestand))
(princ
(strcat "\nTekening in AutoCAD is klaar.\n"
"Verander in Excel de waarden en run het programma opnieuw"))
(Excel_Lijnen MS tabblad 0 0 8 )
)
(princ (strcat DirBestand Bestand " niet gevonden.") )
)
(setvar "CMDECHO" ~cmd)
(setvar "OSMODE" ~osm)
(princ)
)
Ik vind het heel tof die koppeling met excel maar ik heb nu nog een probleem :roll:
Elk klepje en pomp in mijn tekening bestaat uit een block met daar aan attributes (Tagnummers, omschrijving, grootte etc) Nu wil ik graag een excel koppeling maken, m.a.w. elk symbool (block) dat in de tekening staat (meerdere tekeningen samenvoegen tot 1 bestand moet mogelijk zijn) daarvan de attributes weergeven in een excel lijst. Maar dan zodanig dat wanneer ik een waarde wijzig in excel deze ook wordt doorgevoerd in Acad. Ook wanneer ik in excel enkele kolommen toevoeg (opmerkingen die niet in de attributes terug komen) en daarna in autocad een symbool toevoeg moeten de opemerkingen achter de juiste regel staan (er wordt dus een regel tussengevoegd).
Met de autocad attribute extractor is het wel mogelijk om de attributes in een lijst te zetten en deze te kopieeren naar excel, maar op deze manier is er geen link tussen de 2.
De vraag is nu: Wie heeft ervaring op dit gebied en kan me helpen?