找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3874|回复: 16

[LISP程序]:梁排号,梁编号递增修改lsp程序两个

[复制链接]
发表于 2003-5-6 22:00:17 | 显示全部楼层 |阅读模式

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

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

×
今天看到一篇有过梁排号的帖子.想起以前应同事之请曾经写过两个梁排号,梁编号递增修改lsp程序,翻翻以前的目录,找出来给大家看看.因为我不是学结构的,也没有去测试过,依稀记得当时是有用的.有好几个版本,不知哪个是可以正常运行的,所以没有放到我的老巢----程序库板块,而是发到这里. :),如果可用,别忘了告诉我一声.

  1. (princ "\n ttln----梁编号递增修改v1.0---for结构------lxx.2001.11")
  2. ;;
  3. (defun c:ttln ( / n roop ent entl e1 str1 i str2 i2 str3)
  4.   (princ "\nttln----梁编号递增修改v1.0---for结构------lxx.2001.11")
  5.   (princ "\n!只针对前缀 kl xl 的梁编号txt!")
  6.   (setq n (getint "\n起始编号:")
  7.         roop "true"
  8.         i 2)
  9.   (while roop
  10.    (initget "X C R  ")
  11.    (setq ent (entsel "\n<X-退出>/C-序号重复/R-重设序号/选择梁编号:"))
  12.    (cond
  13.     ((or (= "x" ent)(= "X" ent)(= "" ent)(= " " ent))
  14.       (setq roop nil)
  15.     );<X-退出>
  16.     ((or (= "C" ent)(= "c" ent))
  17.       (setq n (1- n))
  18.     );C-序号重复
  19.     ((or (= "R" ent)(= "r" ent))
  20.       (princ "\n当前序号:")(princ n)
  21.       (setq n (getint "\n重设当前序号为:"))
  22.     )
  23.     ((= nil ent)(princ "\n没有选中编号,请重新选择:"))
  24.      ((progn
  25.       (setq entl (entget (car ent))
  26.             e1  (cdr(assoc 1 entl))
  27.            str1 (substr e1 1 2)
  28.       )
  29.       (or (wcmatch (strcase str1) "KL*")
  30.           (wcmatch (strcase str1) "XL*")
  31.       )
  32.       );
  33.       (princ "\n当前序号:")(princ n)
  34.       (if (= " " (substr e1 3 1))
  35.           (setq i 3 str1 (strcat str1 " "))
  36.           (setq i 2)
  37.       )
  38.       (setq str2(substr e1 (1+ i))
  39.            str2 (rtos (atoi str2) 2 0)
  40.             i2  (strlen str2)
  41.           str3  (substr e1 (+ i i2 1))
  42.             e1  (strcat str1 (itoa n) str3)
  43.           entl  (subst (cons 1 e1) (assoc 1 entl) entl)
  44.              n  (1+ n)
  45.       )
  46.       (entmod entl)
  47.     );end case
  48.    
  49.   );end cond
  50. );end while
  51. (princ)
  52. )
  53.             
  54.   

  1. (princ "\n ttls----梁编号重排v1.0---for结构------lxx.2001.11")
  2. ;;
  3. (defun c:ttls ( / kls0 key ss i ent entl e10 e-1 elist la i e1 ent entl str1 n1 str2 str3 roop kls); 起始编号
  4.   (princ "\n ttls----梁编号重排v1.0---for结构------lxx.2001.11")
  5.   (initget "Xl重排 Kl重排")
  6.   (if (not kls)
  7.     (setq kls 1 kls0 kls)
  8.     (setq kls0 kls)
  9.   )
  10.   (setq key (getkword "\nXl重排/Kl重排:")
  11.         roop "true")
  12. (while roop
  13.   (initget 128)
  14.   (setq kls0 kls)
  15.   (setq kls (getint (strcat "\nX-退出/起始编号<" (rtos kls 2 0) ">:")))
  16.   (if (or (= "X" kls)(= "x" kls)) (quit))
  17.   (if (= nil kls)(setq kls kls0))
  18.   (cond
  19.     ((= "Xl重排" key)
  20.       (setq ss (ssget '((0 . "TEXT") (1 . "XL*"))))
  21.     )
  22.     ((= "Kl重排" key)
  23.       (setq ss (ssget '((0 . "TEXT") (1 . "KL*"))))
  24.     )
  25.   )
  26.   (setq i 0 elist '())
  27.   (repeat (sslength ss)
  28.     (setq ent (ssname ss i)
  29.           entl (entget ent)
  30.           e10 (car (cdr (assoc 10 entl)))
  31.           e-1 (cdr (assoc -1 entl))
  32.           i (1+ i)
  33.           elist (cons (LIST e10 (cdr (assoc 1 entl)) e-1) elist)
  34.     )
  35.   );end repeat
  36.   (setq elist (vl-sort elist (function (lambda (l1 l2) (< (car l1)(car l2)) ))));按照x值排序
  37.   (foreach n elist (sortn))
  38.   (princ "\n本次编号从 ")(princ kls0)(princ " 到 ")(princ (1- kls))
  39. );end while
  40.   (princ)
  41. )
  42. ;重排编号(sortn)
  43. (defun sortn ()
  44.   (setq e1 (cadr n)
  45.         ent2 (last n)
  46.         entl2 (entget ent2)
  47.         n1 2
  48.         str1 (substr e1 1 n1)       
  49.   )
  50.   (if (= " " (substr e1 3 1))
  51.       (setq str1 (strcat str1  " ")
  52.                  n1 (1+ n1))
  53.   )
  54.   (setq      str2  (substr e1 (1+ n1))
  55.              str2  (rtos (atoi str2) 2 0)
  56.                n2  (strlen str2)
  57.              str3  (substr e1 (+ n1 n2 1))
  58.              str2  (rtos kls 2 0)
  59.                e1  (strcat str1 str2 str3)
  60.              entl2  (subst (cons 1 e1) (assoc 1 entl2) entl2)
  61.                kls  (1+ kls)
  62.   )
  63.   (entmod entl2)
  64. )



附件压缩包里面一共有5个lsp文件,但是功能就两个,如上.因为记不得那个能用了--也许都可以:) .所以一起打包上来.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-5-6 23:41:11 | 显示全部楼层
我是建筑的,也帮结构的弟兄写过这样的东东。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-10-12 14:10:53 | 显示全部楼层
非常感谢“梦断江南”斑竹,这个梁排号lisp正是我期待的。我试用了一下,很好用。感谢斑竹的无私奉献,虽然他不是做结构的。相信许多做结构设计的很需要这个!
不过我把程序里面的XL改为了LL,这样pkpm生成的梁平法图中的KL*  LL*都可以重排号。然后用find将LL全部改为L。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-12 15:43:28 | 显示全部楼层
确实很有用,编号与梁线的距离怎样可调
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-13 12:16:44 | 显示全部楼层
梁编号重排ttls对每根梁号都按顺序编不同的号,这对于梁表确实有用。不过现在用的是平法表示,图中有许多相同的梁号,用此程序就不行了。不知斑竹能不能修改一下,相同的梁号修改后还是相同的,并且按原来的梁号从小到大修改。辛苦了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-21 23:04:38 | 显示全部楼层
最初由 laolin 发布
[B]梁编号重排ttls对每根梁号都按顺序编不同的号,这对于梁表确实有用。不过现在用的是平法表示,图中有许多相同的梁号,用此程序就不行了。不知斑竹能不能修改一下,相同的梁号修改后还是相同的,并且按原来的梁号从小... [/B]


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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-10-23 13:19:30 | 显示全部楼层
最初由 laolin 发布
[B]梁编号重排ttls对每根梁号都按顺序编不同的号,这对于梁表确实有用。不过现在用的是平法表示,图中有许多相同的梁号,用此程序就不行了。不知斑竹能不能修改一下,相同的梁号修改后还是相同的,并且按原来的梁号从小... [/B]


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

使用道具 举报

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

使用道具 举报

发表于 2004-10-23 21:00:22 | 显示全部楼层
最初由 梦断江南 发布
[B][QUOTE]最初由 laolin 发布
[B]梁编号重排ttls对每根梁号都按顺序编不同的号,这对于梁表确实有用。不过现在用的是平法表示,图中有许多相同的梁号,用此程序就不行了。不知斑竹能不能修改一下,相同的梁号?.. [/B]


pkpm生成的梁平法配筋图中,比如有KL1至KL8,其中KL3有两根梁,现人为将KL2归并为KL1,梁编号重排时使相同的梁号(即所有编为KL3的梁编号均变为KL2)相同。
如图所示
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-10-24 23:40:10 | 显示全部楼层
电脑里已装了探索者、晓东工具箱,所以不想为这个功能再装ASDE软件,若能有一个小程序就解决问题就好了。
    逍遥兄把问题图示得很清楚了,不过简单点说就是,有几个编号,如:KL2[/COLOR] (3)、KL4[/COLOR] (2)、KL4[/COLOR] (2)、KL6[/COLOR] (4)等,经重新编号后为:KL1[/COLOR] (3)、KL2[/COLOR] (2)、KL2[/COLOR] (2)、KL3[/COLOR] (4)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-1 16:32:15 | 显示全部楼层
楼主的问题为什么没有解决啊;都盼着有高手能看一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 16:27 , Processed in 0.198702 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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