Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /srv/web/engineers.bg/wp-content/plugins/seo-ultimate/modules/class.su-module.php on line 1195
Българският инженерен форум

Отговори

Преглеждане на 1 съобщение (от всички 1)
  • Автор
    Публикации
  • в отговор на: Бързо генериране на чертежи с АutoLisp #204
    doaiena
    Участник

    Здравейте,

    Във вида, в който е написана програмата, тя няма да работи. Ето така трябва да изглежда една завършена програма:

    ;FUNCTION
    (defun c:sha ( / wi leg op k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k12 k13 k14 k15 k16 k17 k18 k19 k20 k21
    d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 varsList *error* *varList*)

    (setq *varList* ‘(wi leg op k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k12 k13 k14 k15 k16 k17 k18 k19 k20 k21
    d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 varsList *error*))

    ;Възстановяване от грешки
    (defun *error* ( msg )
    (cond
    ((not (member msg ‘(„Function cancelled“ „quit / exit abort“)))
    (princ „\nВъзникна грешка.“)
    )
    (T
    (princ „\nИзход.“)
    )
    );cond

    (if varsList
    (foreach var varsList (setvar (read var) (eval (read var))))
    )

    (if *varList*
    (foreach var *varList* (set var nil))
    )
    (setq *varList* nil)

    (command-s „_.undo“ „_end“ )
    (command-s „_.regen“)

    (princ)(gc)(gc)(princ)
    );defun
    ;Възстановяване от грешки

    ;начало на undo/CTR+Z
    (command „_.undo“ „_begin“)

    ;дефиниране на стил
    (command „-style“ „standart“ „simplex.shx“ „“ „0.75“ „“ „“ „“ „“)

    ;Запазване на променливи в списък и задаване на нови стойности
    (mapcar ‘(lambda (var value)

    (set (read var) (if (equal (getvar (read var)) „“) „.“ (getvar (read var))))
    (setq varsList (cons var varsList))
    (setvar (read var) value)
    )
    (list „OSMODE“ „3DOSMODE“ „DIMTXSTY“ „DIMTXT“ „DIMBLK“ „DIMASZ“ „DIMTAD“ „DIMGAP“ „DIMDEC“ „DIMTOLJ“ „DIMTOH“ „DIMEXO“)
    (list 0 0 „standart“ 12 „ArchTick“ 8 1 5 0 0 0 20)
    );mapcar

    ;основни данни
    (if (and (setq wi (getint „Въведете дължина на шахта:“)
    leg (getint „Въведете шорочина на шахта:“)
    op (getint „Въветеде размер на отвора:“)
    k1 (getpoint „Посочете начална точка:“)
    );setq
    );and
    (progn

    ;точки плоча
    (setq k2 (polar k1 0 wi)
    k3 (polar k2 (/ pi 2) leg)
    k4 (polar k3 pi wi)
    k5 (polar k1 (/ pi 4) -35.3553339)
    k6 (polar k2 (/ pi 1.333333) -35.3553339)
    k7 (polar k3 (/ pi 4) 35.3553339)
    k8 (polar k4 (/ pi 1.333333) 35.3553339)
    ;точка надпис
    k9 (polar k4 0 (/ wi 2))
    k10 (polar k9 (/ pi 2) 50)
    ;точки котиране
    k11 (polar k6 (/ pi 2) -30)
    k12 (polar k11 (/ pi 2) -30)
    k13 (polar k6 0 30)
    k14 (polar k13 0 30)
    ;точки отвор
    k15 (polar k1 0 op)
    k16 (polar k15 (/ pi 2) op)
    k17 (polar k16 pi op)
    k18 (polar k1 (/ pi 4) -28.2043)
    k19 (polar k15 (/ pi 1.333333) -28.2043)
    k20 (polar k16 (/ pi 4) 28.2043)
    k21 (polar k17 (/ pi 1.333333) 28.2043)
    ;точки дъно
    d1 (polar k2 0 200)
    d2 (polar d1 0 wi)
    d3 (polar d2 (/ pi 2) leg)
    d4 (polar d3 pi wi)
    d5 (polar d1 (/ pi 4) -35.3553339)
    d6 (polar d2 (/ pi 1.333333) -35.3553339)
    d7 (polar d3 (/ pi 4) 35.3553339)
    d8 (polar d4 (/ pi 1.333333) 35.3553339)
    ;точка надпис
    d9 (polar d4 0 (/ wi 2))
    d10 (polar d9 (/ pi 2) 50)
    ;точки котиране
    d11 (polar d6 (/ pi 2) -30)
    d12 (polar d11 (/ pi 2) -30)
    d13 (polar d6 0 30)
    d14 (polar d13 0 30)
    );setq

    ;чертаене
    (command „pline“ k1 „w“2 „“ k2 k3 k4 k1 „“)
    (command „pline“ k5 „w“2 „“ k6 k7 k8 k5 „“)
    (command „pline“ k1 „w“2 „“ k15 k16 k17 k1 „“)
    (command „pline“ k18 „w“2 „“ k19 k20 k21 k18 „“)

    (command „-hatch“ „w“ „n“ k1 k2 k3 k4 k1 k5 k6 k7 k8 k5 „“ „“ „p“ „ANSI31“ „50“ „“ „“)
    (command „text“ „s“ „standart“ „j“ „mc“ k10 „15“ „“ „КОФРАЖЕН ПЛАН ПЛОЧА“)

    (command „dimlinear“ K5 K1 „h“ K11)
    (command „dimlinear“ K1 K2 „h“ K11)
    (command „dimlinear“ K2 K6 „h“ K11)
    (command „dimlinear“ K5 K6 „h“ K12)

    (command „dimlinear“ K7 K3 „v“ K13)
    (command „dimlinear“ K3 K2 „v“ K13)
    (command „dimlinear“ K2 K6 „v“ K13)
    (command „dimlinear“ K7 K6 „v“ K14)

    ;чертаене дъно
    (command „pline“ d1 „w“2 „“ d2 d3 d4 d1 „“)
    (command „pline“ d5 „w“2 „“ d6 d7 d8 d5 „“)

    (command „-hatch“ „w“ „n“ d1 d2 d3 d4 d1 d5 d6 d7 d8 d5 „“ „“ „p“ „ANSI31“ „50“ „“ „“)
    (command „text“ „s“ „standart“ „j“ „mc“ d10 „15“ „“ „КОФРАЖЕН ПЛАН ДЪНО“)

    (command „dimlinear“ d5 d1 „h“ d11)
    (command „dimlinear“ d1 d2 „h“ d11)
    (command „dimlinear“ d2 d6 „h“ d11)
    (command „dimlinear“ d5 d6 „h“ d12)

    (command „dimlinear“ d7 d3 „v“ d13)
    (command „dimlinear“ d3 d2 „v“ d13)
    (command „dimlinear“ d2 d6 „v“ d13)
    (command „dimlinear“ d7 d6 „v“ d14)
    ));if

    ;връщане на променливи
    (foreach var varsList (setvar (read var) (eval (read var))))

    ;край на undo/CTR+Z
    (command „_.undo“ „_end“ )

    (princ)
    );defun
    ;END FUNCTION

    Ако имате въпроси, свързани с програмиране/автоматизиране в среда AutoCAD, ще се радвам да помогна.

Преглеждане на 1 съобщение (от всички 1)