品茗新秀 发表于 2012-9-8 21:31:30

求板厚标注,字体大小点选原图中的板厚标注的lLSP 0004

本帖最后由 品茗新秀 于 2012-9-9 00:09 编辑

求板厚标注,字体大小点选原图中的板厚标注lLSP   0004

关于是用如H=100或d=100 还是圈中带100,这个由用户确定或点选原图的样式


yjr111 发表于 2012-9-8 21:31:31

本帖最后由 yjr111 于 2012-9-9 00:24 编辑

简单的先来试试....
(连续点,带记忆)


yjr111 发表于 2012-9-8 23:56:44

本帖最后由 yjr111 于 2012-9-9 00:05 编辑

2楼更新...

品茗新秀 发表于 2012-9-9 00:19:23

本帖最后由 品茗新秀 于 2012-9-9 00:26 编辑

yjr111 发表于 2012-9-8 23:56 http://bbs.mjtd.com/static/image/common/back.gif
2楼更新...

最好能连续点,不要点一次,就让用户输一次板厚

yjr111 发表于 2012-9-9 00:26:55

行了,睡觉了,那个拉伸的估计比较头疼...主要是看得有点眼花

flytoday 发表于 2012-9-9 00:52:35

本帖最后由 flytoday 于 2012-9-9 08:15 编辑

顶上哈一一

yjr111 发表于 2012-9-9 08:01:06

flytoday 发表于 2012-9-9 00:52 static/image/common/back.gif
顶上哈一一


yjr111 发表于 2013-5-25 23:13:23

附上源码:(defun c:bhbz()
(command "ucs" "")
(setq E(nentsel"\n点选原板厚标注文字以提取字高等"))
(if (=(cdr(assoc 0 (SETQ TS(entget(car E)))))"TEXT")
    (progn
    (SETQ TSTY(CDR(ASSOC 7 TS))
          la(CDR(ASSOC 8 TS))
          TH(CDR(ASSOC 40 TS))
          tw(CDR(ASSOC 41 TS))
          tcol(CDR(ASSOC 62 TS))
          )
    (if (not tcol)
      (setq tcol (cdr(assoc 62(entget(tblobjname "layer" la)))))
      )
    )
    (progn
    (princ"\n未选中文字...")
    (c:bhbz)
    )
   )
   (if *BH* (setq BH (getint (strcat "\n请输入板厚<" (rtos *BH* 2 0)">")))
                  (setq BH (getint"\n请输入板厚" ))
   )
(if (not BH)(setq BH *BH*)(setq *BH* BH ))
(initget"H D Q W")
(SETQ KEY(GETKWORD"\n输入标注样式:[前缀1(H)/前缀2(D)/带圈前缀1(Q)/带圈前缀2(W)]"))
(while (SETQ pt(GETpoint"\n请确定文字放置点"))
    (cond
      ((= key "H")
       (SETQ STR (strcat "H="(itoa BH)))
       (EMAKET STR TSTY la PT TH tcol)
       )
      ((= key "D")
       (SETQ STR (strcat "d="(itoa BH)))
       (EMAKET STR TSTY la PT TH tcol)
       )
      ((= key "Q")
       (SETQ STR (strcat "H="(itoa BH)))
       (EMAKET STR TSTY la PT TH tcol)
       (setq p10 (cdr(assoc 10 (entget(entlast))))
             p11(cdr(assoc 11 (entget(entlast))))
             )
       (EMAKEEL p11 p10 la tcol BH)
       )
      ((= key "W")
      (SETQ STR (strcat "d="(itoa BH)))
       (EMAKET STR TSTY la PT TH tcol)
       (setq p10 (cdr(assoc 10 (entget(entlast))))
             p11(cdr(assoc 11 (entget(entlast))))
             )
       (EMAKEEL p11 p10 la tcol BH)
       )
      )
    )
(princ)
)
(DEFUN EMAKET(STR TSTY la PT TH tcol)
(entmake (list '(0 . "TEXT") (cons 1 STR) (cons 7 TSTY)
                      (cons 8 la)(cons 10 '(0.0 0.0 0.0))(cons 11 PT)
                      (cons 40 TH)(cons 41 Tw)(cons 62 tcol)
                      (cons 72 1)(cons 73 2))
                )
)
(DEFUN EMAKEEL(p11 p10 la tcol BH)
(entmake (list '(0 . "ELLIPSE")'(100 . "AcDbEntity")'(100 . "AcDbEllipse")(cons 10 p11)
                      (cons 11 (list (* 1.4(- (car p10)(car p11)))0.0 0.0))(cons 8 la)(cons 62 tcol)
                      (cons 40 (/ 1 (* 0.55 (strlen (itoa BH)))))'(42 . 6.28319)
      
                     )
                )
)

          
          
               
       

love_cq 发表于 2020-4-27 14:23:54

强大的资料,多谢大神分享,学习了。

奥特蛋 发表于 2020-4-27 14:46:25

yjr111 发表于 2013-5-25 23:13
附上源码:

大神好多币
页: [1] 2
查看完整版本: 求板厚标注,字体大小点选原图中的板厚标注的lLSP 0004