While you cannot use ( entmake ) or ( entmod ) on a viewport entity, you can access the data and xdata via ( entget ).
This is a STARTING POINT ONLY !
[b][color=BLACK]([/color][/b]defun c:cvp [b][color=FUCHSIA]([/color][/b]/ en ss p1 p2 ed xd l1010 l1040 l1070 l1003 vtar vdir vtws vhgt vcxa vcya vlen vscl id[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setvar [color=#2f4f4f]"TILEMODE"[/color] 0[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.PSPACE"[/color][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not en[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget '[b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]0 . [color=#2f4f4f]"VIEWPORT"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]= [b][color=GREEN]([/color][/b]sslength ss[b][color=GREEN])[/color][/b] 1[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq p1 [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\n1st Corner: "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq p2 [b][color=NAVY]([/color][/b]getcorner p1 [color=#2f4f4f]"\nOpposite Corner: "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq ed [b][color=NAVY]([/color][/b]entget en '[b][color=MAROON]([/color][/b][color=#2f4f4f]"ACAD"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq xd [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]cadr [b][color=GREEN]([/color][/b]assoc -3 ed[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq l1003 nil l1040 nil l1010 nil l1070 nil[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]foreach l xd [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]car l[b][color=BLUE])[/color][/b] 1010[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq l1010 [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]cdr l[b][color=RED])[/color][/b] l1010[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]car l[b][color=BLUE])[/color][/b] 1040[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq l1040 [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]cdr l[b][color=RED])[/color][/b] l1040[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]car l[b][color=BLUE])[/color][/b] 1070[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq l1070 [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]cdr l[b][color=RED])[/color][/b] l1070[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]car l[b][color=BLUE])[/color][/b] 1003[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq l1003 [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]cdr l[b][color=RED])[/color][/b] l1003[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq l1010 [b][color=NAVY]([/color][/b]reverse l1010[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq l1040 [b][color=NAVY]([/color][/b]reverse l1040[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq l1070 [b][color=NAVY]([/color][/b]reverse l1070[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq l1003 [b][color=NAVY]([/color][/b]reverse l1003[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][color=#8b4513];;;VIEW POINTS[/color] [b][color=FUCHSIA]([/color][/b]setq vtar [b][color=NAVY]([/color][/b]nth 0 l1010[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq vdir [b][color=NAVY]([/color][/b]nth 1 l1010[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq vtws [b][color=NAVY]([/color][/b]nth 0 l1040[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq vhgt [b][color=NAVY]([/color][/b]nth 1 l1040[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq vcxa [b][color=NAVY]([/color][/b]nth 2 l1040[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq vcya [b][color=NAVY]([/color][/b]nth 3 l1040[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq vlen [b][color=NAVY]([/color][/b]nth 4 l1040[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq vscl [b][color=NAVY]([/color][/b]/ vhgt [b][color=MAROON]([/color][/b]cdr [b][color=GREEN]([/color][/b]assoc 41 ed[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][color=#8b4513];;;MAKE A NEW VIEWPORT[/color] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.MVIEW"[/color] p1 p2[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq id [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 69 [b][color=GREEN]([/color][/b]entget [b][color=BLUE]([/color][/b]entlast[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][color=#8b4513];;;SET FREEZE LAYERS[/color] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.VPLAYER"[/color][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]foreach l l1003 [b][color=NAVY]([/color][/b]command [color=#2f4f4f]"_Freeze"[/color] l [color=#2f4f4f]"_Select"[/color] [color=#2f4f4f]"_Last"[/color] [color=#2f4f4f]""[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]""[/color][b][color=FUCHSIA])[/color][/b][color=#8b4513];;;SET VIEW[/color] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.MSPACE"[/color][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.ZOOM"[/color] [color=#2f4f4f]"_C"[/color] [b][color=NAVY]([/color][/b]list vcxa vcya[b][color=NAVY])[/color][/b] vscl[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.VPOINT"[/color] vdir [color=#2f4f4f]""[/color][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.DVIEW"[/color] [color=#2f4f4f]"_All"[/color] [color=#2f4f4f]""[/color] [color=#2f4f4f]"_TArget"[/color] vtar [color=#2f4f4f]""[/color][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.PSPACE"[/color][b][color=FUCHSIA])[/color][/b][b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
Figuring out the view info and ucs would take some trail and error
Can you post flow chart of all of the command sequences that you currently use ?
-David