找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 570|回复: 1

[LISP程序]:[LISP程序]:此程序有点问题谁能修改一下?

[复制链接]
发表于 2006-4-15 14:42:26 | 显示全部楼层 |阅读模式

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

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

×
根据高程注记加点位


(defun c:jgcd()
(setq ent (ssget "x" (list (cons 8 "gcd")(cons 0 "TEXT"))))
(if ent (progn
(command"zoom" "e")
(setvar "osmode" 0)
(write-line "正在给没有点位的高程注记加点位,请稍侯。。。。")
(command"layer" "m" "gcd" "")
(setq long-ent (sslength ent))
(setq num-ent 0)
(repeat long-ent
(setq ty (ssname ent num-ent))
(c:findd)
(setq num-ent (1+ num-ent))
)
(command"layer" "m" "0" "")
(command"zoom" "p")
(write-line"        ok  ")
(print)
))
)
                                   

(defun c:findd()
(setq data (entget ty))
(SETQ TEX (CDR (ASSOC 1 DATA)))
(setq p (cdr (assoc 10 data)))
(setq pl (polar p (* 1.25 pi) 11.0)
pr (polar p (* 0.18 pi) 17))
(setq ent-p (ssget "w" pl pr '((0 . "POINT")(1 . "gcd"))))
(if ent-p (progn ;注记周围有点
(SETQ Long-p (sslength ent-p))
(setq num-p 0)
(setq data-p (entget (ssname ent-p num-p)))
(setq gcdz (rtos (cadddr (assoc 10 data-p)) 2 2))
(while (and (/= gcdz tex)(< num-p (1- long-p)))
(setq num-p (1+ num-p))
(setq data-p (entget (ssname ent-p num-p)))
(setq gcdz (rtos (cadddr (assoc 10 data-p)) 2 2))
)
(if (/= gcdz tex) (c:jiad))
)
(c:jiad) ;注记周围无点
)
)

(defun c:jiad()
(setq p-point (polar (polar p (* 0.5 pi) 1) pi 1.0))
(command"point" p-point)
(command"change" (entlast) "" "p" "e" (atof tex) "t" "1610000" "")
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-15 17:19:41 | 显示全部楼层
  1. [FONT=courier new]
  2. (defun c:jgcd ()
  3.   (command ".undo" "BE")
  4.   (setvar "pdmode" 99)
  5.   (setvar "pdsize" 20)
  6.   (if (setq ent (ssget "x" (list (cons 8 "gcd") (cons 0 "TEXT"))))
  7.     (progn
  8.       (command "zoom" "e")
  9.       (setvar "osmode" 0)
  10.       (princ "\n正在给没有点位的高程注记加点位,请稍侯...")
  11.       (command "layer" "m" "gcd" "")
  12.       (setq long-ent (sslength ent)
  13.             i             0
  14.       )
  15.       (repeat long-ent
  16.         (setq ty   (ssname ent i)
  17.               data (entget ty)
  18.               p           (cdr (assoc 10 data))
  19.               pl   (polar p (* 1.25 pi) 15.0)
  20.               pr   (polar p (* 0.25 pi) 15.0)
  21.         )
  22.         (if (not
  23.               (setq
  24.                 ent-p (ssget "w" pl pr '((0 . "POINT") (8 . "注记点")))
  25.               )
  26.             )
  27.           (progn (command "layer" "m" "注记点" "c" 3 "注记点" "")
  28.                  (setq p-point (polar (polar p (* 0.5 pi) 1) pi 1.0))
  29.                  (command "point" p-point)
  30.                  (princ ".")
  31.           )
  32.         )
  33.         (setq i (1+ i))
  34.       )
  35.       (command "layer" "m" "0" "")
  36.       (command "zoom" "p")
  37.     )
  38.   )
  39.   (princ "ok")
  40.   (command ".undo" "E")
  41.   (princ)
  42. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 07:02 , Processed in 0.167608 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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