CADsite forum

AutoCAD => Autolisp => Topic gestart door: Anonymous op wo 19 01 2005, 09:49:11

Titel: Viewport veranderen met LISP
Bericht door: Anonymous op wo 19 01 2005, 09:49:11
Beste Mensen,

Waarom werkt onderstaande code niet om een zwevend VIEWPORT
te wijzigen.


(command "_MVIEW"  '(50 80) "@100,100")
(setq emv (entlast))
(setq ed (entget emv))
(setq ed (subst (cons 10 '(61.0 137.5 0.0)) (assoc 10 ed) ed))
(setq ed (subst (cons 12 '(72.5 0.0 0.0)) (assoc 12 ed) ed))
(setq ed (subst (cons 40 60.0) (assoc 40 ed) ed))
(entmod ed)(entupd emv)

Bij voorbaat mijn dank.
Titel: Re: Viewport veranderen met LISP
Bericht door: Anonymous op vr 04 02 2005, 15:50:32
Citaat van: Anonymous
niet allemaal tegelijk hoor......
Titel: Viewport veranderen met LISP
Bericht door: Anonymous op vr 11 02 2005, 09:16:51
Wellicht een domme vraag, maar wat bedoel je precies met een zwevend viewport?

Groetjes
Titel: Viewport veranderen met LISP
Bericht door: Joop op zo 13 02 2005, 16:41:12
In regel 4, 5 en 6 wijs je steeds een andere waarde toe aan dezelfde variabele.
Dit heeft tot gevolg dat in regel 7 waar je het element veranderd alleen volgens regel 6 wijzigd en regel 4 en 5 dus voor niets in het programma staan.
Probeer het volgende eens:

(command "_MVIEW" '(50 80) "@100,100")
(setq emv (entlast))
(setq ed (entget emv))
(setq ed (subst (cons 10 '(61.0 137.5 0.0)) (assoc 10 ed) ed))
(entmod ed)(entupd emv)
(setq ed (subst (cons 12 '(72.5 0.0 0.0)) (assoc 12 ed) ed))
(entmod ed)(entupd emv)  
(setq ed (subst (cons 40 60.0) (assoc 40 ed) ed))
(entmod ed)(entupd emv)


Hopenlijk werkt dit goed.
Ik heb dit niet zelf getest.

Joop
Titel: Viewport veranderen met LISP
Bericht door: Anonymous op di 15 02 2005, 10:36:43
Citaat van: AnonymousWellicht een domme vraag, maar wat bedoel je precies met een zwevend viewport?

Groetjes

Beste Gast,

Een zwevend viewport is een kijkvenster(viewport) in paperspace;
dus als Tilemode = 0 (of tegeltjesmode uit).
De term zwevend wordt gebruikt, omdat in paperspace de viewports
niet in tegelvorm het hele scherm moeten opdelen.
Men mag de viewports daar overal los (zevend) plaatsen, zelfs binnen en
en al of niet geheel overlappend.

Groetjes
Titel: Viewport veranderen met LISP
Bericht door: Anonymous op di 15 02 2005, 11:15:12
Citaat van: Joop
Probeer het volgende eens:

(command "_MVIEW" '(50 80) "@100,100")
(setq emv (entlast))
(setq ed (entget emv))
(setq ed (subst (cons 10 '(61.0 137.5 0.0)) (assoc 10 ed) ed))
(entmod ed)(entupd emv)
(setq ed (subst (cons 12 '(72.5 0.0 0.0)) (assoc 12 ed) ed))
(entmod ed)(entupd emv)  
(setq ed (subst (cons 40 60.0) (assoc 40 ed) ed))
(entmod ed)(entupd emv)


Hopenlijk werkt dit goed.
Ik heb dit niet zelf getest.

Joop

Beste Joop,

Er is meer aan de hand, waarschijnlijk omdat een zwevend vieport
een samengestelde entiteit is.
Men kan bijvoorbeeld ook de kleur van een viewport niet zo maar
veranderen.

Groetjes

(defun C:test()
(setvar "TILEMODE" 0)
(command "_COLOR" "RED")
(command "_LINE" '(40 80) "@0,100" "")
(setq e1 (entlast))
(command "_MVIEW" '(50 80) "@100,100")
(setq e2 (entlast))
(command "_COLOR" "BYLAYER")
;;;;Lijn van kleur rood naar kleur Cyaan veranderen
(setq ed1 (entget e1))
(setq ed1 (subst (cons 62 4) (assoc 62 ed1) ed1))
(entmod ed1)(entupd e1)    ;dit gaat
;;;;Viewport van kleur rood naar kleur Cyaan veranderen
(setq ed2 (entget e2))
(setq ed2 (subst (cons 62 4) (assoc 62 ed2) ed2))
(entmod ed2)(entupd e2)   ;dit gaat niet
)
Titel: Viewport veranderen met LISP
Bericht door: Joop op di 15 02 2005, 21:24:59
Ik zal hier de komende tijd eens goed induiken en het probleem onderzoeken.
Dit kan echter wel even duren i.v.m. zaken die ik niet zelf in de hand heb. :cry:
Zoals gebruikelijk blijf uitkijken.

Joop :P
Titel: Viewport veranderen met LISP
Bericht door: Joop op vr 25 02 2005, 09:25:58
Slecht nieuws.
Je kunt een viewpoort niet met lisp opdrachten, zoals entupd, entmod en entmake, wijzigen.

Je kunt er wel omheen werken met de command opdracht vanuit een lisp routine.
UIteraard is dit omslachtiger, maar helaas.

Succes,

Joop