乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 5|回复: 2

[编程交流] 钢筋去鳞

[复制链接]

25

主题

106

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
121
发表于 2022-7-5 18:29:14 | 显示全部楼层 |阅读模式
我有一个带有属性的动态块,它表示:钢筋数量、直径和钢筋长度的位置,
我必须详细说明弯曲钢筋,如果有人可以帮助我这一点;
在这里,我找到了一个法语ISP,也许它会有用:
  1. (vl-load-com)
  2. (defun c:mult-info_po2cell ( / js obj ename n AcDoc Space pr nb lst_id-seg lst_pt lst_length lst_alpha lst_rad id all_path j end_pos id_path fonts_path file_shx
  3.                               nw_obj nw_style dist_start dist_end pt_start pt_end seg_len seg_bulge rad alpha oldim oldlay h_t w_c ename_cell n_row n_column)
  4.    (princ "\nSelect polylines.")
  5.    (while (null (setq js (ssget '((0 . "LWPOLYLINE")))))
  6.        (princ "\nSelection empty, or is not a available polyline!")
  7.    )
  8.    (setq
  9.        AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
  10.        Space
  11.        (if (= 1 (getvar "CVPORT"))
  12.            (vla-get-PaperSpace AcDoc)
  13.            (vla-get-ModelSpace AcDoc)
  14.        )
  15.    )
  16.    (cond
  17.        ((null (tblsearch "LAYER" "Table-Polyline"))
  18.            (vla-add (vla-get-layers AcDoc) "Table-Polyline")
  19.        )
  20.    )
  21.    (cond
  22.        ((null (tblsearch "STYLE" "Text-Cell"))
  23.            (setq all_path (getenv "ACAD") j 0)
  24.            (while (setq end_pos (vl-string-position (ascii ";") all_path))
  25.                (setq id_path (substr all_path 1 end_pos))
  26.                (if (wcmatch (strcase id_path) "*FONTS*")
  27.                    (setq fonts_path (strcat id_path "\"))
  28.                )
  29.                (setq all_path (substr all_path (+ 2 end_pos)))
  30.            )
  31.            (setq file_shx (getfiled "Select a font file " fonts_path "shx" )
  32.            (if (not file_shx)
  33.                (setq file_shx "txt.shx")
  34.            )
  35.            (setq nw_style (vla-add (vla-get-textstyles AcDoc) "Text-Cell"))
  36.            (mapcar
  37.                '(lambda (pr val)
  38.                    (vlax-put nw_style pr val)
  39.                )
  40.                (list 'FontFile 'Height 'ObliqueAngle 'Width 'TextGenerationFlag)
  41.                (list file_shx 0.0 (/ (* 15.0 pi) 180) 1.0 0.0)
  42.            )
  43.            (command "_.ddunits"
  44.                (while (not (zerop (getvar "cmdactive")))
  45.                    (command pause)
  46.                )
  47.            )
  48.        )
  49.    )
  50.    (setq
  51.        oldim (getvar "dimzin")
  52.        oldlay (getvar "clayer")
  53.    )
  54.    (setvar "dimzin" 0) (setvar "clayer" "Table-Polyline")
  55.    (initget 9)
  56.    (setq ins_pt_cell (getpoint "\nLeft-Up insert point of table: "))
  57.    (initget 6)
  58.    (setq h_t (getdist ins_pt_cell (strcat "\nHigth text <" (rtos (getvar "textsize")) ">: ")))
  59.    (if (null h_t) (setq h_t (getvar "textsize")) (setvar "textsize" h_t))
  60.    (initget 7)
  61.    (setq w_c (getdist ins_pt_cell "\nWidth of cells: "))
  62.    (setq
  63.        lst_id-seg '()
  64.        lst_pt '()
  65.        lst_length '()
  66.        lst_alpha '()
  67.        lst_rad '()
  68.        nb 0
  69.        id 0
  70.    )
  71.    (repeat (setq n (sslength js))
  72.        (setq
  73.            obj (ssname js (setq n (1- n)))
  74.            ename (vlax-ename->vla-object obj)
  75.            pr -1
  76.            id (1+ id)
  77.        )
  78.        (repeat (fix (vlax-curve-getEndParam ename))
  79.            (setq
  80.                dist_start (vlax-curve-GetDistAtParam ename (setq pr (1+ pr)))
  81.                dist_end (vlax-curve-GetDistAtParam ename (1+ pr))
  82.                pt_start (vlax-curve-GetPointAtParam ename pr)
  83.                pt_end (vlax-curve-GetPointAtParam ename (1+ pr))
  84.                seg_len (- dist_end dist_start)
  85.                seg_bulge (vla-GetBulge ename pr)
  86.                rad (if (zerop seg_bulge) 0.0 (/ seg_len (* 4.0 (atan seg_bulge))))
  87.                alpha (if (zerop seg_bulge) (angle pt_start pt_end) 0.0)
  88.                lst_id-seg (cons (strcat "P" (itoa id) "-" (itoa nb)) lst_id-seg)
  89.                lst_pt (cons pt_start lst_pt)
  90.                lst_length (cons seg_len lst_length)
  91.                lst_rad (cons (abs rad) lst_rad)
  92.                lst_alpha (cons alpha lst_alpha)
  93.                nb (1+ nb)
  94.            )
  95.        )
  96.        (if (eq (vla-get-closed ename) :vlax-false)
  97.            (setq lst_id-seg (cons (strcat "P" (itoa id) "-" (itoa nb)) lst_id-seg))
  98.            (setq lst_id-seg (cons (strcat "P" (itoa id) "-" (itoa (- nb (fix (vlax-curve-getEndParam ename))))) lst_id-seg))
  99.        )
  100.        (setq
  101.            lst_pt (cons pt_end lst_pt)
  102.            lst_length (cons 0.0 lst_length) lst_rad (cons 0.0 lst_rad) lst_alpha (cons 0.0 lst_alpha)
  103.            nb (1+ nb)
  104.        )
  105.    )
  106.    (mapcar
  107.        '(lambda (p tx)
  108.            (setq nw_obj
  109.                (vla-addMtext Space
  110.                    (vlax-3d-point p)
  111.                    0.0
  112.                    tx
  113.                )
  114.            )
  115.            (mapcar
  116.                '(lambda (pr val)
  117.                    (vlax-put nw_obj pr val)
  118.                )
  119.                (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation)
  120.                (list 5 h_t 5 p "Text-Cell" "Table-Polyline" 0.0)
  121.            )
  122.        )
  123.        lst_pt
  124.        lst_id-seg
  125.    )
  126.    (vla-addTable Space (vlax-3d-point ins_pt_cell) (+ 2 nb) 6 (+ h_t (* h_t 0.25)) w_c)
  127.    (setq ename_cell (vlax-ename->vla-object (entlast)) n_row (1+ nb) n_column -1)
  128.    (vla-SetCellValue ename_cell 0 0
  129.        (vlax-make-variant
  130.            (strcat "Summary of " (itoa (sslength js)) " LWPOLYLINES")
  131.            8
  132.        )
  133.    )
  134.    (vla-SetCellTextStyle ename_cell 0 0 "Text-Cell")
  135.    (vla-SetCellTextHeight ename_cell 0 0 (vlax-make-variant h_t 5))
  136.    (vla-SetCellAlignment ename_cell 0 0 5)
  137.    (foreach n
  138.        (mapcar'list
  139.            (append lst_id-seg '("N°"))
  140.            (append (mapcar 'rtos (mapcar 'car lst_pt)) '("Coordinates X"))
  141.            (append (mapcar 'rtos (mapcar 'cadr lst_pt)) '("Coordinates Y"))
  142.            (append (mapcar 'rtos lst_length) '("Lengths"))
  143.            (append (mapcar 'angtos lst_alpha) '("Directions"))
  144.            (append (mapcar 'rtos lst_rad) '("Radius"))
  145.        )
  146.        (mapcar
  147.            '(lambda (el)
  148.                (vla-SetCellValue ename_cell n_row (setq n_column (1+ n_column))
  149.                    (if (or (eq (rtos 0.0) el) (eq (angtos 0.0) el)) (vlax-make-variant "_"  (vlax-make-variant el )
  150.                )
  151.                (vla-SetCellTextStyle ename_cell n_row n_column "Text-Cell")
  152.                (vla-SetCellTextHeight ename_cell n_row n_column (vlax-make-variant h_t 5))
  153.                (if (eq n_row 1)
  154.                    (vla-SetCellAlignment ename_cell n_row n_column 5)
  155.                    (vla-SetCellAlignment ename_cell n_row n_column 6)
  156.                )
  157.            )
  158.            n
  159.        )
  160.        (setq n_row (1- n_row) n_column -1)
  161.    )
  162.    (setvar "dimzin" oldim) (setvar "clayer" oldlay)
  163.    (prin1)
  164. )

 
提前感谢!!!
希望能帮上忙!!!
钢筋详图更新。图纸
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 19:17:35 | 显示全部楼层
你有想要什么的例子吗?
回复

使用道具 举报

25

主题

106

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
121
发表于 2022-7-5 19:56:03 | 显示全部楼层
最终结果是在绿色矩形中,在我绘制的图形中
红色多段线表示钢筋,我想转到表中的每条多段线的对齐尺寸,但如果可行,则表中的数字from dimension应除以10(例如94=90;95=100;96=100),就像我手动键入它们一样,也应该在表中加入每个具有属性的块的属性标记,,,,,,(也像我在绿色矩形中制作的一样)
P、 S.表格可以没有第二列(Schita=表格中没有插入块)
也忘了提到R=半径
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 19:38 , Processed in 0.367386 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表