Hello jyan,
If I'm not wrong, this is the sollution:
(DEFUN C:3aa ( / wtxt1 )
(if (not align) (arxload "geom3d" T))
(SETQ SS1 (SSGET))
(SETQ PT1 (GETPOINT "\nPick 1st Source Point (0,0)")
PT2 (GETPOINT "\nPick 2nd Source Point (1,0)")
PT3 (GETPOINT "\nPick 3rd Source Point (0,1)")
D1 (LIST 0.0 0.0 0.0)
D2 (LIST 1.0 0.0 0.0)
D3 (LIST 0.0 1.0 0.0)
)
(ALIGN SS1 PT1 D1 PT2 D2 PT3 D3)
(command "explode" "all")
(setvar "peditaccept" 0)
(command ".pedit" "m" "all" "" "y" "j" "0" "")
(command "zoom" "e")
(setvar "CMDECHO" 0)
(setvar "clayer" "0")
(setvar "celtype" "bylayer")
(setvar "CECOLOR" "bylayer")
(setvar "CELWEIGHT" -1)
(princ)
)
(defun C:EF74 ; = Edge Flaps at 74 units wide
(/ getpt plsel pl1 pl2 par1 par2)
(defun getpt (pl par)
(vlax-curve-getPointAtParam pl par)
); defun
(if (setq plsel (entsel "\nSelect straight-edged Polyline to add edge flaps: "))
(progn ; then
(setvar 'offsetgaptype 1); to Offset with filleted arc-segment corners
(setvar 'osmode 0); turn off Object Snap
(setvar 'plinewid 0); just in case
(setvar 'clayer (cdr (assoc 8 (entget (car plsel))))); add
(setq pl1 (vlax-ename->vla-object (car plsel)))
(vla-offset pl1 74)
(if (< (vla-get-area (vlax-ename->vla-object (entlast))) (vla-get-area pl1))
; went inboard?
(progn ; then
(entdel (entlast)); delete that one
(vla-offset pl1 -74); go the other way
); progn
); if
(setq
pl2 (entlast)
par1 -1.0
par2 -1.0
); setq
(command "_.pline")
(repeat (fix (vlax-curve-getEndParam pl1))
(command
(getpt pl1 (setq par1 (1+ par1)))
(getpt pl2 (setq par2 (1+ par2)))
(getpt pl2 (setq par2 (1+ par2)))
); command
); repeat
(command "_close")
(command "layer" "m" "hidden" "c" "8" "" "L" "hidden" "" "")
(vla-put-Layer pl1 "hidden"); add
(vla-put-LinetypeScale pl1 11.0)
(entdel pl2)
); progn [then]
); if
(princ)
); defun
(DEFUN C:NEWCOMMAND;
(C:3AA)
(C:EF74)
(princ)
)
Greetings from Holland