shcvip 发表于 2021-10-24 15:23:08

表格,如果文字在居中

本帖最后由 shcvip 于 2021-10-24 21:24 编辑

我改别人的程序,在自己的cad中,放大图框比例后,制作的出来的表格,文字不居中,不知道是那里问题,请教各位。
;;;http://huojibk.com/2021/01/604.html
(defun C:tt (/ buz k pt kb cir WUS)
;;;(defun C:ttb ()
(setq osm (getvar "osmode"))
(setvar "cmdecho" 0)                        ;0关闭回显
(setvar "osmode" 0)                        ;关闭捕捉
(setq bili (getvar "dimscale"))
;文字位置调试数据
(setq da1 (* 17 bili)
da2 (* 39 bili)
da3 (* (+ 56 7) bili)
da4 (* 74 bili)
da5 (* 95 bili)
pt 0
)
;数据格式
(setq DB'(
          ("H01-T01" "200.000" "200" "-995.555" )
          ("H02" "D2" "0" "-5" )
          ))
;;;(setq buz (getvar "osmode");捕捉
(setq pt(getpoint "\n -->请指定程式表基点位置:"))
;;;(setvar "osmode" 0)
(setq AX1(+(car pt) da1)
AX2(+(car pt) da2)
AX3(+(car pt) da3)
AX4(+(car pt) da4)
AX5(+(car pt) da5)   
;;; AX6(+(car pt) da6)
;;;AX7(-(cadr pt) 1)
      AX7(-(cadr pt) 0)
AX0 pt
K 0
)
(setq AX0(list (car pt) (- (cadr pt) 0)))
(setq da1(list AX1 AX7))
(setq da2(list AX2 AX7))
(setq da3(list AX3 AX7))
;固定的表头
;;;(command "_text" "j" "m" AX0 "3" "0" "序号")
(layer_w)
(COMMAND "TEXT" "j" "m" AX00 "序号")
;;;(COMMAND "TEXT" "j" "m" PT10 0 txt_name)
;;;(command "_text" "j" "m" da1 "3" "0" "刀号-刀补")
(COMMAND "TEXT" "j" "m" da1 0 "名称")
(COMMAND "TEXT" "j" "m" da2 0 "单位")
(COMMAND "TEXT" "j" "m" da3 0 "性能参数")
(setq DB(reverse DB)
bc (length DB));表长
;;;(while (> bc k)
(setq kb(nth k DB))

;固定的表数据写对应的位置
;;;(command "_text" "j" "m" AX0 "3" "0" (+ k 1))

;;;(COMMAND "TEXT" "j" "m" da1 0 "处理风量")

;;;(COMMAND "TEXT" "j" "m" AX0 0 "1")

(csbzl)
(textKU "1" AX0 AX0)
(textKU "处理风量" da1 da1)
(textKU "m\u+00b3/h" da2 da2)
(textKU (strcat(rtos FS_Q 2 2) "x""10\u+00b4" ) da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "2" AX0 AX0)
(textKU "过滤面积" da1 da1)
(textKU "m\u+00b2" da2 da2)
(textKU (rtos s_bdn 2 0) da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "3" AX0 AX0)
(textKU "过滤风速" da1 da1)
(textKU "m/min" da2 da2)
(textKU (strcat(rtos fv_g 2 2) "(离线:" (rtos fv_LXg 2 2) ")") da3 da3)
;;;(COMMAND "TEXT" "j" "m" AX0 0 "3")
;;;(COMMAND "TEXT" "j" "m" da1 0 "过滤风速")
;;;(COMMAND "TEXT" "j" "m" da2 0 "m/min")
;;;(COMMAND "TEXT" "j" "m" da3 0   (strcat(rtos fv_g 2 2) "(离线:" (rtos fv_LXg 2 2) ")"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "4" AX0 AX0)
(textKU "入口温度" da1 da1)
(textKU "%%dC" da2 da2)
(textKU "\U+2264X" da3 da3)
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "5" AX0 AX0)
(textKU "入口含尘浓度" da1 da1)
(textKU "g/Nm\u+00b3" da2 da2)
(textKU "X" da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "6" AX0 AX0)
(textKU "出口含尘浓度" da1 da1)
(textKU "mg/Nm\u+00b3" da2 da2)
(textKU "\U+226410" da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "7" AX0 AX0)
(textKU "滤袋规格" da1 da1)
(textKU "mm" da2 da2)
(textKU (strcat "%%c" (rtos BD_D 2 2) "x"(rtos BD_L 2 2)) da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "8" AX0 AX0)
(textKU "袋笼规格" da1 da1)
(textKU "mm" da2 da2)
(textKU (strcat (rtos (- BD_D 5) 2 2) "x"(rtos (- BD_L 50) 2 2)) da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   (csbzl)
(textKU "9" AX0 AX0)
(textKU "滤袋数量" da1 da1)
(textKU "条" da2 da2)
(textKU (rtos bd_N 2 2) da3 da3)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   (csbzl)
(textKU "10" AX0 AX0)
(textKU "滤袋材质" da1 da1)
;;;(COMMAND "TEXT" "j" "m" (get_midpt da2 da3)0 "550g/m\u+00b2防静电涤纶针刺毡覆膜")
(textKU "550g/m\u+00b2防静电涤纶针刺毡覆膜" (get_midpt da2 da3) (get_midpt da2 da3))
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   (csbzl)
    (textKU "11" AX0 AX0)
(textKU "脉冲阀规格" da1 da1)
(textKU "X寸淹没式脉冲阀 DC24V" (get_midpt da2 da3) (get_midpt da2 da3))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
    (textKU "12" AX0 AX0)
(textKU "脉冲阀数量" da1 da1)
(textKU "个" da2 da2)
(textKU (rtos mcf_LXN 2 2) da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "13" AX0 AX0)
(textKU "脉冲气源耗量" da1 da1)
(textKU "Nm\u+00b2/h" da2 da2)
(textKU "X" da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "14" AX0 AX0)
(textKU "脉冲气源压力" da1 da1)
(textKU "Mpa" da2 da2)
(textKU "0.4-0.6" da3 da3)   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "15" AX0 AX0)
(textKU "喷吹气源压力" da1 da1)
(textKU "Mpa" da2 da2)
(textKU "0.25-0.35" da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    (csbzl)
    (textKU "16" AX0 AX0)
(textKU "除尘器阻力" da1 da1)
(textKU "Pa" da2 da2)
(textKU "\U+22641500" da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      (csbzl)
      (textKU "17" AX0 AX0)
(textKU "箱体耐压" da1 da1)
(textKU "Pa" da2 da2)
(textKU "-7000" da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "18" AX0 AX0)
(textKU "漏风率" da1 da1)
(textKU "%" da2 da2)
(textKU "\U+22642" da3 da3)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
   (textKU "19" AX0 AX0)
(textKU "清灰机制" da1 da1)
(textKU "离线喷吹清灰" (get_midpt da2 da3) (get_midpt da2 da3))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(csbzl)
(textKU "20" AX0 AX0)
(textKU "卸灰方式" da1 da1)
(textKU "星型卸灰阀→刮板机→" (get_midpt da2 da3) (get_midpt da2 da3))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   
   
;;;(setq K(+ k 1 ))
;;;(setq K(+ k 0 ))

;;;)
(setq pzx (+(car pt ) (* (- 105 43) bili))
pzy (+(cadr pt ) (* 2 bili))
ptx (-(car pt )(* 5 bili))
pty pzy
)
;画行
(repeat (+ bc 20)
(setq cir(list
'(0 . "LINE");直线
;;;'(62 . 0);颜色
(cons 8 "x_细实线")
;;;'(6 . "ByBlock");线形
(cons 10(list ptx pzy));起点
(cons 11(list (+ pzx (* 12 bili)) pzy));终点
))
(setq pzy( - pzy (* 6 bili)))
(entmake cir);创建直线
)
(setq pzy( + pzy (* 6 bili)))
;列宽调试数据
;;;(setq da1 10
;;;da2 33
;;;da3 56
;;;da4 67
;;;da5 91
;;;da6 0
;;;k 0
;;;)
(setq da1(* 10 bili)
da2 (* 33 bili)
da3 (* 56 bili)
da4 (* 79 bili)
da5 (* 91 bili)
da6 0
k 0
)

;纵向画线,画列
(repeat 5
(setq k(+ k 1))
(setq cir(list
'(0 . "LINE")
(cons 8 "x_细实线")
;;;'(62 . 153)
;;;'(6 . "ByBlock")
;;;(cons 10(list (+ ptx da6) pty))
(cons 10(list (+ ptx da6) pty))
(cons 11(list (+ ptx da6) pzy))
))
(entmake cir)
(cond
((= k 1)(setq da6 da1))
((= k 2)(setq da6 da2))
((= k 3)(setq da6 da3))
((= k 4)(setq da6 da4))
((= k 5)(setq da6 da5))
((= k 6)(setq da6 110))
;((= k 7)(setq da6 120))
)
)
;;;(command "_ucs" "n" WUS);还原坐标
;;;(setvar "osmode" buz)
(setvar "osmode" osm)
(princ)
)

(defun csbzl ()
(setq AX0 (list (car AX0 ) (-(cadr AX0 ) (* 6 bili)) )
da1(list (car da1) (-(cadr da1)(* 6 bili)))
da2(list (car da2) (-(cadr da2)(* 6 bili)))
da3(list (car da3) (-(cadr da3)(* 6 bili)))
      )
(princ)
)

(defun get_midpt (pt1 pt2)                ;子程序中带有两个自变量
(setq mx (/ (+ (car pt1) (car pt2)) 2))
(setq my (/ (+ (cadr pt1) (cadr pt2)) 2))
(list mx my)
)

(defun textKU (txt_name pt1 pt2)
(entmakex (list '(0 . "TEXT")
                (cons 1 txt_name);;内容
                (cons 7"汉字")
                (cons 8"W_文字层")
                (cons 67 0);颜色
                (cons 10 pt1);第一对齐点
                (cons 11 pt2) ;;第二对齐点,72或73不为0才有意义
                (cons 40 (* bili 4.2));;字高
                (cons 410.7) ;文字宽度
                (cons 72 4);;水平文字对齐类型
                                              )
)
;;;(princ)
)

;;;---------------------
;;;《伙计百科》版权所有。
;;;源地址:http://huojibk.com/2021/01/604.html
;;;版权声明:转载请附上博文链接!





烟盒迷唇 发表于 2021-10-24 18:56:29

一大堆command,没心情看奥

shcvip 发表于 2021-10-24 21:24:43

烟盒迷唇 发表于 2021-10-24 18:56
一大堆command,没心情看奥

已经调整,不用command.

start4444 发表于 2021-10-24 21:27:34

把原代码发出来看看

shcvip 发表于 2021-10-25 09:40:27

本帖最后由 shcvip 于 2021-10-25 09:41 编辑

在程序中,“;画行”加入下面的程序,表格上移1mm,就可以解决了。(setq pty (+ pty bili ) pzy (+ pzy bili)) ;;2021.10.24.增加,表格一移1mm..
页: [1]
查看完整版本: 表格,如果文字在居中