spp_wall 发表于 2014-11-20 11:44:58

插入文字的程序 有时会出错 求高手完善和优化!

(DEFUN C:wz7() ;enter text 插入结构层
        (command ".undo" "begin")
        (setvar "cmdecho" 0)
        (SETQ PK (GETPOINT "插入沥青结构层位置:"))
        (setvar "osmode" 0)
        (setq LL 38
                p1 (polar PK (* 1.5 pi) 1)
                p2 (polar p1 0 LL)
               
                p3 (polar p1 (* 1.5 pi) 1)
                p4 (polar p3 0 LL)

                PK1 (polar pK (* 1.5 pi) 6.0)
                p5 (polar PK1 (* 1.5 pi) 1)
                p6 (polar p5 0 LL)

                PK2 (polar pK1 (* 1.5 pi) 6.0)
                p7 (polar PK2 (* 1.5 pi) 1)
                p8 (polar p7 0 LL)

                PK3 (polar pK2 (* 1.5 pi) 6.0)
                p9 (polar PK3 (* 1.5 pi) 1)
                p10 (polar p9 0 LL)

                PK4 (polar pK3 (* 1.5 pi) 6.0)
                p11 (polar PK4 (* 1.5 pi) 1)
                p12 (polar p11 0 LL)

                PK5 (polar pK4 (* 1.5 pi) 6.0)
                p13 (polar PK5 (* 1.5 pi) 1)
                p14 (polar p13 0 LL)

                PK6 (polar pK5 (* 1.5 pi) 6.0)
                p15 (polar PK6 (* 1.5 pi) 1)
                p16 (polar p15 0 LL)

                PK7 (polar pK6 (* 1.5 pi) 6.0)
                p17 (polar PK7 (* 1.5 pi) 1)
                p18 (polar p17 0 LL)

                PK8 (polar pK7 (* 1.5 pi) 6.0)
                p19 (polar PK8 (* 1.5 pi) 1)
                p20 (polar p19 0 LL)

                PK9 (polar pK8 (* 1.5 pi) 6.0)
                p21 (polar PK9 (* 1.5 pi) 1)
                p22 (polar p21 0 LL)

                PK10 (polar pK9 (* 1.5 pi) 6.0);两条直线间间距
                p23 (polar PK10 (* 1.5 pi) 1);距离下条直线长
                p24 (polar p23 0 LL)

        )
        (COMMAND "_.TEXT" PK "3.5" "0" "4cm厚细粒式改性沥青砼(AC-13C)" )
        (COMMAND "_.LINE" P1P2 "" )
        (COMMAND "_.TEXT" PK1 "3.5" "0" "粘层油(AL(M)-3)" )
        (COMMAND "_.LINE" P3P4 "")
        (COMMAND "_.TEXT" PK2 "3.5" "0" "6cm厚中粒式沥青砼(AC-20 C)" )
        (COMMAND "_.LINE" P5P6 "")
        (COMMAND "_.TEXT" PK3 "3.5" "0" "粘层油(AL(M)-3)" )
        (COMMAND "_.LINE" P7P8 "")
        (COMMAND "_.TEXT" PK4 "3.5" "0" "8cm厚粗粒式沥青砼(AC-25 C)" )
        (COMMAND "_.LINE" P9P10 "")
        (COMMAND "_.TEXT" PK5 "3.5" "0" "粘层油(AL(M)-3)" )
        (COMMAND "_.LINE" P11P12 "")
        (COMMAND "_.TEXT" PK6 "3.5" "0" "1cm改性沥青碎石封层" )
        (COMMAND "_.LINE" P13P14 "")
        (COMMAND "_.TEXT" PK7 "3.5" "0" "25cm厚C40水泥砼" )
        (COMMAND "_.LINE" P15P16 "")
        (COMMAND "_.TEXT" PK8 "3.5" "0" "20cm厚5%水泥稳定碎石基层" )
        (COMMAND "_.LINE" P17P18 "")
        (COMMAND "_.TEXT" PK9 "3.5" "0" "20cm厚4%水泥稳定碎石底基层" )
        (COMMAND "_.LINE" P19P20 "")
        (COMMAND "_.TEXT" PK10 "3.5" "0" "15cm厚未筛分碎石垫层" )
        (COMMAND "_.LINE" P21P22 "" )
        (COMMAND "_.LINE" P23P24 "" )
(setvar "osmode" 183)
(setvar "cmdecho" 1)
(command ".undo" "end")
(prin1)
(princ)
)


1:能否进行优化 感觉代码看着好累!
2:有时候字和线会重叠,是不是屏幕的原因?求优化
3:能否设立个文字库,每行的文字能自由选择?
谢谢

spp_wall 发表于 2014-11-21 11:06:30

谁来看看!!!

xyp1964 发表于 2014-11-22 11:40:34

(defun c:tt ()
(defun abc (pt str)
    (command "text" pt "3.5" "0" str)
)
(defun abd (p1 p2)
    (command "_.line" "non" p1 "non" p2 "")
)
(if (setq pk (getpoint "插入沥青结构层位置: "))
    (progn
      (setvar "osmode" 0)
      (setq ll       45
          p1       (polar pk (* 1.5 pi) 1)
          p2       (polar p1 0 ll)
          p3       (polar p1 (* 1.5 pi) 1)
          p4       (polar p3 0 ll)
          pk1       (polar pk (* 1.5 pi) 6.0)
          p5       (polar pk1 (* 1.5 pi) 1)
          p6       (polar p5 0 ll)
          pk2       (polar pk1 (* 1.5 pi) 6.0)
          p7       (polar pk2 (* 1.5 pi) 1)
          p8       (polar p7 0 ll)
          pk3       (polar pk2 (* 1.5 pi) 6.0)
          p9       (polar pk3 (* 1.5 pi) 1)
          p10       (polar p9 0 ll)
          pk4       (polar pk3 (* 1.5 pi) 6.0)
          p11       (polar pk4 (* 1.5 pi) 1)
          p12       (polar p11 0 ll)
          pk5       (polar pk4 (* 1.5 pi) 6.0)
          p13       (polar pk5 (* 1.5 pi) 1)
          p14       (polar p13 0 ll)
          pk6       (polar pk5 (* 1.5 pi) 6.0)
          p15       (polar pk6 (* 1.5 pi) 1)
          p16       (polar p15 0 ll)
          pk7       (polar pk6 (* 1.5 pi) 6.0)
          p17       (polar pk7 (* 1.5 pi) 1)
          p18       (polar p17 0 ll)
          pk8       (polar pk7 (* 1.5 pi) 6.0)
          p19       (polar pk8 (* 1.5 pi) 1)
          p20       (polar p19 0 ll)
          pk9       (polar pk8 (* 1.5 pi) 6.0)
          p21       (polar pk9 (* 1.5 pi) 1)
          p22       (polar p21 0 ll)
          pk10 (polar pk9 (* 1.5 pi) 6.0)
          p23       (polar pk10 (* 1.5 pi) 1)
          p24       (polar p23 0 ll)
          ptn       (list p1 p2 p5        p6 p7 p8 p9 p10        p11 p12        p13 p14        p15 p16        p17 p18        p19 p20        p21 p22        p23 p24)
      )
      (abc pk "4cm厚细粒式改性沥青砼(ac-13c)")
      (abc pk1 "粘层油(al(m)-3)")
      (abc pk2 "6cm厚中粒式沥青砼(ac-20 c)")
      (abc pk3 "粘层油(al(m)-3)")
      (abc pk4 "8cm厚粗粒式沥青砼(ac-25 c)")
      (abc pk5 "粘层油(al(m)-3)")
      (abc pk6 "1cm改性沥青碎石封层")
      (abc pk7 "25cm厚c40水泥砼")
      (abc pk8 "20cm厚5%水泥稳定碎石基层")
      (abc pk9 "20cm厚4%水泥稳定碎石底基层")
      (abc pk10 "15cm厚未筛分碎石垫层")
      (while (and (setq p1 (car ptn))
                  (setq p2 (cadr ptn))
             )
        (setq ptn (cddr ptn))
        (abd p1 p2)
      )
    )
)
(princ)
)

spp_wall 发表于 2014-11-22 11:59:45

xyp1964 发表于 2014-11-22 11:40 static/image/common/back.gif


谢谢院长

墨者 发表于 2018-4-4 06:16:41

谢谢楼主分享

haodong 发表于 2020-3-5 09:11:38

感谢各位大神,学习了!
页: [1]
查看完整版本: 插入文字的程序 有时会出错 求高手完善和优化!