太棒了我知道我在这里做了些什么。。。。
- ;;Routine to change all dimensions to the current dimstyle preserving
- their dimscale and dimstyle name
- (defun c:dimes2 ()
- (setq ss1 (ssget "X" (list (cons 0 "dimension"))))
- (setq SSLEN (sslength SS1))
- (setq sscnt 0 sspr (1+ sscnt))
- (repeat sslen
- (prompt (strcat "\nProcessing " (itoa SSPR) " of " (itoa SSLEN) " dimensions."))
- (setq EN (ssname SS1 SSCNT))
- ;set dimscale
- (command "dimscale" (vla-get-ScaleFactor (vlax-ename->vla-object EN)))
- (COMMAND "DIM1" "UPDATE" EN "")
- (setq sscnt (1+ sscnt) SSPR (1+ sscnt))
- );r
- (princ)
- );d
- ;;Another code
- (PRINC
- "\nSelect Dimensions and text to apply the background fill and update...: "
- )
- (AND (SETQ ss (SSGET "_:L" '((0 . "*DIMENSION*"))))
- (FOREACH x (VL-REMOVE-IF 'LISTP (MAPCAR 'CADR (SSNAMEX ss)))
- (COND
- ((EQ "DIMENSION" (CDR (ASSOC 0 (SETQ elist (ENTGET x)))))
- (SETQ elist (SUBST (CONS 340 (tblobjname "style" TextStyle)) (ASSOC 340 elist) elist)
- ) ;_ setq
- (ENTMOD elist)
- (T T)
- ) ;_ cond
- ) ;_ foreach
- ) ;_ and
此代码(键入dimes2)出现“输入时列表格式错误”错误,但将当前图形中的所有维度重命名为当前dimstyle名称,保留了它们自己的变量。。。。我需要的恰恰相反。。。保留Dimscale和dimstyle名称,但更新所有变量。。。
实际上,我试图更新的唯一变量是Dimtfill。。。。
有谁愿意帮忙吗?
--------------------------------
好像我的头颠倒了。。。 |