马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Satwe、Yjk(盈建科)结构计算软件的计算配筋图中,框架柱外框线是有方向的。
功能:准确测定并标注矩形框架柱边框的b边、h边,顶点位置(0~3),这是判定配筋是否满足的重要依据。
使用范围:仅适应于矩形框架柱
这两款计算软件框架柱计算配筋平面图(转cad后)中,框架柱的特点:
1、闭合顶点数均为4。
2、均为逆时针方向。
3、点表的起始点不同。
为此设计了本程序,以方便识别配筋值是属于哪个边的。
框架柱的方向与初始输入的框架柱方向一致,尤其对于斜向柱、转90度的柱,判断非常困难。
分享给结构设计人员,望大家多提宝贵意见,以便改进。
[Actionscript3] 纯文本查看 复制代码 (defun c:chk-kzbh(/ ss)
;;;为调整标注文字方向用
(defun get::pts(pts)
(if (not (equal (car (car pts)) (car (cadr pts)) 1e-3))
(vl-sort pts
'(lambda(a b)
(< (car a) (car b))
)
)
(vl-sort pts
'(lambda(a b)
(< (cadr a) (cadr b))
)
)
);;;if
);;;defun
(defun _pross(ss)
(xdrx_begin)
(xdrx_sysvar_push '("osmode" 0 "cmdecho" 0 "Pickstyle" 0));;;捕捉和命令关闭
(xdrx_runtime t)
(mapcar
'(lambda(x / pts-e pt-mid pts pts1 area1 str pt-mid-b pt-mid-h ang-b ang-h m pts-b pts-h)
(setq pts-e (xdrx_entity_getstretchpoint x)
pt-mid (xdrx_getpropertyvalue x "centroid")
pts (xdrx-curve-offset1 x 150.);;;外扩150mm后的点表
pts (reverse (cdr (reverse pts)));;;去掉最后一个点(与起点重合)
pts1 (XD::List:SnakePair pts)
area1 (xdrx_points_area pts);;;面积,有正、负之分
);;;setq
(if (equal (car pts-e) (last pts-e))
(setq pts-e (reverse (cdr (reverse pts-e))))
);;;if
(if (minusp area1)
(setq str "顺时针");;;顺时针为负值
(setq str "逆时针");;;逆时针为正值
);;;if
(cond
((= #abc# "Satwe")
(setq pt-mid-b (apply 'xdrx_line_midp (cadr pts1))
pt-mid-h (apply 'xdrx_line_midp (car pts1))
pts-b (get::pts (cadr pts1))
pts-h (get::pts (car pts1))
);;;setq
);;;cond1
(t
(setq pt-mid-b (apply 'xdrx_line_midp (car pts1))
pt-mid-h (apply 'xdrx_line_midp (cadr pts1))
pts-b (get::pts (car pts1))
pts-h (get::pts (cadr pts1))
);;;setq
);;;cond2
);;;cond
(setq ang-b (apply 'angle pts-b)
ang-h (apply 'angle pts-h)
);;;setq
(setq m -1)
(mapcar
'(lambda(y)
(xdrx_setPropertyValue
(XD::Text:Make
(list y)
(xdrx_prompt (setq m (1+ m)) t)
"yqz-style"
150.
0.70
0.
"MC"
)
"layer" "yqz-bh" "color" 1
)
);;;lmabda
pts-e
);;;mapcar
(xdrx_setPropertyValue
(XD::Text:Make
(list pt-mid-b)
(strcat "b边," str)
"yqz-style"
150.
0.70
ang-b
"MC"
)
"layer" "yqz-bh" "color" 4
)
(xdrx_setPropertyValue
(XD::Text:Make
(list pt-mid-h)
(strcat "h边," str)
"yqz-style"
150.
0.70
ang-h
"MC"
)
"layer" "yqz-bh" "color" 4
)
);;;lambda
(xdrx_pickset->ents ss)
);;;mapcar
(xdrx_prompt "\n用时 "(xdrx_runtime)" 秒")
(xdrx_sysvar_pop)
(xdrx_end)
(princ)
);;;while
(if (not #abc#)
(setq #abc# "Yjk(盈建科)")
);;;if
(if (and (setq #abc# (xdrx_ui_combolist "类型" "选择类型" '("Satwe" "Yjk(盈建科)") #abc#))
(member #abc# '("Satwe" "Yjk(盈建科)"))
);;;and
(while (setq ss (xdrx-ssget "\n框选多段线<退出>:" ":L" '((0 . "LWPOLYLINE")(90 . 4)(-4 . "&=")(70 . 1))))
(_pross ss)
);;;while
(setq #abc# "Yjk(盈建科)")
);;;if
(princ)
);;;defun
|