baiyier1112 发表于 2013-4-11 12:53:36

关于改变线宽,求高手帮忙优化

本帖最后由 baiyier1112 于 2013-4-21 16:11 编辑

改变线宽,谁能帮优化一下:
1.在输入线宽的时候,默认值是30,输入线宽后具有记忆功能。
2.输入命令后,如果不选择,直接回车,程序中断退出。
代码如下:
(defun C:bx () ;
      (setq ss (ssget))
(prompt "\n请选择改变线宽的线<退出>:")
      (SETQ WIDTH (GETREAL "\n请输入宽度:"))
      (command "_pedit" "M" ss "" "_w" WIDTH "j" "" "")
      (princ)
) ;;改变线宽

以下是改完的

(defun C:bbxx (/ WIDTH ss)                                             
                (if oldWIDTH
                        (SETQ WIDTH (GETREAL (strcat "\n请输入粗线宽度<" (rtos oldWIDTH 2 2) ">:"))
                        )
                        (SETQ WIDTH (GETREAL "\n请输入粗线宽度:"))
                        )
                (if WIDTH (setq oldWIDTH WIDTH)
                        (setq WIDTH oldWIDTH)
                     )
      (if
                  (progn (prompt "\n请选择改变线宽的线<退出>:")
                        (setq ss (ssget))
                )
                (command "_pedit" "M" ss "" "_w" WIDTH "j" "" "")
               (princ)
      )
)

Gu_xl 发表于 2013-4-11 13:42:56


(defun C:bx (/ ss WIDTH)                                             
(while (progn (prompt "\n请选择改变线宽的线<退出>:")
                (setq ss (ssget))
                )
    (if oldWIDTH
      (SETQ
      WIDTH (GETREAL (strcat "\n请输入宽度<" (rtos oldWIDTH 2 2) ">:"))
      )
      (SETQ WIDTH (GETREAL "\n请输入宽度:"))
      )
    (if WIDTH
      (setq oldWIDTH WIDTH)
      (setq WIDTH oldWIDTH)
      )
    (command "_pedit" "M" ss "" "_w" WIDTH "j" "" "")
    (princ)
    )
)

baiyier1112 发表于 2013-4-11 21:46:56

本帖最后由 baiyier1112 于 2013-4-11 22:06 编辑

Gu_xl 发表于 2013-4-11 13:42 http://bbs.mjtd.com/static/image/common/back.gif


万分感谢版主的无私帮助
今天我使用了一下,想将程序改一下:
第一步,输入调用命令bx:
第二步:输入线宽,显示为"输入粗线宽度<0.3>:”如回车则默认为0.3,输入新值为0.5,则线宽为0.5
第三步:提示“选择要改变线宽的实体<退出>:”,如果回车则退出。选择则执行
由于lsp编程的逻辑关系我不会,希望版主帮忙实现一下,拜谢

ll_j 发表于 2013-4-11 22:14:36

baiyier1112 发表于 2013-4-11 21:46 static/image/common/back.gif
万分感谢版主的无私帮助
今天我使用了一下,想将程序改一下:
第一步,输入调用命令bx:


到我的网络U盘去下载一个pew.lsp试试。

baiyier1112 发表于 2013-4-11 22:21:10

本帖最后由 baiyier1112 于 2013-4-12 00:53 编辑

我自己调整了一下位置,但是有问题,
1.操作结束后,会提示“选择对象:”,需要输入回车才结束

(defun C:bbxx (/ WIDTH ss)                                             

    (if oldWIDTH
      (SETQ WIDTH (GETREAL (strcat "\n请输入粗线宽度<" (rtos oldWIDTH 2 2) ">:"))
      )
                  (SETQ WIDTH (GETREAL "\n请输入粗线宽度:"))
                  )
    (if WIDTH (setq oldWIDTH WIDTH)
                  (setq WIDTH oldWIDTH)
               )
    (while
      (progn (prompt "\n请选择改变线宽的线<退出>:")
                        (setq ss (ssget))
                )

    (command "_pedit" "M" ss "" "_w" WIDTH "j" "" "")
   )
   (princ)
)

baiyier1112 发表于 2013-4-11 22:37:35

ll_j 发表于 2013-4-11 22:14 static/image/common/back.gif
到我的网络U盘去下载一个pew.lsp试试。

下载了,但是执行的时候出现问题,cad操作及提示如下:

命令: pew
Change Pline/Line/Arc/Circle/<ALL>:
Select objects to change width:
选择对象: 指定对角点: 找到 5 个
选择对象:
Give pline width <30.0>:
----- 5
无效的选项关键字。
输入选项
[闭合(C)/合并(J)/宽度(W)/编辑顶点(E)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成(L)
/放弃(U)]: *取消*

baiyier1112 发表于 2013-4-11 22:42:55

本帖最后由 baiyier1112 于 2013-4-12 08:52 编辑

调整后的在8楼。

baiyier1112 发表于 2013-4-12 01:06:14

换了个语句,差不多搞定了。(defun C:bbxx (/ WIDTH ss)                                             

                (if oldWIDTH
                        (SETQ WIDTH (GETREAL (strcat "\n请输入粗线宽度<" (rtos oldWIDTH 2 2) ">:"))
                        )
                        (SETQ WIDTH (GETREAL "\n请输入粗线宽度:"))
                          )
                (if WIDTH (setq oldWIDTH WIDTH)
                        (setq WIDTH oldWIDTH)
                     )
        (if
               (progn (prompt "\n请选择改变线宽的线<退出>:")
                        (setq ss (ssget))
                )

                (command "_pedit" "M" ss "" "_w" WIDTH "j" "" "")
                (princ)
        )

)

wowan1314 发表于 2013-4-12 01:39:22

第一次允许没老线宽,让你给定线宽又不给肯定出错啊!有老线宽后就可以不给了。

你可再加一句假如输入的为空且没有老线宽就默认多少线宽,那么就不怕第一次运行出错拉

baiyier1112 发表于 2013-4-12 08:51:38

wowan1314 发表于 2013-4-12 01:39 static/image/common/back.gif
第一次允许没老线宽,让你给定线宽又不给肯定出错啊!有老线宽后就可以不给了。

你可再加一句假如输入的 ...

默认线宽我不会加。8楼的是我调整后的程序,有空请帮忙给加一下默认线宽,谢谢
页: [1] 2
查看完整版本: 关于改变线宽,求高手帮忙优化