Sorry, I am not sure what that a rotated (getcorner) is. Here is what I am looking for:
Start the line command, before selecting your first point, shift+right click and use the command modifier "FROM". Now select the basepoint, now for the offset distance, I do not get a "rubberband" that uses polar tracking. I am "blindly" having to select the offset point angle when using direct distance input.
Contrast this with the end point of the line command. If I use the "from" command modifier on the end point, all of a sudden I get to use the rubberband w/ polar tracking when specifying the offset point.
I am trying to make a custom "from" command modifier that uses the rubberband in all circumstances.
...
AutoCAD 2013 (sorry for italian prompt):
---------- inside Command -------------
Comando: LINEA
Specificare primo punto: (ALE_From "ACTIVE")
>>Base point <Lastpoint> <508.85,1028.15,0>:
>>Offset: @25,25
Specificare punto successivo o [Annulla]:
---------- inside Command -------------
---------- nesting inside Command -------------
Comando: LINEA
Specificare primo punto: (ALE_From "ACTIVE")
>>Base point <Lastpoint> <548.36,1019.7,0>: (ALE_From "ACTIVE")
>>Base point <Lastpoint> <548.36,1019.7,0>: (ALE_From "ACTIVE")
>>Base point <Lastpoint> <548.36,1019.7,0>: @22,22
>>Offset: @11,11
>>Offset: @33,33
>>Offset: @-55,-55
Specificare punto successivo o [Annulla]:
---------- nesting inside Command -------------
---------- inside Lisp -------------
Comando: CIRCLETEST
Circle center <Lastpoint> <462.53,979.22,0>: (ALE_From nil)
>>Base point <Lastpoint> <462.53,979.22,0>:
>>Offset: @20,20
Circle diameter <9.41>:
---------- inside Lisp -------------
---------- nesting inside Lisp -------------
Comando: CIRCLETEST
Circle center <Lastpoint> <543.33,1047.13,0>: (ALE_From nil)
>>Base point <Lastpoint> <543.33,1047.13,0>: (ALE_From nil)
>>Base point <Lastpoint> <543.33,1047.13,0>: (ALE_From nil)
>>Base point <Lastpoint> <543.33,1047.13,0>:
>>Offset: @11,11
>>Offset: @22,22
>>Offset: @-33,-33
Circle diameter <9.88>:
---------- nesting inside Lisp -------------
; [_Button...]^P$M=$(if,$(getvar,cmdactive),(ALE_From """""""ACTIVE"""""""),(ALE_From nil));
(defun ALE_From (CmdAct / BasPtn Pnt001 CurBlp CurOrt)
(graphscr)
(setq CurBlp (getvar "BLIPMODE") CurOrt (getvar "ORTHOMODE"))
(setvar "BLIPMODE" 1) (setvar "ORTHOMODE" 0)
(setq
BasPtn (ALE_GetPoint 40 "" ">>Base point <Lastpoint>" (getvar "LASTPOINT") (getvar "LASTPOINT"))
Pnt001 (ALE_GetPoint 41 "" ">>Offset" nil BasPtn)
)
(setvar "BLIPMODE" CurBlp) (setvar "ORTHOMODE" CurOrt)
(cond
( (and Pnt001 CmdAct) (command "_NONE" Pnt001) (princ) )
( Pnt001 )
( T (alert "Point not found." ) (princ) )
)
)
(defun C:CircleTest (/ Pnt001 EntLas SelSet)
(setq Pnt001 (ALE_GetPoint 40 "" "Circle center <Lastpoint>" (getvar "LASTPOINT") (getvar "LASTPOINT")))
(setq #mdist (ALE_GetDist 46 "" "Circle diameter" #mdist Pnt001))
(command "_.CIRCLE" "_NONE" Pnt001 (/ #mdist 2.0))
(setvar "LASTPOINT" Pnt001)
(princ)
)
(defun ALE_GetDist (IGtBit KwdStr PrmStr DefRea BasPtn / InpVal)
(if DefRea
(setq
PrmStr (strcat "\n" PrmStr " <" (rtos DefRea) ">: ")
IGtBit (logand IGtBit 254)
)
(setq PrmStr (strcat "\n" PrmStr ": "))
)
(initget IGtBit KwdStr)
(setq InpVal (if BasPtn (getdist BasPtn PrmStr) (getdist PrmStr)))
(if InpVal InpVal DefRea)
)
Edit: upoint = ALE_GetPoint