明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3028|回复: 5

getkword 的缺省值。

[复制链接]
发表于 2012-6-24 21:51:21 | 显示全部楼层 |阅读模式
想用这两句建立缺省值yes,但不成功,什么原因?

      (initget "Yes No")
      (setq go (getkword "[继续<Yes/No>]<Yes>"))

谢谢。

点评

没明白什么意思?  发表于 2012-6-24 22:02
发表于 2012-6-24 22:07:52 | 显示全部楼层
(initget "Yes No")
      (setq go (getkword "[继续<Yes/No>]<Yes>"))
(if (null go) (setq go "Yes"))
 楼主| 发表于 2012-6-25 06:21:37 | 显示全部楼层
本帖最后由 millermin 于 2012-6-25 06:25 编辑
Gu_xl 发表于 2012-6-24 22:07
(initget "Yes No")
      (setq go (getkword "[继续]"))
(if (null go) (setq go "Yes"))


谢谢。懂了。
发表于 2012-6-27 14:34:10 | 显示全部楼层
Gu_xl 发表于 2012-6-24 22:07
(initget "Yes No")
      (setq go (getkword "[继续]"))
(if (null go) (setq go "Yes"))

我遇到个类似的问题,以下两个程序运行出错,就是提示“UKWORD”…… 的请你帮我看一下:

(defun c:test056 (/ p1 p2 p3 p4 dst ang p1a p2a p3a p4a lst)
  (CMDLA0)
  (setq p1 (getpoint "\n选择矩形框的第一角:")
p2 (getcorner p1 "\n选择矩形框的另一角:")
  )
  (setvar "osmode" 0)
  (command "rectang" p1 p2)
  (setq lst  (entlast)
txt5 (UKWORD 1 "1 2" "请选择清除范围:1-外部/2-内部" txt5)
p3   (list (car p2) (cadr p1))
p4   (list (car p1) (cadr p2))
dst  (/ (distance p1 p2) 100.0)
ang  (angle p1 p2)
  )
  (if (= txt5 "1")
    (setq p1a (polar p1 ang (- 0 dst))
   p2a (polar p2 ang dst)
    )
    (setq p1a (polar p1 ang dst)
   p2a (polar p2 ang (- 0 dst))
    )
  )
  (setq p3a (list (car p2a) (cadr p1a))
p4a (list (car p1a) (cadr p2a))
  )
  (command "_.trim" lst "" "f" p1a p3a p2a p4a p1a "" "")
  (if (= txt5 "1")
    (command "_erase" "all" "_r" "_c" p1 p2 "")
    (command "_erase" "_w" p1 p2 "")
  )
  (CMDLA1)
)


;;-----------------------------------------------------------------------------
;;;改线宽
;;-----------------------------------------------------------------------------
(defun c:GXK () (c:test126))
(defun C:test126 ()
  (CMDla0)
  (setq txt5 (UKWORD 1 "1 2" "请选择方式:1-用户输入/2-匹配" txt5))
  (if (= txt5 "1")
    (while (not (setq no1 (UREAL 1 "" "线宽" no1))))
  )
  (if (= txt5 "2")
    (setq no1 (xyp-get-DXF 41 (car (entsel "\n选宽线: "))))
  )
  (princ "\n请选择被改线: ")
  (while (not (setq ss (ssget))))
  (setq i  0
sn (sslength ss)
n  0
  )
  (prompt "\n稍候 ")
  (while (< i sn)
    (setq s1 (ssname ss i)
   etype (xyp-get-DXF 0 s1)
    )
    (if (or
   (= etype "POLYLINE")
   (= etype "LWPOLYLINE")
)
      (progn
(command "pedit" s1 "w" no1 "")
(princ ".")
(princ)
(setq n (1+ n))
      )
    )
    (if (or
   (= etype "LINE")
   (= etype "ARC")
)
      (progn
(command "pedit" s1 "Y" "w" no1 "")
(princ ".")
(princ)
(setq n (1+ n))
      )
    )
    (setq i (1+ i))
  )
  (princ "完毕。")
  (princ "\n共有 ")
  (princ n)
  (princ " 条线被修改线宽。")
  (CMDla1)
  (pxyp "GXK  (改线宽)")
)
发表于 2012-6-27 14:48:09 | 显示全部楼层
是否少了 ukword 的函数定义
http://bbs.mjtd.com/thread-34991-1-1.html
发表于 2012-6-28 07:52:13 | 显示全部楼层

  1. (defun ukword (bit kwd msg def / inp)
  2.   (if (and def (/= def ""))
  3.     (setq msg (strcat "\n" msg "<" def ">:")
  4.           bit (* 2 (fix (/ bit 2)))
  5.     )
  6.     (setq msg (strcat "\n" msg ":"))
  7.   )
  8.   (initget bit kwd)
  9.   (setq inp (getkword msg))
  10.   (if inp
  11.     inp
  12.     def
  13.   )
  14. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-22 03:54 , Processed in 0.190042 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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