使用选项创建文本
我正在做一个例程,这是我第一次尝试使用COND和IF,我遇到了一个如何结束例程的问题。到最后,我有(IF (EQ YR "N.F.H.A.")
(COMMAND "MTEXT" "_non" pt1 "J" "MC" "S" "STANDARD" "H" TH "W" TW L1 L2 "")
我需要它跳过
如果该语句为true,则继续。我确信这是一个简单的解决方法,我只是没有看到它。提前谢谢。
这是一切
(DEFUN c:LF ()
(SETQ CL (GETVAR "CLAYER"))
(command "layer" "M" "FLOOD" "C" "70" "" "L" "BORDER2" "" "S" "FLOOD" "")
(command ".osnap" "NONE")
(setq DS (getvar 'dimscale))
(SETQ TW (* DS 1.3))
(SETQ TH (* DS 0.07))
(setq pt1 (getpoint "\nPick Insertion Point: "))
(SETQ L1 (STRCAT "APPROX. LOCATION"))
(if (eq (setq ZN (getstringT "\nFlood Zone A, AE or X?: <X> ")) "")
(setq zn "X"))
(COND ((EQ ZN "A")(setq YR "100"))
((EQ ZN "AE")(SETQ yr "100"))
(t (IF (EQ (setq YR (getstringT "\n500 or NFHA? <NFHA> : ")) "")
(SETQ YR "N.F.H.A."))))
(COND ((EQ YR "100")(SETQ L2 (STRCAT "ZONE " ZN " " YR "YR")))
((EQ YR "500")(SETQ L2 (STRCAT "ZONE " ZN " " YR "YR")))
(T (SETQ L2 (STRCAT "ZONE " ZN " " YR ))))
;===============================PAST THIS POINT IS WHERE I'M HAVING THE ISSUE=======================================================
(IF (EQ YR "N.F.H.A.")
(COMMAND "MTEXT" "_non" pt1 "J" "MC" "S" "STANDARD" "H" TH "W" TW L1 L2 "")
(setq L3 (getstring t "\nType Flood Panel Number: "))
(setq FD (getstring t "\nType Flood Panel Date \"MM/DD/YY\": "))
(SETQ L4 (STRCAT "DATE " FD))
(COMMAND "MTEXT" "_non" pt1 "J" "MC" "S" "STANDARD" "H" TH "W" TW L1 L2 L3 L4 ""))
(COMMAND "CLAYER" CL)
) 提示:progn 所以我很接近。。。这是个好消息。 谢谢李没有给我解决方案。我做了一点研究,得到了它!
3
干得好,克林特!
以下几点有助于进一步改进代码:
[列表]
[*]记住本地化变量
[/列表]
[列表]
[*]在提示用户时,使用条件表达式(if/cond)允许空用户输入(例如getpoint)
[/列表]
[列表]
[*]除非连接两个或多个字符串,否则不需要strcat。
[/列表]
[列表]
[*]使用(princ)或(prin1)抑制最后计算的表达式的返回,并“干净地”退出命令。
[/列表]
[列表]
[*]如果用户按Esc键或程序遇到错误,考虑使用重新定义的*error*函数重置系统变量值。
[/列表]
页:
[1]