CADsite forum

AutoCAD => AutoCAD probleem => Topic gestart door: Jacob op wo 20 06 2018, 11:08:02

Titel: Bladnummer uit huidige lay-out-tab halen (opgelost)
Bericht door: Jacob op wo 20 06 2018, 11:08:02
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
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: hulpje op wo 20 06 2018, 13:03:15
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
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: Jacob op wo 20 06 2018, 13:17:33
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.
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: hulpje op wo 20 06 2018, 13:48:00
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
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: gery op wo 20 06 2018, 16:01:49
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 (http://www.lee-mac.com/attributefunctions.html#algetattributevalueit)
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: hulpje op do 21 06 2018, 10:33:38
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....
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: 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)
)
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: gery op do 21 06 2018, 21:22:00
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.
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: hulpje op vr 22 06 2018, 08:01:12
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?
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: EddyBeerke op vr 22 06 2018, 08:54:12
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
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: sschevers op vr 22 06 2018, 08:58:08
Hi Richard,

Als het automatisch wilt doen zul je moeten zoeken in reactors. Zie bijgaande links.
http://www.cadtutor.net/forum/showthread.php?94094-Lisp-Reactor-to-Detect-Changing-Drawing-Tabs (http://www.cadtutor.net/forum/showthread.php?94094-Lisp-Reactor-to-Detect-Changing-Drawing-Tabs)
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/layout-reactor/td-p/836805 (https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/layout-reactor/td-p/836805)

stephan
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: sschevers op vr 22 06 2018, 09:00:26
Vind de oplossing van Eddy eigenlijk mooier dan de reactors.  :lol:

Stephan
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: EddyBeerke op vr 22 06 2018, 09:36:40
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:
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: hulpje op vr 22 06 2018, 10:48:41
En dat was dan ook gelijk mijn volgende vraag.

:vreegoe: :vreegoe: :vreegoe: :vreegoe:
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: bart op vr 22 06 2018, 21:53:07
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
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: hulpje op ma 25 06 2018, 13:07:46
Citaat van: bart op vr 22 06 2018, 21:53:07
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
Desondanks is dit wel een goede TIP!
Dank je wel Bart  :D
Titel: Re: Bladnummer uit huidige lay-out-tab halen
Bericht door: Jacob op wo 27 06 2018, 14:34:21
Gelukt!

Nog weinig tot geen ervaring met lisp  :(

Maar met enig puzzelen heb ik het lay-out-nummer rechtstreeks in de onderhoek gekregen.
De code heb ik iets aangepast (bijgaand) zodat er alleen het nummer staat zonder " of 12"


Allemaal bedankt ben er blij mee!
:pintje:
Titel: Re: Bladnummer uit huidige lay-out-tab halen (opgelost)
Bericht door: EddyBeerke op do 28 06 2018, 08:55:01
Citaat van: Jacob op wo 27 06 2018, 14:34:21
Gelukt!
...
De code heb ik iets aangepast (bijgaand) zodat er alleen het nummer staat zonder " of 12"
...

Bedankt dat jet het met ons hebt gedeeld!
En dat het gelukt is... Daar doen we het voor!  :vreegoe:
Titel: Re: Bladnummer uit huidige lay-out-tab halen (opgelost)
Bericht door: Jacob op di 28 08 2018, 07:17:13
Tja, en toen wilde ik het thuis ook in een tekening zetten onder AutoCad LT 2014.

Als ik de bestaande tekening open in LT 2014 gaat het goed. Dan wordt er gewoon een nummer van het betreffende tabblad getoond.

Kopieer ik dat nummer naar een andere tekening dan krijg ik een #je.

Dus dan maar de lisp laden....
Maar LT 2014 kent geen "Appload"

Nu de vraag: Hoe kan ik dat lisp-bestand laden in LT 2014? Wie kent dat commando nog?  :)
Titel: Re: Bladnummer uit huidige lay-out-tab halen (opgelost)
Bericht door: hulpje op di 28 08 2018, 07:20:58
LT versies kunnen niet standaard LISP laden.
Ik meen me te herinneren, dat er wel ooit een bedrijfje was, dat hiervoor iets had gemaakt, maar zeker weer ik het niet meer.
Titel: Re: Bladnummer uit huidige lay-out-tab halen (opgelost)
Bericht door: EddyBeerke op di 28 08 2018, 09:19:56
Stel je hebt nog AutoCAD LT 2010 op de plank liggen:
http://www.cad.com.au/drcauto/toolkit-max/toolkit-max.htm#downloads
Kosten voor de aanschaf: $250

Mogelijk kun je ook een licentie via kantoor lenen, dan kun je gewoon je eigen volledige versie gebruiken.
Titel: Re: Bladnummer uit huidige lay-out-tab halen (opgelost)
Bericht door: Jacob op di 28 08 2018, 10:59:34
Er draait thuis wel een home-licentie van het werk (Architecture 2017).

Dat zou ik kunnen proberen, ben een beetje bang dat er door het versieverschil dingen mis gaan.
Stel het origineel eerst wel veilig.

Bedankt weer.