找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 655|回复: 5

[LISP函数]:紧急求救xyp1964大哥!!!能否帮我把这个程序修改一下

  [复制链接]
发表于 2005-11-21 21:53:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
前几天,你给我的那个程序在R14下不能运行,我试着修改了一下,源代码如下:
(defun c:xkhd ()
  (setq        ss (ssget '((0 . "CIRCLE,ELLIPSE,*LINE,ARC")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (if        (setq lw (* (cdr (assoc 39 (entget s1))) 0.01)) ;39厚度
      (command "pedit" "y" "" "w" lw "")
    )
  )
  (princ)
)
(princ "\n命令 : xkhd (线宽厚度)")
(princ)
但加载后不能运行,系统也不报错。
因为我基本上没有进行过cad的编程,没有经验,请大哥帮我解决一下。
我的最终目的是要让R14显示的和2002下显示的一样。
刚开始时,我以为只要有厚度就可以显示了,但事实上并不是这样。现在只有在2002下将线宽值付给厚度值,转换时将随之进入R14然后再将厚度值付给R14,使线宽实现出来。
请问大哥,能不能把这个程序修改一下,使得实现这个功能。
我现在等着急用。
急盼回复!!!
泣血跪求!!!
求求大哥了!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-21 22:34:03 | 显示全部楼层
  1. [FONT=courier new](defun c:xkhd ()
  2.   (setq        ss (ssget '((0 . "*LINE")))
  3.         i  -1
  4.   )
  5.   (while (setq s1 (ssname ss (setq i (1+ i))))
  6.     (if        (setq lw (* (cdr (assoc 39 (entget s1))) 0.01)) ;39厚度
  7.       (progn
  8.         (if (= (cdr (assoc 0 (entget s1))) "LINE")
  9.           (command "pedit" s1 "y" "w" lw "")
  10.           (command "pedit" s1 "w" lw "")
  11.         )
  12.       )
  13.     )
  14.   )
  15.   (princ)
  16. )
  17. (princ "\n命令 : xkhd (线宽厚度)")
  18. (princ)[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-22 08:03:10 | 显示全部楼层

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

使用道具 举报

已领礼包: 11286个

财富等级: 富甲天下

发表于 2005-11-22 09:03:45 | 显示全部楼层
最初由 xyp1964 发布
[B][CODE](defun c:xkhd ()
  (setq        ss (ssget '((0 . "*LINE")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (if        (setq lw (* (cdr (assoc 39 (entget s1))) 0.01)) ;39?.. [/B]

SPLINE线可以设线宽吗?
如果不能,是否将(SSGET '((0 . "*LINE")))改成(SSGET '((0 . "*POLYLINE")))。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-22 09:19:59 | 显示全部楼层

谢谢各位高手们的关注,
不过我在运行时,程序并不能自动选择图元,只能在运行xkhd后,我手工全选整个图,然后才能运行,
还有,程序这能修改*line项,其他的不能,我试着做了如下修改,但老是提示程序错。
源代码如下:
;;
(defun c:xkhd ()
  (setq        ss (ssget '((0 . "CIRCLE,ELLIPSE,*LINE,ARC")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (if        (setq lw (* (cdr (assoc 39 (entget s1))) 0.01)) ;39厚度
      (progn
        (if (= (cdr (assoc 0 (entget s1))) "*LINE")
         (if (= (cdr (assoc 0 (entget s1))) "LINE")
           (command "pedit" s1 "y" "w" lw "")
           (command "pedit" s1 "w" lw "")
          )
          (if (= (cdr (assoc 0 (entget s1))) "CIRCLE")
          (command "pedit" s1 "y" "w" lw "")
          (if (= (cdr (assoc 0 (entget s1))) "ELLIPSE")
          (command "pedit" s1 "y" "w" lw "")
          (if (= (cdr (assoc 0 (entget s1))) "ARC")
          (command "pedit" s1 "y" "w" lw "")
        )
        )
        )
        )
      )
    )
  )
  (princ)
)
(princ "\n命令 : xkhd (线宽厚度)")
(princ)
能不能帮我看一下,
让程序把所有的(除去字体,当然如果能修改的话更好)元素都修改掉。
急盼回复!!!
谢谢各位前辈!!!
谢谢大哥!!!
急盼回复!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11286个

财富等级: 富甲天下

发表于 2005-11-23 22:40:57 | 显示全部楼层

  1. (DEFUN C:XKHD ()
  2. (SETVAR "CMDECHO" 0)
  3. (SETQ SS (SSGET "X" '((0 . "CIRCLE,*POLYLINE,ARC"))) i -1)
  4. (WHILE (SETQ S1 (SSNAME SS (SETQ I (1+ I))))
  5.   (SETQ ENT (ENTGET S1) ENAME (CDR (ASSOC 0 ENT)))
  6.   (IF (SETQ LW (* (CDR (ASSOC 39 ENT)) 0.01)) ;39厚度
  7.    (IF (WCMATCH ENAME "*POLYLINE")
  8.     (COMMAND "CHPROP" S1 "" "T" "0" "" "PEDIT" S1 "W" LW "")
  9.     (IF (= ENAME "CIRCLE") (PROGN
  10.      (SETQ PC (CDR (ASSOC 10 ENT))
  11.            R (- (* (CDR (ASSOC 40 ENT))) 2) (* LW 0.5))
  12.            R0 (+ R LW))
  13.      (ENTDEL S1)
  14.      (COMMAND "DONUT" R R0 PC "")
  15.     )
  16.      (COMMAND "CHPROP" S1 "" "T" "0" "" "PEDIT" S1 "Y" "W" LW "")
  17.     )
  18.    )
  19.   )
  20. )
  21. (SETVAR "CMDECHO" 1)
  22. (PRINC)
  23. )
  24. (PRINC "\n命令 : xkhd (线宽厚度)")
  25. (PRINC)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 20:12 , Processed in 0.175220 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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