本帖最后由 lisperado 于 2019-10-29 06:46 编辑
(command "_pline" p1 p2 "@10<45 ")
(command "_pline" p1 p2 "@7.071,7.071")
- (defun c:tt ( / stop p1 p2 dg v1 v2 v )
-
- (and
- (setq dg (cond ((getreal "\n请输入角度 <45.0> : ")) (45.0)))
- (setq stop '(nil (while (/= (getvar 'cmdactive) 0) (command)))
- p1 (getpoint "\n第一点.. ")
- )
- (setq p2 (getpoint p1 "\n第二点.. "))
-
- (setq v1 (strcat "@10<" (rtos dg 2)) ;"@10<45.0000"
- v (polar '(0. 0.) (* (/ dg 180.) pi) 10.0)
- v2 (apply 'strcat (apply 'append (mapcar ''((a b) (list a (rtos b 2))) '("@" ",") v)))
- ) ;"@7.0711,7.0711"
-
- (progn
- (princ )
- (alert (strcat "\n第三点取于长度10.00以及已输入角度如下 \n(command "_pline" p1 p2 "v1")"))
- (command "_pline" p1 p2 v1) ;"@10<45.0000"
- (stop)
- (command "_pline" (mapcar '+ '(0.0 10.0) p1) (mapcar '+ '(0.0 10.0) p2) v1 )
- (stop)
-
- (alert (strcat "或第二种写法 \n(command "_pline" p1 p2 "v2")"))
- (apply 'command
- (cons "_pline"
- (append (mapcar ''((x) (mapcar '+ '(0.0 20.0) x)) (list p1 p2)) (list v2))
- ;"@7.0711,7.0711"
- )
- )
- (stop)
- )
- )
- (princ "\n示范完成!")
- (princ)
- )
|