CADsite forum

AutoCAD => Autolisp => Topic gestart door: Nikolai op di 27 09 2005, 07:23:27

Titel: Getallen optellen
Bericht door: Nikolai op di 27 09 2005, 07:23:27
Goedendag,

Is het mogelijk om getallen op te tellen met lisp?
Het gaat over een hoogtemeting.
Hiervan moet er een grondbalans gemaakt worden. Ik wil graag een gemiddelde hoogte van het terrein krijgen door hoogtes op te tellen en te delen door het aantal.

Groetjes
Titel: Re: Getallen optellen
Bericht door: HofCAD op di 27 09 2005, 08:05:01
Citaat van: NikolaiGoedendag,

Is het mogelijk om getallen op te tellen met lisp?
Het gaat over een hoogtemeting.
Hiervan moet er een grondbalans gemaakt worden. Ik wil graag een gemiddelde hoogte van het terrein krijgen door hoogtes op te tellen en te delen door het aantal.
Groetjes


----------- ~\\|//~ ------------
------------
  • -
  • -------------
    -------ooO---(_)---Ooo-------- [/color]

    Beste Nikolai,

    Natuurlijk kan Lisp getallen optellen.
    Veel belangrijker is het, hoe kan Lisp de getallen in een tekening verzamelen of herkennen.
    Bijvoorbeeld:

    1) Zijn de getallen de Z-waardes van 3D hoogtelijnen.
    2) Staan de getallen als teksten in de tekening
    3) Staan de getallen als attribuutwaarden in de tekening.
    4) Staan de getallen als X-data gekoppeld aan de hoogtelijnen.

    Gebruik je tevens bijv. voor de herkenning van de elementen,
    een speciale laag of een bepaald voorvoegsel enz.
    Wil je het resultaat bijvoorbeeld op de commandoregel, in de tekening
    of in Excel.
    Je moet daarom volgens mij, iets meer vertellen over je probleem.

    Groetjes HofCAD CSI
Titel: Getallen optellen
Bericht door: Nikolai op wo 28 09 2005, 07:58:08
De getallen staan gewoon als teksten in de tekening zonder Z-waarde. De teksten staan niet in een aparte laag.
Waar de optelling komt te staan maakt niet veel uit. In de commandoregel is in principe prima.

Groetjes
Titel: Getallen optellen
Bericht door: HofCAD op wo 28 09 2005, 15:51:27
Citaat van: NikolaiDe getallen staan gewoon als teksten in de tekening zonder Z-waarde. De teksten staan niet in een aparte laag.
Waar de optelling komt te staan maakt niet veel uit. In de commandoregel is in principe prima.

Groetjes


----------- ~\\|//~ ------------
------------
  • -
  • -------------
    -------ooO---(_)---Ooo-------- [/color]

    Beste Nikolai,

    Dat de getallen van de hoogtemeting, voor als nog geen goed
    onderscheidend kenmerk hebben is zeer vervelend. :cry:  :cry:  :cry:
    Als het niet de laag is, dan bijv. de hoogte of de tekststijl.

    Steve heeft bij zijn AutoCAD probleem:
    'Maten van AutoCAD tekeningen in EXCEL importeren', het programma
    TXTOUT geschreven.

    Probeer dat programma eens uit, door de bij de vraag
    'Text export file name:'  c:\temp\proef.xls in te vullen.
    Daarna de getallen met de muis selecteren.
    Als U daarna met de verkenner deze file opspoort en er dubbel opklikt,
    zal Excel openen.
    Met de rekenfuncties van Excel kunt U dan het gemiddelde uitrekenen.
    Als U dit als een aardige voorzet ziet, dan kan men daar op voortborduren.
    Door het bijv. zo te maken dat Excel zich automatisch opstart en
    automatisch het gemiddelde geeft.

    Groetjes HofCAD CSI

    PS Zijn de hoogtes altijd de enige getallen in de tekening?
Titel: Getallen optellen
Bericht door: WebRacer op wo 28 09 2005, 17:44:18
Dit kan volgens mij ook opgelost worden met een loop die gaat kijken naar de inhoud van de tekst, die dan controleerd en dan zelf alle getallen opteld in die laag natuurlijk!! en het gemiddelde weergeeft...
verder eventueel de getallen laten in een kleur zetten naar hoogtepeilen: bv input:
Geef de tussenmaten op: <10> 20
en dan zet ie alles wat tss 0 en 20 ligt in een kleur
tss 20 en 40 in een ander... ook negatief ev.

en dan zie je op je tekening ook effectief al de hoogte-vlakken al...
ik heb dat eens gedaan voor punten, dus dat is snel aangepast...
Titel: Getallen optellen
Bericht door: HofCAD op wo 28 09 2005, 19:31:05
Citaat van: NikolaiDe getallen staan gewoon als teksten in de tekening zonder Z-waarde. De teksten staan niet in een aparte laag.
Waar de optelling komt te staan maakt niet veel uit. In de commandoregel is in principe prima.

Groetjes


----------- ~\\|//~ ------------
------------
  • -
  • -------------
    -------ooO---(_)---Ooo-------- [/color]

    Beste Nikolai,

    Ik zeg stel: stel dat er in de tekening alleen getallen zijn die
    hoogtes zijn
    , dan zou je zo iets als onderstaand programma
    kunnen gebruiken.
    De tekening mag overigens wel gewone teksten bevatten.

    Groetjes HofCAD CSI



    (defun c:gemho (/ ss i n h h_tot ssmax gem)
     (if (setq ss
            (ssget "X"
              '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (-4 . "OR>"))
            )
         )
       (progn
         (setq i     0
           n     0
           h_tot 0
           ssmax (sslength ss)
         )
         (repeat ssmax
       (progn
         (setq   ed (entget (ssname ss n))
          h  (cdr (assoc 1 ed))
         )
         (setq h (read h))
         (if
           (numberp h)
            (progn (setq i   (+ i 1)
               h_tot   (+ h_tot h)
              )
            )
         )
         (setq n (1+ n))
       )
         )
         (if (> i 0)
       (progn
         (setq gem (/ h_tot (float i)))
         (princ (strcat "\n De gemiddelde hoogte (van "
              (itoa i)
              " hoogtes) is "
              (rtos gem)
           )
         )
       )
         )
       )
     )
     (princ)
    )
Titel: Getallen optellen
Bericht door: Nikolai op wo 12 10 2005, 08:36:12
Een goedendag,

Om te beginnen excuses voor de late reactie :oops: .  Vakantie gehad :lol:

Beste HofCAD, het programma van Steve deed inderdaad wat ik bedoelde.
Het programma dat je zelf had gepost had als nadeel dat het alle getallen in de tekening meeneemt. Dat is lastig als je een selectie van de getallen nodig hebt. Het voordeel was wel dat het antwoord gewoon in de commandoregel kwam te staan en ik daar niet Excel voor hoefde te openen.

In ieder geval iedereen bedankt voor de reacties.

Groetjes
Titel: Getallen optellen
Bericht door: julien op wo 12 10 2005, 09:26:53
Even een gokje van mij...

Als je de getallen die opgeteld dienen te worden altijd in een zelfde afzonderlijke layer kan tekenen, is het dan mogelijk om hofcad zijn lisp te gebruiken?
Titel: Re: Getallen optellen
Bericht door: HofCAD op wo 12 10 2005, 13:01:19
Citaat van: NikolaiEen goedendag,

Om te beginnen excuses voor de late reactie :oops: .  Vakantie gehad :lol:

Beste HofCAD, het programma van Steve deed inderdaad wat ik bedoelde.
Het programma dat je zelf had gepost had als nadeel dat het alle getallen in de tekening meeneemt. Dat is lastig als je een selectie van de getallen nodig hebt. Het voordeel was wel dat het antwoord gewoon in de commandoregel kwam te staan en ik daar niet Excel voor hoefde te openen.

In ieder geval iedereen bedankt voor de reacties.
Groetjes


----------- ~\\|//~ ------------
------------
  • -
  • -------------
    -------ooO---(_)---Ooo-------- [/color]

    Beste Nikolai,

    Bij het programma had ik ook geschreven:

    Ik zeg stel: stel dat er in de tekening alleen getallen zijn die
    hoogtes zijn
    ,
    dan zou je zo iets als onderstaand programma
    kunnen gebruiken.
    De tekening mag overigens wel gewone teksten bevatten.


    Voor automatische werking is nog steeds de herkenbaarheid van de
    getallen 'Het probleem'.
    Zolang je daar niets op gevonden (laag kleur texthoogte lijntype tekststijl
    width factor obliquingangle) kan ik geen criterium maken voor een programma.
    Als je de getallen zelf wilt selecteren verwijder dan de "X" in
    de regel van het programma GEMH0.
    Dus de regels
    (ssget "X"
    '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (-4 . "OR>"))

    worden
    (ssget
    '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (-4 . "OR>"))



    Groetjes HofCAD CSI
Titel: Getallen optellen
Bericht door: Nikolai op wo 12 10 2005, 13:29:45
Beste HofCAD,

een hele dikke merci, dit is precies wat ik nodig heb.

Groeten,
Niek