xj6019 发表于 2019-11-26 13:47:08

代码下次调用的时候怎么记忆上次输入的数值 谁帮个忙改一下啊


代码下次调用的时候怎么记忆上次输入的数值谁帮个忙改一下啊
这是改视口比例的

(defun c:bv ()
(setvar "cmdecho" 0)
(command "mview" "l" "off" "all" "")
(setq bili (getstring "\n请输入比例"))
(command "zoom" (strcat "1/" bili "xp"))
(command "mview" "l" "off" "all" "")
(princ)      
)


Andyhon 发表于 2019-11-26 14:50:43

UStr是自定义函数
元老级别 常被引用

这页有
http://bbs.mjtd.com/thread-347-1-1.html

ustr 之外
相似系列建议一并保存

xyp1964 发表于 2019-11-26 14:45:37

xj6019 发表于 2019-11-26 14:26
不明白是为什么

;; ---------------------- USTR -----------------------------
;;                  字符串输入格式化                     
;; 方式 : (setq txt1 (ustr 1 "字符串" txt1 nil))      
(defun ustr (bit msg def spflag / inp nval)
(if (and def (/= def ""))
    (setq msg (strcat "\n" msg "<" def ">: ")
          inp (getstring msg spflag)
          inp (if (= inp "")
                def
                inp
              )
    )
    (progn
      (setq msg (strcat "\n" msg ": "))
      (if (= bit 1)
        (while (= "" (setq inp (getstring msg spflag))))
        (setq inp (getstring msg spflag))
      )
    )
)
(if inp
    inp
    def
)
)

xj6019 发表于 2019-12-2 11:57:53

xyp1964 发表于 2019-11-26 14:04


您好领导看到了您的一个代码我想用可是缺少 xyp-Start能麻烦您抽点时间给 弄一下吗万分感谢
代码是这个
;; tt(break)
(defun c:tt ()
(xyp-Start)
(princ "\n选择直线: ")
(setq i -1)
(if (setq ss (ssget '((0 . "*LINE"))))
    (while (setq s1 (ssname ss (setq i (1+ i))))
      (setq ptn      (xyp-Get-CurveIntersLeng s1 4)
            ptn      (xyp-Curve-PtsLengSort s1 ptn t)
            j      -1
      )
      (while (and (setq p1 (nth (setq j (1+ j)) ptn))
                  (setq p2 (nth (setq j (1+ j)) ptn))
             )
      (xyp-breakE s1 p1 p2)
      )
    )
)
(xyp-End)
)

xyp1964 发表于 2019-11-26 14:04:56

(defun c:bv ()
(setvar "cmdecho" 0)
(command "mview" "l" "off" "all" "")
(setq bili (Ustr 1 "比例" bili nil))
(command "zoom" (strcat "1/" bili "xp"))
(command "mview" "l" "off" "all" "")
(princ)
)

xj6019 发表于 2019-11-26 14:26:49

xyp1964 发表于 2019-11-26 14:04





不明白是为什么

start4444 发表于 2019-11-26 15:18:07

本帖最后由 start4444 于 2019-11-26 15:22 编辑

(defun c:bv (/ bili2)
(setvar "cmdecho" 0)
(command "mview" "l" "off" "all" "")
(if (not bili) (setq bili (getstring "\n请输入比例:")) (setq bili (if (/= "" (setq bili2 (getstring (strcat "\n请输入比例<" bili ">:")))) bili2 bili)))
(command "zoom" (strcat "1/" bili "xp"))
(command "mview" "l" "on" "all" "")
(princ)      
)

xj6019 发表于 2019-11-26 16:19:05

本帖最后由 xj6019 于 2019-11-26 16:23 编辑

很好用谢谢!!


xj6019 发表于 2019-11-26 16:22:33

xyp1964 发表于 2019-11-26 14:45


非常感谢   解决了 挺好用了

xj6019 发表于 2019-11-26 16:24:21

start4444 发表于 2019-11-26 15:18
(defun c:bv (/ bili2)
(setvar "cmdecho" 0)
(command "mview" "l" "off" "all" "")


谢谢帮忙很好用
这个改变线性比例的也帮我搞搞行吗
我想加个默认比例是1如果不是的话再手动输入别的   下面是代码

(defun c:sg()
    (Setq Ns (Getreal "\n変更尺度:") Ns (Cons 48 Ns))
    (While (Setq S (Ssget "_:L :S"))
      (Repeat (Setq I (Sslength S))
            (Setq E (Entget (Ssname S (Setq I (1- I)))))
            (If (Setq A (Assoc 48 E))
                (Setq E (Subst Ns A E))
                (Setq E (Append E (List Ns)))
            )
            (Entmod E)
      )
    )
    (Princ)
)

麻烦了 谢谢

xj6019 发表于 2019-11-26 16:47:07

本帖最后由 xj6019 于 2019-11-26 16:51 编辑

xyp1964 发表于 2019-11-26 14:45

你好问一下我的电脑经常性的VLAX函数都加载不了   是为什么啊   也是缺哪种代码吧能指导一下吗
页: [1] 2
查看完整版本: 代码下次调用的时候怎么记忆上次输入的数值 谁帮个忙改一下啊