点选配筋插件原理解析

linxiaoyun 2018.6.10 18:42 1580 0
结构设计 autolisp

结构设计中根据配筋简图进行梁配筋方案选择是占比很大一块工作,尤其涉及到修改时。如简图文字为3,配筋方案为2根14,或3根12 。

配筋方案根据个人常常比较固定,因此可以将其代码化,如200宽的梁,分别设置顶筋和底筋的配筋方案,

get-astlist(wztxt / aslst)
get-asblist(wztxt / aslst)

当然,对配筋简图进行读取,需要对文字内容进行分析,截取相应的简图文字。

getas(  en  bflag / stras  as-list pt pt1 pt2 pt3 pt4 ptm ptlist boxh gjl as asgj gjm as1 as2 as3 )

对分析之前,还需要判断,简图文字在于梁上还是梁下,生成bflag标志,传给内容分析函数:

	  (setq en1 (car en) )
	  (setq ang (get-dxf 50 en1) self-ang  (angle '(0 0 0)(getvar 'ucsxdir)))		;a 文字旋转角度 弧度(WCS)
  	  (setq ptb (trans (get-dxf 10 en1) en1 1))
	  ;通过检查文字周边是否有线来判断bflag,100范围内有线,说明文字在上方。
	  ;(ssget "_C" pt0 pt1 '((0 . "Line")))
	  (setq ss  (ssget "_C" ptb (offset_point ptb 0 -100 (- ang self-ang)) '((0 . "LINE"))))
	  (if (and ss (> (sslength ss) 0))
	  (setq bflag 100)(setq bflag 350))

根据配筋简图文字取得配筋方案文字列表后,当列表内数字大于1时,弹出菜单进行选择:

  (if ( < (length wzlst) 2)
  (progn
  (princ (strcat "\n简图 " wztxt " 配筋为 " (car wzlst)))
  (set-aslist (car wzlst) pta bflag)
  )
  (progn ;wzlst >= 2 用菜单选择
  (IF (SETQ WZ (CADR (YY:YJCAIDAN (CADR EN)  LEN LEN1 WZLST OLDWZ)));;调用菜单函数
 
   (progn
   (princ (strcat "\n简图 " wztxt " 配筋为 " wz))
   (set-aslist wz pta bflag)
   );progn

    ) ; IF
	);progn wzlst >=2
	);if 判断 wzlst

其中set-aslist函数是根据用户选择文字、直线或未选择三种情况处理配筋方案文字。

1.选择为文字时,直接更新文字内容;

2.选择为直线时,根据bflag标志,在该直线上下生成文字;

3.当未选择到对象时,生成拖拽的文字,供用户自由布置。

其中选择文字和直线支持块内对象。

以上操作,均支持UCS。

Last Modified·2018年6月10日 21:00

暂无评论

您尚未登录,请先才能评论。