明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1772|回复: 7

[基础] 请帮忙修改一下,设置就出错原因(已解决)

[复制链接]
发表于 2013-3-1 14:18:45 | 显示全部楼层 |阅读模式
本帖最后由 kwok 于 2013-3-2 16:54 编辑

下面的为什么在输入S设置就出错,提示; 错误: 参数类型错误: 二维/三维点: "S"
请指帮修正一下,谢谢!
不知为什么

(defun c:ttt ();;;;;;;;;;;定2点画矩形
  (setq p1 (getpoint "\n起点: "))
  (if (null rdh)
     (setq rdh 50))
(initget "S ")
       (if (= (setq p2 (getpoint p1 (strcat "\n终点,或[设置(S)]:<高度" (rtos rdh) ">")))
       "S"
           )
         (if (setq s (getdist (strcat "\n设置高度:<" (rtos rdh) ">")))
    (setq rdh s)
         )
       )
  (setq p3 (polar p2 (+ (angle p2 p1) (* 0.5 pi)) rdh)
        p4 (polar p1 (+ (angle p2 p1) (* 0.5 pi)) rdh)
   )
  (apply 'vl-cmdf (list "_pline" p1 p2 p3 p4 "c"))
  (princ)
  )
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-3-1 14:42:54 | 显示全部楼层
本帖最后由 Andyhon 于 2013-3-1 14:43 编辑

当 P2 = "S"

(polar p2 (+ (angle p2 p1) (* 0.5 pi)) rdh)
 楼主| 发表于 2013-3-1 15:10:53 | 显示全部楼层
Andyhon 发表于 2013-3-1 14:42
当 P2 = "S"

(polar p2 (+ (angle p2 p1) (* 0.5 pi)) rdh)

我是想需要修改高度时可以改(只需改一次),改完可以记忆,下次就可以直接用,这样每次就用已有的高度
直接画出矩形.
但就是在修改时出错,请问要这样效果可以怎么改?
发表于 2013-3-1 15:38:22 | 显示全部楼层
...可以记忆...

建议参考 UReal 自定义函数...
老帖有......
 楼主| 发表于 2013-3-1 17:02:13 | 显示全部楼层
能力有限搞不定,
期待出手帮忙.
发表于 2013-3-1 18:57:32 | 显示全部楼层
;;; 定2点画矩形
(defun c:ttt ()
  (setq p1 (getpoint "\n起点: ")
       rdh (Ureal 0 "" "\n设置高度: " (cond (*RDH*) (50)))
        p2 (getpoint p1 "\n终点: ")
        p3 (polar p2 (+ (angle p2 p1) (* 0.5 pi)) rdh)
        p4 (polar p1 (+ (angle p2 p1) (* 0.5 pi)) rdh)
     *RDH*  rdh
  )
  (vl-cmdf  "_pline" p1 p2 p3 p4 "c")
  (princ)
)
 楼主| 发表于 2013-3-1 19:20:41 | 显示全部楼层
本帖最后由 kwok 于 2013-3-1 19:25 编辑
Andyhon 发表于 2013-3-1 18:57
;;; 定2点画矩形
(defun c:ttt ()
  (setq p1 (getpoint "\n起点: ")

不是我想的效果,
我想的是指定2点就画出矩形,但需要修改高度时,通过输入s来设置修改高度,
(而且设定高度时可以输入也可以直接在图上指定2当距离)
如果不输入s,指定第二点就直接已已有高度画出矩形,
在1楼的码能修改到吗?谢谢!

具体操作是:
1, 指定第一点,然后提示可以通过输入S设定高度和显示已有默认高度50(如果设定过高度就显示新的高度)
2,如果输入S,重设高度(设高度可以输入或直接在图上量取)(修改过的高度能记忆,方便下次调用)
3,如果不输入S,直接指定第二点,画出矩形.
发表于 2013-3-2 10:19:56 | 显示全部楼层
本帖最后由 ljpnb 于 2013-3-2 10:20 编辑

(defun c:ttt ()
;;;;;;;;;;;定2点画矩形
  (setq p1 (getpoint "\n起点: "))
  (setq key T)
  (if (null rdh)
    (setq rdh 50)
  )
  (initget "S ")
  (while (and key
              (= (setq p2
                        (getpoint p1
                                  (strcat "\n终点,或[设置(S)]:<高度" (rtos rdh) ">")
                        )
                 )
                 "S"
              )
         )
    (if        p2
      (setq key nil)
    )
    (if        (setq s (getdist (strcat "\n设置高度:<" (rtos rdh) ">")))
      (setq rdh        s
            key        T
      )
    )
    (initget "S ")
  )
  (setq        p3 (polar p2 (+ (angle p2 p1) (* 0.5 pi)) rdh)
        p4 (polar p1 (+ (angle p2 p1) (* 0.5 pi)) rdh)
  )
  (apply 'vl-cmdf (list "_pline" p1 p2 p3 p4 "c"))
  (princ)
)

评分

参与人数 1明经币 +1 收起 理由
kwok + 1 很给力!学习了.

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-23 07:01 , Processed in 0.192960 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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