Message 1 of 4
Create mesh between two curved pipes in AutoCAD

Not applicable
01-17-2019
02:25 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello everybody!
I found on this forum a lisp that creates pipes(See pict).But I would like a lisp that draws the turns (elbows) as arc. Is it possible ? can someone modify this lisp? thanks in advance
;;CODE START ;;***DB_Pipe.lsp Copyright (C) Dann Brower 4-19-2006 (defun C:DB_Pipe (/ adoc layrs layr1 layr2 obj obja objb wdth odist tmp olducs ptlist) (vl-load-com) (command "Undo" "mark") (setq temperr *error* *error* pipeerror olducs (getvar "ucsorg") ) (command "Ucs" "World") (setq wdth (GetReal "\nEnter Width of Pipe: ") odist (/ wdth 2) ptlist (DB_GetPlinePoints) tmp (vlax-make-safearray vlax-vbDouble (cons 0 (- (length ptlist) 1))) ) (vlax-safearray-fill tmp ptlist) (setq adoc (DB_GetAdoc) layrs (vla-get-Layers adoc) layr1 (vla-add layrs "d-pipe") layr2 (vla-add layrs "d-pipe-mid") ) (setq obj (vla-addPolyline (vla-get-modelspace adoc) tmp) obja (car (vlax-invoke obj 'offset (- odist wdth))) objb (car (vlax-invoke obj 'offset odist)) ) (vla-put-Color layr1 53) (vla-put-color layr2 17) (vla-put-Linetype layr2 "HIDDEN") (vla-put-Layer obja "d-pipe") (vla-put-linetype obja "ByLayer") (vla-put-Layer objb "d-pipe") (vla-put-linetype objb "ByLayer") (vla-put-Layer obj "d-pipe-mid") (vla-put-linetype obj "ByLayer") (vla-put-ConstantWidth obj wdth) (setq *error* temperr) (command "Ucs" "Move" olducs) (command "Redraw") (princ) ) ;;The following gets and returns the current active AutoCAD document ;;****************************************************************** (defun DB_GetAdoc (/ acadobj adoc) ;;usage = (setq adoc(DB_GetAdoc)) (setq acadobj (vlax-get-acad-object)) (setq adoc (vla-get-ActiveDocument acadobj)) adoc ;;returns result for use in calling program ) (defun DB_GetPlinePoints (/ ptlist pt1 pt2) (setq pt1 (Getpoint "Select First Point:") ptlist pt1 ) (while pt1 (setq pt2 (Getpoint pt1 "\nSelect Next Point: ")) (if pt2 (progn (grdraw pt1 pt2 1) (setq ptlist (append ptlist pt2) pt1 pt2 ) ) (setq pt1 pt2) ) ) ptlist ) (defun pipeerror (errmsg) (princ "\nAn error has occurred!. ") (terpri) (prompt errmsg) (command "ucs" "M" olducs) (command "undo" "Back") (setq *error* temperr) (command "Redraw") (princ) ) ;;CODE END