明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 海盗曹

(结构用)梁编号加减数字

    [复制链接]
 楼主| 发表于 2012-8-13 11:35 | 显示全部楼层
xyp1964 发表于 2012-8-10 18:39
编号增减有木有……编号重排有木有……有木有……

米有。。。
发表于 2012-8-28 02:36 | 显示全部楼层
本帖最后由 asd19400 于 2012-8-28 14:24 编辑
  1. [em01] 不好意思 ,乱发别人的程序了,请原谅!
复制代码

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
x_s_s_1 + 1 + 5 赞一个!

查看全部评分

 楼主| 发表于 2012-8-28 09:09 | 显示全部楼层
asd19400 发表于 2012-8-28 02:36
海盗哥,太牛了,求标注尺寸文字避让改进

院长的东东还是找院长吧。。。
发表于 2012-8-28 13:48 | 显示全部楼层
asd19400 发表于 2012-8-28 02:36
海盗哥,太牛了,求标注尺寸文字避让改进

请速修改本帖,我有时间会完善的,不要让人以为我借用函数不写出处,我已在群中强调了这是不完全版,故而版权信息未加进去,完全版中会加的,请院长谅解,不好意思了
发表于 2012-8-28 14:11 | 显示全部楼层
asd19400 发表于 2012-8-28 02:36
海盗哥,太牛了,求标注尺寸文字避让改进

哥,您用这个求助吧
  1. (defun x_get_dxf (en n /)
  2.   (cdr (assoc n (entget en)))
  3. )
  4. ;;;x_ssn函数(x_ssn ss)
  5. ;;;ss参数:选折集
  6. ;;;返回图元名表
  7. (defun x_ssn (ss / n lst)
  8.   (repeat (setq N (sslength ss))
  9.     (setq LST (cons (ssname SS (setq N (1- N))) LST))
  10.   ) ;_ 结束repeat
  11. ) ;_ 结束defun
  12. ;;;修改组码en 图元名 num 组码 ch 修改为
  13. (defun ch_dxf (en num ch / old_num new_num ent)
  14.   (if (setq ent            (entget en)
  15.             new_num (cons num ch)
  16.             old_num (assoc num ent)
  17.       ) ;_ 结束setq
  18.     (entmod (subst new_num old_num ent))
  19.     (entmod (reverse (cons new_num (reverse ent))))
  20.   ) ;_ 结束if
  21. ) ;_ 结束defun
  22. ;;;获取尺寸图元文字中点坐标,文字宽度,文字角度,文字中点距线距离,图元名
  23. ;(dim_txt_data(car (entsel)))
  24. (defun dim_txt_data (dim_en / en pt1 pt2 ang pt3 dist)
  25.   (setq en (cdr (assoc -2 (tblsearch "block" (x_get_dxf dim_en 2)))))
  26.                                         ;获取尺寸块图元名
  27.   (while (/= (x_get_dxf (setq en (entnext en)) 0) "MTEXT"))
  28.                                         ;获取尺寸内文字图元名
  29.   (setq        pt1 (x_get_dxf dim_en 11);文字中点坐标
  30.         pt2 (x_get_dxf dim_en 10);定义点
  31.         ang (x_get_dxf en 50);角度
  32.         pt3 (inters pt2 (polar pt2 ang 100) pt1 (polar pt1 (+ ang (/ pi 2)) 100) nil)
  33.         dist (distance pt1 pt3)
  34.   )
  35.   (list pt1 (x_get_dxf en 42) ang dist dim_en)
  36. )
  37. ;;;表内元素两两组合
  38. ;;;(1 2 3) ((1 2)(2 3))
  39. (defun lst2&2 (olst / nlst)
  40.   (repeat (1- (length olst))
  41.     (setq nlst (cons (list (car olst) (cadr olst)) nlst))
  42.     (setq olst (cdr olst))
  43.   )
  44.   (reverse nlst)
  45. )
  46. ;;;尺寸文字移动
  47. ;(setq en_data(cadr en_data_lst))
  48. (defun dim_txt_move (dis1 dis2 ang en_data / dis)
  49.   (setq dis (- dis2 dis1))
  50.   (ch_dxf
  51.     (last en_data)
  52.     70
  53.     (+ 128 (rem (x_get_dxf (last en_data) 70) 128))
  54.   )
  55.   (ch_dxf
  56.     (last en_data)
  57.     11
  58.     (polar (car en_data) ang dis)

  59.   )
  60. )
  61. ;;;根据表内第一元素的xy排序
  62. (defun dim_sort (lst /)
  63.   (setq lst (vl-sort lst (function (lambda (e1 e2) (< (car (car e1))(car (car e2)))))))
  64.   (vl-sort lst (function (lambda (e1 e2) (< (cadr (car e1))(cadr (car e2))))))
  65.   )
  66. (defun c:ttt()
  67. (setq ss(ssget '((0 . "DIMENSION"))) sc (getvar "userr1"))
  68. (vl-cmdf "_.dimedit" "_h" ss "")
  69. (setq en_data_lst (dim_sort(mapcar 'dim_txt_data (x_ssn ss))))
  70. (cond
  71.   ((= (length en_data_lst) 2)
  72.    (if (< (setq dis1(distance (car (nth 0 en_data_lst)) (car (nth 1 en_data_lst))))
  73.           (setq dis2(+ (/ (cadr (nth 0 en_data_lst)) 2) (/ (cadr (nth 1 en_data_lst))2) sc))
  74.           )
  75.      (progn
  76.      (dim_txt_move dis1 dis2 (+ (caddr (car en_data_lst)) pi) (car en_data_lst))
  77.      (dim_txt_move dis1 dis2 (caddr (cadr en_data_lst)) (cadr en_data_lst))
  78.      )
  79.      )
  80.    )
  81.   ))
 楼主| 发表于 2012-8-28 18:21 | 显示全部楼层
x_s_s_1 发表于 2012-8-28 14:11
哥,您用这个求助吧

x兄果然犀利,也是结构同行啊,以后还请多多指教~
发表于 2012-8-30 01:57 | 显示全部楼层
楼上的2位大哥请多包涵,出来扎到,很多地方不懂,就希望能用点好插件,谢谢你们为结构工程师做的一些贡献!
发表于 2013-9-2 23:03 | 显示全部楼层
备注一下,以备以后用
发表于 2013-9-3 18:49 | 显示全部楼层
不错,支持下,结构的需要
发表于 2020-5-21 22:36 | 显示全部楼层
支持一下海盗,学习了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-4 12:27 , Processed in 0.310559 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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