6
15
9
初来乍到
;;;compiled from various lisps. Thanks to all Developers.;;;compiled by Balaji Subramanian VSL Middle East balaji.indian@yahoo.com;;;Version 1.0 Inner Tenndon Z-Values Created.;;;VERSION 1.1 Z-VALUES moved and duplicate lines deleted.;;;VERSION 1.2 Z-VALUES ALIGNED AT EQUAL SPACING(defun *error* (errmsg) (princ "\nAn error has occurred in the programme. ") (terpri) (prompt errmsg) (princ))(defun trap1 (errmsg) ;define function(command "u" "b") ;undo back(setvar "osmode" oldsnap) ;restore variables(setvar "clayer" oldlayer)(setvar "cmdecho" oldecho)(setq *error* temperr) ;restore *error*(prompt "\nResetting System Variables ") ;inform user (princ))(defun texAlign (item /) (if(= daly:Direct "Y") (progn (setq disDelta(- disDelta daly:strDis)) ; end setq (vla-put-Alignment (car str) tAlignment) (cond ((= tAlignment 0) (vla-put-InsertionPoint (car str) (vlax-3D-Point(car insPoint) (+ disDelta(cadr insPoint))(nth 2 insPoint))) ) ((member tAlignment '(1 2 4 6 7 8 9 10 11 12 13 14)) (vla-put-TextAlignmentPoint (car str) (vlax-3D-Point(car tAlignPt) (+ disDelta(cadr tAlignPt))(nth 2 tAlignPt))) ) ((member tAlignment '(3 5)) (princ "\nCan't align string with Aligned or Fit alignment ") ) ) ; end cond) ; end progn (progn (setq disDelta(- disDelta daly:strDis)) ; end setq (vla-put-Alignment (car str) tAlignment) (cond ((= tAlignment 0) (vla-put-InsertionPoint (car str) (vlax-3D-Point(-(car insPoint)disDelta) (cadr insPoint)(nth 2 insPoint))) ) ((member tAlignment '(1 2 4 6 7 8 9 10 11 12 13 14)) (vla-put-TextAlignmentPoint (car str) (vlax-3D-Point(-(car tAlignPt)disDelta) (cadr tAlignPt)(nth 2 tAlignPt))) ) ((member tAlignment '(3 5)) (princ "\nCan't align string with Aligned or Fit alignment ") ) ) ; end cond ) ; end progn ) ; end if ) ; end of texAlign(defun c:iz () (vl-load-com) (setq temperr *error*) ;store *error*(setq *error* trap1) ;re-assign *error*(setq oldecho (getvar "cmdecho")) ;store variables(setq oldlayer (getvar "clayer"))(setq oldsnap (getvar "osmode"))(setvar "cmdecho" 0) ;reset variables(setvar "osmode" 32)(command "undo" "m") (command "layer" "make" "Z-VALUES" "color" "5" "" "") (princ "\nSelect Outer Tendon: ") (setq ten2 (ssget)) (princ "\nSelect Inner Tendon: ") (setq ten1 (ssget)) (princ "\n>> Select Points >>") (setvar "osmode" 0) (if (setq i -1 ss (ssget '((0 . "POINT")))) ;IF STARTS HERE (if (and (setq ent (car (entsel "\nSelect Reference Line: "))) (wcmatch (cdr (assoc 0 (entget ent))) "*LINE,CIRCLE,ELLIPSE,ARC")) (while (setq pt (ssname ss (setq i (1+ i)))) (setq p2 (vlax-curve-getClosestPointtoprojection ent (setq p1 (cdr (assoc 10 (entget pt)))) '(0 0 1))) (entmake (list (cons 0 "LINE") (cons 10 p1) (cons 11 p2)))))) ;IF ENDS HERE (setq ssetzv (ssget "X" '((0 . "LINE")(8 . "Z-VALUES")))) (command "EXTEND" ten2 "" ssetzv "") (command "TRIM" ten1 "" ssetzv "" )(terpri)(prompt "\nSelect Z-Value lines: ") (setvar "OSMODE" 32) (setq ss1 (ssget "X" '((0 . "LINE")(8 . "Z-VALUES"))))(setvar "OSMODE" 0) (progn ;PROG1 STARTS HERE (setq count 0) (repeat (sslength ss1) ;REPEAT STARTS HERE (setq cont (entget (ssname ss1 count))) (if (= "LINE" (cdr (assoc 0 cont))) ;IF STARTS HERE (progn ;PROG2 STARTS HERE (setq CONST_txt-ht 250.0 CONST_style "Standard" layer (cdr (assoc 8 cont)) ip (cdr (assoc 10 cont)) rot (angle (cdr (assoc 10 cont)) (cdr (assoc 11 cont)))