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


Окончательная компоновка


Построение границы дорожки

 

Построение границы дорожки  

Окончательная компоновка

Теперь все готово для построения границы парковой дорожки.

Для обновления кода

  1. Замените старый код функции gp:drawOutline следующим фрагментом:
  2. ;;;---------------------------------------------------------------

    ;;; Функция: gp:drawOutline

    ;;;---------------------------------------------------------------

    ;;; Описание: С помощью этой функции можно создать границу парковой

    ;;; дорожки.

    ;;;---------------------------------------------------------------

    ;;; Примечание: Проверка на наличие ошибок и коррекция не выполняются на

    ;;; BoundaryData parameter. The sequence of items within this

    ;;; parameter does not matter, but it is assumed that all sublists

    ;;; are present and contain valid data.

    ;;; --------------------------------------------------------------

    (defun gp:drawOutline (BoundaryData / VLADataPts PathAngle

    Width HalfWidth StartPt PathLength

    angm90 angp90 p1 p2

    p3 p4 polypoints pline

    )

    ;; extract the values from the list BoundaryData

    (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)

    polypoints (apply 'append

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

    )

    )

    ;; ***** data conversion *****

    ;; Notice, polypoints is in AutoLISP format, consisting of a list

    ;; of the 4 corner points for the garden path.

    ;; The variable needs to be converted to a form of input parameter

    ;; acceptable to ActiveX calls.

    (setq VLADataPts (gp:list->variantArray polypoints))

    ;; Add polyline to the model space using ActiveX automation.

    (setq pline (vla-addLightweightPolyline




    Начало  Назад  Вперед



    Книжный магазин