皇上快溜 发表于 2016-10-23 00:03:37

图形方向定位(旋转),,,求教大加

本帖最后由 皇上快溜 于 2016-10-23 15:33 编辑

请问这样一个程序,有什么法可以赋以它一个方向性,希望在给定插入点pt0之后,拖动鼠标再点一下,两点确定一个方向,作为图形生成方向,希望可以四个方向任意定位,请各位大老指点个方法,谢谢大家。



(DEFUN C:ctl()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setq pj (getdist "\n偏距<8>:"))
(if (= pj nil) (setq pj 8))
(setq pt0 (getpoint "\n插入点:"))
(setq pt1 (polar pt0 (* pi 0.5)1))
(setq pt2 (polar pt1 (* pi 0)6))
(setq pt3 (polar pt2 (* pi 0)1))
(setq pt4 (polar pt3 (* pi 1.5)1))
(setq pt5 (polar pt4 (* pi 1.5)(+ pj 5)))
(setq pt6 (polar pt5 (* pi 1.5)1))
(setq pt7 (polar pt6 (* pi 1)1))
(setq pt8 (polar pt7 (* pi 1)10))
(setq pt9 (polar pt8 (* pi 1)1))
(setq pt10 (polar pt9 (* pi 0.5)1))
(setq pt11 (polar pt10 (* pi 0.5)(+ pj 5)))
(setq pt12 (polar pt11 (* pi 0.5)1))
(setq pt13 (polar pt12 (* pi 0)1))
(setq pt14 (polar pt0 (* pi 1.5)(- pj 1)))
(command "circle" "none"pt142.3 )
(command "pline" pt2 pt4 pt5 pt7 pt8 pt10 pt11 pt13 pt2 "")
(setvar "osmode" os)
)

fangmin723 发表于 2016-10-23 06:48:24

本帖最后由 fangmin723 于 2016-10-23 07:24 编辑

用grread做动态显示并确定旋转方向

xyp1964 发表于 2016-10-23 13:06:30

(defun c:tt ()
(if (and (setq ss (ssget))
           (setq p0 (getpoint "\n基点: "))
           (setq p1 (getpoint p0 "\n旋转点<退出>: "))
      )
    (command "rotate" ss "" "non" p0 (* (/ (angle p0 p1) pi) 180))
)
(princ)
)

皇上快溜 发表于 2016-10-23 15:25:11

xyp1964 发表于 2016-10-23 13:06


谢谢版主,我目前也是用的旋转,不过是后置选择,这样程序很冗长,,

想跟你学学学,能不不能在定义这些点之前
(setq pt0 (getpoint "\n插入点:"))
赋予一个方向属性,,从这行开始,直接给下面的pt,,,,定义方向?
(setq pt1 (polar pt0 (* pi 0.5)1))
(setq pt2 (polar pt1 (* pi 0)6))
(setq pt3 (polar pt2 (* pi 0)1))

此外,图形重的45度倒角(* pi 什么?)可以直接两点连线?连出来的线45度,直角边为整数
页: [1]
查看完整版本: 图形方向定位(旋转),,,求教大加