杜阳 发表于 2014-7-18 21:52:04

各位大师你们好,能否给看看这个程序。

我写了一个简单的程序,只是实现了第一步圆的操作,矩形操作没有实现,请各位老师予以指点,能实现这个圆和矩形相结合的整体谢谢啦小弟是初学者   请各位老师 帮助谢谢
(defun C:tt()
   (setvar "cmdecho" 0)
   (setq z1 (getpoint "\n中心点:")
         r1 (getreal "\n半 径:")
         h1 (getdist "\n高 度1:")
         h2 (getdist "\n高 度2:")
         l (getdist "\n长 度:")
         w (getdist "\n宽 度:")
   )
(command "circle" z1 r1 "")
(setq yx (entlast))
(vl-cmdf "extrude" yx "" h1 "")
(setq p1 ((- (car z1) (/ l 2)) (+ (cadr z1) (/ w 2))   h1)
      p2 ((- (car z1) (/ l 2)) (- (cadr z1) (/ w 2))   h1)
      p3 ((+ (car z1) (/ l 2)) (- (cadr z1) (/ w 2))   h1)
      p4 ((+ (car z1) (/ l 2)) (+ (cadr z1) (/ w 2))   h1)
   )
(command "pline" p1 p2 p3 p4 "c")
(setq jx (entlast))
(vl-cmdf "extrude" jx "" h2 "")
(princ)
)

杜阳 发表于 2014-7-18 21:54:45

矩形主要是想在圆拉伸高度的地方绘制一个具有标高(Z值)的矩形, 执行提醒:; 错误: 函数错误: 370.488,每次值不一样我想着是不是我的那个数值类型不对还是哪里不对请各位老师帮助在此感谢了

菡萏 发表于 2014-7-18 22:19:25

杜阳 发表于 2014-7-18 21:54 static/image/common/back.gif
矩形主要是想在圆拉伸高度的地方绘制一个具有标高(Z值)的矩形, 执行提醒:; 错误: 函数错误: 370.488,每 ...

这里错了,自己找找看问题在哪!
(setq p1 ((- (car z1) (/ l 2)) (+ (cadr z1) (/ w 2))   h1)
      p2 ((- (car z1) (/ l 2)) (- (cadr z1) (/ w 2))   h1)
      p3 ((+ (car z1) (/ l 2)) (- (cadr z1) (/ w 2))   h1)
      p4 ((+ (car z1) (/ l 2)) (+ (cadr z1) (/ w 2))   h1)
   )

Andyhon 发表于 2014-7-18 22:19:39

(setq p1 (list (- (car z1) (/ l 2.0)) (+ (cadr z1) (/ w 2.0))   h1)
      p2 (list (- (car z1) (/ l 2.0)) (- (cadr z1) (/ w 2.0))   h1)
      p3 (list (+ (car z1) (/ l 2.0)) (- (cadr z1) (/ w 2.0))   h1)
      p4 (list (+ (car z1) (/ l 2.0)) (+ (cadr z1) (/ w 2.0))   h1)
   )

得先关捕捉
无从校验,且试试呗!

xyp1964 发表于 2014-7-19 08:03:37

(defun c:tt ()
(setvar "cmdecho" 0)
(setq z1 (getpoint "\n中心点: ")
        r1 (UREAL 7 "" "半径" r1)
        h1 (Udist 7 "" "高度1<输入或鼠标直接量取>" h1 nil)
        h2 (Udist 7 "" "高度2<输入或鼠标直接量取>" h2 nil)
        l(Udist 7 "" "长度<输入或鼠标直接量取>" l nil)
        w(Udist 7 "" "宽度<输入或鼠标直接量取>" w nil)
        dl (/ l 2.)
        dw (/ w 2.)
)
(command "circle" z1 r1)
(setq yx (entlast))
(vl-cmdf "extrude" yx "" h1 "")
(setq        p1 (list (- (car z1) dl) (+ (cadr z1) dw) h1)
        p2 (list (- (car z1) dl) (- (cadr z1) dw) h1)
        p3 (list (+ (car z1) dl) (- (cadr z1) dw) h1)
        p4 (list (+ (car z1) dl) (+ (cadr z1) dw) h1)
)
(command "pline" p1 p2 p3 p4 "c")
(setq jx (entlast))
(vl-cmdf "extrude" jx "" h2 "")
(princ)
)

ZZXXQQ 发表于 2014-7-19 08:31:17

(defun c:tt()
(setvar "cmdecho" 0)
(setq z1 (getpoint "\n中心点:")
      r1 (getdist z1 "\n半 径:")
      h1 (getdist z1 "\n高 度1:")
      h2 (getdist "\n高 度2:")
      l (getdist "\n长 度:")
      w (getdist "\n宽 度:")
      l2 (/ l 2)
      w2 (/ w 2)
)
(command "circle" z1 r1)
(vl-cmdf "extrude" "L" "" h1)
(setq yx (entlast))
(setq p1 (list(- (car z1) l2) (+ (cadr z1) w2)h1)
      p2 (list(- (car z1) l2) (- (cadr z1) w2)h1)
      p3 (list(+ (car z1) l2) (- (cadr z1) w2)h1)
      p4 (list(+ (car z1) l2) (+ (cadr z1) w2)h1)
)
(command "_.3DPOLY" p1 p2 p3 p4 "c")
(vl-cmdf "extrude" "L" "" h2 )
(vl-cmdf "_.UNION" "L" yx "")
(princ)
)

杜阳 发表于 2014-7-19 17:37:48

xyp1964 发表于 2014-7-19 08:03 static/image/common/back.gif


院长老师你好,这两个函数没有啊Udist 7,,UREAL 7,,能否赐予学生谢谢了

杜阳 发表于 2014-7-19 17:40:11

ZZXXQQ 发表于 2014-7-19 08:31 static/image/common/back.gif


你好老师你这个和我上面的执行结果是一样的光画圆柱不画带有标高的矩形体   急等两位老师的解答谢谢

杜阳 发表于 2014-7-19 17:45:13

Andyhon 发表于 2014-7-18 22:19 static/image/common/back.gif
(setq p1 (list (- (car z1) (/ l 2.0)) (+ (cadr z1) (/ w 2.0))   h1)
      p2 (list (- (car z1) (/ l ...

谢谢长老   我把你这段加入    执行了圆柱体和矩形体的结合体   谢谢你   学生非常感谢   谢谢   

杜阳 发表于 2014-7-19 17:53:41

Andyhon 发表于 2014-7-18 22:19 static/image/common/back.gif
(setq p1 (list (- (car z1) (/ l 2.0)) (+ (cadr z1) (/ w 2.0))   h1)
      p2 (list (- (car z1) (/ l ...

谢谢 老师了在此感谢,如果我把一个z值为0的圆形外偏移一定的距离得到第二个圆,用什么方法把第二个圆给设定一个输入的z值呢   学生等候老师的回答谢谢
页: [1] 2
查看完整版本: 各位大师你们好,能否给看看这个程序。