明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1270|回复: 1

[求助]有谁能帮我找出这个程序的错误吗?

[复制链接]
发表于 2005-3-30 00:27 | 显示全部楼层 |阅读模式
下面是我编写的一个圆锥体的程序,作图程序还没有完成,可是现在出现有问题了,在ACAD中实现不了我编写的第一个作图函数(ZT1),主要问题是怎样读取对话框里面的值,我实在找不出错在哪里,所以就在这里向大家求助。希望高手能指点一下。谢谢!!
;圆锥体主程序
(defun C:yzt()
(setq id (load_dialog "E:\\学习\\yzt.dcl")); 装入对话框件
(if (< id 0) (exit))
(if not (new_dialog "yzt0" id)(exit))
(setq v 1)
(action_tile "a" "(setq v 1)")
(action_tile "b" "(setq v 2)")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog -1)")
(setq wha (start_dialog))
(if (= wha 1)
(if (= v 1) (yzt1) (yzt2)) ;调用多个对话框
)
(unload_dialog id)
(princ)
)
(princ "《圆锥体程序》成功调入! ***请键入 yzt 运行即可***") 以上没有错误,主要问题出现在二维平面视图,读屏取值 和 作图1 中


;二维平面视图
(defun yzt1()
(setq what 2 w 0)
(while (= what 2)
(setq id (load_dialog "E:\\学习\\yzt.dcl"))
(if (< id 0) (exit))
(if (not (new_dialog "yzt1" id))(exit))
(setq x (dimx_tile "image"))
(setq y (dimx_tile "image"))
(start_image "image")
(slide_image 15 -30 x y "yzt.sld")
(end_image)
(if (= w 0)
(mode_tile "accept" 1)
(progn
(mode_tile "accept" 0)
(mode_tile "qd" 1)
)
)
(set_tile "R" (rtos R 2 2))
(set_tile "H" (rtos H 2 2))
(action_tile "qd" "(done_dialog 2)")
(action_tile "accept" "(qz) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq what (start_dialog))
(if (= what 2)
(progn
(initget 1)
(setq p0 (getpoint "\n请输入基点坐标:"))
(setq w 1)
)
(progn
(zt1)
(setq what 0)
)
)
)
(unload_dialog id)
(princ)
) ;三维立体视图
(defun yzt2()
(setq what 2 w 0)
(while (= what 2)
(setq id (load_dialog "E:\\学习\\yzt.dcl"))
(if (< id 0) (exit))
(if (not (new_dialog "yzt2" id))(exit))
(setq x (dimx_tile "image"))
(setq y (dimx_tile "image"))
(start_image "image")
(slide_image 15 -30 x y "yzt.sld")
(end_image)
(if (= w 0)
(mode_tile "accept" 1)
(progn
(mode_tile "accept" 0)
(mode_tile "qd" 1)
)
)
(set_tile "R" (rtos R 2 2))
(set_tile "H" (rtos H 2 2))
(action_tile "qd" "(done_dialog 2)")
(action_tile "accept" "(qz) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq what (start_dialog))
(if (= what 2)
(progn
(initget 1)
(setq p0 (getpoint "\n请输入基点坐标:"))
(setq w 1)
)
(progn
(zt2)
(setq what 0)
)
)
)
(unload_dialog id)
(princ)
) ;读屏取值
(defun qz()
(setq H (atof (get_tile "H")))
(setq R (atof (get_tile "R")))
)
;作图1程序
(defun zt1()
(setq m (car p0))
(setq n (cadr p0))
(setq p1 (list (+ m R) n))
(setq p2 (list (- m R) n))
(setq p3 (polar p0 (* pi 0.5) H))
(setq o (polar p0 (* pi 1.5) (+ R 30)))
(setq os (getvar "osmode"))
(setvar "osmode" 0) (command "layer" "1" "c" "1" "" "L" "acad_iso10w100" "center" "");画点划线
(command "line" p1 p2 p3 "c")
(command "circle" o R )
(setvar "osmode" os)
) ;作图2程序待编写
;(defun zt2()

;)
发表于 2005-3-30 11:55 | 显示全部楼层
还是给出你的DCL吧,这样看起来太费劲
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 03:11 , Processed in 0.154449 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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