thank you your answer. but it's a bit different than what i want
I found it lsp. i want to fix a little
attached pic file. thank you always
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Duct_Trans - Duct transition from one size to another ;;;
;;; draws polyline transition symbol for multiple duct sizes ;;;
;;; ;;;
;;; Copyright Notice: ;;;
;;; Copyright (c) 03/2008 Shawn Evjen ;;;
;;; Routine built on personal time for personal use to expediate tedious ;;;
;;; task. Revisions to improve code and expand program for specific ;;;
;;; requests also completed on personal time. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:Duct_Trans (/ osm scmd pt1 pt2 ang pt1x pt1y p1 p2 p3 p4 p5)
(setq osm (getvar "osmode")
scmd (getvar "cmdecho")
)
(setvar "osmode" 1)
(setvar "cmdecho" 0)
(graphscr)
(setq pt1 (getpoint "\nPick first point for duct transition: "))
(setvar "lastpoint" pt1)
(setvar "osmode" 128)
(setq pt2 (getpoint "\nPick point perpendicular to duct: "))
(setq ang (* 180 (/ (angle pt1 pt2) pi)))
(setq sDist (fix (+ (distance pt1 pt2) 0.1)))
(setq startWidth
(getreal (strcat "\nStarting width of transition: <"
(itoa sDist)
"> "
)
)
)
(if (= startWidth nil)
(setq startWidth sDist)
)
(setq endWidth (getreal (strcat "\nStarting width of transition: <"
(itoa (fix (+ 2 startWidth)))
"> "
)
)
)
(if (= endWidth nil)
(setq endWidth (+ 2 startWidth))
)
(setq halfTrans (/ (- endWidth startWidth) 2))
(setvar "osmode" (+ 16384 osm))
(setq pt1x (car pt1))
(setq pt1y (cadr pt1))
(setq p1 (list pt1x pt1y))
(setq p2 (list (+ pt1x startWidth) pt1y))
(setq p3 (list (+ pt1x startWidth halfTrans) (+ pt1y 400)))
(setq p4 (list (- pt1x halfTrans) (+ pt1y 400)))
(if (< startWidth endWidth)
(progn
(setq p5 (list (+ pt1x (/ startWidth 2.0)) pt1y))
(command "pline" p4 p1 p2 p3 p5 p4 p3 "")
)
(progn
(setq p5 (list (+ pt1x (/ startWidth 2.0)) (+ pt1y 400)))
(command "pline" p1 p2 p3 p4 p1 p5 p2 "")
)
)
(command "rotate" (entlast) "" p1 ang)
(setvar "cmdecho" scmd)
(setvar "osmode" osm)
(princ)
)