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

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

Regen

Ответ
Поиск в этой теме
Непрочитано 01.08.2007, 20:23 #1
Regen
Holon
 
CNC
 
Israel
Регистрация: 07.07.2007
Сообщений: 302

Существует несколько функций, которые связаны между собой и загружены в один файл, так вот при первом запуске функция отрисовывает
несколько объектов без всяких проблем, потом я вручную все стираю и опять запускаю функцую на отрисовку, пропадает часть объектов и размерные линии, если перезагрузить CAD то все сново работает, единственное, что помогает кроме перезагрузки CAD-а это
команда REGEN, как ее сделать програмно, исходный код невыставляю, он размером в несколько страниц, выставлю если понадобится, заранее благодарен
Просмотров: 7201
 
Непрочитано 01.08.2007, 21:29
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,829


Ну либо (command "_.regen"), либо (command "_.regenall"), либо (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acactiveviewport) - на выбор
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.08.2007, 23:55
#3
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


используй:
Код:
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 02.08.2007, 09:59
#4
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Непомогло, вот, что пишет при первой удачной загрузке

Customization file loaded successfully. Customization Group: ACAD
Customization file loaded successfully. Customization Group: CUSTOM
Customization file loaded successfully. Customization Group: VAULT
Customization file loaded successfully. Customization Group: EXPRESS
Customization file loaded successfully. Customization Group: HEBREW
Regenerating model.

AutoCAD Express Tools Copyright © 2002-2004 Autodesk, Inc.

Command:
Command:
AutoCAD menu utilities loaded.
Command: COMMANDLINE

Command:
Command:
Command:
MY_ARM

Command:
Point or option keyword required.

2D point or option keyword required.

Point or option keyword required.

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

2D point or option keyword required.

2D point or option keyword required.

Point or option keyword required.

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

Requires numeric radius, point on circumference, or "D".

2D point or option keyword required.

Point or option keyword required.

Requires numeric radius, point on circumference, or "D".
Unknown command "L". Press F1 for help.
Unknown command "DIMENTION". Press F1 for help.
Unknown command "C". Press F1 for help.
Unknown command "G". Press F1 for help.

Command: Specify opposite corner:
Command: _.erase 53 found




и вот, что пишет при
повторной неудачной частичной загрузке.

Command:
Command:
Command:
MY_ARM

Command:
Point or option keyword required.

2D point or option keyword required.

Point or option keyword required.

Requires numeric radius, point on circumference, or "D".


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object

Requires numeric radius, point on circumference, or "D".


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object

2D point or option keyword required.

2D point or option keyword required.

Point or option keyword required.

Requires numeric radius, point on circumference, or "D".


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object

Requires numeric radius, point on circumference, or "D".


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object

Requires numeric radius, point on circumference, or "D".


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object

Requires numeric radius, point on circumference, or "D".


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object

2D point or option keyword required.

Point or option keyword required.


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object
Unknown command "L". Press F1 for help.
Unknown command "DIMENTION". Press F1 for help.

Invalid window specification.

Invalid window specification.

Invalid window specification.


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object

Command:
Automatic save to C:\DOCUME~1\vldsa\LOCALS~1\Temp\Drawing1_1_1_4343.sv$ ...

Command:
Holon вне форума  
 
Непрочитано 02.08.2007, 10:05
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,829


Отсюды мораль - проблемы в коде. Ставь в нем отлов ошибок, а еще лучше - запускай vlide , в него подгрузить твой лисп (или mnl - не знаю, как ты грузишь), ставить через F9 на первой выполняемой функции точку останова и пошагово проходить по всему лиспу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.08.2007, 10:17
#6
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Загружаю я просто кнопкой,
Код:
[Выделить все]
^C^C^P(load "arm");(my_arm)
а про отлов ошибок можно поподробней
Holon вне форума  
 
Непрочитано 02.08.2007, 10:24
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,829


Высылай код на мыло. Попробую сегодня глянуть, пока инсталл ADT буду делать
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.08.2007, 10:32
#8
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


В коде нет ничего секретного единственное DCL-ки на иврите и есть вставки DWG в этом вся проблема
Код:
[Выделить все]
(defun pices (/ dcl_id_2 pic)
  (vl-load-com)  
  (setq
    basepath  "U:\\LISP\\PL\\"
    dclfile_2 "armonica_2.dcl"
    dcl_id_2  (load_dialog (strcat basepath dclfile_2))
  )
  (new_dialog "picdcl" dcl_id_2)
  (setq
    on_ed1 ""
    on_ed2 ""
  )
  (set_tile "Left_DCL" on_ed1)
  (set_tile "Riht_DCL" on_ed2)
  (action_tile "Left_DCL" "(setq on_ed1 $value)")
  (action_tile "Riht_DCL" "(setq on_ed2 $value)")
  (start_dialog)
  (unload_dialog dcl_id_2)
  (setq pic (strcat on_ed1 on_ed2))
)
(defun 2sm (
	   )
  (vl-load-com)
  (setq	list_sys_var
	 '("clayer"	"osmode"     "CMDECHO"	  "BLIPMODE"
	   "DIMASZ"	"DIMCLRD"    "DIMCLRE"	  "DIMCLRT"
	   "DIMDLI"	"DIMEXE"     "DIMEXO"	  "DIMGAP"
	   "DIMSOXD"	"DIMTAD"     "DIMTIH"	  "DIMTSZ"
	   "DIMTXT"
	  )
  )
  (setq sys_var (mapcar 'getvar list_sys_var))
  (setvar "CMDECHO" 0)
  (setvar "BLIPMODE" 0)
  (setvar "osmode" 0)
  (setvar "DIMASZ" 40)			;Arrow size 
  (setvar "DIMCLRD" 3)			;(Green)(BYBLOCK)  Dimension line and leader color 
  (setvar "DIMCLRE" 3)			;(Green)(BYBLOCK)  Extension line color 
  (setvar "DIMCLRT" 7)			;(white)  Dimension text color 
  (setvar "DIMDLI" 0)			;Dimension line spacing 
  (setvar "DIMEXE" 20)			;Extension above dimension line 
  (setvar "DIMEXO" 30)			;Extension line origin offset 
  (setvar "DIMGAP" 20)			;Gap from dimension line to text 
  (setvar "DIMSOXD" 0)			;(Off) Suppress outside dimension lines 
  (setvar "DIMTAD" 1)			;Place text above the dimension line 
  (setvar "DIMTIH" 0)			;(Off)Text inside extensions is horizontal 
  (setvar "DIMTSZ" 0)			;Tick size 
  (setvar "DIMTXT" 40)			;Text height 
  (command "LIMITS" "0,0" "297,210" "ZOOM" "A")
  (setq
    basepath  "U:\\LISP\\PL\\"
    sm1020a   (strcat basepath "pl_sm1020a.dwg")
    sm1010a   (strcat basepath "pl_sm1010a.dwg")
    sm1050    (strcat basepath "pl_sm1050.dwg")
    armonica  (strcat basepath "armonica.dwg")
    dclfile_1 "armonica_1.dcl"
  )
  (setq dcl_id (load_dialog (strcat basepath dclfile_1)))
  (new_dialog "dd_edit" dcl_id)
  (setq
    on_ed1 ""
    on_ed2 ""
  )
  (set_tile "HL_DCL" on_ed1)
  (set_tile "LL_DCL" on_ed2)
  (action_tile "HL_DCL" "(setq on_ed1 $value)")
  (action_tile "LL_DCL" "(setq on_ed2 $value)")

  (if (= 1 (start_dialog))
    (progn
      (setq
	HL	 (atoi on_ed1)
	LL	 (atoi on_ed2)
	BP	 (list 0 0)
	door_ar1
		 (polar bp (/ pi 2) 27)
	door_ar2
		 (polar door_ar1 (/ pi 2) (- HL 50))
	door_ar3
		 (polar door_ar2 (/ pi 2) 23)
	door_ar4
		 (polar door_ar3 (* pi 2) 105)
	door_ar5
		 (polar door_ar4 (* pi 2) (- LL 105))
	door_ar6
		 (polar door_ar5 (* pi 1.5) HL)
	door_ar7
		 (polar door_ar6 pi 50)
	door_ar8
		 (polar door_ar7 pi 120)
	door_ar9
		 (polar door_ar6 pi (- LL 127))
      )
      (OR (IF (>= HL 2900)
	    (setq hole_upa (polar door_ar5 (* pi 1.5) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_upa (polar door_ar5 (* pi 1.5) 200))
      )
      (setq
	hole_1a	(polar hole_upa pi 31)
	hole_2a	(polar hole_1a (* pi 1.5) 50)
      )
      (OR (IF (>= HL 2900)
	    (setq hole_downa (polar door_ar6 (/ pi 2) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_downa (polar door_ar6 (/ pi 2) 200))
      )
      (setq
	hole_3a	(polar hole_downa pi 31)
	hole_4a	(polar hole_3a (/ pi 2) 50)
      )
      (vl-cmdf "_-LAYER" "_m"	   "Body"    "_l"      "CONTINUOUS"
	       ""	 "_c"	   "_w"	     ""	       ""
	      )
      (vl-cmdf "_line" door_ar1 "_ByLaer" door_ar2 "")
      (setq Name_1 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1020a)
	       door_ar2
	       1
	       1
	       0
      )
      (setq Name_2 (entlast))
      (vl-cmdf "_pline"	door_ar4 "_ByLaer" door_ar5 door_ar6 door_ar7 "")
      (setq Name_3 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       door_ar7
	       1
	       1
	       0
      )
      (setq Name_4 (entlast))
      (vl-cmdf "_line" door_ar8 "_ByLaer" door_ar9 "")
      (setq Name_5 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1010a)
	       door_ar9
	       1
	       1
	       0
      )
      (setq Name_6 (entlast))
      (vl-cmdf "_circle" hole_1a "_r" 10 "")
      (setq Name_7 (entlast))
      (vl-cmdf "_circle" hole_2a "_r" 10 "")
      (setq Name_8 (entlast))
      (vl-cmdf "_circle" hole_3a "_r" 10 "")
      (setq Name_9 (entlast))
      (vl-cmdf "_circle" hole_4a "_r" 10 "")
      (setq Name_10 (entlast))
      (setq
	bp_b	  (list (+ (car door_ar6) (/ LL 5)) 0)
	door_ar10 (polar bp_b (/ pi 2) HL)
	door_ar11 (polar door_ar10 (* pi 2) (- LL 79))
	door_ar12 (polar door_ar11 (* pi 2) 28)
	door_ar13 (polar door_ar12 (* pi 2) 51)
	door_ar14 (polar door_ar13 (* pi 1.5) HL)
	door_ar15 (polar door_ar14 pi 50)
	door_ar16 (polar door_ar15 pi 120)
      )
      (vl-cmdf "_pline" bp_b "_ByLaer" door_ar10 door_ar11 "")
      (setq Name_11 (entlast))
      (vl-cmdf "-insert"
	       (strcat armonica)
	       door_ar11
	       1
	       1
	       0
      )
      (setq Name_12 (entlast))
      (vl-cmdf "_pline"	door_ar12 "_ByLaer" door_ar13 door_ar14
	       door_ar15 "")
      (setq Name_13 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       door_ar15
	       1
	       1
	       0
      )
      (setq Name_14 (entlast))
      (vl-cmdf "_line" door_ar16 "_ByLaer" bp_b "")
      (setq Name_15 (entlast))

      (OR (IF (>= HL 2900)
	    (setq hole_upb (polar door_ar13 (* pi 1.5) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_upb (polar door_ar13 (* pi 1.5) 200))
      )
      (setq
	hole_1b	(polar hole_upb pi 31)
	hole_2b	(polar hole_1b (* pi 1.5) 50)
      )
      (OR (IF (>= HL 2900)
	    (setq hole_downb (polar door_ar14 (/ pi 2) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_downb (polar door_ar14 (/ pi 2) 200))
      )
      (setq
	hole_3b	 (polar hole_downb pi 31)
	hole_4b	 (polar hole_3b (/ pi 2) 50)
	hole_5b	 (polar hole_1b pi (- LL 62))
	hole_6b	 (polar hole_2b pi (- LL 62))
	hole_7b	 (polar hole_3b pi (- LL 62))
	hole_8b	 (polar hole_4b pi (- LL 62))
	hole_9b	 (polar door_ar14 (/ pi 2) 1000)
	hole_10b (polar hole_9b pi 70)

      )
      (vl-cmdf "_circle" hole_5b "_r" 10 "")
      (vl-cmdf "_circle" hole_6b "_r" 10 "")
      (vl-cmdf "_circle" hole_7b "_r" 10 "")
      (vl-cmdf "_circle" hole_8b "_r" 10 "")
      (vl-cmdf "_circle" hole_10b "_r" 6 "")
      (setq hole (entlast))
      (setvar "DIMTXSTY" "i")
      (vl-cmdf "_-LAYER" "_m" "Dim" "" "_l" "dimention"	"" "c" "g" "")
      (vl-cmdf "_dimlinear" BP door_ar6 "@ 0,-100")
      (vl-cmdf "_dimlinear" bp_b door_ar14 "@ 0,-100")
      (vl-cmdf "_dimlinear" door_ar3 door_ar9 "V" "@-250,0")
      (vl-cmdf "_dimlinear" hole_10b door_ar14 "V" "@100,0")
      (vl-cmdf "_dimlinear" door_ar5 hole_upa "V" "@-100,0")
      (vl-cmdf "_dimdiameter" hole hole_10b "_a" 45 "" "")
    )
  )
  (unload_dialog dcl_id)
  (vl-cmdf "ZOOM" "A" "")
  (mapcar 'setvar list_sys_var sys_var)
  (redraw)
  (princ)
)

(defun 2ym (
	   )
  (vl-load-com)
  (setq	list_sys_var
	 '("clayer"	"osmode"     "CMDECHO"	  "BLIPMODE"
	   "DIMASZ"	"DIMCLRD"    "DIMCLRE"	  "DIMCLRT"
	   "DIMDLI"	"DIMEXE"     "DIMEXO"	  "DIMGAP"
	   "DIMSOXD"	"DIMTAD"     "DIMTIH"	  "DIMTSZ"
	   "DIMTXT"
	  )
  )
  (setq sys_var (mapcar 'getvar list_sys_var))
  (setvar "CMDECHO" 0)
  (setvar "BLIPMODE" 0)
  (setvar "osmode" 0)
  (setvar "CMDECHO" 0)
  (setvar "DIMASZ" 40)			;Arrow size 
  (setvar "DIMCLRD" 3)			;(Green)(BYBLOCK)  Dimension line and leader color 
  (setvar "DIMCLRE" 3)			;(Green)(BYBLOCK)  Extension line color 
  (setvar "DIMCLRT" 7)			;(white)  Dimension text color 
  (setvar "DIMDLI" 0)			;Dimension line spacing 
  (setvar "DIMEXE" 20)			;Extension above dimension line 
  (setvar "DIMEXO" 30)			;Extension line origin offset 
  (setvar "DIMGAP" 20)			;Gap from dimension line to text 
  (setvar "DIMSOXD" 0)			;(Off) Suppress outside dimension lines 
  (setvar "DIMTAD" 1)			;Place text above the dimension line 
  (setvar "DIMTIH" 0)			;(Off)Text inside extensions is horizontal 
  (setvar "DIMTSZ" 0)			;Tick size 
  (setvar "DIMTXT" 40)			;Text height 
  (command "LIMITS" "0,0" "297,210" "ZOOM" "A")
  (setq
    basepath  "U:\\LISP\\PL\\"
    sm1020a   (strcat basepath "pl_sm1020a.dwg")
    sm1010a   (strcat basepath "pl_sm1010a.dwg")
    sm1050    (strcat basepath "pl_sm1050.dwg")
    armonica  (strcat basepath "armonica.dwg")
    dclfile_4 "armonica_4.dcl"
  )
  (setq dcl_id_4 (load_dialog (strcat basepath dclfile_4)))
  (new_dialog "dd_edit_4" dcl_id_4)
  (setq
;;;    on_ed1 ""
;;;    on_ed2 ""
    on_ed3
     ""
    on_ed4 ""
  )
;;;  (set_tile "HL_DCL" on_ed1)
;;;  (set_tile "LL_DCL" on_ed2)
  (set_tile "HR_DCL" on_ed3)
  (set_tile "LR_DCL" on_ed4)
;;;  (action_tile "HL_DCL" "(setq on_ed1 $value)")
;;;  (action_tile "LL_DCL" "(setq on_ed2 $value)")
  (action_tile "HR_DCL" "(setq on_ed3 $value)")
  (action_tile "LR_DCL" "(setq on_ed4 $value)")

  (if (= 1 (start_dialog))
    (progn
      (setq
;;;	HL	 (atoi on_ed1)
;;;	LL	 (atoi on_ed2)
	HR    (atoi on_ed3)
	LR    (atoi on_ed4)

	BP    (list 0 0)
	bp_r  (polar BP (* pi 2) 300)
	r_ar1
	      (polar bp_r (/ pi 2) 27)
	r_ar2
	      (polar r_ar1 (/ pi 2) (- HR 50))
	r_ar3
	      (polar r_ar2 (/ pi 2) 23)
	r_ar4
	      (polar r_ar3 pi 105)
	r_ar5
	      (polar r_ar4 pi (- LR 105))
	r_ar6
	      (polar r_ar5 (* pi 1.5) HR)
	r_ar7
	      (polar r_ar6 (* pi 2) 50)
	r_ar8
	      (polar r_ar7 (* pi 2) 120)
	r_ar9
	      (polar r_ar6 (* pi 2) (- LR 127))
      )
      (OR (IF (>= HR 2900)
	    (setq e_upa (polar r_ar5 (* pi 1.5) 250))
	  )
      )
      (IF (< HR 2900)
	(setq e_upa (polar r_ar5 (* pi 1.5) 200))
      )
      (setq
	e_1a (polar e_upa (* pi 2) 31)
	e_2a (polar e_1a (* pi 1.5) 50)
      )
      (OR (IF (>= HR 2900)
	    (setq e_downa (polar r_ar6 (/ pi 2) 250))
	  )
      )
      (IF (< HR 2900)
	(setq e_downa (polar r_ar6 (/ pi 2) 200))
      )
      (setq
	e_3a (polar e_downa (* pi 2) 31)
	e_4a (polar e_3a (/ pi 2) 50)
      )
      (vl-cmdf "_-LAYER" "_m"	   "Body"    "_l"      "CONTINUOUS"
	       ""	 "_c"	   "_w"	     ""	       ""
	      )
      (vl-cmdf "_line" r_ar1 "_ByLaer" r_ar2 "")

      (vl-cmdf "-insert"
	       (strcat sm1020a)
	       r_ar2
	       1
	       1
	       0
      )
      (setq Name_sm1020a (entlast))
      (vl-cmdf "_mirror"
	       Name_sm1020a
	       ""
	       r_ar2
	       (list (car r_ar2) (1+ (cadr r_ar2)))
	       "Y"
	       ""
      )
      (vl-cmdf "_pline" r_ar4 "_ByLaer" r_ar5 r_ar6 r_ar7 "")
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       r_ar7
	       1
	       1
	       0
      )
      (setq Name_sm1050 (entlast))
      (vl-cmdf "_mirror"
	       Name_sm1050
	       ""
	       r_ar7
	       (list (car r_ar7) (1+ (cadr r_ar7)))
	       "Y"
	       ""
      )
      (vl-cmdf "_line" r_ar8 "_ByLaer" r_ar9 "")
      (vl-cmdf "-insert"
	       (strcat sm1010a)
	       r_ar9
	       1
	       1
	       0
      )
      (setq Name_sm1010a (entlast))
      (vl-cmdf "_mirror"
	       Name_sm1010a
	       ""
	       r_ar9
	       (list (car r_ar9) (1+ (cadr r_ar9)))
	       "Y"
	       ""
      )
      (vl-cmdf "_circle" e_1a "_r" 10 "")

      (vl-cmdf "_circle" e_2a "_r" 10 "")

      (vl-cmdf "_circle" e_3a "_r" 10 "")

      (vl-cmdf "_circle" e_4a "_r" 10 "")

      (setq
	bp_br  (list (- (car r_ar6) (/ LR 5)) 0)
	r_ar10 (polar bp_br (/ pi 2) HR)
	r_ar11 (polar r_ar10 pi (- LR 79))
	r_ar12 (polar r_ar11 pi 28)
	r_ar13 (polar r_ar12 pi 51)
	r_ar14 (polar r_ar13 (* pi 1.5) HR)
	r_ar15 (polar r_ar14 (* pi 2) 50)
	r_ar16 (polar r_ar15 (* pi 2) 120)
      )
      (vl-cmdf "_pline" bp_br "_ByLaer" r_ar10 r_ar11 "")
      (vl-cmdf "-insert"
	       (strcat armonica)
	       r_ar11
	       1
	       1
	       0
      )
      (setq Name_armonica (entlast))
      (vl-cmdf "_pline" r_ar12 "_ByLaer" r_ar13 r_ar14 r_ar15 "")
      (vl-cmdf "_mirror"
	       Name_armonica
	       ""
	       r_ar11
	       (list (car r_ar11) (1+ (cadr r_ar11)))
	       "Y"
	       ""
      )
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       r_ar15
	       1
	       1
	       0
      )
      (setq Name_sm1050 (entlast))
      (vl-cmdf "_mirror"
	       Name_sm1050
	       ""
	       r_ar15
	       (list (car r_ar15) (1+ (cadr r_ar15)))
	       "Y"
	       ""
      )
      (vl-cmdf "_line" r_ar16 "_ByLaer" bp_br "")


      (OR (IF (>= HR 2900)
	    (setq e_upb (polar r_ar13 (* pi 1.5) 250))
	  )
      )
      (IF (< HR 2900)
	(setq e_upb (polar r_ar13 (* pi 1.5) 200))
      )
      (setq
	e_1b (polar e_upb (* pi 2) 31)
	e_2b (polar e_1b (* pi 1.5) 50)
      )
      (OR (IF (>= HR 2900)
	    (setq e_downb (polar r_ar14 (/ pi 2) 250))
	  )
      )
      (IF (< HR 2900)
	(setq e_downb (polar r_ar14 (/ pi 2) 200))
      )
      (setq
	e_3b  (polar e_downb (* pi 2) 31)
	e_4b  (polar e_3b (/ pi 2) 50)
	e_5b  (polar e_1b (* pi 2) (- LR 62))
	e_6b  (polar e_2b (* pi 2) (- LR 62))
	e_7b  (polar e_3b (* pi 2) (- LR 62))
	e_8b  (polar e_4b (* pi 2) (- LR 62))
	e_9b  (polar r_ar14 (/ pi 2) 1000)
	e_10b (polar e_9b (* pi 2) 70)

      )
      (vl-cmdf "_circle" e_5b "_r" 10 "")
      (vl-cmdf "_circle" e_6b "_r" 10 "")
      (vl-cmdf "_circle" e_7b "_r" 10 "")
      (vl-cmdf "_circle" e_8b "_r" 10 "")
      (vl-cmdf "_circle" e_10b "_r" 6 "")
      (setq Name_new1 (entlast))
      (setvar "DIMTXSTY" "i")
      (vl-cmdf "_-LAYER" "_m" "Dim" "" "_l" "dimention"	"" "c" "g" "")
      (vl-cmdf "_dimlinear" bp_r r_ar6 "@ 0,-100")
      (vl-cmdf "_dimlinear" bp_br r_ar14 "@ 0,-100")
      (vl-cmdf "_dimlinear" r_ar3 r_ar9 "V" "@250,0")
      (vl-cmdf "_dimlinear" e_10b r_ar14 "V" "@100,0")
      (vl-cmdf "_dimlinear" r_ar5 e_upa "V" "@100,0")
      (vl-cmdf "_dimdiameter"
	       Name_new1
	       (mapcar '+ e_10b '(1. 1.))
      )
    )
  )
  (unload_dialog dcl_id_4)
  (vl-cmdf "ZOOM" "A" "")
  (mapcar 'setvar list_sys_var sys_var)
  (redraw)
  (princ)
)



(defun 2sm2ym (
	      )
  (vl-load-com)
  (setq	list_sys_var
	 '("clayer"	"osmode"     "CMDECHO"	  "BLIPMODE"
	   "DIMASZ"	"DIMCLRD"    "DIMCLRE"	  "DIMCLRT"
	   "DIMDLI"	"DIMEXE"     "DIMEXO"	  "DIMGAP"
	   "DIMSOXD"	"DIMTAD"     "DIMTIH"	  "DIMTSZ"
	   "DIMTXT"
	  )
  )
  (setq sys_var (mapcar 'getvar list_sys_var))
  (setvar "BLIPMODE" 0)
  (setvar "osmode" 0)
  (setvar "CMDECHO" 0)
  (setvar "DIMASZ" 40)			;Arrow size 
  (setvar "DIMCLRD" 3)			;(Green)(BYBLOCK)  Dimension line and leader color 
  (setvar "DIMCLRE" 3)			;(Green)(BYBLOCK)  Extension line color 
  (setvar "DIMCLRT" 7)			;(white)  Dimension text color 
  (setvar "DIMDLI" 0)			;Dimension line spacing 
  (setvar "DIMEXE" 20)			;Extension above dimension line 
  (setvar "DIMEXO" 30)			;Extension line origin offset 
  (setvar "DIMGAP" 20)			;Gap from dimension line to text 
  (setvar "DIMSOXD" 0)			;(Off) Suppress outside dimension lines 
  (setvar "DIMTAD" 1)			;Place text above the dimension line 
  (setvar "DIMTIH" 0)			;(Off)Text inside extensions is horizontal 
  (setvar "DIMTSZ" 0)			;Tick size 
  (setvar "DIMTXT" 40)			;Text height 
  (command "LIMITS" "0,0" "297,210" "ZOOM" "A")
  (setq
    basepath  "U:\\LISP\\PL\\"
    sm1020a   (strcat basepath "pl_sm1020a.dwg")
    sm1010a   (strcat basepath "pl_sm1010a.dwg")
    sm1050    (strcat basepath "pl_sm1050.dwg")
    armonica  (strcat basepath "armonica.dwg")
    dclfile_3 "armonica_3.dcl"
  )
  (setq dcl_id_3 (load_dialog (strcat basepath dclfile_3)))
  (new_dialog "dd_edit_3" dcl_id_3)
  (setq
    on_ed1 ""
    on_ed2 ""
  )
  (set_tile "HL_DCL" on_ed1)
  (set_tile "LL_DCL" on_ed2)
  (action_tile "HL_DCL" "(setq on_ed1 $value)")
  (action_tile "LL_DCL" "(setq on_ed2 $value)")

  (if (= 1 (start_dialog))
    (progn
      (setq
	HL	 (atoi on_ed1)
	LL	 (atoi on_ed2)
	BP	 (list 0 0)
	door_ar1
		 (polar bp (/ pi 2) 27)
	door_ar2
		 (polar door_ar1 (/ pi 2) (- HL 50))
	door_ar3
		 (polar door_ar2 (/ pi 2) 23)
	door_ar4
		 (polar door_ar3 (* pi 2) 105)
	door_ar5
		 (polar door_ar4 (* pi 2) (- LL 105))
	door_ar6
		 (polar door_ar5 (* pi 1.5) HL)
	door_ar7
		 (polar door_ar6 pi 50)
	door_ar8
		 (polar door_ar7 pi 120)
	door_ar9
		 (polar door_ar6 pi (- LL 127))
      )
      (OR (IF (>= HL 2900)
	    (setq hole_upa (polar door_ar5 (* pi 1.5) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_upa (polar door_ar5 (* pi 1.5) 200))
      )
      (setq
	hole_1a	(polar hole_upa pi 31)
	hole_2a	(polar hole_1a (* pi 1.5) 50)
      )
      (OR (IF (>= HL 2900)
	    (setq hole_downa (polar door_ar6 (/ pi 2) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_downa (polar door_ar6 (/ pi 2) 200))
      )
      (setq
	hole_3a	(polar hole_downa pi 31)
	hole_4a	(polar hole_3a (/ pi 2) 50)
      )
      (vl-cmdf "_-LAYER" "_m"	   "Body"    "_l"      "CONTINUOUS"
	       ""	 "_c"	   "_w"	     ""	       ""
	      )
      (vl-cmdf "_line" door_ar1 "_ByLaer" door_ar2 "")
      (setq Name_1 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1020a)
	       door_ar2
	       1
	       1
	       0
      )
      (setq Name_2 (entlast))
      (vl-cmdf "_pline"	door_ar4 "_ByLaer" door_ar5 door_ar6 door_ar7 "")
      (setq Name_3 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       door_ar7
	       1
	       1
	       0
      )
      (setq Name_4 (entlast))
      (vl-cmdf "_line" door_ar8 "_ByLaer" door_ar9 "")
      (setq Name_5 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1010a)
	       door_ar9
	       1
	       1
	       0
      )
      (setq Name_6 (entlast))
      (vl-cmdf "_circle" hole_1a "_r" 10 "")
      (setq Name_7 (entlast))
      (vl-cmdf "_circle" hole_2a "_r" 10 "")
      (setq Name_8 (entlast))
      (vl-cmdf "_circle" hole_3a "_r" 10 "")
      (setq Name_9 (entlast))
      (vl-cmdf "_circle" hole_4a "_r" 10 "")
      (setq Name_10 (entlast))
      (setq
	bp_b	  (list (+ (car door_ar6) (/ LL 5)) 0)
	door_ar10 (polar bp_b (/ pi 2) HL)
	door_ar11 (polar door_ar10 (* pi 2) (- LL 79))
	door_ar12 (polar door_ar11 (* pi 2) 28)
	door_ar13 (polar door_ar12 (* pi 2) 51)
	door_ar14 (polar door_ar13 (* pi 1.5) HL)
	door_ar15 (polar door_ar14 pi 50)
	door_ar16 (polar door_ar15 pi 120)
      )
      (vl-cmdf "_pline" bp_b "_ByLaer" door_ar10 door_ar11 "")
      (setq Name_11 (entlast))
      (vl-cmdf "-insert"
	       (strcat armonica)
	       door_ar11
	       1
	       1
	       0
      )
      (setq Name_12 (entlast))
      (vl-cmdf "_pline"	door_ar12 "_ByLaer" door_ar13 door_ar14
	       door_ar15 "")
      (setq Name_13 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       door_ar15
	       1
	       1
	       0
      )
      (setq Name_14 (entlast))
      (vl-cmdf "_line" door_ar16 "_ByLaer" bp_b "")
      (setq Name_15 (entlast))

      (OR (IF (>= HL 2900)
	    (setq hole_upb (polar door_ar13 (* pi 1.5) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_upb (polar door_ar13 (* pi 1.5) 200))
      )
      (setq
	hole_1b	(polar hole_upb pi 31)
	hole_2b	(polar hole_1b (* pi 1.5) 50)
      )
      (OR (IF (>= HL 2900)
	    (setq hole_downb (polar door_ar14 (/ pi 2) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_downb (polar door_ar14 (/ pi 2) 200))
      )
      (setq
	hole_3b	 (polar hole_downb pi 31)
	hole_4b	 (polar hole_3b (/ pi 2) 50)
	hole_5b	 (polar hole_1b pi (- LL 62))
	hole_6b	 (polar hole_2b pi (- LL 62))
	hole_7b	 (polar hole_3b pi (- LL 62))
	hole_8b	 (polar hole_4b pi (- LL 62))
	hole_9b	 (polar door_ar14 (/ pi 2) 1000)
	hole_10b (polar hole_9b pi 70)

      )
      (vl-cmdf "_circle" hole_5b "_r" 10 "")
      (vl-cmdf "_circle" hole_6b "_r" 10 "")
      (vl-cmdf "_circle" hole_7b "_r" 10 "")
      (vl-cmdf "_circle" hole_8b "_r" 10 "")
      (vl-cmdf "_circle" hole_10b "_r" 6 "")
      (setq hole (entlast))
      (setvar "DIMTXSTY" "i")
      (vl-cmdf "_-LAYER" "_m" "Dim" "" "_l" "dimention"	"" "c" "g" "")
      (vl-cmdf "_dimlinear" BP door_ar6 "@ 0,-100")
      (vl-cmdf "_dimlinear" bp_b door_ar14 "@ 0,-100")
      (vl-cmdf "_dimlinear" door_ar3 door_ar9 "V" "@-250,0")
      (vl-cmdf "_dimlinear" hole_10b door_ar14 "V" "@100,0")
      (vl-cmdf "_dimlinear" door_ar5 hole_upa "V" "@-100,0")

    )
  )
  (unload_dialog dcl_id_3)
  (vl-cmdf "ZOOM" "A" "")
  (mapcar 'setvar list_sys_var sys_var)
  (redraw)
  (princ)
)
(defun 4sm (
	   )
  (vl-load-com)
  (setq	list_sys_var
	 '("clayer"	"osmode"     "CMDECHO"	  "BLIPMODE"
	   "DIMASZ"	"DIMCLRD"    "DIMCLRE"	  "DIMCLRT"
	   "DIMDLI"	"DIMEXE"     "DIMEXO"	  "DIMGAP"
	   "DIMSOXD"	"DIMTAD"     "DIMTIH"	  "DIMTSZ"
	   "DIMTXT"
	  )
  )
  (setq sys_var (mapcar 'getvar list_sys_var))
  (setvar "BLIPMODE" 0)
  (setvar "osmode" 0)
  (setvar "CMDECHO" 0)
  (setvar "DIMASZ" 40)			;Arrow size 
  (setvar "DIMCLRD" 3)			;(Green)(BYBLOCK)  Dimension line and leader color 
  (setvar "DIMCLRE" 3)			;(Green)(BYBLOCK)  Extension line color 
  (setvar "DIMCLRT" 7)			;(white)  Dimension text color 
  (setvar "DIMDLI" 0)			;Dimension line spacing 
  (setvar "DIMEXE" 20)			;Extension above dimension line 
  (setvar "DIMEXO" 30)			;Extension line origin offset 
  (setvar "DIMGAP" 20)			;Gap from dimension line to text 
  (setvar "DIMSOXD" 0)			;(Off) Suppress outside dimension lines 
  (setvar "DIMTAD" 1)			;Place text above the dimension line 
  (setvar "DIMTIH" 0)			;(Off)Text inside extensions is horizontal 
  (setvar "DIMTSZ" 0)			;Tick size 
  (setvar "DIMTXT" 40)			;Text height 
  (command "LIMITS" "0,0" "297,210" "ZOOM" "A")
  (setq
    basepath  "U:\\LISP\\PL\\"
    sm1020a   (strcat basepath "pl_sm1020a.dwg")
    sm1010a   (strcat basepath "pl_sm1010a.dwg")
    sm1050    (strcat basepath "pl_sm1050.dwg")
    armonica  (strcat basepath "armonica.dwg")
    dclfile_1 "armonica_1.dcl"
  )
  (setq dcl_id (load_dialog (strcat basepath dclfile_1)))
  (new_dialog "dd_edit" dcl_id)
  (setq
    on_ed1 ""
    on_ed2 ""
  )
  (set_tile "HL_DCL" on_ed1)
  (set_tile "LL_DCL" on_ed2)
  (action_tile "HL_DCL" "(setq on_ed1 $value)")
  (action_tile "LL_DCL" "(setq on_ed2 $value)")

  (if (= 1 (start_dialog))
    (progn
      (setq
	HL	 (atoi on_ed1)
	LL	 (atoi on_ed2)
	BP	 (list 0 0)
	door_ar1
		 (polar bp (/ pi 2) 27)
	door_ar2
		 (polar door_ar1 (/ pi 2) (- HL 50))
	door_ar3
		 (polar door_ar2 (/ pi 2) 23)
	door_ar4
		 (polar door_ar3 (* pi 2) 105)
	door_ar5
		 (polar door_ar4 (* pi 2) (- LL 105))
	door_ar6
		 (polar door_ar5 (* pi 1.5) HL)
	door_ar7
		 (polar door_ar6 pi 50)
	door_ar8
		 (polar door_ar7 pi 120)
	door_ar9
		 (polar door_ar6 pi (- LL 127))
      )
      (OR (IF (>= HL 2900)
	    (setq hole_upa (polar door_ar5 (* pi 1.5) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_upa (polar door_ar5 (* pi 1.5) 200))
      )
      (setq
	hole_1a	(polar hole_upa pi 31)
	hole_2a	(polar hole_1a (* pi 1.5) 50)
      )
      (OR (IF (>= HL 2900)
	    (setq hole_downa (polar door_ar6 (/ pi 2) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_downa (polar door_ar6 (/ pi 2) 200))
      )
      (setq
	hole_3a	(polar hole_downa pi 31)
	hole_4a	(polar hole_3a (/ pi 2) 50)
      )
      (vl-cmdf "_-LAYER" "_m"	   "Body"    "_l"      "CONTINUOUS"
	       ""	 "_c"	   "_w"	     ""	       ""
	      )
      (vl-cmdf "_line" door_ar1 "_ByLaer" door_ar2 "")
      (setq Name_1 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1020a)
	       door_ar2
	       1
	       1
	       0
      )
      (setq Name_2 (entlast))
      (vl-cmdf "_pline"	door_ar4 "_ByLaer" door_ar5 door_ar6 door_ar7 "")
      (setq Name_3 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       door_ar7
	       1
	       1
	       0
      )
      (setq Name_4 (entlast))
      (vl-cmdf "_line" door_ar8 "_ByLaer" door_ar9 "")
      (setq Name_5 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1010a)
	       door_ar9
	       1
	       1
	       0
      )
      (setq Name_6 (entlast))
      (vl-cmdf "_circle" hole_1a "_r" 10 "")
      (setq Name_7 (entlast))
      (vl-cmdf "_circle" hole_2a "_r" 10 "")
      (setq Name_8 (entlast))
      (vl-cmdf "_circle" hole_3a "_r" 10 "")
      (setq Name_9 (entlast))
      (vl-cmdf "_circle" hole_4a "_r" 10 "")
      (setq Name_10 (entlast))
      (setq
	bp_b	  (list (+ (car door_ar6) (/ LL 5)) 0)
	door_ar10 (polar bp_b (/ pi 2) HL)
	door_ar11 (polar door_ar10 (* pi 2) (- LL 79))
	door_ar12 (polar door_ar11 (* pi 2) 28)
	door_ar13 (polar door_ar12 (* pi 2) 51)
	door_ar14 (polar door_ar13 (* pi 1.5) HL)
	door_ar15 (polar door_ar14 pi 50)
	door_ar16 (polar door_ar15 pi 120)
      )
      (vl-cmdf "_pline" bp_b "_ByLaer" door_ar10 door_ar11 "")
      (setq Name_11 (entlast))
      (vl-cmdf "-insert"
	       (strcat armonica)
	       door_ar11
	       1
	       1
	       0
      )
      (setq Name_12 (entlast))
      (vl-cmdf "_pline"	door_ar12 "_ByLaer" door_ar13 door_ar14
	       door_ar15 "")
      (setq Name_13 (entlast))
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       door_ar15
	       1
	       1
	       0
      )
      (setq Name_14 (entlast))
      (vl-cmdf "_line" door_ar16 "_ByLaer" bp_b "")
      (setq Name_15 (entlast))

      (OR (IF (>= HL 2900)
	    (setq hole_upb (polar door_ar13 (* pi 1.5) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_upb (polar door_ar13 (* pi 1.5) 200))
      )
      (setq
	hole_1b	(polar hole_upb pi 31)
	hole_2b	(polar hole_1b (* pi 1.5) 50)
      )
      (OR (IF (>= HL 2900)
	    (setq hole_downb (polar door_ar14 (/ pi 2) 250))
	  )
      )
      (IF (< HL 2900)
	(setq hole_downb (polar door_ar14 (/ pi 2) 200))
      )
      (setq
	hole_3b	(polar hole_downb pi 31)
	hole_4b	(polar hole_3b (/ pi 2) 50)
	hole_5b	(polar hole_1b pi (- LL 62))
	hole_6b	(polar hole_2b pi (- LL 62))
	hole_7b	(polar hole_3b pi (- LL 62))
	hole_8b	(polar hole_4b pi (- LL 62))
      )
      (vl-cmdf "_circle" hole_1b "_r" 10 "")
      (setq Name_16 (entlast))
      (vl-cmdf "_circle" hole_2b "_r" 10 "")
      (setq Name_17 (entlast))
      (vl-cmdf "_circle" hole_3b "_r" 10 "")
      (setq Name_18 (entlast))
      (vl-cmdf "_circle" hole_4b "_r" 10 "")
      (setq Name_19 (entlast))
      (vl-cmdf "_circle" hole_5b "_r" 10 "")
      (setq Name_20 (entlast))
      (vl-cmdf "_circle" hole_6b "_r" 10 "")
      (setq Name_21 (entlast))
      (vl-cmdf "_circle" hole_7b "_r" 10 "")
      (setq Name_22 (entlast))
      (vl-cmdf "_circle" hole_8b "_r" 10 "")
      (setq Name_23 (entlast))
      (setq
	bp_c	  (list (+ (car door_ar14) (/ LL 5)) 0)
	door_ar17 (polar bp_c (/ pi 2) HL)
	door_ar18 (polar door_ar17 (* pi 2) LL)
	door_ar19 (polar door_ar18 (* pi 1.5) HL)
	door_ar20 (polar door_ar19 pi 50)
	door_ar21 (polar door_ar20 pi 120)
      )
      (vl-cmdf "_pline"	    bp_c	 "_ByLaer"    door_ar17
	       door_ar18    door_ar19	 door_ar20    ""
	      )
      (vl-cmdf "-insert"
	       (strcat sm1050)
	       door_ar20
	       1
	       1
	       0
      )
      (vl-cmdf "_line" door_ar21 "_ByLaer" bp_c "")
      (vl-cmdf "_copy"	  Name_16    Name_17	Name_18	   Name_19
	       Name_20	  Name_21    Name_22	Name_23	   ""
	       door_ar14  door_ar19  ""
	      )
      (setq
	bp_d	  (list (+ (car door_ar19) (/ LL 5)) 0)
	door_ar22 (polar bp_d (* pi 2) LL)
      )
      (vl-cmdf "_copy"	  Name_11    Name_12	Name_13	   Name_14
	       Name_15	  ""	     door_ar14	door_ar22  ""
	      )
      (vl-cmdf "_copy" Name_20 Name_21 Name_22 Name_23 "" door_ar14
	       door_ar22 "")
      (setq
	hole_1d	(polar door_ar22 (/ pi 2) 1000)
	hole_2d	(polar hole_1d pi 70)
      )
      (vl-cmdf "_circle" hole_2d "_r" 6 "")
      (setq hole_jadit (entlast))
      (setvar "DIMTXSTY" "i")
      (vl-cmdf "_-LAYER" "_m" "Dim" "" "_l" "dimention"	"" "c" "g" "")
      (vl-cmdf "_dimlinear" bp door_ar6 "@ 0,-100")
      (vl-cmdf "_dimlinear" bp_b door_ar14 "@ 0,-100")
      (vl-cmdf "_dimlinear" bp_c door_ar19 "@ 0,-100")
      (vl-cmdf "_dimlinear" bp_d door_ar22 "@ 0,-100")
      (vl-cmdf "_dimlinear" bp door_ar3 "V" "@ -100,0")
      (vl-cmdf "_dimlinear" hole_2d door_ar22 "V" "@ 100,0")
      (vl-cmdf "_dimlinear"
	       door_ar13
	       (list (- (car door_ar13) 65) (cadr door_ar13))
	       "H"
	       "@ 0,100"
      )
      (vl-cmdf "_dimlinear" hole_2d hole_1d "H" "@ 0,100")
      (vl-cmdf
	"_dimlinear"
	(list (car door_ar22) (+ (cadr door_ar22) HL))
	(list (- (car (list (car door_ar22) (+ (cadr door_ar22) HL))) 65)
	      (cadr (list (car door_ar22) (+ (cadr door_ar22) HL)))
	)
	"H"
	"@ 0,100"
      )
    )
  )
  (unload_dialog dcl_id)
  (vl-cmdf "ZOOM" "A" "")
  (mapcar 'setvar list_sys_var sys_var)
  (redraw)
  (princ)
)





(defun my_arm (/ test)
  (vl-load-com)
  (REDRAW)
   (cond	((= "20" (setq test (pices))) (2sm))
	((= "40" test) (4sm))
        ((= "22" test) 2sm2ym)
	((= "02" test) (2ym))
	(t (alert "éù èòåú áäëðñú ðúåðéí"))
  )
  )
Holon вне форума  
 
Непрочитано 02.08.2007, 11:10
#9
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,829


Во-первых, и в-главных, переводи все свои переменные в локальные. Например, как бы я переделал pices:
Код:
[Выделить все]
(defun pices (/ basepath dclfile_name dcl_id res on_ed1 on_ed2)
  (setq basepath     "u:\\lisp\\pl\\"
        dclfile_name "armonica.dcl"
        ) ;_ end of setq
  (if (and (findfile (strcat basepath dclfile_name))
           (setq dcl_id (load_dialog (strcat basepath dclfile_name)))
           ) ;_ end of and
    (progn
      (new_dialog "picdcl" dcl_id)
      (foreach item (list (list "left_dcl" "(setq on_ed1 $value)")
                          (list "riht_dcl" "(setq on_ed2 $value)")
                          ) ;_ end of list
        (set_tile (car item) "")
        (action_tile (car item) (cadr item))
        ) ;_ end of foreach
      (start_dialog)
      (unload_dialog dcl_id)
      (setq res (strcat on_ed1 on_ed2))
      ) ;_ end of progn
    (alert "Can't find a dialog file!")
    ) ;_ end of if
  res
  ) ;_ end of defun
Поскольку что там в диалоге не знаю, то и код "на ходу" сделан.
По отладке - см. аттач.
[ATTACH]1186038643.rar[/ATTACH]
---
Добавлено: прочитал что написао сначала, чуть кондратий не хватил. Код подправил, так оно (ИМХО) изячнее получится.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.08.2007, 12:09
#10
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Код:
[Выделить все]
(defun pices (/ basepath dclfile_name dcl_id res on_ed1 on_ed2) 
  (setq basepath     "u:\\lisp\\pl\\" 
        dclfile_name "armonica_2.dcl" 
        ) ;_ end of setq 
  (if (and (findfile (strcat basepath dclfile_name)) 
           (setq dcl_id (load_dialog (strcat basepath dclfile_name))) 
           ) ;_ end of and 
    (progn 
      (new_dialog "picdcl" dcl_id) 
      (foreach item (list (list "left_dcl" "(setq on_ed1 $value)") 
                          (list "riht_dcl" "(setq on_ed2 $value)") 
                          ) ;_ end of list 
        (set_tile (car item) "") 
        (action_tile (car item) (cadr item)) 
        ) ;_ end of foreach 
      (start_dialog) 
      (unload_dialog dcl_id) 
      (setq res (strcat on_ed1 on_ed2)) 
      ) ;_ end of progn 
    (alert "Can't find a dialog file!") 
    ) ;_ end of if 
  res 
  ) ;_ end of defun

$ (pices)
; error: bad argument type: stringp nil
_$
Holon вне форума  
 
Непрочитано 02.08.2007, 12:48
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,829


И в каком месте ошибка?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.08.2007, 13:01
#12
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Код:
[Выделить все]
"Left_DCL"  "Riht_DCL"
Holon вне форума  
 
Непрочитано 02.08.2007, 13:12
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,829


А поконкретнее? По-моему, в dcl регистр ключа значения не имеет. Или имеет?
Если второе, поменяй код как требуется. Я-то хотел показать, что (обрати внимание!) после выполнения функции переменные basepath, dclfile_name, dcl_id, res, on_ed1, on_ed2 будут nil!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.08.2007, 13:25
#14
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Перестройка этой функции неповлияла на основную проблему, как и прежде при вызове функции она исправно открывает все DCL-ки, отрисовывает параметрический чертеж, при повторном запуске и вводе новых параметров все отлично, чертеж накладывается на предыдущий чертеж отрисовывая все полностью, а вот если я пользуюсь командой
erase и запускаю функцию заново, то я получаю неполностью отрисованный чертеж без размерных линии, проблема, но если я опять все вытираю и перд запуском функции набираю комманду (redraw) или
(regen) опять все прекрасно работает. Пробовал вставлять в код эти функции результат отрицательный повидимому я некорректно вставляю эти команды.....
Holon вне форума  
 
Автор темы   Непрочитано 02.08.2007, 13:27
#15
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Цитата:
Сообщение от Кулик Алексей aka kpblc
А поконкретнее? По-моему, в dcl регистр ключа значения не имеет. Или имеет?
Если второе, поменяй код как требуется. Я-то хотел показать, что (обрати внимание!) после выполнения функции переменные basepath, dclfile_name, dcl_id, res, on_ed1, on_ed2 будут nil!
имеет
Holon вне форума  
 
Непрочитано 02.08.2007, 17:10
#16
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,829


Ну если имеет, то переименуй left_dcl в Left_DCL и riht_dcl в Riht_DCL соответственно. И все же внеси все переменные в локальные.
Кстати, вопрос - а что делается этим лиспом, если не секрет?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.08.2007, 18:05
#17
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


это автоматизация проектирования для стекольной промышленности, в
данном случае это ряд дверей складывающиеся гармошкой,
включая все вырезы для фурнитуры.

Проблема остается открытой, как ни странно все функции по отдельности работают адекватно, и еще одно, возможно-ли получить список локальных переменных автоматически, или их надо выкавыривать из кода вручную.
Holon вне форума  
 
Непрочитано 02.08.2007, 20:02
#18
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Твоя прграмма работает некорректнос с первого раза - зто видно из приведённого протокола:
видимо где-то неправильное ключевое слово в
Command:
Point or option keyword required.
2D point or option keyword required.
Point or option keyword required.
Requires numeric radius, point on circumference, or "D".
Requires numeric radius, point on circumference, or "D".
...

Используй отладчик или хотя бы включи
CMDECHO и смотри протокол, что бы понять где ошибка.
Случайно к примеру заметил в коде
Код:
[Выделить все]
(vl-cmdf "_dimdiameter" hole hole_10b "_a" 45 "" "")
- сам же писал, что выдаёт ошибку!
И обязательно используй локальгые переменные - вручную выковыривай!
Евгений А. вне форума  
 
Непрочитано 02.08.2007, 21:57
#19
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,829


Еще одна ошибка:
Код:
[Выделить все]
(cond ((= "20" (setq test (pices))) (2sm))
        ((= "40" test) (4sm))
        ((= "22" test) 2sm2ym)
        ((= "02" test) (2ym))
        (t (alert "Some text"))
        ) ;_ end of cond
А ИМХО надо
Код:
[Выделить все]
(cond ((= "20" (setq test (pices))) (2sm))
        ((= "40" test) (4sm))
        ((= "22" test) (2sm2ym))
        ((= "02" test) (2ym))
        (t (alert "Some text"))
        ) ;_ end of cond
Насчет переменных - да, надо руками выколачивать. Другого метода лично я не знаю.<...>Неработающий кусок снес.
---
Добавлено:
Еще один момент:
Код:
[Выделить все]
(vl-cmdf "_line" door_ar1 "_ByLaer" door_ar2 "")
Несуразность однако. Должно быть наподобие
Код:
[Выделить все]
(setvar "cecolor" "bylayer")
(setvar "celtype" "bylayer")
(setvar "celweight" "bylayer")
(vl-cmdf "_line" door_ar1 door_ar2 "")
---
Добавлено 2:
Во вложении - тот вариант, которым я бы делал (наверное). Хотя почему б не попробовать использовать динамические блоки? Такое может оказаться самым выгодным...
[ATTACH]1186081689.rar[/ATTACH]
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 03.08.2007, 10:47
#20
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Спасибо изучаем, но честно говоря с первого взгляда ход мысли неуловил тяжело для моего понимания 8)
Holon вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Regen

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск