CADsite forum

AutoCAD => VBA => Topic gestart door: magictom op wo 12 10 2005, 15:47:48

Titel: excel - AutoCad
Bericht door: magictom op wo 12 10 2005, 15:47:48
Hallo  :!:

Een vraagje,

ik ben leerkracht houtbewerking en zou voor het berekenen van ramen een excel file schrijven. Zou het mogenlijk zijn dat ik aan de hand van deze gegevens AutoCad onmiddelijk deze gegevens laat omzetten in een tekening (door vb gebruik te maken van blocks, ....

Heb zeer weinig ervaring met VBA
:oops:
Titel: excel - AutoCad
Bericht door: Dnereb op wo 12 10 2005, 18:11:03
Ja dat is mogelijk......met redelijk wat kennis van VBA
en.....
Waarschijnlijk is Access een betere keuze om de gegevens in op te slaan als Excel.

Je vermeld dat je weinig kennis van VBA hebt.....Hoe zit het met je Lisp?
de access database is op te zetten zonder veel VBA kennis.
En in Lost In Stupid Parenthesis kan je ook data ophalen vanuit Excel of Access. :wink:

Mijn hulp daarbij kan je vergeten want ik ben gellukkig Illisparate. :roll:
(Ik weet zeker dat Kenny reageert.) :roll:
Titel: excel - AutoCad
Bericht door: WebRacer op wo 12 10 2005, 18:19:10
HmmzZ....

Dnereb, je zakt in mijn achting.....
Titel: excel - AutoCad
Bericht door: Kenny H op wo 12 10 2005, 20:19:58
Citaat van: Dnereb
Mijn hulp daarbij kan je vergeten want ik ben gellukkig Illisparate. :roll:
(Ik weet zeker dat Kenny reageert.) :roll:

:lachen:  :lachen:  :lachen:  :lachen:  :lachen:  :lachen:  :lachen:  :lachen:  

Wat wil je nu dat ik hier op zeg, berend :?: :duivel1:
Dat vraagt gewoon een lispfile om te tonen dat het ook met ( volgens u idiote) lisp  gaat :!: :duivel1:

Ik heb momenteel pas werk en heb daardoor minder tijd om hier andere te helpen  :evil:  :cry:
Titel: excel - AutoCad
Bericht door: Kenny H op wo 12 10 2005, 20:29:21
Zoals je zal zien aan de tijden van de posts, heb ik mij even voorbereid vooralleer hier iets te posten.  :lol:

Citeer;;;
,,,
open
afmetingen.dwg
;;;
;;;
(defun c:hor-doorsnede ()
 (graphscr)
 (command "erase" "all" "")
 (command "view" "o" "top")
 (command "ucs" "w")
 (command "script" "afmetingen.scr")
 (command "insert" "muurhwbl" "1080,400" "1" "1" "0")
 (command "insert" "muurvwbb" "600,625" "1" "1" "0")
 (command "zoom" "all")
 (command "layer" "m" "horizontale snede" "c" "7" "" "")
 (setvar "gridmode" 0)
 (setvar "snapmode" 0)
 (setvar "osmode" 1)
 (setq   ldb-inserteerpunt
    (getpoint "\nGeef linkerkant van de dagbreedte op aub:")
 )
 (command
   "insert" "*linker hor" ldb-inserteerpunt "1"   "1" "0")
;;;  (command "zoom" "all")
;;; (command "explode" "last" "") is hier niet nodig door de * voor de blocknaam.
 (setq   db (getdist ldb-inserteerpunt
          "\nGeef de dagbreedte op in mm aub:"
      )
 )

 (if (or (<= db 0) (= db nil))
   (progn
     (alert
   "Opgelet !!!
   \nDe dagbreedte MOET GROTER zijn dan 0,
   \ner moet een waarde groter dan 0 worden ingegeven.
   \nKlik op ok."
     )
     (setq db
        (getdist ldb-inserteerpunt
            "\nGeef een nieuwe dagbreedte op in mm aub:"
        )
     )
   )
 )
 (if (<= db 1510)
   (progn
     (setq rdb-inserteerpunt
        (list (+ (car ldb-inserteerpunt) db)
         (+ (cadr ldb-inserteerpunt) 0)
         (+ (caddr ldb-inserteerpunt) 0)
        )
     )
     (command "insert"
          "muurhwbr"
          (list (- (car rdb-inserteerpunt) 120)
           (- (cadr rdb-inserteerpunt) 170)
           (+ (caddr rdb-inserteerpunt) 0)
          )
          "1"
          "1"
          "0"
     )
   )
 )
 (if (> db 1510)
   (progn
     (setq db 1510)
     (setq rdb-inserteerpunt
        (list (+ (car ldb-inserteerpunt) db)
         (+ (cadr ldb-inserteerpunt) 0)
         (+ (caddr ldb-inserteerpunt) 0)
        )
     )
     (command "insert"
          "muurhwbr"
          (list (- (car rdb-inserteerpunt) 120)
           (- (cadr rdb-inserteerpunt) 170)
           (+ (caddr rdb-inserteerpunt) 0)
          )
          "1"
          "1"
          "0"
     )
   )
 )
 (setvar "osmode" 0)
 (command "zoom" "e")
 (setq   midden-db (list   (+ (car ldb-inserteerpunt) (/ db 2))
         (cadr ldb-inserteerpunt)
         (caddr ldb-inserteerpunt)
        )
 )
 (setq   midden-ongepaarde-zijde
    (list (car midden-db)
          (- (cadr midden-db) 8 )
          (caddr midden-db)
    )
 )
 (command "line"
      (list (- (car midden-ongepaarde-zijde) 50)
       (cadr midden-ongepaarde-zijde)
       (caddr midden-ongepaarde-zijde)
      )
      "@50<0"
      ""
 )
 (command "copy" "last" "" midden-ongepaarde-zijde "@1.21407400<270")
 (command "copy"      "last"
      ""         midden-ongepaarde-zijde
      "@12.78592600<270"
     )
 (command "copy" "last" "" midden-ongepaarde-zijde "@1<270")
 (setq   selectie-links
    (ssget   "w"
      (list (- (car ldb-inserteerpunt) 50)
            (- (cadr ldb-inserteerpunt) 70)
            (caddr ldb-inserteerpunt)
      )
      (list (+ (car ldb-inserteerpunt) 45)
            (cadr ldb-inserteerpunt)
            (caddr ldb-inserteerpunt)
      )
    )
 )
 (setq   selectie-midden-links
    (ssget   "c"
      midden-db
      (list (- (car midden-db) 60)
            (- (cadr midden-db) 30)
            (caddr midden-db)
      )
    )
 )
 (command "extend" selectie-links "" selectie-midden-links "")
 (command "layer" "s" "horizontale snede" "")
 (setq   selectie-links-kozijn
    (ssget   "w"
      (list (- (car ldb-inserteerpunt) 50)
            (- (cadr ldb-inserteerpunt) 70)
            (caddr ldb-inserteerpunt)
      )
      (list (+ (car ldb-inserteerpunt) 45)
            (cadr ldb-inserteerpunt)
            (caddr ldb-inserteerpunt)
      )
    )
 )
 (command "hatch"   "u"        "45"     "4"
      "n"      selectie-links-kozijn     ""
      ""
     )
 (setq   selectie-links-vleugel
    (ssget   "c"
      (list (+ (car ldb-inserteerpunt) 50)
            (- (cadr ldb-inserteerpunt) 70)
            (caddr ldb-inserteerpunt)
      )
      (list (+ (car ldb-inserteerpunt) 20)
            (- (cadr ldb-inserteerpunt) 90)
            (caddr ldb-inserteerpunt)
      )
    )
 )
 (command "hatch"    "u"          "135"        "3"
      "n"       selectie-links-vleugel        ""
      ""
     )
 (setq   selectie-links-glaslat
    (ssget   "w"
      (list (+ (car ldb-inserteerpunt) 85)
            (- (cadr ldb-inserteerpunt) 60)
            (caddr ldb-inserteerpunt)
      )
      (list (+ (car ldb-inserteerpunt) 60)
            (- (cadr ldb-inserteerpunt) 90)
            (caddr ldb-inserteerpunt)
      )
    )
 )
 (command "hatch"    "u"          "45"        "2"
      "n"       selectie-links-glaslat        ""
      ""
     )
 (setq   selectie-spiegel
    (ssget   "w"
      (list (- (car ldb-inserteerpunt) 60)
            (- (cadr ldb-inserteerpunt) 90)
            (caddr ldb-inserteerpunt)
      )
      (list (+ (car ldb-inserteerpunt) (/ db 2))
            (cadr ldb-inserteerpunt)
            (caddr ldb-inserteerpunt)
      )
    )
 )
 (command "mirror"         selectie-spiegel    ""
      midden-ongepaarde-zijde       midden-db
      ""
     )
 (command "zoom" "e")
 (command "layer" "m" "glas" "c" "1" "" "")
 (setq   begin-glas
    (list (+ (car ldb-inserteerpunt) 68 )
          (- (cadr ldb-inserteerpunt) 46)
          (caddr ldb-inserteerpunt)
    )
 )
 (setq   einde-glas
    (list (- (car rdb-inserteerpunt) 68 )
          (- (cadr rdb-inserteerpunt) 42)
          (caddr rdb-inserteerpunt)
    )
 )
 (command "rectangle" begin-glas einde-glas)
 (command "copy" "last" "" begin-glas "@16<270")
 (command "rectangle" begin-glas "@12,-12")
 (command "mirror"       "last"        ""
      midden-ongepaarde-zijde        midden-db
      ""
     )
 (command "layer" "m" "afmetingen" "c" "1" "" "")

 (command "dimaligned"
      (list (car begin-glas)
       (+ (cadr begin-glas) 4)
       (caddr begin-glas)
      )
      einde-glas
      (list (car begin-glas)
       (+ (cadr begin-glas) 50)
       (caddr begin-glas)
      )
 )
 (command "dimaligned"
      (list (car ldb-inserteerpunt)
       (cadr ldb-inserteerpunt)
      )
      rdb-inserteerpunt
      (list (car ldb-inserteerpunt)
       (+ (cadr ldb-inserteerpunt) 25)
      )
 )
 (command "dimaligned"
      (list (+ (car ldb-inserteerpunt) 2)
       (- (cadr ldb-inserteerpunt) 78 )
      )
      (list (- (car rdb-inserteerpunt) 2)
       (- (cadr ldb-inserteerpunt) 78 )
      )
      (list (car ldb-inserteerpunt)
       (- (cadr ldb-inserteerpunt) 90)
      )
 )
 (command "dimaligned"
      (list (- (car ldb-inserteerpunt) 40)
       (- (cadr ldb-inserteerpunt) 63)
      )
      (list (+ (car rdb-inserteerpunt) 40)
       (- (cadr ldb-inserteerpunt) 63)
      )
      (list (car ldb-inserteerpunt)
       (- (cadr ldb-inserteerpunt) 110)
      )
 )
 (setvar "osmode" 1)
 (setq   bdh-inserteerpunt
    (getpoint "\nGeef bovenzijde van de daghoogte op aub:")
 )
 (command
   "-insert" "*rechter hor" bdh-inserteerpunt "1" "1" "90" )
 (command "explode" "last" "")
 (setq   dh (getdist bdh-inserteerpunt
          "\nGeef de daghoogte op in mm aub:"
      )
 )
 (if (or (<= dh 0) (= dh nil))
   (progn
     (alert
   "Opgelet !!!
   \nDe daghoogte MOET GROTER zijn dan 0,
   \ner moet een waarde groter dan 0 worden ingegeven.
   \nKlik op ok."
     )
     (setq dh
        (getdist bdh-inserteerpunt
            "\nGeef een nieuwe daghoogte op in mm aub:"
        )
     )
   )
 )
 (setq   odh-inserteerpunt
    (list (car bdh-inserteerpunt)
          (- (cadr bdh-inserteerpunt) dh)
    )
 )
 (command "insert"
      "muurvwbo"
      (list (+ (car odh-inserteerpunt) 170)
       (+ (cadr odh-inserteerpunt) 189)
      )
      "1"
      "1"
      "0"
 )
 (command "insert" "onder vert" odh-inserteerpunt "1" "1" "90")
 (command "zoom" "all")
 (command "explode" "last" "")
 (setq   begin-glas-on
    (list (+ (car odh-inserteerpunt) 42)
          (+ (cadr odh-inserteerpunt) 108 )
    )
 )
 (setq   einde-glas-bo
    (list (+ (car bdh-inserteerpunt) 46)
          (- (cadr bdh-inserteerpunt) 68 )
    )
 )
 (setvar "osmode" 0)
 (command "-layer" "set" "glas" "")
 (command "rectangle" begin-glas-on einde-glas-bo)
 (command "copy" "last" "" begin-glas-on "@16,0")
 (command "rectangle" einde-glas-bo "@12,-12")
 (setq   glashoogtehelft
    (list (car begin-glas-on)
          (- (cadr einde-glas-bo)
        (/ (- (cadr einde-glas-bo) (cadr begin-glas-on)) 2)
          )
    )
 )
 (command "mirror" "last" "" glashoogtehelft "@12,0" "n")
 (command "layer"    "new"          "verticale snede"
      "color"    "7"          ""        "set"
      "verticale snede"          ""
     )
 (setq   selectie-onder-vleugel
    (list (+ (car odh-inserteerpunt) 78 )
          (+ (cadr odh-inserteerpunt) 42)
    )
 )
 (command "-bhatch"   "p"        "u"     "45"
      "3"      "n"        "s"     selectie-onder-vleugel
      ""      ""
     )
 (setq   selectie-onder-kozijn
    (list (+ (car odh-inserteerpunt) 8 )
          (+ (cadr odh-inserteerpunt) 3)
    )
 )
 (command "-bhatch"   "p"      "u"          "135"      "3"
      "n"          "s"      selectie-onder-kozijn   ""
      ""
     )
 (setq   selectie-onder-glaslat
    (list (+ (car odh-inserteerpunt) 81)
          (+ (cadr odh-inserteerpunt) 116)
    )
 )
 (command "-bhatch"   "p"      "u"          "135"      "3"
      "n"          "s"      selectie-onder-glaslat   ""
      ""
     )
 (setq   selectie-boven-vleugel
    (list (+ (car bdh-inserteerpunt) 78 )
          (- (cadr bdh-inserteerpunt) 2)
    )
 )
 (command "-bhatch"   "p"        "u"     "45"
      "3"      "n"        "s"     selectie-boven-vleugel
      ""      ""
     )
 (setq   selectie-boven-kozijn
    (list (+ (car bdh-inserteerpunt) 63)
          (+ (cadr bdh-inserteerpunt) 40)
    )
 )
 (command "-bhatch"   "p"      "u"          "135"      "3"
      "n"          "s"      selectie-boven-kozijn   ""
      ""
     )
 (setq   selectie-boven-glaslat
    (list (+ (car bdh-inserteerpunt) 81)
          (- (cadr bdh-inserteerpunt) 75)
    )
 )
 (command "-bhatch"   "p"      "u"          "135"      "3"
      "n"          "s"      selectie-boven-glaslat   ""
      ""
     )
 (command "-layer" "set" "afmetingen" "")
 (command "dimaligned"
      (list (car selectie-boven-vleugel)
       (cadr selectie-boven-vleugel)
      )
      (list (car selectie-onder-vleugel)
       (cadr selectie-onder-vleugel)
      )
      (list (+ (car selectie-boven-vleugel) 25)
       (cadr selectie-boven-vleugel)
      )
 )
  (command "dimaligned"
      (list (car bdh-inserteerpunt)
       (cadr bdh-inserteerpunt)
      )
      (list (car odh-inserteerpunt)
       (cadr odh-inserteerpunt)
      )
      (list (- (car bdh-inserteerpunt) 25)
       (cadr bdh-inserteerpunt)
      )
 )
   (command "dimaligned"
      (list (+ (car begin-glas-on) 20)
       (cadr begin-glas-on)
      )
      (list (+ (car einde-glas-bo) 16)
       (cadr einde-glas-bo)
      )
      (list (+ (car begin-glas-on) 50)
       (cadr begin-glas-on)
      )
 )
 (princ)
)

Als je de wblocks wil hebben moet je het mij maar vragen.  :wink:
kenny.habils@skynet.be
Ik zal pas laat kunnen antwoorden omdat ik morgen nog een info avond heb in Gent.
Maw vrijdag of zaterdag heb je antwoord.

Voor degene die commentaar hebben op mijn programeerwijze het volgende:
Dit komt nog uit mijn STUDEERPERIODE, maw net 1 jaar geleden heb ik dit geschreven, dit was dus gewoon een oefening :!:

Ik gebruik excel niet in deze lisp.
Alle maten worden gegeven in de tekening.
Deze kun je dan met een andere lisp exporteren naar excel.
Dat zal hier wel ergens te vinden zijn. :wink:

Hopelijk ben je hier iets mee.

MVG

Kenny

*****
Edit:
Effe die 8) omgezet in 8 )
@ Julien, kun je dit niet afzetten :?:
*****
Titel: excel - AutoCad
Bericht door: Kenny H op wo 12 10 2005, 20:47:36
Ik ben toch véél te braaf om hier even mijn kennis weg te geven.

Ik zou beter stoppen met antwoorden te geven/ lisp te schrijven / mijn kennis doorgeven enz.
En zeggen dat voor hetzelfde werk personen betaald worden. :duivel1:

Daarom wie geld wil storten, als dank, mag mij contacteren :!:  :lachen: :lachen: :lachen:

En aan al de andere die hier enkel posten dat we zullen helpen.
Help die persoon dan door een VOORBEELD te geven.
Zo help je iemand :!: :!: :!: :!: :!:
Niet door te zeggen we zullen helpen.

Ik weet ook dat er hier gebruikers zijn dat enkel met onze kennis gaan lopen en daar dan mee stoefen op het werk.
Maar als ze iets moeten aanpassen, dan lukt het hen niet.

Er zijn hier dan ook veel gebruikers die alles lezen en dingen uitproberen.
Wat ik trouwens ook doe. En dat vind ik de beste manier om zaken aan te leren.
Er zijn een aantal functies die ik nooit gebruik, ik weet dan ook niet meteen wat die doen, als er hier iemand een probeleem mee heeft.


Tot zover mijn offtopic gaan.
Sorry mods

Kenny
Titel: excel - AutoCad
Bericht door: Dnereb op wo 12 10 2005, 23:20:02
Ik had niet verwacht dat iemand enige achting voor mij had dus zelf in achting dalen is al een compliment.

Verder, en dit meen ik, vind ik het wel doe moeite waard om een paar goede voorbeelden te maken om data uit te lezen van Access/Excel
en weg te schrijven vanuit Acad.
Maar dan moet er wel een goede plaats zijn om die te plaatsen gelijk de lisp downloads.

Ik heb namelijk geen zin om een paar uur te klooien om later te merken dat dat werk na 2 maanden diep in de krochten van een forum in vergetelheid raakt.

O en webracer ik twijfelde tussen jouw naam en kenny in mijn eerste post.

Verder vraag ik mij af of Magictom wel iets van Lisp weet of er mee kan.
Titel: excel - AutoCad
Bericht door: julien op wo 12 10 2005, 23:29:24
Kenny die 8 ) dat automatisch een  8)
wordt kan je afzetten door iets boven de OK knop 'Schakel Smilies uit in dit bericht' aan te vinken.

BTW, ik duld geen betalingen (behalve als ik mee deel in de koek).  :twisted:
Titel: excel - AutoCad
Bericht door: magictom op vr 14 10 2005, 12:06:01
hallo,

ik heb een basis lisp en ben opnieuw begonnen mij te verdiepen in het programma!

en het voorbeeld is een schitterend voorbeeld,

alvast bedankt Kenny
:P
Titel: excel - AutoCad
Bericht door: Kenny H op vr 14 10 2005, 15:41:02
@Tom,
Graag gedaan  :wink:

@ julien,
Jij krijgt ook een deel, 1/3 goed voor u :?: :lachen:
Ik weet ook wel dat dit op vrijwillige basis is om hier te antwoorden.

MVG

Kenny