明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1384|回复: 1

[求助]

[复制链接]
发表于 2003-4-14 20:10:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2003-4-14 20:10:31 编辑

我编制的一小段程序,要达到对话框的零件效果
而左视图的参数d老是被参数q覆盖,造成画图错误
哪位大侠快点帮忙。以下是画图子程序
(defun sub_chk_layer()
   (setq chklay (tblsearch "layer" "str"))
   (if (= chklay nil)
       (command "layer" "n" "str" "c" "4" "str" "")
   )
   (setq chklay (tblsearch "layer" "txt"))
   (if (= chklay nil)
       (command "layer" "n" "txt" "c" "3" "txt" "")
   )
   (setq chklay (tblsearch "layer" "dim"))
   (if (= chklay nil)
       (command "layer" "n" "dim" "c" "5" "dim" "")
   )
   (setq chklay (tblsearch "layer" "hat"))
   (if (= chklay nil)
       (command "layer" "n" "hat" "c" "6" "hat" "")
   )
   (setq chklay (tblsearch "layer" "cen"))
   (if (= chklay nil)
       (command "layer" "n" "cen" "c" "1" "cen" "lt" "center" "cen" "")
   )
   (setq chklay (tblsearch "layer" "hid"))
   (if (= chklay nil)
       (command "layer" "n" "hid" "c" "2" "hid" "lt" "hidden" "hid" "")
   )
  )
  (defun cen()
    (command "layer" "s" "cen" ""))
  (defun hid()
    (command "layer" "s" "hid" ""))
  (defun str()
    (command "layer" "s" "str" ""))
  (defun txt()
    (command "layer" "s" "txt" ""))
  (defun dim()
    (command "layer" "s" "dim" ""))
  (defun hat()
    (command "layer" "s" "hat" ""))
(defun draw_dialjlm()
  (setq r (* 0.5 d))
  (setq d1 (* 0.9 d))
  (setq r1 (* 0.5 d1))
  (cond ((= d 12) (setq l 40) (setq q 21.9) (setq s 19))
        ((= d 16) (setq l 50) (setq q 27.7) (setq s 24))
        ((= d 20) (setq l 60) (setq q 34.6) (setq s 30))
        ((= d 24) (setq l 75) (setq q 41.6) (setq s 36))
        ((= d 30) (setq l 90) (setq q 53.1) (setq s 46))
        ((= d 36) (setq        l 110) (setq q 63.5) (setq s 55))
        ((= d 42) (setq l 130) (setq q 75) (setq s 65))
        ((= d 48) (setq l 160) (setq q 85.5) (setq s 75))
        (t (princ "\n没有此值"))
  )       
  (setq r2 (- (* 1.5 d) (sqrt (- (* 2.25 d d) (* 0.25 q q)))))
   ;以下依据不同的类别,调用不同的绘图模式
(cond ((= ddtype 1) (setq pa (getpoint "请输入基点:"))
                     
                     (setq pb (polar pa 0 l))
                     (setq pc (polar pa (* pi 0.5) r))
                     (setq pd (polar pc 0 l))
                     (setq pe (polar pa (* pi 0.5) (* 0.5 q)))
                     (setq pf (polar pe 0 l))
                     (sub_chk_layer)
                  
                     (str)
                     (command "pline" pa pb pf pe "c")
                     (command "line" pc pd "")
                     )
       ((= ddtype 2) (setq pt (getpoint "请输入基点:"))
                     (setq pt1 (polar pt pi (* 0.6 D)))
                     (setq pt2 (polar pt 0 (* 0.6 D)))
                     (setq pt3 (polar pt (/ pi 2) (* 0.6 D)))
                     (setq pt4 (polar pt (* 1.5 pi) (* 0.6 D)))
                     (sub_chk_layer)
                     (cen)
                     (command "line" pt1 pt2 "")
                     (command "line" pt3 pt4 "")
                     (hat)
                     (command "circle" pt r)
                     (str)
                     (command "circle" pt r1)
                     (command "circle" pt (* 0.5 s))
                     (command "polygon" 6 pt "c" (* 0.5 s))
                     (command "trim" pt1 pt4 "" (polar pt (* 1.25 pi) r) ""))
)
发表于 2003-4-15 09:02:00 | 显示全部楼层

从程序中基本看不出什么,你给的程序也不全,无法调试

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 08:44 , Processed in 0.165653 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表