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
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
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.
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
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)
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....
(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)
)
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.
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?
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
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
Vind de oplossing van Eddy eigenlijk mooier dan de reactors. :lol:
Stephan
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:
En dat was dan ook gelijk mijn volgende vraag.
:vreegoe: :vreegoe: :vreegoe: :vreegoe:
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
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
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:
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:
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? :)
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.
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.
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.