明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1954|回复: 7

求助各位大侠,请zzxxqq一定进来看看。

[复制链接]
发表于 2006-4-23 13:46:00 | 显示全部楼层 |阅读模式

各位大侠,帮帮忙。

以下程序为zzxxqq大侠为本人写的,我想再加些功能。就是在执行中程序能记住上次输入的数值,如果不输入就用默认值来运行。谢谢!!!

(DEFUN C:GTT ()
  (SETvar "CMDECHO" 0)
  (vl-cmdf "_.undo" "_group")
  (SETQ OLDOS (GETvar "OSMODE"))
  (SETvar "OSMODE" 0)
  (command "ucs" "w")
  (setq LANGLST '(("CHS"      "\n输入挂台距离<17.95>:"
     "\n输入挂台宽<3.05>:"    "\n输入挂台深<1.0>:"
     "\n选择一条边:"     "\n起始点:"
     "\n哪一边?:"
    )
    ("CHT"
     "\n块珽禯瞒 <17.95> :"
     "\n块珽糴 <3.05> :"
     "\n块珽瞏 <1.0> :"
     "\n匡拒兵娩 :"
     "\n癣﹍翴:"
     "\n娩?:"
    )
   )
  )
  (setq LST (cdr (assoc (getvar "LOCALE") LANGLST)))
  (SETQ AL1 (/ PI 2)
 GTL (GETDIST (nth 0 LST))
 GTL (IF (= GTL nil)
       17.95
       GTL
     )
 GTW (GETDIST (nth 1 LST))
 GTW (IF (= GTW nil)
       3.05
       GTW
     )
 GTD (GETDIST (nth 2 LST))
 GTD (IF (= GTD nil)
       1.0
       GTD
     )
  )
  (SETvar "BLIPMODE" 0)
  (WHILE (SETQ S1 (ENTSEL (nth 3 LST)))
    (SETvar "OSMODE" 1)
    (IF (SETQ P1 (GETPOINT (nth 4 LST)))
      (PROGN
 (SETvar "OSMODE" 0)
 (SETQ DL  (ENTGET (CAR S1))
       PT1 (CDR (ASSOC 10 DL))
       PT2 (CDR (ASSOC 11 DL))
       P2  (IF (> (DISTANCE PT1 P1) (DISTANCE PT2 P1))
      PT1
      PT2
    )
       ANG (ANGLE P1 P2)
       PT  (GETPOINT P1 (nth 5 LST))
       AN1 (ANGLE P1 PT)
       A1  (- AN1 ANG)
       A1  (IF (AND (> A1 0) (> A1 PI))
      (- A1 PI PI)
      A1
    )
       A1  (IF (AND (< A1 0) (< A1 (- PI)))
      (+ A1 PI PI)
      A1
    )
       A1  (IF (> A1 0)
      (+ ANG AL1)
      (- ANG AL1)
    )
       P3  (POLAR P1 ANG GTL)
       P4  (POLAR P3 A1 GTD)
       P5  (POLAR P3 ANG GTW)
       P6  (POLAR P5 A1 GTD)
 )
 (COMMAND "ERASE" (CAR S1) "")
 (COMMAND "LINE" P1 P3 P4 P6 P5 P2 "")
      )
    )
  )
  (command "ucs" "p")
  (SETvar "OSMODE" OLDOS)
  (vl-cmdf "_.undo" "_end")
  (SETvar "CMDECHO" 1)
  (PRINC)
)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2006-4-23 16:29:00 | 显示全部楼层

命令: GTT  (挂台)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2006-4-23 18:10:00 | 显示全部楼层

谢谢XYP1964大侠!!!

能否给小弟份源码学习学习?请不吝赐教。

发表于 2006-4-23 18:23:00 | 显示全部楼层

程序

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2006-4-23 20:06:00 | 显示全部楼层

多谢ZZXXQQ大侠!!

运行时:命令: gtt ; 错误: 参数类型错误: stringp 17.95

发表于 2006-4-23 22:41:00 | 显示全部楼层
  1. (load "xyp_lib.vlx") ;版本 V.20060314
  2. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  3. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  4. ★1·在acad.lsp中增加(load"xyp_lib")
  5. ■2·在每个程序内增加(load"xyp_lib")
  6. ■3·在command下,输入(load"xyp_lib")
  7. ■4·在菜单.mnl中增加(load"xyp_lib")
  8. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  9. [COLOR=red] ★通用函数下载地址:[/COLOR]
  10. [url]http://bbs.mjtd.com/forum.php?mod=viewthread&tid=37554[/url]
  11. |;
  12. ;;; gtt(挂台)
  13. (DEFUN C:GTT ()
  14.   (cmdla0)
  15.   (SETvar "OSMODE" 0)
  16.   (if (null gtl)
  17.     (setq gtl 17.95)
  18.   )
  19.   (if (null GTW)
  20.     (setq GTW 3.05)
  21.   )
  22.   (if (null GTD)
  23.     (setq GTD 1.0)
  24.   )
  25.   (SETQ AL1 (/ PI 2)
  26. GTL (UDIST 7 "" "\n输入挂台距离<直接输入或鼠标点取>" GTL nil)
  27. GTW (UDIST 7 "" "\n输入挂台宽<直接输入或鼠标点取>" GTW nil)
  28. GTD (UDIST 7 "" "\n输入挂台深<直接输入或鼠标点取>" GTD nil)
  29.   )
  30.   (WHILE (SETQ S1 (ENTSEL "\n选择一条边: "))
  31.     (SETvar "OSMODE" 1)
  32.     (IF (SETQ P1 (GETPOINT "\n起始点: "))
  33.       (PROGN
  34. (SETvar "OSMODE" 0)
  35. (SETQ DL  (ENTGET (CAR S1))
  36.        PT1 (CDR (ASSOC 10 DL))
  37.        PT2 (CDR (ASSOC 11 DL))
  38.        P2  (IF (> (DISTANCE PT1 P1) (DISTANCE PT2 P1))
  39.       PT1
  40.       PT2
  41.     )
  42.        ANG (ANGLE P1 P2)
  43.        PT  (GETPOINT P1 "\n哪一边?: ")
  44.        AN1 (ANGLE P1 PT)
  45.        A1  (- AN1 ANG)
  46.        A1  (IF (AND (> A1 0) (> A1 PI))
  47.       (- A1 PI PI)
  48.       A1
  49.     )
  50.        A1  (IF (AND (< A1 0) (< A1 (- PI)))
  51.       (+ A1 PI PI)
  52.       A1
  53.     )
  54.        A1  (IF (> A1 0)
  55.       (+ ANG AL1)
  56.       (- ANG AL1)
  57.     )
  58.        P3  (POLAR P1 ANG GTL)
  59.        P4  (POLAR P3 A1 GTD)
  60.        P5  (POLAR P3 ANG GTW)
  61.        P6  (POLAR P5 A1 GTD)
  62. )
  63. (COMMAND "ERASE" (CAR S1) "")
  64. (xyp-mklaco "挂台" 4)
  65. (COMMAND "LINE" P1 P3 P4 P6 P5 P2 "")
  66.       )
  67.     )
  68.   )
  69.   (command "ucs" "p")
  70.   (cmdla1)
  71. )
  72. (princ"命令: GTT  (挂台)")
  73. (princ)
发表于 2006-4-23 23:15:00 | 显示全部楼层
andyding发表于2006-4-23 20:06:00 多谢ZZXXQQ大侠!! 运行时:命令: gtt ; 错误: 参数类型错误: stringp 17.95

改过的程序:


 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2006-4-24 23:46:00 | 显示全部楼层
多谢两位大侠!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-20 01:40 , Processed in 0.209552 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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