w9522100 发表于 2024-11-21 08:57:31


感谢大神分享:P-

cjf160204 发表于 2025-2-5 22:25:52

用了一段时间不能用了,很可惜,还是感谢楼主,解决很多实际工作问题

ailikes01 发表于 2025-2-10 10:53:21

感谢作者的无私分享....

香远益清 发表于 2025-2-25 15:21:19

真不好意思!这还收费?我有更好的谁要吱一声

Aaron95 发表于 2025-2-26 16:34:55

感谢分享插件

cjf160204 发表于 2025-2-26 18:59:52

******** c:zb ********
功能:逐点标注并汇总到表格。用户选择点并标注,程序生成表格汇总点的坐标信息。
(defun c:zb (/ pt tHt prefix pt_list i table_pt table_height table_width row_count vlaTab vlaTxt vlaCell)
(vl-load-com)
(setq pt_list '())
(setq i 0)
(setq pt (getpoint "\n选择第一个点:"))
(setq tHt (getreal "\n请输入文字高度 (默认值为2.5): "))
(if (not tHt) (setq tHt 2.5))
(setq prefix (getstring T "\n请输入点号前缀(可选): "))
(if (not prefix) (setq prefix ""))

(while pt
    (setq i (1+ i))
    (command "text" pt tHt 0 (strcat prefix (itoa i)))
    (setq pt_list (cons pt pt_list))
    (setq pt (getpoint "\n选择下一个点,或按回车结束:"))
)

(if (null pt_list)
    (progn
      (princ "\n未选择任何点,操作已取消。")
      (exit)
    )
)

(setq table_pt (getpoint "\n指定表格绘制位置:"))
(setq table_height (* tHt 1.5))
(setq table_width 36)
(setq row_count (length pt_list))

(setq actDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq mSp (vla-get-ModelSpace actDoc))
(setq vlaTab (vla-AddTable mSp (vlax-3D-point table_pt) (+ row_count 1) 3 table_height table_width))

(vla-SetText vlaTab 0 0 "点号")
(vla-SetText vlaTab 0 1 "X")
(vla-SetText vlaTab 0 2 "Y")

(setq i 0)
(foreach pt (reverse pt_list)
    (setq i (1+ i))
    (vla-SetText vlaTab i 0 (strcat prefix (itoa i)))
    (vla-SetText vlaTab i 1 (rtos (cadr pt) 2 3))
    (vla-SetText vlaTab i 2 (rtos (car pt) 2 3))
    (vla-SetCellTextHeight vlaTab i 0 tHt)
    (vla-SetCellTextHeight vlaTab i 1 tHt)
    (vla-SetCellTextHeight vlaTab i 2 tHt)
    (vla-SetCellAlignment vlaTab i 0 acMiddleCenter)
    (vla-SetCellAlignment vlaTab i 1 acMiddleCenter)
    (vla-SetCellAlignment vlaTab i 2 acMiddleCenter)
)

(vla-put-VertCellMargin vlaTab (* 0.35 tHt))
(vla-put-Height vlaTab (* 1.2 row_count))
(vla-SetColumnWidth vlaTab 0 (* 5 tHt))
(vla-SetColumnWidth vlaTab 1 (* 10 tHt))
(vla-SetColumnWidth vlaTab 2 (* 10 tHt))

(princ "\n标注完成。")
(princ)
)

(princ "\nzb命令已加载。输入 zb 开始逐点标注并汇总到表格。")
(princ)

cjf160204 发表于 2025-2-26 21:32:48

香远益清 发表于 2025-2-25 15:21
真不好意思!这还收费?我有更好的谁要吱一声

来一个学习一下

muai2010 发表于 2025-2-26 22:12:45

香远益清 发表于 2025-2-25 15:21
真不好意思!这还收费?我有更好的谁要吱一声

“吱”~~~~~~~~~~

973831058 发表于 2025-3-13 14:42:44

不能用不能用不能用不能用不能用
页: 1 2 3 [4]
查看完整版本: 坐标自动编号并写入表格