Bladnummer uit huidige lay-out-tab halen (opgelost)

Gestart door Jacob, wo 20 06 2018, 11:08:02

Vorige topic - Volgende topic

Jacob

Hallo,

Na het suc6 met de schaal van de viewpoort wil je gelijk verder met het verbeteren....

Kan het Bladnr. in de onderhoek gehaald worden uit tab waar je in zit?
Ik denk dan weer om dat via atribute te doen, maar weet niet wat en welke keuze ik moet maken.
Heb de hele lijst al door zitten kijken, maar kom er niet uit.

Ook weet ik niet of een tab wel een nummer in zich heeft.

Ben benieuwd of dit mogelijk is.

Mvg Jacob
Een expert is iemand die steeds meer weet over steeds minder.

hulpje

#1
Jacob,

Goed om zoveel enthousiasme te zien!
Of tabbladen een nummer hebben weet ik niet, maar je kunt wel de tab-naam toepassen.
Hiervoor moet je de optie CTAB gebruiken.

Check anders eens dit filmpje...

https://www.youtube.com/watch?v=4J48hSWMtT8&feature=youtu.be

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

Jacob

Hoi Richard,

Die heb ik al in gebruik (ook sinds kort :wink:)
Daar staat het onderdeel in wat in de viewpoort staat bijv. Detail A.

Daarnaast hebben we nog: Blad 1, Blad 2, Blad 3 enz.
De CTAB kan ik daar dus niet voor gebruiken.

Toch bedankt.
Een expert is iemand die steeds meer weet over steeds minder.

hulpje

Jacob,

Ik heb ook nog navraag gedaan, zeer waarschijnlijk wordt er geen tab-index bijgehouden.
Misschien iets voor op de Wishlist bij AutoDESK....

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

gery

Als je bladnr. in een attribuut in een block zit, kan je via LISP dit attribuut uitlezen.
Met deze functie bijv.: http://www.lee-mac.com/attributefunctions.html#algetattributevalueit
AutoCAD 2020 - Windows 10

hulpje

Gery,
Het zit als een attribute in mijn block, maar die moet niet uitgelezen worden, maar juist ingevuld....
Er moet dus iets zijn, dat leest, hoeveelste tabblad het is en die waarde moet ingevuld worden in het block.

Even een bijlage ter verduidelijking....
HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

roy_043

#6
(defun c:TabNrToTxt ( / doc enm str)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-endundomark doc)
  (vla-startundomark doc)
  (if
    (and
      (setq enm (car (nentsel "\nSelect (m)text or attribute: ")))
      (vlax-property-available-p (vlax-ename->vla-object enm) 'textstring)
    )
    (progn
      (setq str (itoa (vla-get-taborder (vla-get-activelayout doc))))
      (vla-put-textstring
        (vlax-ename->vla-object enm)
        (if (= 1 (strlen str)) (strcat "0" str) str)
      )
    )
  )
  (vla-endundomark doc)
  (princ)
)

gery

Citaat van: hulpje op do 21 06 2018, 10:33:38
Het zit als een attribute in mijn block, maar die moet niet uitgelezen worden, maar juist ingevuld....
Er moet dus iets zijn, dat leest, hoeveelste tabblad het is en die waarde moet ingevuld worden in het block.
Ik had de vraag anders begrepen, mijn excuses.
AutoCAD 2020 - Windows 10

hulpje

Citaat van: roy_043 op do 21 06 2018, 14:59:07
(defun c:TabNrToTxt ( / doc enm str)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-endundomark doc)
  (vla-startundomark doc)
  (if
    (and
      (setq enm (car (nentsel "\nSelect (m)text or attribute: ")))
      (vlax-property-available-p (vlax-ename->vla-object enm) 'textstring)
    )
    (progn
      (setq str (itoa (vla-get-taborder (vla-get-activelayout doc))))
      (vla-put-textstring
        (vlax-ename->vla-object enm)
        (if (= 1 (strlen str)) (strcat "0" str) str)
      )
    )
  )
  (vla-endundomark doc)
  (princ)
)


Dank je wel Roy_043, dit werkt (maar dat wist je zelf ook al  :D :D :D )
Nu de volgende vraag, als je een tabblad verplaatst, is het dan ook mogelijk dat deze waarde automatisch wordt bijgewerkt?
HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

EddyBeerke

Citaat van: hulpje op vr 22 06 2018, 08:01:12
Nu de volgende vraag, als je een tabblad verplaatst, is het dan ook mogelijk dat deze waarde automatisch wordt bijgewerkt?
Ja blijkbaar kan dat...
Even op het net gekeken en kwam dit tegen:
(defun c:lay2fld (/ doc lay pnt ids id1 id2)
  ;;------------------------------------;;
  ;; Tharwat - Date: 03.Dec.2017 ;;
  ;;------------------------------------;;
  (defun ids (obj doc / uty)
    (if (vlax-method-applicable-p
          (setq uty (vla-get-utility doc))
          'getobjectidstring
        )
      (vla-getobjectidstring uty obj :vlax-false)
      (itoa (vla-get-objectid obj))
    )
  )
  (and (setq pnt (getpoint "\nSpecify a point :"))
       (setq doc (vla-get-activedocument (vlax-get-acad-object))
             lay (vla-get-layouts doc)
             id1 (ids (vla-item lay (getvar 'ctab)) doc)
             id2 (ids lay doc)
       )
       (vla-addtext
         (vla-get-block (vla-get-activelayout doc))
         (strcat
           "%<\\AcObjProp Object(%<\\_ObjId " id1 ">%).TabOrder>%"
           " of " "%<\\AcExpr %<\\AcObjProp Object(%<\\_ObjId " id2
           ">%).Count>%-1 >%"
          )
         (vlax-3d-point pnt)
         (getvar 'textsize)
       )
  )
  (princ)
) (vl-load-com)

bron: http://forums.augi.com/showthread.php?170740-Getting-the-number-of-a-layout-tab
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

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


sschevers

Vind de oplossing van Eddy eigenlijk mooier dan de reactors.  :lol:

Stephan

EddyBeerke

Zeker interessant!
Met een mooie lisp van Lee-Mac kun je de field(s) in de attribute van het block (kaderhoofd) kopieren:
http://www.lee-mac.com/copyfield.html
Dan lijkt mij het verhaal compleet.  :pintje:
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

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

hulpje

En dat was dan ook gelijk mijn volgende vraag.

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

bart

als je je tabbladen een nummer geeft tussen haakjes (1)  wordt die automatische opgehoogd als je het tabblad kopieert maar dat is je vraag natuurlijk niet helemaal
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart