Осевая линия
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Осевая линия

Осевая линия

Ответ
Поиск в этой теме
Непрочитано 03.11.2004, 20:09 #1
Осевая линия
Ден
 
Сообщений: n/a

У меня есть лисп для осевой линии, подскажите пожалуйста, что там можно переделать, чтобы вместо осевой рисовалась пунктирная.

(defun C:Osl (/ sna cmd lin scal LAY col ooi first SECOND dist add)
(SETQ sna (GETVAR "osmode"))
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq lin (getvar "celtype"))
(setq scal (getvar "celtscale"))
(SETQ LAY (GETVAR "CLAYER"))
(SETQ col (GETVAR "Cecolor"))

(setq ooi (GETDIST "\nУвеличение осевой линии с каждой стороны <5>: ")

ooi (if (null ooi)
5
ooi
)
)

(setq first 1
second 2
)
(while (and first second)
(setvar "osmode" 19)
(setq first (getpoint "\n Осевая линия>> Первая точка: "))
(if (null first)
'(0)
(setq SECOND (getpoint first "\n Осевая линия>> Вторая точка: "))
)
(cond
((equal first second)
(print "Ошибка >> Введенные точки совпадают!")
)

((and first second)
(command "linetype" "s" "Acad_iso04w100" "")
(COMMAND "LAYER" "M" "ОСИ" "C" "RED" "" "")
(setvar "cecolor" "bylayer")
(setq dist (distance first second))

(setq add (list (* (/ (- (car first) (car second)) dist) ooi)
(* (/ (- (cadr first) (cadr second)) dist) ooi)
(* (/ (- (caddr first) (caddr second)) dist) ooi)
)
first (mapcar '+ first add)
second (mapcar '- second add)
)
(setvar "celtscale" (* (DISTANCE FIRST SECOND) 0.01) )
(command "Line" first second "")
)
)
)
(setvar "celtscale" scal)
(setvar "celtype" lin)
(SETVAR "CLAYER" LAY)
(SETVAR "Cecolor" col)
(SETVAR "osmode" sna)
(setvar "cmdecho" cmd)
)
[/code]
Просмотров: 4413
 
Непрочитано 03.11.2004, 20:37
#2
lee


 
Регистрация: 28.02.2004
43
Сообщений: 1,824
<phrase 1=


Может быть не в тему.
Скопируй то, что ниже в файл с расширением lin, подложь в support и пользуйся. На здоровье

*Штрих,Штрих - - - - -
A,1.1,-2,1.1
*ШтрихПункт,ШтрихПункт - . - . -
A,2.5,-2,0.1,-2,2.5
*РазрывСтанд,РазрывСтанд -------\/\ -------\/\ -------
A,15,["|",STANDARD,S=1,R=-30.0,X=0,Y=0],-0.5,["|",STANDARD,S=2,R=-150.0,X=0,Y=0.866025],-1,["|",STANDARD,S=1,R=-30.0,X=0,Y=-0.866025],-0.5,0.0001
*РазрывСтКор,РазрывСтКор ---\/\ ---\/\ ---
A,5,["|",STANDARD,S=1,R=-30.0,X=0,Y=0],-0.5,["|",STANDARD,S=2,R=-150.0,X=0,Y=0.866025],-1,["|",STANDARD,S=1,R=-30.0,X=0,Y=-0.866025],-0.5,0.0001

*РазрывНеСт,РазрывНеСт -------|\| -------|\| -------|\| -------
A,15,["|",STANDARD,S=1,R=0.0,X=0,Y=0],0,["|",STANDARD,S=2.828427,R=225.0,X=0,Y=1],-2,["|",STANDARD,S=1,R=0.0,X=0,Y=-1],0.0001

*Сварка монтажная,Сварка монтажная _х_х_х_х_х_х_х_
A,0.85,["x",STANDARD,S=1.4286,R=0.0,X=0.0,Y=0.0],0.85
*Стык монтажный, Стык монтажный -х-х-х-х-х-х-х-х-х-х
A,0.85,["x",STANDARD,S=1.4286,R=0.0,X=0.0,Y=-0.50],0.85

*Сварка заводская,Сварка заводская _|_|_|_|_|_|_|_|_|_
A,0.65,["|",STANDARD,S=1,R=0.0,X=0,Y=0],0.65

*Грунт,Грунт __///__///__///__///__///__///__
A,1,["|",STANDARD,S=1,R=-30.0,X=0,Y=-0.866025],0.35,["|",STANDARD,S=1,R=-30.0,X=0,Y=-0.866025],0.35,["|",STANDARD,S=1,R=-30.0,X=0,Y=-0.866025],0.35

.................
Чуть не забыл. Работает, если тектовый стиль STANDART выставлен txt. В смысле работает так, как задумано.
lee вне форума  
 
Непрочитано 03.11.2004, 21:04
#3
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Указать нужный тип линии в этой строке:
Код:
[Выделить все]
(command "linetype" "s" "Acad_iso04w100" "")
{Smirnoff} вне форума  
 
Непрочитано 03.11.2004, 21:36
#4
Ден


 
Сообщений: n/a


Примного благодарен
 
 
Непрочитано 07.05.2007, 14:53
#5
LyaDenis

Институт природопользования
 
Регистрация: 07.05.2007
Ставрополь
Сообщений: 4
<phrase 1=


подскажите как из 3д чертежа сделать плоский снимок, чтоб там осевые были?
LyaDenis вне форума  
 
Непрочитано 08.05.2007, 10:31
#6
vadim_evg1


 
Регистрация: 08.01.2007
Рус
Сообщений: 398


>LyaDenis


http://dwg.ru/forum/viewtopic.php?t=13002
vadim_evg1 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Осевая линия