明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 932|回复: 12

[建筑] 三领设计 V3.0 画柱、梁大样图

[复制链接]
发表于 2024-10-25 02:05:38 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2024-10-25 09:50 编辑

这个问题来说,实在是不值得,因为,如果你是搞了不少结构的话,应该是,熟练掌握一套大型的结构软件包,比如:PKPM,探索者(天正结构)等。因为在哪里,全部都有,可以配合图库手段。那么为什么三领也做个呢?因为不少人说:某某二开这个作的不错(实际上是非结构设计者的二开,觉得这很有用),你缺没有这功能,尝试作下,完善之路还远,此处省略1万字说明....










  1. ;三领设计 V3.0  BY 尘缘一生  QQ:15290049
  2. ;注:破解三领无用,破解了,这集成码子你也无用 ,但三领悬赏破解者
  3. ;;取柱配筋参数-----(一级)------
  4. ;;返回(list b h b1 b2 h1 h2 $stj ht)或nil
  5. ;;(b宽 h高 b1下筋数量 b2上筋数量 h1左筋数量 h2右筋数量 $stj钢筋级别 ht标筋方式)
  6. (defun xt-colums (/ dcl_id dlg kk lis)
  7.   (defun sl_zxt (/ lst_str)
  8.     (setq lst_str
  9.       (list
  10.         "zxt:dialog {"
  11.         (strcat "label=""
  12.           (slmsg
  13.             "三领设计 V3.0               柱详图 V3.0"
  14.             "烩砞璸 V3.0               琖冈瓜 V3.0"
  15.             "Sldesign V3.0          Column detail drawing V3.0"
  16.           ) "";"
  17.         )
  18.         $row
  19.         $boxed_column
  20.         (strcat "label="" (slmsg "柱子尺寸" "琖へ" "Column size") "";")
  21.         ":image_button{aspect_ratio=1.0;key="img1-1";width=32;}"
  22.         $row
  23.         (strcat ":edit_box{label="" (slmsg "横向B" "绢翾B" "TransverseB") "";key="tile3";}")
  24.         (strcat ":edit_box{label="" (slmsg "纵向H" "羇翾H" "PortraitH") "";key="tile4";}")
  25.         "}}"
  26.         $boxed_column
  27.         (strcat "label="" (slmsg "配筋" "皌惮" "Steel reinforcement") "";")
  28.         $row
  29.         $boxed_column
  30.         (strcat "label="" (slmsg "边筋数量" "娩惮计秖" "Number of side bars") "";")
  31.         ":edit_box{label="b1";key="b1";}"
  32.         ":edit_box{label="b2";key="b2";}"
  33.         ":edit_box{label="h1";key="h1";}"
  34.         ":edit_box{label="h2";key="h2";}"
  35.         "}"
  36.         $boxed_column
  37.         (strcat "label="" (slmsg "钢筋级别" "葵惮" "Steel grade") "";")
  38.         (strcat ":radio_button{key="k1";label="" (slmsg "1级" "1" "1Grade") "";}")
  39.         (strcat ":radio_button{key="k2";label="" (slmsg "2级" "2" "2Grade") "";}")
  40.         (strcat ":radio_button{key="k3";label="" (slmsg "3级" "3" "3Grade") "";}")
  41.         (strcat ":radio_button{key="k4";label="" (slmsg "4级" "1" "4Grade") "";}")
  42.         "}}"
  43.         $boxed_column
  44.         (strcat "label="" (slmsg "标筋方式" "夹惮よΑ" "Marking method") "";")
  45.         $row
  46.         (strcat ":radio_button{key="ht1";label="" (slmsg "引线集中" "ま絬栋い" "Lead focus") "";}")
  47.         (strcat ":radio_button{key="ht2";label="" (slmsg "分边引线" "だ娩ま絬" "Lead by Side") "";}")
  48.         "}"
  49.         (strcat ":text{label="" (slmsg "对应两种画法 QQ:15290049" "癸莱ㄢ贺礶猭 QQ:15290049" "Corresponding to two painting techniques QQ: 15290049") "";}")
  50.         "}}}"
  51.         $boxed_row
  52.         (strcat ":edit_box{label="" (slmsg "比例" " ゑㄒ" "Scale") "";key="blstr";}")
  53.         (strcat ":button{label="" (slmsg "换比" "传ゑ" "Chang-Scale") "";key="chbl";}")
  54.         $okbt $canbt
  55.         "}}"
  56.       )
  57.     )
  58.     (dcl2lisp lst_str)
  59.   )
  60.   ;;钢筋级别-------
  61.   (defun dojb ()
  62.     (cond
  63.       ((= jb 1)
  64.         (set_tile "k1" "1")
  65.         (set_tile "k2" "0")
  66.         (set_tile "k3" "0")
  67.         (set_tile "k4" "0")
  68.         (setq $stj "%%130")
  69.       )
  70.       ((= jb 2)
  71.         (set_tile "k1" "0")
  72.         (set_tile "k2" "1")
  73.         (set_tile "k3" "0")
  74.         (set_tile "k4" "0")
  75.         (setq $stj "%%131")
  76.       )
  77.       ((= jb 3)
  78.         (set_tile "k1" "0")
  79.         (set_tile "k2" "0")
  80.         (set_tile "k3" "1")
  81.         (set_tile "k4" "0")
  82.         (setq $stj "%%132")
  83.       )
  84.       ((= jb 4)
  85.         (set_tile "k1" "0")
  86.         (set_tile "k2" "0")
  87.         (set_tile "k3" "0")
  88.         (set_tile "k4" "1")
  89.         (setq $stj "%%133")
  90.       )
  91.     )
  92.   )
  93.   ;;标筋方式-----------
  94.   (defun doht ()
  95.     (cond
  96.       ((= ht "1")
  97.         (set_tile "ht1" "1")
  98.         (set_tile "ht2" "0")
  99.       )
  100.       ((= ht "0")
  101.         (set_tile "ht1" "0")
  102.         (set_tile "ht2" "1")
  103.       )
  104.     )
  105.   )
  106.   ;;主程序-------------
  107.   (gc)
  108.   (if (not b) (setq b "400"))
  109.   (if (not h) (setq h "400"))
  110.   (if (not jb) (setq jb 3))
  111.   (if (not b1) (setq b1 "3"))
  112.   (if (not b2) (setq b2 "3"))
  113.   (if (not h1) (setq h1 "3"))
  114.   (if (not h2) (setq h2 "3"))
  115.   (if (not ht) (setq ht "1"))
  116.   (setq dlg 1)
  117.   (while (< dlg 4)
  118.     (setq kk (strcat "1:" (rtos (cadr (getslbl)) 2 0)))
  119.     (setq dcl_id (load_dialog (sl_zxt))) ;加载对话框
  120.     (new_dialog "zxt" dcl_id)
  121.     (sl-lib-imagefill "img1-1" "system(zxt)" 0)
  122.     (dojb) ;级别
  123.     (doht) ;标筋的方式
  124.     (set_tile "blstr" kk)
  125.     (set_tile "tile3" b)
  126.     (set_tile "tile4" h)
  127.     (set_tile "b1" b1)
  128.     (set_tile "b2" b2)
  129.     (set_tile "h1" h1)
  130.     (set_tile "h2" h2)
  131.     (action_tile "tile3" "(setq b $value)")
  132.     (action_tile "tile4" "(setq h $value)")
  133.     (action_tile "b1" "(setq b1 $value)")
  134.     (action_tile "b2" "(setq b2 $value)")
  135.     (action_tile "h1" "(setq h1 $value)")
  136.     (action_tile "h2" "(setq h2 $value)")
  137.     (action_tile "k1" "(setq jb 1)(dojb)")
  138.     (action_tile "k2" "(setq jb 2)(dojb)")
  139.     (action_tile "k3" "(setq jb 3)(dojb)")
  140.     (action_tile "k4" "(setq jb 4)(dojb)")
  141.     (action_tile "ht1" "(setq ht "1")(doht)")
  142.     (action_tile "ht2" "(setq ht "0")(doht)")
  143.     (action_tile "chbl" "(done_dialog 3)")
  144.     (action_tile "accept" "(done_dialog 4)")
  145.     (action_tile "cancel" "(done_dialog 5)")  ;;退出
  146.     (setq dlg (start_dialog))
  147.     (slunloaddcl dcl_id)
  148.     (cond
  149.       ((= dlg 3)
  150.         (htbl)
  151.       )
  152.       ((= dlg 4)
  153.         (setq lis (list b h b1 b2 h1 h2 $stj ht))
  154.       )
  155.       ((= dlg 5)
  156.         (setq lis nil)
  157.       )
  158.     )
  159.   )
  160.   lis ;(b宽 h高 b1下筋数量 b2上筋数量 h1左筋数量 h2右筋数量 $stj钢筋级别 ht标筋方式)
  161. )
  162. ;;画柱详图------------
  163. (defun c:sl-zxt (/ lis len0 len1 p1 p2 p3 p4 elis plisx pliss plisz plisy div $txt1 $txt2 str s1 s2 s3 s4 s5 s6 p0 p01 p02 p03 p04 p05)
  164.   (defun zxt:qgj (/ lis s) ;箍筋
  165.     (setq lis
  166.       (list
  167.         (strcat $stj "6@100") (strcat $stj "6@120") (strcat $stj "6@150") (strcat $stj "6@200") (strcat $stj "6@250") (strcat $stj "6@300")
  168.         (strcat $stj "6@500") (strcat $stj "8@100") (strcat $stj "8@120") (strcat $stj "8@150") (strcat $stj "8@200") (strcat $stj "8@250")
  169.         (strcat $stj "8@300") (strcat $stj "10@100") (strcat $stj "10@120") (strcat $stj "10@150") (strcat $stj "10@200") (strcat $stj "10@250")
  170.       )
  171.       s (cadr (sl:yjcaidan p3 len0 len1 lis nil (slmsg "箍筋" "羇惮" "longitudinal reinforcement")))
  172.     )
  173.     s
  174.   )
  175.   ;;纵筋 div根数(字符串)  str表头
  176.   (defun zxt:zj (div str / lis s)
  177.     (setq
  178.       lis (list (strcat div $stj "4") (strcat div $stj "6") (strcat div $stj "8") (strcat div $stj "10") (strcat div $stj "12") (strcat div $stj "14")
  179.             (strcat div $stj "16") (strcat div $stj "18") (strcat div $stj "20") (strcat div $stj "22") (strcat div $stj "25") (strcat div $stj "28")
  180.           )
  181.       s (cadr (sl:yjcaidan p3 len0 len1 lis nil str))
  182.     )
  183.     s
  184.   )
  185.   ;;-----------
  186.   (if (setq lis (xt-colums))
  187.     (progn
  188.       (setq len0 (p2uu 88) len1 (* 0.26 5 len0) str (slmsg "纵筋" "羇惮" "longitudinal reinforcement"))
  189.       (setq p1 (getpoint (slmsg "\n 指定插入点:" "\n ﹚础翴:" "\n Give insertion point:")))
  190.       (setq p2 (polar p1 0 (/ (atof (car lis)) (getvar "DIMLFAC")))
  191.         p3 (polar p2 pi2 (/ (atof (cadr lis)) (getvar "DIMLFAC")))
  192.         p4 (polar p1 pi2 (/ (atof (cadr lis)) (getvar "DIMLFAC")))
  193.       )
  194.       (makelwpolyline (list p1 p2 p3 p4) 0 t)
  195.       (dd-xt-dim p1 p2 (polar p1 3pi2 slbl) (polar p1 3pi2 (* 11.0 slbl)))
  196.       (dd-xt-dim p1 p4 (polar p1 pi slbl) (polar p1 pi (* 10.0 slbl)))
  197.       (setq elis (slgujk p1 p3)) ;返回4个交点的钢筋点实体名 (nam1左下 nam2右下 nam3右上 nam4左上)
  198.       (setq plisx (sl:djbz (car elis) (car elis) (cadr elis) (atoi (caddr lis)))) ;下部钢筋点中点表
  199.       (setq pliss (sl:djbz (caddr elis) (caddr elis) (cadddr elis) (atoi (cadddr lis)))) ;上部钢筋点中点表
  200.       (setq plisz (sl:djbz (car elis) (car elis) (cadddr elis) (atoi (nth 4 lis)))) ;左边钢筋点中点表
  201.       (setq plisy (sl:djbz (cadr elis) (cadr elis) (caddr elis) (atoi (nth 5 lis)))) ;右边钢筋点中点表
  202.       (setq $stj (nth 6 lis))
  203.       (if (= (last lis) "1") ;集中标注
  204.         (progn
  205.           (setq
  206.             div (rtos (- (length (append plisx pliss plisz plisy)) 4) 2 0)
  207.             $txt1 (zxt:zj div str)
  208.             $txt2 (zxt:qgj) ;箍筋
  209.             $txthi (rtos (* 3.0 slbl) 2 0)
  210.           )
  211.           (syx-text (sl:mid (sl:mid p1 p3) p3) $txt1 $txt2 $txthi)
  212.         )
  213.         (progn ;分边引线
  214.           (setq
  215.             s1 (zxt:zj "4" str);纵筋
  216.             s2 (zxt:qgj) ;箍筋
  217.             s3 (zxt:zj (rtos (- (length plisx) 2)) (strcat "Below" str))
  218.             s4 (zxt:zj (rtos (- (length plisz) 2)) (strcat "Left" str))
  219.           )
  220.           (if (/= (length plisx) (length pliss))
  221.             (setq s5 (zxt:zj (rtos (- (length pliss) 2)) (strcat "Upper" str)))
  222.           )
  223.           (if (/= (length plisz) (length plisy))
  224.             (setq s6 (zxt:zj (rtos (- (length plisy) 2)) (strcat "Right" str)))
  225.           )
  226.           (setq p0 (sl:mid (sl:mid p4 p3) p3))
  227.           (setq p01 (polar (polar p0 0 slbl) pi2 (* 5.0 slbl)))
  228.           (entmake (list '(0 . "TEXT") (cons 1 s2) (cons 10 p01) (cons 7 $hz) (cons 50 0) (cons 40 (* 3.0 slbl)) (cons 41 0.7)))
  229.           (setq p02 (polar p01 pi2 (* 3.5 slbl)))
  230.           (entmake (list '(0 . "TEXT") (cons 1 s1) (cons 10 p02) (cons 7 $hz) (cons 50 0) (cons 40 (* 3.0 slbl)) (cons 41 0.7)))
  231.           (setq p03 (polar p02 pi2 (* 3.5 slbl)))
  232.           (entmake (list '(0 . "TEXT") (cons 1 (strcat (car lis) "X" (cadr lis))) (cons 10 p03) (cons 7 $hz) (cons 50 0) (cons 40 (* 3.0 slbl)) (cons 41 0.7)))
  233.           (slch:line p0 (polar p0 pi2 (* 16.0 slbl)) nil 3 nil)
  234.           (setq p04 (polar (sl:mid p1 p2) 3pi2 (* 3.5 slbl)))
  235.           (slmkwz s3 p04 (* 3.0 slbl) 0 0.7 "PUB_TEXT" $hz nil "m")
  236.           (setq p05 (polar (sl:mid p1 p4) pi (* 3.5 slbl)))
  237.           (slmkwz s4 p05 (* 3.0 slbl) pi2 0.7 "PUB_TEXT" $hz nil "m")
  238.           (if (and s5 (/= s5 s3)) (slmkwz s5 (polar (sl:mid p3 p4) pi2 (* 3.5 slbl)) (* 3.0 slbl) 0 0.7 "PUB_TEXT" $hz nil "m"))
  239.           (if (and s6 (/= s6 s4)) (slmkwz s6 (polar (sl:mid p3 p2) 0 (* 3.5 slbl)) (* 3.0 slbl) pi2 0.7 "PUB_TEXT" $hz nil "m"))
  240.         )
  241.       )
  242.     )
  243.   )
  244.   (princ)
  245. )
  246. ;;两点拉筋函数-----(一级)------
  247. (defun sl:dd-lj (pa pb / d ang p1 p2 p3 p4 p5 p6)
  248.   (setq d (* 0.45 slbl) ang (angle pa pb)
  249.     pa (polar pa ang (* 0.2 d))
  250.     pb (polar pb (angle pb pa) (* 0.2 d))
  251.     p1 (polar pa (- ang 0.436332) (* 4. d))
  252.     p2 (polar pa (+ ang 3pi2) (* 1.7 d))
  253.     p3 (polar pa (+ ang pi2) (* 1.7 d))
  254.     p4 (polar pb (+ ang pi2) (* 1.7 d))
  255.     p5 (polar pb (+ ang 3pi2) (* 1.7 d))
  256.     p6 (polar pb (- ang 2.70526) (* 4. d))
  257.   )
  258.   (entmake
  259.     (list
  260.       (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity")
  261.       (cons 8 (slmsg "钢筋" "葵惮" "steelbar"))
  262.       (cons 62 1) (cons 100 "AcDbPolyline")
  263.       (cons 90 6)
  264.       (cons 70 0)
  265.       (cons 10 p1) (cons 40 d) (cons 41 d)
  266.       (cons 10 p2) (cons 40 d) (cons 41 d) (cons 42 -0.97)
  267.       (cons 10 p3) (cons 40 d) (cons 41 d)
  268.       (cons 10 p4) (cons 40 d) (cons 41 d) (cons 42 -0.97)
  269.       (cons 10 p5) (cons 40 d) (cons 41 d)
  270.       (cons 10 p6) (cons 40 d) (cons 41 d)
  271.     )
  272.   )
  273. )
  274. ;;测试-------
  275. (defun c:tt ()
  276.   (setq p1 (getpoint (slmsg "\n 起点<退出>:" "\n 癬翴<癶>:" "\n Start point<Exit>:")))
  277.   (setq p2 (getpoint p1 (slmsg "\n 终点<退出>:" "\n 沧翴<癶>:" "\n End point<Exit>:")))
  278.   (sl:dd-lj p1 p2)
  279. )
  280. ;;取梁参数-----(一级)------
  281. ;;返回(list b h zj fj yj $stj lj)或nil
  282. ;;(b宽 h高 zj正筋 fj负筋 yj腰筋  $stj钢筋级别 lj拉筋是否画1 0)
  283. (defun xt-beam (/ dcl_id dlg lis)
  284.   (defun sl_lxt (/ lst_str)
  285.     (setq lst_str
  286.       (list
  287.         "lxt:dialog {"
  288.         (strcat "label=""
  289.           (slmsg
  290.             "三领设计 V3.0              梁详图 V3.0"
  291.             "烩砞璸 V3.0              辩冈瓜 V3.0"
  292.             "Sldesign V3.0           Beam detail drawing V3.0"
  293.           ) "";"
  294.         )
  295.         $row
  296.         $boxed_column
  297.         (strcat "label="" (slmsg "梁尺寸" "辩へ" "Beam size") "";")
  298.         ":image_button{aspect_ratio=1.0;key="img1-1";width=35;}"
  299.         $row
  300.         (strcat ":edit_box{label="" (slmsg "宽B" "糴B" "Width B") "";key="tile3";edit_width=16;}")
  301.         (strcat ":edit_box{label="" (slmsg "高H" "蔼H" "High H") "";key="tile4";edit_width=16;}")
  302.         "}}"
  303.         $boxed_column
  304.         (strcat "label="" (slmsg "配筋" "皌惮" "Steel reinforcement") "";")
  305.         (strcat ":edit_box{label="" (slmsg "下部正筋n1" "场タ惮n1" "Lower main reinforcement n1") "";key="zj";}")
  306.         (strcat ":edit_box{label="" (slmsg "上部负筋n2" "场璽惮n2" "Upper negative reinforcement n2") "";key="fj";}")
  307.         (strcat ":edit_box{label="" (slmsg "腰筋排数n3" "竬惮逼计n3" "Number of lumbar tendon rows n3") "";key="yj";}")
  308.         $boxed_column
  309.         (strcat "label="" (slmsg "钢筋级别" "葵惮" "Steel grade") "";")
  310.         $row
  311.         (strcat ":radio_button{key="k1";label="" (slmsg "1级" "1" "1Grade") "";}")
  312.         (strcat ":radio_button{key="k2";label="" (slmsg "2级" "2" "2Grade") "";}")
  313.         "}"
  314.         $row
  315.         (strcat ":radio_button{key="k3";label="" (slmsg "3级" "3" "3Grade") "";}")
  316.         (strcat ":radio_button{key="k4";label="" (slmsg "4级" "1" "4Grade") "";}")
  317.         "}}"
  318.         $boxed_row
  319.         (strcat "label="" (slmsg "拉筋" "┰惮" "Stretch bar") "";")
  320.         (strcat ":radio_button{key="lj0";label="" (slmsg "画" "礶" "Drawing") "";}")
  321.         (strcat ":radio_button{key="lj1";label="" (slmsg "不画" "ぃ礶" "Not drawing") "";}")
  322.         "}}}"
  323.         $boxed_row
  324.         (strcat ":edit_box{label="" (slmsg "比例" " ゑㄒ" "Scale") "";key="blstr";}")
  325.         (strcat ":button{label="" (slmsg "换比" "传ゑ" "Chang-Scale") "";key="chbl";}")
  326.         $okbt $canbt
  327.         "}}"
  328.       )
  329.     )
  330.     (dcl2lisp lst_str)
  331.   )
  332.   ;;钢筋级别-------
  333.   (defun dojb ()
  334.     (cond
  335.       ((= jb 1)
  336.         (set_tile "k1" "1")
  337.         (set_tile "k2" "0")
  338.         (set_tile "k3" "0")
  339.         (set_tile "k4" "0")
  340.         (setq $stj "%%130")
  341.       )
  342.       ((= jb 2)
  343.         (set_tile "k1" "0")
  344.         (set_tile "k2" "1")
  345.         (set_tile "k3" "0")
  346.         (set_tile "k4" "0")
  347.         (setq $stj "%%131")
  348.       )
  349.       ((= jb 3)
  350.         (set_tile "k1" "0")
  351.         (set_tile "k2" "0")
  352.         (set_tile "k3" "1")
  353.         (set_tile "k4" "0")
  354.         (setq $stj "%%132")
  355.       )
  356.       ((= jb 4)
  357.         (set_tile "k1" "0")
  358.         (set_tile "k2" "0")
  359.         (set_tile "k3" "0")
  360.         (set_tile "k4" "1")
  361.         (setq $stj "%%133")
  362.       )
  363.     )
  364.   )
  365.   ;;拉筋-------
  366.   (defun dolj ()
  367.     (cond
  368.       ((= lj "0")
  369.         (set_tile "lj0" "0")
  370.         (set_tile "lj1" "1")
  371.       )
  372.       ((= lj "1")
  373.         (set_tile "lj0" "1")
  374.         (set_tile "lj1" "0")
  375.       )
  376.     )
  377.   )
  378.   ;;主程序-------------
  379.   (gc)
  380.   (if (not b) (setq b "250"))
  381.   (if (not h) (setq h "400"))
  382.   (if (not jb) (setq jb 3))
  383.   (if (not zj) (setq zj "3"))
  384.   (if (not fj) (setq fj "3"))
  385.   (if (not yj) (setq yj "0"))
  386.   (if (not lj) (setq lj "0"))
  387.   (setq dlg 1)
  388.   (while (< dlg 4)
  389.     (setq kk (strcat "1:" (rtos (cadr (getslbl)) 2 0)))
  390.     (setq dcl_id (load_dialog (sl_lxt))) ;加载对话框
  391.     (new_dialog "lxt" dcl_id)
  392.     (sl-lib-imagefill "img1-1" "system(lxt)" 0)
  393.     (dojb) ;级别
  394.     (dolj) ;拉筋
  395.     (set_tile "blstr" kk)
  396.     (set_tile "tile3" b)
  397.     (set_tile "tile4" h)
  398.     (set_tile "zj" zj)
  399.     (set_tile "fj" fj)
  400.     (set_tile "yj" yj)
  401.     (action_tile "tile3" "(setq b $value)")
  402.     (action_tile "tile4" "(setq h $value)")
  403.     (action_tile "zj" "(setq zj $value)")
  404.     (action_tile "fj" "(setq fj $value)")
  405.     (action_tile "yj" "(setq yj $value)")
  406.     (action_tile "lj0" "(setq lj "1")(dolj)")
  407.     (action_tile "lj1" "(setq lj "0")(dolj)")
  408.     (action_tile "k1" "(setq jb 1)(dojb)")
  409.     (action_tile "k2" "(setq jb 2)(dojb)")
  410.     (action_tile "k3" "(setq jb 3)(dojb)")
  411.     (action_tile "k4" "(setq jb 4)(dojb)")
  412.     (action_tile "chbl" "(done_dialog 3)")
  413.     (action_tile "accept" "(done_dialog 4)")
  414.     (action_tile "cancel" "(done_dialog 5)")  ;;退出
  415.     (setq dlg (start_dialog))
  416.     (slunloaddcl dcl_id)
  417.     (cond
  418.       ((= dlg 3)
  419.         (htbl)
  420.       )
  421.       ((= dlg 4)
  422.         (setq lis (list b h zj fj yj $stj lj))
  423.       )
  424.       ((= dlg 5)
  425.         (setq lis nil)
  426.       )
  427.     )
  428.   )
  429.   lis ;(b宽 h高 zj正筋 fj负筋 yj腰筋 $stj钢筋级别 lj拉筋是否画1 0)
  430. )
  431. ;;画梁详图------------
  432. (defun c:sl-lxt (/ lis len0 len1 p0 p1 p2 p3 p4 elis plisx pliss plisz plisy div txt1 str i p01 p02 p03 p04)
  433.   (defun lxt:qgj (/ lis s) ;箍筋
  434.     (setq lis
  435.       (list
  436.         (strcat $stj "6@100") (strcat $stj "6@120") (strcat $stj "6@150") (strcat $stj "6@200") (strcat $stj "6@250") (strcat $stj "6@300")
  437.         (strcat $stj "6@500") (strcat $stj "8@100") (strcat $stj "8@120") (strcat $stj "8@150") (strcat $stj "8@200") (strcat $stj "8@250")
  438.         (strcat $stj "8@300") (strcat $stj "10@100") (strcat $stj "10@120") (strcat $stj "10@150") (strcat $stj "10@200") (strcat $stj "10@250")
  439.       )
  440.       s (cadr (sl:yjcaidan p3 len0 len1 lis nil (slmsg "箍筋" "羇惮" "longitudinal reinforcement")))
  441.     )
  442.     s
  443.   )
  444.   ;;纵筋 div根数(字符串)  str表头
  445.   (defun lxt:zj (div str / lis s)
  446.     (setq
  447.       lis (list (strcat div $stj "4") (strcat div $stj "6") (strcat div $stj "8") (strcat div $stj "10") (strcat div $stj "12") (strcat div $stj "14")
  448.             (strcat div $stj "16") (strcat div $stj "18") (strcat div $stj "20") (strcat div $stj "22") (strcat div $stj "25") (strcat div $stj "28")
  449.           )
  450.       s (cadr (sl:yjcaidan p3 len0 len1 lis nil str))
  451.     )
  452.     s
  453.   )
  454.   ;;-----------
  455.   (if (setq lis (xt-beam))
  456.     (progn
  457.       (setq len0 (p2uu 88) len1 (* 0.26 5 len0) $stj (nth 5 lis))
  458.       (setq p1 (getpoint (slmsg "\n 指定插入点:" "\n ﹚础翴:" "\n Give insertion point:")))
  459.       (setq p2 (polar p1 0 (/ (atof (car lis)) (getvar "DIMLFAC")))
  460.         p3 (polar p2 pi2 (/ (atof (cadr lis)) (getvar "DIMLFAC")))
  461.         p4 (polar p1 pi2 (/ (atof (cadr lis)) (getvar "DIMLFAC")))
  462.       )
  463.       (makelwpolyline (list p1 p2 p3 p4) 0 t)
  464.       (dd-xt-dim p1 p2 (polar p1 3pi2 slbl) (polar p1 3pi2 (* 11.0 slbl)))
  465.       (dd-xt-dim p1 p4 (polar p1 pi slbl) (polar p1 pi (* 14.0 slbl)))
  466.       (setq elis (slgujk p1 p3)) ;返回4个交点的钢筋点实体名 (nam1左下 nam2右下 nam3右上 nam4左上)
  467.       (setq plisx (sl:djbz (car elis) (car elis) (cadr elis) (atoi (caddr lis)))) ;下部钢筋点中点表   ;(b宽 h高 zj正筋 fj负筋 yj腰筋  $stj钢筋级别)
  468.       (setq pliss (sl:djbz (caddr elis) (caddr elis) (cadddr elis) (atoi (cadddr lis)))) ;上部钢筋点中点表
  469.       (if (> (setq div (atoi (nth 4 lis))) 0)
  470.         (progn
  471.           (setq plisz (sl:djbz (car elis) (car elis) (cadddr elis) (+ 2 div))) ;左边钢筋点中点表
  472.           (setq plisy (sl:djbz (cadr elis) (cadr elis) (caddr elis) (+ 2 div))) ;右边钢筋点中点表
  473.           (setq i 0)
  474.           (while (< i div)
  475.             (setq p01 (nth (setq i (1+ i)) plisz) p02 (nth i plisy))
  476.             (setq p03 (polar (sl:mid p01 p02) 3pi2 (* 3.0 slbl))
  477.               p04 (polar p03 0 (+ (* 10. slbl) (* 0.5 (distance p1 p2))))
  478.               p0 (polar (polar p04 pi (* 7. slbl)) pi2 slbl)
  479.             )
  480.             (makelwpolyline (list p01 p03 p04) 0 nil)
  481.             (makelwpolyline (list p02 p03) 0 nil)
  482.             (entmake (list '(0 . "TEXT") (cons 1 (strcat "2" $stj "12")) (cons 10 p0) (cons 7 $hz) (cons 50 0) (cons 40 (* 3.0 slbl)) (cons 41 0.7)))
  483.             (if (= (last lis) "1") ;如果画拉筋
  484.               (progn
  485.                 (sl:dd-lj p01 p02)
  486.                 (setq p03 (polar (sl:mid p01 p02) pi2 (* 3.0 slbl))
  487.                   p04 (polar p03 pi (+ (* 12. slbl) (* 0.5 (distance p1 p2))))
  488.                   p0 (polar p04 pi2 slbl)
  489.                 )
  490.                 (makelwpolyline (list (sl:mid p01 p02) p03 p04) 0 nil)
  491.                 (entmake (list '(0 . "TEXT") (cons 1 (strcat $stj "6@600")) (cons 10 p0) (cons 7 $hz) (cons 50 0) (cons 40 (* 3.0 slbl)) (cons 41 0.7)))
  492.               )
  493.             )
  494.           )
  495.         )
  496.       )
  497.       (setq txt1 (lxt:zj (rtos (length plisx) 2 0) (slmsg "下部正筋" "场タ惮" "Lower main reinforcement")))
  498.       (sl:dd-pliang plisx txt1 nil 0 (* slbl 3.0))
  499.       (setq txt1 (lxt:zj (rtos (length pliss) 2 0) (slmsg "上部负筋" "场璽惮" "Upper negative reinforcement")))
  500.       (sl:dd-pliang pliss txt1 nil 0 (* slbl 3.0))
  501.       (setq
  502.         $txt1 (lxt:qgj) ;箍筋
  503.         $txthi (rtos (* 3.0 slbl) 2 0)
  504.       )
  505.       (dyx-text (polar p3 3pi2 (* 0.2 (distance p2 p3))) $txt1 $txthi);画箍筋
  506.     )
  507.   )
  508.   (princ)
  509. )


三领设计(SLdesign)V3.0 链接

链接:https://pan.baidu.com/s/1lewtUXCFvhC9eGzIkxBsbQ
提取码:e9i9



本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 收起 理由
tranque + 1 很给力!
cghdy + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-10-25 09:14:34 | 显示全部楼层
,厉害厉害,建议画钢筋,拉筋,箍筋单独成命令,标注根数,标注尺寸也单独成命令。自由度交给用户,因为不是所有用户都是房建专业的。

点评

函数部分业已准备完毕的,单独成命令是很好的,比如,2点拉筋函数,举手之劳。这也是为什么代码如此多的函数的原因。  发表于 2024-10-25 09:54
发表于 2024-10-25 10:16:06 | 显示全部楼层
确实很多软件有完善的各种功能,但是和自己开发的又不一样。我也要慢慢学习这些。
发表于 2024-10-31 17:41:00 | 显示全部楼层
本帖最后由 vip-happy 于 2024-10-31 17:45 编辑

slmsg 这个变量或是函数,CAD2014+天正2014没运行成功
发表于 2024-10-25 08:00:50 | 显示全部楼层
谢谢分享谢谢分享谢谢分享
发表于 2024-10-25 08:32:15 | 显示全部楼层
很好→很棒!很好~很棒!!很好……很棒!!!
发表于 2024-10-25 09:26:55 | 显示全部楼层
给大神点赞
发表于 2024-10-26 10:04:29 | 显示全部楼层
确实很多软件有完善的各种功能
发表于 2024-10-26 20:04:59 | 显示全部楼层
大神说的对,让辅助的工具当做大型的软件还是无语的
发表于 2024-10-28 08:33:34 | 显示全部楼层
大神说的对,让辅助的工具当做大型的软件还是无语的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 20:07 , Processed in 0.238770 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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