乐筑天下

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

[编程交流] 属性提取问题

[复制链接]

10

主题

53

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 16:58:14 | 显示全部楼层
您好ymg3
 
我测试了你的Lisp程序,效果很好。唯一的问题是路线项目编号。由于某些原因,项目编号始终位于底部中心。你的代码的哪一部分负责这个?我已经修改了partnum部分并使其工作。
谢谢你的帮助
 
当做
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 17:02:21 | 显示全部楼层
您需要按照以下要求进行更改。
 
ymg公司
 
  1.            (vla-setcellalignment tblobj row 0 acmiddleright)   ; change this one
  2.            (vla-setcellalignment tblobj row 1 acmiddleleft)
  3.            (vla-setcellalignment tblobj row 2 acmiddleleft)
  4.            (vla-setcellalignment tblobj row 3 acmiddleright)
  5.            (vla-setcellalignment tblobj row 4 acmiddlecenter) ; and also this one
回复

使用道具 举报

10

主题

53

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 17:06:07 | 显示全部楼层
ymg3
 
非常感谢你的帮助。问题已解决
 
顺致敬意,
回复

使用道具 举报

17

主题

59

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2022-7-5 17:09:51 | 显示全部楼层
请帮助我,我需要同样的给我Lisp程序没有图像
 
提前感谢
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 17:11:03 | 显示全部楼层
plecs,
 
你说没有图像是什么意思????
 
也许张贴一张示例图,展示你想要完成的任务。
 
ymg公司
回复

使用道具 举报

17

主题

59

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2022-7-5 17:14:46 | 显示全部楼层
下面这个Lisp程序的图片你一定不能修改。我想成为自由的形象
  1. (defun c:blkqty5 (/  *adoc *h* *util attlst blk_id  blk_len blk_name blks desc en entlst h
  2.                    header_lsp horizmargin height i j total len0 lst_blk msp pt objtblsty
  3.                    partnum row ss str tblobj txtsty width width1 width2 x y)
  4.                
  5. (vl-load-com)
  6. (defun txtwidth (val h msp / txt minp maxp)
  7.     (setq txt (vla-addtext msp val (vlax-3d-point '(0 0 0)) h))
  8.     (vla-getboundingbox txt 'minp 'maxp)
  9.     (vla-erase txt)
  10.     (- (car (vlax-safearray->list maxp)) (car (vlax-safearray->list minp)))
  11. )
  12. (defun getorcreatetablestyle (tbl_name / name namelst objtblsty objtblstydic tablst txtsty)
  13.     (setq objtblstydic (vla-item (vla-get-dictionaries *adoc) "ACAD_TABLESTYLE"))
  14.     (foreach itm (vlax-for itm objtblstydic (setq tablst (append tablst (list itm))))
  15.         (if (not (vl-catch-all-error-p (setq name (vl-catch-all-apply 'vla-get-name (list itm)))))
  16.            (setq namelst (append namelst (list name)))
  17.         )
  18.     )
  19.     (if (not (vl-position tbl_name namelst))
  20.        (vla-addobject objtblstydic tbl_name "AcDbTableStyle")
  21.     )
  22.     (setq objtblsty (vla-item objtblstydic tbl_name)
  23.              txtsty (variant-value (vla-getvariable *adoc "TextStyle"))
  24.     )
  25.     (mapcar '(lambda (x) (vla-settextstyle objtblsty x txtsty)) (list actitlerow acheaderrow acdatarow));
  26.     (vla-setvariable *adoc "CTableStyle" tbl_name)
  27. )
  28. (defun getobjectid (obj)
  29.     (if (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
  30.        (vlax-invoke-method *util 'getobjectidstring obj :vlax-false)
  31.        (vla-get-objectid obj)
  32.     )
  33. )
  34. (defun quantity (lst / item qty rtn)
  35.     (while lst
  36.        (setq item (car lst)
  37.               qty 1
  38.               lst (cdr lst)
  39.        )      
  40.        (while  (= (cadr item) (cadr (car lst)))
  41.            (setq qty (1+ qty)
  42.                  lst (cdr lst)
  43.            )
  44.        )
  45.        (setq rtn (cons (append item (list qty)) rtn))
  46.     )
  47.     (reverse rtn)
  48. )      
  49. (if (setq ss (ssget (list (cons 0 "INSERT"))))
  50.     (progn
  51.         (setq i -1 lst_blk nil)      
  52.         (while (setq en (ssname ss (setq i (1+ i))))
  53.             (setq entlst (entget en)
  54.                   blk_name (cdr (assoc 2 entlst))
  55.                     attlst nil
  56.             )      
  57.             (while (/= (cdr (assoc 0 entlst)) "SEQEND")
  58.                 (if (= (cdr (assoc 0 entlst)) "ATTRIB")
  59.             (setq attlst (cons (cdr (assoc 1 entlst)) attlst))
  60.                 )
  61.                 (setq entlst (entget (setq en (entnext en))))
  62.             )
  63.             (setq    desc (car attlst)
  64.                    attlst (reverse (cdr attlst))
  65.                   partnum (strcat (car attlst) " x "  (cadr attlst)  " - " (cadddr attlst))
  66.                   lst_blk (cons (list blk_name partnum desc) lst_blk)
  67.             )
  68.         )
  69.         (setq lst_blk (vl-sort lst_blk '(lambda (x y) (< (cadr x) (cadr y)))))
  70.         ;; Here we need to remove duplicate and add qty to lst_blk
  71.         (setq lst_blk (quantity lst_blk))
  72.         (or *h* (setq *h* (* (getvar "dimtxt") (getvar "dimscale"))))
  73.         (initget 6)
  74.         (setq h (getreal (strcat "\nText Height <" (rtos *h*) "> :")))
  75.         (if h (setq *h* h)(setq h *h*))
  76.         (or *adoc (setq *adoc (vla-get-activedocument (vlax-get-acad-object))))
  77.         (setq msp   (vla-get-modelspace *adoc)
  78.               *util (vla-get-utility *adoc)
  79.               blks  (vla-get-blocks *adoc)
  80.         )
  81.         (setq horizmargin h
  82.               width1 (+ horizmargin (txtwidth "NR. CRT." h msp) horizmargin)
  83.               width2 (+ horizmargin (txtwidth (cadr (car lst_blk)) h msp) horizmargin)
  84.               width  (+ (* (+ width1 width2) 2) (* width2 1.5))
  85.               height (* 2 h)
  86.         )
  87.                
  88.         (getorcreatetablestyle "CadEng")
  89.         (setq pt     (getpoint "\nPlace Table :")
  90.               tblobj (vla-addtable msp (vlax-3d-point pt) (+ (length lst_blk) 2) 5 height width)
  91.         )
  92.         ;(vla-put-regeneratetablesuppressed tblobj :vlax-true)
  93.         (vla-setcolumnwidth tblobj 0 width1)
  94.         (vla-setcolumnwidth tblobj 1 width2)
  95.         (vla-setcolumnwidth tblobj 2 (* width2 1.5))
  96.         (vla-setcolumnwidth tblobj 3 width1)
  97.         (vla-setcolumnwidth tblobj 4 width2)
  98.         (vla-put-vertcellmargin tblobj (* 0.75 h))
  99.         (vla-put-horzcellmargin tblobj (* 0.75 h))
  100.         (mapcar '(lambda (x) (vla-settextheight tblobj x h)) (list actitlerow acheaderrow acdatarow))
  101.         (mapcar '(lambda (x) (vla-setalignment  tblobj x ) (list actitlerow acheaderrow acdatarow))
  102.    
  103.         
  104.       
  105.        (setq j -1
  106.              header_lsp (list "NR. CRT." "LISTA PIESE" "GROSIME" "BUC" [color="red"]"IMAGE"[/color])
  107.        )
  108.        (repeat (length header_lsp)
  109.            (vla-settext tblobj 1 (setq j (1+ j)) (nth j header_lsp))
  110.        )
  111.        (setq row 2 i 1)
  112.        (foreach pt lst_blk
  113.            (setq blk_name (car pt)
  114.                         j  -1
  115.            )
  116.            (vla-settext tblobj row 0 i)           ; ITEM NO.   
  117.            (vla-settext tblobj row 1 (cadr pt))   ; PART NUMBER
  118.            (vla-settext tblobj row 2 (caddr pt))  ; DESCRIPTION
  119.            (vla-settext tblobj row 3 (cadddr pt)) ; QTY         
  120.            (vla-setblocktablerecordid tblobj row 4 (getobjectid (vla-item blks blk_name)) :vlax-true)
  121.            (vla-setcellalignment tblobj row 1 acmiddleright)
  122.            (vla-setcellalignment tblobj row 1 acmiddleleft)
  123.            (vla-setcellalignment tblobj row 2 acmiddleleft)
  124.            (vla-setcellalignment tblobj row 3 acmiddleright)
  125.            (vla-setcellalignment tblobj row 3 acmiddlecenter)
  126.            (setq row (1+ row) i (1+ i))
  127.         )
  128.         (vla-deleterows tblobj 0 1)
  129.         ;(vla-put-regeneratetablesuppressed tblobj :vlax-false)
  130.         (vlax-release-object tblobj)
  131.     )
  132. )
  133. (princ)
  134. )

 
 
Lisp它在桌子上,因为他把图像块我做它折叠式家具厨房家具或其他,我需要块的形象
回复

使用道具 举报

17

主题

59

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2022-7-5 17:19:15 | 显示全部楼层
要改变,不要成为形象。我不想成为任何形象
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 17:22:00 | 显示全部楼层
plecs,
 
我还是不明白,上面的程序不包括任何图像。
 
也许你的意思是不输出表格???
 
ymg公司
回复

使用道具 举报

17

主题

59

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2022-7-5 17:23:05 | 显示全部楼层
Lisp它在桌子上,因为他把图像块我做它折叠式家具厨房家具或其他,我需要块的形象
  1. (setq j -1
  2.              header_lsp (list "NR. CRT." "LISTA PIESE" "GROSIME" "BUC" [color="red"]"IMAGE"[/color])
回复

使用道具 举报

17

主题

59

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2022-7-5 17:28:22 | 显示全部楼层
http://mobilamarius.blogspot.ro/
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-20 21:55 , Processed in 1.897263 second(s), 70 queries .

© 2020-2025 乐筑天下

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