北岸小筑 发表于 2013-1-4 23:09:36

求助:xy平面任意两点作xz面上的矩形


请高手们帮忙设计一个lisp程序。
设计意图:利用点击建筑平面图中窗平面的两个角点,生成离地的窗洞,窗台高度H1,窗高H2,窗宽W。
操作顺序:在xy平面任意点击A点和B点,UCS坐标自动从任意状态改为以AB为X轴,原竖向的Z轴变成新UCS坐标的Y轴, 原Y轴变成新UCS坐标的Z轴,这时提示输入窗台高度H1和H2,自动画矩形。

北岸小筑 发表于 2013-1-5 22:01:21

;;;画矩形(连续绘制模式)

(defun C:LK (/ PT1 PT2 PT3 H w h k p1 p2 p3 p4)
    (setq os (getvar "osmode"))
    (setq cm (getvar "cmdecho"))
    (setvar "osmode" 9)
    (setvar "cmdecho" 0)
    (command "ucs" "w")
    (while (and (setq PT1 (getpoint "\nSpecify first point:"))
(setq PT2 (getpoint PT1 "\nSpecify secondly point:"))
    )
    (setq PT1x (car PT1) PT1y (cadr PT1) PT1z (caddr PT1))
    (setq PT3 (list PT1x PT1y (+ PT1z 1000)))
    (command "_.ucs" "n" "3" PT1 PT2 PT3)
   

   
   
    (setq H (getdist "\n底边离地高度: "))
    (setq w (distance PT1 PT2))
    (setq h (getdist "\n矩形造型的高度: "))
   
   
   
    (setq p1 (polar PT1 (/ pi 2) H))
    (setq p2 (polar p1 (/ pi 2) h))
    (setq p3 (polar p2 0 w))
    (setq p4 (polar p1 0 w))
    (command "pline" p1 p2 p3 p4 "c" "")

    (setvar "osmode" os)
    (setvar "cmdecho" cm)
    (princ )
   
    )
)
我写了以上一段,问题很多,第一ucs坐标经常出错,第二即使显示ucs坐标正确但矩形位置总是错的

北岸小筑 发表于 2013-1-6 11:23:48

已解决,原因是ucs没设好
页: [1]
查看完整版本: 求助:xy平面任意两点作xz面上的矩形