乐筑天下

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

[编程交流] 插入多个块

[复制链接]

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:11:43 | 显示全部楼层
 
亲爱的bhull1985,请原谅我没有看到你的评论。
本质上这就是想法。
非常感谢您对这个主题的兴趣,很抱歉之前没有回答。
如果你有任何建议或想法要补充,请随意。
 
你好,路易斯·奥古斯托。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:17:06 | 显示全部楼层
 
没关系的
 
我刚刚完成了例行工作,希望它能像你所期待的那样好用。
 
试试看,让我知道。
 
  1. (defun c:Test (/ *error* Deconstruct_String right left con1 con2 xl ok o st l lst a b c d f fp bn p go vl name ch)
  2. ;;                    ;;
  3. ;;    Author : Tharwat Al Shoufi    ;;
  4. ;;                    ;;
  5. (or doc (setq doc (vla-get-activedocument (vlax-get-acad-object))))
  6. (defun *error* (u)
  7.    (if ch
  8.      (setvar 'CMDECHO ch)
  9.    )
  10.    (princ "\n*Cancel*")
  11. )
  12. (defun Deconstruct_String (st delimiter / p l)
  13.    (while (setq p (vl-string-search delimiter st 0))
  14.      (setq l  (cons (substr st 1 p) l)
  15.            st (substr st (+ p 2) (strlen st))
  16.      )
  17.    )
  18.    (if st
  19.      (setq l (cons st l))
  20.    )
  21.    (setq l (reverse l))
  22. )
  23. (if (setq xl (getfiled "Select the required Excel file :" (getvar 'DWGPREFIX) "csv" 16))
  24.    (progn (setq ok t
  25.                 ch (getvar 'CMDECHO)
  26.                 o  (open xl "r")
  27.           )
  28.           (setvar 'CMDECHO 0)
  29.           (while (setq st (read-line o))
  30.             (setq l   (cons (setq st (Deconstruct_String st ",")) l)
  31.                   lst (cons (strcase (car st)) lst)
  32.             )
  33.           )
  34.           (close o)
  35.    )
  36.    (setq ok nil)
  37. )
  38. (if (and ok
  39.           (/= (setq bn (getstring t "\n Specify Attributed Block name to insert :")) "")
  40.           (if (member (setq bn (strcase bn)) lst)
  41.             t
  42.             (progn (alert "Block name is not included in the Excel file <!>") nil)
  43.           )
  44.           (if (not (tblsearch "BLOCK" bn))
  45.             (if (setq fp (findfile (strcat bn ".dwg")))
  46.               (progn (command "_.-insert" fp nil) t)
  47.               (progn (alert "Block Name is not found in Support Folder <!>") nil)
  48.             )
  49.             t
  50.           )
  51.      )
  52.    (progn (setvar 'CMDECHO ch)
  53.      (vla-StartUndoMark doc)
  54.           (while (setq p (getpoint "\n Specify insertion point :"))
  55.             (setq vl (vla-insertblock (vla-get-block (vla-get-activelayout doc)) (vlax-3d-point p) bn 1.0 1.0 1.0 0.))
  56.             (foreach x (vlax-invoke vl 'getattributes)
  57.               (foreach tg l
  58.                 (if (and (eq (car tg) (strcase bn)) (eq (strcase (vla-get-tagstring x)) (cadr tg)))
  59.                   (vla-put-textstring x (caddr tg))
  60.                 )
  61.               )
  62.             )
  63.           )
  64.      (vla-EndUndoMark doc)
  65.    )
  66. )
  67. (princ)
  68. )
  69. (vl-load-com)
回复

使用道具 举报

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:19:46 | 显示全部楼层
 
Tharwat,很抱歉延迟回复。
我的朋友做得很好。
这个节目很好,这确实是一个想法,但在我看来,有两件事会很有趣。
 
第一种方法是指向文件位置。资源管理器的Csv。
 
在我看来,第二个也是更重要的一个,不会将例程局限于某些连接器(名称)。
我认为插入块的列表应该基于读取文件的第一行。BHULL1985引用的Csv。这样,程序将变得动态。
 
感谢您的宝贵贡献。
我相信这个程序可以被很多人使用。
 
你好,路易斯·奥古斯托。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:23:34 | 显示全部楼层
嗨,路易斯。
 
很抱歉这么晚才回复,因为有几件急事,我无法及时回复您。
 
为了允许用户选择Excel文件,这很容易做到,但是块呢?
 
您计划在每个图形中插入多少块,然后向它们提供属性值/字符串?
回复

使用道具 举报

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:24:43 | 显示全部楼层
 
别担心塔尔瓦特。
 
块的路径将在之前通知。我将使用支持文件搜索路径,这种方式不需要由程序处理。
 
区块的数量可以从2到30不等,这取决于项目的规模。
 
我想象了如下。该程序将读取第一列并生成一个可分辨名称列表以供插入。对于每个列表项,然后输入值​​. 程序的这一部分已经运行良好。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:27:22 | 显示全部楼层
 
这是否意味着支持文件夹中有所有需要的块?并在Excel表中列为您在此之前上传的?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:32:09 | 显示全部楼层
第12号邮政编码更新
 
试试看,让我知道。
回复

使用道具 举报

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:35:41 | 显示全部楼层
Tharwat,节目越来越精彩了!
我能问你最后一个零钱吗?
程序能不能让我知道连接器的名称而不是手动输入?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:38:14 | 显示全部楼层
你这是什么意思?
回复

使用道具 举报

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:40:49 | 显示全部楼层
 
我确定你的名字了吗。
Tharwat,我写错了,对不起。
 
这里有一个建议。
 
提示:指定插入点:
然后具体。。。
下一个
 
提示:指定插入点:
然后具体。。。
下一个
 
直到它用尽可能。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:12 , Processed in 0.441035 second(s), 70 queries .

© 2020-2025 乐筑天下

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