將選定的文字物件左對齊 右對齊或對中

2021-09-08 10:51:37 字數 2201 閱讀 7446

;;

;;程式名稱:物件水平對齊程式

;;執行命令:txtal

;;程式功能:將選定的物件左對齊、右對齊或對中。

;;(defun c:txtal(/selobjs oldcmdecho) ;定義命令txtal,區域性變數selobjs,oldcmdecho;

(setq oldcmdecho (getvar

"cmdecho

")) ;oldcmdecho 儲存命令回顯模式

(setvar

"cmdecho"0

) ;遮蔽提示

(setq selobjs (ssget

'((0 . "text,mtext")))) ;獲取文字物件?todo

(process selobjs) ;處理選中的物件;

(setvar

"cmdecho

"oldcmdecho) ;設定命令回顯模式

(princ) ;todo?

)(defun process (selobjs /amode apnt apnt_x

apnt_y count objname vlaxobj minpoint

maxpoint minext maxext ext_l ext_r

ext_m tpnt

) ;; amode 對齊模式;apnt 對齊點;apnt_x 對齊點x座標

;; apnt_y 對起點y座標;count 計數器;

;; objname 獲取圖元名稱 vlaxobj vla物件名

(initget

"l m r")

(setq amode (getkword "

\n選擇對齊方式《左對齊(l)/居中(m)/右對齊(r)>《左對齊》:")

) (

if (not

amode)

(setq amode "l

")) (initget 1)

(setq apnt (getpoint

"\n選擇水平對齊方向的對齊點:"))

(setq apnt_x (car apnt)

apnt_y (cadr apnt)

) (vl-load-com)

(setq count 0)

(repeat (sslength selobjs) ;;repeat

此函式可判別每乙個 expr 並重複執行 number 所敘述的次數,

(setq objname (ssname selobjs count)) ;;ssname此函式將返回選擇集 ss 中 index 所代表的圖元名

(setq vlaxobj (vlax-ename->vla-object objname)) ;;將 autolisp 型別的物件名轉換為 vla 物件

(setq minpoint (vlax-make-variant))

(setq maxpoint (vlax-make-variant))

(vla-getboundingbox vlaxobj '

minpoint

'maxpoint)

(setq minext (vlax-safearray->list minpoint))

(setq maxext (vlax-safearray->list maxpoint))

(setq ext_l (car minext))

(setq ext_r (car maxext))

(setq ext_m (+ (/ (abs (- ext_l ext_r)) 2

) ext_l))

(cond

((= amode "l"

) (setq tpnt (list ext_l apnt_y))

)((= amode "m"

) (setq tpnt (list ext_m apnt_y))

)((= amode "r"

) (setq tpnt (list ext_r apnt_y))))

(iftpnt

(command

"_move

" objname ""

"non

" tpnt "

non"

apnt)

)(setq count (

1+count))

))

SQL分享 字串左對齊或右對齊顯示

在顯示資料時需要對資料進行美觀化顯示。如左對齊,右對齊。知識點 函式 replicate 以下 是實現如下功能 declare sql varchar 200 需填充的字串 char varchar 4 填充使用的字元 len int 填充後的長度 select sql abc select cha...

c語言的輸出預設的是左對齊還是右對齊

左對齊還是右對齊是在有對齊的需要的時候才有意義的。由於你並沒有指定每個int值輸出的長度,因此int值有多長就會輸出多長,此時沒有討論左對齊或者右對齊的意義。你只有加上 10d的時候 10只是我舉的例子 這時候限定了int值輸出長度為10,而12345這個int值的長度為5,這時候就有左對齊還是右對...

左對齊 右對齊的9X9乘法表01

左對齊 右對齊的9x9乘法表 一 分析 1 可將乘法表視為乙個二維的平面系,橫軸和縱軸各代表乙個乘數,所以共需要兩個變數。3 左對齊時由於橫座標和縱座標都是從1 9進行累加,所以可以用兩次迴圈語句。右對齊時由於需要控制空格的數量所以需要多加乙個迴圈,共需三個迴圈結構。2 對齊方式 每個乘式之間用製表...