22
100
78
初露锋芒
(setq text (vla-addtext mSpace fh (vlax-3d-point nextPt)))
(defun c:tt(/) (vl-load-com)(defun *error* (msg) (setvar "osmod" osmode_old))(defun text_length (Text / textent ang sinrot cosrot t1 t2 p0 p1 p2 p3 p4) (setq textent (entget (vlax-vla-object->ename Text))) (setq p0 (cdr (assoc 10 textent)) ang (cdr (assoc 50 textent)) sinrot (sin ang) cosrot (cos ang) t1 (car (textbox textent)) t2 (cadr (textbox textent)) p1 (list (+ (car p0) (- (* (car t1) cosrot) (* (cadr t1) sinrot))) (+ (cadr p0) (+ (* (car t1) sinrot) (* (cadr t1) cosrot)) ) ) p2 (list (+ (car p0) (- (* (car t2) cosrot) (* (cadr t1) sinrot)) ) (+ (cadr p0) (+ (* (car t2) sinrot) (* (cadr t1) cosrot)) ) ) ) (distance p1 p2)) (setq mSpace (vla-get-ModelSpace(vla-get-ActiveDocument (vlax-get-acad-object)))) (setq entbak (ssadd)) (setq osmode_old (getvar "osmode")) (setvar "osmode" 0) (setq pt (getpoint "\nget the center point.")) (command "_.circle" pt) (princ (strcat "\ninput the radius of circle")) (command pause) (setq cir (vlax-ename->vla-object (entlast))) (ssadd (entlast) entbak) ;start to input the makr. (setq hasMore T) (while hasMore (setq nextPt (grread T 4 0) readtype (car nextPt) readvale (cadr nextPt) ) (cond ((= readtype 5) (setq nextPt (cadr nextPt)) (setq nextPt (trans nextPt 1 0)) (setq basePt (vlax-curve-getclosestpointto cir nextPt)) (if (not line) (progn (if (not fh) (setq fh "A") ) (setq text (vla-addtext mSpace fh (vlax-3d-point nextPt))) (ssadd (entlast) entbak) (setq txtlen (text_length text)) (setq l2end (vla-addline mSpace (vlax-3d-point nextPt) (vlax-3d-point l2end))) ) (progn (vla-put-startpoint line (vlax-3d-point basePt)) (vla-put-endpoint line (vlax-3d-point nextPt)) (vla-update line) (setq ptt (car nextPt)) (if (> ptt pt) (progn (setq textleft (+ (car nextPt) (getvar "dimgap"))) (setq l2left (+ (car nextPt) txtlen (getvar "dimgap"))) ) (progn (setq textleft (- (car nextPt) (getvar "dimgap") txtlen)) (setq l2left textleft) ) ) (vla-put-insertionpoint text (vlax-3d-point list textleft (+ (cadr nextPt) (getvar "dimgap")) 0)) (vla-update text) (vla-put-startpoint l2 (vlax-3d-point nextPt)) (setq l2end (list l2left (cadr nextPt) 0)) (vla-put-endpoint l2 (vlax-3d-point l2end)) (vla-update l2) ) ) ) ((= readtype 3) (setq i nil) ) ((or (= 25 readtype) (= 13 readtype)) ;( ) )))
使用道具 举报
(setq text (vla-addtext mSpace fh (vlax-3d-point nextPt) (getvar "dimtxt")))
(defun c:tt(/ line fh text) (vl-load-com)(defun *error* (msg) (setvar "osmod" osmode_old))(defun text_length (Text / textent ang sinrot cosrot t1 t2 p0 p1 p2 p3 p4) (setq textent (entget (vlax-vla-object->ename Text))) (setq p0 (cdr (assoc 10 textent)) ang (cdr (assoc 50 textent)) sinrot (sin ang) cosrot (cos ang) t1 (car (textbox textent)) t2 (cadr (textbox textent)) p1 (list (+ (car p0) (- (* (car t1) cosrot) (* (cadr t1) sinrot))) (+ (cadr p0) (+ (* (car t1) sinrot) (* (cadr t1) cosrot)) ) ) p2 (list (+ (car p0) (- (* (car t2) cosrot) (* (cadr t1) sinrot)) ) (+ (cadr p0) (+ (* (car t2) sinrot) (* (cadr t1) cosrot)) ) ) ) (distance p1 p2)) (setq mSpace (vla-get-ModelSpace(vla-get-ActiveDocument (vlax-get-acad-object)))) (setq entbak (ssadd)) (setq osmode_old (getvar "osmode")) (setvar "osmode" 0) (setq pt (getpoint "\nget the center point.")) (command "_.circle" pt) (princ (strcat "\ninput the radius of circle")) (command pause) (setq cir (vlax-ename->vla-object (entlast))) (ssadd (entlast) entbak) ;start to input the makr. (setq hasMore T) (while hasMore (setq nextPt (grread T 4 0) readtype (car nextPt) readvale (cadr nextPt) ) (cond ((= readtype 5) (setq nextPt (cadr nextPt)) (setq nextPt (trans nextPt 1 0)) (setq basePt (vlax-curve-getclosestpointto cir nextPt)) (if (not line) (progn (if (not fh) (setq fh "A") ) (setq text (vla-addtext mSpace fh (vlax-3d-point nextPt) (getvar "dimtxt"))) (ssadd (entlast) entbak) ;(setq txtlen (text_length text)) (setq line (vla-addline mSpace (vlax-3d-point basePt) (vlax-3d-point nextPt))) (ssadd (entlast) entbak) (setq txtlen (text_length text)) (setq l2end (list (+ (car nextPt) txtlen) (cadr nextPt) 0)) (setq l2 (vla-addline mspace (vlax-3d-point nextPt) (vlax-3d-point l2end))) (ssadd (entlast) entbak) ) (progn (vla-put-startpoint line (vlax-3d-point basePt)) (vla-put-endpoint line (vlax-3d-point nextPt)) (vla-update line) (setq ptt (car nextPt)) (setq ptx (car pt)) (if (> ptt ptx) (progn (setq textleft (+ (car nextPt) (getvar "dimgap"))) (setq l2left (+ (car nextPt) txtlen (getvar "dimgap"))) ) (progn (setq textleft (- (car nextPt) (getvar "dimgap") txtlen)) (setq l2left textleft) ) ) (vla-put-insertionpoint text (vlax-3d-point (list textleft (+ (cadr nextPt) (getvar "dimgap")) 0))) (vla-update text) (vla-put-startpoint l2 (vlax-3d-point nextPt)) (setq l2end (list l2left (cadr nextPt) 0)) (vla-put-endpoint l2 (vlax-3d-point l2end)) (vla-update l2) ) ) ) ((= readtype 3) (setq hasMore nil) ) ((or (= 25 readtype) (= 13 readtype)) ;( ) )))
本版积分规则 发表回复 回帖后跳转到最后一页
微信公众平台
扫描访问手机版
点击图片下载手机App
|关于我们|小黑屋|乐筑天下 繁体中文
GMT+8, 2025-3-6 21:16 , Processed in 0.419744 second(s), 60 queries .
© 2020-2025 乐筑天下
在线时间:10:00-17:00
暂无
扫一扫,关注我们
帮助中心
关于我们
下载APP客户端