CADsite forum

AutoCAD => Autolisp => Topic gestart door: balletje23 op wo 12 05 2010, 10:13:54

Titel: Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?(opgelost)
Bericht door: balletje23 op wo 12 05 2010, 10:13:54
Vb in een tekening zijn een hele reeks lose teksten met daar in cijfers.
Nu wil ik door middel van selecteren van alle losse tekst op telaten tellen.
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen in autocad?
Bericht door: roy_043 op wo 12 05 2010, 10:25:45
Als je zelf een lisp wilt schrijven dan is deze link zeer interessant:
http://ww3.cad.de/foren/ubb/Forum145/HTML/003096.shtml
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen in autocad?
Bericht door: cadtools@gmail.com op wo 12 05 2010, 11:49:03
Deze van Lee Mac @theswamp.org zul je zeker waarderen.
Hij zit in m'n toolbox, meestal ben ik lui aangelegd...


Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen in autocad?
Bericht door: balletje23 op vr 02 07 2010, 10:13:43
Citaat van: cadtools@gmail.com op wo 12 05 2010, 11:49:03
Deze van Lee Mac @theswamp.org zul je zeker waarderen.
Hij zit in m'n toolbox, meestal ben ik lui aangelegd...




hoe werkt deze functie: ik heb deze algeladen en textmath in getypt maar, ik wil bij voorbeeld 4 texten laten optellen
en de 5e text het totaal van de text hebben.

text 1 = 3
text 2 = 3
text 3 = 2
text 4 = 1

text 5 = 9 (totaal waarde van 3+3+2+1=dus 9)






Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen in autocad?
Bericht door: balletje23 op di 28 09 2010, 15:49:11
WIE WEET NOG EEN ANDERE LISP DEZE KOM IK NIET UIT :?:
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen in autocad?
Bericht door: cadtools@gmail.com op di 28 09 2010, 20:23:31
Ja dat kan.
ik heb hiervoor de functie 'math'
Check.
https://sites.google.com/site/layercreator/
er staat een videotje op

COMMAND:MATH
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen in autocad?
Bericht door: HofCAD op wo 29 09 2010, 16:29:38
Beste Balletje23,

Om te starten:
http://forums.cadalyst.com/showthread.php?t=6303&page=2
Het is echter bij sumtx niet geoorloofd dat er teksten voor het getal staan.

Met vriendelijke groet, HofCAD CSI.

PS Hoe zit het eigenlijk met:
http://www.cadsite.be/smf/index.php?topic=3959.0
en http://www.cadsite.be/smf/index.php?topic=4115.0
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen in autocad?
Bericht door: balletje23 op do 30 09 2010, 09:37:16
Citaat van: HofCAD op wo 29 09 2010, 16:29:38
Beste Balletje23,

Om te starten:
http://forums.cadalyst.com/showthread.php?t=6303&page=2
Het is echter bij sumtx niet geoorloofd dat er teksten voor het getal staan.

Met vriendelijke groet, HofCAD CSI.


Het is gelukt precies wat ik wilde hebben

Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen in autocad?
Bericht door: balletje23 op do 30 09 2010, 12:50:35
Citaat van: HofCAD op wo 29 09 2010, 16:29:38

PS Hoe zit het eigenlijk met:

http://www.cadsite.be/smf/index.php?topic=4115.0


binnenkort ga ik hiermee verder ik was het al weer vergeten.
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: balletje23 op wo 03 11 2010, 15:14:20

Hofcad kan je me helpen om de lips aan tepassen.
3.punten waar ik mee zit.

Het nadeel van deze script is dat hij

1-Geen komma's leest en wel punten bijvoorbeeld(5,2 neemt hij niet mee) bij 5.2 werkt dat wel
Dus als ik tekst 5,2 selecteer + 5,3 uikomst is 10 inplaats van 10,6

2-Tekst voor cijfer k5.2+5 uitkomst is 5.2.Beter is dat hij ook tekst voor als achter de cijfers herkent en die mee optelt.

3-Tekst perstuk selecteren dus als ik 5,2, 5,3 5,4 5,5 op moet optellen, moet ik 4 keer op de tekst klikken en vervolgens plaats je een tekst met daar de uitkomst. Handiger is om de teksten met window en cross aan teklikken en indien ik nog wat andere tekst erbij wil, dat ik verder met window ander tekst mee pak, daarna op een bestaande tekst teklikken en dat daar de juiste antwoord terecht komt.




;;; CADALYST 07/08  www.cadalyst.com/code
;;; Tip 2293: AddValues.lsp   Add Text Values   (c) 2008 Brock Narum

;;; AddValues.lsp Created by Brock Narum 02-03-08
;;; This Lisp routine will add up text values of objects selected in the
;;; dwg and prompt for insertion point of new text string with the total.
;;; Selected objects can either be attributes or text strings that are
;;; defined in the dwg or xrefed into the dwg.


;;;modifed by: alan thompson 6.5.08
;;;1. added ability to use mtext and AECC_POINT (in addition to text and attributes)
;;;2. added option to add or subtract
;;;3. cleaned up and modified code a bit
;;; modified by: alan thompson 8.4.08 (added trans (non-WCS) to (getpoint) for text placement)


;;;=========================== Main Routine =========================
(defun C:optellen (/ math_option plus_minus clname echo os dmscl val2   att val1 val2 tstyle theight p1 txt1)
  (setq   olderr   *error*
   *error*   err01
   clname   (getvar "clayer")
   echo   (getvar "cmdecho")
   os   (getvar "osmode")
   dmscl   (getvar "dimscale")
  )


(if (not default_option)
(setq default_option "Add")
);if
(initget 0 "Add Subtract")

(setq math_option
(cond
(
(getkword (strcat "\n Add or Subtract <ENTER to " default_option ">: "))
)
(default_option)
);cond
);setq

(setq default_option math_option)

(cond
    ((= math_option "Add")
      (progn
        (setq math_option +)
        (setq plus_minus "Add")
      );progn
    )
    ((= math_option "Subtract")
      (progn
        (setq math_option -)
        (setq plus_minus "Subtract")
      );progn
    )
)



  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (setq val2 0.0)
;  (princ (strcat "\nSelect Text Objects to " plus_minus ":  "))
  (while (setq ref1 (entsel (strcat "\nSelect Text Object to " plus_minus ":  ")))
    (setq att (entget (car ref1)))
    (if   (or (= (cdr (assoc 0 att)) "ATTRIB")
       (= (cdr (assoc 0 att)) "TEXT")
       (= (cdr (assoc 0 att)) "MTEXT")
       (= (cdr (assoc 0 att)) "AECC_POINT")
   );or
;;; Filters out only attribute and text objects

(progn
(if
(= (cdr (assoc 0 att)) "AECC_POINT")
(progn
(setq dwg (vla-get-activedocument (vlax-get-acad-object)))
(setq val1 (rtos (last (assoc 11 att))))
);progn
(setq val1 (cdr (assoc 1 att)))
);if
        (princ (strcat "\n" val1))
        (setq val2 (abs (math_option (atof val1) val2)))
      );;progn
    );if or
  );while
  (princ (strcat "\nTotal = " (rtos val2 2 2)))
  (setq   val2   (rtos val2 2 2)
   tstyle   (getvar "textstyle")
;   theight   (* (/ dmscl 96.0) 6.0)
   theight   (getvar "textsize")
;;; Sets Text Height based on DWG Dimscale
  )
  (initget 1)
  (setq p1 (trans (getpoint "\nPick Text Insertion Point.. ") 1 0))
;  (SetLayer "GPM" 3 "Continuous")
;;; Internal function for setting clayer and creating if necessary
  (setq   txt1 (entmake (list '(0 . "text")
             (cons 1 val2)
             (cons 7 tstyle)
             (cons 10 p1)
             (cons 40 theight)
             (cons 41 1)
             (cons 50 0)
            )
        )
  )
  (setq *error* olderr)
  (setvar "OSMODE" os)
  (setvar "CLAYER" clname)
  (setvar "CMDECHO" echo)
  (princ)
)
;;;================= Sub Routine (Error Trapping) ===================
(Defun err01 (msg)
  (setvar "osmode" os)
  (setvar "cmdecho" echo)
  (setvar "dimscale" dmscl)
  (setq *error* olderr)
  (princ msg)
  (princ)
)
;;;================ Sub Routine (Set/Create Layer) ==================
(Defun SetLayer   (lname lcolor llinetype / lay1)
  (if (tblsearch "LAYER" lname)
    (progn (setq lay1 (entget (tblobjname "layer" lname)))
      (setq lay1 (subst (cons 70 0) (assoc 70 lay1) lay1)
       lay1 (subst (cons 62 lcolor) (assoc 62 lay1) lay1)
      )
      (entmod lay1)
    )
    (progn (entmake (list '(0 . "LAYER")
           '(100 . "AcDbSymbolTableRecord")
           '(100 . "AcDbLayerTableRecord")
           (cons 2 lname)
           '(70 . 0)
           (cons 62 lcolor)
           (cons 6 llinetype)
          )
      )
    )
  )
  (setvar "clayer" lname)
)
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: roy_043 op do 04 11 2010, 22:04:03
Je wilt deze "som" dus op kunnen tellen:
5,2k+a23b48+cc+23.8xyz=
:D :D
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: balletje23 op do 04 11 2010, 22:43:33
Citaat van: roy_043 op do 04 11 2010, 22:04:03
Je wilt deze "som" dus op kunnen tellen:
5,2k+a23b48+cc+23.8xyz=
:D :D

nee dat ook weer niet zo ingewikkeld

eigenlijk wil ik dat hij compatible is.

Kijk de lisp kan ik voor bepaalde tekening gebruiken en zodra ik
een andere tekening openen en die anders is opgebouwd met bv letter + cijfer kan ik de lisp al niet meer gebruiken. dus moet ik het handmatig doen, doordat een lisp compatible is zou ik hem voor meerdere
soorten tekeningen kunnen gebruiken.

Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: roy_043 op vr 05 11 2010, 09:53:48
Citaat van: balletje23 op wo 03 11 2010, 15:14:202-Tekst voor cijfer k5.2+5 uitkomst is 5.2.Beter is dat hij ook tekst voor als achter de cijfers herkent en die mee optelt.
Hoe moet dit dan worden opgevat?
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: roy_043 op vr 12 11 2010, 14:35:56
@ balletje23: Moet ik concluderen dat je niet meer geïnteresseerd bent in dit onderwerp?
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: balletje23 op ma 15 11 2010, 22:50:56
Citaat van: roy_043 op vr 12 11 2010, 14:35:56
@ balletje23: Moet ik concluderen dat je niet meer geïnteresseerd bent in dit onderwerp?

:mrgreen:Sorry :mrgreen: ik was druk bezig met werk en ben dit vergeten, ga morgen even kijken wat ik precies wil hebben.
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: balletje23 op di 16 11 2010, 08:44:38
Het nadeel van deze script is dat hij

1-Geen komma's leest en wel punten bijvoorbeeld(5,2 neemt hij niet mee) bij 5.2 werkt dat wel
Dus als ik tekst 5,2 selecteer + 5,3 uikomst is 10 inplaats van 10,6

2-Tekst voor cijfer k5.2+5 uitkomst is 5.2.Beter is dat hij ook tekst voor als achter de cijfers herkent en die mee optelt.

3-Tekst perstuk selecteren dus als ik 5,2, 5,3 5,4 5,5 op moet optellen, moet ik 4 keer op de tekst klikken en vervolgens plaats je een tekst met daar de uitkomst. Handiger is om de teksten met window en cross aan teklikken en indien ik nog wat andere tekst erbij wil, dat ik verder met window ander tekst mee pak, daarna op een bestaande tekst teklikken en dat daar de juiste antwoord terecht komt.

Alleen punt 2 kan er wel tussen uit.
De rest lijkt me erg handig als het werkt.
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: roy_043 op di 16 11 2010, 09:43:55
Bijgevoegd: SumNum_B.lsp

1.
Ook komma-getallen worden opgeteld.
2.
Alle getallen worden uit de tekst gefilterd en opgeteld.
3.
Er kunnen meerdere bronteksten tegelijk worden geselecteerd.
4.
Voor het weergeven van het resultaat moet een bestaande (m)text of attrib worden geselecteerd.
5.
Werkt niet voor getallen in voeten en inches of in wetenschappelijke notatie (1.5e-16).

Bijvoorbeeld:
5,2k+a23b48+cc+23.8xyz
Levert:
5.2+23+48+0+23.8=100

Laat even weten of het werkt...
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?
Bericht door: balletje23 op di 16 11 2010, 16:13:49
Ja dit is perfect voor mij werkt goed!! :vreegoe: :vreegoe:
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?(opgelost)
Bericht door: balletje23 op wo 24 11 2010, 14:55:23
Nog 1 extra dingetje is het mogelijk dat bij selectie van van de uitkomst,
het bestaande cijfer wordt aan gepast maar tekst/en de tekststylen: onderstrepen, vet, komma en punten enz behoudt.

vb
3,0 appel + 2.0 banaan =5,0 kilo    ( ipv dat hij 5.0 van maakt).
Of
3.0 appel + 2.0 banaan =5,0 kilo     (hier dat hij de komma onthoudt).

Dan is zou de lisp perfect zijn.
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?(opgelost)
Bericht door: roy_043 op do 25 11 2010, 09:54:00
Citaat van: balletje23 op wo 24 11 2010, 14:55:23Nog 1 extra dingetje
Het is wat complexer dan jij denkt, maar ik zal er eens naar kijken.
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?(opgelost)
Bericht door: roy_043 op vr 26 11 2010, 12:30:09
Bijgevoegd SumNum_C.lsp. Opnieuw het verzoek om even te melden of het werkt.
Titel: Re:Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?(opgelost)
Bericht door: balletje23 op vr 26 11 2010, 18:35:56
Citaat van: roy_043 op vr 26 11 2010, 12:30:09
Bijgevoegd SumNum_C.lsp. Opnieuw het verzoek om even te melden of het werkt.

Roy je bent de beste :vreegoe: hij werkt nu perfect!!! thxx voor alles .

en een hele goede Weekend!!!!!!!!!!!!!!!!!!!!! :D