Группы пользователей Autodesk

         

Выбор типа линий для границы дорожки


Создание проекта и добавление элементов интерфейса

 

Создание проекта и добавление элементов интерфейса 
 

Выбор типа линий для границы дорожки



При построении границы парковой дорожки приложение должно позволять пользователю выбирать между компактной и обычной полилинией. В первой версии функции gp:drawOutline граница всегда представляла собой компактную полилинию. Теперь, когда готово диалоговое окно, можно создать процедуру и для построения обычной полилинии. Для этого функция gp:drawOutline должна перед рисованием границы определять, какой тип полилинии необходимо использовать.

Необходимые изменения функции gp:drawOutline включены в следующий фрагмент кода. Изменения в файле gpdraw.lsp обозначены полужирным шрифтом.

(setq PathAngle (cdr (assoc 50 BoundaryData))

Width (cdr (assoc 40 BoundaryData))

HalfWidth (/ Width 2.00)

StartPt (cdr (assoc 10 BoundaryData))

PathLength (cdr (assoc 41 BoundaryData))

angp90 (+ PathAngle (Degrees->Radians 90))

angm90 (- PathAngle (Degrees->Radians 90))

p1 (polar StartPt angm90 HalfWidth)

p2 (polar p1 PathAngle PathLength)

p3 (polar p2 angp90 Width)

p4 (polar p3 (+ PathAngle (Degrees->Radians 180))

PathLength)

poly2Dpoints (apply 'append

(mapcar '3dPoint->2dPoint (list p1 p2 p3 p4))

)

poly3Dpoints (mapcar 'float (append p1 p2 p3 p4))

;; get the polyline style

plineStyle (strcase (cdr (assoc 4 BoundaryData)))

) ;_ end of setq

;; Add polyline to the model space using ActiveX automation

(setq pline (if (= plineStyle "LIGHT")

;; create a lightweight polyline

(vla-addLightweightPolyline

*ModelSpace* ; Global Definition for Model Space

(gp:list->variantArray poly2Dpoints) ;data conversion

) ;_ end of vla-addLightweightPolyline

;; or create an old-style polyline

(vla-addPolyline

*ModelSpace*

(gp:list->variantArray poly3Dpoints) ;data conversion

) ;_ end of vla-addPolyline

) ;_ end of if

) ;_ end of setq

При вводе кода вручную следует быть очень внимательным, так как здесь приходится не только добавлять код, но также удалять и переставлять строки. Рекомендуется просто скопировать код из электронного учебного пособия и вставить его в файл.

 



Содержание раздела