![]() |
请高手帮帮忙
请高手帮帮忙
www.dimcax.com 请高手帮帮忙(vl-load-com) (setvar "cmdecho" 0) (setvar "osmode" 0) (setq hxss (ssadd)) (setq s (ssget '((0 . "line")))) (repeat (setq s1 (sslength s)) (setq s_ent (ssname s (setq s1 (1- s1)))) (setq ent (entget s_ent)) (setq pt1 (cdr (assoc 10 ent)) pt2 (cdr (assoc 11 ent)) ) (setq zw_s (ssget "_f" (list pt1 pt2) '((0 . "insert")))) (if (/= zw_s nil) (progn (repeat (setq zw_s1 (sslength zw_s)) (setq bjyxlst '() lsts 0) (setq zw_ent (ssname zw_s (setq zw_s1 (1- zw_s1)))) (if (not (ssmemb zw_ent hxss)) (progn (setq hxss (ssadd zw_ent hxss)) (setq zwent (entget zw_ent)) (setq tkm (cdr (assoc 2 zwent))) (setq pins (cdr (assoc 10 zwent))) (setq ang (cdr (assoc 50 zwent))) (setq zty (entget (cdr (assoc -2 (tblsearch "block" tkm))))) (ch_z zty pins ang) (setq bjyxlst (reverse bjyxlst)) (repeat (length bjyxlst) (setq zbd (cdr (nth lsts bjyxlst))) (setq zjd (vlax-curve-getclosestpointto s_ent zbd t)) (if (/= (distance zbd zjd) 0) (command "_dimaligned" zbd zjd (polar zjd pi 1000)) ) (setq lsts (1+ lsts)) ) ) ) ) ) ) ) (setvar "osmode" 37) (setvar "cmdecho" 1) (princ) 这段代码是对直线上图块里的圆进行标注~为什么每个图块第一次标注时正常~~ 把标注删除后~~再对该图块进行标注时确无法标注了~~也没有任何出错信息 把图纸关了重新打开又能标注了~但同一图块只能标一次~ d (setq bjyxlst '() lsts 0) (ch_z zty pins ang) (setq bjyxlst (reverse bjyxlst)) 啥意思。。。 听不懂你要干嘛??? d bjyxlst里面是由ch_z函数提取出来的圆心坐标~ 我的意思是为什么同一个图块只能标注一次~ 把标注删了~再重新标注时就没反应了~~ 也没提示出错~运行完代码但不标注 把图纸关了重新打开又能标注了~~但也只能标一次~~ 删了标注重标就又不行了~~ d 最好抓个图来。。。 上面的代码太乱。。。 懒的看。 把需求说清楚,重新写更快。 d 怎么把电脑里的图发上来??? d 是不是这样子的。。。 以线选择块。。。 按你的需求,我猜测的。。。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ;;(cai-ss-values ss -1) by carrot1983 ( cai-ss-values (ss item / i values) ( ( i ( ss)) ( values ( ( ( item ( ( ss ( i (1- i)))))) values ) ) ) values ) ( cai-dxf (item elist) ( ( item elist)) ) ( "._undo" "_begin") ( cmdecho ( "cmdecho")) ( "cmdecho" 0) ( ( ss ( '((0 . "line")))) ( e (cai-ss-values ss -1) ( ( ( elist ( e)) ( ss1 ( "_f" ( (cai-dxf 10 elist) (cai-dxf 11 elist)) '((0 . "insert")) ) ) ) ( e1 (cai-ss-values ss1 -1) ( elist ( e1) v10 (cai-dxf 10 elist) ) ( pt ( e v10)) ( "._dimaligned" "_none" pt "_none" v10 "_none" ( v10 ( ( 0.5 pi) ( pt v10)) 1000) ;_标注尺寸界线长度1000 ) ) ) ) ) ( "cmdecho" cmdecho) ( "._undo" "_end") () ) |
| 所有的时间均为北京时间。 现在的时间是 08:36 AM. |