找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2403|回复: 8

[LISP程序]:有没有这样的LISP程序?

[复制链接]
发表于 2002-5-5 11:03:15 | 显示全部楼层 |阅读模式

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

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

×
请问,有没有这样的LISP程序:在天正中改选中的所有标高同时加或减一数值,如:标高为3.100,8.200,11.300等,均加上0.200,即变为3.300,8.400,11.500等,而其字的属性不变。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-5-5 11:11:50 | 显示全部楼层
有。

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

使用道具 举报

 楼主| 发表于 2002-5-6 07:06:01 | 显示全部楼层
你能帮个忙写出来吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2002-5-6 07:24:37 | 显示全部楼层
我的ce.lsp(Lisp程序库论坛中计算器程序贴)可以对你有点帮助,使用时注意提示,输出方式应为改写。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-6 12:07:10 | 显示全部楼层
cnnets :
每个人的标高定义方式可能不同,
有的人用pline线+text,
有的人用块+属性字。

你可以先选择一个基点,
然后根据y高,刷新所有选中的标高符的值。

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

使用道具 举报

发表于 2002-5-6 16:15:40 | 显示全部楼层

加减高程数值


  1. ;;;==========================================================;
  2. ;;;加减高程数值                                                          ;
  3. ;;;==========================================================;
  4. (defun c:PlusValue (/             el              k               ss        zl
  5.                     oldList  oldText  oldValue newList        newValue
  6.                    )
  7.   (setq ss (ssget '((0 . "TEXT,MTEXT"))))
  8.   (if (not ss)
  9.     (exit)
  10.   )
  11.   (setq zl (getreal "\n增减数值<0>: "))
  12.   (if (= zl nil)
  13.     (setq zl 0)
  14.   )
  15.   (setq k 0)
  16.   (repeat (sslength ss)
  17.     (setq el           (entget (ssname ss k))
  18.           oldList  (assoc 1 el)
  19.           oldText  (cdr oldList)
  20.           oldValue (read oldText)
  21.     )
  22.     (if        (or (= (type oldValue) 'INT) (= (type oldValue) 'REAL))
  23.       (progn
  24.         (setq newValue (rtos (+ oldValue zl) 2 3)
  25.               newList  (cons (car oldList) newValue)
  26.               el       (subst newList oldList el)
  27.         )
  28.         (entmod el)
  29.       )
  30.     )
  31.     (setq k (1+ k))
  32.   )
  33.   (princ)
  34. )

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-6 16:53:49 | 显示全部楼层

Re: [LISP程序]:有没有这样的LISP程序?

最初由 cnnets 发布
[B]请问,有没有这样的LISP程序:在天正中改选中的所有标高同时加或减一数值,如:标高为3.100,8.200,11.300等,均加上0.200,即变为3.300,8.400,11.500等,而其字的属性不变。 [/B]


以前我写过,可以智能排序,找到最下的标高,看看下面的介绍。



;;; 给天正建筑3.x加入两个命令,使用天正核心,仅适用天正3.x版本
;;; 本程序可以窗口多选要改变层高的标注值,程序找出最下面的层高值,
;;;然后提示后的最下面层的层高
;;; 然后,计算出差值,连续修改选中的最下层及其上部各层的标注值
;;; c:e_chdim 连续改变立面层高标注值
;;; c:s_chdim 连续改变剖面层高标注值
;;; 两个命令基本相同,仅仅是提示不同
;;; 为考虑以后兼容,请朋友们把本程序保存为elev_chdim.lsp


下载看下面的帖子

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

使用道具 举报

 楼主| 发表于 2002-5-7 07:07:20 | 显示全部楼层
我好开心,有这么多热心的朋友回答,谢谢你们啦。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-12 06:55:48 | 显示全部楼层

统一加减标高

以前自己编一程序做到统一加减标高,不过画图时自己先将标高值做成属性,与标高线做成块,所以在这时才能用到本程序。本程序可以解决如F+2.500标高加300变为F+2.800。也可解决2.500标高变为2.800。


  1. [FONT=courier new]
  2. (defun c:zx (/             var1    blk     entcn   i             bg             blki
  3.              flag    bktext  bkent   atext   atextd  bgtext  bgvalue
  4.              bgf     bgL     valueb  len     flag1   valxao  atext1
  5.              bknet
  6.             )
  7.   (alert (strcat
  8.            "-----------------------------------------------\n"
  9.            "     本程序可用于带属性的标高块,当标高值以一相\n"
  10.            "同高差改变时,统一改变标高---------------------\n"
  11.            "-----------------------------------------------\n"
  12.            "                              01,1,30\n"
  13.            "-----------------------------------------------")
  14.   )
  15.   (setq var1 (getvar "cmdecho"))
  16.   (setvar "cmdecho" 0)
  17.   (setq blk (ssget '((0 . "INSERT"))))
  18.   (setq entcn (sslength blk))
  19.   (setq i 0)
  20.   (initget 24)
  21.   (setq bg (getreal "输入变化标高值:"))
  22.   (while (< i entcn)
  23.     (princ i)
  24.     (setq blki (ssname blk i))
  25.     (setq flag 1)
  26.     (setq flag1 0)                        ;(while flag
  27.     (setq bktext (entnext blki))
  28.     (setq bkent (entget bktext))
  29.     (setq atext (assoc 0 bkent))
  30.     (setq atextd (cdr atext))
  31.     (if        (= atextd "SEQEND")
  32.       (seq flag 0)
  33.     )                                        ;end if
  34.     (if        (= atextd "ATTRIB")
  35.       (progn
  36.         (setq flag 0)
  37.         (setq bgtext (assoc 1 bkent))
  38.         (setq bgtext (cdr bgtext))
  39.         (setq bgvalue (vl-string->list bgtext))
  40.         (if
  41.           (or (and
  42.                 (< 47 (car bgvalue))
  43.                 (> 58 (car bgvalue))
  44.               )

  45.               (= 45 (car bgvalue))

  46.           )
  47.            (setq bgf   nil
  48.                  bgL   bgvalue
  49.                  flag1 1
  50.            )
  51.         )                                ;end if
  52.         (if (or
  53.               (= 43 (cadr bgvalue))
  54.               (= 45 (cadr bgvalue))
  55.             )                                ;end or
  56.           (setq        bgf (car bgvalue)
  57.                 bgL (cdr bgvalue)
  58.           )
  59.         )                                ;end if
  60.         (if (or
  61.               (= 43 (caddr bgvalue))
  62.               (= 45 (caddr bgvalue))
  63.             )                                ;end or
  64.           (setq        bgf (list (car bgvalue) (cadr bgvalue))
  65.                 bgL (cddr bgvalue)
  66.           )
  67.         )                                ;end if
  68.         (setq valueb (vl-list->string bgL))
  69.         (setq valueb (atof valueb))
  70.         (setq valueb (+ bg valueb))

  71.         (if (= valueb (fix valueb))
  72.           (setq len 0)
  73.         )                                ;end if
  74.         (setq valueb (rtos valueb 2 3))
  75.         ;|(setq valzhe (fix valueb))
  76.           (setq        valxao
  77.                  (cond
  78.                    ((minusp valzhe) (- valzhe valueb))
  79.                    ((>= valzhe 0) (- valueb valzhe))
  80.                  )                        ;end cond
  81.           )                                ;end setq
  82.           (setq valzhe (itoa valzhe))
  83.           (setq valxao (rtos valxao 2 3))
  84.           (if (< (setq len (strlen valxao)) 5)
  85.             (setq valxao
  86.                    (cond
  87.                      ((= 1 len) "0.000")

  88.                      ((= 3 len) (strcat valxao "00"))
  89.                      ((= 4 len) (strcat valxao "0"))
  90.                    )                        ;end cond
  91.             )                                ;end setq
  92.           )                                ;end if
  93.           (setq valxao (vl-string-left-trim "0" valxao))
  94.           (setq valueb (strcat valzhe valxao))|;

  95.         (setq bgL (vl-string->list valueb))
  96.         (setq valxao
  97.                (cond
  98.                  ((= 46 (cadr bgL)) (cddr bgL)) ;.
  99.                  ((= 46 (caddr bgL)) (cdddr bgL))
  100.                  ((= 46 (cadddr bgL)) (cddddr bgL))
  101.                  (T "0")
  102.                )                        ;end cond
  103.         )                                ;end setq

  104.         (if (< (setq len (vl-list-length valxao)) 3)
  105.           (setq        bgL
  106.                  (append bgL
  107.                          (cond
  108.                            ((= 0 len) '(46 48 48 48))
  109.                            ((= 1 len) '(48 48))
  110.                            ((= 2 len) '(48))
  111.                            (T nil)
  112.                          )
  113.                  )                        ;end cond
  114.           )                                ;end setq
  115.         )                                ;end if

  116.         (if (and (/= 1 flag1)
  117.                  (/= 45 (car bgL))
  118.             )                                ;-
  119.           (setq bgL (cons 43 bgL))        ;+
  120.         )
  121.         (if (/= 1 flag1)
  122.           (setq bgvalue (cons bgf bgL))
  123.         )
  124.         (if (= 1 flag1)
  125.           (setq bgvalue bgL)
  126.         )

  127.         (setq atext1 (vl-list->string bgvalue))
  128.         (setq bkent (subst (cons 1 atext1) (assoc 1 bkent) bkent))
  129.         (entmod bkent)
  130.                                         ;(setq flag 0)
  131.         (entupd blki)
  132.       )                                        ;end progn
  133.     )                                        ;end if
  134.                                         ;)                                        ;end while flag
  135.     (setq i (1+ i))
  136.   )                                        ;end while entcn

  137. )                                        ;end defun

  138. (defun *error* (msg)
  139.   (alert  "你怎么不好好用呢?\n")
  140.   ;(princ msg)
  141.   (princ)

  142. )
  143. (if (or        (/= msg "Function cancalled")
  144.         (= msg "quit / exit about")
  145.     )
  146.   (princ)
  147.   (princ (stract "\n Error:" msg))
  148. )
  149. (princ "高度转换; 输入zx:")
  150. (princ)[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 07:36 , Processed in 0.211134 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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