FastFiber

Is het mogelijk om lose geselecteerde cijfer op telaten tellen ?(opgelost)

Gestart door balletje23, wo 12 05 2010, 10:13:54

Vorige topic - Volgende topic

balletje23

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.

roy_043


cadtools@gmail.com

Deze van Lee Mac @theswamp.org zul je zeker waarderen.
Hij zit in m'n toolbox, meestal ben ik lui aangelegd...



balletje23

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)







balletje23


cadtools@gmail.com


HofCAD

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
ACADcadabra

balletje23

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


balletje23


balletje23


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)
)

roy_043

#10
Je wilt deze "som" dus op kunnen tellen:
5,2k+a23b48+cc+23.8xyz=
:D :D

balletje23

#11
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.


roy_043

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?

roy_043

@ balletje23: Moet ik concluderen dat je niet meer geïnteresseerd bent in dit onderwerp?

balletje23

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.

yoin