Bmaddo77 发表于 2022-7-6 06:41:08

LISP中的标注/文字

大家好,我是lisp的新手,我目前正在写一些文章来创建具有主要尺寸和以下部分名称的钢结构部分。
 
我在将维度(在新的维度层)添加到我的lisp文件和我的节下面的文本文件(也在新的文本层)时遇到问题。
 
我附上了我的lisp文件和一张我试图实现的图片。
 
任何帮助都将不胜感激!
PFC.pdf
pfc.lsp

Tharwat 发表于 2022-7-6 08:08:48

欢迎来到CadTutor
 
在调用lisp例程之前,请调整尺寸样式,以便很好地显示截面。
 
请告诉我代码是如何为您运行的。
 

(defun c:PFC (/ *error* _Mid p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12)
;;----- Tharwat 13. April. 2013 -----;;
(defun *error* (x)
   (setvar 'cmdecho 1)
   (princ "\n *Cancel*")
)
(defun _Mid (a b)
   (mapcar '(lambda (j k) (/ (+ j k) 2.)) a b)
)
(if (not (tblsearch "LAYER" "STEEL"))
   (entmake (list '(0 . "LAYER")
                  '(100 . "AcDbSymbolTableRecord")
                  '(100 . "AcDbLayerTableRecord")
                  '(70 . 0)
                  (cons 2 "STEEL")
                  '(62 . 252)
            )
   )
)
(if (setq p1 (getpoint "\n Specify base point:"))
   (progn
   (setvar 'cmdecho 0)
   (entmakex
       (list
         '(0 . "LWPOLYLINE")
         '(100 . "AcDbEntity")
         '(100 . "AcDbPolyline")
         '(8 . "STEEL")
         '(90 . 10)
         '(70 . 1)
         (cons 10 p1)
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . 0.0)
         (cons 10 (setq p2 (polar p1 0. 90.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . 0.0)
         (cons 10 (setq p3 (polar p2 (* pi 0.5) 15.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . 0.0)
         (cons 10 (setq p4 (polar p3 pi 70.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . -0.414214)
         (cons 10 (setq p5 (polar (polar p4 pi 12.) (* pi 0.5) 12.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . 0.0)
         (cons 10 (setq p6 (polar p5 (* pi 0.5) 196.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . -0.414214)
         (cons 10 (setq p7 (polar (polar p6 (* pi 0.5) 12.) 0. 12.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . 0.0)
         (cons 10 (setq p8 (polar p7 0. 70.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . 0.0)
         (cons 10 (setq p9 (polar p8 (* pi 0.5) 15.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . 0.0)
         (cons 10 (setq p10 (polar p9 pi 90.)))
         '(40 . 0.0)
         '(41 . 0.0)
         '(42 . 0.0)
       )
   )
   (command "_.dimlinear"
            "_none"
            (setq p11 (polar (_Mid p5 p6) (* pi 0.5) 25.))
            "_none"
            (setq p12 (polar (_Mid p10 p1) (* pi 0.5) 25.))
            "_none"
            p12
   )
   (command "_.dimlinear"
            "_none"
            p10
            "_none"
            p1
            "_none"
            (polar p10 pi 25.)
   )
   (command "_.dimlinear"
            "_none"
            p10
            "_none"
            p9
            "_none"
            (polar p10 (* pi 0.5) 15.)
   )
   (command "_.dimlinear"
            "_none"
            p9
            "_none"
            p8
            "_none"
            (polar p8 0. 15.)
   )
   (entmakex
       (list '(0 . "MTEXT")
             '(100 . "AcDbEntity")
             '(100 . "AcDbMText")
             '(40 . 10.)
             '(71 . 5)
             (cons 7 (getvar 'textstyle))
             '(8 . "STEEL")
             '(42 . 0.0)
             '(50 . 0.)
             (cons 10 (polar (polar p1 0. 45.) (* pi 1.5) 20.))
             '(1 . "{\\L250 PFC}")
       )
   )
   (setvar 'cmdecho 1)
   )
)
(princ "\nWritten by Tharwat Al Shoufi")
(princ)
)
页: [1]
查看完整版本: LISP中的标注/文字