乐筑天下

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

[编程交流] 在单元格表中插入块

[复制链接]

57

主题

183

帖子

126

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
285
发表于 2022-7-5 23:49:56 | 显示全部楼层 |阅读模式
我在网上找到了一张样品表,这是我最想得到的帮助
在单元格中插入块
 
在下面的示例中,更精确地在单元格中插入一个块。
 
 
  1. ; load (vl-load-com) first
  2. (vl-load-com)
  3. (defun C:POLYTABLE ( / *MS* A CNT I LST MYTABLE PT1 ROW SSET TLST)
  4. ; create an empty list, set a counter variable, and
  5. ; set a reference to the current model space.
  6. (setq lst '()
  7. i 0
  8. *ms* (vla-get-modelspace
  9.             (vla-get-activedocument
  10.             (vlax-get-acad-object)))
  11. )
  12. ; prompt the user to select closed polylines
  13. (princ "\n Select closed polylines ")
  14. (if (setq sset (ssget '((0 . "POLYLINE,LWPOLYLINE")(-4 . "&")(70 . 1))))
  15.    ; if a valid selection set was generated, then proceed.
  16.    (progn
  17.    
  18.      ; for each closed polyline selected, grab the ObjectID and Area
  19.      ; and store these values in a list.
  20.      (repeat (setq cnt (sslength sset))
  21.        (setq a (vlax-ename->vla-object (ssname sset i)))
  22.        (setq tlst (list (vla-get-Area a) (vla-get-ObjectID a)))
  23.        (setq lst (cons tlst lst))
  24.        (setq i (1+ i))
  25.      )
  26.      ; pick a point for the table
  27.      (setq pt1 (getpoint "\nPick point for table "))
  28.      ; add the new table
  29.      (setq myTable (vla-AddTable
  30.                    *ms*
  31.                    (vlax-3d-point pt1)
  32.                    (+ 3 cnt)
  33.                    2
  34.                    0.7
  35.                    2.5))
  36.      ; the next three lines set the header text
  37.      (vla-setText mytable 0 0 "Polyline Table")
  38.      (vla-setText mytable 1 0 "Area")
  39.      (vla-setText mytable 1 1 "Object ID")
  40.      (setq row 2)
  41.      
  42.      ; loop through the list of polyline properties
  43.      ; adding a line to the table that contains the
  44.      ; area and the ObjectID
  45.      (foreach item lst
  46.        (vla-setText mytable
  47.                     row
  48.                     0
  49.                     (strcat "%%).Area [url="file://\\f"]\\f[/url] "%lu2">%"))
  50.        (vla-setText mytable row 1 (last item))
  51.        (setq row (1+ row))
  52.      )      
  53.      ; On the last row, total up the area
  54.      (vla-setText mytable
  55.                   row
  56.                   0
  57.                   (strcat "Total=\\P"
  58.                   "%%"))
  59.      ; release "myTable" and *ms*
  60.      (vlax-release-object myTable)      
  61.      (vlax-release-object *ms*)      
  62.    ); end progn
  63.   ; if no closed polylines were selected,
  64.   ; end the program with this message
  65.    (princ "\nNo closed polylines selected. ")
  66. ); end if
  67. (princ)
  68. ); end defun
回复

使用道具 举报

57

主题

183

帖子

126

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
285
发表于 2022-7-6 00:20:00 | 显示全部楼层
下面这行是在单元格中插入文本,
需要知道如何在单元格中插入块。
 
块已插入DWG文件中,那么我相信它只会
与输入的单元格块关联。
 
谁能给我一个主意吗?
 
 
 
 
 
  1. (vla-setText mytable 1 1 "Object ID")
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 01:02:07 | 显示全部楼层
你可以遵循我在这个程序中使用的相同方法。
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:15 , Processed in 0.531159 second(s), 58 queries .

© 2020-2025 乐筑天下

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