明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1799|回复: 5

请教文字对齐的小问题

[复制链接]
发表于 2004-9-25 20:08:00 | 显示全部楼层 |阅读模式
各位大侠,我做了一个明细表文字列居中对齐的小程序,但为什么有时候它可以在原地对齐,为什么有时候它会偏里明细表,跑到很远的地方,下面是程序帮忙看一下为什么?谢谢……
  1. (defun c:alignM( / ent ents pt ty ss i pt2 sc pt_lst len pt3)
  2.    (setq p1(getpoint"\n请输入最下部文字栏线的左边点:"))
  3.    (setq p2(getpoint"\n请输入最下部文字栏线的右边点:"))
  4.    (prompt "选择文字...")
  5.    (setq ss (ssget '((0 . "TEXT"))))
  6.    (setq sc 1)
  7.    (setq i 0)
  8.    (repeat (sslength ss)
  9.        (setq ent (ssname ss i))
  10.        (setq ents (entget ent))
  11.        (setq pt2 (cdr (assoc 10 ents)))
  12.        (setq pt2 (list (/ (+ (car p2) (car p1)) 2) (cadr pt2) (last pt2)))
  13.        (setq pt_lst (textbox ents))
  14.        (setq len (- (caadr pt_lst) (caar pt_lst)))
  15.        (setq pt3 (polar pt2 (cdr (assoc 50 ents)) (* len sc)))
  16.        (setq ents (subst (cons 11 pt2) (assoc 11 ents) ents))
  17.        (setq ents (subst (cons 72 1) (assoc 72 ents) ents))
  18.        (if (> len (- (car p2) (car p1)))
  19.            (progn (setq kdbl (/ (- (car p2) (car p1)) (+ 2 len)))
  20.   (setq ents (subst (cons 41 kdbl) (assoc 41 ents) ents))
  21.   )
  22.            )
  23.        ;(setq ents (subst (cons 11 pt3) (assoc 11 ents) ents))0
  24.        (entmod ents)
  25.        (setq i (1+ i))
  26.    )
  27.    (princ)
  28. )
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2004-9-26 12:05:00 | 显示全部楼层
大虾帮帮忙啊
发表于 2004-9-26 12:35:00 | 显示全部楼层
你最好给个出问题的图
发表于 2004-9-26 12:50:00 | 显示全部楼层
是坐标系问题 (defun c:alignM (/ ent ents pt ty ss i pt2 sc pt_lst len pt3)
(command "ucs" "world")
(setq p1 (getpoint "\n请输入最下部文字栏线的左边点:"))
(setq p2 (getpoint "\n请输入最下部文字栏线的右边点:"))
(prompt "选择文字...")
(setq ss (ssget '((0 . "TEXT"))))
(setq sc 1)
(setq i 0)
(repeat (sslength ss)
(setq ent (ssname ss i))
(setq ents (entget ent))
(setq pt2 (cdr (assoc 10 ents)))
(setq pt2 (list (/ (+ (car p2) (car p1)) 2) (cadr pt2) (last pt2)))
(setq pt_lst (textbox ents))
(setq len (- (caadr pt_lst) (caar pt_lst)))
(setq pt3 (polar pt2 (cdr (assoc 50 ents)) (* len sc)))
(setq ents (subst (cons 11 pt2) (assoc 11 ents) ents))
(setq ents (subst (cons 72 1) (assoc 72 ents) ents))
(if (> len (- (car p2) (car p1)))
(progn (setq kdbl (/ (- (car p2) (car p1)) (+ 2 len)))
(setq ents (subst (cons 41 kdbl) (assoc 41 ents) ents))
)
)
;(setq ents (subst (cons 11 pt3) (assoc 11 ents) ents))0
(entmod ents)
(setq i (1+ i))
)
(command "ucs" "prev")
(princ)
) ------------------------------------- (command "ucs" "world");;世界坐标系 ..................... (command "ucs" "prev");;上一个
 楼主| 发表于 2004-9-26 20:22:00 | 显示全部楼层
原来这么回事,多谢……
 楼主| 发表于 2004-10-13 19:39:00 | 显示全部楼层
就上面的那个还有一点问题请教,为什么有时候文字并没有按照我的意思缩小字宽在点取的两点之间?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-30 12:19 , Processed in 0.163861 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表