乐筑天下

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

[编程交流] 帮助,获取值属性Blo

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:09:36 | 显示全部楼层
试试看,通过选择所有维度和属性块让我知道。
 
  1. (defun c:Test (/ ss i sn vl p lst bks s d at l a f o)
  2. ;;    Author : Tharwat Al Shoufi    ;;
  3. ;;    Date :    08. Feb. 2014        ;;
  4. (princ
  5.    "\n Select Dimensions with Attributed Block < Buble > "
  6. )
  7. (if (setq ss (ssget '((-4 . "<OR")
  8.                        (0 . "DIMENSION")
  9.                        (-4 . "<AND")
  10.                        (0 . "INSERT")
  11.                        (2 . "Buble")
  12.                        (-4 . "AND>")
  13.                        (-4 . "OR>")
  14.                       )
  15.               )
  16.      )
  17.    (repeat (setq i (sslength ss))
  18.      (setq sn (ssname ss (setq i (1- i)))
  19.            vl (vlax-ename->vla-object sn)
  20.      )
  21.      (if (eq (cdr (assoc 0 (entget sn))) "DIMENSION")
  22.        (progn
  23.          (if (/= (vla-get-Arrowhead1Block vl)
  24.                  "None"
  25.              )
  26.            (setq p (cdr (assoc 13 (entget sn))))
  27.            (setq p (cdr (assoc 14 (entget sn))))
  28.          )
  29.          (setq
  30.            lst
  31.             (cons (list p
  32.                         (rtos (cdr (assoc 42 (entget sn))) 2 0)
  33.                   )
  34.                   lst
  35.             )
  36.          )
  37.        )
  38.        (setq bks (cons (list (cdr (assoc 10 (entget sn))) vl) bks))
  39.      )
  40.    )
  41. )
  42. (foreach x lst
  43.    (if (and (car x) (car bks))
  44.      (progn
  45.        (setq d  (distance (car x) (caar bks))
  46.              at (cadr (car bks))
  47.        )
  48.        (foreach e bks
  49.          (if (< (setq a (distance (car x) (car e))) d)
  50.            (setq d  a
  51.                  at (cadr e)
  52.            )
  53.          )
  54.        )
  55.      )
  56.    )
  57.    (if bks
  58.      (setq l
  59.             (cons
  60.               (append
  61.                 (mapcar '(lambda (u)
  62.                            (list (vla-get-tagstring u) (vla-get-textstring u))
  63.                          )
  64.                         (vlax-invoke at 'getattributes)
  65.                 )
  66.                 (list
  67.                   (cadr x)
  68.                 )
  69.               )
  70.               l
  71.             )
  72.      )
  73.    )
  74.    (setq lst (cdr lst))
  75. )
  76. (if l
  77.    (progn
  78.      (setq l (vl-sort l
  79.                       '(lambda (j k)
  80.                          (< (atof (cadr (car j)))
  81.                             (atof (cadr (car k)))
  82.                          )
  83.                        )
  84.              )
  85.      )
  86.      (if (and (setq f
  87.                      (strcat
  88.                        (getvar 'DWGPREFIX)
  89.                        (vl-filename-base (getvar 'DWGNAME))
  90.                        ".csv"
  91.                      )
  92.               )
  93.               (setq o (open f "w"))
  94.          )
  95.        (progn
  96.          (setq s
  97.                 (cond ((vl-registry-read
  98.                          "HKEY_CURRENT_USER\\Control Panel\\International"
  99.                          "sList"
  100.                        )
  101.                       )
  102.                       (",")
  103.                 )
  104.          )
  105.          (write-line
  106.            (strcat "NUMBER"        s       "DIMENSION"     s
  107.                    "HEIGHT"        s       "H1"    s       "H2"
  108.                    s       "H4"    s       "3F"
  109.                   )
  110.            o
  111.          )
  112.          (foreach u l
  113.            (write-line
  114.              (strcat
  115.                (nth 1 (nth 0 u))
  116.                s
  117.                (nth 6 u)
  118.                s
  119.                (nth 1 (nth 1 u))
  120.                s
  121.                (nth 1 (nth 2 u))
  122.                s
  123.                (nth 1 (nth 3 u))
  124.                s
  125.                (nth 1 (nth 4 u))
  126.                s
  127.                (nth 1 (nth 5 u))
  128.              )
  129.              o
  130.            )
  131.          )
  132.          (close o)
  133.          (princ (strcat "\n File path : < " f " > "))
  134.        )
  135.        (alert "Unable to open or create CSV file for writing !!")
  136.      )
  137.    )
  138. )
  139. (princ)
  140. )
  141. (vl-load-com)
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 00:14:10 | 显示全部楼层
 
非常感谢塔瓦。
我有一些意见
-文件输出(*.csv)仍然分组到一列中,而不拆分其他列(B、C、D…)。
-在(D(H1)| E(H2)| F(H4)| G(3F))列中,该列中的值为数字(1,2,3….)不要(H1、H2、H3、3F…)。列的值取在H1、H2、H4、3F的数量之前(例如:H1=1H1-->获取值1;2H1-->获取值2;H4=1H4-->获取值1;3-3F-->获取值3;3F-->获取值1;…)
请帮我编辑你的Lisp程序。
非常感谢你。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:18:36 | 显示全部楼层
虽然第一个代码在我的系统中工作,但请尝试上面修改的代码,并让我知道。
 
以上更新的代码
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 00:20:24 | 显示全部楼层
 
非常感谢塔瓦。
我有一些意见:
1文件输出结果拆分到其他列。但是,列中的值Ạ 如果值为2.10=2.1,16.10-->16.1,125.10-->125.1,则缺少数字0。摘要逗号后缺少数字0。
2-列(D(H1)| E(H2)| F(H4)| G(3F))中的值是数字(1,2,3….)不获取值(H1、H2、H3、3F…)。列的值取在H1、H2、H4、3F的数量之前(例如:H1=1H1-->获取值1;2H1-->获取值2;H4=获取值1;3-3F-->获取值3;3F-->获取值1;…)
零件编号:
情况2(例如:单元格A1(Excel中)=H1)相同的函数:如果(A1=“H1”,1,在Excel中为左(A1,1)。我不知道AutoLISP的性能如何。
求求你,塔瓦帮帮我!
非常感谢塔瓦。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:25:02 | 显示全部楼层
这里一切都很顺利,你可能需要在另一台机器上试用,或者我们可能会等待这里的任何用户试用并通知我们。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:28:32 | 显示全部楼层
希望有人会尝试的代码,让我们知道结果的excel文件(如果值在一个或单独的列)。
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 00:30:13 | 显示全部楼层
塔瓦特局长。
我想他们不明白我的意见。
请查看图片以区别2结果。
 
003610lqelnnuxklu5xno5.jpg
 
请帮帮我。非常感谢塔瓦。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:34:36 | 显示全部楼层
 
我会考虑这个短语,因为英语不是你的母语,所以我会忽略它。
 
回到主题,
 
按Excel中的第一个单元格选择整个列A,然后右键单击->常规->数字,然后根据需要增加小数。
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 00:36:58 | 显示全部楼层
 
对我是越南人。我知道语言是我们的障碍。
请帮助我,案例2是获取列H1、H2、H4、3-3F中的值。非常感谢你!
所以请大家查看图片。
非常感谢你。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

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

© 2020-2025 乐筑天下

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