yoin

Cad_user86

hallo allemaal,

Om bij grote tekeningen de oppervlakten niet steeds te hoeven aanpassen bij wijzigingen, zou ik graag gebruik maken van fields.
Hoe ik dit moet doen begrijp ik wel:
Field>Object>Polyline selecteren> Area> aanpassen aan behoefte...

Bij deze laatste zit echter mijn vraag: ik teken in cm, en wil weergave van oppervlakte in m².
ik pas dit aan bij de additional format, en alles werkt perfect. Dit moet ik echter steed opnieuw helemaal instellen: Is het mogelijk om deze additional setup ingesteld te laten staan, of is het echt nodig dit steeds, bij elke nieuwe oppervlakte die je wil weergeven, opnieuw in te stellen?

Alvast bedankt!

hulpje

#1
Cad_user,

Dit is prima in een Macro te vatten!

Ik moet even zoeken waar ik het heb, probeer het zo te posten!

Richard

EDIT: Check deze post!

http://www.cadsite.be/smf/index.php?topic=1436.msg7822#msg7822

HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

Cad_user86

Hey hulpje,

Dit is inderdaad een handige macro, echter past de tekst zich niet aan als ik bv bepaalde ruimten vergroot.
Is het mogelijk om in deze macro de geplaatste tekst als field weer te geven?

Bedankt!

EddyBeerke

Je kunt ook een functie gebruiken in een field:
De area van een pline weet je al.
Deze van mijn polyline:
%<\AcObjProp Object(%<\_ObjId 8796065842112>%).Area \f "%lu2">%

Deze regel plak ik dan in het vakje "Formula:" ("Field category" -> "Formula")
Of je gaat gelijk naar "Formula" en klikt in daar met rechts in en kiest voor "Field" om er hier een in te voegen zoals bij de area van een pline.
Hier kun je allerlei berekeningen maken:
bv.: [field]*10000 of /10000

Ik heb zelfs een keer een block gemaakt met een field voor de helling bv. 1 op xxx of xxx%.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

Reimer

Beste Cad_user86,

jouw vraag deed me denken aan mijn eigen vraag waar Joop en tae mij destijds geholpen hebben.
(http://www.cadsite.be/smf/index.php?topic=1208.msg6510#msg6510)
Deze werkt bij mij echter niet meer.

Na wat zoeken kwam ik op een andere code voor het opvragen van de objectID voor 64-bit systemen.
Ik kan de onderstaande code niet toelichten omdat ik geen kennis heb van visual lisp. Het werkt echter wel bij mij.
Met deze lisp plaats je een Mtext met daarin een field die de oppervlakte van het geselecteerde object weergeeft. De regel na ";;mtext met field maken:" bepaald de vorm van het field. Als je iets wilt aanpassen aan het field dan moet deze regel bewerkt worden (eenheid, nauwkeurigheid, prefix, etc)

(defun c:Areafield (/ bEnt bObj util bID FieldTxt PT1)
  (vl-load-com)
  (setq bEnt (nentsel "\nSelect area boundary"))
  (setq bObj (vlax-ename->vla-object (car bEnt)))
;;objectID bepalen
  (if (> (vl-string-search "x64" (getvar "platform")) 0)
  ;;indien 64x:
    (progn
      (setq util (vla-get-Utility (vla-get-activedocument (vlax-get-acad-object))))
      (setq bID (vlax-invoke-method util "GetObjectIdString" bObj :vlax-False))
    );_progn
  ;;indien niet 64x:
    (setq bID (rtos (vla-get-objectid bObj)))
  ) ;end if
;;mtext met field maken:
  (setq FieldTxt (strcat "%<\\AcObjProp.16.2 Object(%<\\_ObjId " bID ">%).Area \\f \"%lu2%ps[, m2]%ct8[0.0001]\">%"))
  (setq PT1 (getpoint "\Specify start point of text: "))
  (command "mtext" PT1 "@" FieldTxt "")
)


Reimer

FastFiber