CADsite forum

AutoCAD => Autolisp => Topic gestart door: Vanilla Queen op ma 05 11 2018, 22:05:18

Titel: optellen waarden en in een field plaatsen (opgelost)
Bericht door: Vanilla Queen op ma 05 11 2018, 22:05:18
Ik zou graag een lisp maken dat twee text-bestanden leest. Deze tekstbestanden zijn integers. Het programma moet vervolgens deze waarden optellen en de som in een field teruggeven.
Ik kan wel 1 text-bestand lezen en in een field teruggeven maar ik slaag er niet in om de twee bestanden op te tellen. Kan iemand mij op weg helpen?
Titel: Re: optellen waarden en in een field plaatsen
Bericht door: Vanilla Queen op ma 05 11 2018, 22:09:46
Ter info:

ik heb;

(setq schrijfgetalID (strcat "%<\\AcObjProp Object(%<\\_ObjId " getalID ">%).TextString>%"))
"%<\\AcObjProp Object(%<\\_ObjId 2497851039040>%).TextString>%"

en:

  (setq schrijfgetalID2 (strcat "%<\\AcObjProp Object(%<\\_ObjId " getalID2 ">%).TextString>%"))
"%<\\AcObjProp Object(%<\\_ObjId 2497851039840>%).TextString>%"

en zou nu graag beide optellen .


Titel: Re: optellen waarden en in een field plaatsen
Bericht door: EddyBeerke op di 06 11 2018, 11:25:07
%<\AcObjProp Object(%<\_ObjId 2338838875936>%).TextString>% + %<\AcObjProp Object(%<\_ObjId 2338838875952>%).TextString>%
Als ik dit in een field zet dan komt er een field expression uit:
%<\AcExpr (%<\_FldPtr 2338641346064>% + %<\_FldPtr 2338641345168>%)>%

Is dit mogelijk? :
(strcat "%<\AcExpr (" schrijfgetalID " + " schrijfgetalID2 ")>%")
Titel: Re: optellen waarden en in een field plaatsen
Bericht door: Vanilla Queen op di 06 11 2018, 23:07:22
Nee, dit blijkt niet te werken. Ik krijg als resultaat: AcExpr ( + )

Blijkbaar mis ik de stap van:
%<\AcObjProp Object(%<\_ObjId 2338838875936>%).TextString>%

naar de field expression:

%<\AcExpr (%<\_FldPtr 2338641346064>%

De omzetting zoals deze gebeurd door "formula" in de field dialoog.
Titel: Re: optellen waarden en in een field plaatsen
Bericht door: EddyBeerke op vr 09 11 2018, 16:15:18
Citaat van: Vanilla Queen op di 06 11 2018, 23:07:22
Nee, dit blijkt niet te werken. Ik krijg als resultaat: AcExpr ( + )
Blijkbaar mis ik de stap van:
%<\AcObjProp Object(%<\_ObjId 2338838875936>%).TextString>%
naar de field expression:
%<\AcExpr (%<\_FldPtr 2338641346064>%
De omzetting zoals deze gebeurd door "formula" in de field dialoog.
Dit werkt bij mij:
(setq a "%<\\AcObjProp Object(%<\\_ObjId 2744017587024>%).TextString>%")
(setq b "%<\\AcObjProp Object(%<\\_ObjId 2744017587040>%).TextString>%")
(setq str (strcat "%<\\AcExpr (" a " + " b ")>%"))
Titel: Re: optellen waarden en in een field plaatsen (opgelost)
Bericht door: Vanilla Queen op za 10 11 2018, 11:25:18
Je hebt gelijk!
Het werkt inderdaad.

Let wel: voor AcExpr moet  \\ staan en niet \

Bedankt om het opnieuw door te geven en vooral bedankt voor deze oplossing.