[求助]属性块
把一个物体(比方说圆)和文字做成一个块后,每次插入这个块的时候,文字可以自己输入,例如:我把一个圆和数字1做成一个带属性的块以后,每次插入的时候,数字1可以手动输入变为5或者6或者其他,请各位大虾帮帮忙!(最好做成lisp程序,因为我还有其他的地方要用!比如:把一个圆分成上下2部分,上部分的数字,每次COPY后,能自动递增,下面的数字不变,这和上面请求编写的程序有点相似) 非常好的资料,谢谢楼主分享啊 很不错的程序,谢谢楼主分享 这种东西没有比如的,必须针对每个块单独编程,所以你得把某些东西确定了才行。。。你可以先做好一个属性块,然后才可以针对这个属性块编一个拷贝的程序,使得拷贝时能增加相应的值 那就请帮忙编写一个属性块。如图。下面的程序是用来拷贝图中的属性块的,现在要满足你的要求,程序和我给你的图中的属性块都必须有才行。。。拷贝命令:cok(defun c:cok( / ent ent2 ent3 ents k i)
(setq ent (entlast))
(command "_.copy" pause pause)
(setq i 0)
(while (= (getvar "cmdactive") 1)
(command pause)
(setq ent2 (entlast))
(setq ent3 (entnext ent2))
(setq ents (entget ent3))
(if (not (equal ent ent2))
(progn
(if (= i 0)
(setq k (cdr (assoc 1 ents)))
)
(setq k (add k 1))
(setq i (1+ i))
(setq ents (subst (cons 1 k) (assoc 1 ents) ents))
(entmod ents)
(entupd ent2)
(setq ent ent2)
)
)
)
(command "_.regen")
(princ)
)
(defun add(ch num / i n ch2 k)
(setq i 0
n (strlen ch)
ch2 "")
(while (wcmatch (setq k (substr ch (- n i) 1)) "")
(setq ch2 (strcat k ch2))
(setq i (1+ i))
)
(setq ch2 (itoa (+ (atoi ch2) num)))
(strcat (substr ch 1 (- n i)) ch2)
) 谢谢!但是,每次都只能copy一个,能不能再改进一下,可以连续呢? copy本身有连续功能。。。
我这个命令在使用是跟copy是一模一样的,只不会最后要修改那些属性块而已。。。
Command: copy
Select objects: 1 found
Select objects:<BR>Specify base point or displacement, or : m<BR>Specify base point: Specify second point of displacement or <use first point as <BR>displacement>: Specify second point of displacement or <use first point as <BR>displacement>: Specify second point of displacement or <use first point as <BR>displacement>: Specify second point of displacement or <use first point as <BR>displacement>: 我想把你那个属性块,插入到别的图中使用,可是好像不行呢?能否告诉我你那个属性块的制作方法?不然,我就只能在你给我的那张图中使用,好像意义不是很大! 楼上的请帮帮忙阿!
&nb赶p; 我4楼开始已经说明了这个问题,你把属性块拷过去就行了 非常感谢!
页:
[1]
2