Hoi,
Ik krijg regelmatig externe tekeningen waar de snapangle werd gedraaid.
Telkens als ik de figuur open doe of als ik switch tussen model en paperspace, moet ik deze terug handmatig op '0' zetten.
Is er een manier om deze permanent op '0' te te laten staan?
Thx!
J.
snapang is een variabele die in de tekening wordt bewaard
misschien makkelijkst een knop aanmaken via cui met daarin de setting zoals je die wilt.
Alvast bedankt delangstevandestraat.
Maar is er een commando om dit permanent op 0 te zetten? Want nu moet ik de gekozen snapang telkens opnieuw op 0 zetten.
Thx.
J.
Als je een eigen menu hebt dan kun je een [joumenunaam].mnl maken met de volgende regel:
(setvar "snapangle" 0.0) (princ "\nSnapAngle op '0' gezet")
Ok, maar door één of andere instelling springt deze terug naar een gekozen angle als ik bvb wil switchen tussen model en paperspace of via paperspace (dubbelklik op viewport) naar de model wil gaan. Had deze gekozen angle graag permanent op 0 gezet.
Thx, J.
Is dat bij elke tekening zo?
Heb je tools geladen die misschien hiervoor zorgen?
Ik kan me niet voorstellen dat je met een lege tekening en kale acad dit probleem kan hebben.
Misschien kun je een stukje van de commandoregel laten zien na zelf de snapang op "0" gezet te hebben en dat ie daarna veranderd?
Wat de OP zegt over het vanzelf terugspringen van de snapangle is inderdaad niet standaard. Wel is het zo dat de snapangle per model space en paper space viewport wordt opgeslagen. Het is dus niet een enkele waarde die voor de gehele dwg geldt.
Ik heb hiervoor al eens een korte lisp gemaakt waarmee ik de snapangle op 0 zet. Bij mij heet deze S0 (omdat ik het commado 0 al gebruik om laag 0 current te maken)
(defun c:S0 () (setvar "snapang" 0))
Achter 'c:' staat de naam van het commando (hier dus S0). Kies hier een naam die je handig vindt.
Plak de code in een tekstbestand en sla deze op als *.lsp-bestand. Vervolgens kun je deze laden via APpload (en toevoegen aan de Startup Suite om automatisch te laden).
Een andere mogelijkheid is om de volgende code onder een knopje te plaatsen:
(setvar "snapang" 0)
Reimer
Zoals ik al probeerde uit te leggen het probleem is complexer dan:
(setvar 'snapang 0.0)
Volgens mij is iets dergelijks nodig:
(defun c:ResetSnapAng ( / doc)
(vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(if (= (logand (getvar 'undoctl) 8) 8)
(vla-endundomark doc)
)
(vla-startundomark doc)
(vlax-for layout (vla-get-layouts doc)
(vlax-for item (vla-get-block layout)
(if (vlax-property-available-p item 'snaprotationangle)
(vla-put-snaprotationangle item 0.0)
)
)
)
(vlax-for viewport (vla-get-viewports doc)
(vla-put-snaprotationangle viewport 0.0)
)
(vla-endundomark doc)
(princ)
)
waarom zet je deze variabele niet gewoon in de acaddoc.lsp file? deze wordt bij elke tekening geladen :)
@ jo-king:
Citaat van: roy_043 op wo 18 02 2015, 16:39:39
Wel is het zo dat de snapangle per model space en paper space viewport wordt opgeslagen. Het is dus niet een enkele waarde die voor de gehele dwg geldt.
thx roy_043!
De snapang staat nu 'permanent' op 0.
Groeten,
J.
Citaat van: roy_043 op ma 23 02 2015, 18:57:28
Wel is het zo dat de snapangle per model space en paper space viewport wordt opgeslagen. Het is dus niet een enkele waarde die voor de gehele dwg geldt.
volledig gelijk! bedankt voor de vervollediging :)