找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 贱人

[求助] .....................................

[复制链接]
发表于 2005-5-10 09:28:47 | 显示全部楼层
"狂刀"的程序是不错,佩服。不过是不是应当改成一点即刷,而不是按了空格后才显示刷新效果。
不过acad2006的刷子已经有这个功能了,贱人老弟是不是太执着于专业精神了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-10 09:46:51 | 显示全部楼层
本帖最后由 贱人 于 2025-4-18 05:57 编辑

.....................................
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2005-5-10 09:48:12 | 显示全部楼层
;这个是一选一刷的版本.
[php]
(defun c:plmw (/ el w ss)
  (princ "\n刷线宽----by 狂刀. ")
  (if (and (setq el (entsel "\n选参照多义线宽度:"))
       (setq w (cdr (assoc 43 (entget (car el)))))
      )
    (while (setq ss (ssget ":s" '((0 . "*POLYLINE,ARC,LINE"))))
      (command ".pedit" "m" ss  "")
      (if (NOT (wcmatch    (cdr (assoc 0 (entget(ssname ss 0))))
            "*POLYLINE"
           )
      )
    (COMMAND "")
      )
      (command "w" w "j" 1e-4 "")
    )
  )
  (princ)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-10 10:02:45 | 显示全部楼层
本帖最后由 贱人 于 2025-4-18 05:57 编辑

.....................................
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2005-5-10 20:51:15 | 显示全部楼层
要刷园也可以,加个命令,先把园打断,变成圆弧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-14 22:27:23 | 显示全部楼层
可以刷圆,把圆变成donut
代码长了一点,主要是要养成一个好的编程习惯,在程序出错或用户退出的时候,恢复原来的系统设置。


  1.   [FONT=courier new]
  2. ;;====================
  3. ;;单选物体,带过滤列表及提示
  4. (defun lhj_sel (str fi_list / pt ename ss loop ename)
  5.   (princ "\n")
  6.   (princ str)
  7.   (setq loop T)

  8.   (while loop
  9.     (setq pt (grread t 4 2))
  10.     (if (= 3 (car pt))
  11.       (setq loop nil)
  12.     )
  13.   )
  14.   (setq pt (cadr pt))
  15.   (setq ss (ssget pt fi_list))
  16.   (if ss
  17.     (setq ename (ssname ss 0))
  18.     (setq ename nil)
  19.   )
  20. )

  21. ;;=====================================
  22. ;;获取实体dxf组码内容
  23. ;; (lhj_dxf 实体名 dxf码编号)
  24. ;;例:(lhj_dxf textname 10),获取文字左下点标

  25. (defun lhj_dxf (ename code / elist res)
  26.   (setq elist (entget ename))
  27.   (setq res (cdr (assoc code elist)))
  28. )

  29. ;;==========================================
  30. ;;初始化,读取系统变量。结束时,恢复系统变量
  31. ;;  osmode             0
  32. ;;  cmdecho         1
  33. ;;  clayer             2
  34. ;;  textstyle          3
  35. ;;  cecolor        4
  36. ;;  dimstyle        5
  37. ;;  plinewid    6
  38. ;;  filletrad   7


  39. (defun lhj_start ()
  40.   (setq        lhj_s_lst
  41.          (list
  42.            (getvar "osmode")
  43.            (getvar "cmdecho")
  44.            (getvar "clayer")
  45.            (getvar "textstyle")
  46.            (getvar "cecolor")
  47.            (getvar "dimstyle")
  48.            (getvar "plinewid")
  49.            (getvar "filletrad")
  50.            (getvar "attdia")
  51.          )
  52.   )
  53.   (setq old_error *error*)
  54.   (setvar "cmdecho" 0)
  55.   (command "undo" "be")
  56.   (setvar "osmode" 0)
  57.   (setvar "attdia" 0)
  58.   (princ)
  59. )


  60. (defun lhj_end ()
  61.   (setvar "osmode" (nth 0 lhj_s_lst))
  62.   (setvar "clayer" (nth 2 lhj_s_lst))
  63.   (setvar "textstyle" (nth 3 lhj_s_lst))
  64.   (setvar "cecolor" (nth 4 lhj_s_lst))
  65.   (command "dimstyle" "r" (nth 5 lhj_s_lst))
  66.   (setvar "plinewid" (nth 6 lhj_s_lst))
  67.   (setvar "filletrad" (nth 7 lhj_s_lst))
  68.   (setvar "attdia" (nth 8 lhj_s_lst))
  69.   (setq *error* old_error)
  70.   (command "undo" "e")
  71.   (setvar "cmdecho" (nth 1 lhj_s_lst))
  72.   (princ)
  73. )


  74. ;;-----------------------------
  75. ;;     定义pline刷
  76. ;;-----------------------------
  77. (defun c:matchplwid (/ pl0 ss ssl en el plw mode rad)

  78. ;初始化程序=======
  79.   (lhj_start)

  80.   (defun *error* (msg)
  81.     (princ "\n")
  82.     (princ "\n:::lhj_tools:::")
  83.     (princ msg)
  84.     (princ ",程序退出!")
  85.     (if        pl0
  86.       (redraw pl0 4)
  87.     )
  88.     (lhj_end)
  89.   )
  90. ;初始化结束=======

  91. ;主程序===========
  92.   (setq        pl0 (lhj_sel
  93.               "\n:::LHJ_TOOLS:::请选取源PLINE:"
  94.               '((0 . "LWPOLYLINE"))
  95.             )
  96.   )
  97.   (if pl0
  98.     (progn
  99.       (redraw pl0 3)
  100.       (setq plw (lhj_dxf pl0 43))
  101.       (princ "\n:::LHJ_TOOLS:::请选取要修改宽度的PLINE/LINE/CIRCLE/ARC:")
  102.       (setq ss (ssget '((0 . "LWPOLYLINE,line,circle,arc"))))
  103.       (redraw pl0 4)
  104.       (if ss
  105.         (progn
  106.           (setq ssl (sslength ss))
  107.           (setvar "plinewid" plw)
  108.           (while (> ssl 0)
  109.             (setq en   (ssname ss (setq ssl (1- ssl)))
  110.                   mode (lhj_dxf en 0)
  111.             )
  112.             (cond ((or (= mode "ARC") (= mode "LINE"))
  113.                    (progn
  114.                      (command "pedit" en "y" "w" plw)
  115.                      (command)
  116.                    )
  117.                   )

  118.                   ((= mode "LWPOLYLINE")
  119.                    (progn
  120.                      (command "pedit" en "w" plw)
  121.                      (command)
  122.                    )
  123.                   )

  124.                   ((= mode "CIRCLE")
  125.                    (progn
  126.                      (setvar "clayer" (lhj_dxf en 8))
  127.                      (setq rad (lhj_dxf en 40))
  128.                      (command "donut"
  129.                               (- (* rad 2) plw)
  130.                               (+ (* rad 2) plw)
  131.                               (lhj_dxf en 10)
  132.                      )
  133.                      (command)
  134.                      (entdel en)
  135.                    )
  136.                   )
  137.             )
  138.           )
  139.         )
  140.         (princ "\n:::LHJ_TOOLS:::没有选择到要修改宽度的物体!")
  141.       )
  142.     )
  143.     (princ "\n:::LHJ_TOOLS:::没有选择到PLINE!")
  144.   )


  145. ;主程序结束=======

  146.   (lhj_end)
  147.   (princ)
  148. )
  149.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 05:33 , Processed in 0.169497 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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