lincctw_ccl 发表于 2010-12-26 12:34:42

请教未选取到像素时的提示,该如何写??谢谢

请教版上各位老师,下列这行程序后要如何写才能达到如未点选到像素,会跳出提示告诉操作者没点选到图,而再重新让你选择一次像素后再接着执行下一行程序现在状况是如没点到图
程序就会跳出,须再重新执行谢谢!! (setq ena (entsel "\n 选择像素:"))ß这行要是没点到图,就会自动跳出程序... (command ".move" ena "" p1p2)

露水2 发表于 2010-12-26 12:43:54

本帖最后由 露水2 于 2010-12-26 12:44 编辑

(defun c:test()
(while (not(setq en (car (entsel))))
    )
(command ".move" en "" pause pause)
)

你说的像素 叫图元大家能听懂

lincctw_ccl 发表于 2010-12-26 13:16:38

回复 露水2 的帖子

感谢 露水2 指导!!
不过还是不行,不好意思我才刚学lsp
我把我整段lsp贴上来好了!!请您(或其他人)帮我看看
谢谢!!

(while
(setq ena (entsel "\n 选择 件号:"))
(setq ena_pt (cdr(assoc 10 (entget(car ena)))))
(command ".move" ena "" ena_pt pa)
(setq enb (entsel "\n 选择 名称 :"))
(setq enb_pt (cdr(assoc 10 (entget(car enb)))))
(setq pb(polar pa 0 La))
(command ".move" enb "" enb_pt pb)
(setq enc (entsel "\n 选择 数量 :"))
(setq enc_pt (cdr(assoc 10 (entget(car enc)))))
(setq pc(polar pa 0 Lb))
(command ".move" enc "" enc_pt pc)
(setq pa (polar pa (/ pi -2) Lc));;重新指定 pa点 以便做下次的基准点
)
(princ))

露水2 发表于 2010-12-26 13:18:20

我刚才试了试 好像可以啊 选择不到不 结束!还是我没有听懂

lincctw_ccl 发表于 2010-12-26 13:37:42

回复 露水2 的帖子

感谢 露水2 指导!!
我本身程序如后来我贴的那个在选择圖元时前已有个 while
我照您所教的那样改成下面这样
,如选不到是可以一直选,但是要选到了的话
就跳出到 指令了 没有辨法 执行接下去的动作

(while
(while (not (setq ena (car (entsel "\n 选择 件号:"))))
)
(setq ena_pt (cdr(assoc 10 (entget(car ena)))))
(command ".move" ena "" ena_pt pa)

露水2 发表于 2010-12-26 13:56:04

贴完整一些 别人也可以帮你改改

lincctw_ccl 发表于 2010-12-26 14:03:21

本帖最后由 lincctw_ccl 于 2010-12-26 14:04 编辑

完整的lsp求助问题 如标题
谢谢!!


;;;;;;;;;;;
(defun c:qb3 (/ pb pc ena enb enc ena_pt enb_pt enb_pt)
(setvar "osmode" 0);;设定补点模式为0
(setvar "blipmode" 0);;标记点开关
(setvar "OrthoMode" 0);;正交模式关
(setvar "cmdecho" 0);;指令行不响应
;;定义位移值--------------------------------------
(setq pa (getpoint "\n文字写入的基准点:"))
(if (= La nil)
(setq La 20))
(princ "\n名称 文字 的 距离 <")(princ La)(setq answer1(getstring ">: "))
(if (/= (atof answer1) 0.00)(setq La(atof answer1)))
(if (= Lb nil)
(setq Lb 20))
(princ "\n数量 文字 的 距离 <")(princ Lb)(setq answer1(getstring ">: "))
(if (/= (atof answer1) 0.00)(setq Lb(atof answer1)))
(if (= LC nil)
(setq LC 52))
(princ "\n相隔列高 <")(princ LC)(setq answer1(getstring ">: "))
(if (/= (atof answer1) 0.00)(setq LC(atof answer1)))
;;定义位移值--------------------------------------
(while
(setq ena (entsel "\n 选择 件号:")) 这行后该如何写才能在没选中图时 提示一下让使用者选中图再接着执行接下去的动作
(setq ena_pt (cdr(assoc 10 (entget(car ena)))))
(command ".move" ena "" ena_pt pa)
(setq enb (entsel "\n 选择 名称 :"))
(setq enb_pt (cdr(assoc 10 (entget(car enb)))))
(setq pb(polar pa 0 La))
(command ".move" enb "" enb_pt pb)
(setq enc (entsel "\n 选择 数量 :"))
(setq enc_pt (cdr(assoc 10 (entget(car enc)))))
(setq pc(polar pa 0 Lb))
(command ".move" enc "" enc_pt pc)
(setq pa (polar pa (/ pi -2) Lc));;重新指定 pa点 以便做下次的基准点
)
(princ))

露水2 发表于 2010-12-26 14:34:31

(defun c:qb3 (/ pb pc ena enb enc ena_pt enb_pt enb_pt)
(setvar "osmode" 0);;设定补点模式为0
(setvar "blipmode" 0);;标记点开关
(setvar "OrthoMode" 0);;正交模式关
(setvar "cmdecho" 0);;指令行不响应
;;定义位移值--------------------------------------
(setq pa (getpoint "\n文字写入的基准点:"))
(if (= La nil)
(setq La 20))
(princ "\n名称 文字 的 距离 <")(princ La)(setq answer1(getstring ">: "))
(if (/= (atof answer1) 0.00)(setq La(atof answer1)))
(if (= Lb nil)
(setq Lb 20))
(princ "\n数量 文字 的 距离 <")(princ Lb)(setq answer1(getstring ">: "))
(if (/= (atof answer1) 0.00)(setq Lb(atof answer1)))
(if (= LC nil)
(setq LC 52))
(princ "\n相隔列高 <")(princ LC)(setq answer1(getstring ">: "))
(if (/= (atof answer1) 0.00)(setq LC(atof answer1)))
;;定义位移值--------------------------------------
(while
(not(setq ena (entsel "\n 选择 件号:"))) ;这行后该如何写才能在没选中图时 提示一下让使用者选中图再接着执行接下去的动作
(setq ena_pt (cdr(assoc 10 (entget(car ena)))))
(command ".move" ena "" ena_pt pa)
(setq enb (entsel "\n 选择 名称 :"))
(setq enb_pt (cdr(assoc 10 (entget(car enb)))))
(setq pb(polar pa 0 La))
(command ".move" enb "" enb_pt pb)
(setq enc (entsel "\n 选择 数量 :"))
(setq enc_pt (cdr(assoc 10 (entget(car enc)))))
(setq pc(polar pa 0 Lb))
(command ".move" enc "" enc_pt pc)
(setq pa (polar pa (/ pi -2) Lc));;重新指定 pa点 以便做下次的基准点
(princ))

露水2 发表于 2010-12-26 14:34:59

也会有问题 再也结束不了了, 哈哈

xyp1964 发表于 2010-12-26 14:46:23

效果:
页: [1] 2
查看完整版本: 请教未选取到像素时的提示,该如何写??谢谢