|
Upload
>> Mô tả tóm tắt nội dung file: |
Bộ AutoLISP chiến đấu Do kts. Trần Ngọc Thắng TỰ BIÊN SOẠN + SƯU TẦM dùng được cho AutoCAD Version Hight : Bổn CỐC CHỦ TUYỆT TÌNH CỐC : Ngưỡng mộ Long Cô Nương phái Cổ MỘ : Chờ Chết Sắp Sẵn Quan Tài Trong Mộ ĐÓ _-_-_ ^ _-_-_ Dại Gì Mà Chuyển Nhỡ Mai Này Tôi Chết Còn Có Cái Mà Dùng . . . Năm Nay Tôi Gặp Tuổi Hạn 49 tuổi . Các Cụ Nói 49 chưa qua 53 đã tới . . . Bó Tay Các Bác Luôn . . . Mà Xem Sách Các Thầy PHÁN TÔI RẰNG tôi thọ chỉ có 68 tuổi là tôi chết . . . còn những 19 năm nữa tôi mới đến số tuổi chết . . . Cũng Lâu Đấy Chứ các Bác ./. Chuyện Mã Lương vẽ giỏi đẹp . . . Được ông Bụt hay ông Tiên tặng cho cây Bút Thần : ông Dặn Mã Lương hãy vẽ Giúp Người Nghèo . . . LỆNH VẼ KHUNG TÊN ~ Tiêu Diệt Lệnh : Lệnh Xé Xác thằng Bé Ra Làm 100 Mảnh : Uống Máu - Ăn Gan : Mới Hả Giận |
>> Tác giả: |
kiến trúc sư . Trần Ngọc Thắng [ đổi đường dẫn đến thư mục chứa LISP ngắn đi nếu dài quá không đọc được ] |
>> Loại file: |
word Ảnh (jpg, png..) Khác (Nếu file nén thì hãy cho biết loại file gốc trước khi được nén.) |
>> Link Files trên web khác (nếu có): |
https://www.cadviet.com/forum/topic |
- ********************************************************************************
8 ?% N$ W( u1 T) [5 C - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *9 g; i8 e3 Y" u" W% K
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
0 @6 X2 K% Z9 I! W9 v( C - * Suu tam & Soan *; Q% W' ^& d3 m# d0 P8 Q N3 h" F
- ********************************************************************************
6 ~% l# ]. E }( X( N
- {1 C; o5 {. L/ A1 p" z) x% {( I- ; Next available MSG number is 104
6 Y& X5 A. A0 M - ; MODULE_ID ACAD2000doc_LSP_* X. x* E3 w& S# C- L5 q1 F
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000( j" O. I) G* R* s, Y
- ;;; g9 H3 M+ z: A0 L* @
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
; C, ^0 B/ P# C( m J' K - ;;;
( U1 w/ v' P1 j) i, R$ v0 c$ r - ;;; Permission to use, copy, modify, and distribute this software$ l( }# K% g- w& f
- ;;; for any purpose and without fee is hereby granted, provided! D/ G& I5 \# {: m* M5 e
- ;;; that the above copyright notice appears in all copies and9 Q# K$ J6 d0 q/ c9 n& Q9 p
- ;;; that both that copyright notice and the limited warranty and+ D* ^; d& X. L% I, r i# ?
- ;;; restricted rights notice below appear in all supporting
7 q0 Q# m8 V O* I. l - ;;; documentation.% \: [, u8 {/ }/ a- c
- ;;;
' ^) J; `5 R. E) P+ u* h# J - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.% u* g! ^' e* M! U5 I3 h4 P
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF- u/ p% a# r% [ B* y
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC., P! g2 q) N! b1 A. P" l: ]
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE. `; ], \7 n. t& n2 `0 A/ ^% @2 e: }. \
- ;;; UNINTERRUPTED OR ERROR FREE.7 k' |! p& b3 X2 z5 V1 ^
- ;;;
! Z" i ]: t! t% W4 T0 [ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to1 I2 H% x" j$ Y- s! s
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer9 S0 ?' E, h6 g' n9 q! v5 n- X
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) % S3 i- b7 t; h$ @/ l
- ;;; (Rights in Technical Data and Computer Software), as applicable.
+ [& N; W# H5 ]5 P6 ^/ g - ;;;
% n& v4 @; c* B5 p/ O5 ~5 z( B - ;;;.
/ _1 s- }) g7 s# j - ;;;& |/ I( }5 c* @8 f4 N
- ;;; Note:) r9 ]) M6 N9 S
- ;;; This file is loaded automatically by AutoCAD every time $ I8 N v8 j& Y
- ;;; a drawing is opened. It establishes an autoloader and0 K! Z. y$ A8 U! A' E" \
- ;;; other utility functions.
7 o5 [0 p1 i& n - ;;;
6 y, X* {: R) ?- O% a3 s; M+ n - ;;; Globalization Note:
, x7 M, z; k) A$ R J" k5 U2 ~6 ? - ;;; We do not support autoloading applications by the native * R8 m& G( T) f& v" C% r
- ;;; language command call (e.g. with the leading underscore
8 t4 [9 t0 y3 t* O3 U - ;;; mechanism.) I; a- E" e U8 r
. q1 n& K' B' K( D
% N) W( [! t; K2 {9 d# x1 @0 x- ;;;===== Raster Image Support for Clipboard Paste Special =====
/ h# H( W$ B+ ]$ e6 ^3 ~ - ;;3 i y% O, t8 V6 G0 e: b8 I) [
- ;; IMAGEFILE/ @& o# ~# E/ B" K6 c: v
- ;;
7 U; C5 [+ I2 x* z0 N2 \4 c - ;; Allow the IMAGE command to accept an image file name without
" J1 i8 m8 o) \% I9 C - ;; presenting the file dialog, even if filedia is on.! @' z: I; P* o) N( D7 i" l
- ;; Example: (imagefile "c:/images/house.bmp")9 b4 v% w; T5 Y
- ;;
7 T$ ~: _ W" {/ i; L0 T - (defun imagefile (filename / filedia-save cmdecho-save)6 r ~; {. W+ s" K3 w
- (setq filedia-save (getvar "FILEDIA"))/ g M) Y8 l3 [; i: v) r
- (setq cmdecho-save (getvar "CMDECHO"))7 F, A) f# z$ _. l! Q9 s( ?
- (setvar "FILEDIA" 0)% ?1 W4 F- n' o# w5 ~9 @
- (setvar "CMDECHO" 0): h! H1 r3 F- ], W W
- (command "_.-image" "_attach" filename)
- m) ]# T! c( t2 A$ ^" x2 R - (setvar "FILEDIA" filedia-save)
( M; J3 Y" r& f# K% C - (setvar "CMDECHO" cmdecho-save)
; {( l a' A! s& ]- W) E8 G - (princ)
{& R+ H# L1 | w. E9 U1 A - )) h. x' \7 F( q# o
7 h' l2 }- o1 t5 U- (defun c:zx () (command "zoom" ".5x"))
+ T$ v7 d' ~; M+ W1 P - (defun c:zz () (command "zoom" "p"))
+ {# M; J/ m% c7 M; p - (defun c:za () (command "zoom" "a"))
2 r7 w- h) u7 _ - (defun c:zd () (command "zoom" "d"))0 l$ v4 I8 q# ^* m# ~0 R) L, o
- (defun c:ze () (command "zoom" "e"))3 ` @1 Y3 S0 }5 I
- (defun c:zr () (command "zoom" "" ""))
+ u5 l7 ?3 o( ~0 \4 C - (defun c:vv () (command "ucs" "v"))% ?. w" a8 t% @
- (defun c:co () (ssget) (command "copy" "p" "" "m"))9 E. {3 Q. _7 O7 A
- (defun c:c () (command "circle"))' }& }' w; @ X. q5 |6 m
- (defun c:rt () (command "rotate"))
7 G) l7 G/ i* d - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
% S# X% @4 }: U$ G9 v& A; x - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))* }3 O }/ h6 d' y7 s
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))3 @0 e8 E; G1 l6 y5 ]
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
4 g6 V4 f3 d, a6 S N0 A9 b - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
6 s# V- h1 _# h, M( B6 Y - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))8 J% C* j8 W& z0 k. J
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))+ P! s) f* W( Z, }, [' ?
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
* O- {( f' c& k6 O7 M/ u ? - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
2 ~ w& B' B& V# k! l - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))5 W9 u1 R; W1 ]/ g3 B- v: R4 T
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
# i& N$ h' q. b0 O" x. O! j - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))5 P4 n p1 U8 ~# E. N6 g/ d+ o
- (defun c:fd () (command "find" "p" "" )(princ))(princ)( J9 M, \0 K/ {' m; H/ j
3 I" Q& b. ?4 w: J, d2 S% x- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
0 `0 K& P/ x; ~2 N' p( i - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)9 S% A. t3 r4 k& J' E) g
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)" |; C& c/ Y% E0 T4 V1 F5 i
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
* X2 Y9 E9 d+ ?: ~+ i' L' g6 i5 U - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))8 c$ N1 I) f+ m1 ^
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
4 P# p, S" f$ a' T1 V4 b - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
/ U4 v1 s y/ h$ o% N - 2 p& B; C) H8 p$ C* A9 K+ F1 x
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
: B; I, I! @/ a8 [ - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))) I& R/ O5 S# Y% `
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))$ i8 e- i" n& ^; y. K- n7 v
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n")); @/ }/ C* n% \6 y! i
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
* I; f; i; a$ |7 y6 T3 b3 m, u - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
+ \9 b! l" a O2 O' n! q
# [. e3 q: U" n* f, m- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
) L0 J. r# N, t* K1 ~* F) c - - q. C3 z% F5 D
- ;free lisp by cadviet,cd2k446 I3 U) l) M, `8 L6 x
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538307 u3 u7 L1 X( `4 K( I
- (defun c:FTEXT (/ ent tstyle )
& h* q( H; }! r" I- s, B1 | - (command "undo" "be")' N3 m7 ?* \0 C
- (setq ent (entsel "\n Pick text :"))# l b- w6 g" @+ ^" F. B
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
% h+ r- c0 `: D! T! ?- u4 K6 T - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n"), v1 U$ |( K4 I7 ?4 b$ ]+ G
- (setvar "TEXTSTYLE" Tstyle)
" B0 }' `6 D$ x, f+ H* } - (command "undo" "end")- G9 Y; Y5 F( }, H. D
- )
- W. ]1 k: e1 l7 B( B; Z! ~ - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)' n! g* D+ h8 i1 c8 M
# Z% R" h0 H2 Q* y$ I- ;free lisp by cadviet,cd2k443 H0 N( C0 S+ Y9 x3 o
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
8 Y3 W) Z# k5 D( H6 P - (defun c:Fvnh (/ ent tstyle )
7 [8 c, \' _( r; _# _ j" @' C - (command "undo" "be")
! d1 q; X) o9 \, z5 u - (setq ent (entsel "\n Pick text :"))
" d ^8 W, `. l5 ~- T+ } - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))8 z* K9 L- Q+ x6 c/ I3 z
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
* v: A* r) ~$ }( s' d - (setvar "TEXTSTYLE" Tstyle)
( Z; T: [* T5 l9 |4 \8 a; a - (command "undo" "end")- P; X5 |. M& ]$ m
- )
: r! t; O- v* W+ f# g
, I; M: r( C, @, `2 D2 [$ B) C- ;free lisp by cadviet,cd2k440 m! V' a( c" H1 O: d
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
0 l3 s. Z% a# ~ - (defun c:Chbg (/ ent tstyle )+ q& r9 N# G. `9 c# z' |
- (command "undo" "be"), n, u I. w0 Y) u# R5 p
- (setq ent (entsel "\n Pick text :"))
+ i5 S7 Z" K0 g - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))! u, g1 \. I5 e3 B, U- g
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
" U8 v x @5 U9 Y - (setvar "TEXTSTYLE" Tstyle)
- K) s! b W( m/ d0 I$ D, y - (command "undo" "end")
$ `* h, R0 M0 r5 z - )
F* b) f# Q1 S/ ]# v
& f* H: l: b/ r" z; q- ;free lisp by cadviet,cd2k44$ ?" Y6 p: X; P' K" X) u
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
% A, n- z1 p% q7 T; F! @ - (defun c:Chsm (/ ent tstyle )
( W% _7 }% W/ |6 P5 T8 G - (command "undo" "be"). `! H7 ?% o( u. t8 \
- (setq ent (entsel "\n Pick text :"))* k, T) w, L/ N# H9 A& p
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))/ @8 m0 c- t9 i; J+ G& h4 E
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n") ]3 \( { Q3 e% Q6 D
- (setvar "TEXTSTYLE" Tstyle)( G4 S/ B% D1 ?7 } K
- (command "undo" "end")
5 _! l0 s, x3 L0 R" C# k9 w - )" [' |" ` Q4 v2 ^# U* i
- : { S; l9 ]* H, H
- ;free lisp by cadviet,cd2k44$ Z5 `9 N- q5 S3 Q
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
6 d0 U! i+ f' d* h - (defun c:Fttf (/ ent tstyle )
2 s/ L! ~. W! O9 }* h$ f6 ?0 |/ X - (command "undo" "be")& \2 h7 X0 p2 W% c& g7 D; ]
- (setq ent (entsel "\n Pick text :"))
2 L) Z; K M" K1 A - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))! f# J9 [6 c- F
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
9 `9 c; z8 `& b6 u$ S - (setvar "TEXTSTYLE" Tstyle)' v0 Q2 }9 @; D2 ?2 t
- (command "undo" "end")2 y5 z4 ^/ \7 s$ U. r9 T
- )
# b5 L( f/ L5 q2 T( y; F2 R3 @ - , ]6 j, Z# w$ ?- V2 u
- ;;; ============================================
- L% l& ~$ r7 K4 y7 p, |! O. k0 H - ;;;( r/ x r5 G3 Z/ ^: ?
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
0 Q. n3 u/ u/ l4 J: L - ;;;
3 Z/ \$ W( B; X/ F5 N' a/ h3 j - ;;; ============================================) W+ i; t5 J1 B/ n* u& ~
& [5 L# i8 a. o5 Y- ;;; ============================================. e: s, q! [; U" _" |6 \
- ;;;2 m5 L9 O0 o9 J6 r$ a0 ^6 c
- ;;; CREATING FROM AUTOCAD2000
3 o' p+ F3 M8 v' G1 A1 {. D4 N - ;;;
& z7 h. t2 a$ O% A8 k" H# C - ;;; ============================================
: I4 R! p+ o" ?" ]2 ?
~/ b4 @) p( q2 ^3 {3 g- (setvar "INSUNITS"4)
& j, ~1 u5 F5 y2 y& m+ a - (setvar "ANGBASE"0)0 R; E5 G6 k/ ^& q7 t/ a
- (setvar "ANGDIR"0)
8 ] P6 [) F' \ - (setvar "AUNITS"0)
7 n& H6 S9 a" a" V& x8 G - (setvar "AUPREC"8)
% L, z/ X# z3 K4 b+ P: @. H - (setvar "LUNITS"2)7 s X- y* V2 x: C
- (setvar "LUPREC"8)
- c# d. Z! {/ c$ O3 } - (setvar "ACADLSPASDOC"1) ( r$ f$ W& w) a9 L2 |6 N
- (setvar "pickbox"5)
$ q+ C9 l6 q( L - (setvar "blipmode"0)8 T9 [, k. [- ~% j/ M2 f
- (setvar "mirrtext"0)
. t, f) }& p7 ^ @& _: C - (setvar "cursorsize"100)
1 i9 c& |" {; K( J6 o4 e - (setvar "ZOOMFACTOR"75)
# \( k1 W9 H6 H - (setvar "LTSCALE" 10) z6 a7 h c+ \5 o% I" M. Q1 r1 v) O
- (setvar "lwunits"1): M* @8 p3 u6 J+ J
- (setvar "DIMBLK" "Closed")# e/ c8 [) U9 z- e
- (setvar "DIMGAP"0.0693)
) l, o1 G5 {4 J2 ~+ R - (setvar "DIMASZ"0.20), C1 l( f# Q! n' u* ^ y
- (setvar "DIMCEN"0.2): ~, c9 X: Y7 X8 ~3 w$ S+ \- {6 W
- (setvar "DIMDLI"0.1)% l7 h+ k+ M+ \7 v5 l
- (setvar "DIMEXE"0.0693)
4 A$ p/ A3 |& b$ a4 g - (setvar "DIMEXO"0.25)) h! M. }4 p) I+ M& P5 g2 m
- (setvar "DIMDEC"0)7 L, t A _2 B. S( K. R
- (setvar "DIMTIX" 1)+ R( O( C) W( n8 m
- (setvar "DIMTXT" 0.099)
9 m2 J" O% P; ?- T* v - (setvar "DIMCLRT" 7)
5 f r, p5 P& I7 I - (setvar "DIMTVP" 1)
2 g- Q8 X b+ w% v - (setvar "DIMJUST" 0)
9 V2 |+ D' `! h: Q' [; F* @( ] - (setvar "DIMTIH" 0)
8 A$ i6 h& \* H4 [) f+ F - (setvar "DIMTOFL" 1)
$ t! Y- H' [% C" g/ B& A3 P" b - (setvar "DIMSCALE" 1111.1111)
A, w$ x6 d4 B* S" e( j7 Q
. v6 ~/ l) T0 U1 Y- ' D: M% k* h% g" Y# W
2 Y) b9 x& F- o. G) n- (defun c:zp () (command "'.zoom" "p"))
~9 r% d0 w U8 [ - (defun c:zz () (command "'.zoom" "p"))
4 p" [9 [' m3 F% R - (defun c:ze () (command "'.zoom" "e")), r. ~) F- T2 ?
- (defun c:za () (command "'.zoom" "a"))9 g" q4 ?- E& b" [( b# O3 E
- (defun c:zd () (command "'.zoom" "d"))
% L, a5 p: e- |; K - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))4 T1 P U$ B$ ~6 l
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))5 E& |1 |2 b2 @ R* \8 W
- (defun c:de () (command "ddedit")(princ))2 o, E' _# E4 f3 A. T3 p' E
- (defun c:dda () (command "Dimaligned"))
1 c3 J$ l" C' z! Y7 h+ G - (defun c:ddb () (command "Dimabaseline"))
$ ~3 ^9 F8 C' m) n: r( z2 Z4 q - (defun c:ddc () (command "Dimcontinue"))
) m% G& [2 w% A - (defun c:dde () (command "Dimtedit"))
& `) U( h3 F# H! d9 m3 l - (defun c:ddf () (command "Ddattdef")). o( W1 N* {; E \" ?
- (defun c:ddi () (command "Dimdiameter"))9 E8 U9 z' n6 j v* u8 a& V
- (defun c:ddl () (command "Dimlinear"))) K9 }% m$ Z! k! \0 B' G) V
- (defun c:ddn () (command "Dimangular"))4 X) I9 V2 b: x' W+ X* D
- (defun c:ddo () (command "Dimordinate")). ~, O1 h; @0 ~
- (defun c:ddr () (command "Dimradius"))) p7 Q3 D6 g) ]' W0 {9 Q
- (defun c:dds () (command "Dimstyle"))
/ d' L, w5 M- b3 Q - v) }5 X( g8 }* C1 a9 r) Z
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)5 X+ g3 Y: o) k
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)" h$ d$ B1 H' x! i. e
- (defun c:UU () (command "dim1""update""all"))
3 v A0 i8 t7 \; C) E9 K - (defun c:ded() (command "dim1""tedit"))% M, r' R+ q5 N0 @# \5 b/ N
- (defun c:da () (command "dim1""ali"))# ~( K; A& ]1 Y/ }1 z' V, j
- (defun c:dll() (command "dim1""l"))# w4 \5 }, v, m: s
- (defun c:dan() (command "dim1""an"))0 e7 k; D" ]' i1 v& ^
- (defun c:d1 () (command "dim1""ra"))+ q4 f `$ E8 L4 ~* k) x% q
- (defun c:n () (command "dim1""new"))1 @; e$ J5 W2 w# r
' S3 L w, u* K, f- (DEFUN C:PE () (COMMAND "PEDIT")). C% t: ]2 Y; y% X) D; E! R/ j
- (DEFUN C:PL () (COMMAND "PLINE"))
3 F0 F, B0 |4 S- \, V - (defun c:dd () (command "dist")(princ))
$ X: V2 t" t0 N - (defun c:w () (command "pedit" pause "w" "au")(princ))1 X3 v. I; B: q9 J. H
- (defun c:pg () (command "polygon" "polygon"))
3 ?& f9 H5 z3 Y! q5 Z% l - (defun c:el () (command "ellipse"))4 O( q$ V9 X: x" k- b
- (defun c:xe () (command "explode"))
$ }. A ?3 `& n, H; K - (defun c:eex () (command "extrude"))" J* i) D& Q( O
- (defun c:xg () (command "xline""a"))6 B; p+ l; `2 _' g+ W
- (defun c:xh () (command "xline""h"))4 x5 c% f; i' r" }
- (defun c:xv () (command "xline""v"))
! R' r1 L& V) U& Q - 6 t( ], U8 b* E
- (defun c:oc () (command "osnap""cen"))
4 N- V. M* ]6 f3 ]% Q: O - (defun c:od () (command "osnap""nod"))0 J$ \ R5 e a" V5 B4 D) X
- (defun c:oe () (command "osnap""end"))
( E; c8 m3 z S: M% \ c - (defun c:oi () (command "osnap""int"))7 i W' I- e9 I3 o% m9 v
- (defun c:or () (command "osnap""per"))
# c% J4 w: d2 {) ]- j# N - (defun c:on () (command "osnap""none"))! t5 _( P, ^- G: S" |. V5 h
- (defun c:oq () (command "osnap""qua")) a8 L" N+ T+ ]: R8 p" z
- (defun c:om () (command "osnap""mid"))
8 P& g. j4 d# X- U - (defun c:ot () (command "osnap""tan"))$ O" `7 m6 p# I$ T
- (defun c:oin () (command "osnap""ins")): Z3 k* m. H5 v; A
- (defun c:oa () (command "osnap""nea"))
& U, y! [2 y" o' C0 ^ - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
+ N- `- K% U' r$ M - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
; y& }% ?5 \5 N( f- a5 B8 R - ;(defun c:nn () (command "new" "y" )); D `4 Q+ C0 Q/ M
( \8 Q7 ^4 h, r: _. F3 T! M _0 A* V- (defun c:/ () (command "limits"))
- R3 ?/ B7 D( O# O - (defun c:`1 () (command "region"))
4 g8 K6 [7 B: m! z% c - (defun c:`2 () (command "subtract"))
3 \+ L) {2 e- V- M8 r) e$ Z6 A4 B - (defun c:`3 () (command "union"))
# l& ^/ j: r; d2 j6 b5 Y- d - (defun c:`4 () (command "intersect"))
3 o5 f7 |5 B% K0 f - (defun c:`c () (command "cal"))
0 ~8 B& w5 A9 @- o4 W( L. p - (defun c:`g () (command "Polygon"))9 e; j* p( j4 N ]$ R3 }4 j
- 2 a* r! u, W) T- l( h
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))! W1 \. k$ m6 _ Y
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
- U* _$ g, i5 `+ G- E - (defun c:ip () (ssget) (command "print,_plot" ))(princ)" k7 f. t6 D3 o: @( P
* C, z& E* c" ?* Z. c- (defun c:ddm () (command "ddlmodes" pause))3 k4 z I0 i) d' m
- + @7 D3 I" c8 {: s8 Q
- (defun c:sha () (command "shade" pause))
9 W* I2 P- q0 {( z' K- p
+ e! X* ] N F/ v- (defun c:sr1 () (command "surftab1" "p" "" pause))
/ ]( I3 H7 s$ i1 s- K; ?( {9 } - (defun c:sr2 () (command "surftab2" "p" "" pause))
8 S) ^1 Z' X0 {$ Z/ s m$ P
# {7 Q Q9 z& D0 f: k- (defun c:ad () (command "audit""y"))
6 B# P5 k% B5 ~3 h - (defun c:q () (command "quit"))
/ C( }6 H3 l3 V+ [
* L0 R% h( `1 p5 R4 C" W- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
! p/ k+ w9 b4 J0 y' ? - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
1 z$ S% |6 n J" P" n, i! x - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
- ?8 X, K3 c' F - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45")), e: _1 z! E2 Y- U) H3 A, B
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
! H1 w7 R& M( q/ e* c, `+ b - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60")) ]0 g/ I( `4 r( h
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90")) K V0 Q4 t0 |7 A/ d# y
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
, q4 n) X: R, o5 y - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
- m$ P: W9 Z2 b - , ^; ~/ z+ ^5 [
- (defun c:u3 () (command "ucs""3"))
* Z: |7 Z7 Z, A4 q! z- ~ - (defun c:ue () (command "ucs""o""end"))
/ @4 B _( @& A( K4 `6 J - (defun c:ui () (command "ucs""o""int"))
: G' z' Q! Z* d4 M1 i- ^5 v' ] - (defun c:um () (command "ucs""o""mid"))
, a% {% v5 p5 n9 a- P4 ^7 w - (defun c:uc () (command "ucs""o""cen"))
$ c) @3 {4 z9 q5 Q' t - (defun c:uq () (command "ucs""o""qua"))3 ^9 ?* H. J2 K0 ?
- (defun c:3s () (command "ucs""3"))
+ F @8 K( u! l$ L0 | - (defun c:sx () (command "ucs""s"))* u# z) R2 _8 t$ D/ }
- (defun c:sf () (command "ucs""o"))
* Q3 c4 B' L. q' m* m; F; } - (defun c:sz () (command "ucs""p"))
f* K8 t& G- _, |6 X- ? - (defun c:sr () (command "ucs""r"))
7 J, x7 ~6 Q9 W' I8 f) s8 M - (defun c:sw () (command "ucs""w"))
+ R" w6 k3 e+ I7 H) O( _ - (defun c:fv () (command "ucs""v"))
, r' U v* Y" h7 T7 K z6 H* b* K* W - (defun c:ux () (command "ucs""x")); |( U4 i+ I ~
- (defun c:uux () (command "ucs""x""90"))
3 I1 l' u* e5 D' W! g* d1 P - (defun c:xxu () (command "ucs""x""-90"))
' p9 P+ v. X4 t4 ]; q, k9 r - (defun c:uy () (command "ucs""y"))* f4 E7 | N! [: ~
- (defun c:uuy () (command "ucs""y""90"))
' a/ m i( q5 y ^' \2 E7 a- M& C+ z - (defun c:yyu () (command "ucs""y""-90"))
# P3 S4 ]- V: e" i$ E$ F9 V - (defun c:uz () (command "ucs""z"))% ^9 y1 V ?! T. r; W7 o
- (defun c:uuz () (command "ucs""z""90"))
! c C6 `4 l* T - (defun c:zzu () (command "ucs""z""-90"))$ f9 Q. f: M. I. b
- (defun c:uci () (command "ucsicon" "Properties" ))(princ); z! U+ R) V0 _9 L. ~+ Q
- (defun c:ucm () (command "ucsman" ))(princ)+ @/ d/ Y" W+ `2 [# W
- " z4 w4 I8 A3 H) y* d4 i
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
2 s$ Z( p) m, d1 W" c - (defun c:sd () (command "vpoint""_non""1,-1,1"))0 i. O* q3 v! r M3 |( ^
- (defun c:se () (command "vpoint""_non""1,1,1"))
+ H- Z( S! H, D# Y/ `, f - (defun c:sq () (command "vpoint""_non""-1,1,1"))8 V1 m, r( B! |2 @0 c$ E
- (defun c:vc () (command "plan"""))1 _* k& X# I0 b; S+ ?- k
- (defun c:vd () (command "dview""all")). g4 [1 Y2 z; N) v1 l5 Y
- 1 V8 w- [7 M( k* j1 z
- (defun c:TT0 () (command "tilemode""0"))# c, R3 G3 n3 F, w$ G0 |
- (defun c:TT1 () (command "tilemode""1"))
% a3 E$ s2 P1 A3 `* A1 [ - % U b/ T0 F" d5 ]4 B
- (defun c:vt () (command "vpoint""_non""0,0,1"))4 ^# F- T" G" l$ t
- (defun c:vb () (command "vpoint""_non""0,0,-1"))- P% x1 d6 c6 y! M+ C
- (defun c:vl () (command "vpoint""_non""-1,0,0"))+ z& A5 |+ u0 x# w ?+ G( E
- (defun c:vr () (command "vpoint""_non""1,0,0"))
H+ p* I7 C* T+ d - (defun c:vf () (command "vpoint""_non""0,-1,0"))
9 l2 p0 R8 z/ s - (defun c:vk () (command "vpoint""_non""0,1,0"))
7 Q* J- m0 g. H% \0 x5 ^
( c( L6 O# S0 i8 B! f8 M- (DEFUN C:MM () (COMMAND "MIRROR"))
' P5 g1 z+ ~* e8 x - (DEFUN C:MP () (COMMAND "MOVE" "P"))- I7 p* n, c: w& Z, a
0 X: p: X( v# v1 @$ m6 w- (defun c:mee (/ a)8 j5 g! R& m/ \0 x) T# v
- (setq a (ssget))(command "move"a"""end"pause"end"))
. ^9 i3 u4 Z3 e! K; b - (defun c:mc (/ a)1 ]6 ]: t- U: R7 {0 {$ V; V
- (setq a (ssget))(command "move"a"""cen"pause"cen"))
2 j$ W0 b2 V# Z# v - (defun c:cc (/ a)) M' ]4 ?' o3 m+ j* z
- (setq a (ssget))(command "copy"a"""m")) w5 J: ^0 r- l
- (defun c:ce (/ a)0 T3 M0 h$ i! j) |1 h
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))$ j" q' g! X& b" \' Y
- (defun c:cn (/ a)* y8 m6 k9 }. B- s2 n
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
7 X/ @3 {3 \/ j y* x - (defun c:tl ()(command "trim""l"""))* d) L( \6 I3 F; W& F& J0 t6 L
- (defun c:tf (/ a); P: w: V& T' y' O7 H% P
- (setq a (ssget))(command "trim"a"""f"))6 }% V) A/ Y6 F. G7 E" |- @5 x
- (defun c:el ()(command "extend""l""")): }- s h/ b) ?% [) u1 O0 u( Z6 l
- (defun c:ef (/ a); u( _& F, x# \0 D* F7 X P
- (setq a (ssget))(command "extend"a"""f"))
) F: b- u! S" p0 g7 Z
: g5 T9 E4 o! T% h- h6 P- " G" v3 w- T* N+ Z- l: {
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))1 ]$ g+ i y/ M0 K# n6 a
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
4 |5 A% z- f: @ d. m- s - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))% Q8 z' q- g+ u' V) x& a y
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))3 O+ J. y$ x/ A- t' z. }
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))4 E& L; A! I% t9 W/ U; ?' R! V$ j
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
2 W/ l1 p' t5 S# N; B6 g - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
% e6 y Y3 _; A6 O2 n1 B( e# ` - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))% W) |2 _8 K, n4 q1 A: s
- (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))9 k) S3 p6 a. a+ _
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200")). H: r& K5 y1 i! F3 j6 n4 i
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500")). s# ~: K8 _) N# g
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))5 H6 C0 ~4 i& }$ V9 P- |7 ^
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
' V n( ^+ s) A1 h* ~ - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
4 X6 G. k1 }( V - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
" a h6 j' V7 V5 `+ Z - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
! i! s! { c5 Q! G, B2 F" m - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))6 @0 f! _; ]6 ?
- H5 Y/ z' u* n0 ?3 K+ V
- (defun c:mla () (command "-mledit""av"))+ x* t( _* t' j( r" j8 v
- (defun c:mlc () (command "-mledit""mc"))# ]" D6 F$ U: z5 } z& `% d& W
- (defun c:mld () (command "-mledit""dv"))* s& v# P+ i# r. ?' u
- (defun c:mle () (command "mline""end"pause"end"))( q# y7 y3 \/ p4 P) u$ n x7 } ?' b
- (defun c:mli () (command "-mledit""ca""int"pause"int"))
1 @# j+ R* J6 V: b - (defun c:mlj () (command "-mledit""cj"))
& c2 M7 x4 V6 e9 ^1 `0 B8 E! x - (defun c:mlt () (command "-mledit""mt"))
8 O: K) m0 C* F - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
# x4 x+ d& R) Y: Z) W0 h! N, \ - (defun c:mlw () (command "-mledit""wa"))
+ z6 G$ l% I w' g% ]; g* [
% f2 a$ q* o4 V; h. ]7 C- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))' I, r" H& e6 ]3 ]# _9 O: d4 O) N
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))1 I+ h* s- M/ J" k& w4 C
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
- } O, p7 u3 ^& j0 u; Z - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
) j: i5 n0 l- l' a - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
& S% e. q/ z* n1 \ - * ]! [4 }) K* k! b( j
- (defun c:p0 () (command "pline""""w""0""0"))0 ?2 ^# F) m8 y5 d! K7 d, q
- (defun c:ot () (command "offset""t"))7 C6 _, T& b5 b J
- (defun c:t () (command "mtext"pause"j""bl""h"pause))
" D% q; V% ~, r$ I! ]4 f) Q o p4 A8 \4 H - (defun c:uo () (command "ucs""ob"pause)) Z# r6 m+ k$ s
- (defun c:f0 () (command "fillet""r""0")): J& a/ Q: c$ C
- (defun c:fr () (command "fillet""r"))2 y2 V0 y6 d( L3 g& I. H
- 3 t3 q+ \: A. l( s, Q9 D& m3 ` a
- ;CHAMFER
: ^' }2 U# n8 h. g - (defun c:cf () (command "chamfer"))
* Y9 y. R) S9 R0 _5 `! G5 f3 P! B - (defun c:cfd () (command "chamfer" "d")), f! G% p9 s; c* o
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
: e0 b& h! B6 Z- I0 H - ; W$ o7 F2 h# }1 u8 R. z/ s
- ;FILLET
; X) r' W& T- Q" U - (defun c:f () (command "fillet"))
/ P" G4 R) C* N1 x; {6 Z, P1 ]$ w - (defun c:fr () (command "fillet" "r"))
: w P" D3 H4 z: u, w) L - (defun c:f0 () (command "fillet" "r" "0"))5 ~ r1 e/ m W, u
+ h: [/ E, A3 J* E: E3 ]: L0 t5 ~- (defun c:OO () (command "oops"))
: h5 U$ X9 t! y+ [2 Z - (defun c:dln () (command "dimlinear")); D4 \9 e( v% }8 J& H
- (defun c:dan () (command "dimaligned"))# ]! _# q" c2 h; d
- (defun c:ddc () (command "dimcontinue"))
- G& O5 T+ A+ P3 X6 L2 Y
( A8 R; o# [& N: J- (defun c:sc () (command "scale" "auto"))' F3 V7 }- o' S$ E
- (DEFUN C:XO () (COMMAND "snapang")) g. ~1 x2 [' K" }* {, B
- (defun c:cc (/ a)
8 s+ i* z/ v4 N* j3 H3 m - (setq a (ssget))(command "copy"a"""m"))
* @) V6 {* n y - ) Z- e% W. d" ?# w' v
- (defun c:PJ (/ a)3 d d5 b* a+ Y8 g: {
- (setq a (ssget))(command "pedit"a"""j""all""y"))
+ [1 x* d, e. M$ H8 {5 F - (defun c:JJ (/ a)# U2 `7 }( X: t' R7 U
- (setq a (ssget))(command "pedit"a"""j""y"))
8 p& k: v" c5 N; | - (defun c:TN (/ a)3 ^8 s2 s( T4 q$ _1 s5 T( ]1 m
- (setq a (ssget))(command "change"a"""p""T"))
4 S5 I9 q4 u$ d9 r& J9 @
; f K5 C" w5 ^5 |- , z j7 r, U3 j. k7 C9 u8 Z
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
, T8 m5 v" Z2 h N, t/ e7 B - # w K% C8 E, m8 m; @
- (defun C:IB ()(setvar"cmdecho"1)( p+ F" z2 ]5 H- g) l# i
- (setq pt(cadr(entsel"\nSelect Block:")))
0 j2 [1 i, h" Z- Z1 g - (setq e1(ssget pt)) ' ~* W* F+ m- q* Q
- (setq e2 (entget (ssname e1 0)))
% V* P8 A) D" N8 T7 Z% g - (setq blname (cdr(assoc 2 e2)))
4 ?2 h* h* u. Y - (setq oer *error* *error* err2)(command ".insert" blname))4 {) j: N) y* \) l% [1 B) E% J6 Q
- ; F+ a6 y3 A5 }1 B8 R8 n+ V( ]
- (defun c:II ()
( F) Q4 e' E6 d. v$ { - (setvar "cmdecho" 0)9 `2 z* w+ {* a: B' S+ N. k
- (setq olderr *error* *error* myerror)4 t. \0 K. o/ N
- (prompt "\nSelect objects: ")
1 [/ \# F( C) Y, D9 o - (command "select" "au" pause)
* F6 D: F& P! s) p! W5 w0 Q4 I - (setq sstxt (ssget "p"). J" g) V, l* d) k
- sslen (sslength sstxt)
+ w' ?2 H' F: A2 u. U - ctr 0
. a8 v( x' i( i- m0 Z2 z - )) @ `7 i( J' Q- T6 J& F, a- b( H
- (command ".undo" "mark")
% r' [+ d/ V! B; ?' i - (while (< ctr sslen)5 j2 h" Q2 @3 s) ~7 N7 ^
- (setq listxt (entget (ssname sstxt ctr))
) y) h! v; h4 r( }+ o7 |0 ~% ` - txttxt (cdr (assoc 1 listxt)), c* y3 t+ N: w% Y, T
- enttxt (cdr (assoc 0 listxt))6 ]- J* H. [( I
- )7 [7 R, x4 G M+ X7 a
- (if (= enttxt "TEXT")% M$ b( G0 }2 |5 d T
- (progn0 S7 E* i- F6 d+ }) q
- (setq testxt (substr txttxt 1 3))
, h* F1 g1 Y2 f V - (if (or (= testxt "%%C") (= testxt "%%C"))
: ~4 {' m8 c- J3 D0 W; H - (setq newtxt (substr txttxt 4))
5 W3 g* C* _; A& l% H8 E; @ - (setq newtxt (strcat "%%C" txttxt))
! M0 S0 q* @9 W6 u' u, C' r4 T - )6 T; t" `4 ?1 Z! C# q# m* u4 o' y' u
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))6 `. Y x# m% E$ Y; g
- (entmod listxt)
7 l! y- d6 K8 `* ^; @4 Y; m8 Z - )+ L6 f9 p# b- u: N0 Q
- ) {* j( _: f2 H: B
- (setq ctr (1+ ctr))& _& p; K% ?3 N l+ T/ F. \4 F; v
- )3 o/ \: o+ O: i/ [ ?, r4 s) k/ U
- (setq *error* olderr)) v" W1 J+ h; d* R _$ ]/ i
- (setvar "cmdecho" 1), n4 k2 c( t0 D. B- L
- (princ)0 k, U5 I2 B/ i/ Y
- )
+ _ B, W+ l4 D4 _$ k - 3 z! S* p/ }) F$ A5 R' G) e w* k
- (defun c:DG ()
2 J# V T( S* g0 h+ _3 e( F - (setvar "cmdecho" 0)
2 F! ~* h2 x9 v1 \9 h& ] - (setq olderr *error* *error* myerror)
: x) P" S& T# x5 o2 @ W, D3 |$ d - (prompt "\nSelect objects: "). x* ^3 }( l; z( \7 G( x
- (command "select" "au" pause)
4 B, z8 H4 J5 o1 Z- m - (setq sstxt (ssget "p")' T) U: f# l; y
- sslen (sslength sstxt)
4 R" Y J, L% a- [$ b5 L) {2 J - ctr 0- o2 a# m- _9 |. j4 \
- ); Z6 K7 r, B: R5 K8 ^
- (command ".undo" "mark")9 w! ~8 Z4 P/ f/ Q* ~, d
- (while (< ctr sslen)
1 b% Y) q4 ?/ U. k$ s% O - (setq listxt (entget (ssname sstxt ctr))
! K" E4 ]1 {0 g7 k - txttxt (cdr (assoc 1 listxt))
6 @0 t$ }' }) n y2 L3 p - enttxt (cdr (assoc 0 listxt))
8 H8 E2 W( d. s& H - )
4 o& @' _: U" h' N5 C - (if (= enttxt "TEXT")6 n0 a" s/ W2 r3 [
- (progn. y+ \) ?, z3 B5 u
- (setq testxt (substr txttxt 1 3))
* L: J! v7 ~4 Y - (if (or (= testxt "%%d") (= testxt "%%d"))9 R: c" z4 s0 z0 q6 u0 |
- (setq newtxt (substr txttxt 4))4 D# z: k3 W0 ^& ?' _
- (setq newtxt (strcat txttxt "%%dC" ))& v1 R6 p0 I, w; w3 G# G* a
- )9 A' f, t6 |+ L6 S: D
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 ^" c/ n$ \" V
- (entmod listxt)
# l7 m4 {& `- ]6 M3 d. _ - )3 p& l6 K7 m5 c2 A& J! M
- ) u* _) c, b" B6 W$ f
- (setq ctr (1+ ctr))
5 _! U; j. ]6 I, N1 C - )
& l/ H$ A' ]) J/ l8 X3 H, B# T& Z - (setq *error* olderr)$ P! g9 `' ~8 L* N5 ?, w
- (setvar "cmdecho" 1)
: x5 M0 E% m- b$ O - (princ)8 z% N; ]/ [/ @3 r/ w- P* ~" G; r0 B
- )
. l0 E" Z) l& f( Y+ i
) L$ x9 s8 w/ c2 |3 G- (defun c:PI ()9 a ^/ s2 D( h: v
- (setvar "cmdecho" 0)
! _/ z" O% V2 t; n4 a( i2 i - (setq olderr *error* *error* myerror)3 y$ J1 D8 b" d
- (prompt "\nSelect objects: "); ?. Z# q' a' \- V
- (command "select" "au" pause)1 Y! E- S. ]; @2 R5 \4 j
- (setq sstxt (ssget "p")
# A" e, L5 d2 W3 f$ c- Y1 z+ c: p3 S8 d - sslen (sslength sstxt)' R4 J( F9 j1 u) Y& A
- ctr 04 f6 w- @1 b/ X1 N s/ {
- )4 G' h9 u- t5 P0 v" w
- (command ".undo" "mark")
% S3 n; n+ A6 L0 D+ K - (while (< ctr sslen)/ q! }# @5 R- e: w& d+ o6 H' ?
- (setq listxt (entget (ssname sstxt ctr))
; Q: O' _) R( N% t! B; v$ s1 K - txttxt (cdr (assoc 1 listxt))
9 _0 Y5 |! }( W' O6 [$ B/ I - enttxt (cdr (assoc 0 listxt))4 K- k. m* d* M/ a
- )/ p3 Z: I. U7 G4 l4 }
- (if (= enttxt "TEXT")+ p o# M, |* @) m
- (progn
% A) ?8 ?$ p' i% N' B( Z - (setq testxt (substr txttxt 1 3))
# n, x% r, s- U" o - (if (or (= testxt "%%p") (= testxt "%%p"))
' H8 c# x2 t b8 q; M - (setq newtxt (substr txttxt 4))
. ^5 b/ X8 V, T, S5 u f: b, g - (setq newtxt (strcat "%%p" txttxt))
. }4 @" Y5 K: v& X9 D( e3 S - )! e% e; B1 u$ ~0 x2 p. m( _9 I0 g& }0 t
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
! X$ ^% _ u, B9 u+ | - (entmod listxt)& ^1 e+ u; a2 V) f
- )
. y$ x( y; V4 [; F6 h - )
, C1 z7 x; T* v; i7 O - (setq ctr (1+ ctr))
4 f" K7 O; L5 n% O* \* k1 g9 u9 H - )2 i6 l3 z0 ?9 g
- (setq *error* olderr)
/ N# s; S7 F% o ?. G7 w - (setvar "cmdecho" 1)
) _/ F( X! ^# v) z - (princ)
- W4 _4 T. \+ B* W - )! v+ M! e# M7 J" Z4 h5 E
- $ @/ ^7 |+ `) n) r
- (Defun c:CB (/ a)
* w4 Z0 o% D; c3 F* N2 w1 l - (setq olderr *error* *error* myerror)/ @0 k! \# ]& X9 M: A
- (setq ocmd (getvar "cmdecho"))+ U9 Y X* b# P- R
- (setq oblp (getvar "blipmode"))
+ C* Y y5 a, q9 X* V' \ - (setvar "cmdecho" 0)$ ^" ?3 ^: _5 m/ p
- (setq a (ssget))5 B: T z6 I# w3 c5 ~
- (command "CHPROP" a "" "C" "bylayer" "")1 R% }% v" L) K. A1 e0 ^# \
- (setvar "cmdecho" ocmd)
% a3 D$ ~$ P: {2 d* n5 u0 K - (setvar "blipmode" oblp)* w% N1 j( }- \6 m( a1 j
- (setq *error* olderr)# h3 V2 ^& a* }+ F9 h
- (princ)! v5 {' m. L* z0 h
- )
1 W' a: W$ L: h - 1 r4 K% L' J2 J( d# O
- (defun c:LCC (/ co43 obj23 la23)
4 v( k- l( J5 j! N - (setvar "cmdecho" 0)
# S" d+ b4 Q6 h! [( |! [ - (setq co43 (getstring "\nNew color : "))9 y! r* K4 u. H6 k
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))
j" g% R6 p2 w) s: ]) g) { - (if obj23 (progn
1 ?/ L* z5 ]. ] - (setq obj23 (entget obj23))
1 C6 Q% R1 Q0 V; _" o& z. } - (setq la23 (cdr (assoc 8 obj23)))
& ]2 T, P: R2 p' q - (command "layer" "c" co43 la23 "")
5 k& X# a9 Z$ d+ k: S* o, e2 ~! \5 z - )
0 C( a* Z" l) |4 i$ k4 } T) P - )4 q) P! }; [* O+ ^* v
- (prompt (strcat "\nLayer has changed..." la23)), m6 k8 h+ w! e5 T; Z" R! w) Y0 u
- (setvar "cmdecho" 1)0 @ P. v z3 S" u3 _) S
- (princ)
0 d+ k; {) d; P( ^. G - )
3 j6 d$ ? o* z; b - 1 @2 J, [8 n* Y/ e* U; G
- (Defun c:RP (/ a)
: j1 g6 i1 V0 n7 b2 u N - (setq olderr *error* *error* myerror)* K# Q) ~: a+ @5 M* A
- (setq ocmd (getvar "cmdecho"))7 X# ]. w/ ~7 K0 F# R
- (setq oblp (getvar "blipmode"))
0 z+ L* G/ _. N7 x6 s. A, w. X - (setvar "cmdecho" 0)3 d i. G' t" V/ R; B* U
- (prompt (strcat "\nUSE: Delete object(s) belonging to"
1 K8 v( f+ T t4 o* f' ] - " the layer of the entity picked...!"))' j- k2 ?* e8 b9 t( Z
- (setq a (entsel "\nPick the entity with the desired layer to delete: ")). M( }; N+ O' H2 n; S6 u3 x
- (if (/= a nil)
% C: C' C+ x6 G: e6 R - (progn (setq a (cdr (assoc 8 (entget (car a )))))0 [3 s8 w+ M- t% [ M$ Z- p4 I
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) "")): f9 O( ?4 v' U# j" o5 J
- (prompt "\nNo entity selected!"))
/ Z! q$ e1 E' `6 R: L! W - (setvar "cmdecho" ocmd)+ U% U' o: W: Z; @" X( N# v& Y$ [2 b, n
- (setvar "blipmode" oblp)0 \+ m4 _1 m# {& L3 } W
- (setq *error* olderr)* J7 d* T; W( P
- (princ)
W9 W3 G' \/ F/ D% s9 E - )9 K# `' f; b0 K: H: q
9 m& f' Q2 }6 y+ z; F- (DEFUN C:WL(/ SSET NET SSL M)) S* t4 C* e1 Z( z: I G
- (PRINC "\nSelect lines :")
8 f+ D7 Z+ p1 ]# N) G0 P - (SETQ SSET (SSGET))* \% v( G% L$ Y u1 P, D
- (IF (/= NIL SSET) (PROGN* P' }. s/ `/ p- |3 ?
- (SETQ SSL (SSLENGTH SSET))7 j' Z! g, d; ?
- (INITGET 4)
) y8 ~! U0 D: x6 B- ]/ G8 s - (SETQ NET (GETREAL "New width : "))
' t0 m/ g; k. B - (IF (/= NIL NET)/ u* l) T8 C" u/ k
- (WHILE (> SSL 0)' G2 B+ l ~ b7 C$ G4 E
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
* _& f" s. ?# {3 _+ D - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
; K! F9 C; d4 t1 g - (COMMAND "PEDIT" M "Y" "W" NET "")
6 U/ Y; k7 z6 e) Q - )
$ B5 V; j5 a5 y( U. q - )
5 u# Y U; u8 b3 L# v' I% P - )))
Q8 M1 D0 v) R2 [* a - (PRINC)8 C2 @% w3 J. P3 D5 P% b: J
- )6 ?% f; h8 ^, O N/ b
( A' s) C! P% x7 I' [0 ~6 ]- (defun C:MML ()
, A# D. e$ W2 G: n2 z9 z - (princ "\nSelect objects to move to another Layer.")
2 U# \; Q8 ]# S' N! {" z. O1 R: @ - (setq ss (ssget))
C6 F: L. g" t6 ]- ]6 R$ i - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
* x' w" o* a" \ B - (setq counter 0)
l; H- X) M/ t+ O - (prompt "Moving to layer.....")(princ ul1)
7 t6 T( G% z7 x9 h0 U! O - (setq e (ssname ss counter)); V# P# J. }2 y, W1 e
- (setq l (cdr (assoc 8 (entget e))))& t; n* c/ e6 G* m/ B' w% t
- (setq S (ssget "X" (list (cons 8 l)))), N* O# L! f( l5 u1 [9 s7 E
- (command "CHANGE" ss "" "P" "LA" UL1 "")' t6 \. s6 t" p8 a- d
- (setq counter (+ counter 1))
! A% `6 }2 C, m, @* B+ g1 m - (princ)
: |# B1 I3 J, Q. r' } - )
' u# t9 q1 w; m6 W - / x- d/ o# v* |) Z L% L
- ;;; ================================ GHI CHU ============================1 A, f2 K( Y7 y; f
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
) n; F( W6 B" m# e3 O" f' k - ;;; =======================Thuong Dung Font Romant.vnh===================6 Z& V, `' w7 c _
- 8 F, \+ w3 I1 J
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)7 `4 Y" ?# l$ W8 F! H
- (setq oer *error* *error* err2)% {- a% D! X( |
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")2 b* K+ L8 @4 R
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))6 V9 Z+ e5 R: y' l. }
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))
2 L& x4 R9 w. y+ s# W7 ` - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
) c0 a) s* a% f6 v) S9 Z: B" q - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))2 Z* w% A- P& G/ n8 ?
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
9 M% x/ M' J6 \7 A* h6 k8 g - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))+ e" F0 P8 T- Q; w0 o: G
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))1 ~. D, J. \& y+ f9 ~8 {) D% c
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
( @; \/ W5 i0 [2 ? - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))4 z7 \9 O% z7 h( }4 U9 q
. n4 a) E1 U5 {7 R8 a7 K) C6 E- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))/ `& Y! s( x1 _ Q
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
4 I) `. @# U9 P - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
# U) n* i# [) B - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
1 |3 U1 X5 Q( O V' ` - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))/ m3 B! s# Y9 ?
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
& M+ @! A3 N- [6 u W% b - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
" L2 l0 V% W6 w% { - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
9 c) }- E5 a |! R! J - + C5 o3 j' K3 R2 I; b- Z1 b$ a) s
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
% ]4 n5 @( A$ \; ~ - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))7 g+ O" Y7 v7 f' J, B
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))! N4 J C: x& S3 ^
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
! ~8 X2 [2 t/ r - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
0 Z; f1 z: V. p+ g6 G! X) z - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))% }+ X' s, U8 u/ g. D
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))( J/ P- E! d# a
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))2 l( X+ u* ~3 J- Z% I
- (setq pta (getpoint
# c: N" a k; ~! A* n! O - "\nPick first corner. : "))" W C2 g A3 l* M3 r9 k
- (setq ptb (getcorner pta( a, H7 `$ i/ H: | `5 A
- "\nPick second corner. : "))
2 e1 i1 G# k K6 K, A0 z0 n - (setq ptc (list (car ptb)(cadr pta)))
0 S$ ?% {. e7 N) f- C: v! c - (setq ptd (list (car pta)(cadr ptb)))
. V, y; _; P2 a& V* \ - (setq ang (angle pta ptb))
' R, g; a% B: T6 w q - (setq d1 (/(distance pta ptb) 2))
: }, _ ]) S& m, f* Y& G8 @: W - (setq cp (polar pta (- ang (dtr 0)) d1))
5 A% t, A& B1 h7 _5 x7 w* E8 [! \/ g) o - (setq X (distance pta ptc))$ |" l | @, [8 e( v
- (setq Y (distance pta ptd))
0 W3 i9 Z5 o8 q; l: L+ f% E- I - (setq X1 (rtos x 2 1)) |. t, @& \ U8 @
- (setq Y1 (rtos y 2 1))
% p) b! Q$ f) o8 T% x; `5 _% S - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
( H$ h/ c5 I; M1 p# z - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
+ a3 b0 i# `7 b8 d& w - (defun dtr (angg)4 ?$ A$ W4 T H, ^9 e2 X
- (* pi (/ angg 180.0)))
# v; a( w' _7 }: d - + m( o' o* L4 |5 ?9 g. o! m
- (defun c:WS (/ pta ptb rmsz pl1)$ e9 y% _) U/ i- Q x. q2 \7 o
- (setq oer *error* *error* err2)
2 c: R3 _2 W, D/ T# d _ - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
8 Y8 I2 E: y# {# \6 n - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
; C) y4 m7 \& ~! {7 s1 y - & O0 ?, z* w: l% m" u
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))- D: |& b% }5 o! f$ D2 B0 B
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))/ x' L- a9 G0 E1 N$ ?
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
0 D6 E9 h1 d: C - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))( w# [: H; f1 w/ Z C
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
9 Q; a' U' @4 p# |) y% e - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
) M+ L+ L0 v* s, o y# B - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
7 x O& C- [7 W3 R+ k* q
! C$ R! P2 Y; a5 M- (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))
3 t9 A1 K- O; k: H/ [- ? - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))* H2 T7 J9 p; \9 v) U2 d
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
! G2 L, m- t2 ]4 B2 U" t" H - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
# C& V) g$ k7 |/ G8 y# |; p. ~ - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
# W. `! Y9 Q7 k1 r( y0 W! c5 w! d) Y& V - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100")). N. K5 j+ ^1 B# C0 u. _
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))2 ?% i H" H( x
- (setq pta (getpoint2 `: M. h2 p$ @& m0 m- C7 \3 @4 t
- "\nPick first corner. : "))& l$ p+ C) _4 _* ?( U. Y7 X
- (setq ptb (getcorner pta. e- g$ X# O# R
- "\nPick second corner. : ")): S& }. ]3 W9 b2 a. a1 c' H
- (setq ptc (list (car ptb)(cadr pta)))
& V0 s) m% r" ^8 e( e% e - (setq ptd (list (car pta)(cadr ptb)))
* ]. \ C" x, m/ Y! W - (setq ang (angle pta ptb))) m3 `9 T6 n2 ~ o; k
- (setq d1 (/(distance pta ptb) 2))
, ~7 ]+ ]% x% T8 Y - (setq cp (polar pta (- ang (dtr 0)) d1))
; J$ ]( U( Q! Q+ ^% \ - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
6 K( M; L/ ?% L/ @' q" ` - (defun dtr (angg)5 I% k5 |& q. Z4 [% A) ^" E
- (* pi (/ angg 180.0)))% A& K3 X* |* l+ L
- , X! }( E- g3 i% ]5 {
- ;;; ================================ GHI CHU ============================' y$ \1 G9 D2 f) A G- N
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
* f9 l6 n: u* j* }. r - ;;; =======================Thuong Dung Font Romant.vnh===================8 P* j6 {, {! ^6 `8 _1 w
" V7 k* F" U$ K. V. l' |9 T0 T- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)0 B2 u8 l( N9 {+ ]+ `
- (setq oer *error* *error* err2)
9 Z0 y1 s/ A8 r8 g" B. i2 L; U7 _5 g+ i - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
0 v& A* U7 z+ S$ @/ Z - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))" a' M/ h: q# Y3 x. X9 P$ K
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))) Q2 ^+ Q/ }/ `6 Q$ v2 S
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
; Y) r7 b( @6 Y3 r - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))8 Q' j: l0 X7 i0 P* ?
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
) Q+ }- D f! ^9 d2 F `0 e5 E - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))# q; O7 D5 t* p+ R& n7 p+ b, W
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An")); I1 K# L* z, q! U# H* z
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
# }/ v& v6 O% o, l+ _ d - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))3 n. E3 M9 n* h5 J1 O0 n5 z5 J
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))) C; E& K8 i5 P
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
4 Q; l5 \% E, W- ]$ c; [ - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
s3 P0 G4 t+ K* |8 s, F - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
- m9 q' `, Z* J - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
, k2 c; c9 s5 s2 A/ ~ - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
U- B. W" w" ?* s B7 q - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
1 t# Z) o+ i# L7 y7 _( D - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
: y ^ O" X0 X4 r - (setq pta (getpoint! b! U3 Q' `6 K v- o
- "\nPick first corner. : "))
% n% y) c4 G) x( x5 P- W% ^: Z - (setq ptb (getcorner pta
& F9 x4 {, x3 Q3 O5 G; \' S - "\nPick second corner. : "))
7 G( m1 Q$ s v& a - (setq ptc (list (car ptb)(cadr pta)))
% H6 a' U0 S% } - (setq ptd (list (car pta)(cadr ptb)))" z3 s+ C. P3 ?6 ^+ r" L+ x
- (setq ang (angle pta ptb))6 e( X" I2 H4 I5 T0 v/ y
- (setq d1 (/(distance pta ptb) 2)): H2 a. W, E* T" ?# } q
- (setq cp (polar pta (- ang (dtr 0)) d1))! u. _$ e" B4 R4 m' H% {
- (setq X (distance pta ptc))2 D' e+ I! f; j/ U! ?6 O
- (setq Y (distance pta ptd))
1 F( N3 \2 k) e8 f4 ?+ \ - (setq X1 (rtos x 2 1))% d! l1 A# m' Z
- (setq Y1 (rtos y 2 1))+ e- _0 L9 E0 W( E- T( j
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
5 T: {8 l: L# J/ P- { - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
) W d/ _ C; \4 e9 \3 C - (defun dtr (angg)& j) v, y6 J4 C) F& e% t) x
- (* pi (/ angg 180.0)))
0 p5 X1 b7 l- g
8 `; @( O& y- m! A7 `- ;;; ================================ GHI CHU ============================% U# {# r1 {; e! c! @1 E- l
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========9 E" [* X3 x; \0 g( E
- ;;; =======================Thuong Dung Font Romant.vnh===================
& E' D: t1 U% i - + o1 g2 j# K( ^& t; u
- (defun c:GS (/ a b c d)* X0 R7 [4 [* b# g5 U$ O8 W/ H
- (graphscr), v) F$ N* @: X9 ~# c$ Z& X6 S
- (prompt "\nSelect text to set style....")6 y, B V8 x- i
- (setq a (entsel))
% `8 E9 s6 ^8 F7 X! L# i2 v$ J2 w- |+ b - (setq b (entget (car a)))
) S8 |% y, F% P, M, ^ @ - (setq c (cdr (assoc 7 b)))
, U- r2 M. D& x' P2 t* c - (setq d (cdr (assoc 40 b)))
' i) x4 M% Q, d; Q# \1 v) \" U o& J4 c - (command "style" c "" d "" "" "" ""))
# B1 w- @4 ^- w2 K- S - (princ "\nType GS to set text style.")8 e$ Y& I+ i2 [" |% L) I
- 8 ?* V1 g0 g9 f
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
. q" V) Y) X1 o% j' J( O - (setq olderr *error* *error* myerror)( a' k% d( F3 L! \9 ~
- (setq ocmd (getvar "cmdecho"))1 p& N6 g5 I8 y! }) o
- (setq oblp (getvar "blipmode"))+ C1 H& h3 N. s, S5 s3 m
- (setvar "cmdecho" 0)' f, z+ m8 Y% F; a; ^
- (initget 1) ;3D point can't be null/ a! C! v I9 p0 T' m3 o E
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))8 R) F$ b' Z. ]5 D, `, B7 ~
- (setvar "ORTHOMODE" 1)
0 x' o3 L, n( g, T - (initget 7) ;Length can't be 0, neg, or null. _" k5 |2 C" n, Q3 [! g: e# \
- (Setq l (getdist pt1 "\nLength: "))
0 ?$ q) q( y- K - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
9 j& g% R4 o# R( y$ O, g. z/ s7 Q - (grdraw pt1 pt2 2): j1 V* P, j7 M+ T5 Z+ A- R
- (initget 7 "Square") ;Width can't be 0, neg, or null8 x4 s) F, D3 O8 v* ?, N
- (setq w (getdist pt1 "\nSquare/<Width>: "))6 c: ^3 {" f3 T" X. ~, L: G
- (if (= w "Square")
T: Q0 A+ F% A( P$ s - (setq w l), J4 c7 s, g5 o
- )
( R+ d! T6 B% L- p& J - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))+ i: _' Q8 Q4 ~& T
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1))), t+ _" c$ W3 k- U
- (grdraw pt2 pt3 2)
% k2 O) d7 h; G; e( o' m K - (grdraw pt3 pt4 2)
, R: R0 F: n& C& e) l) u3 u0 s - (grdraw pt4 pt1 2)
8 \% {- G9 r% m1 g9 k# ]7 s7 x - (setvar "ORTHOMODE" 0). }& ] X) d" R$ e
- (command "pline" pt1 pt2 pt3 pt4 "close")1 F" W3 k6 r9 k
- (setvar "cmdecho" ocmd)
. u, p/ H& r' G/ g% m0 g Z3 T - (setvar "blipmode" oblp)
! n8 f; R. ^# T: w" ]& T - (setq *error* olderr) ; Restore old *error* handler
A- v$ e: e# {4 i' z) { - (princ)! u7 Y; K2 Y1 l/ R# a4 D
- )
) c( f# O8 c1 T' a/ s! f
' y8 c' h2 N e8 w& S- (defun c:SG (/ ent pt1 pt2 ang)
; u9 P+ m( u: T! s2 r( Y% G - (setq cmd (getvar "cmdecho"))* u2 d! A3 o9 D
- (setvar "cmdecho" 1)% b L5 t2 D& ^2 G
- (prompt (strcat"\nSnap angle will be set to angle of line"))
3 O: @; r" p# I; I& z7 m) r; \" O" B; R - (setq ent (entget (car (entsel))))
. v0 g, A# N- `, I0 I, n, } - (setq pt1 (cdr (assoc 10 ent)))
5 {, q3 `2 N/ c+ o - (setq pt2 (cdr (assoc 11 ent)))8 N' v/ _$ n+ q, i0 C8 G) z
- (setq ang (angle pt1 pt2))
" G% s9 F# `/ b - (setq ang (/ (* ang 180.0) pi))
* F- e% V+ B- C0 g6 i8 h7 b - (setvar "cmdecho" 0)- b" N ]( v, U& {$ B/ a3 e
- (command "setvar" "snapang" ang)
6 b6 Q+ |# O$ u) { - (setvar "cmdecho" cmd)
# N4 L# l- X5 U% y- t5 n- z - )& Y9 ^; _/ I5 I7 t# R+ B
- # l8 R6 c: N/ \& F3 a8 Z! I. f
- (defun C:TG ()+ \! {$ F( X! b9 P! j( e! l7 Q
- (initget "Increase New")$ @& T- x; |1 r
- (setq ans (getkword "Increase/<New>: ")), z7 f. s O F o& Z: j ]
- (modang)
; D# `2 K; ]- K - )# u$ k3 Q+ M* G# F
- (defun modang (/ ang ss ca e na ssl)3 I; p& N8 G7 ^* C/ a
- (if (= ans "Increase")4 J8 y$ X! Z. P( C0 C0 y' X1 v
- (princ "\nIncrease angle for text by: ")
E5 {: d8 a2 U, g# \$ D9 X( g - (princ "\nNew angle for text: ")' u" U s# L! L$ N4 z, v6 _
- )8 C7 t" z; T, O) f
- (setq ang (getreal))3 k/ n' D/ h7 X) S
- (setq ang (* (/ ang 180) pi))
2 v0 \$ W" R3 {* `2 ?' [* I+ s/ M - (setq ss (ssget))& j& E& y( z M7 @
- (setq ca 0 ssl (sslength ss))
" Q* A5 b W3 O6 | - (while (< ca ssl)
# V3 S( M: T& r6 Y0 @ - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))0 h& a" a4 P6 L3 X" a; u) z
- (progn+ w7 C Q$ `. {6 q$ w
- (if (= ans "Increase"). |5 G6 L5 Q t; Q7 [* `9 u
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
# O9 K5 ?& R/ e/ n - (setq na (cons 50 ang))
, q8 X/ i4 C9 A( ], u. z - )
6 f: ]; d4 B& M2 b- c - (setq e (subst na (assoc 50 e) e))
6 e4 }* f9 h3 v4 ~" g" D4 ^8 R( I - (entmod e)! P- @5 y( N: ^3 p! e
- (setq ca (1+ ca))" w/ K; i. x3 |% k% G
- )! P- _3 ]. c" |
- )
1 R6 M7 D$ t H h/ }' W( \ - )
$ r; {/ Z8 I1 b5 c9 {- J, `5 s8 M- y - (terpri)
l g9 o! p1 D$ E - )
( `# b1 \" M( V0 f
+ y7 d; @0 _& h9 h- 3 K" W1 I% O( X* u
- (defun c:WL ()
5 W% g9 ^1 a; j# n4 n - (setvar "cmdecho" 0)
! f- Y5 l# X$ Q% J/ I8 y6 A0 W5 }- t - (setq a 1)+ G+ q: m7 c4 o: ?% B0 `0 G
- (prompt "\nSelect Polylines to change: ")
8 j! f1 K2 [; _ - (while (/= a nil)
' ~1 d6 i4 b! b: M - (progn$ \) o2 T% Z% ^2 U
- (setq a (entsel))
" ]) Z' U2 n. g: x. J - (if (/= a nil)# c" ?& ^* Z- b+ y9 V' u
- (progn
# g- B4 z# i- R3 ~3 M; Q - (setq b (entget (car a)))2 @* N; P N$ [
- (setq c (cdr (assoc 40 b)))3 i% G7 b) t3 z; g
- (princ c)$ c% w8 [& l2 @8 C' e+ V x
- (command "pedit"a"w""lw""")) e% t4 r" D% Y; C2 W3 w, a
- )))) 7 E2 h" \$ r! b( S0 S
- (princ)
3 r/ l: D, N- x0 T - ) y' ?% [* z" y- n) M
- 5 {1 X' B8 U, y: U% e
- ;;; ================================ TEXT FIT ============================
0 l n% c: I2 S2 e& E6 B* _4 h4 g
( c5 y% A4 `; o0 I- (Defun c:FT ( )2 ^, m# a0 I, ?0 W4 E9 u1 I5 k
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )( w% d* P) y. @" Y1 y
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )
1 `' W0 t# N2 _9 ^* Z/ q - (Defun UR-x (arg) (CAADR (TextBox arg)) )
) @6 r* [8 T" O/ x" N7 B) ^% I - (Defun LL-y (arg) (CADAR (TextBox arg)) )
7 \6 V, {3 O' w' O. s2 H V1 _ N - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
& f2 U" o' f8 m4 i - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )2 |1 }! |0 r, I; c2 Q# x
- Textent (If ename (EntGet ename)) ) 2 Z6 |2 |* I9 |6 R7 c" G$ f
- (If (= (CDR (Assoc 0 textent)) "TEXT")- H+ w6 w P- [0 p
- (Progn (initget 0 "Start")
" D! X% H% U/ H4 w e$ E- l - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )/ g3 h+ }3 S0 d/ Z& n! E
- (setsnapang Textent) ;set snap along text entity
% E( {+ U$ C8 b' R - (setvar "ORTHOMODE" 1) ;drag along the text, o0 T- V+ V6 d8 P3 x
- (setq $ i( N* O6 N/ w- E, A" A1 J' l% b
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
/ {* B8 c' w& d/ c: H' j& A% K - (setvar "snapang" 0)
9 L4 G6 E v7 j) T6 f% _ - (cond* ]+ Q0 n ]7 M/ M5 s* U; ?
- ((= (type TMP) 'STR) ;;new starting point to be selected$ b5 \7 M6 Q( `. C* U' C
- (setq Start (getpoint "\nPick new starting point: "))* A: n. y% F/ A5 C0 H
- (if Start (progn
6 B' q+ {+ W, w! a - (command "_UCS" "_E" (cdr (assoc -1 textent)))
# d/ F4 Y3 [6 {5 H/ E8 p - (setvar "ORTHOMODE" 1)
: _0 p# T: x; E$ I7 w - (setq NewPt$ I, K! o0 A% a. Y& Z g
- (if Start
. P v6 r% P" c& _: T - (getpoint (trans Start 0 1) " ending point: ") nil ) ); G; j& P2 t" p* f9 H
- (if NewPt (setq NewPt (trans NewPt 1 0)))# X) [3 ^" A- e# |/ Q* q' R% r
- (setvar "ORTHOMODE" 0)
$ F3 p6 P2 i1 q. |4 r - (command "_UCS" "_W") ) ) )3 @1 h* a j1 O8 e. d
- ((not (null TMP)) ;;new ending point selected
0 E7 F) [# X; @$ w: z' D' g( ` - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
' D! u1 n5 ?- i" \& _6 V/ d5 { - (t (setq Start nil NewPt nil) ) )
; X% b+ t, t# ^/ b' c! H# F% N9 W - (if (and Start NewPt) (progn3 C; x6 r' P8 O+ c
- (setq Val (Assoc 41 Textent) ;;current width factor
* S! g8 d& X. \, G9 u - Val (if Val (cdr Val) 1.0) LTC_% - t% v+ f+ C8 `5 l
- (* (/ (Distance Start NewPt) NewEnd ) Val )! W' O- ^4 c9 e ~7 `
- textent (Subst (cons 41 LTC_%)! ?: G% Y) m9 D( \
- (assoc 41 textent) textent)
7 _" _# ~4 U& p8 h; k - textent (subst (cons 10 Start) (assoc 10 textent) textent)
" u8 ]$ }( y& T* U5 W - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
- B, p' j5 P, w5 [ - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
0 e. }; U- J, ^ G
/ [. d1 b. O3 ?9 ^- ;=====================================================================4 n; K! C. A& I5 _& R! ]% D2 e
- ;=========================COPY + ROTATE ==============================
' V* S' D( m1 d+ G - ;=====================================================================$ v- d2 X* Y! D/ w; N
2 H" u! y, U% p" ~: j! _( c- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
; k/ w4 o0 i0 ^5 O! z" @ - (setq olderr *error*
, h) U% v8 v) \, D& y' n; n - *error* croerr)# A. }& f: ]8 I4 w
- (setq cm (getvar "cmdecho"))8 v: }3 { y3 c( X4 b9 j4 B5 x3 o
- (setvar "cmdecho" 0)
) X- g* j- N' |8 u1 M$ k7 x/ V" s - (setq loop t); f1 y4 v" t2 o! J2 L
- (while (not (setq ss1 (ssget))))
$ p* o4 E0 ]0 A0 F9 o; R8 Q/ z - (initget 1 "Multiple")7 R j) s8 Y& k" n3 ?6 D- ^- g$ i
- (setq bp (getpoint "\nBase point or displacement>/Multiple: ")). X+ M! J( k$ V
- (if (= bp "Multiple")6 j6 n' T& M+ P( n' A. h
- (progn
. Z- f* Z- ?% v: q5 Q9 Q- D4 m- G- [ - (setq bp (getpoint "\nBase point: "))9 {, y5 |* n3 a' e
- (setq mult t)
4 \" Z$ {9 y: X) B ]! j5 q. ]% m - )) V: c! b+ |" u7 N$ w" u7 C. \, d
- )
# ]' A3 x# p4 l - (while loop
' i0 @. T0 X; H' c8 L. c$ t# M - (setq loop mult)
5 h8 T6 e, E, Z5 R - (setq lent (lastent))
8 E! r; h* P k" J! }3 A h - (command ".copy" ss1 "" bp bp)) j% R) L$ Q# {9 Q# A F
- (setq ss2 (lss lent))
1 E1 U _6 ^/ c4 D: |9 Q - (setq lp1 (getvar "lastpoint"))
6 d j/ J, @# u4 J - (prompt "\nSecond point of displacement: ")
3 m N7 G2 j7 f3 |& n( Y - (command ".move" ss2 "" bp pause)
' b5 i* g# Z, s1 c+ J: y; s8 @ - (setq lp2 (getvar "lastpoint"))
1 q4 Y, U( d% k- H ^ - (redss ss1)+ A' C* D: { {8 p
- (if (and (not mult)
& n, m( F$ i2 w8 w - (= (distance lp1 lp2) 0)8 J' m3 W! T6 ]$ V
- )
; {" i* A" v b! F, h - (setq lp2 (getpoint "\nRotation Point: "))
, q4 X6 A! D) L - )& T7 m2 A+ B" s8 [' H) L
- (if mult
$ V! ?( k+ i9 z3 f/ e! n - (prompt "\nRotation angle ")
# a n7 P- A( g3 ]6 t - (prompt "\nReference/<Rotation angle>: ")
! B% w w g1 h3 d# |) v% G- c - )+ R1 T: ^- ?$ D# b {$ n6 [# {% _% d
- (command ".rotate" ss2 "" lp2 pause). O+ g/ G- }, m" \
- )
; X; _/ d& s( n4 i: ]5 Q - (setvar "CMDECHO" cm)
: Q5 I7 i/ G. t' x) b' u% R - (setq *error* olderr)2 L3 z9 |6 V5 }* a( U2 F
- (princ)
% i* x/ P2 A6 _' _5 v! `6 o, n2 s - )
7 {: t2 `" e' ` v+ E9 l - (princ)
9 m4 ^: j5 G8 r+ O! j# J0 H - (defun croerr (s) , Y* W6 L* R% }$ x, q, X
- (if (/= s "Function cancelled")
9 P# s9 h9 G8 R# _: P. S - (princ (strcat "\nError: " s))
% I; v7 o) |0 W; S: k4 U/ G1 c - ) 7 `" y% y! x6 o& ~5 H1 U( O
- (setq S nil): D4 X& a7 y8 A- u1 q, j
- (setvar "CMDECHO" cm)- D! i9 B* e& X2 V: o0 J! f& D
- (setq *error* olderr)9 ^4 _. g$ `* F0 C" Z& c! C
- (princ)% k. P* [! ]2 Z/ `) \! L
- )( H) ]( X% f- S: w& Y9 A" J, \$ P
- (defun lastent (/ a b)6 d/ T. H. C2 s2 L \# m9 Z% m
- (if (setq a (entlast))% Q& m/ S( N2 G) b5 G, L/ n# P/ _
- (while (setq b (entnext a))
+ t% C' F2 m' ]9 l - (setq a b)
7 k% A: Y/ N5 {4 x3 i9 p - )' Y( ^9 H. w% ~1 D7 @! S; }% z P
- ), r# i8 X+ x+ I; n
- a
- k! _$ B9 O% _2 H - )
* s$ X; v0 P6 u3 g3 C& {( ] - (defun redss (ss / en i)
3 [: C% U' J* { - (setq i 0)
1 t4 E! ?% q5 P+ f, o1 E - (while (setq en (ssname ss i))
0 C4 l0 p5 w0 g- G! } - (redraw en 1). {1 b& A( Q5 u( B- n# I: x3 b
- (setq i (1+ i))
. {6 r+ B7 k% J) t$ w6 o, N - )
! U1 P1 A; R$ J - )6 l Q# I& M- f$ }, @
- (defun lss (en / sels ed)
4 `# a2 }+ |8 J9 v - (setq sels (ssadd))# R! G ]6 ]- C
- (while (/= en nil)
* e8 q. x' ~: Q2 @% o7 \% D - (if (setq en (entnext en)) (setq ed (entget en)))
7 T4 n, V' M- o8 D: e - (if (/= en nil) (setq sels (ssadd en sels)))
: A) M( m$ X- \7 l( `* \1 L - (if (or (= (cdr (assoc 0 ed)) "Polyline")/ Y5 q: u" q8 F4 C' w& L5 O% U( _
- (= (cdr (assoc 0 ed)) "Insert")
% K# S0 E4 }- v B9 m$ A - )2 j# U( g F# }8 B4 l2 p- G- U1 k
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))6 F0 O! W8 f( h# ]
- )2 m- e+ w n0 o1 {+ v" w, z
- )
- Z' b* z& n* h( }6 i - sels+ {% p) m* G7 O6 w0 `% P
- )) c3 J% Z! t2 T9 b
! h w$ P* V( H: E6 G- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
1 _, O0 \) [: R! t1 M - % X" V: L6 ~3 O6 y8 P2 E6 S5 O% ~9 g
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
1 W9 J: ~# q: f' I; F1 J. Q4 ? - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
6 B3 @7 o0 L. R" `, m/ z5 A# A - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" "")). i/ N/ [/ Z. @6 W- `2 H' I
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
# T; X8 f% A, _/ N: D - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
5 {1 v( V/ P( R/ d/ L% \7 ?* P - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
/ W0 A! q* _3 N. i5 L" B6 z - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
' W( T4 n) M$ ]( C* f# [& J3 T- m& M - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))" T$ J* p+ d6 Z1 w% S1 l( }; R
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))% F( b# \' w8 b; _* w9 {5 b
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" "")), E3 H2 j" l# f( G" D) \& y
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
, Q- N8 I3 Q- _" J U, B ]4 A - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
6 L/ O0 n. z6 `4 I% m - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))1 |, A1 [0 Z. | c4 u
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))6 X y' [1 _ I& E. z% C% q
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
& `' v( ?1 D( X2 K6 j& L( \+ g - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
3 S6 ^# o7 v6 @. X }( V' _ - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
- m) X/ v- H9 w- B; H$ d2 | - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))7 j A3 u6 y4 t# @% z
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
( I4 c0 t0 x6 y( o" K# X5 T5 { - 6 p2 E0 V) ?4 s& f7 e# F$ R
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
: k+ d; [2 z+ l' K
$ L4 N. C2 w% z, u' Q5 K7 r Y- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============. _: S" O( ^! }, s7 y+ u4 G0 W: R
/ v) A5 k# m8 G7 y- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")( J9 [! W, ]' T- i+ R3 M. M2 _
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
# [% ?1 `" }" ]8 g. H - . f1 A' r( h; S3 m. ^* w5 e
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
y7 U7 ^+ |, B% m7 t! U - + [8 |4 W- e4 S9 \) {! z3 l
- ;(DEFUN C:netxuatanh ()1 j9 k9 ^0 L; j
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
& v( t. m* q0 ]5 g3 c - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""! l( J s, g* A* {' g( M6 @) R
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""9 v( B' ?9 r# \/ P- Q
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
7 X( H& a s% v4 t) O( e9 w) s - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
7 b K" \+ S6 [# D - "M" "THAY" "C" "7" "" "Lw" "0.7" ""8 {( k1 I0 o# ]7 R: ^( t. E
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""6 `* j% k3 B; ~& L3 C/ v% \" Z
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""( ^; N6 Y Q. D2 W0 |; T0 P
- "M" "COT" "C" "2" "" "Lw" "2" ""
. @$ H- X9 v0 e4 c6 L - "M" "Defpoints" "C" "7" ""
- f6 q" r' F7 M8 e, Y9 u - "M" "0" "C" "3" "" "Lw" "0.5" ""
7 x" _' Z) H; d# x* A - ; "M" "1" "C" "1" "" "Lw" "0.5" ""& i& k! Y+ a5 ?& `" a# U
- ; "M" "2" "C" "31" "" "Lw" "0.5" "") Q* W) `0 @) E( B
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""3 {6 l3 U7 q) Y' n7 I" V
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""
]/ T4 D. C$ k - ; "M" "6" "C" "6" "" "Lw" "0.35" ""
& l, y" D- |# ?: P - ; "M" "7" "C" "7" "" "Lw" "0.4" "") D1 h; E! b/ l" ~- w5 e
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
6 F" h" h$ V8 Q; a$ c: x% K0 W2 P; G - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
2 [& l- }+ d* i) O0 S - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""- b2 g8 |! g- A
- "M" "KE" "C" "8" "" "Lw" "0.3" "": u: M- v, O G) O' ]/ r1 o
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
: I7 x; k( N: P( w* E - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" "": w8 E- q! W5 V- k) C3 `/ ?
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""+ e; L" N/ U j
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""
2 F1 |( ?& V/ x7 g" p - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""( @" I+ s5 T$ U. E3 Q' F* Q) g
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
. K6 I7 j4 s4 X2 h9 r. A/ o: h8 ? - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
% O' H/ h$ c- S q6 f - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
7 V; L& b9 W; @7 p# j8 x8 ^9 l3 Z - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
# G- b$ t9 R4 G6 Y$ o- u; k, U. G0 V - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
" [3 Y" m9 O( N5 ?: {9 S! _
$ v1 v9 H; D9 ]% f L3 Q" ^- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
0 @- k/ d" X3 W
) S# X" L. F" }. C% p6 g- w- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
3 j2 K6 }1 T+ t' I2 j W - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
7 t4 h0 ^. m2 x8 X& b' ^' E - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""' ?. @8 t4 f; o; u
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""/ v ~7 Z6 W" ~' g
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
* U% S8 N4 W1 @/ c - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
. K8 E1 m3 l. a' k; i2 n - & e2 w/ ~# |$ p9 [
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======: a, O) y. o& W9 s. d/ @
- ;===================================30|04|2024==============================* v, e! {) e3 ?, k
- & \, X p3 y( B- ]
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
" `3 P' s7 g, W5 ? - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
* ~/ I; A) W u0 E8 q$ I l# E - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
" ?5 p8 x9 \( I7 c& } - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
' ^' T! R; H: v) P' A5 E - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )$ W( E, ]8 j3 j* t
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
* }; U, W4 Q( ~ - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
+ P. z, q; v" D" X3 A - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )8 f& _) a% O) x* V, u E
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
5 u9 B% X4 o; B3 f4 I8 s* G - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)& @/ H# ^8 [% P! j
' w0 p; \, N3 H4 s- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
: n3 M, F# B9 G' X! I - ;===================================17|10|2024===================================. L9 F7 t' a/ J S2 o+ S
: h/ a3 a! Q P, I- (Command "DIMTXSTY" "ROMANT-DIM" )
9 X: S, {3 h5 Q' N* z - (Command "DIMBLK" "" "Closed" )
8 ?( J, L1 ]& r. e$ A- S2 D6 K$ v4 s
, h3 s1 W# ]8 l# l0 F, G5 y- F- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
/ `1 ~3 X0 E7 J/ O8 `4 Z - ;===================================17|10|2024===================================) T2 ^# l6 i/ x: [; I
- 3 G* p9 v$ C4 e! l
- ;(Command "-units" "2" "8" "1" "8" "" "N")
9 C! W# ]5 Y r. j - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)" N* D' K' R7 z( w z
2 e& {% u. Y$ U3 Q0 B: i* Q- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=4 Z' E+ \, k& b( \
- ;===================================17|10|2024===================================, A2 U: s% v. I6 G: F
* I: v `. W9 V' u- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====; ~) v1 N% J- p B `! u; k1 _8 V
- & u. {3 G0 J- Q8 ~; s- I; O
- ;======================== DAT NET IN & TI LE BAN VE =============================
3 D3 i5 X: _3 c' x. n
+ T' j( c5 t0 [/ u. | C$ E* S- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
$ J5 N6 w5 f1 h$ B" ]# V9 n% n - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================) u3 `8 g$ T3 p% ~! f, v, d
- ;=============================11|07|2025==============================! J: X( p& N& S& `: L% L
- ;Ti Le Ban Ve - 1 : 100
+ S* K0 g* I1 W6 H# ~: q - (Defun c:kta4 ()' F1 N6 d U4 E0 B, t
- (setq mv_sc 100);Ti le ban ve, k: D9 m9 V) x
- (setq x4 297)0 N) k, ]- p; ?3 f# p# u
- (setq y4 210)! l3 B [6 S+ [
- (setq x4 (* mv_sc x4)
; k8 I9 y! { K D& n, X+ o6 {; B - y4 (* mv_sc y4) )
6 U3 f1 M" k* n2 B" ]4 ^ - (command + `: g/ U& P9 d0 C
- "LIMITS" "0,0" (list x4 y4)- y$ q$ D3 h- s7 F. v7 h8 b2 D8 V
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C", d9 `% g7 T3 F2 Z
- ;Khung CHU NHAT Chinh 7 A T) K R2 e# B {# n) T
- "RECTANG" "500,500" "@28700,20000"
; ?, `; _) c4 u8 r7 Y5 \ - "RECTANG" "700,700" "@28300,19600"# y2 w7 g* g4 F0 ~: j _: _# P
- ;Khung Ten Chung
, \+ S: g7 P( I- o - "RECTANG" "700,700" "@8000,1250"
* k4 @, i) a# q: G5 r - "RECTANG" "700,700" "@17300,2500"0 m7 v) K* ^3 G; X, @
- ;Ten Ban Ve0 P5 y5 o* f2 i0 [" A; y) X
- "RECTANG" "18000,700" "@11000,1250"
2 I" W1 _( Y! U$ [- U - "RECTANG" "18000,700" "@11000,2500"
* C' O/ m8 w- [" N - ;Khung Ti Le + Ngay Thang Nam( ?1 V M) _0 \3 P
- "RECTANG" "22500,700" "@2000,2500": T. ?% [: F" i5 ? t
- ;Khung CHU TRI2 \7 M( O: I, s+ c; `" i
- "RECTANG" "8700,700" "@3800,2500"
; }1 p8 z5 R* ?: B- n - "ZOOM" "_a" ))
3 b7 i9 E2 z# J# L - ;=====================================================================
0 L, _% H! B+ o- x2 Q - ;Ti Le Ban Ve - 1 : 100
2 D, Q' h; t2 r9 C1 r$ ^% g1 t& H3 D - (Defun c:kt4a ()
& j! ^2 k9 H7 r0 Z* S! @ - (setq mv_sc 100);Ti le ban ve+ }' z" Y; m4 n a* C% v }
- (setq x4 297)
$ f* L6 g4 Y( b* K - (setq y4 210)
; o4 ~; U1 F& F$ E- U$ i - (setq x4 (* mv_sc x4) 4 h, \# e# h$ \. ~+ ^* b
- y4 (* mv_sc y4) )
' I' w5 E' I6 A5 b! h ` - (command
$ L8 a B$ d) m) g9 |) O! n' a - "LIMITS" "0,0" (list x4 y4)
. N( _: Y$ s0 G- s. K1 _4 ~ - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
% r6 G5 e% Q% |4 s/ _7 v- n+ N - ;Khung CHU NHAT Chinh 6 Z' E' s& x( W4 S+ y3 x5 e6 y
- "RECTANG" "2000,500" "@27200,20000"% e0 D+ r; C1 j7 @/ y( u
- "RECTANG" "2200,700" "@26800,19600"
?. w# W( K# x. a! C! V - ;Khung Ten Chung0 F6 F0 Y7 z, w: ~) ^+ l
- "RECTANG" "2200,700" "@6500,1250"8 U' V3 p1 f) b3 j, Q, W% M
- "RECTANG" "2200,700" "@15800,2500"
) V6 R+ A4 z6 J) l7 Z# Y. f - ;Ten Ban Ve2 j: p; n8 s+ ]- j3 f
- "RECTANG" "18000,700" "@11000,1250"
2 o1 a- o4 p: D0 J - "RECTANG" "18000,700" "@11000,2500"1 ]% e6 C& T' a0 H/ \2 K j
- ;Khung Ti Le + Ngay Thang Nam: m0 Q5 n l" n
- "RECTANG" "22500,700" "@2000,2500"$ ]- i; b7 ~5 C- l2 a6 K8 h+ E. K" J
- ;Khung CHU TRI% H4 W$ x( \/ ?2 a" z
- "RECTANG" "8700,700" "@3800,2500"
% g4 ]- Q4 {! m" Y - "ZOOM" "_a" ))$ d1 g/ ^# r$ c" W5 S/ o ?
- & a4 R+ M2 O! h& c- W; p2 Q4 F/ b
- ;;; ============================GHI CHU Khung Ten========================1 c0 C0 d0 j G' Q
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
4 H# @) E" j: G9 O - ;;; =======================Thuong Dung Font Romant.vnh===================
5 ^# Z$ p" a* ]4 ?8 `6 I2 i# Q - ! F& L+ x9 F% r C% V ~1 W% v& B
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)+ `" }3 P7 _( S2 e, W1 W
- (setq oer *error* *error* err2)
* }5 ]9 O) X! Y - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
7 X. L" F2 p4 K, I* A7 k' a: U - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
! i4 c% V* M, ]# M: R - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :")); s6 J4 [( @5 R- k6 h1 N' @5 d( S% m
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
0 T z& I( T/ G4 z9 q, }3 \ - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
+ R! [6 Q" q/ y9 C( z6 S* t; u - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
! c; w4 Z9 [6 H: D5 p1 U2 o - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))( I* g* [. q% @0 l% C2 V% }9 ]/ i
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
* Q D+ r) Q" c( U* |8 M( [ - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
4 ~, R% U) G: H6 B6 g - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))' F2 [/ ^& ^+ t: E
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
3 y; u2 x5 s" [7 h& x5 q - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :")); {6 z7 P% ], G, @' e! F4 P
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :")): e! `0 I7 G) M6 ~8 h5 h) Q
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
$ b* Q7 ^9 B3 e# B# M. m9 ^2 w - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
0 t0 Z7 x' u. z3 Y2 k+ s& v - (setq pta (getpoint/ V- I, R0 E/ K
- "\nPick first corner. : "))
! w# a6 I+ ?' L3 J$ Y' M6 A - (setq ptb (getcorner pta
) c0 h2 R2 X; S8 N& ^# w3 k - "\nPick second corner. : "))
: v1 z& }3 y6 E$ }. [ - (setq ptc (list (car ptb)(cadr pta)))
! |9 a; }: {5 h" V6 u - (setq ptd (list (car pta)(cadr ptb)))
1 s9 o! ]4 x/ A3 d - (setq ang (angle pta ptb))
7 j0 ?4 @: S; s% R3 c# q# s8 \" d - (setq d1 (/(distance pta ptb) 2))
) R$ j& ~; r3 M# b - (setq cp (polar pta (- ang (dtr 0)) d1))
: h. W* x2 L0 a9 `. `& l, } - (setq X (distance pta ptc))
% Z0 H5 Y8 f0 x* o - (setq Y (distance pta ptd))
6 t; Q% ~2 r/ y6 L/ a% O7 b) @7 P - (setq X1 (rtos x 2 1))8 T* v, L% a' G" j3 H
- (setq Y1 (rtos y 2 1))
" Z8 D5 a% k$ _ - (setq rmsz (strcat "(" X1 " x " Y1 ")"))& Z( Z0 X7 U5 }5 |. Y# U
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))7 D& y Z% U- I
- (defun dtr (angg)
9 Q6 Z/ b% R4 D2 D - (* pi (/ angg 180.0)))/ _0 o0 F& z6 \/ ?1 V2 L
- % X9 e' e4 V* _4 u b
- ;=====================================================================
! }0 o# L9 o& T5 r: x: f5 K - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
$ V+ h- {, V! E: ]8 H* G3 K - ;=====================================================================
3 |8 w3 b+ c& Y$ P0 Z8 h - 7 T! R; ^4 G3 b8 Z; [' n
- (Defun c:a6 ()
" w) }) m- e* d! _% b - (setq mv_sc 100);Ti le ban ve
9 T- T5 y8 X1 I' x; j& U - (setq x4 74.25)
* A& _, ^' [/ y7 }0 }- F& L4 | - (setq y4 52.5)6 W2 i2 e# t6 U- D! E
- (setq x4 (* mv_sc x4)
' _ x. l6 `7 g/ ^ - y4 (* mv_sc y4) )
: l a e. ~9 [, h - (command , x9 k- x `# Y# }! p5 o1 z
- "LIMITS" "0,0" (list x4 y4)
* B6 ?* h) M, c& Y - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
5 t# g/ L2 Z- g: h S - "RECTANG" "125,125" "@7175,5000"8 D4 L* n* c) C( p1 v) p8 I/ n& |
- "RECTANG" "175,175" "@7075,4900"5 X; S5 ? c1 ]& {
- "ZOOM" "_a" ))
! I6 k6 t& S# C2 ?$ N. M5 J7 ] - ;=====================================================================
; G4 A) N- D3 d ~ - (Defun c:a5 ()5 H1 r% {3 h- K6 F I3 l
- (setq mv_sc 100);Ti le ban ve s! C0 Q; F" z2 J$ X' C5 }
- (setq x4 147.5)
6 w j; A9 W. e- @* | - (setq y4 104)
3 N0 H" b. C2 p; ^ - (setq x4 (* mv_sc x4) g$ Y2 E* S6 \+ e- p! e, I
- y4 (* mv_sc y4) )! w- k& E+ W9 u$ n
- (command - W8 ~) G6 B: Q/ G, @; C ^0 z4 s4 a
- "LIMITS" "0,0" (list x4 y4)% u1 O1 R+ @0 D
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"' _" ~4 c3 t4 t, ] ]- i
- "RECTANG" "250,250" "@14350,10000"7 G9 y% e2 @% O8 ?3 j$ s9 M8 t5 l
- "RECTANG" "350,350" "@14150,9800"
' y* H7 B$ M, _3 ` - "ZOOM" "_a" ))' o4 k! {+ d( i% ~3 I
- ;=====================================================================
) x" j4 O' D+ t$ G/ r2 I - (Defun c:a4 ()
% z6 m8 S) @9 y# V7 F - (setq mv_sc 100);Ti le ban ve8 l4 K' Q2 s3 i* K+ C
- (setq x4 297)
2 q& O3 p& J4 X7 }3 c) O1 R8 O - (setq y4 210)1 e a: d5 d$ l4 h8 N; ^
- (setq x4 (* mv_sc x4) 6 v7 \! J" T+ ?% B1 W! F. u
- y4 (* mv_sc y4) )% M$ m% [0 \4 Q+ c6 Q: Z" k
- (command , p+ B8 R) g! Y8 A2 w7 z W
- "LIMITS" "0,0" (list x4 y4)
3 t9 ^3 L7 k9 s: o, Y; [ - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
2 W( [. `3 j- \* l' U* F! t - "RECTANG" "500,500" "@28700,20000"
1 C% Q6 P ?! ~! f/ l& ]9 R - "RECTANG" "700,700" "@28300,19600"
1 U3 N. }. k( k! A/ y# Y - "ZOOM" "_a" )); e' ^9 J: k: x+ x, k. m. [
- ;=====================================================================
j1 }) m+ Z2 o, m+ V; y1 i8 F: Y) [ - (Defun c:a3 ()
! a6 @# l/ Z, `6 {% @ G4 E, U ` - (setq mv_sc 100)8 O. q! A$ T* v2 {# j
- (setq x3 420)
# s5 g) T: H1 {" M% m( G" b - (setq y3 297)1 P* K/ i2 g; y6 ?4 ~8 r1 q8 k
- (setq x3 (* mv_sc x3)
+ S; l) m- G2 A' k/ w0 | - y3 (* mv_sc y3) )
+ W! F3 \+ z: U7 }/ z) z' h% _ - (command 6 u+ s7 i0 j1 H; a. D
- "LIMITS" "0,0" (list x3 y3)
1 l' p) c: Q8 R \ - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"$ h7 ^1 M! [7 c" Q: y
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
+ U0 B1 R- B `6 `4 ~( f/ C. \ - "RECTANG" "990,990" "@40024.28571429,27720"* r9 b E7 |- P) c; U" ^. `: u
- "ZOOM" "_a" ))
9 v. I; E0 K1 a - ;=====================================================================1 X- e; ]% A! ?7 |' @+ T
- (Defun c:a2 ()
* h0 ]/ Z8 M8 \1 \( S - (setq mv_sc 100)" t2 F$ h3 I1 G' p Q8 i9 j" x3 W& Y
- (setq x2 594)5 o' c/ ~& N0 t) { ?9 e
- (setq y2 420)% a, B9 v( P ]! _
- (setq x2 (* mv_sc x2)
- d$ {% O- D$ l; s/ w, s5 i$ K - y2 (* mv_sc y2) )
; R V# h# q @: i, R* R p - (command : R# o$ r4 e1 ]" ^" v
- "LIMITS" "0,0" (list x2 y2)5 Y7 j; y+ v. y$ j! O
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C") Y [) y9 X5 q P! H
- "RECTANG" "1000,1000" "@57400,40000"+ f4 P3 H5 J3 R+ H" z
- "RECTANG" "1400,1400" "@56600,39200"# G+ M Q* i+ x& N1 s; }
- "ZOOM" "_a" ))
- r8 @' Z6 g7 d5 G3 s2 M - ;=====================================================================7 K( { r' p7 x% A( e
- (Defun c:a1 ()& L5 K% O, I2 n
- (setq mv_sc 100)+ D9 _1 d2 h7 @% z2 Q& Q6 m. ]
- (setq x1 840)
: P4 Q2 f% c$ ^- y8 N - (setq y1 594)
$ l, R% n' W$ @" ?$ F' C$ Z - (setq x1 (* mv_sc x1)
3 q. U% F( b$ Q5 K+ `; I1 g - y1 (* mv_sc y1) )
' |) _# a) C; t8 [8 r, Q+ o1 _ - (command
- C7 Y7 o! Y. m; m - "LIMITS" "0,0" (list x1 y1)5 A7 H( @1 O2 _/ V& u4 b
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
0 o3 |5 ?5 C5 q- ]5 r3 u: t) T - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
. W6 o& C5 z& i. M8 d4 R0 D# N! s - "RECTANG" "1980,1980" "@80048.57142857,55440"
, Q5 X, n" E$ x/ H* Z" {8 N+ v7 V4 Q - "ZOOM" "_a" ))
- e1 r% C l0 r# x2 I: s+ t0 m - ;=====================================================================
+ V: I) n' D* E% A, P4 o: \ - (Defun c:a0 ()
" I3 r0 y8 }, W2 s' T2 E" J# O - (setq mv_sc 100)% {1 x, g, T- n
- (setq x0 1188)
* }6 G' y# ?! a" ~; J - (setq y0 840)
6 R$ d( K& }$ F. g) N& n5 \3 `; D - (setq x0 (* mv_sc x0) # b6 [, r# _4 s- u% X6 ~0 H
- y0 (* mv_sc y0) )0 {/ J3 e8 J0 C$ ~3 ~: \, \
- (command ( w7 p4 H7 I- o$ |- `. b
- "LIMITS" "0,0" (list x0 y0)( q% t# w1 S. ?; s) g1 z
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
( c0 y+ Y* g6 z8 `6 b" N2 E - "RECTANG" "2000,2000" "@114800,80000"
) t+ M3 L9 n8 g$ P& b - "RECTANG" "2800,2800" "@113200,78400"7 M0 ?2 |/ H: Q0 c) y" N' c
- "ZOOM" "_a" ))* A0 C2 I; s: U( O7 N! }
2 Q8 `: O2 l o f, i2 _" t' X- ;=====================================================================$ A+ q9 |. h3 s- }
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
# u9 w* S. ^$ j' P, x - ;=====================================================================' D/ |# p" x" g$ m
- * Q2 `0 d& Z9 S
- (Defun c:6a ()' b. G X' D0 [. {" N
- (setq mv_sc 100);Ti le ban ve
0 z3 J: W* k. C1 b. L! K - (setq x4 74.25)
% U n2 @& l& L' p* ^$ Y8 M ] - (setq y4 52.5)
1 ]1 C& G' J% Y) e - (setq x4 (* mv_sc x4) . W( b' X& Z* S3 e
- y4 (* mv_sc y4) )
# M4 W3 F! z. x- n- [+ V - (command 2 ?% f( [8 q1 a( O% v
- "LIMITS" "0,0" (list x4 y4)4 [/ P0 m; i' r5 r/ T# i/ a
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
. ]$ y2 {! c9 a - "RECTANG" "505,125" "@6800,5000"
& J. y: [" B I1 j# a* j* O - "RECTANG" "555,175" "@6700,4900": r, N7 w( D. U4 c- f
- "ZOOM" "_a" )). S& c( v/ Y1 s, ?4 I
- ;=====================================================================
$ @) e# W/ `/ X6 b( M - (Defun c:5a ()
5 L* v$ ^8 {5 a0 I - (setq mv_sc 100);Ti le ban ve
1 H/ F- ]5 T, A, f - (setq x4 148.5)7 J$ B3 C: X. ^5 d; X7 u
- (setq y4 105)
" E1 w2 @; k I1 A8 p; _( M - (setq x4 (* mv_sc x4)
( W$ G2 ]; B- t, R+ K/ x# Y) v - y4 (* mv_sc y4) )/ |# g$ ]& e' I1 f
- (command : s# n. _$ C# @
- "LIMITS" "0,0" (list x4 y4): |8 c6 E& _ p* J
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"/ _2 a+ s2 d4 u7 f) o' Q' e
- "RECTANG" "1000,250" "@13600,10000", P8 X) q2 X6 Y
- "RECTANG" "1100,350" "@13400,9800"& O& u: W F; K, x/ a) U
- "ZOOM" "_a" ))5 f9 e% z8 a3 f* ^( G0 `2 q
- ;=====================================================================: F% X3 \) l$ f& z9 D7 S
- (Defun c:4a (), b% w( p2 i# F5 C; g
- (setq mv_sc 100);Ti le ban ve
. |+ x- N, x( p% V - (setq x4 297)
0 a, X. [$ [8 }9 b* H p - (setq y4 210)0 G' T# H5 j' s0 y
- (setq x4 (* mv_sc x4) w3 ^" G) c# Z3 m
- y4 (* mv_sc y4) )
4 R; P8 I1 J( K9 B r+ h- _ - (command
$ z$ {6 u. u1 ] - "LIMITS" "0,0" (list x4 y4)
5 Y- \1 C5 p% S$ n; a) v - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"+ ^1 |! t$ k% s# n1 S
- "RECTANG" "2000,500" "@27200,20000"
+ D2 [( [7 ]0 L - "RECTANG" "2200,700" "@26800,19600"# S# s/ T' F' w" S% w' R' P
- "ZOOM" "_a" ))
: E: j7 l, h3 X- f: ? - ;=====================================================================+ f0 |& T' G8 `; q5 m
- (Defun c:3a ()# q9 r6 N+ K" L( A9 h' ~
- (setq mv_sc 100)
6 b6 k. X7 X% y8 M1 S( R2 y - (setq x3 420.0428571429)
5 E/ G) ]; N% h - (setq y3 297)
/ C. F/ u5 h0 y0 x - (setq x3 (* mv_sc x3)
1 r( V, X5 |+ `) S! ] - y3 (* mv_sc y3) )" }0 j9 I( I' n0 L: ^, a+ f5 K1 v. G
- (command % K$ O# Z$ C. b4 V! m
- "LIMITS" "0,0" (list x3 y3)
2 C& p: B M4 q" T3 A - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C", S- r1 K9 }5 d. m& t5 u
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"9 B. H/ `3 Z) l' U
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
+ w' K3 K, y) J7 {9 R8 G - "ZOOM" "_a" ))
9 a+ I$ b! \( Y5 z - ;=====================================================================
2 Y$ G$ c" L- h6 x4 b0 [/ p - (Defun c:2a ()
7 R5 t; U( I+ J, P5 t8 R- c& t! Y - (setq mv_sc 100)$ Z! G. z% v! F
- (setq x2 594)# i7 r: |2 z) `2 R+ I
- (setq y2 420). n) G) @0 m# G% n5 z3 K
- (setq x2 (* mv_sc x2) 0 }% }, t3 _' I/ R( t0 @+ h$ @
- y2 (* mv_sc y2) )% I- o4 r2 k, ?" {) a. C6 r* ~
- (command 8 C; }9 i0 Z0 T; g" @" i) k! g8 ?
- "LIMITS" "0,0" (list x2 y2); ~4 a, ~6 n/ E3 L- K0 j* {
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
" r5 O4 g% U1 a+ r* c( W @ - "RECTANG" "4000,1000" "@54400,40000"
1 V2 Z6 @( X" m, Y8 p - "RECTANG" "4400,1400" "@53600,39200"+ n$ \# W! D$ c9 x4 m4 S- d
- "ZOOM" "_a" ))
. |1 t; ]7 C3 S$ W5 F - ;=====================================================================
+ G0 }2 G. V: u) M( N! ^3 a - (Defun c:1a ()# B& B/ [ t3 }+ q: g' J7 K6 h7 Y
- (setq mv_sc 100)
3 o1 l, O: [7 B% X - (setq x1 840.0857142857)
( A! i- F% F1 u - (setq y1 594)
4 o3 z6 {9 R$ |. g# ?+ K - (setq x1 (* mv_sc x1)
7 c1 k) j L! D6 L/ R+ v - y1 (* mv_sc y1) ). l& E9 `% i, s) u# o0 z5 E. O
- (command
' ~" T5 x( i2 V3 N - "LIMITS" "0,0" (list x1 y1)0 U. N' I" Q9 w2 s+ Q% o) D
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"7 O8 L* n# p2 U: i4 w7 `1 z
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
7 X# R: ^; L. W0 z' j. Q8 o Z3 c( U - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
$ i- b" \0 h' i2 F+ Z7 M - "ZOOM" "_a" ))2 `# w+ O. f2 v6 W7 J
- ;=====================================================================" D& h j+ I- P2 H! x
- (Defun c:0a ()
9 Z" N ]8 X) V$ ]- Y$ A% U6 |( A - (setq mv_sc 100)* U7 C; ^2 a/ k1 t
- (setq x0 1188)) Z! P7 M0 r! `- w
- (setq y0 840)
8 ?0 Q9 {8 T) q! i# G; P0 N - (setq x0 (* mv_sc x0)
2 Q: w; |& \; V7 Z F - y0 (* mv_sc y0) )2 h2 X m2 R7 ~8 w3 j
- (command % r7 H6 k6 @4 b$ u6 t- N
- "LIMITS" "0,0" (list x0 y0)( V& M) v' s0 n0 C ~1 O9 C
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"1 K$ k1 w( ]2 x! ]5 q+ K
- "RECTANG" "8000,2000" "@108800,80000"
- g# S" k4 Y, P - "RECTANG" "8800,2800" "@107200,78400"
: Z% {" X& O! H. j7 ~2 c - "ZOOM" "_a" ))$ J, n. Z/ n* j3 m8 v4 d
- : L5 o) H! T8 g5 f( S! p
- ;=====================================================================
5 L# h. F# O' L6 v+ L - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
* U. ~3 C! a* D" ^4 e: t3 h( Z - ;=====================================================================
9 ^& ?# Z; n9 C5 u/ d+ C/ z - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
, S/ z) ]6 T! M- d - (command "undo" "be")
4 B9 K5 B4 m: Y0 {2 c9 C - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))# v: Q' M, n) ?% s1 j
- (setvar "CMDECHO" 0)
+ f$ c2 j! P0 o - (setq a (getpoint "\n chon diem chen :"))
/ }& [7 B1 g, _ - (if (not TL) (setq TL 1.00))+ O; K9 b% g& e0 T7 i( N u2 x3 X* ~
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))1 @) t5 x& O$ O$ k' u
- (if TL1 (setq TL TL1))9 Z' v. V$ J0 e1 J
- (setvar "osmode" 0)- @( r: D5 C6 t! X
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))5 e0 A) ?/ p: W5 A% z5 L
- (initget "0 1 2 3 4")
3 y# F* U3 b% d& c - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))6 S( O9 I3 N7 R4 i+ f# |* i9 z$ G
- (if (= kho "0")
- _+ W' M& q+ R - (progn* y! {& W8 T# t O
- (setq b (polar a 0 (* TL 1189)))# h- B$ y$ w8 c) v
- (setq c (polar b (/ pi 2) (* TL 841)))
5 ]# X$ r' r% Y" u3 [ - (setq d (polar a (/ pi 2) (* TL 841)))
) z8 i% |5 D |7 Y - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12))))) D, S+ F" s; x8 C& B
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
; s; Q+ f, j4 Q - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))/ K0 ^2 b: G6 x* j9 m5 }; ]
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
9 q% i" \3 K; E$ p! s - (command "Pline" e f g h "c")
. ~. F$ N# U9 _) D4 @3 Q - (command "change" "last" "" "properties" "layer" "0" "")
5 [7 b5 K ~$ G) } - (setvar "cecolor" "4")
7 h; s5 C7 k9 }3 K4 J: C - (command "Pline" a b c d "c")& S: n9 R4 m- ?1 x6 ^" ?: i
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
6 i+ w3 l% F" V, ^1 I0 Q8 U, p5 v - (if (= kho "1")5 k. P/ U( h0 n
- (progn9 t d- L3 O( L' I: M
- (setq b (polar a 0 (* TL 841)))! [; z9 ?/ W6 X3 x# @) C
- (setq c (polar b (/ pi 2) (* TL 594)))' N* u4 V8 O$ J: {" |
- (setq d (polar a (/ pi 2) (* TL 594)))
8 r: q$ B8 |, Y1 @( j1 f- [ - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
; _: S# {9 i( f* ?! ?* C: p! N: Q, x - (setq f (polar e 0 (- (* TL 841) (* TL 24))))
! W5 G- @4 w6 S- [ - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))+ d0 o7 \5 T0 f, L n0 z6 e
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
" j: e' @& f$ q ]8 u - (command "Pline" e f g h "c")
2 {7 D: h# k6 o - (command "change" "last" "" "properties" "layer" "0" "")
, d' r7 F& H8 r! P( T5 X9 H - (setvar "cecolor" "4")
0 ]- f1 M: n' E" W7 q3 ^ - (command "Pline" a b c d "c")/ M9 d4 V; T0 b& S9 X4 U- P+ [5 b
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
, J& Z% ~9 W* f; Z9 w2 ~' D% \ - (if (= kho "2")3 S, ?- S3 `& w. w$ }" b9 m* _
- (progn4 c# I: E! W j$ T: h
- (setq b (polar a 0 (* TL 594)))
& B" I9 h6 @* S% R* E - (setq c (polar b (/ pi 2) (* TL 420)))
) s& I1 v9 y7 b$ O - (setq d (polar a (/ pi 2) (* TL 420)))
v* A; v1 f0 d' `/ w - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
0 ^- b6 f2 F* b: I" _ - (setq f (polar e 0 (- (* TL 594) (* TL 20))))
$ n" a, ^. d# e) v# O4 O - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20)))), l6 R, N2 b) f5 ^, D
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
! C: c& J. N) H( P/ |' D' r1 S6 M - (command "Pline" e f g h "c")
6 J; R* d7 n: o& l, w - (command "change" "last" "" "properties" "layer" "0" "")0 \% E- X- T0 K1 f2 F
- (setvar "cecolor" "4"). T1 |; e1 {! o3 K+ h" Z F5 q1 K
- (command "Pline" a b c d "c")( q: A; {$ |$ }7 {) [
- (command "change" "last" "" "properties" "layer" "defpoints" "")))+ _3 \; v2 s# p+ F, L
- (if (= kho "3")3 P5 k4 C5 J( t( T: B) y; [/ j
- (progn5 \! h' t! M6 z/ ?; \4 a# l C7 D* t
- (setq b (polar a 0 (* tl 420)))
/ ]: R* u3 a' x9 s! p/ ~( \ - (setq c (polar b (/ pi 2) (* TL 297)))
- V1 M5 i/ \2 e, D3 M3 N - (setq d (polar a (/ pi 2) (* TL 297)))) o* [9 M2 B; q3 n) P% P) w. p& V
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))2 i: T _3 [3 u- ^8 u; w
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))5 h I+ I" @5 l. E0 N$ J0 y3 n' Z9 I
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))% B2 ?; Y! H& z0 L! V9 _8 m7 Y
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))! [+ A- e M2 f b. j- e+ C2 Y" ?# I
- (command "Pline" e f g h "c")
1 D+ e+ R( M* ~7 f3 i$ j - (command "change" "last" "" "properties" "layer" "0" "")
7 E3 G _ u; x& c! w& [ - (setvar "cecolor" "4")
3 Y9 C: Y; K- a o9 S; V3 @ - (command "Pline" a b c d "c")" N' o0 S5 J) a. v/ X+ j# Z
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
% b) N8 e" J! r7 n# }& ]4 F& E - (if (= kho "4")
/ C4 O, H$ C- b( J) o+ {- T- k - (progn
- l$ B$ N$ H- p) i" o: ? - (setq b (polar a 0 (* TL 297)))* ^6 A7 X) A1 T+ ?% h$ I
- (setq c (polar b (/ pi 2) (* TL 210)))
$ w1 n! w, \+ N7 _" j- K5 |& { {8 T - (setq d (polar a (/ pi 2) (* TL 210)))
% v. I; P% G0 h2 \& I) A& Y' \$ \. p - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81))))), l! Y: X. ]* M
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))" T1 u l' v* q6 y# i; A0 _" l; g7 J
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))/ y$ E! q0 z/ O, R
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))8 F% [5 c! P: ]6 F N% D
- (command "Pline" e f g h "c") + ~. q! o' S6 V9 X( [& g: A0 u& J' r
- (command "change" "last" "" "properties" "layer" "0" "")
9 ]$ k4 F! h% l5 x* |5 f8 v - (setvar "cecolor" "4")
, y# l- X5 G# b# N) P( d - (command "Pline" a b c d "c")
6 k9 v- H6 Y! j" |( I - (command "change" "last" "" "properties" "layer" "defpoints" ""))); w, Q4 B" X5 w# Q
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
! N) i; \. u5 y& W, U( n - (command "undo" "e")4 W7 V( o {, S$ G! l$ S* l& d
- (princ))/ L( c& D5 X8 j
- ;===================================================================== v7 r8 P5 T) c& [" X9 N# F
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================8 }; N M [, x$ ~5 H
- ;=====================================================================; _0 m" q6 J8 Q' Y
- : \8 U- y9 s0 L- w9 y; h/ e
- ;=====================================================================( t6 p- i h+ a' W; d9 J
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
& k+ t0 Z8 l; z7 [+ h2 s - ;=====================================================================
( T; V( h, `/ v& V6 J* G
% {1 O0 }! \' [+ G& o9 O0 P- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
( J) M8 Q7 q! L9 A4 n - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
7 ^2 ?. ?2 U' F9 A. N - "M" "MANH" "C" "9" "" "Lw" "0.1" ""; X* K6 L3 x6 z; `; F b
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
4 F y$ n0 P3 }4 d: f$ D - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
& i" B9 Z$ {# A - "M" "THAY" "C" "7" "" "Lw" "0.2" ""2 S v& q0 m; `/ `
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
& Y) s) i9 h; \! L2 _* i - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
5 U2 m3 R2 q { a: D- @ - "M" "COT" "C" "1" "" "Lw" "0.3" ""
) {# L' [0 @0 G/ E - "M" "Defpoints" "C" "7" ""- a2 _+ d. T- O3 `
- "M" "0" "C" "3" "" "Lw" "0.12" ""
* F& Z& s' `' ?# b0 _ - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
' u M9 K @! ] - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
1 J% d8 B$ t8 j4 } - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
# o9 ^; L* f8 o) \) l& V - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""! O8 g+ [: n- k. A: d# N
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
2 x* Q! |$ ]0 l) ` - "M" "MANH" "C" "9" "" "Lw" "0.12" ""- Y2 m0 ?6 |5 E9 _
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""8 B, b. i$ ~* Q7 B$ P( i6 a
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""* ^* k) m6 t' P3 ?; R
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""/ Z3 S1 |) }1 U/ K+ w- ~, R( l& [* Y
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""4 d0 D D7 q* a: Z
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""& W$ S4 e" X6 w& A) w
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
- t7 t; v- j/ z$ n - "M" "Defpoints" "C" "7" ""5 ?% @* ?% }; L
- "M" "0" "C" "3" "" "Lw" "0.2" ""
6 k. o; P2 f, v& @% U - "M" "CUA" "C" "6" "" "Lw" "0.12" ""0 k5 F P9 u) ]+ X1 W- C
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
+ w1 f) C6 o/ U) T# k- a$ S - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
3 c: C0 f' A0 ~0 d3 E& q9 E - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
: d& m+ ]& C _$ l - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""5 Q$ e( S7 j3 s- q
- "M" "MANH" "C" "9" "" "Lw" "0.2" "" l* D: T: Q3 _) Q9 N' E
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
6 I4 z& ^4 `4 `! ?0 }3 } - "M" "DIM" "C" "1" "" "Lw" "0.25" ""3 w6 H- Y% r$ `" ` e4 G
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
6 N1 [+ W' v, t& H% O, d - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
) n, ~) A5 c3 x) Q W - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
9 S3 Y1 W! W$ h" D - "M" "COT" "C" "1" "" "Lw" "0.6" ""
: @; U& p* N7 ~8 { - "M" "Defpoints" "C" "7" ""; C. p5 x. D, n6 x7 u, L1 l
- "M" "0" "C" "3" "" "Lw" "0.25" "": w q( b0 k5 h9 n( O/ G
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""' k& L3 @0 `3 z9 T, f! p( b
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""# A' w% ?/ ^3 A/ b# ~
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
! O' }, ]8 w7 E+ K - ) u& t7 h& n! e, @- z: B
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""9 C% j+ f/ I8 Y3 B7 r
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""# \+ v& @& O# e1 @5 Q9 d8 E9 a
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
6 [" P% q$ q. i8 @ - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
4 I. n! G0 C1 Q/ z9 }2 L" q9 b6 [ - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
, c% O' z. k& f4 c* q1 a - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
1 W8 V7 W- C- M0 k. W - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
9 q* Q! ?) {3 X& i - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""8 K6 E$ \+ `6 x t
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
3 }3 c7 t1 p2 ]$ j - "M" "Defpoints" "C" "7" ""
% P' e0 s- `1 _. O - "M" "0" "C" "3" "" "Lw" "0.25" ""0 v% `3 v. L& Y
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
9 Q" Y1 Y- g# i" h7 b - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
5 y+ Z& y% `: I# N# h5 s6 J- k - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
* o" t0 a! T( K% O$ Q& G! b
b+ b7 I7 C! \1 S- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
' T' v" M1 ^, B7 k9 W6 t+ ?% b - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
! x; e3 Q, q1 [1 ]: s# n - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
! T2 ^# s% R, ?; }6 @* ] - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""+ Z' W e- x2 M9 g
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""/ ]/ H" P* \& B P% Z3 d4 P
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
7 t, z3 X0 i, L9 C+ M& R: E - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
! }6 @+ w" U) ]3 _ - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""& B4 X# Q8 G% Z; i8 X
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
4 D1 _8 K# P( b% d u - "M" "Defpoints" "C" "7" ""
: v* f1 b' |9 U4 H. F - "M" "0" "C" "3" "" "Lw" "0.35" ""& R* b$ N8 E& P. J) }* P
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""9 F4 v7 l3 N$ c8 c6 }
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""1 E0 ?+ x) K' J. [+ O- I" g7 o
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))* N$ B1 W5 @ s: B; \$ |
+ e# r. W. N% B+ ]5 c& x- o1 }- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" "", J! g0 D6 O% y, O3 p3 I
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""1 \8 q2 r J7 ^3 y: q0 z
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
- N2 {# Y1 i; b) B - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""' n8 R/ O6 ?$ P7 l2 S: J
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""' h# D% N' e. g3 [; q9 L" A" I: |
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
' V v* v( Y; S8 y8 y - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" "": z/ N2 ^' Y" k. [
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
" g1 ?+ Z8 L& R- R0 T - "M" "COT" "C" "1" "" "Lw" "0.85" ""
& O5 l. z- k, s - "M" "Defpoints" "C" "7" ""; h" G; g2 Q9 M: `0 q1 I
- "M" "0" "C" "3" "" "Lw" "0.35" ""* \: U* Y& M2 F6 B: C+ b3 K8 i
- "M" "CUA" "C" "6" "" "Lw" "0.4" "") r/ N( y1 P0 D3 c- i% G4 S1 m
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""& M7 j7 n2 P4 ^3 J
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))$ j) T8 s* t+ y1 h( @4 ]
-
" J5 K' H3 ~* j4 O1 X D - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
" p% b: i# s0 q7 z: C - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
4 _; `& @+ N0 X' R7 z0 S3 r0 c - "M" "MANH" "C" "9" "" "Lw" "0.35" ""' [2 U( ]$ `2 z7 e7 e2 B
- "M" "TEXT" "C" "7" "" "Lw" "0.5" "") z. q6 `. J2 _+ B* t) z
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
8 i3 p- i' N0 V+ e$ `4 } - "M" "THAY" "C" "7" "" "Lw" "0.5" ""2 }' F/ a# v& [/ x5 J$ C
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""; C1 ]' ?3 _4 m3 ~0 V# m7 E0 k
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
; O- x$ S# ?) E. h% W - "M" "COT" "C" "1" "" "Lw" "0.1" ""4 C8 W0 S/ m t3 J! m- S3 j
- "M" "Defpoints" "C" "7" ""
7 [# L% s m7 ? - "M" "0" "C" "3" "" "Lw" "0.5" ""9 l3 n" R, n P; `( h" n
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""/ j$ C' G5 }- @: f) f
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""' a' } m m4 d4 K- x8 Y
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))3 K1 Y" ^1 i! p4 n" I8 T3 S& l
- (DEFUN C:O () (COMMAND "OFFSET"))
. r* e) H# t* H0 V2 V5 r9 p - (defun c:s1 () (command "surftab1"))6 J7 g; P( U! H2 F5 Y9 g% Z" V
- (defun c:s2 () (command "surftab2"))
+ R/ F! U6 w0 v - (defun c:ep () (command "explode"))
* S- ~, O, Z, f" r' ~8 Z& C - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))& V$ ?. q; G, _( @% U! i
- (DEFUN C:QV () (COMMAND "QSAVE"))
0 x$ B' n1 `2 }% X+ A - (DEFUN C:S () (COMMAND "STRETCH" "C"))4 u0 P& O- E- M, x
- - B; D5 n+ q& p/ `* R9 G
- ;************************** CAT DIM **************************4 p5 j4 D# E# l# i v6 P. _
: r5 u5 M4 N' R H- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I- b( i; L3 w i# N, ~
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
, l& D2 A' s8 x5 p: P - (SETQ CMD (GETVAR "CMDECHO"))
& B1 A% S7 o2 D( B- Z) U5 M$ A - (SETQ OSM (GETVAR "OSMODE"))
. q( J) R& M0 z/ k3 o. V$ [ - (SETQ OLDERR *error*
3 v4 H* M" k( x6 Y - *error* myerror)$ c/ r. P9 n: y J6 y
- (PRINC "Please select dimension object!")% n- G' j: z/ Y; V7 U' _
- (SETQ SS (SSGET)), U$ i N* J& O& b3 W
- (SETVAR "CMDECHO" 0); |" Y, u& C( m6 b. h9 S8 V% m
- (SETQ PT (GETPOINT "Point to trim or extend:"))
7 q5 S7 D2 `$ P - (SETQ PT (TRANS PT 1 0))& p3 |4 H8 i% q0 z" Y( G) z. n
- (COMMAND "UCS" "W")
; l1 Q- j8 ~7 q0 W9 V! R9 e - (SETQ LTH (SSLENGTH SS))
0 B' D* b n: X4 s7 [' ^. o- b# L - (SETQ DEM 0)
. G Q( y8 Q# N! w% f- I - (WHILE (< DEM LTH)+ C3 H& |& |2 q' v2 R6 L
- (PROGN2 B, @) X5 a) Z, y0 q! V
- (SETQ DS (ENTGET (SSNAME SS DEM)))* y% K/ k* x- O% i
- (SETQ KDL (CDR (ASSOC 0 DS)))/ r' b7 R- J; d: M) S- T) p
- (IF (= "DIMENSION" KDL)% K( F. l. W1 q7 ^3 R8 Z# [$ _
- (PROGN. c+ m( c6 {! I6 I" ?! @. b- s
- (SETQ PT10 (CDR (ASSOC 10 DS)))
- m' H8 [! M' J6 M! z - (SETQ PT11 (CDR (ASSOC 11 DS))), u3 L0 t0 u: D6 m
- (SETQ PT13 (CDR (ASSOC 13 DS)))
2 U0 I8 H' H( d) r: ?. N+ r - (SETQ PT14 (CDR (ASSOC 14 DS)))
! W8 B! |) [0 p- P3 a( e - (SETQ N70 (CDR (ASSOC 70 DS)))
, g7 P& f& [5 D& n. A - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))" b; N0 t( k/ Z; P# }
- (PROGN/ A; j6 F4 O, r1 F
- (SETQ GOCY (ANGLE PT10 PT14))3 e! s8 I1 X0 `! s
- (SETQ GOCX (+ GOCY (/ PI 2)))% m) `9 k2 S0 f0 \, _
- )% P4 t$ X7 S/ ?' v' C
- )
# P& H, E1 s+ ^/ v e+ s4 a8 @ i - (SETVAR "OSMODE" 0)
$ Q" h) G/ k$ T) M" W* }# ~6 h5 y - (SETQ PTI (POLAR PT GOCX 2))( t& J% q' B; R9 `$ w' g: X6 X8 F4 B
- (SETQ PT13I (POLAR PT13 GOCY 2))
5 @" @% v* t, z& \ - (SETQ PT14I (POLAR PT14 GOCY 2))
# }: U/ {" ^$ x5 X+ R: Z/ Z; p - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
( q* S: T4 B0 ^# e A - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))6 R# a1 C7 m0 P6 z. [, A
- (SETQ O13 (ASSOC 13 DS)): h x) G: a8 a
- (SETQ O14 (ASSOC 14 DS))
' m; s( B' a! C8 f" E+ M - (SETQ N13 (CONS 13 PT13N))
1 p6 R9 U+ u0 M4 d2 S - (SETQ N14 (CONS 14 PT14N))' `2 ]$ B1 J1 x2 ^: O _4 C
- (SETQ DS (SUBST N13 O13 DS))0 @) Z( D7 \7 u0 D
- (SETQ DS (SUBST N14 O14 DS))$ Z* A1 i# r/ N- I1 H! J! {
- (ENTMOD DS)4 X8 A4 j( N U# N' A
- )) b5 i" k5 ]& Y4 V8 ?# d3 y
- )/ A& J; L4 `) t, V: N% F
- (SETQ DEM (+ DEM 1))1 G2 Z- k9 s$ N+ s2 K
- )
9 t9 r) \7 o0 M2 U- y - )% T7 U. q, T4 B' P0 I% k9 V
- (COMMAND "UCS" "P")! h. o3 k' w; }+ |: f7 J2 r
- (SETVAR "CMDECHO" CMD)$ `5 Z" t6 {# s4 V: Z1 r3 l) F
- (SETVAR "OSMODE" OSM)
- q# @$ d6 g; L4 `- k8 c; i& m# D' D - (setq *error* OLDERR) ; Restore old *error* handler4 N. ~, d( c& u& q0 P) ~* B
- (PRINC)0 h+ E( C# }' F& f( v
- )$ v# \8 r# `& B# S5 Y+ h" w3 \8 J6 ^
- 3 O0 T [$ ?+ z: L; I; _
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI4 y) H# Z- `# Z% d9 p' e3 I
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
& w2 ?9 h4 B3 R4 B: u$ [ - (SETQ CMD (GETVAR "CMDECHO"))
* P, I s" Q" R# o - (SETQ OSM (GETVAR "OSMODE"))
# m, S+ Y2 o) @9 M$ u( N1 \, P - (SETQ OLDERR *error*9 h7 y" L8 v3 q8 e& B- j
- *error* myerror)4 G t/ {; G" N) _, ~
- (PRINC "Please select dimension object!")6 ?0 T: K- n9 `* l
- (SETQ SS (SSGET))
6 }8 J; }0 |& O/ i _ - (SETVAR "CMDECHO" 0)% W: @6 e& ?6 E5 u. W5 a) d
- (SETQ PT (GETPOINT "Point to trim or extend:"))
/ G. k; @ B) R' k+ V* X! m4 e/ I - (SETQ PT (TRANS PT 1 0))( N" h- N; I: r/ K
- (COMMAND "UCS" "W")0 ^& a0 c+ K" v, ^' I2 r m. Q
- (SETQ LTH (SSLENGTH SS))
" C2 {. I; }) d5 \ - (SETQ DEM 0)
/ H" e( O E: y- t8 I& X$ @ - (WHILE (< DEM LTH)
' L: v& b4 O, ^! |+ O, h2 C( y- H - (PROGN
) @5 ^) V8 a8 w9 v - (SETQ DS (ENTGET (SSNAME SS DEM)))$ H: O D# ^) z6 O% f
- (SETQ KDL (CDR (ASSOC 0 DS)))( z6 |+ _% I+ H# z: l/ l0 Y5 _
- (IF (= "DIMENSION" KDL)
) |5 s F% w- Z# | t) T& i - (PROGN Z* g Y& p0 f8 p' R u% J
- (SETQ PT13 (CDR (ASSOC 13 DS)))
: x V9 C6 y+ X! f( q6 O - (SETQ PT14 (CDR (ASSOC 14 DS)))& B: y# b. P5 g- M5 H9 y+ ~
- (SETQ PT10 (CDR (ASSOC 10 DS))), ~9 c: F. ^$ |" S8 h
- (SETQ PT11 (CDR (ASSOC 11 DS)))5 F2 m* F$ O7 }( P2 j4 ~
- (SETQ N70 (CDR (ASSOC 70 DS)))
- D5 S" l, e- f& G" Y4 f - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
0 v. t5 X0 H, _5 J: l3 V4 u2 u - (PROGN3 M' K8 |- @: _3 [3 E4 `) p
- (SETQ GOCY (ANGLE PT10 PT14))$ v3 C2 c2 H& W; i- Q9 K
- (SETQ GOCX (+ GOCY (/ PI 2)))
+ O5 Y8 u' o4 a/ @: ^/ ^ - )3 S8 ` S& I4 G4 N) B% B6 M/ s
- )
) G- U5 X/ p D' x; B - (SETVAR "OSMODE" 0)' e) }0 v. n5 y* G$ P8 [7 _
- (SETQ PTI (POLAR PT GOCX 2))8 q' }; I z6 b; A
- (SETQ PT10I (POLAR PT10 GOCY 2))
& ]' L4 l' i, |! L( h - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
; z! M4 ]$ o0 A# h+ _" a h - (SETQ KC (DISTANCE PT10 PT10N))+ V0 Z) x$ B1 h$ C2 e
- (SETQ O10 (ASSOC 10 DS))
1 f+ C F9 t. D$ k. T. G" j - (SETQ N10 (CONS 10 PT10N))
3 c. k/ W4 r, L. j - (SETQ DS (SUBST N10 O10 DS))
$ t/ P) |$ C1 R! N+ y% y - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))" h: U5 l/ J! w4 Q
- (SETQ O11 (ASSOC 11 DS))
; c2 R" N" }& ?. R! L; o, m5 V - (SETQ N11 (CONS 11 PT11N)) q# x% Q% L. B# r
- (SETQ DS (SUBST N11 O11 DS))
4 q. ?- E* F7 Q% W - (ENTMOD DS): q& P7 f. V$ q7 M) s
- )3 {6 W. k/ s" I5 \0 I! j K( o1 B
- )% v0 O5 ]$ h( X8 r1 ]6 \
- (SETQ DEM (+ DEM 1))
8 k# x9 J! p* {0 x/ \ - )0 f( {0 j0 p0 H, A
- )
* u Z+ ~1 C6 y1 I) x7 k - (COMMAND "UCS" "P")
$ w3 M% }4 r4 q$ P# \ - (SETVAR "CMDECHO" CMD)
9 n1 S8 \/ G |% `/ n - (SETVAR "OSMODE" OSM)2 m7 K1 R! Z5 X2 K* V( J: Q* @
- (setq *error* OLDERR)
3 q9 d v7 b' B8 d4 I - (PRINC)
, f8 I7 k/ y1 [ - ) `1 F* ? I0 W1 }# _% X( }1 j
' H7 d- x+ n/ Y* a, A c- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
! E1 |8 v$ Y/ u3 Q- h! {0 }7 {' R - * T: {/ F p- _: l# |$ d7 a
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
' S6 Y8 ] c. s8 W8 o& `, e - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
9 C: V. f/ H; o' k' j; o - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
) t0 J4 v1 J" B. M - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
, ~. Q: n' a5 ?$ X; u - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
! S4 t7 r# A- s/ z - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))( q. n2 ^4 [, t/ k" Z# e$ p
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
* w; o ?/ f2 S - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
0 Q4 ~- M) E; K" A3 a9 d' y. \, P# F
1 ^4 p$ E: ], Z+ J; o8 _- ;;; ================ CHEN COT (TUU) =================% }$ R* E0 k6 x9 v1 x( @$ X0 q
- z1 l$ h% ~% W- T( u/ U4 C$ l L- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")2 y8 a5 U9 x4 ]4 O8 |) k1 F
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")0 r7 y' }7 E( w$ Q3 r4 N
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
2 }0 w3 V! B7 @# l' n! N+ _ - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
9 _* S5 N3 p4 ^( ]! x+ ~4 l' C - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
* a* J6 ~9 a; O. L9 R+ [- c - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))- e" g/ g, l, B m" ~7 M
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
7 I ^8 ?) ~4 ?9 A$ ]/ s2 r2 w - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))8 R# L/ N) g0 k' `
- - Z& u0 B$ s+ K( L3 P
- ;;; ================ CHEN KY HIEU THEP (TP) =================
8 x3 d7 b8 V M* W N
0 F( B" ^& w* g! J9 F- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
8 L, d% r, Q% S - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")$ N4 B+ r8 ?2 X5 K) l4 j8 O/ K; B* j: ?
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt8 N: z4 G% o# A7 u3 [5 ~
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
, ~8 ]/ h# y& l* W% L S - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
; N# W% i1 k2 V- ^1 w I( _$ x7 p" h - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
% [" B: e2 s, d* @' v - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
! P7 T% A7 N& [& { - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
. B" D: Q: S/ i8 u( o6 C0 e3 m
0 k- u0 g6 Y" f- ;=========================== TAM TUONG (TAM) =================================9 q9 C' c: }" g) \
- " T, F% |3 Y$ L
- (defun c:tam(/ data_m)
& u) w3 _0 h$ A& O - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))4 k/ c0 a* D8 l y `
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))" f6 Q2 x9 _. K ~" N
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)+ W& Y/ j& p- K6 O9 t9 e9 O7 B
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
' F% F6 S& c4 q1 J# h. q7 B - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
( O" w! V9 [# k - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)- r2 b1 F6 u/ A. p
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
3 |, _( ~" q# y- x1 J - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)* F) T" W: F# H# b/ r- b
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
- l( r: ]& R5 o5 }5 \+ q - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
9 w- P" b$ t, @ - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
3 U' G5 E4 S6 a* C - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1). ]! B6 R8 G* z' [: u. ~5 b1 u; ]
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))' U9 y5 r! D/ L' L2 o0 h
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
& r; f7 z' Y# q - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not7 d$ x- [. Y% P* u
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
0 @; l G( Z/ g" e6 _6 \2 g - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
# J% z; D# I5 C/ ]$ U% e) ] - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
. K5 S+ s9 R W$ F8 N- {3 C
2 L+ {7 V. C# {9 e1 I9 y/ h; a- ;============ GHI CHU PHI (T1) ================6 m% j3 M. O, A% k( Y( M( ~
. v5 n: V- T, m" b: A2 ~- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
: _8 ~% X4 z, o2 m, F2 l, N - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3- j/ `/ m+ b6 Q- d" @' z2 z
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)! q( ]" d6 n+ X% x! v- l* X
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
2 l. h. A6 r$ u3 B3 A2 Q - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
" C8 ]8 p$ u, r" W" O3 i$ A - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)8 I. ^3 |& |5 y- n
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
/ V, i; m% f" z/ | - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )7 U, I, F& u/ i8 _- |6 S4 h1 L9 g
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")8 f& E' f! T: L
- (command "ddedit" pause))
; a" I! f; I$ \2 u" h - # i, m8 \" }7 f/ z
- ;;; ========================== Join (J) =================
. @3 l( y9 e/ E- Y2 v# C9 j
1 N0 @9 W5 q1 u$ q# o1 z- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))( |. w- g n5 g; X( m% p& v
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
5 S4 I9 M1 D) b: R5 b - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)% J0 i7 s, a i5 i' M
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
" x O0 d/ k, ]" j z. P - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))6 q/ w8 s& s0 X. d/ j% f& h
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
9 ^8 w) o$ m* P1 m* L - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) h& f% j& G# z) |* _' r7 C
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
. `$ P8 k, ~& X7 B s8 K - (setq *error* m:err m:err nil)(princ))
+ D) ^* D+ J2 x9 m/ u& @ b - # \- C+ e1 u2 y3 i8 J6 y' G/ p
- ;=====================================================================3 c) L7 l8 v- L1 ^5 w8 q+ K0 D+ H2 m
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
$ G6 S- u1 ?$ i - ;===================================================================== s; t& k. T H, A# X
- % O e* Q/ Z6 W% i2 K* S
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)" ?- w9 v5 k, H
- (setq old (getvar "OSMODE")) ; d; G" E6 M/ s: ], P2 u/ E
- , { m2 V$ P0 x S* R7 L
- (setq p1 (getpoint "\nStart point:"))
# Q v K/ Z4 x6 r. K) N: y - (setq p2 (getpoint p1 "\nEnd point:"))
: t5 N+ B0 |0 g" J8 e/ @7 B - (setq side (getpoint p2 "\nOpen side"))
. r6 I" T( w# z* D/ q6 P8 w. h - * z: A F( S! _3 D$ e" R
- (setq dis (distance p1 p2))
+ ]! o$ N; Q% h Q) Y2 i! A: ]3 L; } - (setq ang (angle p1 p2))! J3 b7 E# B7 ^0 ~- p) r
- (if (< ang (angle p1 side))
2 u0 o2 F3 w- r/ q- l - (setq angside (/ pi 2) )% A2 h( t) g. o0 B0 v0 Z9 b
- (setq angside (- (/ pi 2)))% C% a/ v$ q0 I! T6 C- g
- )
" Y) i }, D/ n& R1 ?! B - (if (>= (- (angle p1 side) ang) pi)
! R% t" c* U3 O# M1 U; U- k4 x - (setq angside (- (/ pi 2)))
! ?7 O- r4 R# y) \+ H# r. p - )
5 {; B; w/ K+ w: _+ \! r \% G9 U - (if (>= (- ANG (angle p1 side) ) pi)
, D5 M" J! o# q( S - (setq angside (/ pi 2))
7 Z; W/ q6 n( s( G$ j - )
: w" l" k$ h l
* V5 L' D, Y5 q: J3 g( T- (setq p3 (polar p2 (+ ang angside) dis) )
+ K8 n" E* S0 L8 Q! k - (setq p4 (polar p1 (+ ang angside) dis) )
6 S9 ]1 C- G" @( S0 Z1 z - (setq wid (/ dis 15))
% z/ h$ T, [. L Y2 V
' C' j/ `- H7 N9 C& }$ u; u- o- (setvar "OSMODE" 0)
; X2 M: G' D( j5 U - / w$ c$ K w! W- u$ O. G
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
) M5 }: ~8 i; g9 p$ F% @) l - (polar p2 (+ ang pi) wid)
& Y t/ a6 K, d* ]& r - (polar p3 (+ ang pi) wid)
8 C; Y8 K/ O4 p - "")
) a% x# B0 J( e - # i9 ]& u- A% I5 f+ v7 I- c3 `% v/ t
- (setvar "OSMODE" old)
# }& M7 T- e. b% B5 x - (princ)
% u( A" [2 R7 q0 Q3 J, V# z - )) ]: Q" _& ]6 B3 w3 s& L( h( }& }" n
: i& K6 n1 w( x' @) j1 F0 w2 l- ;=====================================================================" N5 |. ^) }- M4 N. H
- & k: j, D9 m7 Y2 _) J
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)/ t& w+ C: u1 v0 V- n8 g
- (defun cua1 (pt1 pt2)
2 X& N4 G+ }' O+ }+ z/ G! h( ` - (setq p1 pt1, A9 r# \% I, h. O0 g
- p2 pt2)2 ~5 C* T! Y: T6 {) \- n* y
- ) f& O" s$ x' j' n2 J) q2 d @
- (setq ang (angle p1 p2)), ^; e) N k7 L8 s0 ]/ B
- (if (< ang (angle p1 side))9 e* l1 K4 j& v' i4 {
- (setq angside (/ pi 2) )
, n' V1 ^8 Y1 `$ r3 {# X - (setq angside (- (/ pi 2)))( t1 L' A, a0 t- c( Y6 @: P
- )& W! @& k2 c0 J- y; y5 J
- (if (>= (- (angle p1 side) ang) pi). F+ C9 K4 d( o5 b3 K6 Q; ]; O. [
- (setq angside (- (/ pi 2)))) |* H6 `/ f- J Z. V i, @% A: u" C
- ). e/ _! d! p4 j9 g- X$ M
- (if (>= (- ANG (angle p1 side) ) pi)
0 X2 A* a5 t; ~0 c" d& H - (setq angside (/ pi 2))6 S. Q0 [+ M$ c; Y1 r, e
- )
; x- T1 V# }3 W' D. o' H - 6 y# |# ~8 E8 T5 `/ D2 `0 w9 X
- (setq p3 (polar p2 (+ ang angside) dis) )" Z( e9 W8 {9 @7 Q* N3 Y( X: f
- (setq p4 (polar p1 (+ ang angside) dis) )+ T; q) ]4 l2 }% {$ R. D' h( a
- (setq wid (/ dis 15))
0 G. Y% _0 q" w/ [6 K0 N
6 k5 x$ [3 F; m% W( d7 g- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
2 `' I6 Z5 S# d1 @( } - (polar p2 (+ ang pi) wid) ! M! |- [4 O/ Q0 V; j4 p
- (polar p3 (+ ang pi) wid)
- o f6 Z! ]- p% X( N8 X- ? - "")- c7 L+ X8 d# r7 ?# p7 _
- )
x, z! \" b% p' b& R - ;=====================================================================. H/ F* s, ^6 }
- (setq old (getvar "OSMODE")) 7 X* L, _* \" ^( [4 W. H
- , X. `4 U3 s9 z# ~: K
- (setq p1 (getpoint "\nStart point:"))
+ u2 M" ]" ]. U" M) s - (setq p2 (getpoint p1 "\nEnd point:"))
- G0 i/ F; f" X! }5 c0 x - (setq side (getpoint p2 "\nOpen side"))
9 D2 }0 X$ X/ a4 a# @: K! @8 z7 M - : P( U' Z6 b8 y9 |
- (setq dis (distance p1 p2))7 G& Z. t% d/ X0 x2 m. E
- (setq dis (/ dis 2))9 H/ ]9 D% ^0 L, `- k3 b* T' W
- ! w( T# i' S+ o. I7 _5 T/ M3 N
- (setvar "OSMODE" 0)- ?1 d# k1 j- w
) |, W+ @7 i$ S6 A3 \2 ~! T4 Q- (setq p1 (polar p1 (angle p1 p2) dis))
U- O- \; h' y( A1 K - (cua1 p1 p2) ?! U$ k) E; D" ~( n
6 b5 h* V8 E8 p/ H- (setq ang (+ ang pi))4 M% l: ?3 W6 |; h! h
- (setq p2 (polar p1 ang dis))4 w4 T6 J/ s+ M
- ; (setq side (polar p1 () dis))
, v: v) G& a6 i5 o/ X - (cua1 p1 p2) 1 f# ?; w# w* Y: R
- 6 J; J3 p3 D: f4 Q
- (setvar "OSMODE" old)- Q3 Y5 U0 o+ `+ g$ I
- (princ)- b* v" I4 |6 n7 r( o& I: ^
- )
* d; O9 B8 U, L! S+ E - 6 m3 S4 e) [: k4 y; S2 z
- ;=====================================================================% x1 P8 s) r' j2 `2 e/ h
- ;"Glue" text strings. All adopt first's properties.
- c$ r2 H3 O8 G - ; Author:
Z" n6 `0 k2 ~3 Q4 U - ; Henry C. Francis
$ `/ o' e0 ?) U5 V$ q& t - ; 425 N. Ashe St.+ D7 i# v- L# g! p+ f+ O2 G. f* g
- ; Southern Pines, NC 28387
# h/ s7 H8 n p! C5 \% G# k - ; http://www.pinehurst.net/~pfrancis
5 k0 j, A. u9 j2 ]1 c3 x' c4 s - ; e-mail hfrancis@pinehurst.net
6 W* a" k f* o! [- J1 T3 |" ` - ; All rights reserved.1 @0 l; x" G( {& d' Z9 ]
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11) f. Q) h! T: Q- o! g
- (while
* t, o7 u0 g0 L. ]. u' r - (not; d: c, A- H" R( N- y
- (and
- s+ x& q6 x! c0 q" X& x) l, b+ @ - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
! A6 L3 F* T) q% O9 g- d. X* @ - (setq ent1 (entget ename1))+ g$ g+ V- E2 B1 V
- (eq(cdr(assoc 0 ent1))"TEXT")
4 l# d, ^5 j7 M6 b: q' m& O# Q7 S - );and
- J- d0 K$ m% E' X - );not; N5 z" W4 ~ k4 F
- );while8 L- M8 t& \# O
- (setq old1 (cdr(assoc 1 ent1)))
6 D) I0 c6 n2 }, i5 M" _& S* L - (while
8 a9 L# b/ {' n1 e( r) _ - (not
2 a$ C$ Y1 o1 i& A, L4 l& p - (and
4 t U8 _! K3 G9 ^) T2 |4 f% Z% I - (setq ename2 (car(entsel "\nSelect second text string to join: "))), n8 S8 g& g0 h
- (setq ent2 (entget ename2))
% h9 C1 j5 I$ X- x, u - (eq(cdr(assoc 0 ent2))"TEXT")
4 Y/ k( R" Y: n3 G4 {0 R - (not(eq ename1 ename2)); _. t" ] q/ b. c* ~+ a9 q- b1 A
- );and
' r* Y. ?* w' [! O4 U) u. w - );not& g- L) h" E3 s8 ^4 K1 x a& ?
- );while
; b' T# c6 P3 l% Z* C( W1 y - (setq old2 (cdr(assoc 1 ent2)))% g v v% R- C" U
- (setq new1 (strcat old1 " " old2)8 ^2 S& n; g3 `0 z6 V
- ent1
) A: b8 P$ D9 p, ] - (subst (cons 1 new1)1 M) A9 ~# E& X9 g7 j) P
- (assoc 1 ent1)
, z3 t5 P4 E4 c3 w" R! q1 t - ent1)3 ?* ?" h3 w& O. @; {
- );setq4 n" B, p' p+ l$ O* i
- (entmod ent1)
9 a$ Z7 }7 @* @' Y - (entdel ename2)
! [% o+ {5 }2 a - (princ)( E; j8 v( m7 Z
- );defun
- A5 ?, C b1 i; ]) A. ^9 @; K* ~! z - 8 T) k; w$ Z( t5 L* O
- ;=====================================================================
* ^2 e! k: I- {
" H" S) v! d7 |8 E8 a. |- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc): Z" z# h( d/ N9 [3 r0 p- z
4 p; |+ u3 I8 _# {/ Y- (defun nterr (s)
9 W" `. J# c0 k* {5 o# y& j - (command "_.UCS" "" "_.UNDO" "E")
: C0 {; F& ?0 i. ^. Y) B; F- h: V+ F/ C - (setvar "cmdecho" 1)
7 X: `4 u" @- r - (setvar "blipmode" 0)* @$ d/ S) p! s* @* ]3 x
- (setq *error* olderr)
/ ]' C. a* x4 W. p1 t - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil 8 a2 |) G$ u5 }2 ~; @& T' u/ O
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
5 V2 l- @/ I1 l - (princ)
5 A' P7 N+ N) ?$ M0 H4 A - )$ F% j& z. Y1 O" P& z% i) p
( M- ^" Y1 d# B7 ~! P ?6 B- (defun tim_in (dt / p01 p02 ktra)
' P6 w$ Q) I& t( I - (setq p01 (cdr (assoc 10 (entget dt))))# T6 m. A! G( W. O7 N# y) z
- (setq p02 (cdr (assoc 11 (entget dt))))
7 T! M4 H7 C' \8 w- P5 P* C; ]$ m - (setq ktra T)) u8 \9 B* @5 j! l7 j
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
. H8 H9 u9 d- m U+ j4 }) ` @ - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
. ?8 m# L1 C r8 ^# A - (setq ktra nil)' A4 j/ ^9 M, b1 {% j8 L6 Z
- )
& r5 @3 {1 C( H! R' S( _9 X, Z - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
5 M3 v/ W8 {. A) X - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))' Q+ X% x; i1 y, j) o8 t4 O4 z1 d5 ]
- (setq ktra nil)
! }: g* B& Z4 J; e1 U# e" c! ^ - )
$ F9 b0 @& c: m$ d) h7 c0 I - ktra
# V) h$ t) P' _6 b - )3 g/ E9 K' }6 I% D) f5 }. A
- 8 i+ u; d4 s0 C9 w. A
- (defun timdt (dt1 dt2 / p01 p02)
6 Y1 t4 W2 C8 g2 I; J0 c - (setq p01 (cdr (assoc 10 (entget dt2))))
$ ]$ ^, l: w+ H2 {' D1 Q - (setq p02 (cdr (assoc 11 (entget dt2))))" ~/ g+ ~3 ^: z
- (setvar "ucsicon" 0)# Z; G, n6 N" r7 b% ]- ^
- (command "_.UCS" "E" dt1). a2 f- n( O; `! {* _- u5 N' V
- (setq p01 (trans p01 0 1))
! z" c+ @. y7 B& ^( Q ~$ c - (setq p02 (trans p02 0 1))6 K) I; G" U- \6 M2 r
- (command "_.UCS" "")
' R8 m1 p( C( g$ U: `1 Z - (setvar "ucsicon" 1)' G' O7 U! l9 F: q9 I
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
" W' s7 f, a; E3 @( n - T
6 B( m2 s7 p2 @7 z; V - nil
# j# T7 t; b& n; H0 T. z - )6 l" u, u- d7 E: [1 ?+ Q
- )
, `' d n" e: @! |% S# M# m
0 X9 Z. C, i+ M5 @/ q" l' E- (defun tim_out (dt / p01 p02 kt)
, J* m% g8 c' l - (setq p01 (cdr (assoc 10 (entget dt))))
. y, d2 y; e% w4 z - (setq p02 (cdr (assoc 11 (entget dt))))/ L2 T" o" z: ?" [
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
6 S9 {3 k' w$ D7 U2 r) ? - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
7 J r O: g( V8 M1 `+ d) }) Q - (setq kt p02): f" ]3 L0 d9 z, q7 f
- ). y5 n- H9 y; b- O3 [6 P
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
% R3 [7 T+ ]8 x9 _ - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
9 B9 p; ]9 o( K; ?7 k/ ? - (setq kt p01)" R' d$ t+ ?5 E7 N$ b
- )
0 b4 e- Q6 S- r* G) j - kt
7 F, C' M' g R# t- z - )5 D w t* ~1 S& R* z8 s
- . `& q# i* v# e2 R$ y5 B
- (setvar "cmdecho" 0)5 r C9 B* S a& T5 b3 L% s6 v
- (setq olderr *error* *error* nterr): l6 i" u2 G( n
- (command "_.UNDO" "G" "_.UCS" "")
9 Z9 G) d0 o& k U( X - (while (null ss1)% A9 J3 A5 ~5 y0 s0 x) n
- (princ "\nChon tuong muon noi...")- n _1 E% K+ c4 m4 \* q/ A e
- (initget 1)
" d/ r* u% \: e$ ?& u, \$ r - (setq g1 (getpoint "\n>Goc thu nhat:"))
$ s. i1 q- f1 _7 @/ N) e - (initget (+ 1 32))
7 m1 R; @7 k6 R - (setq g2 (getcorner g1 "\n>Goc thu hai:")). E* [$ P# Y0 j8 U& N9 W! L+ h
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE")))): r2 e: a8 R% ^- O1 O$ e, f
- (if (null ss1) (princ "\nKhong tim thay doi tuong!")): M( i% ^2 b( C1 |. v6 T
- )
, T! W7 G+ f N9 g; W. y: V1 f -
# M# E+ B: C" b0 k1 j8 I. O - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2))), D& q# v" d, {
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
5 J5 u' K* w A9 ?" S( l I' m% N - g1 temp)% e/ W$ ?' z1 ]2 n, c1 |$ H
- (setq ss1 (ssget "w" g1 g2))
" J. G9 v+ s7 r - (if ss1 (command "_.ERASE" ss1 ""))
2 {; @$ Q h5 ] - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))! w0 P% T' ]1 ?/ c
-
6 j/ b; u4 S# V - (setvar "blipmode" 0)
2 V j' U5 [+ T: }0 j - (setq i 0 l (sslength ss1))
1 I" |* y' s- W5 a" S* T+ M - (while (< i l)5 r0 P: d: N: x2 X/ _
- (if (tim_in (ssname ss1 i))& n! `' U1 F" M. t( Z8 N& P( A
- (progn
6 E6 P* Z( f: v5 I1 k - (ssdel (ssname ss1 i) ss1)0 H0 X+ I7 c: w# U' H3 G G4 Z/ H6 T
- (setq i 0 l (1- l))4 z; z+ D* A0 j, H* R9 m% _7 J
- ) + ?$ k5 \- r4 \: B3 l* {
- (setq i (1+ i))
1 P3 D6 v0 c% l( \$ D5 d! d s3 | - )$ @- p* k3 K0 c. J6 B
- )
4 j- ^ G# e5 ]1 |$ Y) T J - (setq l (sslength ss1))
3 R( Q8 Y5 Q" ^$ O2 q w - (while (>= l 2)
, A+ s: c/ |, Q& v2 s - (setq e1 (ssname ss1 0))
$ `# P9 g& p6 c* g - (ssdel e1 ss1)
6 H) C! V8 _) h% }- x - (setq e2 nil i 0 l (sslength ss1))0 Q f( Y, a0 K' p3 \- R
- (while (< i l)
) W9 F4 \$ H7 H - (if (timdt e1 (ssname ss1 i))
! ]: A2 U j; v$ q; A - (progn( }/ A& A/ o* ]
- (setq e2 (ssname ss1 i))5 e; Q7 W0 d2 s- t8 n3 R
- (setq dd (tim_out e1))3 ^: {6 Y; T$ s. U$ Y- c: H
- (setq dc (tim_out e2))
' o# h% U+ k, {% \ - )
3 E3 \$ f3 d% f. v) ?/ Q6 O - )% H$ q/ m4 E0 Y# ~* _2 X; l
- (setq i (1+ i)). ?6 n9 h3 s7 p' Z" J: M
- ), L! p0 z* j E- v8 K
- (if e2 (progn' L8 I; |3 r! f- A
- (ssdel e2 ss1)
6 z5 Q/ B+ q6 M* }; B: G$ I5 d - (command "_.ERASE" e2 "")/ T/ q$ L8 r: t2 N
- (setq temp (entget e1))
& S( e% v7 C; J. z/ {8 Z - (setq old (assoc 10 temp))# H$ P4 ~4 x7 u; J4 A& ]
- (setq new (cons 10 dd))6 |' n2 l: S' U+ g
- (setq temp (subst new old temp))
7 h" G* `/ ^! r - (entmod temp)+ X3 k' J0 m" c Q
- (setq temp (entget e1))6 D6 w/ u6 J! W* L" G
- (setq old (assoc 11 temp))! @- a9 p+ l7 U% [/ o" i: t" q. @
- (setq new (cons 11 dc))- S U1 u- d+ t5 {7 K
- (setq temp (subst new old temp))
% |( r. S% {7 d4 H - (entmod temp)' D2 f" j8 g3 h# {, K/ a7 W3 k/ B
- (redraw e1)
- h& \/ b1 f T; o# d - (setq l (sslength ss1))
2 k- ~! l7 Q+ P6 [5 J - )+ o" C( U, i3 p Q: j+ h" V
- )4 L4 N- H1 R& z1 e" W3 m8 q
- )
+ o7 X/ L% h0 r6 ` {4 E
# y y, x0 l1 p5 ]- V, {( e; o- (command "_.UCS" "" "_.UNDO" "E")
' a0 y6 R/ P. S8 t: A5 q1 v - (setvar "cmdecho" 1)$ {' f1 Y0 M0 F0 I( B" a: u/ H
- (setvar "blipmode" 0)9 S2 g7 ]9 x; ?9 W% {
- (setq *error* olderr)
4 J- D9 v- p: [+ n$ d, q - (princ)* e. W& b8 ?. ` X+ Q8 B
- )% B: }' r& o5 U& m4 z. [4 B
- ;*********************************************************************- i) V: C% a$ H2 m- }) K, M
- (defun ketthuc ()% H0 k6 y- u0 Q( @
- (setvar "cmdecho" luuecho)
. l* ~8 I1 ^5 X0 [) H& G - (setq *error* luu
1 H( e2 Z* ]) g- \! q2 X - luu nil
: y& g6 b! X0 N1 f- }/ C. G - luuecho nil
! p/ R0 F8 q9 C; ]- p9 w - );setq9 K& u0 E7 O" u$ u" k, V; k
- (princ)
, c6 z3 }' V. C4 d! D - )
0 M" L% F5 h) x4 F6 {6 S - ;*********************************************************************
" k6 `: `/ K* O. G' E5 `8 Z - (defun modau (), P/ z# Q9 s$ I0 _
- (setq luu *error
- k$ f Q7 S2 T# T8 n - luuecho (getvar "cmdecho")8 I7 I8 S* @% a9 ]+ m6 v4 F% e
- *error (ketthuc)
0 E1 p# _9 [0 o6 Q* D0 R6 |& I - )
' `& Z9 l; F; B" W& J1 p - )
( Z- \- v( a' G; w" d - ;*********************************************************************
# S! z, R& _% Y; U8 [2 ~ - (defun xulytext (text / kytu ma sokt luusokt lui )
0 L2 u, E5 F( E5 G/ v8 [ - (setq kytu (substr text (strlen text))
; Y- ~2 M* f0 H - ma (ascii kytu)
, K& B- u( U! b; i3 a* x1 x/ y - sokt (read kytu) 8 G- { \5 P% m
- lui 15 b1 @" c- W. M+ ?* C0 K
- )) x9 s! }& M5 w2 _* r0 K+ ~
- (if (numberp sokt)1 \3 z+ P; t2 C; J! H. S# \5 t8 k" l. A% K
- (progn
7 T0 K" a# S2 b) i' r7 ]% Y. c - (setq luusokt (1+ sokt))# y; ~6 v' k8 j! a
- (if (and (numberp sokt) ( w& j: N/ f# ^; d9 f B4 P
- (> (strlen text) 1)
" v5 ^7 D4 E, e% N0 M' m, B. N - ) : i! G1 a' Y; g7 H
- (progn
5 c1 E) c5 u% ?& a2 Z: P P! X6 z - (setq kytu (substr text (1- (strlen text)))" X) y, T$ n( ?) y& Z# A1 `! P
- sokt (read kytu) , d' q/ i8 {" @9 V# e' z* c; b
- )4 z% f: M7 v! L/ }
- (if (numberp sokt) ' K2 W" R- s, k% ]: g
- (setq luusokt (1+ sokt)1 F; C% B- [# c4 Q
- lui 21 b C& @( @) r5 n
/ B& a' }& q r; s5 @" }, A% T3 c- )% B2 H! \( |# u8 S) k# H4 V2 @3 _
- )
+ r/ S9 A$ g+ _2 Q' P+ P - );progn
/ o5 }: f* N5 I* a, @ - )
- b2 e$ n/ Y- w" ?+ w4 W8 M - (if (= luusokt 100) (setq luusokt 0))( z8 K) x+ V2 M
- (setq kytu (rtos luusokt 2 0)/ ?9 J% E* X+ n# W, a! i7 w
-
* c, ]# j% D" I& x7 G( ] - text (strcat (substr text 1 (- (strlen text) lui)) kytu)( i, O4 B* @9 x2 B7 w. ^
- )
* ~+ I$ t2 B5 M6 x3 S( \ - );progn
6 C- A' g; T7 ~. ~' n" J" X - (if (or (= kytu "z")& z/ C4 |! e! Z+ K3 y. ?& a" s
- (= kytu "Z")
+ U- c8 v- A# Q/ X9 f8 u, s" D9 t" T - )
2 _; t; ?8 a) E/ X [ {4 i3 L - (setq text (strcat text "0")8 ?+ s& l* k( l3 J/ A4 s
- textxl "0"
% F# @; _# `& N3 w0 u5 Z - )
1 o+ y3 [( s+ s" F l - (setq ma (1+ ma)
$ n5 r( [5 i" n' F - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
6 |4 y% ^' ?5 M - )- e" \5 ~5 s9 G! ~5 S
- );if
7 A+ A. c' c2 e, s$ ^5 j - );if# o9 h1 {9 _% h! e' n. @ z2 s2 a
- ), M( R# W2 f7 g
- ;*********************************************************************
2 o6 Q( T# ^8 F& T - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle) A% n& C d1 t+ f
- ;Neu doi tuong la text thi tiep tuc. I8 L1 U; g! N8 j
- (setq doituong (entget tendoituong)
1 j3 f5 |) Q: G* s, s - kieu (cdr (assoc 0 doituong))2 f0 U9 {' y+ t/ u- v3 O
- canle (cdr (assoc 72 doituong))
8 J) M2 z* _- f5 }( G - )
: n. U2 ?- q/ S1 l% F7 S. m% y - (if (or (= kieu "TEXT"); P9 }: ~8 b0 C6 c3 X5 y, w
- (= kieu "MTEXT") * J5 G' Z+ m5 Q# A g0 c, S
- ) , e2 W" i* [' Y" n! b( @0 {6 \
- (progn
; F$ W8 Y: X" q3 ~7 { - (setq textxl (xulytext textxl)" i9 V1 h: r( t! g/ A3 X* X, w
- text (cons 1 textxl)# m* h6 ]& [. Y" E
- vitri10 (cdr (assoc 10 doituong))6 [: t6 \2 k: ~" ?. S7 N
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))( V }1 z" g: G+ D
- vitri10 (cons 10 vitri10)
7 T9 T& c4 E3 F6 _ S - vitri11 (cdr (assoc 11 doituong))
7 k- ~" f" f% x. A2 F/ {7 b, @3 c - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
" a( C+ Q- y. W- K0 A9 C - vitri11 (cons 11 vitri11)
: r; h- J8 C1 l" Q - dem 0, D+ T, E1 D$ w J8 B4 i
- dsach nil3 r9 j( r& T% a: ^1 V
- )4 W7 Y+ A `' z7 ?# O( w: W2 ^& o
- (foreach tam doituong0 Z: e/ e' o& t% Z& m* I
- (cond1 m+ l* j. R m" P0 b: O
- ((= (car tam) 1) (setq dsach (append dsach (list text))))6 a5 k- _" X8 X* O
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))& s) i+ }% f8 B9 s
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
* r" v2 M. {( k5 R - ((setq dsach (append dsach (list tam))))
4 c; R# M8 V, S/ N+ _! V - )2 ]) n" }& w, Z$ A7 s
- )
+ L% h8 S) t$ f* m& h - (entmake dsach)( s+ @$ f2 s4 R" m# D$ m
- );progn
M9 T" Y/ u& F6 j. m$ u; b3 C - );if0 l( D1 P O$ Y+ O, J0 ?
- );( Q, S& S! E# c4 b# H' v
- ;*********************************************************************
4 [) K. f. k' ]" X - ;sao doi tuong cu sang vi tri moi0 x9 k; ]" r# ?. n9 Z) a/ j
' ?( ? z2 d. V; I) o p2 H- (defun copy_dt (tendoituong ) G/ p. d# i. U/ C
- (command "copy" tendoituong "" goc toi )4 Z9 K% b3 Q& T
- );defun
# K: Q, [& T) i/ o8 L8 |, Y6 ` - # c" e& Z. z8 F4 u- B
- ;*********************************************************************) Q: v, D+ S' k- D# m
- : V3 w; [& S' K; F! s5 _
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
" Z$ e! d& F8 \ - ; Khoi dau cua chuong trinh
! [9 m: O% z/ x$ |, {+ q; @6 U' T - (princ "\nCopy Inteligent...\n")
9 l6 m1 I6 v$ L# E* z; l" d - (setq luuecho (getvar "cmdecho")
' L8 o8 W' H, ]) l - luu *error*; w2 b" h& {% |' F4 r6 C
- *error* ketthuc
2 l8 n$ @0 C4 |% h0 v' W - cumdt (ssget)7 @2 Q1 v8 O1 H+ e/ v
- dodai (sslength cumdt)
# f9 L' K% u" ]: \ - goc (getpoint "\nSelect base point:")3 x9 K2 V' I$ q- f; l1 ^
- thoat nil
3 }( J! I1 b" V# |* }$ W" \3 v - dem 0
5 ?" O; ~5 H$ Z9 ~: x5 o% o* j$ D - textxl nil) [: s4 B( \6 P& ?9 R$ ]: N) b1 a
- );
6 R4 p' u n( U1 g6 l# e$ ~. S, }0 C; Y - (setvar "cmdecho" 0)
7 _2 F2 E" f/ e3 s! D6 |8 y7 J - ; Loc ra duoc ong text de xu ly
, c/ ~6 s- j# k - (while (and (= thoat nil)
9 p0 }: s4 w9 p - (< dem dodai)
7 H2 V. F t' k& ] - )
& w5 Y# R3 ?+ b" {9 E, P - (setq ten (ssname cumdt dem)- Z7 \4 _3 g$ ?1 J. S1 U
- dem (1+ dem); M, C8 n2 b5 J( f
- doituong (entget ten)' a5 x+ u6 d/ _* f7 |8 N, n
- kieu (cdr (assoc 0 doituong)) 1 F* S$ I( q. `4 S" u' w
- )
5 ^* s) P5 L' {, }# q) b -
& ]- H9 j h/ o# j1 E3 r - (if (or (= kieu "TEXT")
1 t" x6 G& k* U5 q% W - (= kieu "MTEXT")
/ p7 ?/ Y& p+ ^$ ^* z - )
! K: n' C; n' U; J* O - (setq thoat T
+ T+ M7 ]% @. t5 Q; G* \9 f/ m( L1 [ - textxl (cdr (assoc 1 doituong))
% y3 E+ R5 n. W" T% b( c( f - )3 b$ b& `4 l7 o. M' d( y4 W: M
- ), D+ k" X6 K: i3 ]% c% ?) u8 P: V
- );
% X8 k O! \5 j" v; n8 x - (while T ) _' \$ @" N% a' T
- (setq toi (getpoint "\nSelect next point: " goc)$ b$ x* W1 c7 ], Q& U1 S4 e
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
+ m& q5 ]2 N$ J h' E* R7 _ - dem 0& S' C' e4 Q- P& {: A
- ) x0 y$ _. e( ^) b. \
- (while (< dem dodai)
E1 _ _) H4 L; v! Z$ o, C - (setq ten (ssname cumdt dem)- q# P% p3 B) U, z4 T, x
- dem (1+ dem)
1 l3 i( }7 F S( M, E - doituong (entget ten)
/ o3 H: g2 b4 X8 ] - kieu (cdr (assoc 0 doituong)) 7 C; J8 _+ x* u. G& c
- )
/ H" n& v s M) z; { - 6 v/ t- v5 W2 G4 S( E1 @ \, H) N
- (if (or (= kieu "TEXT")
% W" N# A* w4 u) e - (= kieu "MTEXT")
8 `3 V. @5 A9 |# a" S$ _* S# h - )5 r+ b, X5 F) y% B7 r
- (doitext ten)
7 J$ Q1 t1 B2 d) X2 B - (copy_dt ten)( S( r3 J1 t( Y8 ]4 C$ L$ P" V
- 8 w5 }( F) m7 k- J. M+ n* @- h: [
- );if$ E5 p# ?2 U9 [: Z$ I! i
- )# h( l, @; c4 I9 C! F2 F6 Z7 |
- );while6 u$ ` s W( M6 b( M: K7 K, H
- (ketthuc)! |# \( N( M0 W0 {/ X
- );defun: l# I7 W% r6 j+ i2 q5 _
- (princ "Type \"DG\" to start")
* d4 W! [+ C2 [" U5 X - ;Note: bien toan cuc: textxl vitrilech
0 z8 J* d L4 k
3 C/ z: i# `: A- r+ D' }2 B, x. j- ;=====================================================================* Z2 W7 P3 s; T
- ;;; PLJOINFUZZ.LSP
0 [7 K/ {+ W4 }! T( Q t/ Z* ` - ;;; Joins lines, arcs and polylines using a fuzz distance4 h. g6 F T% R1 F7 \& C! A' X7 I$ r" a
- ;;; If only one object is selected it tries to join to all objects that are possible
. }1 K5 F) K# `- V+ N- ^3 G - ;;; By Jimmy Bergmark- _$ D# \5 n7 p' H* s6 ]' e0 d
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
( d; a6 R4 @1 t% c' h - ;;; Website: www.jtbworld.com4 @: e6 [: P# i* ?
- ;;; E-mail: info@jtbworld.com) E2 W$ F- Q2 q
- ;;; Tested on AutoCAD 2002,2004 and 2005 d' e, X, n3 o$ r
- ;;; Latest revision made 2004-11-11
# X! G) F- w! o% p, B0 s - ;;; Minor code cosmetic change made 2004-11-13# y6 C3 o* U4 d! ?& S
- ;;; Bug corrected 2004-12-23
. U \% ~2 F/ W/ ^4 o. n* D - ; j3 e, h# B% | e
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf+ r5 i- q/ f" `, ~4 Z
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)9 C5 v8 f- K- S! G8 q- H* W/ }7 E
- (setq oldcmdecho (getvar "cmdecho"))! V! _% K# t) ^& P# R
- (setq oldpeditaccept (getvar "PEDITACCEPT")); |6 m2 S8 m* H" {- E' e- ^
- (setvar "cmdecho" 0)
* p, j9 c! j7 z1 K9 `3 B. Z9 Z - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))8 `4 t2 D0 D1 ]3 a
- (if A2k4 (setvar "PEDITACCEPT" 0))4 O4 _ U2 `8 z2 Z& Q* F
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
* A- e1 B6 l j% |/ \ ^1 i' H - (princ "\nSelect object to join: ")
* C/ g9 a) {+ Y4 ]8 M, J# A1 `5 A4 S - (setq ss1 (ssget okObjects))
. `6 _6 ^# ?6 @ E+ p- W - (setq fuzz (getdist "\nFuzz distance <0>: "))$ A3 T" e/ P2 q+ n' j
- (if (= fuzz nil) (setq fuzz 0))
3 `% H$ k; r6 C - (if (/= ss1 nil)& q8 ]5 E- y) S# j% S
- (progn
# h- A; n6 r& j' q% s5 D2 P( s - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0)))))) J7 G! [* Y" I# k' v: o7 C
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))% Z. G/ ?( Q5 V$ \3 |
- (if (member objType '("LINE" "ARC"))
3 x* r) V U8 K |' T+ Y - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
1 k5 F' s" ^$ G$ Z) j - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")" F: l2 G! g. ^' R- q
- )
, F) ~* A0 W( t5 x( v* s9 ] - ), ^8 n$ P# a9 F' S. a9 G# ~
- )
/ y+ ?: ?( H( [" _ - (setvar "cmdecho" oldcmdecho)( u0 A; @: l. c
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))( d/ [; R% P4 B4 H5 J, m1 F5 ~( B
- (princ)
3 f9 N: \' s: y: ~& a, A* d - ), K, P2 ~" }" z+ i4 ^% Y5 e
- , }" E& ]' q4 W7 l& f# [4 ~
- ;===========================VE CAO TRINH===========================- x% _% W# M% R
- 2 }2 ]) W5 u" _) I
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
( A5 j4 u$ ^( z4 A3 {3 N - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR): l& ~. w$ `' U8 W H' Z' y$ m1 s
- (SETQ OLDERR *error*
4 M; o7 N; v* W0 n3 Q# C - *error* loisb)0 @5 K8 [" U% E$ v1 x! v8 f* D
- (command "layer" "m" "dim" "c" "" """")7 W- N7 @+ r0 _2 O% G
- (SETQ CMD (GETVAR "CMDECHO"))9 F: [+ }! P" o$ I# l
- (SETQ NBC (GETVAR "CLAYER")), C& D# W7 {& D- L. x+ U9 ^
- (SETQ OSM (GETVAR "OSMODE"))
0 R8 y$ v U/ J) \ - (SETVAR "CMDECHO" 0)
, C1 A0 b. z( y3 t8 ^# h - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
: ~0 E0 `# Y1 h _ - (SETQ TX (GETSTRING "\nCao trinh:")). v+ Y. K! l, _' Z1 ~- Y1 o
- (SETQ FCH (SUBSTR TX 1 1))
* x$ m! Q( D% i& B1 J: n - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))1 O2 Q3 d- h5 ^9 Y2 [
- (SETQ CRST (GETVAR "TEXTSTYLE"))
3 z8 }! b5 \0 Z' j- S - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))" C& {: e+ B" J' Y3 e
- (SETQ TSIZE (GETVAR "TEXTSIZE"))$ \) @$ ]- V2 {0 P: [
- (SETQ STR (RTOS TSIZE 2))0 M$ |$ k# \2 {) j
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))8 h% \( X( \" J3 p7 \0 Y7 K2 ]3 o' a0 F
- (IF (= RSIZE 0)
4 E& @; V9 N5 k+ r0 q - (PROGN
0 L; Z U) t6 @5 T. p - (INITGET 4)$ x' k7 {% @6 L" k2 l
- (SETQ TSIZE (GETREAL PRMT))
' S" ^" u8 y8 P- r$ _8 d - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
( ^/ k5 n6 G$ b$ r1 ~1 | a) G - (SETVAR "TEXTSIZE" TSIZE))
' T. u8 A2 ?: M' R - )/ [, e( f& ^' X: {/ _1 o. W
- )
, U+ h: ]6 Y- {6 r- z) }8 ?$ u5 S. o - (PRINC)
3 e# r( j: s3 ^5 w5 G - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
S% y" e; L0 B - (SETVAR "OSMODE" 0)
+ G. j' l1 }6 w& g& z - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))( e' P/ \% ^ b' \
- (SETQ NPI (/ PI 2))( s% {- P# `% V
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
9 f0 N8 w$ r1 _; I) `2 \ - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
& G7 _% v3 @ `. e/ T, ^+ r - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
9 T. f9 e! K1 |1 J - (SETQ PT5 (POLAR PT4 NPI (* 5 TL))): ~6 Z; t9 [0 |3 c
- (SETQ PT6 (POLAR PT2 NPI TL))
4 B7 p8 Q. A. @5 E2 {6 y- g& C& s - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
! L0 b/ f2 D! O7 {, [. {6 _ - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
0 f1 j6 X0 _/ S$ b( x - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))1 h8 L& Z8 j$ Y/ v" r
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
& V) Q( B" h* `9 a& | - (SETQ PT10 (POLAR PT1 0 (* 2 TL))) L! m) a& ]5 |5 R3 J/ V, e
- (COMMAND "COLOR" "7" "")/ O% Y# d' K0 G1 N a
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
$ `8 m' q+ c) B7 N% A - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))2 h- {" m$ S( _* ^' _ R
- (COMMAND "COLOR" "BYLAYER" "")1 X" ]4 ?4 t) [% [0 |* ~) O5 E
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
, D0 m+ M: E8 `2 [% @ - (COMMAND "COLOR" "BYLAYER" "")
9 l9 o0 J1 d: w& A( {* I8 | - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")$ A. _. e% M4 t/ f6 n1 K( K
- (SETVAR "CLAYER" "0")
- F) V9 D( h6 m+ h - (command "ddedit" pause)
" X) d" ]9 {& w0 y - (COMMAND "COLOR" "BYLAYER" "")
L" m" d3 k/ F5 |. }$ x - (SETVAR "CMDECHO" CMD)5 {) ?: j: d4 v- N0 g; `- Z9 L8 X
- (SETVAR "CLAYER" NBC)
( S# m. {2 l9 p$ q. I4 a" } - (SETVAR "OSMODE" OSM)) {/ L" U. N$ G
- (PRINC)
& Y) D* |2 j7 @& p - )
- p8 R! @( m$ N3 C
5 V' d7 ]2 J7 C3 ]1 c' Q K- ;;; =========================== VE NET CAT CHEO (GC) =============================
9 J" G3 u0 J% y. V5 \& D2 K( Y -
4 ?/ ?! X! T' o+ Y: Z, } - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
2 ]! j) e& J5 a - (setq x (getvar "osmode"))
% a+ D3 m- o" M" K% K9 m7 \ - (setq p1 (getpoint "First point : ")
9 R+ g/ A# }! y- @& H8 i - p2 (getpoint p1 "Second point : "))
9 C: ~; _" o. J, {" y - (setq l (distance p1 p2))9 [3 ~! @+ r: `; ]% n/ k- N
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))* c4 |# U/ s% _8 s0 u8 g/ }
- p12 (polar p2 (angle p1 p2) (/ l 5)))2 q( e% Z( E& W; b+ }
- (setq ang (angle p1 p2))
3 T! g% F) [! D/ O9 T1 p: E - (setq p3 (polar p1 ang (/ l 2.5))0 h. \( B7 D) j, X1 H# U
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))/ {7 {: c' {8 [( G- y4 h" _
- p5 (polar p3 ang (/ l 5))
" _- U4 o1 a' s3 t5 E& N) k - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))3 H# f* S$ Z. z1 |- w* ?- T# }
- (setvar "osmode" 0)
4 Z1 a* O+ y& [8 c - (command "pline" p11 p3 p4 p6 p5 p12 "")0 j6 E F0 E* S i! |$ e
- (setvar "osmode" x) S- f: n. [) u8 v
- )
, d% X* N: [: _; c$ ^ - ;----------------------------------------------------------------------------------
/ l, g% n" f! g+ k - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf69 G1 R7 _' k! A( F
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
/ C8 Z+ X8 N1 Y X. p2 A9 | - (setq ps1 (getpoint "\Chon diem thu nhat: "))
7 f1 m! H- e# \5 `# M5 L - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
0 y& c# q+ V, G- _6 } - (setq sb 50.0 sh 200.0 se 20.0)
: q7 B" [/ x+ k! h - (setq ang (angle ps1 ps2))2 r B9 o4 a! U2 _
- (setq pf1 (polar ps1 ang (- 0.0 se)))# V8 c& ^2 l! _( \+ Q
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
+ G, j# [6 r2 h$ a - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))2 Y3 X7 T5 O* m. D* j
- (setq pf5 (polar pf2 ang sb))
' J$ J' z/ a8 X: N - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
6 o; d+ [: k% B8 h - (setq pf6 (polar ps2 ang se))
# |* {% x6 U) r7 w- o - (setvar "OSMODE" 0); W( X& K8 U( G: o
- (setvar "BLIPMODE" 0)
& j& z" G$ u" a0 {! t2 ^ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")) o9 R8 Q( D; [" D+ s# S8 S# q, A
- (setvar "OSMODE" 703)2 W) m2 e1 C! ?2 u
- (princ) )
/ M7 y8 }) f. C& J8 G - ;---------------------------------------------------------------------------------- |& [4 o# f/ `) W
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
( G+ z3 ?4 t3 l- G# e8 g - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
; j" i( q5 e9 x; I/ \4 X3 K - (setq ps1 (getpoint "\Chon diem thu nhat: "))6 t( U- o/ s, c7 _1 `
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))9 k! K! R! l9 X$ y1 O1 u4 }
- (setq sb 100.0 sh 150.0 se 20.0)% @6 r! z! Y e; C$ b
- (setq ang (angle ps1 ps2))
$ ^. a) N2 n: e' Z! q) q - (setq pf1 (polar ps1 ang (- 0.0 se)))
; \( r8 C0 O! d8 [4 |6 G - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))% ?+ }. k* H+ e$ i, i
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))( z/ U+ j% |$ k$ _* @
- (setq pf5 (polar pf2 ang sb))
9 l- ] {0 k. T4 [' K) O - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
8 n& [& V7 m4 J4 ~ - (setq pf6 (polar ps2 ang se))) I" @% ^+ c; c; `6 ~
- (setvar "OSMODE" 0)
/ ~' N! f: T& M& V! y6 r* m+ F - (setvar "BLIPMODE" 0)
: j9 ?1 z- Y" k - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 ""); t# u- b' G; ^0 F8 c; y
- (setvar "OSMODE" 703)
. n6 V" a: p% x! ~, h0 x7 H' q0 [ - (princ) )
8 A" P; j; x0 `: N' S2 r - ;----------------------------------------------------------------------------------
! E# `3 y' K k - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf62 ?* d/ B" @5 c1 |7 s$ Q
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))5 d# a% R0 e9 R
- (setq ps1 (getpoint "\Chon diem thu nhat: "))% ]8 }+ H, U# f1 r" ]
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
1 ~/ b$ B) q) `* j. F - (setq sb 100.0 sh 250.0 se 20.0)
! U7 M( N7 ~4 u: s5 P+ l# z - (setq ang (angle ps1 ps2))$ ]* d4 A/ o, ^- B
- (setq pf1 (polar ps1 ang (- 0.0 se)))3 B A, _3 U2 ~/ C+ z! O
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))9 Z B2 P0 p: a5 |8 h3 t
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
' ^# {! j' Y6 `% R/ \ - (setq pf5 (polar pf2 ang sb))
: e% e+ ^2 N* P$ v: B9 } - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
2 q+ J7 t5 D9 j5 r7 D, V - (setq pf6 (polar ps2 ang se)): a; J- y# K' X7 E( h* w
- (setvar "OSMODE" 0)6 ~, q5 }8 u* m: p
- (setvar "BLIPMODE" 0)
& b0 x" x" e& ~3 j8 P - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
6 s+ E! I. L, w" g5 X1 s - (setvar "OSMODE" 703); v# ^. E. M8 g* I1 N6 g
- (princ) )- S5 X# Q7 p8 [8 V3 v }3 {
- ! v! @6 c0 D1 P, Y
- ;==================================================================================
* U) b" z& L7 h* s - (defun c:ang (/ ent pt1 pt2 ang)- x# [1 R3 r' r" o! X. E! D+ n9 b9 C
- (setq cmd (getvar "cmdecho"))5 D: ~8 f, c: J8 c+ x: n4 h$ e8 L# x
- (setvar "cmdecho" 1)/ |: T% p. ~* G% H& D5 _6 \
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
7 h( d# o* c5 k5 f1 f5 o% { - (setq ent (entsel "\nChon duong thang:"))
9 E4 n; a1 N4 `+ a$ }) d - (if ent , j% I0 b9 ]: `: t: U
- (progn6 N" j$ R) [( S
- (setq ent (entget (car ent)))3 @3 n- k. ]+ E. L" J) W- o
- (setq pt1 (cdr (assoc 10 ent)))$ ?7 c$ f& J' }2 a/ B6 M0 l
- (setq pt2 (cdr (assoc 11 ent)))9 G# U6 | F1 A8 o; {; X2 }) N; l+ V- W
- (setq ang (angle pt1 pt2))
1 U' K, b" M) E% ?2 O2 O - (setq ang (/ (* ang 180.0) pi))7 D# b: C9 N, q; w* Q
- (setvar "cmdecho" 0)
7 y x3 p' F/ Z: |& k& ? - (command "setvar" "snapang" ang)3 k* Q9 O4 r) U; r9 i" ?
- (princ "\nGoc cua truc toa do moi : ") j+ h2 q2 M6 a$ D$ e
- (princ ang)
) V0 e5 e' J+ t; i* ?+ f: w - )- a* A. @8 H& u
- ) r) O) ~- P @2 s6 s! S& _
- (setvar "cmdecho" cmd)$ g, U8 q( N' T. o
- (princ)& j) ^& G: v7 r
- )
' Y+ h7 {4 w9 f7 J) R2 w( W' B; | - ;==================================================================================4 \1 e: r( T$ E) G% O
- ;============================== KY HIEU DOI XUNG ==============================
( \' H; J) ^* j5 {1 |5 E - ;==================================================================================: r9 \' Z" _* v3 o' i/ s
- / J, b9 r+ U3 E/ r! S; }( q( D3 M& [
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9% I8 J# ]) q5 X
- SZ G45 G135 G90 G180 SS loi)2 E2 R5 h# s: y( Q( K
- (defun loi (s)
+ K7 k: X/ M$ c+ R- k - (if (= s "Function cancelled")* p7 P1 o f9 \
- (princ)
/ l2 g& k, |! i& n - (princ (strcat "Error:" s))# Q1 @- I& E4 q6 l/ p, S# w2 \
- )
* I9 r! I/ j2 l7 }, z3 o - (SETVAR "CMDECHO" CMD)
% I4 t. ], X, y0 Q4 c! q1 C - (SETVAR "OSMODE" OSM) `+ C2 T2 }4 H3 W
- (SETQ *error* OLDERR)
3 w! V) j. X8 t# @ - (PRINC)4 f, p. n. O* T3 k8 V
- )7 m% h# I/ T+ p! s8 i4 Y; l
- (SETQ CMD (GETVAR "CMDECHO"))& t( I% [3 U! S) t4 g( B
- (SETQ OSM (GETVAR "OSMODE"))
# N% h, A9 [5 ^! E0 F - (SETVAR "CMDECHO" 0)
8 U, ^( H; M% Q: z$ O: P% f - (SETQ OLDERR *error*
2 n1 N% h5 z& C2 m' Z7 O/ q - *error* loi)
+ b; ?; V9 @4 d+ W - (SETQ SZ (GETREAL "Size <1>:"))) p$ N$ D" k* D0 k* F4 a
- (IF (= SZ nil) (SETQ SZ 100))
( S1 ]9 |/ u( S8 u3 W1 J' N - (SETQ G45 (/ PI 4))
, E- z' s: \' ? - (SETQ G135 (* 3 (/ PI 4)))
4 y- o' M; k' \. s - (SETQ G90 (- G45 (/ PI 2)))9 R0 ~4 x. X( U0 M
- (SETQ G180 (+ G135 (/ PI 2)))( ~6 b5 {' ~2 H1 Z5 F4 I
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
" _' _# x8 g# b( J - (SETVAR "OSMODE" 0)( A- Z8 K2 F( j% P6 S3 L/ c: W, o& z; |
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))& Z1 {. e! O" j: f" Q0 K" O
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))0 G2 y7 [: y4 {( p+ V( V/ H
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
3 m) n0 _* P( P - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
% t% w# R; K7 b' r( j) c - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))! ]2 Q3 e% ^+ r" U2 ?- ~
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
' t/ e0 c/ g P% v/ } - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
. H( C6 H+ L' }! s - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))" Q' V% P& h7 Z% O
- (PRINC "\nGoc quay:")2 S' N" }' S* n8 ^ U! ^) ^1 ?) o. k
- (SETQ SS (SSADD))
% q3 G* i; d# z2 N5 b5 s - (command "layer" "m" "Dim" "c" "" """")
- e' C% s% A6 @: ~% f) T6 i+ ?) K - (COMMAND "COLOR" "1" "")+ Z- U* _8 y/ ]. P7 D2 T9 D4 F' n
- (COMMAND "LINE" PT8 PT2 "")
1 k9 h% h6 p* j, C2 A" P - (SETQ SS (SSADD (ENTLAST) SS))
/ t1 o) V2 d, `# h' n - (COMMAND "LINE" PT9 PT5 "")# i7 j; A5 \) d. r6 v
- (SETQ SS (SSADD (ENTLAST) SS))% }% m4 y% Q$ ]1 R& ?5 }' r+ b- G% U
- (COMMAND "COLOR" "1" "")
! U5 p, \' C, V# |/ }& U - (COMMAND "SOLID" PT2 PT3 PT4 "" "")5 w" a2 @5 A1 y: L0 W
- (SETQ SS (SSADD (ENTLAST) SS))5 i+ d; E( t& k, T; L6 _; J
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")5 q0 N" _" `8 C
- (SETQ SS (SSADD (ENTLAST) SS))
: s2 |8 l, z# O - (COMMAND "ROTATE" SS "" PT1 PAUSE)
0 M& z9 }, b$ |0 e1 a) ~ - (COMMAND "COLOR" "BYLAYER" "")
5 q/ A' I( W) @- V A# Y$ u - (SETVAR "CMDECHO" CMD)& v( n) h8 a( t2 J0 Y
- (SETVAR "OSMODE" OSM)
$ M: \) s8 R5 H+ Q. E A; d - (SETQ *error* OLDERR)
; x# U2 T( G6 |: J g$ ] - (PRINC)
3 S H$ @" v, Z k/ m: O - )
/ ^9 {- ^2 P' F5 q - * A# M/ h9 ]6 l# r5 d$ m
- ;==================================================================================
! z" u' d- E2 {5 y% o! q& r - ;================================= KY HIEU TRUC ===============================# `- G% \, h( ]0 y8 H
- ;==================================================================================
% p2 x5 k( {$ K5 s0 i( D
& B V; d% G9 O( ~! y' E# s- (defun C:vetruc ()
1 }7 X6 r0 l: |$ s k - (setq bk (getvar "USERR3"))
( b6 p% n9 x* [& ^$ E! M; n' R - (if (= bk 0)7 Z* ^2 E: ]4 \- U0 {! w8 t6 j) k
- (progn
5 [9 x! T/ j! I& T! Z& O - (setq cont "1"): e: D% C& _" o4 X. }+ x1 K
- (setvar "USERR3" 1)
: G% ~; {9 G1 R3 i8 J/ } - )1 G6 f2 G+ ]8 \& N1 t0 Z
- (setq cont (rtos bk)); z6 u9 w( y# z
- )3 X2 X; o* K7 x- p! N/ N( k- L
- (setq pt1 (getpoint "\n Nhap diem dat:")) G& T5 m& u; J9 Z! {
- (command "layer" "m" "Dim" "c" "" """")* i+ c! G E9 E8 I) ^! X$ X( h/ i2 C
- (command "osnap" "")
' U$ `/ B/ V W8 ~( w - (COMMAND "COLOR" "7" "")' r; C; C) s3 e* ]; P
- (command "circle" pt1 150 "")
* v9 y& Z* k+ I: E - (setq pt2 (polar pt1 0 150)) P* A/ k/ M* V% q
- (setq pt3 (polar pt1 (/ pi 1) 150))
9 j6 f' D6 w3 [0 l0 b ` - (setq pt4 (polar pt1 0 300))) q/ V/ U( Y" |( j' Z) Q! {
- (setq pt5 (polar pt1 (/ pi 1) 300))
7 K: u5 j; S7 r3 a - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
' m M1 r! H+ }! t; N - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
' _# M. B6 m, g" Y - (setq pt8 (polar pt1 (/ pi 2) 150))
2 ~1 a; w! F+ `! j1 z - (setq pt9 (polar pt1 (/ pi 2) 300))
5 m4 E. K4 N' h - (setq pt10 (polar pt1 0 150))% {% D- ~! N" X& }8 y' u4 Y
- (setq pt11 (polar pt1 (/ pi 4) 150)): x6 j5 @0 \ O8 k, c2 @
- (COMMAND "COLOR" "BYLAYER" "")
' D: c$ i$ m, P& n9 s' q1 n - (command "line" pt2 pt4 "")2 B6 s* f' t* e6 \6 Z% L" m+ {
- (command "line" pt6 pt7 "")7 ]$ |: y2 o- ~, ~" u
- (command "line" pt3 pt5 "")- p! d+ M/ y0 c6 K$ I" X$ d: ^
- (command "line" pt8 pt9 "")
5 |$ W+ M& T6 J7 Y( n A - (setq dk (strcat "\n Size:<"cont">"))" B: `2 _/ f, z
- (setq bk (getreal dk)), Y1 H" i1 M) a- v! n) J1 k6 P! E
- (if (= bk nil), C4 T5 h& G4 O' `" ]/ | b
- (progn
8 H4 R `( a, m; f$ X; k - (setq bk (getvar "USERR3"))4 C7 Q# e/ k L5 C( d
- )7 u7 z3 Z' f& R2 w7 m9 \
- (setvar "USERR3" bk) W" y) C/ G4 o4 P! ~5 i+ n
- )2 G) c8 N% C5 @7 X6 l Z0 a
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
6 a9 X7 c8 r5 R. }3 O - (COMMAND "COLOR" "7" "")# l7 A; {; ^ H
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
9 t/ R1 G( j# H. J; g( L - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") # o7 p0 e" ]1 B, K
- (COMMAND "COLOR" "BYLAYER" "")( a v6 u5 [, |' G
- )
4 i; l9 P" T4 w/ k9 P6 T - ) q! Z, r9 o5 {: v& S4 N" [5 Z
- ;=====================================================================4 ?( f) s u/ |1 W8 g
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)* V/ h2 h; I0 m( n; o% v
- ;# M8 E% p, }1 q, q9 x
- ;Jeffery P Sanders
4 u Y: E# E! T; x! b9 H5 M - ;
9 }$ q- x' _8 D - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
8 f3 y2 E6 y0 y1 a, b; V! Q - (setvar "cmdecho" 0)! z, C& y& \1 y. a, o
- (if(setq en(entsel))& e8 T/ A- c( _- a
- (progn7 V1 _% ]) ` O! s
- (setq enlist(entget(car en)))9 X4 F# T7 e* O" \' ~9 t
- (if(= "TEXT"(cdr(assoc 0 enlist)))2 j; o/ ^: t6 K' S( A" C
- (progn6 N' F6 a/ }5 E: V4 q f* B
- (setq tx(cdr(assoc 1 enlist))7 D! T: t& w; q
- newtx "" cnt(strlen tx)7 h, R( h! c) m; m7 [
- note "\n...CASE Reversed. \n "
3 G6 X0 y% Q) Z7 e% ^ - )
2 ?5 [' [$ v! d - (while (> cnt 0)
4 c \ G8 j+ F3 k1 M - (setq tp(substr tx cnt 1))" e% ^# Z4 S) H4 k! _" T, n) Y- }
- (setq asc(ascii tp))
) R7 D6 h2 ]+ J. x" K: n! N - (if (> asc 96)8 W" x5 {( ]- X, L4 w
- (setq tp(strcase tp))
7 I: v3 ?9 |- p3 p& V7 I$ U - (setq tp(strcase tp T))
2 Z" V7 a" s* N - )
% O I; M% l3 A$ z - (setq newtx(strcat tp newtx))
5 X3 I" a: n$ w3 F - (setq cnt(- cnt 1))
( \% S- d, v; O" }' z1 ?' ~" C/ B - )
4 U- ^3 e' m. I - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))$ b3 D; ?3 H/ l& Z
- (entmod enlist)) U4 \ N5 P: L$ ]; ?; K5 }
- )
7 h. x3 O3 u3 r# k p8 I - (setq note "\n....Text Only Please. \n ")
g' B, }& ]! j - )* ~1 U' f( Z4 a b/ O8 M) c" x
- )" A0 ?$ p2 W% T8 l8 m. ?5 E8 ~
- (setq note "\n....Nothing Selected. \n ")8 {' V' ]/ z8 U2 _5 D8 ~
- )& j G! B* W4 s" E1 t: l1 t0 |
- (setvar "cmdecho" 1)
( G9 `. J+ o/ Z1 W) z - (princ note)# U# k7 L+ l. M8 Z
- (princ)
. h" U1 E' @! D) s# _ - )( J; ~* W+ F0 y A% ^2 _6 A. L
/ r8 j4 C7 D0 c+ _$ }- ;=====================================================================
9 m3 b+ w) Y" {7 v, M0 O - ;==================== NEW TEXT STYLE UPDATE ==========================0 Q, m* t! j+ Q! z' D2 t9 }
- ;=====================================================================
+ ^- _7 K. w0 Q
2 G. \" _( L& g' G( A7 f4 Y- (defun c:nS (/ tdt ssdt sodt index)
+ ]' d: W. o! d* D0 e' k8 L, p1 i - (defun ObjName (ssdt /)
- z1 e( Z5 R I - (cdr (assoc '0 (entget ssdt)))
- H2 }% O+ L! U* L* Z1 e' w - )5 y) G, x5 t( J7 [5 E
- (defun MoPL (ssdt /)/ |" R1 ~; F# p' H9 g/ K; S
- (= (cdr (assoc '70 (entget ssdt))) 0)
" s4 {; E. s& h" A0 k, Z8 B4 ` - )" c6 P& ~+ ~ j0 Y3 H. N
- (defun NoiPL (ssdt /)$ w8 C8 Z0 E" a( H0 y& u
- (if (MoPL ssdt)
4 z ?1 B8 P. b7 e2 C5 w! f; K - (command ".PEDIT" ssdt "J" "All" "" "X")! Q& d- ?8 l$ V6 I" b
- )
9 j# ]0 M0 i8 U3 N8 s - )
; F- D( y: l6 e7 _/ E2 t$ s - (defun NoiLC (ssdt /)
, Q0 ]: O0 q4 Z+ E- e3 Q- r4 \ - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")! z% W4 {& b9 B; B
- )
' M7 T" ^: n& L) @/ g9 H5 o3 D/ B - (setq
7 S e0 j H$ B& T7 }, |. {& } - tdt (ssget)
; G2 ]1 m5 b- B } - sodt (sslength tdt). l9 P! m D8 f4 x
- index 0 X( ]9 F8 l: ^" X. j+ ?/ N
- )
- Q& Z* `0 q, ~ - (repeat sodt; ^! G; @" B K
- (setq
8 v6 s( |9 Z9 K* d - ssdt (ssname tdt index)# N# x, h' ?; f4 W6 `
- index (1+ index), r5 V2 O1 q' C) b; R: }
- )
' V7 s" V# J$ W0 M* U - (if (or (= (Objname ssdt) "LWPOLYLINE")
* A* ?- }( u& b: y- n - (= (Objname ssdt) "POLYLINE")& }8 l% S) P7 B2 k& r. E
- )
2 a" G9 n& g; }& l$ j! r+ T - (NoiPL ssdt)
6 Z9 T Z2 E* b% k/ z' D( e - )
( S# h2 J0 h" ~/ L9 _7 f Y9 A - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
# J% |, B2 j, y( m - (NoiLC ssdt)
+ W9 j) d1 R: r- G) r* E - )
, |: Y7 y* u6 ^+ u9 y, R - )
2 |" X/ T0 X. ?: j7 H - (princ)
; C4 R8 ]0 ]* n' A7 C9 I, y X9 c - )
# r5 _5 z# @4 t" V - . S% m( d! R* K0 A: d8 v0 v
- ;=====================================================================) s9 E( H) ]5 }. C1 I' i
- ;;; AREAM.LSP
4 k+ h5 a4 J# I8 W6 Q" ?! p. r - ;;; Function: Calculates the total area of selected objects- p- t T1 d. L, F3 a
- ;;; By Jimmy Bergmark/ y/ s M" T; v# B; [( K# u* R# o
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
9 ]+ @& R0 [! E/ m- Z - ;;; Tested on AutoCAD 2000& M% |' k! g2 A) c, W
; S0 m. G2 p+ ^; B( c! @- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
: k( C, j }0 I& j1 G9 g - (defun errexit (s)5 C S/ j9 R. m/ p' X4 i
- (restore)
; s. z! N& Q- f& J0 R# v& B+ u1 u - )
6 N& B6 t8 q- c - 8 c# [& W/ j F# L4 n6 ^ }
- (defun undox ()
) {5 Y2 T1 [+ T4 O# S# K/ r - (command "._undo" "_E")4 p) I% }/ n( m
- (setvar "cmdecho" oldcmdecho); l1 p$ h, Q/ L* U, n4 o
- (setq *error* olderr)
3 ~1 |, l% ?7 G; b - (princ)4 g4 P/ `! [9 `( I. Z! M" M2 }
- )5 H5 h% A6 T$ _/ R4 T, V
' e6 F* E7 q5 P5 ~' t- (setq olderr *error*
: m. D" }5 ]( s0 x, \7 q9 }' N* } - restore undox
2 r6 E' K, x) V1 }7 k1 h - *error* errexit
: W0 ^- {: C9 q - )! _0 E' W$ N* d! f
- (setq oldcmdecho (getvar "cmdecho")). ^ L9 I5 O$ f8 K
- (setvar "cmdecho" 0)% ?: G. }2 a" a5 `9 R( r
- (command "._UNDO" "_BE")2 {5 `+ x3 T7 A3 V7 a* t4 J
- (if (setq ss1 (ssget '((-4 . "<OR")
7 w% l5 D1 X, H1 _% B- N - (0 . "POLYLINE")
! K0 u j% f( I) R( t - (0 . "LWPOLYLINE")
6 U8 k2 U( ]; `. b3 P0 `/ t) i - (0 . "CIRCLE")# H K) L5 Z2 F. i; M7 P) f
- (0 . "ELLIPSE")
2 @' u) d3 d8 ~ - (0 . "SPLINE")
# W. F6 \! `+ \$ q, J% F - (0 . "REGION")
' F) z- l9 i7 }; _ t( k - (-4 . "OR>")# Y7 |! L: M0 y9 i* X8 |
- )
# {" B1 u- b2 L# z' S' @ - )" O$ Y6 }0 \" w: ?* k3 S8 i
- )7 h! u& Q4 R" v: f* B. V5 R: X
- (progn
0 H' J7 R$ a* x* o+ }/ Q - (setq nr 0); G. ?0 c# Y) b: N
- (setq tot_area 0.0)
4 g5 X7 V* D0 L/ L& w - (setq en (ssname ss1 nr))
' q4 K$ F9 Y4 E3 C1 E - (while en" q& G8 O; g, Z! x% X5 u! B* y
- (command "._area" "_O" en)
, a; A- {( C9 W5 z0 z, x - (setq tot_area (+ tot_area (getvar "area")))' @+ p' c( }; a) o
- (setq nr (1+ nr))
8 W4 U: Z5 N1 Y; l: P* Y - (setq en (ssname ss1 nr))
! l2 r0 t1 Y; K - )3 H4 U$ D' E# T; e7 g
- (princ "\nTotal Area = ")! A6 S. R7 @% \5 z. o6 D5 O, J1 R
- (princ tot_area)
3 A% l! T9 w4 i- m/ g - ) O6 h9 I i2 Z+ z: d
- )
/ V: T, s( q5 B, r4 g# C" a - (restore)
3 W' F9 M; @' \ - )! @+ E2 d y* k. B# h4 I
& C/ J& g' J1 k1 I; D7 Z- ;=====================================================================1 n2 N3 ]/ P- j- v8 N6 N
- ;;; By Jimmy Bergmark
0 U# v f7 m! |9 V( h# Z - ;;; Copyright (C) 2008 JTB World, All Rights Reserved2 ?, U' U7 N |& F! n+ h0 a
- ;;;
$ B" ?* y" J# i0 N - ;;; Created: 2008-03-31
" I d% {1 S2 V; _2 B" h - ;;;3 }. c `# e! y3 K- C( X
- ;;; Convert Attribute definitions to mtext5 T/ C; x# g" n* X. L
- ;;;
0 }' A( |' c/ B' f# A/ g2 x7 { - 8 }: Z1 H/ E1 E3 y! p" u
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)! ^2 g: w% J( f* k
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))9 C/ e/ H/ L6 D- l' ~
- blkcnt 0- v. M# n4 V' O# P! g
- )
0 N( \' b8 I) d3 o. `* X
( K Z5 |. l- H- (if eset1* Q7 l/ \. i" u. I! l' L& H7 ^, ]
- (while (<= blkcnt (- (sslength eset1) 1))1 o1 w( K( R0 b+ ?6 V- P1 P
- (setq en (ssname eset1 blkcnt)* Z, s9 g& e: [; E
- enlist (entget en)
$ l% K7 \* l* E, {* o - ht (cdr (assoc 40 enlist))
- I$ Z# Z" ]# u - pnt (assoc 10 enlist)
. O7 h' T0 W, M( A3 _ - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
# l& ], O# L: N - space (cdr (assoc 67 enlist)) D! S) t. S6 {$ f) Z, i
- )) W6 R" w6 c' ^' M& ?8 ~
- (setq vl (list3 w1 t) W4 E* c+ p: Z+ F; x
- (cons 0 "MTEXT")
, }5 m8 F3 @) i+ S7 y3 n - (cons 100 "AcDbEntity")7 H- U4 e8 w j% ~: W& s
- (cons 100 "AcDbMText"): r3 x) _# {( Y4 n
- (assoc 7 enlist)
! V0 ?/ Q& V; @. ~. \. T - (assoc 8 enlist)! ], f) S, P: m4 c5 \. i4 Z$ M
- pnt2 T1 c6 E5 l; Y# i4 ]2 W1 V
- (assoc 40 enlist)
8 x- i9 p# L0 A* n0 ]$ f - (cond ((assoc 62 enlist))
, _+ w& l. q' U) h E) [8 N - ((cons 62 256))
* M( ]8 C+ n0 F: Y - )
/ ?1 Y% X' ]5 _7 e0 Y0 H - (cons 1 (cdr (assoc 2 enlist)))
9 B0 K9 X+ I8 o/ l9 k$ l - (if (= space nil)
( ^! U3 d8 r- l) {" o" Q0 Y - (cons 67 0)# m# v" u p. G% q* x) ^
- (cons 67 space), E' d) M( | ?$ ^' { G+ i$ y
- )( D3 y! I( O% }- ^6 u2 \
- )
( W$ u1 h+ V) Y: u3 z - )+ B2 } e# W6 N- |3 p+ w! j. O5 t
- (entdel en)
0 F5 b4 U, r" F9 T - (entmake vl)& _/ V9 K8 ~1 z* z
- (setq blkcnt (1+ blkcnt))7 P/ D& _* l& ]6 W) h
- ) B+ [: X8 Q0 F* M
- )
) y/ ?: L* s) y% Y - )$ d" C5 M3 q( y" [
- , r* l1 _2 V6 O0 F9 z6 s: s$ O
- ;=====================================================================/ U, A S+ k; D
7 q, n( H! p- p5 L$ G. j, l- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
6 w4 k8 f2 }( a2 [& R- b - ; Khoi dau cua chuong trinh
- R3 g# U- E/ ?# x$ n; z2 X$ o - (princ "\nCopy Inteligent...\n")3 D8 D: I5 K* @1 q+ g, A
- (setq luuecho (getvar "cmdecho")4 m. T& a) q! y7 v
- luu *error*6 ~& J, \' K# @- D8 H1 C1 ~
- *error* ketthuc! u# D' ~! ^2 `
- cumdt (ssget)8 z& J; X# [, U- ~% T
- dodai (sslength cumdt)
3 W/ {2 d/ V- u# g - goc (getpoint "\nSelect base point:")& Z: `2 u" Q8 X/ z* E; H, ~6 N, D- W
- thoat nil
* m- b6 U- W1 z3 V( Z. g - dem 0" k7 U- n) z2 W, \, o
- textxl nil1 r! p1 |* j% b3 h, `5 Z
- );: b1 T2 T6 U. s8 D% y
- (setvar "cmdecho" 0)& j0 l* {, o( w
- ; Loc ra duoc ong text de xu ly% b1 O" n4 k: x! ?% q' |2 W) ^
- (while (and (= thoat nil)
H8 k! }9 s8 [/ g: l - (< dem dodai)% x4 i: x- K' r
- )
7 P7 S; }2 f9 ]6 P1 l( q! U - (setq ten (ssname cumdt dem): S' s/ K- ]. H4 z8 A% W& Q) b
- dem (1+ dem)
+ B* G5 A- }3 I( R4 _* Q - doituong (entget ten) p: S; ^1 z9 y1 I; l
- kieu (cdr (assoc 0 doituong)) i- X& P' j; q
- )5 @& G1 H/ Y7 _* U4 ^$ n! T
- 2 K( N: W* l9 z3 Y% ]
- (if (or (= kieu "TEXT")
2 G/ W+ ]/ f, M - (= kieu "MTEXT")
. o2 F: F$ y8 @6 W0 t - )2 p0 w! w+ q6 `( y, k1 M! v; Z
- (setq thoat T- y- {1 ]7 x' i1 s" @3 L
- textxl (cdr (assoc 1 doituong))
G+ A6 l& R) v6 J6 W- } - )+ d5 E' a6 z$ O: ?! H7 d! b& L
- )8 @$ `" G% F a1 U* ?( e* X& W
- );; X$ T) {% `; x9 Y; |" T) g' p7 @
- (while T
$ x9 X8 d. r! J - (setq toi (getpoint "\nSelect next point: " goc)
+ s+ O* s; H( [$ [' a' ` - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))% b- u/ p# {3 w4 F" Y+ I
- dem 0, Y9 F3 x3 F4 L4 f$ u
- )
$ Z+ [, j7 l5 |: m$ y; G! B - (while (< dem dodai)/ k$ z. X4 b3 }7 n6 z# {
- (setq ten (ssname cumdt dem)# s c" z# }9 v$ Y; \0 F& T- `
- dem (1+ dem)
( E) P$ g# ^, @4 q8 B9 J - doituong (entget ten)
. F7 \8 |8 d* }& o2 i - kieu (cdr (assoc 0 doituong)) 6 h. b- M6 c' n$ C8 {% i
- )
1 V$ j% ]2 w, F4 b& i3 t( t! v - / k. Q( Q6 ~ W! r
- (if (or (= kieu "TEXT")
2 z8 N/ j' E# F% p' B. \" I- {! I - (= kieu "MTEXT") C/ q1 _1 F1 B+ W4 }& A* s, f/ \& L4 B
- )
, }2 z% o2 w q: J) k4 n4 d1 J - (doitext ten)
$ J8 v1 K, h1 [ - (copy_dt ten)
) i. G2 ]0 g( [8 @. e' ~. i! U - 3 p+ ? l5 P: J. w! w/ M
- );if# j2 a: j5 }+ ?' S# I* f
- )- M3 N# |9 `/ u
- );while
& W g* }& a M; s - (ketthuc)
9 \5 ?$ K0 H$ I - );defun1 c5 C3 l( Q$ Q! Q8 X
- (princ)
. y5 F$ { I: {! f9 j4 m
1 L; |+ i4 p* l7 |- ;=====================================================================2 S2 \1 |. b. m
- ;;; By Jimmy Bergmark
* j. S; H/ p8 J4 x4 E - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
4 k/ M) r& C& w+ i D - ;;;0 y) _" J: N% i% p3 w
- ;;; Created: 2008-03-31" p, _- R- n* T' e) ? {& o0 l7 l' S" m6 F
- ;;;
# Q) W# Q3 {% G, x \- C% w - ;;; Convert Attribute definitions to text2 k% {% z6 e5 d- i2 K+ X
- ;;;- b% l. i# F: @
- $ c2 K. c1 {5 T m E# W* R! c$ I
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
# k M6 P4 Z: v' r - (setq eset1 (ssget (list (cons 0 "ATTDEF")))/ {5 C5 R( V0 I2 h* N" `0 q* [
- blkcnt 0+ W! g. x/ s! Q
- )
e% M; m, \' d) ?1 d P
1 D8 z- g* S* Y' u! R$ P! c* J- (if eset1& V$ g5 E" @) f4 ]2 j5 w
- (while (<= blkcnt (- (sslength eset1) 1))
! n$ n/ i& @+ ?( J - (setq en (ssname eset1 blkcnt); n. X, R9 t, H, E" @
- enlist (entget en)
1 m/ Y- s% v$ r( n3 T5 C - space (cdr (assoc 67 enlist))
; K2 _9 _% R5 s7 E3 C' ~ - )
* B+ p& p/ q2 w3 @$ m - (setq vl (list! C) g: ]( M- D9 Z* Z @
- (cons 0 "TEXT")5 `$ }- C3 C/ Q# O: E1 i* ]0 [
- (cons 100 "AcDbEntity")1 g: |' U' i4 P$ C* t9 @
- (cons 100 "AcDbText")7 p( _. V" q: o E* K' Y
- (assoc 7 enlist)
# q& P. L1 p6 {" Z( O& E) M+ M \) ` - (assoc 8 enlist)3 C( z2 m+ q, c* s2 E) ]
- (assoc 10 enlist)
9 _. P O- [, f4 A' j, R3 X5 o - (assoc 40 enlist)
# P' {5 M2 Y% X, v - (cond ((assoc 62 enlist))
- J; X7 s% w7 f8 J" V5 X5 G - ((cons 62 256))
4 J& e4 y$ }8 y% d7 v - )
/ p' u( V f5 V! z) C$ L! n' H$ \5 } - (cons 1 (cdr (assoc 2 enlist)))3 n. L0 p# {( c6 o" L
- (if (= space nil). {) x" {8 G" p! i9 v0 x8 I+ u
- (cons 67 0)5 m3 U$ f* V* ?) F, G
- (cons 67 space)
' G& d: p- Q, U( Q2 O1 G7 u# ] - )
* ^. j6 g6 f& f - )4 n7 A5 F0 M( K" O' ]! x" t) L1 n
- )( A& D; @9 o: I5 H5 ~8 R7 {. T+ j% Q
- (entdel en)3 t7 a. E, s( R3 ^+ I0 a8 |' h- `
- (entmake vl), C7 g1 E0 t( |; O: K
- (setq blkcnt (1+ blkcnt))( D# y5 @# v' n! r9 n6 b
- )
1 z2 y. p/ l1 T& d! l - )6 {% }3 V3 H- k
- ): z4 A2 X" y& p# J6 r
- ;=====================================================================
/ |' A+ V8 G( H" k5 A" H& M - ;============================ Doi Truc ===============================
3 t8 J& _( Q! U$ i" P, O! E$ H - ;=====================================================================
5 e8 _, u% w& d$ c3 o ]
3 s6 E$ d. g% ?7 `' {% Y- ;=====================================================================$ t! a( z" G" {9 x: h. K
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
: {/ {( u, f+ X* Q% X% _ - ;=====================================================================
4 F- r0 H. {% s, ~ Q. s/ H. E. s' g - (defun c:ga1 ()2 M5 m1 ]( b( m3 ?
- (setq a (getpoint "\nChon diem: "))
) p2 M; n3 h, d - (setq b (getpoint a"\nChon diem: ")) X+ Y# | j9 N; g* C: s4 d
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" {: ?5 C" D( H/ K3 s - (command ".circle" c a)
, W1 w9 R" F, M! d - (command ".line" a c "")
% O7 [! ?3 y& M# y0 | - (command ".array" "last" "" "p" c "1" "" "")* d* K% U/ n, |9 j
- (princ))) {& G% Q& c8 \
- 4 Q0 j3 W2 |5 V, U; W# m: r
- (defun c:ga3 ()
' ~0 f1 h+ W! e) J6 c - (setq a (getpoint "\nChon diem: "))9 E$ r, I9 Y0 B2 {( W& x
- (setq b (getpoint a"\nChon diem: "))" p$ O/ J9 o) I0 F
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), _- J: c% M/ ^' X! w$ E4 {: W
- (command ".circle" c a): w% v5 |, x/ |
- (command ".line" a c "")2 }' L/ ~! F" f) z/ s3 t
- (command ".array" "last" "" "p" c "3" "" "")1 o9 O* N7 x$ V* x2 K2 U7 _0 Y
- (princ))
1 e* x9 @0 p) p; t% W - N, S5 O5 ]) ]8 R# K
- (defun c:ga5 ()" N/ R+ f# @! |! F2 Q+ ]( p
- (setq a (getpoint "\nChon diem: "))
! o0 U$ }4 `" d. L8 y% a - (setq b (getpoint a"\nChon diem: ")). ]+ q( |) d( d5 t. x1 e ?7 w
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, k: Q9 A/ R$ v; X9 H5 m" \2 Y - (command ".circle" c a)
! w+ R; E( z5 a2 d - (command ".line" a c ""): i: {8 D( {, u
- (command ".array" "last" "" "p" c "5" "" "")) V" i! U- }5 R- B
- (princ))
+ q2 ?! W# Z: s- Q9 h) D - & Q5 W6 |! ^/ l
- (defun c:ga7 ()
& R( s8 ]/ M6 {) I - (setq a (getpoint "\nChon diem: "))
& d: N# c$ V$ ]- f - (setq b (getpoint a"\nChon diem: "))
6 w- q5 G `0 r! |1 U k' c - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# ]1 X; p6 T! K. R6 S) m
- (command ".circle" c a)( ?2 t0 t6 E% Q a" [
- (command ".line" a c "")
: W" e- C* X. k1 n8 e - (command ".array" "last" "" "p" c "7" "" "")
! V" e6 d1 @9 R% q; H - (princ))$ i3 Z0 X f; v, V3 d2 d( C
- ^+ G m" s7 g$ c2 F" ` f
- (defun c:ga9 ()
' E( o9 y; Z) H - (setq a (getpoint "\nChon diem: "))" Z/ I ?0 |. Q; R; @: G
- (setq b (getpoint a"\nChon diem: "))+ m4 Y3 e4 T& z4 ~
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 W* [8 G4 u3 }! G: T' Q - (command ".circle" c a)
' \( P9 G; z- l$ l - (command ".line" a c "")1 x1 ]% K/ z- D- O% |# `) j8 q
- (command ".array" "last" "" "p" c "9" "" "")
# o, z6 v% H; U, m7 Q$ F3 A - (princ))
* e% K. V& j6 l2 f( d1 w - ! w$ H2 E5 f& \4 r' c- k
- (defun c:ga11 ()
) ]! v$ Y* K* z4 ]4 p - (setq a (getpoint "\nChon diem: "))' n: s% M4 b) ?& E
- (setq b (getpoint a"\nChon diem: "))# D6 o" l1 C; ] C3 X4 h9 U& ^/ t
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% b( F9 N; B7 s' F$ ~
- (command ".circle" c a)
9 h; O. Z) F# d! j - (command ".line" a c "")
* j4 Q2 s ^: W9 N5 J# e0 ]) [% n - (command ".array" "last" "" "p" c "11" "" "")
, W1 ^4 P8 p# {% `: d" ^' J. y - (princ))
6 t$ f# p8 E1 w+ k5 [$ z K
7 z* M1 f2 Y" w+ S4 ?( r- (defun c:ga13 ()
* r# I8 p5 Z8 H - (setq a (getpoint "\nChon diem: "))& ?! G' R& b( G$ l# ~
- (setq b (getpoint a"\nChon diem: "))
O k5 u/ ^/ p - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( Q/ A2 _+ e. E$ v5 E& t+ g: F - (command ".circle" c a)' U2 V+ N8 G3 J& r! Q% E
- (command ".line" a c "")
. g6 T% P* V1 G6 \ - (command ".array" "last" "" "p" c "13" "" "")' p3 o6 k) u, t
- (princ))6 u* t" q) x2 E! t
. n0 [4 s8 h5 Z9 \- (defun c:ga15 ()
. [! L1 B) a2 C8 o0 ]- X - (setq a (getpoint "\nChon diem: "))
/ u7 [, L( q1 i `/ g2 Y- ^( x - (setq b (getpoint a"\nChon diem: "))
u: U8 s! S, M j8 o+ W5 N; S - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 j/ |9 ^9 D" h7 i& \
- (command ".circle" c a)
8 w9 Z3 L0 r7 w5 \/ F# C - (command ".line" a c "")
4 y4 D) w) O m0 y P" E" Q% n - (command ".array" "last" "" "p" c "15" "" "")
' n' _6 b3 R5 i! d; L7 @' Q' E - (princ))
& q0 }; n5 m8 m# ~ N* n) V# ?& d
: ^+ U* c! S% F; G% `2 a8 @- (defun c:ga17 ()7 ]! J" I( e: i- G" X" o3 [; U
- (setq a (getpoint "\nChon diem: "))
$ q8 \' C" H; J$ ^ - (setq b (getpoint a"\nChon diem: "))* X/ G, R y2 j! n, I# M+ |- R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' p0 ?! g* q% u9 a' m/ Y - (command ".circle" c a)6 i, r3 \, x4 Q
- (command ".line" a c "")/ h! S) m q/ u' S9 F! I' J Q5 v" p
- (command ".array" "last" "" "p" c "17" "" "")! c- R7 ]$ J# ~" n
- (princ))$ ]5 O& m/ |( ~/ F
+ Q. \5 g# I( A8 F- (defun c:ga19 ()7 L: M7 J% O4 D# r
- (setq a (getpoint "\nChon diem: "))) {- U% z( X4 w% ]/ l9 ?
- (setq b (getpoint a"\nChon diem: "))
! M4 k2 c# t) H* }" ?! H) j - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' V/ Q( Y( g/ O0 M - (command ".circle" c a)
; Y! G6 @3 g* l1 q' z - (command ".line" a c "")
- }5 U, P; `, G# l# V - (command ".array" "last" "" "p" c "19" "" "")
! W7 y8 v; a0 f& {) R& ] - (princ))
4 `) @7 S; C( } B1 f; I0 }! L
* @) q R' t, g3 A! P5 S" m! J- ;=====================================================================4 j) \$ n* }' W( T! _( q
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
$ @5 {9 C2 z: k/ \" m* e0 f3 e3 a - ;=====================================================================
1 O8 F I) \: H8 ? - (defun c:ga2 ()0 L! Y% O+ ?8 ^' L& s1 f
- (setq a (getpoint "\nChon diem: "))* t" U" Y: B! l/ A
- (setq b (getpoint a"\nChon diem: "))8 n- U T+ I$ d2 a. s
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 D7 ?7 p4 o# t - (command ".line" a c "")
5 h1 O# h$ |/ i3 ?1 v. \7 u - (command ".array" "last" "" "p" c "2" "" "")0 _, P; f* @) [# U7 F
- (command ".circle" c a)
; Q' D; \) W- Q; | - (princ))
7 F }2 c7 L t& G- d9 } - 1 @& Z0 D6 u0 A) U
- (defun c:ga4 ()
% U4 _9 z( q9 I+ I+ b3 A* Q5 d K - (setq a (getpoint "\nChon diem: "))6 A0 H& U& X W0 d8 t; V
- (setq b (getpoint a"\nChon diem: "))( m8 i$ d6 B3 r0 k. x4 @/ D
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 _& ?2 i8 y. |( }
- (command ".line" a c "")1 W) p: J. Y8 D+ ?
- (command ".array" "last" "" "p" c "4" "" "")3 ]( p6 e3 m" U: s$ R
- (command ".circle" c a)
' K" m m- q. @ - (princ)); Q5 w6 i6 S( p5 U
6 S: W! G5 H% L U4 b* \- (defun c:ga6 ()6 z2 x% C$ O3 ?. X, @: `# W
- (setq a (getpoint "\nChon diem: "))
0 B1 s9 J) F. P( F+ B/ o - (setq b (getpoint a"\nChon diem: "))
& v+ n& y" t* k) P - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ f% H2 C0 E1 }7 o: E
- (command ".line" a c "")
$ ^2 h1 U' w2 V0 f8 @& f/ m - (command ".array" "last" "" "p" c "6" "" "")2 W; m( d9 J* j$ O9 M2 D
- (command ".circle" c a)2 `& v: Z1 W( G) X5 N. \" T
- (princ))
! j1 l3 P) x+ l4 z - 9 Y+ F1 u+ c, p# d7 O% p
- (defun c:ga8 ()' s3 F* h# |) ~5 n/ M+ ^) `* |
- (setq a (getpoint "\nChon diem: "))
1 R6 o9 W! S( |' \& N0 V8 U" D8 J7 ? - (setq b (getpoint a"\nChon diem: "))
$ j: I! [+ M: n - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 [) Y3 d+ [5 W/ p - (command ".line" a c "")4 Q O$ m6 {9 G% T8 a' D
- (command ".array" "last" "" "p" c "8" "" "")
2 j; T+ l. D( c' f - (command ".circle" c a)
( q! L+ u+ ~" O# a( j - (princ))1 p# q$ M3 l0 t% C% J+ }
9 M; ~; j, Q" o) `: i6 w/ s- (defun c:ga10 ()
) y6 N h# |, c - (setq a (getpoint "\nChon diem: "))- M6 l, i; E \/ f5 I# b, M
- (setq b (getpoint a"\nChon diem: "))
2 r+ `8 o6 t, X( k8 Q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# l; m$ P+ p; y - (command ".line" a c ""); v4 A9 L( j! v; t) H
- (command ".array" "last" "" "p" c "10" "" "")0 c7 o" s! v7 u9 p+ g0 c4 F
- (command ".circle" c a)) a. R. L5 R, q8 Q e0 o
- (princ)), T- f, X" d) B8 d' E
- h$ E- X& P9 D' z- (defun c:ga12 ()( f# Q4 [$ \2 W: y3 U% z
- (setq a (getpoint "\nChon diem: "))) z! J# x4 u5 F$ M9 A8 Q1 }
- (setq b (getpoint a"\nChon diem: "))( S+ i" k- J( a
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ @9 v; k% F5 c! l, m - (command ".line" a c "")' W/ U; R- N' Y1 S5 o! A% a
- (command ".array" "last" "" "p" c "12" "" "")
% Y$ x% G7 d" A9 Q. |0 a - (command ".circle" c a)2 H: H E; t. `% J/ M$ q+ r
- (princ))
' v8 e3 a8 c. t, {" b H/ y5 k# e
; E& p* |2 ~8 v n- (defun c:ga14 ()
' K' h3 C, s6 B+ F/ _. s! M: w - (setq a (getpoint "\nChon diem: "))
3 O/ y$ e# C, j6 |8 B8 X( L d - (setq b (getpoint a"\nChon diem: "))' D. y- t8 H( u* A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( c* X, \! y, Y - (command ".line" a c "")6 C2 B* W, M& l! E% l
- (command ".array" "last" "" "p" c "14" "" "")2 N7 I% P* F: ?' h# c( v
- (command ".circle" c a)' S9 ~! ` Y3 ?9 B; `' U" t
- (princ))
+ s4 k$ Z3 s7 ^* x6 i
- H/ M5 R r1 ?( v- (defun c:ga16 ()) I. Y6 Q: Y- E+ ?* D: T
- (setq a (getpoint "\nChon diem: "))* a+ ~; D! w/ ~- s
- (setq b (getpoint a"\nChon diem: "))
a( O7 Z3 N4 k7 @. b- L - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- y9 B2 ^$ N$ x2 w
- (command ".line" a c "")5 U# e8 f/ G1 _7 S$ ?
- (command ".array" "last" "" "p" c "16" "" "")
$ V2 t ^8 |' K2 |1 i* c- } - (command ".circle" c a)
2 g7 \# @$ U3 h. z+ c! C) p5 Z8 |& a5 b - (princ)); I' O( L4 k1 Q$ j3 i4 w
' j9 B5 f9 Z: J/ P9 R. h- (defun c:ga18 ()$ x! H i4 |5 E) y& y
- (setq a (getpoint "\nChon diem: ")). g( g( Q: [# J7 D6 x
- (setq b (getpoint a"\nChon diem: "))
( o3 M) f1 g& i) a5 L% m8 y+ }) n - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- o# a( u0 |! X1 X
- (command ".line" a c "")
3 a* h, Y; r% m$ G! }0 \: o - (command ".array" "last" "" "p" c "18" "" "")+ d+ d) a+ [1 y! F- }
- (command ".circle" c a) ?; g8 H4 R/ F! F; w
- (princ))
" [5 a2 p& d/ V) ~3 D- A6 n ] - " ?( u l& V+ p* ^) k8 l
- (defun c:ga20 ()
b- O* J! d! m! h6 E - (setq a (getpoint "\nChon diem: "))' @+ H- C9 t0 w- \7 v$ ^/ l
- (setq b (getpoint a"\nChon diem: "))% Y% u) \( i" W1 r$ T' }/ N* \
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( k6 X: E2 z6 @. q7 p5 U, T$ b: ` - (command ".line" a c "")/ q, t- p4 L" [! [% z; k! e
- (command ".array" "last" "" "p" c "20" "" "") z, @/ [5 w( z( L8 Z. G: b
- (command ".circle" c a)( o! `0 I9 s/ |" _! k+ \) m/ h# J
- (princ)) l! ^; w S- A$ Q+ W1 }. U
" N. p9 U+ v% f' w& l$ S1 z- ;=====================================================================
% H. |* X9 f; h' Q7 q: q% b - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============" @7 ]' p0 b6 T% x Z' W- Q
- ;========================== 06-11-2016 ~ 18h00 =======================% C; I2 H) Y/ O2 X
- ;=====================================================================; X0 R2 Q; W8 U/ W9 R
- (defun c:ga ()" `! q9 h: j. g4 c
- (setq a (getpoint "\nChon diem: "))
7 }) Z) n* K# M4 {, ]/ |2 h - (setq b (getpoint a"\nChon diem: "))
( z# W3 s" t' H8 v - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); ^& r) h% U: _" D' w% v. R
- (command ".circle" c a), }& l) G8 W9 y/ p5 Z0 B; g
- (command ".line" a c "")
- i9 n$ ]" k& o, P - (command ".array" "last" "" "p" c "NUM" "" "")1 t B- P6 ]' M$ G
- (princ))& [8 N6 H$ P* `0 J6 S6 ^6 O
8 ?/ M- s& [5 h, [' \* f- ;=====================================================================9 G( T+ i7 M+ l: H3 \+ Q
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
( P( k' a! K$ w/ L3 z! Q - ;========================== 06-11-2016 ~ 18h40 =======================
! Z# v! j3 J, P* Y( R! i* a - ;=====================================================================; i4 B. G$ A& S! g% k! ]7 _" j
- * u( o: g' t5 |% e
- (defun c:hoathi ()
. r+ ~) a) n. V' C1 n+ e - (setq a (getpoint "\nChon diem: "))
1 N: ?- z, K. B X. r8 J - (setq b (getpoint a"\nChon diem: "))8 x* F8 {; B2 M9 G
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): N$ Q0 v: P7 n# H( p! g
- (command ".line" a c "")7 @4 h; I3 e8 h# M5 c1 _
- (command ".array" "last" "" "p" c "NUM" "" "")
( y' v: s8 O2 L/ Q - (princ))* r6 _5 [$ Y* y* t
+ ?7 H$ Y4 p3 _, d0 J- ;=====================================================================
0 a- Z5 o4 J+ A; R7 R - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
: X. ?* i* r- a3 t - ;========================== 03-11-2024 ~ 19h33 =======================; [) q' r. V( |8 `
- ;=====================================================================
& a7 Y. @9 B% w' n9 M - a# u! W1 ?# _/ T* K0 H5 b, l
- (defun c:cung ()7 l: {* V. b* I4 \5 |9 N% F4 o
- (setq a (getpoint "\nChon diem: "))- [2 @& J6 n4 P& J) a9 q$ D
- (setq b (getpoint a"\nChon diem: "))
6 I9 M/ |2 @4 q1 d/ A - (setq c (getpoint a"\nChon diem: "))
" m' b3 b+ _% B% t$ r" B, B - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 x2 N7 x! y* X# K
- (command ".arc" a b c "")7 G5 m) E) k& C% B. w) ]
- (command ".array" "last" "" "p" c "NUM" "" "")( p- F$ R2 o/ ~* V6 i4 r5 Y
- (princ))3 ?& j) Z2 g5 M! h) A1 F
- : t7 a, h$ m/ |4 w& K$ C
- ;=====================================================================4 }, _3 _) }, y% x
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
* ~4 [( H8 g1 p7 [5 R R - ;========================== 03-11-2024 ~ 20h02 =======================! p8 h/ O9 B' N# [/ N M9 ?
- ;=====================================================================! j& P: O9 Q" I" T
- ! a8 p, _% |8 n
- (defun c:hecloic ()7 `9 B/ t6 {& Z9 G: n B: j# U+ L
- (setq a (getpoint "\nChon diem: "))
5 P7 k+ b E0 n, {4 R - (setq b (getpoint a"\nChon diem: multi "))! a5 i6 E2 w. x+ g3 l
- (setq c (getpoint a"\nChon diem: "))(princ)
2 m8 {2 T& Q. l% E - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 p l$ ?. m' t* V
- (command ".arc" a b c "")3 A: k. J/ h" j' k+ ^( I' U
- (command ".array" "last" "" "p" c "NUM" "" "")3 C X; N5 l' w. d! }; b3 C
- (princ))
. r# f2 ^$ H( x$ l$ Z
6 ~1 b" ]1 z8 l# t' t- ;=====================================================================
/ w; {. ?) r& F' M9 d/ h - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
2 i, t. J0 Y+ k ]; u* |6 I- e6 ~ - ;========================== 03-11-2024 ~ 19h38 =======================, t$ G7 x$ R' p
- ;=====================================================================
6 l C( P$ Q" y' } - 2 L' y: x' k; n: L2 a
- (defun c:gay ()$ J; G* \8 s: D& m W d# Y2 d$ `
- (setq a (getpoint "\nChon diem: "))5 G' L; z4 @( F' G. ^4 d
- (setq b (getpoint a"\nChon diem: "))
1 K6 W; C2 \& {3 r% `. ] - (setq c (getpoint a"\nChon diem: "))(princ)
% X, c5 D9 g, {: C( s+ u0 a - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% G$ \9 f; I, B5 i" j
- (command ".pline" a b c "")% ?- i; p( G4 | I1 Q" ]2 O% W% F
- (command ".array" "last" "" "p" c "NUM" "" "")6 Z6 f; Z* R4 A) h% k3 G
- (princ))" J; S4 }* G! E' m5 y4 A
- 4 t6 |# g( [/ A4 d; t
- ;=====================================================================
- T7 p) j/ N' B3 j) { - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
2 a2 ~; }! T3 P4 ~5 y% N/ c% G0 n - ;========================== 03-11-2024 ~ 20h02 =======================' H# v8 s2 U% U! L S7 ?
- ;=====================================================================8 j! F& U0 d. [ h# U
- 9 M' r n: r( [9 _6 x
- (defun c:hecloit (), \+ O' X: M: }: E
- (setq a (getpoint "\nChon diem: "))
- k" ^7 u$ s9 `8 k- ^ - (setq b (getpoint a"\nChon diem: multi "))
, j5 C7 I3 l3 H8 E - (setq c (getpoint a"\nChon diem: "))(princ)
) Y k0 }5 p& f% k7 Y/ ^ - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ e `. Q3 Z, X - (command ".pline" a b c "")3 Y4 y y7 k! |$ o( L, v
- (command ".array" "last" "" "p" c "NUM" "" ""); {; n8 c& V' |7 h
- (princ))- \& c0 J( k0 ?% v' D8 P% S4 T
- `3 l/ A5 ]5 ~2 s- 6 e: ]; J5 j) v4 k
- ;;; ============================ Merge Hatch =============================) \0 Q$ T# [+ c- Q
- 8 Z, n5 x% S% z5 C. z
- (defun c:mh (/ ss entht sl i dt dtht)
# [) ], M2 n1 ?+ ?6 _! }6 H - % ]4 Q* R$ _: y; s4 L7 x( b: S
- (princ "\nMerge Hatch - free lisp from CADViet.com")) @ D% e: K+ u+ E8 d! L0 ~
- * c, _% |9 {% r8 n# z. m- f" p
- (setq7 g, y1 {# k0 q
- ss (ssget '((0 . "HATCH")))
( K* v1 E& i5 K3 k/ N - sl (if ss
, A* V" E7 _5 M3 E& B* n$ k$ A - (sslength ss)
- i9 y5 b) U1 B$ `' }' W2 | - 07 ^! ^( L! P7 m( J
- )
" J2 R+ i _) x; e: E# @ - i 0
4 w2 X) t+ @$ T0 a7 b - l 0
y) D" P* @- J" j - )
7 Z0 P3 _0 N+ ?8 Y# {( e/ t - 1 p7 E T2 x* w4 o
- (repeat sl
: e5 ?8 ?' ^: K - (setq5 P. H4 U2 K1 S( o
- entht (ssname ss i), ~# N8 p3 m, K$ U( _6 X0 \' D
- dtht (getbdata entht)
# T7 u/ ?6 [/ { - dt (append dt dtht)1 u D& b0 b9 P
- l (+ l (cdr (assoc 91 (entget entht))))$ G' n/ d/ ?; e2 e
- i (1+ i)
' Z/ O2 N, |, w6 q9 S* U - ), C; \; m5 \- X1 J. G$ E1 x
- )" V' W! o2 ]2 [
+ V0 D# Q$ P5 J& q7 ?4 _6 T! b- (setq ent (ssname ss 0)1 q9 `! b4 t7 [! K0 k9 ~
- ss (ssdel ent ss)
4 J+ O$ Z V) \" \" u& a - tt (entget ent)) e5 _& F0 ~! U& q
- duoi (member (assoc 75 tt) tt)
4 F4 S; ^$ Z* l - dau (reverse (member (assoc 91 tt) (reverse tt)))0 S! z' K6 d+ Y
- tt (append dau dt duoi)
4 ]2 G2 n2 W- V9 q/ M# k6 i - tt (subst (cons 91 l) (assoc 91 tt) tt)
: P- H, R: `0 w - )+ z8 E g, e! _+ Q; N$ {
- (entmod tt)
2 R& `! J1 M* n7 Z+ c2 ?. P' J
+ @7 d$ ]- J' X" ?8 o1 h a- u- (command ".erase" ss "")
/ I: g: D/ D" s6 {, \& @ - (princ): D2 j: E7 M: }7 K2 [9 P
- )$ H3 C3 v) |3 m. Z; u6 J* v
- ! O J6 E: v5 N. o! Z* s# }5 q0 d
- (defun getbdata (ent)2 v+ o/ [+ ?9 m% [0 i" g4 G& C
- (setq tt (entget ent)* l6 Q- k. \& O2 D* Z8 z4 a. z
- tt (cdr (member (assoc 75 tt) (reverse tt))); K: a: \1 Q( n1 v8 |
- tt (cdr (member (assoc 91 tt) (reverse tt))), x' t ~/ S1 ^& R% _- z' q- t
- )$ x9 Y+ I0 D r6 X; J' e1 N
- )$ }3 I' f3 T# t' |- R. U& Y
- ( l# D% L- A, a N) p5 R E8 b
) J8 K' @$ d9 x4 j$ n% R% B1 _- (princ)4 b) y# c. H- P, R/ d% }3 r% T8 T
- : ~+ M+ O) f. U- }
- ;;; =========================== CAC LENH LAYER ==============================- m& q" R% L) s
- ;;; =========================== Layer hien hanh =============================
& G/ n+ B# g- [2 A: z. w" | - 7 P7 l) n+ g" C- y9 i: s+ g
- (defun layset (/ LAY) (setvar "cmdecho" 0)9 c! J5 t+ J4 J; I7 Z1 L
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))( U" D( _+ |4 \2 Z
- (if LAY (progn F2 A" J6 H+ r: Z" W: z. z" K; w
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))% y1 Y3 u; P' n0 f: j
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
; E* F! O1 g2 F0 q0 G - (progn
& ~* [4 {) S9 K# W. L: @ - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
+ f: |* q0 T% r5 K, y - (progn
0 s2 K' t) L! O0 A& x - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )8 m( N, Y0 W+ S9 Z! \1 m. _
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))% h1 }/ _7 T! D* X7 g
- " N* m: z- z5 U7 @! S
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
3 u& z! p; ?6 t3 R5 F+ ?
6 q& ~; L7 l# S# C8 @- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)9 ]9 [1 U2 c3 D6 \4 [4 U' ?2 K
- (if (not (setq SS (ssget "i")))6 D( u/ y" L. ` b
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
, V. [1 N3 j, y - (setq SS (ssget)) ) )
4 p+ l; c+ K( h- s6 |& `9 Z0 k - (if SS (progn
2 v n% D7 w- e1 j$ o - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
/ i4 j& o. R( }+ I+ H+ l - (if (> (getvar "cmdactive") 0)
% k0 {: v, E( m U# U- r - (progn& L% }9 c7 Q% J( _
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
% z# {2 _) ]( L0 r# S, P5 T - (setq SS nil) ) (if (> CNT 0)
# e& b7 r3 A) C9 k5 k2 e) B% B; t - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )$ M1 b! g6 u1 L1 C4 l
- (if SS (progn
9 c3 \ M {; f, e) S2 f - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY ""); u' B6 O4 k) e; ]+ P4 T9 ~
- (if (= (sslength SS) 1)
/ W% `2 m4 J1 Y' ~* z - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
; P- w) W9 @2 g+ `. [* m - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end6 i0 M% J* }6 H8 ?
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))2 @0 ]& f/ f# @3 u6 Z; G; t
- ) W% U9 n9 A# `" E
- ;;; =========================== Layer Iso ===================================2 q- d" H/ w- \: V
- 9 l/ B) U2 x0 W$ e% r. w. G
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0). I; m2 ]* j: k( ?/ q
- (if (not (setq SS (ssget "i"))) (progn
) E. e7 p' C9 R% M/ F( L; @ - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
9 { F' k) [( ~3 u# S( G: j, k$ d - (setq SS (ssget)) ) )" H1 L9 B5 A- H! ?2 I. i5 i- q
- (if SS (progn (setq CNT 0)
( a8 h9 i4 Z* f4 U6 m, o - (while (setq LAY (ssname SS CNT)). ~1 Q5 `: A2 q+ d7 t! ?+ r
- (setq LAY (cdr (assoc 8 (entget LAY))))
, U8 t* ]$ D/ x4 ~* k7 f* \ - (if (not (member LAY LAYLST)) h$ Z3 }4 T6 b# s' ^$ Z9 n7 J3 R
- (setq LAYLST (cons LAY LAYLST)) )5 W3 C. e2 ~8 h
- (setq CNT (1+ CNT)) )
7 t3 {3 n7 X t1 o3 Q - (if (member (getvar "CLAYER") LAYLST)1 R: W! \. M. h" h, c/ E
- (setq LAY (getvar "CLAYER")), A8 ~4 k b: |2 w
- (setvar "CLAYER" (setq LAY (last LAYLST))) )) }% C3 y" v/ Q: W7 ]: G4 M. _
- (command "_.LAYER" "_OFF" "*" "_Y")
! O' }) s* g+ [ - (foreach VAL LAYLST (command "_ON" VAL))
6 G3 r- F- h, s2 x - (command "") (if (= (length LAYLST) 1)
6 F9 m- w/ y8 v, n* h8 G2 u9 t6 m - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
7 M3 a# @" u, _ - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
& N) ?' g( y- J' G+ M - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
. ^. T$ b! E* h K - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))5 d( Q* J+ `/ T: q$ W
: ~4 R* |9 p% V# a4 f: Y* v- ;;; ========================= Layer Match ==================================( I+ C8 r! P: ~* T: m' S" [+ ?
9 x* @+ ?$ d: l- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
+ Y8 v l4 Z2 r" [) \2 E - (setvar "cmdecho" 0)& ?4 Q3 {* i6 t/ [- L
- (if (not (setq SS (ssget "i"))) (progn
! u! A( d' X3 {* T9 X/ ` - (prompt "\nChon doi tuong muon thay doi Layer : ")& G, L) R% v9 ^- m0 K
- (setq SS (ssget)) ) ); C" ]+ O5 e, I& I
- (if SS (progn
& Z5 p5 s1 z6 M" ?. a" R: y7 o: R - (setq CNT (sslength SS))2 H1 y% R/ f: p- c! M, o, V
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
( {! W# ]4 V, l" L, X, {7 T - (if (> (getvar "cmdactive") 0) (progn
0 [1 m9 p0 I5 O% i) N# I" D - (command "0,0" "0,0") (setq SS (ssget "p")
2 n! v/ k8 x1 C4 l8 k - CNT (- CNT (sslength SS)) ) )' l5 U5 c6 t& t8 O e% ^' o
- (setq SS nil) ) (if (> CNT 0) * X c: j8 X3 I- b
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
# R! D4 w* v* Z* I* L3 [1 \- r - (if SS (progn
# y) j6 N' T; _% e. c9 {- | - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T ) h/ n4 m1 E4 j& X
- (while LOOP (cond
, N5 W( U6 a5 K! Q" |2 Q - ((not LAY)
" T, I1 P) Y# U0 I' Q3 x& j9 W - (prompt "\nKhong chon doi tuong.")/ ?1 Z5 L4 e# \, a. L! Y
- (prompt "\nSu dung layer hien hanh? <Y> ")
* P, g- X; _' g2 B( D5 h - (setq ANS (strcase (getstring))); n" f; C8 v: R" [6 \3 A
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
3 E0 f6 ~6 f8 e - (setq LAY (getvar "clayer") LOOP nil ) ) ), H! K/ E% z" d( }' E9 ~
- ((listp LAY) (setq LOOP nil) )
: w7 y: x: @/ m: y3 b - ((= LAY "Ten")2 H" W3 Q4 @/ g y3 E' x
- (setq LAY (getstring "\n>Nhap ten layer: "))4 n1 E! e) }; S( y4 p5 I
- (cond5 R4 ~3 R& S0 e6 S! k
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )
8 j! s7 ~$ A# Y# r - ((/= LAY "")3 p8 x$ d: x% R4 w1 ^# t" Y
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")) t) O. F% U" _9 L; g# I% w" |
- (setq ANS (strcase (getstring)))
- ~, ^9 R/ M" c# }; p& B - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
( |( N2 @' g, i! [: ^! m7 S; b - (progn* u1 i X# q2 U( Z1 B) k
- (command "_.LAYER" "NEW" LAY "")+ R1 z z. }% c* }! l( d/ ]
- (setq LOOP nil) )$ Q( @$ G* w! h* S8 `
- (prompt "\nLoi ten layer.") ) ) ) ) )9 ^2 \0 Y2 b% R6 t9 G8 N
- (if LOOP (progn (initget "Ten")9 i2 r1 Z6 M' B0 @" [$ S% D
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP" @2 [+ W* a) m) f# H
- (if (listp LAY)* x% U2 l. H( ^( O$ m
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
% C2 v5 B; u- @; ^( Q; y0 _ - (command "_.chprop" SS "" "_la" LAY "")
! |5 @+ K: h+ o4 p" t - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )# I& F9 {" l. [' w) L4 c5 E
- (if (= LAY (getvar "clayer"))
0 |- r. a) W- `: H - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )7 v% n& k. j9 A$ P
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))9 m. Z0 J. o2 S5 b: H% l( C
7 s2 O3 p' t+ s8 N3 W- ;;; ============================ Layer OFF =================================, P) p7 V5 c& N5 u: I/ L
& b: r* t: ~2 A: n* P0 {- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
- g' T, \( N' A) f" W - (SETQ SSET (SSGET))
8 a: Z: @( U/ F: t' h - (IF (/= NIL SSET) 3 A. {& K2 A# z. Q; N8 |
- (PROGN( H) [( {* w/ p# V1 t
- (SETQ SSL (SSLENGTH SSET))
" h! F9 C. `: ?7 V8 I1 F1 ]( f - (SETQ LAY "")
7 b) x3 n4 Y% A6 e0 A+ ^$ h - (SETQ I 0)
) w% ?/ ~. ?4 p2 \7 J4 U8 `2 T+ f3 R - (SETQ MODE 0) 5 _' C/ {; Z, C2 p0 `
- (WHILE (< I SSL)3 c) `0 C O, `
- (SETQ ENT (ENTGET (SSNAME SSET I)))9 t: \+ V. G# _8 G% h2 i% @0 Z* n
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )4 B! P& s' z* u$ i/ }0 ^' [
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
. c; @% E& k' }% O ?& W; p - (SETQ I (+ I 1))2 j6 ?% c+ ~* p) S3 j
- )
B2 _% j3 [! i1 D7 ]% s - (COMMAND "LAYER" "OFF" LAY "")- ^: O3 j. S/ D4 o5 W5 L9 ~
- (IF (= MODE 1) (COMMAND "") )" F- u T: g" C8 N# }$ A
- )
! ?9 ^; F; ~+ i& r: W - )/ }9 z; G/ z" D) L; O: G2 [1 \
- (PRINC)
8 \- Q- Y' K7 d' K) I" K+ x6 k* O - )
" n5 P4 R1 s1 O2 o - ) a# O- x. h# b: Y" u0 d5 W
- ;;; ================================ Layer ON ==============================8 ~! s( P* K* ^, N, l
- ' m; ?6 o# d; Y6 `
- (Defun LAYON () (setvar "cmdecho" 0)
: w9 p# A/ a3 T' A0 p - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
( v* V5 r* ]" h# t* |3 N7 i - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))8 x" J+ |/ c- I2 J! C/ ]2 D" [2 ?
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))% L8 w P2 j) a* b
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
% K4 y: K: z7 f) q. c - 3 Y( l# T6 E, ^* h/ ~
- ;;; ============================== Layer Freeze ===========================
) g0 A* R4 |/ `2 I+ c3 F, L - % C& M4 H" U& R% t. O# }5 ^, Q; n
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
( W- Q7 a8 v- v5 v8 u - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
* n8 [) n& `0 c/ n$ d - (IF (/= NIL SSET) (PROGN
; Q; r% ?8 v3 p9 L - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
$ N% c- M# _' c - (WHILE (< I SSL)
, S0 g+ L9 n+ e, V - (SETQ ENT (ENTGET (SSNAME SSET I)))
3 g P. k9 r- n' d- O+ b2 s - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )* f z: W2 t- P1 l( O3 o
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
1 X. b- p- _+ U; `" T0 J$ R/ b k - (COMMAND "LAYER" "FREEZE" LAY "")
, M. ?7 O! v4 G8 W+ C0 x - (IF (= MODE 1) (COMMAND "")))): H, l( Q6 ~0 |9 i) R. b8 n. I! e
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
3 F2 X. S1 s. e J; t7 s - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )+ K0 E' q$ c+ U& Z, G
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
& o$ I. o4 N$ O: B - 2 J. r- G( c( f0 {+ E
- ;;; ============================== Layer Thaw ===============================
: r$ T+ |& S/ C# G7 c - 8 _" y% h" ? x
- (Defun LAYTHW ()/ [; s# F7 L7 _
- (setvar "cmdecho" 0)2 Z7 B2 Q- q4 P+ f7 C
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")& m, B% l; V( T/ D+ S
- (Command "_.LAYER" "_THAW" LAY "")
% E, H4 J0 i8 b/ o2 ]( P% j - (princ (strcat "\n Layer : " LAY " da THAW."))3 l7 I: l% O5 U
- (princ) )
6 a, g. R1 j. m6 s/ k9 P - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
) P' `% q- X6 p
: o2 j3 {4 |9 {- ;;; ============================== Layer Lock ==============================
) u$ d/ |$ x# ~$ x; K
. M& l9 R! \ @# E. E- (Defun LAYLCK (/ LAY)
$ e; b6 F. F: x" i& o - (setvar "cmdecho" 0)& X% @% }( s0 t: |
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))5 f+ J& D- _/ {- _6 P- [
- (if LAY
& S2 K4 k) V, T7 r4 G4 o - (progn# ~3 j* n/ m. O) F* }
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
- ~$ _! f* i9 i0 V" Z9 O - (Command "_.LAYER" "_LOCK" LAY "")) y) d4 ?: c' O
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )( I$ Y1 X, F1 f4 F1 e; a3 F
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))# i4 Y: G3 o) z7 _" P
9 N( w1 b: ~- z- ;;; ============================== Layer UnLock ==============================4 T2 I2 ] ]6 Q1 Z+ o+ b
! u" B( z7 m* i: k# m% f- (Defun LAYULK (/ LAY)( l* _1 b l- X, ^
- (setvar "cmdecho" 0)1 O- j$ M# `5 A
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))( R! O5 ]/ C9 Y s' t$ a& x- y
- (if LAY
' Q* y5 o; P( m7 X$ i& X" @ - (progn4 i' O! {6 T( Z, Q; a
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
1 Z$ c& j3 U- O - (Command "_.LAYER" "_UNLOCK" LAY "")
2 ^- X; h2 }8 C4 D - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )2 F. C! c8 r3 {" H4 ?. ]
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
/ s! \; B1 X/ }9 B: v4 r - + F$ f7 X( h$ @$ g
- ;;;===================== Delete all objects of Layer ========================
! `) o" I! i% s" U3 y
: @- Z+ a7 F" {- ?& N9 U' G5 P* y) a- (defun DELAYER (/ ocmd L S) 2 d3 P2 p! `9 H) A: Z
- (setq ocmd (getvar "CMDECHO"))
5 Q) ]5 C6 H' G) L+ q - (setvar "CMDECHO" 0)
/ {& ]. Q/ O+ { - (setq L (strcase (getstring "\nLayer(s) to delete: ")))3 e, I5 s( N. g2 E
- (setq S (ssget "X" (list (cons 8 L))))
# y8 n! e# ~, w0 L3 J: s% V. j - (if S 8 \4 `( c. x6 W- ^% A* G
- (command "ERASE" S "") $ \3 T8 r' ]! }8 n5 y4 _! U
- (princ "Layer empty or not a valid layer name.") )
% D% B% e V0 n0 X4 m$ m - (setq S nil)
9 M& ~6 G' ~: ^& H, X- ~' F' K - (setvar "CMDECHO" ocmd)
$ |' N2 a( G7 M! I# f - (princ) ) , ~8 Q, Z- X+ h2 \
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
! ~! n' f+ V; X8 M2 ]7 x+ o
' Z7 C4 Z5 z" j- ;;; ========================= HET CAC LENH LAYER ===========================
! Z9 l, i* I$ [+ L- g
7 a% H; u3 I& }1 M9 a8 Y- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
5 ] `, W- X- g$ e. E9 {
4 t* s% {# \: x7 L4 W- (Defun C:EET (); _8 j9 r/ [" C9 `. h& X2 v
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
7 D5 Q9 h. }; I2 o8 y - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))8 @3 g0 X( @6 o0 k$ O' V3 M$ H
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))/ h( S7 y) e" P& _
- (Setq I -1)# N. x0 p$ z/ d3 J2 O
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")9 ]# N: T- \+ M7 h- z
- (Repeat LEN
0 F1 r& ~& Q3 K+ w - (Setq I (1+ I))
0 `- P% \7 p4 _) g - (Command (List(SSname SS I) SIDE)) ) (Command "")
6 J% v! h, E; w; _9 w - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )0 u7 P! ]' o! D$ B
, k/ N2 z4 S- p) F6 y- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============9 n$ X& l4 w# y
- 9 y# d6 F' L0 U& R. d/ y! Q
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)7 I/ p! l. J0 A! x8 N
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))5 j& _& H& x5 D! l
- (setvar "osmode" os)
& D. R2 J; f' ^' I: F7 d3 ^$ h - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))- t3 ^4 I. y! o+ r7 w
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))" x' @, Z; P0 ^& }; c+ l/ F$ n
- # e! r+ N+ v v9 @, |4 |
- ;; ================ Change width of polylines =========================4 N% R/ [, Q: m, F
. m8 a, A$ o1 }6 q/ ]6 V2 C4 w- (DEFUN wp (/ a b sophantu sodem list1 ha:wid). }5 }- P& F' J: N6 F+ M
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !") % ~' @9 f) q) J/ m6 \* z
- (setq b (ssget))
: w1 b/ ^1 Y: }+ I1 e# ^ - (setq sophantu (sslength b)) " o' X( C1 N" Y+ P" k( {9 p9 F/ [
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))! X# i. V0 T( f! m
- (princ "\nDo rong polyline <")' ?1 d; T+ A- [0 q5 d0 w% F6 b, y
- (princ ha:wid)
! x! q o/ Q: m+ | - (princ ">: ")
% A R' E+ y* E8 l - (initget 4)
$ @9 [" m) j5 Q) Y9 L2 j - (setq ha:wid (getdist))9 Q3 F( V0 j) F) I1 z# N
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
3 E. ^% q% s4 B' { - (setvar "tracewid" ha:wid)
1 `! ]- @ V4 l6 | - (setvar "cmdecho" 0)' b$ y1 P+ m* B% a* F
- (setq sodem 0)
; O! l- S. E+ B' m6 G* ^- q6 p - (repeat sophantu1 N0 {/ d0 B2 U& G
- (setq a (ssname b sodem))
6 i% k- v$ D! ^ Q" s: o- K. r - (setq list1 (assoc 0 (entget a)))2 v5 q" v8 x4 ?6 [5 k: k; Z
- (cond! p; {+ c ?$ e1 G" Z9 z
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))" a& R# d& I5 v5 h& y. u
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) 2 x% M& \3 i+ V5 h7 D% ^3 @& D
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
& F! c& z& a/ o$ q - (defun c:wp () (wp)) (defun c:pw () (wp))& G0 i9 U8 w) R" T1 ~- D4 h" O
- + `" N/ r4 o* _( ]6 Z! k
- ;; ================ Change radius of circles ==========================
! [7 k. \/ U K5 b
+ D# t9 W% x) B- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))& R4 A( G1 N) m: j7 B
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))% p7 E7 Q& n8 x* A; M8 \ H
- (IF (/= RD NIL) (PROGN (SETQ I 0)" m/ R* @' S, x/ k
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
- o$ {! S7 y' _1 T( u - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
. ~( F. h4 \" ]$ Y - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
8 B- q% R' ~5 Z: V- d; f# z
) J8 @7 f0 \# F9 L; ~- ;;; ============================== TEXT Hight ===============================
, D. f1 _ q) ]" Z; H- r' W
' O& G3 [ h) W" D( b- (defun texthght (/ ent hght)3 J& z7 U. f: [: p& e
- (setvar "cmdecho" 1)" w0 O' D: d6 i
- (prompt (strcat"\nSelect text entity with required text height"))! e/ ~) {0 \6 L# |
- (prompt (strcat"\n."))" S) n3 X( c: b5 S5 ?& G1 V
- (setq ent (entget (car (entsel))))
) y6 y: r/ x( s/ [( k - (setq hght (cdr (assoc 40 ent)))
9 Z( |+ X3 z3 b! n. g% z5 Y - (prompt (strcat"\nText height now set at "))(prin1 hght)
; T$ z1 n* [+ Y - (prompt (strcat"\n."))
$ e6 I# g( J" {. Y" C - (setvar "cmdecho" 1)
" z4 b7 o9 R1 K. e9 [ - (command "DTEXT" PAUSE hght "") )
/ Q+ m1 g$ ?& z9 f4 W - (defun c:teh () (texthght)) (defun c:texthght () (texthght))7 g, u8 ]; W; m# E" z
5 O: B) U( X+ o, t- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================' \/ I" r* x0 d x
7 c. b# J! r% w( b5 C, ^6 p( [- (defun c:tuu () (setvar "cmdecho" 0)
. P0 r1 k3 S- c. J' O4 B6 h - (prompt "\nHay chon dong TEXT can gach chan ")
+ h* l( ?+ _% h/ B9 _ - (prompt "\nSelect objects: "): o; x/ m: d% k( M
- (command "select" "au" pause) b1 }5 U2 }! F6 T
- (setq sstxt (ssget "p")
* X/ {. w c3 m& ~. N - sslen (sslength sstxt)" V2 t' i0 ^- N( C
- ctr 0 )
3 S$ n* w0 {. H3 t - (command ".undo" "mark")0 k' }) X- H' ]; S& d3 F# @
- (while (< ctr sslen)1 Z1 h9 l, B* }
- (setq listxt (entget (ssname sstxt ctr))1 m' u# A' N2 \ i; `% ~0 m
- txttxt (cdr (assoc 1 listxt))
2 T0 ~1 R8 \; o - enttxt (cdr (assoc 0 listxt)) )6 f v. l; g0 t9 Y) V! ]) [: g
- (if (= enttxt "TEXT")& w$ N# I4 [ T
- (progn0 J$ C# H8 y [% Q
- (setq testxt (substr txttxt 1 3))- {( A% w: T! U4 m. v
- (if (or (= testxt "%%u") (= testxt "%%U"))* S/ ^/ r9 |0 c1 R. c5 z
- (setq newtxt (substr txttxt 4))- a) G5 N8 B3 k; g, @! A% M0 k' \
- (setq newtxt (strcat "%%u" txttxt)) )
! x2 C1 j" W( c1 ~ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
5 l) c$ X5 M2 P; a$ ?: I. H* ~$ j - (entmod listxt) ) )
$ v1 M& \* [1 t - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))# T4 |) Q$ ^7 i# p9 _
- + d8 p; f& O: P, G/ x6 l
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
1 s7 f l, O8 w1 z1 |7 f - ( S2 t- b- f- A) A' g
- (defun c:tob () (setvar "cmdecho" 0)
7 W5 m7 z* ?- u! y6 i( h/ l - (prompt "\nHay chon dong TEXT can gach tren dau ")# A5 I- w7 z4 N( w1 d n
- (prompt "\nSelect objects: ") K! y9 [+ _7 A8 q
- (command "select" "au" pause)
O3 H* P0 A) T) L( C/ {) _ - (setq sstxt (ssget "p")$ J/ H8 e" F6 A- T8 l3 q& K& o
- sslen (sslength sstxt)# D$ G$ K9 X% Y: e
- ctr 0 )
0 K# G5 S5 p' \* C# H - (command ".undo" "mark")# O' s! K* O$ L
- (while (< ctr sslen)! G) q; u, ]5 |% x
- (setq listxt (entget (ssname sstxt ctr))
, H& R! n0 j' c/ @( }4 d - txttxt (cdr (assoc 1 listxt))
- X' T8 f1 }4 O" C2 w& U - enttxt (cdr (assoc 0 listxt)) )
$ y' F: X- T! T5 V - (if (= enttxt "TEXT")
8 P0 E* p: x0 V0 K( n& W; L - (progn! W/ J! K2 U# ?, t, }* W
- (setq testxt (substr txttxt 1 3))4 p& U ~( t$ U3 _3 ~! l
- (if (or (= testxt "%%o") (= testxt "%%o"))4 x! P- ?4 y% \% V+ v0 p
- (setq newtxt (substr txttxt 4))
6 B( l: t/ Y9 o' l - (setq newtxt (strcat "%%o" txttxt)) )+ V2 Q/ j. M" `6 E$ K
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))+ ]1 R0 F/ O: ^+ C y$ T" E
- (entmod listxt) ) )/ B$ e' K& S( L$ U& j
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)): D8 t( P& W( r2 X3 S. D
9 L2 S% D, d4 a+ f- ;;; ========================== Tim & thay the TEXT ==========================
) {& Q5 Y$ I: R& e - & u/ A6 J1 j/ p0 t
- (defun frstring (str search replace / str1 str2 index find)2 r- V0 X7 t, a$ U3 d* q
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index)) V. X+ K! H/ l r3 o0 j' `$ s/ T
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
/ V. o. q4 `; j( }2 J) `3 k4 U3 t - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
4 r) a, D% S/ C3 _* A& V' c - (defun hai (/ dial)
9 c( P1 t& r t- v) N6 v. \ - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
2 M6 j9 m' h% y" P4 b - (if (not (new_dialog "find" Dial)) (exit)) ;;! A, ~$ W8 ?* V4 o! M4 m' m
- (mode_tile "find" 2); Tao dau nhac tai hop thoai
5 K' {; e1 G4 u1 G1 D( J - (action_tile "find" "(hai1)")
3 [1 L/ P! {9 _' e. C! x+ r. @ - (action_tile "replace" "(hai2)")! W; G( B- {, m4 Q
- (action_tile "cancel" "(done_dialog) (exit)"), ]' n- J3 [3 Z* t
- (start_dialog)
# n( U% ^; k. E- I% D# H h - (unload_dialog dial))5 L* t' T# ~) J9 [) l
- (defun hai1 () (SETQ str1 (get_tile "find"))), c" R# H# @9 X9 D0 s+ w9 C
- (defun hai2 () (SETQ str2 (get_tile "replace")))
5 {- H' z5 k: j1 J/ ^0 n9 l+ H - 2 F5 o6 U) Q6 s0 @
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
0 q. u' @/ e& ]0 h4 P2 h3 R - (hai)
; I) Z1 b7 W; X y9 i+ C2 A( T9 ~ - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
. e& S1 @5 U' w6 y# n+ L - (progn0 L* U0 o0 X( w' x# `1 Q4 r/ [
- (setq taphop (ssget '((0 . "TEXT"))))7 f5 t! G6 l0 _: U4 j
- (setq sodem 0)
" ]2 o0 @8 }: B - (if taphop
2 n$ z( w9 k: F) a$ P3 \" E - (progn A$ [% g: C O- d
- (Repeat (sslength taphop)8 ]2 ?1 o x6 q/ n; i4 l3 U Z
- (setq a (entget (ssname taphop sodem)))
0 Y; e/ H* E5 ]; y: k0 X! P* f) [" S - (setq str (cdr (assoc 1 a)))
8 r/ W9 k% m8 A# z9 n- T& B1 v - (setq newstr (frstring str str1 str2))
; q+ }+ y( P8 j2 k( f7 }; o& } - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
' p+ ]8 B a/ i! B* S - (entmod a)) {' [5 H, ]0 r B# W) ]
- (setq sodem (1+ sodem)) ) )- A! O' ~4 a$ c h! d# @6 N5 X1 |
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
6 ^3 J' p" ?, h4 U7 j; A) V, ?
+ Y2 V. f, h, }3 J; K+ J8 w6 K5 G* ~8 n- ;;;============================= CHTEXSTY.LSP =============================+ `0 u: a' O9 L3 m m3 O- r
1 o5 S* h% P5 ]' ^$ g0 L0 }- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
. z& E5 W9 x! N7 J8 l0 u' L0 d - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))" S) e. x" M. e2 K1 T1 q/ F
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))5 n" E0 V# ^" K G6 x% p9 o5 @$ ?. l
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
* [* u. T5 n3 U4 r' i - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
5 ^' Z, p/ k: x - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C)), J+ f R; G8 h; q* o1 q5 a# J! p8 T. m
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
' R j7 B! O& K, U U - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G "")). b: R1 b3 D% i: ~/ O* Y8 O. j- p
- (Initget 1) (Setq A (Strcase (Getstring
6 Q- V+ z, B1 I" y# r - "\nEnter text style to change: "))) (Initget 1)
: D# f4 |1 T+ k. p4 ], X - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext)); {/ d4 e9 L+ n6 @" A1 r
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If7 R! a& K7 g- Y1 s$ H! j
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
( o% i$ W3 D" b4 m3 Y - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))) I' m( L3 {! e* y7 r
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
1 \2 Z' \4 I: E6 u& z3 K7 W - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
; ~' E! z C& W# \9 Z; \, m4 I4 Z# w4 ?
8 G. C5 d" c; n+ |0 b- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
& d6 w* p# E" a; j$ o0 \ - (Setq J (Cdr (Assoc 50 A))))6 @& a% m9 B+ [& T. X4 _( h
1 y: h( [8 z# T1 I1 H! C* [- ;;; ============================ DRAW CLOUD =============================
9 W5 N3 ~% V) E. B S# k' ^ }
) s. u/ A4 V. W- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)) O- R$ V0 Y$ [. Y
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
9 `( a& j3 \8 B+ W" a - (setq la (getvar "clayer"))
( d6 O x+ {& k, c b - (command "layer" "m" "cloud" "c" "5" "" "")" ? Q+ t8 g, T, l9 N. @: s
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))3 F( f4 j7 R# ]) ?* p
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
3 f/ ^ u; i* r# }3 y3 P8 F - (setq cnt 1 ss (ssadd))% W( t& e t8 ]' ]" q+ [& x
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))% ^0 M4 e8 {) A/ { S5 D
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))) \1 {3 ^- j( q# a/ J
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))- A. G9 F, ?! F: ~* {& L6 ]% _$ c
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0): b5 Z4 g6 P* R- n. D' A
- (command "pedit" arc1 "y" "j" ss "" "x")
& M% I% B$ s# E7 q* B( I - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
, H6 S/ x" c8 }# Z1 K3 h - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
7 B# y$ ]& g0 u4 B" r/ t - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
: B1 \4 x p$ o a# }5 I - ; u$ X$ f7 q6 Z, v; P2 c. C) X& y
- ;;; ================================ Funtion-Dulieu ========================
6 M; a: E- ]7 ?1 t# ^+ L - ;;; ================================ Funtion-Dulieu ========================
6 E: l6 U0 ]: h! Y. n+ ^7 f - ;;; ================================ Funtion-Dulieu ========================* U" o& F2 @9 w- e5 }
- # F k' N9 e, m. l; S \
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
) O' k+ d" C& K& C' \- v - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
( T# J$ k4 H0 B; q: d - (defun khoangcach (kh khq11 khq12 / h0 h1) (setq h1 (polar kh (angle '(0 0) (vectophap khq11 khq12)) 500)) (setq h0 (inters khq11 khq12 kh h1 nil)) (distance kh h0)). x( e) U9 Y- A+ }
- (defun hacat (hacat1 hacat2 / hacat3 chon) (if (and (/= hacat1 nil) (/= hacat2 nil)) (progn (setq hacat3 (polar hacat1 (angle hacat1 hacat2) (/ (distance hacat1 hacat2) 2))) (setq chon (ssget hacat3)) (command "break" chon hacat1 hacat2) ) ) (princ) )* W5 ?2 Q+ ?( Z0 ^" f
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))$ \. h9 z- H/ L0 R7 m" f2 G
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))/ i+ q' Y& V& b
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
4 x" V. N3 f2 J* M# k - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
* z! @' }- s: P. W- V) Z - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong)))): s: J( b' G- ]
- (defun ha:giaodiem (dc1 p1 p2 / hc hc1 diem1) (setq diem1 (vectophap p1 p2)) (setq hc1 (polar dc1 (angle '(0.0 0.0) diem1) 100)) (setq hc (inters p1 p2 dc1 hc1 nil)))
( E, b/ v4 I, P% c% n* Y - (defun dtr (dtr) (* pi (/ dtr 180.0)))
d* M( P. S* T8 q1 t - (defun rtd (rtd) (* 180.0 (/ rtd pi))); E& A. G( _4 f* W' |, Q! n' k
- " `/ {; E! K6 _* e$ F! M
- ;;;==============================PROGRAME===============================
& c+ P4 R" r" e ` - ;;;=====================EditDiM Hien Hop Thoai Dep======================
5 k% a' E& _8 M8 g - ;;;==============================PROGRAME===============================; E3 X! m' j+ Q! ^1 R
2 ]4 [' S% U! Z' q5 K# S1 b0 q- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
5 p. e! P/ ~3 g" X! N/ G - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
% K/ \' j5 x9 z% u" Y - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)4 w5 K( e8 \( h3 @
- (Setq Oldlis (Entget (Car Chon))" e5 O6 N4 q. X+ K! G l& G
- Pt10 (Cdr (Assoc 10 Oldlis))# Q0 Z' k3 c; ^0 Q8 v, s
- Pt13 (Cdr (Assoc 13 Oldlis))- q& z: t: e! V5 f# ]' A. D0 _1 f
- Pt14 (Cdr (Assoc 14 Oldlis))8 [5 Y9 M6 [. [' {) u, y
- St (Cdr (Assoc 70 Oldlis)), {& Y+ |; E* g, P
- Dimdefault (Cdr (Assoc 1 Oldlis))
5 f* u v+ Q; a; i3 D, p. L( O - )4 k& t9 ?/ P* X% F
- (Cond h7 O1 |, N) {1 x( C
- ((Or (= 32 St)(= 0 St)(= 160 St))- q) ]* G5 r2 g
- (Progn
3 H! Y/ o+ T3 n8 a - (Setq Ang (Cdr (Assoc 50 Oldlis))
+ M" ~& ^6 q5 B2 D3 d( H3 f - Pt (Polar Pt13 Ang 500)- f& t- G+ z: g$ a
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
. g. i* F8 k, s0 g5 C" Z/ s5 D$ k - Dis (Rtos (Distance Pt13 Hc))4 X6 ]* O0 K. P( Z
- )1 s* u3 p3 a# B, F2 u3 n
- )
1 ?; g# m2 W& q2 g4 C1 f! H% p - )' z% b( d: k% I( c$ ]
- ((Or (= 33 St)(= 1 St))# n& d6 f0 y6 D$ C
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
6 \( i5 @" x4 ]' | - );;End Cond
% [$ K8 S8 t: s& A O - (If (= Dimdefault "") (Setq Dimdefault "<>"))4 p- C- L; T; f0 U
- (Setq Dial (Load_Dialog "Hai.Dcl")), m! J) ?7 x; z
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
" G) Z$ `' U8 Q# V - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
9 ]' @/ g4 P2 H# Y! I7 K" ` - (Set_Tile "text" Dis))
( c6 y, o2 b y' g' s) l - (Set_Tile "ha:edim" Dimdefault)
; N& J( I0 N- H& o# P2 z& I - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai+ H- S' ]9 P# Z! G }
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")9 Q) v; G' M" b _
- (Setq State (Start_Dialog))(Unload_Dialog Dial)* M F! b" m6 v# a! S7 @% t
- (If (And Str (= 3 State))1 ~+ t9 q9 g( m: \9 s$ k. z& u3 R
- (Progn+ Q! {, A* v5 _. ?
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))2 n, t/ J, A+ I9 F8 A6 Z3 {' z
- )3 [' Y, }8 v9 t8 C: n
- (Defun C:EH (/ Chon Name )
% ~- g w1 b$ B) I - (Defun *Error* (Msg)
7 Z% R9 n; i4 ^4 q% E - (Princ "\nerror: ")(Princ Msg)(Princ " ")
0 ]" {+ `! T7 B, N5 w7 h+ Q - (Start_Dialog)(Unload_Dialog Dial)% k7 J- d0 N9 Q6 q1 j& N
- (Setq *Error* Olderr)(Princ)
& X. g# v- e+ `4 C) ?( z - )
i9 ]& a5 P) ^9 f1 X+ F - (Setq Olderr *Error*)
0 s- Z5 o+ Y2 x, N t# u - (Setq Chon T)+ {0 h" l0 x3 c6 i5 @/ T
- (While Chon
" E) X; ?6 }, q5 Y+ M - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))! _8 [3 P* K; e# n/ ~. d
- (If Chon
+ L% y$ T* Q) |- l { - (Progn
, U/ W2 A, c% D+ E8 z+ }. p - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
4 d# t; w: G5 P5 O' s$ t% G - (Cond
* _, ^1 j7 F! z5 G - ((= Name "INSERT")(Command "Ddatte" Chon))
% t) a6 s# T* f - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))/ W# Q. |3 X6 g0 T4 T. D6 z3 L
- ((= Name "DIMENSION") (Hai_Edim Chon))
# e S* c, p1 M& c - )
& @; Q; B! a0 c - );End Cond
+ ~8 O0 v8 ]3 E, X5 j* |* a4 N - );End Progn8 ]. U8 g" |: p
- );End While/ Q0 i- A* K5 ~
- (Setq Olderr *Error*)(Princ)* N2 a* e' O9 m" r
- );End Program1 K8 H# Z' E! R) N$ V9 R
- 0 \+ T: q1 f2 N- |5 _) `. U
- ;;;====================DDeditDim=====================
& V" E# g. n) { - ;;;=====================Hai.DCL======================, p, F* ~: P$ w
- ;;;====================DDeditDim=====================
# \$ @- C6 c, e+ k% Q* }/ `2 O - # J# _8 Z9 m9 O- e" o; }! x
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
; L! ?$ ?: _/ H8 V" H6 b - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
& l7 S8 U: m' }8 R# c5 s - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)1 ~. q% D6 U& E. R" k
- (Setq Oldlis (Entget (Car Chon))+ t7 @" ]9 G4 C
- Pt10 (Cdr (Assoc 10 Oldlis))4 j6 y( G! w t; P2 x) |
- Pt13 (Cdr (Assoc 13 Oldlis))
( i9 k+ J8 N B6 F, y% S, z- `) ~' U - Pt14 (Cdr (Assoc 14 Oldlis))
) D0 j$ Z. x& y1 v - St (Cdr (Assoc 70 Oldlis))# X4 y; t% }3 W7 L, K5 y
- Dimdefault (Cdr (Assoc 1 Oldlis))8 F& @* D! J7 u M" b# o# r# y
- )
- c$ Q9 X2 Z# W* O9 d' c5 w5 ^ - (Cond1 M- c8 ]0 A* y t1 B* g
- ((Or (= 32 St)(= 0 St)(= 160 St))
/ s( V6 t8 i/ ^1 K! g: c0 a - (Progn4 [# b- U, d( h% E2 m; p
- (Setq Ang (Cdr (Assoc 50 Oldlis))
+ @5 g/ V& h: x" _, x H3 V - Pt (Polar Pt13 Ang 500): u" J' V P0 F9 T# k
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)3 l$ r9 s$ e, d2 P+ O5 T
- Dis (Rtos (Distance Pt13 Hc)): N) \. B# G. f, w' h3 m& C# o( _
- )2 [; u6 U+ r# T
- ); H* d1 t( r% x* \& K A. W
- ); B, r: l- ~& i- \
- ((Or (= 33 St)(= 1 St))1 a; ~; e1 M! N" d+ u: b
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
+ N w6 d0 X* I0 a0 t - );;End Cond
0 ~. d. J5 [: i e4 ^- k, z% k - (If (= Dimdefault "") (Setq Dimdefault "<>"))
: @' ]7 l" k& D& j) f- E - (Setq Dial (Load_Dialog "Hai.Dcl")). W8 y) {2 ~8 O Q! F0 X7 A# v1 M
- (If (Not (New_Dialog "eddim" Dial)) (Exit))6 E8 W$ Z7 V( p1 u! ]' j/ q
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))- ~3 u# ^2 w# p$ V
- (Set_Tile "text" Dis))
: V( P1 A0 X" u M& c" Y - (Set_Tile "ha:edim" Dimdefault)8 A! A" S! o3 Q5 n
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
" h' B% ~ n) z* Y3 O" D - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
" T2 |6 E# P. ~ - (Setq State (Start_Dialog))(Unload_Dialog Dial)
8 l$ T) f2 c( w. C; S - (If (And Str (= 3 State))6 z* {$ f# Y0 r+ s$ m
- (Progn( ]! k! R+ v0 [- j d( Q, \& o
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
/ w2 w8 |; \$ u) c1 F# g. i - )* g# I/ r1 s0 v' u# X5 h
- (Defun C:EH (/ Chon Name )
. [1 f, `. t' m D6 _2 ~ - z% Q0 ]0 C1 j
- ;;;********************Du Lieu********************
$ k* x+ A8 R; ?1 E' B6 a0 L - , @8 S" I* }1 v
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
5 G( N1 S+ g6 @! ?5 U9 _$ \ - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
1 {# C8 E: T5 A - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
5 ~3 S; }; ]7 ?. j: e: \8 @" E. K) J - (Progn! P2 C) q$ e1 ]: [$ [
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
' ]- ?2 ~4 n' W% j" J" ]% B - (Setq Chon (Ssget Hacat3))4 m( N; V% u- `7 b& C( C; @
- (Command "Break" Chon Hacat1 Hacat2)9 ^. y, Z) C1 Q
- )
/ O& c. [0 e" O- c1 V! O- R9 p - )( A* }- @! T5 F( G1 ^
- (Princ)
/ J L. K$ h5 ~$ V: e - )
. a" j3 T. U! u6 V: A- v$ q - ;;- `! p' H0 ?: x
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
' W4 d0 r0 Z$ K/ g - ;;
; g7 ]' Z8 t% Y; [1 d- J - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
* q0 {7 d8 a! x# b$ E* w F - ;;5 W9 |. S1 t* s/ e
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
* m" m$ v; B- B) b c - ;;, _- F1 f$ ^( o: r1 Y
- (Defun Reinit ()(Setvar "Cmdecho" 1))
( }. q; U" I2 G+ V - ;;- \& Y: _- e! `+ r5 K5 s
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))! ^% x0 |! L) y# L5 Q+ B
- ;;
% z. p2 L3 \" T# m4 X, B% `1 E x - ;;Cho 2 Diem Tinh Ra Vec To Phap
+ k+ ~7 x, V4 n - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))- A- G1 ~$ i+ {& b$ T0 ?* L$ W" r8 b
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
+ C# \) K- B: B, Q0 L1 F/ k - ;;Da Biet 2 Diem Thuoc Duong Thang
6 e0 {" a$ r# y( s. z - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)3 r; G, w- |$ J0 X n' \6 d
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)9 y7 F1 G8 C) y, J, E
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))
# W% v' Y" U. ?" q) v - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
g! B. [# l2 ~6 Q0 h0 ?) U - ;;Da Biet 2 Diem Thuoc Duong Thang
- o: H0 [/ Z4 @" A' s - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
0 ~# p( P0 m; U h9 ?, ~0 V - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
9 L- Z1 T3 F8 u1 v. B; ~9 @ - Hc (Inters P1 P2 Dc1 Dc2 Nil))0 u# e/ o) g- n& F
- (Distance Dc1 Hc)8 W' ?4 ]5 O2 l
- )9 K# R q8 p& p4 I o: y, Y
- (load "nhapcua.lsp")5 m' s5 Q6 J7 D' L( o
- (Defun *Error* (Msg)
2 Q& h8 z5 F2 J; F) e - (Princ "\nerror: ")(Princ Msg)(Princ " ")9 }1 F8 x4 L& H# Z- F+ G1 Z/ C; m
- (Start_Dialog)(Unload_Dialog Dial), v# O( \7 f s2 X P. x
- (Setq *Error* Olderr)(Princ)
% ?9 B. E9 s' h9 V( F8 | - )0 I+ l. ^- b4 p3 F9 i
- (Setq Olderr *Error*)3 A9 H. [& i: `; n$ D
- (Setq Chon T)2 [7 j% z; |5 l$ i7 ^5 Z
- (While Chon
3 b! ~1 B3 C) X& u7 O8 l0 D6 G - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
8 ~0 G' L" f" Y- N - (If Chon) h: w' X6 C# \9 h% U0 B/ G0 x
- (Progn1 b# c9 b! a' \
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
[# m6 t) E- R. O4 |, B - (Cond
* v/ f, Z& L/ d$ C/ F - ((= Name "INSERT")(Command "Ddatte" Chon))
% R7 k0 M" s! z+ d3 V. k - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon "")) r% ?9 Z% b5 S. F
- ((= Name "DIMENSION") (Hai_Edim Chon))
7 H5 @0 W" s( ?& g - )
/ F# e' w, P8 Y. ]( y B* V/ Y - );End Cond4 h, F0 l3 h9 J6 E, n
- );End Progn6 ~8 m2 T5 Q/ M; `$ i" O
- );End While# b- v# k- Y8 v- c& r2 S3 L
- (Setq Olderr *Error*)(Princ)$ m8 b5 S/ t+ O G1 o. D
- );End Program
- B& M7 t: H% w) B& q. I
4 a9 M; V4 s$ I. ] d/ x- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
6 i# S) D0 h# R9 A - ;====================================Nhapcua.LSP====================================
3 G' M; r6 p) ?, {9 g - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
8 [* T3 f2 \: f8 K* s9 ?! V( p
% W t _( x! c% X- & I) V5 e1 M1 B8 e) k6 {" Y
2 X9 x: m! j" N' ^% u+ e% G- ;*******************;*******************;*******************;*******************7 W1 f' z) X0 e
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
) V/ M& J* T9 W7 g" z/ m - ;*******************;*******************;*******************;*******************
/ } `8 V( u) a8 K9 D! i2 c6 Y7 b - & ]+ J" S; `5 a6 w- g/ J# x
- ;VE HINH BINH HANH
8 U0 _' b" V1 @& u; D) y: S/ ~% M$ ] - ' ?) v+ d& a3 {# C$ {6 m
- (defun c:binhhanh (/ p1 p2 p3)0 ]" S$ Y4 G9 g% y* J% J/ \
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))0 C" R- \, c. W# Q
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))1 [( n4 t5 J$ o: m
- (setq om (getvar "osmode")): z: m4 E8 J: @0 Z7 n( ^+ _
- (setvar "osmode" 0)4 x, g! C' i# Z: _) h
- (command "line" p1 p2 "")
9 N$ d. d9 ~/ Z5 C3 s& ] - (setvar "osmode" om): y+ n8 V" E, I5 Z1 I$ g8 k
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))7 \; g1 w( h8 F, @$ Z* b
- (setq a (angle p2 p1))
3 J1 [7 Q2 R% x/ k6 W% s - (setq d (distance p1 p2))- h% C7 x, P+ b! r
- (setq p4 (polar p3 a d))
8 u- H3 {3 |( h - (command "OSNAP" "none")
U( d& N, V' k& Q! c6 s" i) ^ - (command "erase" "l" "")
2 T/ {3 D5 I9 x" ^% i$ R. j8 V - (command "pline" p1 p2 p3 p4 p1 "")+ q$ f; n, p) E9 u# i5 |2 X
- (setvar "osmode" om)! r% y, U# S1 m) b9 {
- )& z0 v9 o D: _
0 K4 X5 n& O5 w! \- ;VE LUOI COT7 r( `/ e4 U$ q: N
- - F9 `- W- e* a
- (defun c:LuoiCot ()" }, j% z" ?' j* \7 |, B2 m6 ^
- (setq om (getvar "osmode"))
, O5 z" u7 g* I. J9 k - (setvar "osmode" 0)) Y4 Q9 {7 z6 n4 s3 b
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))/ e" e% L7 n# I9 N& [! o7 j9 e
- (setq p0 (getpoint "\n Chon Basic Point:"))
: p6 X# q1 e" E2 l6 r - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))) c& W! M Q& Z& W+ U+ B. j
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))
% C0 ?9 x, q8 k, Q" o1 ] - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
* Q h- O0 q" d2 X7 i% b - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
, A% x, V# i {4 u+ c" C: Y - (command "rectang" p1 p2); [7 b1 h. a9 t5 B9 q5 t4 J
- (command "hatch" "solid" "l" "")
3 q# L8 \+ B; S) { - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))) q4 N5 L% F7 _6 X6 G5 V9 i
- (setq nn (getint "\n So buoc cot phuong ngang : "))
& I# F% \( H& E* q7 V, ^' g - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )2 h7 T+ m6 }- i$ B" m4 i- S$ x
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )4 P( H4 x7 {% {+ q
- (command "select" "w" w1 w2 "")
) B0 Q% c ]% y3 [ - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
( }. k4 j8 G3 I/ I6 q - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")' D" l1 P5 W# A
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))# N f8 U3 r& S2 G+ r, S
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
" Q8 a6 ~) Q( K7 T! r1 g - (command "zoom" "w" w1 w2)& r! k6 ? h! V0 q9 b% e
- (command "select" "w" w1 w2 "")/ o7 D1 D5 d6 x& Z
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
4 {2 b `# i. ]2 N6 z X4 l - (setq nd (getint "\n So buoc cot phuong doc : "))& T2 K0 E0 j! R& d* ?0 z2 p- ^: h
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
9 c. D3 a. U! Y( t$ @1 R5 ]- \ - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
8 @9 j8 V {& f, f - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )% {1 z1 M( r9 b) V$ a, n7 t( l3 }5 @
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) . h7 v% q3 i7 j3 m; r( ~
- (command "zoom" "w" w1 w2)* C7 L& l0 R2 l5 K* G/ v7 w: G
- (setvar "osmode" om) ^% D+ @& h, D4 Y$ X1 `
- )
4 j0 {' S/ W$ v, L" x. `. F
% z7 c* _) G$ S2 L _/ G j- ;VE CUA DI
- N& @# O7 |* M+ \
- P7 q( O* D5 Z3 A- d. k7 y' P% E" J- (defun c:cuadi ()6 j* V4 B; n4 r6 ~
- (setq om (getvar "osmode"))
0 e9 D2 l0 O* v( `! d - (setvar "osmode" 0)# Q! V, k. ^, O' r, F E
- " c9 `( j" _ c2 W2 N# \
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x=")): L7 \$ m; [4 J$ t3 B) y
- (setq b (getreal "\n Nhap be rong cua : "))
* u9 U- V4 v2 D, N9 C% f1 Q/ ^( q2 ^ - (setvar "osmode" om)
, T) e9 \ P7 i7 c5 \" H% r - (while (< 0 1)
6 o$ v) Y8 y! H% b- Z; p" L6 c: V - (progn
( }4 x, H9 M6 o% E/ _3 y8 \ | - (setq p0 (getpoint "\n Chon Basic Point:"))$ Y, C" k, z7 o/ ]# o! n/ V
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
; l9 D2 U* m( o/ k0 T5 x* M/ S$ _$ g! f - (command "osnap" "none")
' F3 k1 o4 A" Z' T b) E - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
6 [# Q! E. m& ]' [ - (setq a1 (angle p0 p1))& o" k& B' s# i
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
. S1 |8 C, f3 Y! C& K# ? - (setq a2 (angle p0 p2))6 J% m7 }% W h0 _
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) ); R* c% Z8 W% I9 ~
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
- t8 @5 m2 g. r' ~8 r4 I- O8 | - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))+ m+ Y6 }# I5 Z& D( {
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
8 V4 q) I' l5 K - (setvar "osmode" om)
" m! R3 w6 z$ E - ))
' G# N& ^0 D! G1 c$ |' w( w8 m' m. X - )) H( \- I$ e& b( b/ M
8 E5 s4 ^8 ?5 p% i- x7 ~' K, ?- ;VE CUA SO) r/ i8 o9 d; t1 o$ P
- $ c. E1 L, q( Y( g$ m- [: P: m0 y% |
- (defun c:cuaso ()& W7 S1 U, A% t( G
- (setq om (getvar "osmode"))# p! `2 s O. U, l' {1 }, o/ m
- (setvar "osmode" 0)
9 c! n' P8 j7 H4 `. @) c
( g: a8 a; A0 B+ C- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))+ l/ F6 f! Z" n/ W/ M1 ?+ s
- (setvar "osmode" om)8 ~% t+ s3 O! F/ D% [7 ]* G$ u
- (while (< 0 1)
8 z j, U0 L+ W* n, O1 [: O. n" v- z - (progn" l# l; x& M+ X' h# [; c8 H L
- (setq p0 (getpoint "\n Chon Basic Point:")) e% T m7 E9 g! P+ H
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
) }- N$ p% B/ l! o* c; x - (command "osnap" "none")
0 D! s: Q5 M4 x' q, H - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
. _0 y, z3 V+ C0 s Z5 i - (setq b (distance p0 p1))% f1 r* n+ x u8 A9 u1 M r
- (if (< b (/ (* hstl 600) tile)) (setq du 50))
) S# [5 W+ _, H0 ?+ c; r7 l1 z! a - (if (> b (/ (* hstl 600) tile)) (setq du 150))! Y. x( B6 B1 o4 n# z
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))3 _3 H H+ a8 I# ^/ P
- (setq a1 (angle p0 p1))
6 n3 Q& W* {; X. b3 j3 } - (setq a2 (angle p0 p2))
& P' K5 f3 }# [+ S% h: d - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
2 x0 I. P& t: J) E' ^% M - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
2 U/ c- j/ G+ O4 R6 e - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )+ @+ w5 K2 O) M, R9 y
- (command "pline" p0 "w" "0" "0" p1 "")- T2 c& D1 ]) g! f/ Z
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
( J0 c/ k7 U6 v" p - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")+ {# v: I2 U% u1 a& G) E8 p
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) , y& i1 ~5 u# N3 M, ~' e* I2 r3 D
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
! K) i% `3 k1 p: ^- Z% B - (setvar "osmode" om)
/ K& u$ g, ?9 K+ e; N3 r; D - ))
% c5 T/ F4 P: Z - )7 X _/ g7 }7 c' _3 R* p$ X
- ; h. ]9 S: @/ F/ i% G
- ;;;=== General Utility Functions ===
6 @1 @% Z9 [4 ]$ z, X' C. s - 9 r2 C4 n9 d/ a' i7 _( h9 Q" c: W
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined ) D q, B; K I3 Q2 b8 G4 R
- ; ADS function. Now it's a simple AutoLISP function that calls the , {7 a P U4 b( H* V) n4 M( q
- ; built-in function (help). It's only purpose is R12 compatibility.
. Q/ a1 I8 \' ?- p4 Z3 l - ; If you are calling it for anything else, you should almost certainly
( b, L- n0 c O/ T0 M: X3 o - ; be calling (help) instead. - `( k3 d5 Y" Y1 J8 G
-
+ F- H: G3 m) w) i2 q @& l - (defun acad_helpdlg (helpfile topic)
0 ^" a' V1 g1 w6 x - (help helpfile topic) C4 [7 q- V6 I8 F m' L+ ]& T
- )9 {0 ]( A _. n7 ?, e, s
- V$ I+ c& c }0 H* k7 B; o8 \. R
# N5 u3 d, N- l/ t1 v- (defun *merr* (msg)
' F! P+ h1 t: K3 ` - (setq *error* m:err m:err nil)9 b% i( F. |# l% |+ }2 i. h
- (princ)6 j+ C {/ R+ h, d4 ]5 j
- )+ \; {, P5 J E8 i
% x: G) f% O# Q9 ]! M- (defun *merrmsg* (msg)
, @( |# i$ p; {& |: m, O) @' p - (princ msg)
a* i1 V( S/ V; f+ C - (setq *error* m:err m:err nil)
) ]3 m$ i- u y; v9 [ - (princ)
* ?* j0 ^% F5 R) ` - )
4 s( \; B6 n' `. H9 P1 Y
7 n0 d& M& @5 _* Z! q- ;; Loads the indicated ARX app if it isn't already loaded
; j6 \6 u' Z, m - ;; returns nil if no load was necessary, else returns the7 G& r) P% _) ]1 p7 n4 A
- ;; app name if a load occurred.
* w" t! `& `* u6 R& j - (defun verify_arxapp_loaded (app) f" G0 O$ U( Z. h0 k
- (if (not (loadedp app (arx)))+ H! \# D/ \8 G' u4 @/ A9 o
- (arxload app f)- ?& {' U# S+ U9 \0 m
- )0 e) m! [. X; k |) R5 p* T. U# C
- )
8 x2 |! G, g# p) \$ B( w; m
- A- R4 C; q) p' z- ;; determines if a given application is loaded...
" f& w. g/ ]# e" F# O! b3 u - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....- m5 p9 ^5 y: W& Y1 f3 `- ~" l
- ;;, r+ S, _( \" U: A) W- }4 L
- ;; app is the filename of the application to check (extension is required)
' n3 O+ F+ ]# L0 D' e$ C - ;; appset is a list of applications, (such as (arx) or (ads)$ p' ~. i" ^9 b' l+ s# G
- ;; / l! t6 H4 m* U; `
- ;; returns T or nil, depending on whether app is present in the appset$ ~0 O! p2 E* r4 G# |
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
; h$ t. D! _8 L, n+ |. g9 F( k% A - ;; Also, if appset contains members that contain paths, app will right-match
- }* e1 b6 z9 u. R- b - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
# Z0 Q- I: g: y4 o* w: w - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
# L# ?; g% u8 \; X L - (defun loadedp (app appset)* |! M# A/ Y/ u; V: s
- (cond (appset (or
. L. @1 d) T+ C2 l - ;; exactly equal? (ignoring case)7 F0 r+ \5 l/ C
- (= (strcase (car appset))# p: p4 \, s# ]: W! X4 v
- (strcase app))
" t" H4 _9 W: G2 ^ - ;; right-matching? (ignoring case, but assuming that
4 U+ l! K' g& k# I4 o9 h( r - ;; it's a complete filename (with a backslash before it)
, l( ?) L1 |5 p) c - (and
3 R6 I2 O# j8 {8 V - (> (strlen (car appset)) (strlen app))
( w5 J# b( d4 ^2 K - (= (strcase (substr (car appset)
) ~; |/ T: z5 B3 i3 @ - (- (strlen (car appset))
; K1 _% S& ]) R, u' c - (strlen app) . n c- f5 q9 U' L- g
- )
6 W* @1 h+ O( H5 }# a. y5 m) ? - )
/ L* C) g% [+ b - )
& j. w+ U9 V& U; s7 U! ~ - (strcase (strcat "\\" app))( A# T1 Y# V/ V0 q5 z5 E _9 p* ^
- )
! S) {+ b7 ]% S# A* @" V& z - )
6 [ N: L+ h' f9 L9 R- J. [2 s$ ]. R - ;; no match for this entry in appset, try next one....5 R r0 [ E. s) O% u O& l
- (loadedp app (cdr appset)) )))4 n9 G5 n( z# x/ s. _
- ) R- m: M% y+ d- M K
4 x) G d" a: S m; {
& V" z' b! M/ C# V0 w' r- ;;; ===== Single-line MText editor =====5 d& E& }: g8 ^- B9 [- F& V" y0 m* t: Q
- (defun LispEd (contents / fname dcl state)
. ^9 m B, l1 y; _2 f6 J0 v - (if (not (setq fname (getvar "program")))
0 @: ~0 w% r3 z+ |$ j* U - (setq fname "acad")3 g) W2 I0 u0 p9 H9 g6 T5 j W
- ), n; b! h, Q7 R/ W V
- (strcat fname ".dcl")& n2 z: U( w8 E+ I
- (setq dcl (load_dialog fname))4 D5 x0 a7 ?# ]' \/ ~# [4 Z
- (if (not (new_dialog "LispEd" dcl)) (exit))
7 C# a$ k4 Y. I - (set_tile "contents" contents)& c1 X7 E& }) k0 d8 P) Z+ E
- (mode_tile "contents" 2)
$ v1 m4 M/ w; {! V - (action_tile "contents" "(setq contents $value)") B) n2 x8 e& E- d8 Q
- (action_tile "accept" "(done_dialog 1)")) G# O# @8 v) m
- (action_tile "mtexted" "(done_dialog 2)" ) M5 d& r2 m* a" C1 }9 h
- (setq state (start_dialog))$ c" z/ H& k8 _; e5 c& `1 t
- (unload_dialog dcl)# A: ?1 I! z: s# V) F# Y m3 ^1 O
- (cond
3 _( L. L. C( Q - ((= state 1) contents)3 W' z1 A8 h4 M% p, A3 h. N8 W. u0 k5 X
- ((= state 2) -1)
! g% t# {( P- n9 u5 ^ - (t 0)3 Y) T& j3 G1 u6 Z7 y
- )
1 c. W5 i. [. G# v4 t - )
2 e0 B2 Q, S5 g) d5 C+ _6 W
( ?" y& y% Z, `- ;;; ===== Discontinued commands =====
; a ~+ Z, ~( K1 k& ]4 e4 r - (defun c:ddselect(/ cmdecho-save). T0 o; N4 N! ?* N$ R; [* q& F) c
- (setq cmdecho-save (getvar "CMDECHO"))
% X( b3 K2 z, ~ - (setvar "CMDECHO" 0)9 d5 ]2 M/ k) h, \' e+ j- w
- (command "._+options" 7)
, i/ x2 [0 u% @# F2 a; W3 v. s - (setvar "CMDECHO" cmdecho-save)
& n+ Q; Q1 o4 j - (princ)1 |- `. q* @, X: Y6 d3 m3 M4 R; O
- )
* o5 U- o5 S, u& b
+ b+ F! O7 _7 h0 `( M; c/ b- (defun c:ddgrips(/ cmdecho-save)' c7 _- Z5 j' j* B- w
- (setq cmdecho-save (getvar "CMDECHO")); T% j+ i) E0 d) D
- (setvar "CMDECHO" 0)' o! x, O" k5 c; l
- (command "._+options" 7)
5 |( p7 C; s( s; ^ - (setvar "CMDECHO" cmdecho-save), h& e) Q9 A5 y* G) e
- (princ)4 p6 A ~7 @6 a( o3 \7 _$ s3 z
- )2 r. a1 ~8 U* b6 i B
- & V7 s( f6 K$ `5 X$ A: Y/ I
- (defun c:gifin ()
) d) I+ c4 A9 [ y# N - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
3 E/ u2 `# [3 ^& {( o3 e/ L2 P - (princ)
. F ^- q. E* F$ C- |) z - )
7 I( \: k _4 N! L9 e
# d& A& \9 i u& n& C |- (defun c:pcxin ()
$ r# U7 B2 M0 L9 u/ c O3 F2 \3 e - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")1 W& i& q( e" f w
- (princ)
9 G7 O* p/ [+ t - )
4 ?; F s7 e9 a6 r: U1 K { - 7 E. u% e; e6 N; a
- (defun c:tiffin ()
6 P8 k: _5 h& A' w1 P - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
+ V+ ]; }6 x& ^/ p; U - (princ)) d* ?$ Q9 k( Z6 h. C3 _
- ), S/ @4 b0 @* _
5 R/ `5 c3 @3 I1 ?- (defun c:ddemodes()
. m0 G5 o O6 c( a2 @8 p/ T - (alert "The Object Properties toolbar incorporates DDEMODES functionality. \nDDEMODES has been discontinued. \n\nFor more information, select \"Object Properties toolbar\" from the AutoCAD Help Index tab."): `3 O L) m+ i' {/ R" W) {
- (princ)
% i6 r& O6 S, V# Y - )/ F; ?1 o) O# g: L: R& {3 _/ O
- # T: \/ \. z; [- a: D
- (defun c:ddrmodes(/ cmdecho-save)
% W& l4 h# T- P - (setq cmdecho-save (getvar "CMDECHO"))5 p& ]9 _5 X: v& V+ M T1 v* f
- (setvar "CMDECHO" 0)
% a. B* L0 m. r2 [( X - (command "._+dsettings" 0)
( \- G) x/ }5 o0 i, ~ - (setvar "CMDECHO" cmdecho-save)0 d' |/ @% l+ w( k* k. s2 B. S" G# F* l
- (princ)
: d$ P( F% h( J: X - )5 K3 Y$ q+ g2 G7 k, R
+ @# S; d' A6 I9 l j. s- ;; HPCONFIG7 c6 N9 j0 Y. b" b5 {% m& D
- (defun c:hpconfig (/ hlppath)
]) Q( r( d6 ]; j7 O9 V' c - (if (not (setq hlppath (findfile "acad.hlp")))3 G) P7 A% o; P6 l7 R
- (setq hlppath ""))
1 j; p( l. p4 w! T - (help hlppath "hpconfig")$ m* T! X& @7 l! ^
- (princ)/ T1 x' _- i( g: c# H+ }7 {7 E
- )
7 m, ~5 H( w) B. ~2 H6 Y- |- j N
. ~9 B9 t( G6 N! }- ;; OCECONFIG
! @5 B6 k0 [' h1 K# o7 C2 X( e1 } - (defun c:oceconfig (/ hlppath); g3 y! J) H. [: m% X# }6 H u
- (if (not (setq hlppath (findfile "acad.hlp")))
- t3 c2 _3 ]9 J" t - (setq hlppath ""))
, `4 d t& M2 n) U - (help hlppath "oceconfig")+ \! B: @2 Q+ V
- (princ)
8 b( W6 P% q" ^7 K - )
6 X* P3 g- d9 O3 T) y - ) Q" ~- r; h3 C- S$ ~: v, l6 F& Y
- ;; CCONFIG
8 k! L7 B8 |# @: @6 A, r7 @ - (defun c:cconfig (/ hlppath). w9 `+ y8 H) N( D3 J4 ]6 m
- (if (not (setq hlppath (findfile "acad.hlp")))4 X2 V8 ~2 h7 b
- (setq hlppath ""))
- M) t/ l8 O3 P( f% K) t - (help hlppath "cconfig")& D2 x' ~2 b" _$ m
- (princ)9 J/ [3 g) B, q/ p: _9 l
- )6 Y4 U! `1 m( n! q/ P$ ?" q
- - N$ v% o' B) T2 y* J: T9 O, N
- ;;; ===== AutoLoad =====- L. q5 c" }( A% N% a9 Z& T
- , j& t& Y$ E, l
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")6 H: c" h0 ~7 C! W: I$ L- _% b- D
- ;;; for the name of a certain appplication <appname>.
! Q: ~' A+ S; B/ M - ;;; Returns T if <appname> is loaded.
" m$ a# O* b0 C+ x, q - " K' x0 [1 P+ R( p1 i* }( R4 s
- (defun ai_AppLoaded (appname apptype)' V% I! P3 `( S- l
- (apply 'or% P1 a" z; F/ {# x1 ~4 f$ I& u8 v
- (mapcar 0 h# o8 N$ O' u% s5 v# q
- '(lambda (j)
* H; _1 a, r0 `7 F& ` - (wcmatch( B; @8 e' A4 H/ g( l' @* M+ @
- (strcase j T)
1 v O* N' y8 N - (strcase (strcat "*" appname "*") T)/ Q8 P0 [$ A; r6 {3 S& Y
- ) 7 l2 S0 r% H* c& m. N
- )
2 X. ^ Q# j8 I; g - (eval (list (read apptype)))
# h& A$ p/ K5 f: Z8 _ - )
0 O. u' J% A; M7 j - ). j% o. x% ^4 G& G
- )
7 b' `& e' l/ }" d: }. ]
( ^: B( n6 w) u! j. P' P- ;;
8 `. j/ I* E; _4 y8 @2 T( c' G - ;; Native Rx commands cannot be called with the "C:" syntax. They must 6 S0 X* j M- C8 q! ^0 O
- ;; be called via (command). Therefore they require their own autoload
; z: K# s1 s9 ^3 P. Q/ {" H - ;; command.
* q3 D) k$ Z$ m1 l2 K8 W
% w! c$ m- C9 _5 {. p+ A5 P! |- (defun autonativeload (app cmdliste / qapp)0 T% P3 p r. s5 o5 G& l
- (setq qapp (strcat "\"" app "\""))# Z3 M7 b$ V! y
- (setq initstring "\nInitializing...")) l# E4 W: l( ]; q8 h$ C% Z# r3 J
- (mapcar, g, G2 S- G# O) ]4 @2 ^
- '(lambda (cmd / nom_cmd native_cmd)9 w: M! I `& U$ o; [: }( H
- (progn
% m! `* P! G+ G3 w5 M Y - (setq nom_cmd (strcat "C:" cmd))
8 B+ n- T5 M; G" p - (setq native_cmd (strcat "\"_" cmd "\"")) J6 t, l! U. c! |6 h W
- (if (not (eval (read nom_cmd)))
0 {* A+ R4 T; Y8 j6 N - (eval4 Y6 i$ y) ?' f; a2 F
- (read (strcat9 b; A4 A! J, a8 i4 }
- "(defun " nom_cmd "()"
/ W5 d5 U7 i4 ^2 K/ I( h" L2 ] - "(setq m:err *error* *error* *merrmsg*)") R2 g6 W4 d8 z( M* z
- "(if (ai_ffile " qapp ")" R5 E/ g1 m) ~% {
- "(progn (princ initstring)"
- t0 w4 m, B B8 _ - "(_autoarxload " qapp ") (command " native_cmd "))"
2 C% B- i" E3 r/ R! J1 t9 ^# J - "(ai_nofile " qapp "))"( `7 R; I, B7 ]. s$ s5 v. D1 ?9 l1 F1 R
- "(setq *error* m:err m:err nil))"( y" x7 ~9 \% S% x3 i3 S% e$ B
- ))))))
& s! Q, T( t* V& |, s. J - cmdliste)
H" ?* |7 u5 P- } ? `+ i - nil: E, B9 D# p p6 |1 k1 I
- )
+ H2 T, j' m: E9 I, j: w
6 p0 O9 c* v: v- (defun _autoqload (quoi app cmdliste / qapp symnam)6 L7 Q. G. y; [! Q* }2 X
- (setq qapp (strcat "\"" app "\""))" @$ L; v) v+ F9 ~/ W/ H
- (setq initstring "\nInitializing...")
# Z: M4 a) u, w" y& B3 e - (mapcar
, u+ ~/ S$ ]8 W: c% g - '(lambda (cmd / nom_cmd) X! A. I. g6 S+ {; q& z" \0 M
- (progn
: C3 u' \/ ~% O1 \/ F9 a - (setq nom_cmd (strcat "C:" cmd))) F% m( s! B8 |& [
- (if (not (eval (read nom_cmd)))9 @( V3 I; z" c1 ?, _0 A+ O
- (eval
M1 x; f7 q9 T' Z - (read (strcat
$ I5 a- I! [- U: z' A - "(defun " nom_cmd "( / rtn)", {# r4 t! f$ j5 O
- "(setq m:err *error* *error* *merrmsg*)"3 k! `) J4 M0 F0 k6 D ^
- "(if (ai_ffile " qapp ")"" U; W- Z/ k! s4 w/ @
- "(progn (princ initstring)"$ B0 B1 @- l. v* X+ M# x
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
: r p. O$ d1 e4 d! }' W! A- b - "(ai_nofile " qapp "))"# }9 E8 N2 ?& X9 m1 A+ e# z
- "(setq *error* m:err m:err nil)"$ Y3 \% H0 s, ]" X
- "rtn)"% c" [0 m4 N) B
- ))))))8 T- N9 {7 }+ ?/ Q7 r. q
- cmdliste)
. M% k$ G3 H A7 o+ P; A; `, a - nil
& N2 w# P" e u' P0 j - )5 b! |, C0 s/ N8 Y) ~8 h
- + ~( y' D6 Y C+ ]+ F& r7 `8 u
- (defun autoload (app cmdliste)
" R7 J6 f# x4 y2 f% x+ M - (_autoqload "" app cmdliste)% z& [3 ]/ ]& m$ [
- )
6 A9 q2 F+ @! F; R: { - E' u) A/ {# G
- (defun autoarxload (app cmdliste)
' }% k: M4 Z' I0 E7 d4 Q - (_autoqload "arx" app cmdliste)
4 f3 ]! N% \; w. T - )
3 e# J+ f$ }+ Q0 S* z; U/ r, K( [
5 ?$ D) e( e' f% B3 z( W- (defun autoarxacedload (app cmdliste / qapp symnam)
$ ?8 u7 f! {* L4 j; Z - (setq qapp (strcat "\"" app "\""))
( A4 z% V7 @; D+ C; M$ K - (setq initstring "\nInitializing...")
4 i$ S2 z* D1 ^1 Z5 J0 U: o - (mapcar$ B4 q& ^+ m9 b$ _+ l
- '(lambda (cmd / nom_cmd)
# t* @& O6 R5 b; R+ h- X - (progn! l/ t, ~5 b# y# D( Q
- (setq nom_cmd (strcat "C:" cmd))
. D2 L2 X* a! g6 c9 K5 M8 ?4 y - (if (not (eval (read nom_cmd)))
1 e/ Z7 A0 O5 _( U) L - (eval
( i# X+ `$ }% I- X. }: i - (read (strcat# l8 Q; C% j4 o
- "(defun " nom_cmd "( / oldcmdecho)"
, T( n$ i& N; E* t. w - "(setq m:err *error* *error* *merrmsg*)"
7 i3 w8 [$ Q, {; t1 [% l3 U - "(if (ai_ffile " qapp ")"0 V, H! p6 E$ q* v. _' a/ X: z; B
- "(progn (princ initstring)"% L; f% q9 l) Q: p% Q8 y% {
- "(_autoarxload " qapp ")"
3 o3 \$ B) X. d - "(setq oldcmdecho (getvar \"CMDECHO\"))"! `; W" c R3 w! B Q2 I# I
- "(setvar \"CMDECHO\" 0)"
: t4 u- g5 A Z6 _% j - "(command " "\"_" cmd "\"" ")"
/ c- W0 j' Q* K c6 i - "(setvar \"CMDECHO\" oldcmdecho))"3 K. \; G) H9 j% u0 C8 J a, B
- "(ai_nofile " qapp "))"
7 m1 \% u- T8 H/ K; V( d - "(setq *error* m:err m:err nil)"; ?# _6 |, h$ n) N. P
- "(princ))"# T& A3 @- x$ ^. v9 h( T+ c( S
- ))))))# d/ g# E3 E, g6 u+ ~
- cmdliste)) [3 i/ C* [$ ^ R j
- nil& }6 G/ l5 x7 S; w- y; Z
- )
4 ^8 N3 T, p& Q - 4 O Q' ^ u8 y3 F/ o9 M
- (defun _autoload (app)
0 Q5 A# X4 }+ K* F4 i - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)" V3 e4 |) f6 c5 x# ?
- (load app)/ ^3 W& Y- @" M6 Q% |4 ]
- )+ G/ u2 Z6 u7 k! _2 a8 ^3 V& m
- X- u8 j$ E; z* k7 z4 Q
- (defun _autoarxload (app)
4 j7 |+ k# O; f: z - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri) ^ r6 ]5 Y0 e8 s" R/ c/ o* L
- (arxload app)! b+ m4 j, x6 a$ e7 T9 B
- )
3 u9 T' ?$ p& r. ~1 S - 4 v' ?/ H# X: m3 }
- (defun ai_ffile (app)7 t2 G9 X7 e0 P6 z" k" Q6 o
- (or (findfile (strcat app ".lsp"))
Y$ C1 V1 w. o" `" r) D4 Y' ` L - (findfile (strcat app ".exp"))1 D) m: Q2 O0 y1 B. Q/ e0 ~
- (findfile (strcat app ".exe"))
$ M! l% g; Q4 \# J( }# ?& n; s - (findfile (strcat app ".arx"))
: S' m, X& |: ^3 M6 ? - (findfile app)% y3 n; L7 f; V1 O$ F8 r K
- )
- P" [* E" [& W( N9 E& ^* t9 X - )
0 X6 X1 V3 {. d: X
' t% U$ A B0 l, x0 O" j8 c7 v- (defun ai_nofile (filename)" W- `* M7 w" R& E( H7 z- H
- (princ% H2 N0 g3 T$ q0 [4 s* N
- (strcat "\nThe file "
`, B. h- m4 Z - filename
% Q5 x: q5 w- `9 E/ s) A, C( B/ H9 Y - "(.lsp/.exe/.arx) was not found in your search path folders."
/ m& O$ b8 r6 I+ N! f - )
' j/ A/ u5 I0 h* j! c3 x - )+ p. [& J3 e8 F
- (princ "\nCheck the installation of the support files and try again.")
6 r! [8 E* o; O9 i4 N6 R - (princ)8 i* ~3 `2 A/ L6 j
- )
' O* ?% L6 J: I, \) o: F - : }5 @* E9 v1 _& W, C1 q. |
S* j) M! B! y" c. Q+ c- ;;;===== AutoLoad LISP Applications =====
2 ^( S9 h' _8 L( H/ _3 {' p. R0 v - ; Set help for those apps with a command line interface) T* v) F- m9 ~5 ?
- $ n" a/ A) Q- k- y% X
- (autoload "edge" '("edge"))
# x. V( n* r& I8 Q6 E/ r - (setfunhelp "C:edge" "" "edge")
9 Y N- `' L' v5 ]
3 y3 K2 p2 x4 x' Q- (autoload "filter" '("filter " "filter"))$ y8 _8 M8 m0 j% L. t/ j
- " L( J9 j4 z Z1 a# K9 ]# |- n+ }
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"; Z0 w/ r# D K/ F* K, x$ c
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
$ m3 }: z J: h7 ?( Z7 } - )5 q# l. |8 }- j/ {1 J% v
- (setfunhelp "C:3d" "" "3d")
9 X% U0 G! P5 v1 d1 B7 o# X - (setfunhelp "C:ai_box" "" "3d_box")! t0 W w4 \% i! v
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")3 D- K2 l* t9 ~! F/ ^8 j8 @8 f
- (setfunhelp "C:ai__wedge" "" "3d_wedge")' y* J8 L7 K1 _! F3 c& m
- (setfunhelp "C:ai_dome" "" "3d_dome")
$ e! j7 {$ H% S9 c |; _ - (setfunhelp "C:ai_mesh" "" "3d_mesh"): s7 V# A" u) T8 u/ X$ f( Z
- (setfunhelp "C:ai_sphere" "" "3d_sphere") B: a' g2 v) L
- (setfunhelp "C:ai_cone" "" "3d_cone")3 l9 U( U3 ]2 B, w: K
- (setfunhelp "C:ai_torus" "" "3d_torus")
7 M0 ^0 L( [4 I: R9 \ - (setfunhelp "C:ai_dish" "" "3d_dish")( o& w% r m) R, O$ t) b6 h
$ K1 u$ g y& q' G& C- (autoload "3darray" '("3darray"))! D# Q' H8 C; k2 F8 y
- (setfunhelp "C:3darray" "" "3darray")9 k3 V; p- n4 M
- {0 b- k2 [% z4 H# i, @- (autoload "ddvpoint" '("ddvpoint"))- U& @: w- f; k
- 6 w; J" I9 V0 I
- (autoload "mvsetup" '("mvsetup"))
1 K9 O- j4 s4 P3 |: v$ I - (setfunhelp "C:mvsetup" "" "mvsetup"). Z' t% z$ N0 Z4 C$ S
- " V V8 L9 o$ E! a" L6 G T( p
- (autoload "ddptype" '("ddptype"))# o# s: e* k4 C' ^: b
- 2 n3 L9 c0 y) _" f p5 D
- (autoload "attredef" '("attredef"))
0 t: n- D% Z+ \0 c, S2 c- W - (setfunhelp "C:attredef" "" "attredef")
0 s. ]1 z( K+ L9 O% V {
6 Z9 q% ~) t" s% W- (autoload "xplode" '("xp" "xplode"))! Q5 i, D' z& @0 d+ B
- (setfunhelp "C:xplode" "" "xplode")8 n8 T7 {/ B7 J# D# x5 A
- : {) g5 h; A z# C( P: v2 T$ K2 }
- (autoload "tutorial" '("tutdemo" "tutclear"8 h5 [" ~: c4 W
- "tutdemo" + x ^* H9 v& Z) w$ X8 o
- "tutclear"))
$ [& {# M `7 |1 N3 ?7 Q7 E - : p( ?5 ~/ V$ w/ t5 \% i
- ;;;===== AutoArxLoad Arx Applications =====8 Z& j0 G- U; T7 c
0 \8 H$ g( C# p% |1 E$ V7 H7 @1 S- (autoarxload "geomcal" '("cal" "cal")). `. v3 D: X6 r( E
- 7 k4 R+ {4 H4 p
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"! s! q+ S- T9 q* s
- "mirror3d" "rotate3d"
" h3 g' b# w: [) p0 ?3 i9 G8 t - "align"))
8 t# ?' N5 Q, R1 g8 a; w& u2 d - . v9 S1 ~1 J4 Q9 m, f4 U: \
9 F5 K7 q1 i' |. ~7 o0 x/ P* K- ;;; ===== Double byte character handling functions =====8 ~* z! i1 p3 ^6 A
- 2 _ _0 M0 E. ]
- (defun is_lead_byte(code)
4 M; g, d( \9 w* F M" s - (setq asia_cd (getvar "dwgcodepage"))
4 ]2 R5 S5 Z% H1 Q% R0 ? - (cond: e Q3 z$ o- q d! x
- ( (or (= asia_cd "dos932")8 N- i$ ~4 X3 L; H5 E5 A4 u: Q
- (= asia_cd "ANSI_932")4 U: D; u. `+ |9 C2 i# v9 ?! ?/ |
- )
8 A5 C% l: i' y8 n4 w - (or (and (<= 129 code) (<= code 159))
- Q( ]9 g) C( c5 a) Z" r4 o7 @& }& X - (and (<= 224 code) (<= code 252))
9 R6 G& m6 x: g- O1 C1 n - )5 k3 U; @- u4 N) t
- )
% s/ Z+ C- X" e: H& v- ` - ( (or (= asia_cd "big5")% D2 h7 k( E* ], ~. C9 Z* H& H
- (= asia_cd "ANSI_950")
! Q4 g' ~$ b5 P0 W( D% Q - )3 _$ [: o& o# S$ l, [ `/ f9 H
- (and (<= 129 code) (<= code 254)); ?4 t+ B" g {; Z
- )3 D$ g# \& x. ~
- ( (or (= asia_cd "gb2312")5 r9 ?+ Y# M' q4 V
- (= asia_cd "ANSI_936")" j9 Z o0 U5 o2 I5 ]+ B
- ), |" I+ b# R, u: G: i
- (and (<= 161 code) (<= code 254))$ i* U: K9 S5 W2 H; p
- )9 Q; V! P- |/ o, n
- ( (or (= asia_cd "johab")
$ O* z- _7 a0 B( h - (= asia_cd "ANSI_1361")5 p: _# Y* S7 n" ]
- )
@6 q( Z& i- K: c - (and (<= 132 code) (<= code 211))
& p* E5 @0 D) ^! C - )! q, ] K- Q/ h$ r9 b Q% t% K
- ( (or (= asia_cd "ksc5601"); z/ i: c x2 V9 X5 D
- (= asia_cd "ANSI_949")+ m; `' V. D+ c: H. y' t
- )6 V+ F( m* I! o8 C& r5 H( R
- (and (<= 129 code) (<= code 254))# N! f% z1 u$ b4 L4 i
- )
5 F) u( e$ S$ O6 |: ~ - )+ h2 c* U) J( l+ {
- )+ h$ H; Z! E- m) a9 V; G+ C/ H2 a
u; j, k b" y g: y0 k m4 _: L- ;;; ==================================================== W% S# p9 b [" W/ r9 v1 ^
2 Q X2 W* T; G: L+ ]* O% c- - Q" ^0 v$ d* ?3 _, l
- ;;;, _* E: \/ L! U+ c# a9 n
- ;;; FITSTR2LEN* g- {/ Q& J7 L" T5 p" g
- ;;;
. Y/ [" n7 G4 t. _( h a# s - ;;; Truncates the given string to the given length.
" |& b) }. l" Q+ V# ?$ b - ;;; This function should be used to fit symbol table names, that
: e7 N' Y9 J+ y$ J' g& i - ;;; may turn into \U+ sequences into a given size to be displayed
I1 L+ N6 j( }% L! U - ;;; inside a dialog box.
f. V3 J& r, ^2 I9 R8 i& } - ;;;8 E% |0 P8 y1 M* K
- ;;; Ex: the following string: / d2 Q/ L7 `2 T* q( \
- ;;;
4 ^8 `# X9 H4 A x - ;;; "This is a long string that will not fit into a 32 character static text box."3 d2 v; S9 z: o( m0 `! q; P6 L
- ;;;
- N' Q0 L) S3 ], B* C - ;;; would display as a 32 character long string as follows:0 l4 e3 D) j! r: u2 I, [
- ;;;
# w' n3 y6 e. u# H/ Q' I - ;;; "This is a long...tatic text box."0 \4 x- Y7 K, i! E
- ;;;' C" G$ l- y! q! F
- & p6 w/ d/ w- P
- (defun fitstr2len (str1 maxlen)
1 y3 R, Y" a7 l- Z0 @7 q - & P0 I! W4 W+ U A; o" I
- ;;; initialize internals
A' f8 I" \5 u8 K7 ~- j" r - (setq tmpstr str1)6 z$ w! u* ~( U, t5 n# R
- (setq len (strlen tmpstr))
7 C( f" @& B% @- A! [( p3 n
% b8 Y: R Q4 M2 D$ p0 i- (if (> len maxlen)
( B/ A& I4 U. J - (progn) r- i9 G. `' _; T; T; J
- (setq maxlen2 (/ maxlen 2))7 o* A$ N: q& a" u- B4 j' c; G
- (if (> maxlen (* maxlen2 2))
% i. i! r( K4 A" J5 \) } - (setq maxlen2 (- maxlen2 1))3 ]/ p3 k- [9 j, N
- )$ P' P1 p: M% n5 K& b' p; h# [
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
9 E4 B0 r* e! e - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
N+ K( N; q) \ - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2))); `7 l5 P8 Q5 W' c+ \( s9 A
- )
& ]; T6 A) G9 r" O2 h* Z/ g - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
4 T1 K/ ~3 L2 U6 y( d8 d - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
- h R2 q- k9 ?: {( X7 W* O3 I5 p - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
5 t# F" G2 y" M# i& ?2 @ - )2 t* K1 Q6 a9 H- C# ]0 j6 u
- (setq str2 (strcat tmpstr1 "..." tmpstr2))0 C9 N# n! {9 S9 P' j0 w& ~( n3 d
- ) ;;; progn
6 ]# E/ b9 Q: R; }8 H - (setq str2 (strcat tmpstr))
: O' ?' q# U. f: u' u1 p" h: r - ) ;;; if
& x5 D7 l- B' R+ b& m* m5 D \ - ) ;;; defun2 H( i" U6 [; Q# h: w
% e8 d8 f3 p' j R3 v8 J* }
( B# c7 I( k7 c% U; @- M$ J, D& h- ;;;
) a7 z' _7 A/ |' v! O - ;;; If the first object in a selection set has an attached URL
; A: B6 ?3 A: H+ Y! V5 x0 X - ;;; Then launch browser and point to the URL." O7 d4 Z# m% N! b0 O: n5 {
- ;;; Called by the Grips Cursor Menu) N6 v. `, Z3 S# X# m
- ;;;8 M. t u7 @5 I
$ m% y; ^" F2 A) [9 l ~- (defun C:gotourl ( / ssurl url i)4 I; l3 j0 D1 s9 J% _5 t
- (setq m:err *error* *error* *merrmsg* i 0): e5 Y j, h+ l* A" l6 b( p- t
- 8 D$ x& k$ |4 p' }* z: a' V6 {! [( O
- ; if some objects are not already pickfirst selected, $ H+ M: }% N' `& t0 T
- ; then allow objects to be selected
/ T ?# J5 ? I7 y1 n' G
/ X# U+ w4 ]% m6 C1 u' a1 g- (if (not (setq ssurl (ssget "_I"))) L! u1 o# \9 m C8 ?+ [ a& W
- (setq ssurl (ssget))
, w' v; c* v8 w* m - )
; I0 H' G# ~( q" `$ o( {
0 K4 i+ N N4 R3 r9 P- ; if geturl LISP command not found then load arx application
" X8 e$ V, U* P7 W. T - ) Z9 K- D6 j5 r0 B2 N8 p
- (if (/= (type geturl) 'EXRXSUBR)
6 k0 A9 K* U* q7 Z - (arxload "dwfout")3 L, ]8 `/ s2 @/ ^0 \6 g
- )! C+ K) W2 ^7 R+ n* e d
- & s0 P, D1 C& n
- ; Search list for first object with an URL
) Y- L. |: j7 ~& @" @ - (while (and (= url nil) (< i (sslength ssurl)))& s' H$ F }- D( o. E: L
- (setq url (geturl (ssname ssurl i))
9 Q! V/ h- U) |% @$ s* _" n/ I5 J: Z - i (1+ i))% |- L3 M5 V0 W) K6 G. g
- )% F+ S4 \$ K% _. v/ E/ b% y
- ( c* W9 ?" j8 J1 C6 B2 e% ^7 Z
- ; If an URL has be found, open browser and point to URL
+ {! G, Z6 \5 W4 j( ^ - (if (= url nil)) j# i D9 F, x. `! ]8 b7 j
- (alert "No Universal Resource Locator associated with the object.")
& F/ x0 x+ s2 x' v7 c# H - (command "_.browser" url)
/ t) K. o5 T% } - )
' s& u [2 I$ @( j - * X! u: U8 w- {' G+ [
- (setq *error* m:err m:err nil)
& t! O1 Q9 ]$ [/ m - (princ). G- b$ _( Y! c: w; N
' h. U# }. ]2 G3 H- )
* u4 ~$ X" d- I Y$ R: P4 M
' m* a* }! r0 N* V% T- ;; Used by the import dialog to silently load a 3ds file
: G8 c9 ~7 T7 P - (defun import3ds (filename / filedia_old render)
" U' R/ Z4 d. t% m8 S - ;; Load Render if not loaded% ]% ^% Q4 k' {! `2 X, B4 i4 }7 s. P
- (setq render (findfile "acRender.arx"))
9 P3 v+ }% U0 ^8 l - (if render" R/ m0 i' P3 K4 W9 B" _% E7 }, d, |
- (verify_arxapp_loaded render) . \' F% m9 U/ i" m
- (quit)
5 `0 |6 D6 b7 u2 a G N+ U" k - )
: A( d6 D$ o4 k% k - 2 ?6 D$ Z7 q1 t+ v8 D
- ;; Save current filedia & cmdecho setting. i' \1 u7 n/ a9 l( U
- (setq filedia-save (getvar "FILEDIA"))
& D% Z, P! a% a- ]0 j4 v+ s - (setq cmdecho-save (getvar "CMDECHO"))
( ^* I1 |; [8 Z6 n' D# R$ s) K& D - (setvar "FILEDIA" 0)
, k3 l% K) T$ ^5 L! X - (setvar "CMDECHO" 0)9 z" N% t4 F$ p& x+ T" g0 l
- 5 ~% D. b; z) l: \8 X
- ;; Call 3DSIN and pass in filename.
( a- O0 a/ l4 p6 Z p9 h$ B+ h - (c:3dsin 1 filename)% q8 z3 }6 j1 p( b3 [
- # J. g0 s4 j# M% q M1 `
- ;; Reset filedia & cmdecho
# x. ~) M9 x2 k. { - (setvar "FILEDIA" filedia-save)
2 v0 l2 `& K/ P7 @* b - (setvar "CMDECHO" cmdecho-save)# t8 u$ R/ X/ U2 b* R+ P- O9 \1 s
- (princ)# A* i9 n2 S9 G2 P/ k
- )
5 _" t8 x- A) ` - 8 v6 C# d! g# c9 h: E
" m2 M/ F2 u: S5 {- ;;;=== Menu Functions ======================================2 p$ D5 A' L) L' Y8 w# O" G/ \
- 8 P7 G! b V: A6 ]5 R8 M
- (defun ai_rootmenus ()
! V) m/ i! S* A L2 B7 _. J - (setq T_MENU 0)+ o D. s) z9 }# V- s% u2 f9 D
- (menucmd "S=S"); ]; k# ]7 K; M) G/ X: d' E( r+ U
- (menucmd "S=ACAD.S"). m, ?' o+ `3 T# @6 T" A
- (princ)# `9 W9 T$ k* L( Q, P0 B
- )
r I4 Y% T7 f - 5 ?! Z% V0 i0 Q/ O( _6 @ G
- (defun c:ai_fms ( / fmsa fmsb)
' A6 T- d) q/ Q; ?: l - (setq m:err *error* *error* *merr*)5 U! P, p$ F. v* l0 o
- (ai_undo_push)
& w+ h& x# ^2 e - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))3 Y' I# L4 z4 I, B
- (setq fmsa (vports) fmsb (nth 0 fmsa))
; d# F2 f! O0 o `2 [6 |( s1 Z' v - (if (member 1 fmsb)
8 ?2 F' ]5 j: [# c" `2 Y - (if (> (length fmsa) 1)% |/ _& M' _0 o7 e L& k' X6 @
- (command "_.mspace")
8 d& V, k/ ~* m% P% z( ^! M% b, k* @ - (progn
4 G" G, J# W- t, F9 e* V) G - (ai_sysvar '("cmdecho" . 1))5 A+ P8 ^. }4 z" h$ ]8 u
- (command "_.mview")
i/ @/ W; C# |# M' y7 j - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
7 r( u# v0 N3 x. F5 `+ j2 y- @7 K - (command pause)
8 I) b* u* T" T- L - )3 p2 N3 W# h6 U4 b/ \) z0 N
- (ai_sysvar NIL)8 l/ r( {; i8 e2 Y$ `1 n3 @
- (command "_.mspace")
; d# ?) k2 E m! V* G - )
2 u. z, V" s3 ^# {+ F! \! Y/ S1 g& I - )0 `" O3 I, Q N
- )
4 Y) e: r. y, w - (ai_undo_pop)
5 ?9 _: t' s5 e. S* y - (setq *error* m:err m:err nil)
, M2 M9 R* `! V! v5 N - (princ)
7 [3 Y% N* E8 E& H5 r - )- d4 c' C$ a r3 Q
- ( b' ?. E F& E* N3 V
- (defun ai_onoff (var)
( J0 p7 V" Y3 E7 u& g - (setvar var (abs (1- (getvar var))))" \5 `8 _" E# l1 l9 r
- (princ)
. F9 L# h3 R" l# m" f2 Q" m9 X# s$ W! \ - )5 l u# h8 T& o9 F
8 j- `4 v5 o* q, S; C: N( \- ;;; go to paper space1 p7 G6 n3 ], y" ^
- (defun c:ai_pspace ()
% `& `. p# P7 z7 R& x* W - (ai_undo_push)
2 X7 K. U6 E! c+ M5 a. H - (if (/= 0 (getvar "tilemode")) @ O) K( ]( |
- (command "_.tilemode" 0)
: c4 g7 X! D3 s+ r - )
4 ^7 g3 z3 W" I/ V, S% D) s' n4 P - (if (/= 1 (getvar "cvport")): f* y$ a2 e" m8 u: ]- x
- (command "_.pspace")
$ ~! {- b! k1 v9 \$ t- F - )
6 y, q. a' h4 v7 ?/ J5 k - (ai_undo_pop)
0 \( Y' `. @: Q0 @% ^$ w& G5 M6 B( Q - (princ)
3 F! t+ C. w: Q. u( u - )
% [8 q2 d' ^- N/ W( D* f8 g, o
8 T! z: \0 l2 y; c- P! R- ;;; go to tilemode 1
( ~$ T$ P( p: p( j7 @2 B% X! J - (defun c:ai_tilemode1 ()
+ a6 m+ a, F: Q0 J4 j - (ai_undo_push)
5 v2 E* i; r3 E( w) e# K: ` - (if (/= 1 (getvar "tilemode"))
! n" n0 \" f* Q) I9 t: L - (command "_.tilemode" 1)( N# c- k) ~8 q4 Y8 a" J
- )
( w; a+ j2 T9 X. ? - (ai_undo_pop): |& X- w$ M$ g4 Z; T1 @* H+ o; m9 I
- (princ)! @! ~! X( F R/ j
- )+ E$ d6 d) x, E. \
- 9 a' u, _- `; |. w$ w4 m3 M
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered! }% P+ H) e5 T0 K0 w2 s( W
- ;;; Toolbar Dimensions/ Align Text/ Centered; S' X) F9 E& }, K
0 {" x. K2 R, R# f, h. O; }- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)8 a a+ I2 P' U; ]1 ^" J" m
- (setq ai_sysvar (getvar "cmdecho"))' q, b* {3 U4 [/ I9 ?
- (setvar "cmdecho" 0)
; k7 ]# i( Y- u( }' U6 z - (cond
- o9 u' W! G. g; y9 d2 ?2 |7 S( F - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION")))) n; L7 w: ?* x+ e# h
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" 1 l6 }6 `5 d8 T3 ]
- "_.dimtedit" ai_dim_ss "_h"), O9 q+ _9 Q1 `2 F
- ): B$ q* n: Z2 k1 O( l
- (T nil); ^ g6 f) A' ^8 w4 \2 s Q
- )% u4 R; \$ k! F6 }1 P6 Q8 \
- (setvar "cmdecho" ai_sysvar)
4 Z& o5 t% ?/ F$ f, X - (princ)
4 P8 |1 ], H0 G/ c+ E. y f& p - )
9 ]( u- v) J# l* q - : Y. {6 d; n! S7 o- `) l
- ;;; Shortcut menu for Dimension Text Above 3 @: N( F ?9 g! l: u J
/ P4 [) a: _3 Z- (defun c:ai_dim_textabove (/ ss)" Y8 @( }: A- _# T) ~
- (ai_sysvar '("cmdecho" . 0))* l( z/ O# V* l+ p, e" A
- (if (setq ss (ssget "_I"))+ |% g" l7 U$ Q& n( B3 ^6 _8 W% i$ h
- (command "_.dimoverride" "_dimtad" 3 "" ss "")9 Y# }* O# N5 l& Y$ R* c
- (if (setq ss (ssget))
: `: u$ E8 v7 x: p' o" o - (command "_.dimoverride" "_dimtad" 3 "" ss "") 9 W; Z4 i z) y, e
- )
" `$ s$ _6 e3 M - )3 }2 |' b K4 i% d! L
- (ai_sysvar NIL)8 |1 P) T& c' P" w2 T4 E
- (princ)& p* @2 C4 y, w+ y# q& Q
- )8 Y% [1 ~( m' T$ {9 O0 E
8 g4 Y$ D+ o) F: j9 ^4 X- ;;; Shortcut menu for Dimension Text Center , C1 w& g: z* p2 p/ \0 B6 M; E
# e: N h8 X2 G, z% a0 c1 B- (defun c:ai_dim_textcenter (/ ss)2 o( m D6 ]# d" t
- (ai_sysvar '("cmdecho" . 0))4 w6 \6 F5 w2 ]. I* p
- (if (setq ss (ssget "_I")): o; v2 y/ a' g$ t. g( R. L
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
2 p7 d/ O. i, r7 M* @4 }8 B - (if (setq ss (ssget))
8 a2 b; b1 M: P* ?" k - (command "_.dimoverride" "_dimtad" 0 "" ss "") , G6 E% ~8 f/ w w
- )" ]4 c6 d* s+ s( n. |, H3 |
- )
, N; o: w; k% Z$ i" h* V - (ai_sysvar NIL) C, x0 r, V. e1 k
- (princ)
4 z$ B! C" b" n& r) C0 x) V - )
( p/ L) C( E# G2 b7 c6 B: ^7 }( v) Y
5 `8 e/ N- \& `! |- ;;; Shortcut menu for Dimension Text Home ' Q0 w& u9 Z2 |, B8 G
- 2 H8 [" b9 T- U5 u
- (defun c:ai_dim_texthome (/ ss)
0 d* E- L7 y- M! k! C9 E - (ai_sysvar '("cmdecho" . 0))" h# p! @8 q9 [4 G
- (if (setq ss (ssget "_I"))) C/ W5 c2 n) n. k3 u
- (command "_.dimedit" "_h")
7 _$ A; Q4 B- p) V) o+ D, c - (if (setq ss (ssget))
: l9 p2 r& g) x5 @3 B) o+ M8 Y - (command "_.dimedit" "_h" ss)
9 o. E" H0 P* G3 ^, s. L' G+ k - )) B5 c, r; K6 F2 A0 N
- )
0 o) Y7 p! q* s# m) ~& e' f - (ai_sysvar NIL)/ M* V9 n7 D8 x) a+ G
- (princ)
. {/ H9 t/ p& S; p - )" Y, w. C; E7 J
- " f/ \: @& p2 j" K2 V0 j2 ?. e
- 3 R$ {! `9 I/ k) g7 h1 O# \! i
- ;;; Screen menu item for CIRCLE TaTaTan option.) ~- W8 [: f% k3 I; C& t; T6 H
- ;;; first, get points on entities5 b3 [$ U; K& f. Z
- (defun ai_circtanstart(). Q$ k; E) a) U. Y* D
- (setq m:err *error* *error* *merr*)
! l5 \7 k$ b+ ^2 P& e" R% L9 { - (ai_sysvar
/ Q. e8 ]0 E4 f, [+ _8 D - (list '("cmdecho" . 0). {. _! |$ Y" E
- ;; make sure _tan pick for CIRCLE gets same entity
+ N. V7 D- C' l2 J9 D* _( a0 j - (cons "aperture" (getvar "pickbox"))8 X1 Y7 j1 }3 C1 r
- )4 g R2 E6 j$ s' C
- )4 c, ]; O& U2 K4 T+ ^1 z4 x3 D
- ;; prompts are the same as CIRCLE/TTR command option
# j$ W @: G- c$ U - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))' {1 J2 R8 l) {2 z; i' w: ~1 [4 M
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
. w; w x3 x3 o$ c5 O6 l - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
a) k L2 g' W1 B- ?# x6 C# u - )
# D E& S0 h8 \( K; u' l8 ? - ;;; Command-line version
8 z# `' S1 c- O+ _, ^ - (defun c:ai_circtan (/ pt1 pt2 pt3); s+ x' F) f( ]3 v
- (ai_circtanstart)
, i' ?# P9 m% ?* Y7 W/ ~
/ N% a8 Z, I3 t! h- (ai_sysvar '("osmode" . 256))
2 w9 N; E x" Q( s) s/ y+ N - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
% z" P# ?& W! A. v% } - ( r X+ F2 ?# q) I0 D7 [
- (ai_sysvar nil)
) n! ^, @& F, m8 k3 k7 @- t1 _' h; o - (setq *error* m:err m:err nil)2 E+ y% k, Y( `
- (princ)
, ]# n& Z+ w& h5 |7 Q - )5 @0 f6 i. m9 r5 S+ n
- ;;; Use this if CMDNAMES == CIRCLE* s; h6 I7 B& ?8 p! H! r! ^
- (defun ai_circtan (/ pt1 pt2 pt3)1 r- Z2 k3 W/ f6 Q- [1 d$ ^+ l0 J4 ]$ S
- (ai_circtanstart)
5 r% h6 {, Y) v
4 L- t% e0 P4 W U$ a- }! d; ?# d4 c; e- (ai_sysvar '("osmode" . 256))
) q7 I! j! Z( I l) C - (command "_3p" pt1 pt2 pt3)& ^; N( o' D# z( K. u1 P9 R
-
! {% A& [1 ?% v9 B - (ai_sysvar nil)' y! `5 I) [8 Q K3 y0 Y3 g/ C6 h
- (setq *error* m:err m:err nil)
( G) x* D8 c- ]8 }) \+ i2 y - (princ)
, O; C; B: G$ V! E - )1 @6 X6 ~7 X/ D( l- Q+ f* X
, Q" E, b9 H9 ?. S: X8 g2 X' Y
/ h3 @1 C$ E$ v. `$ L8 y2 n- - Z! b) ]1 H5 x. y# B. R
- ;;; Shortcut menu Deselect All item.) J4 c+ G, c" F. w& t- N/ ?) e
+ j9 [4 F% j: E# ?0 V- (defun ai_deselect (): S0 t+ C. X& m+ Z" O
- (if (= (getvar "cmdecho") 0) ;start if: |( r/ x- c& s- B7 q% B) n
- (command "_.select" "_r" "_all" "")
& v/ M. _. z1 e) s - (progn ;start progn for cmdecho 1) i$ n' W3 J% }3 s" X
- (setvar "cmdecho" 0)7 { t" ` q; S% J
- (command "_.select" "_r" "_all" "")
9 P8 M0 q$ C6 N4 k- x) R9 H8 N - (setvar "cmdecho" 1)
: K8 ]$ q/ j/ O' N7 y - ) ;end progn for cmdecho 1
6 I8 }3 V! p' F# x+ C2 e+ P - ) ;end if
; ~4 s( Z# x+ k) o; _ - (terpri)
0 O' D! J( H9 R' g7 X - (prompt "Everything has been deselected")
5 Y5 m' r7 l! ^# O - (princ)
& e) ]# f# b D, t - )
1 J7 V; R) @+ D' _6 y0 y
$ T U0 c+ {3 [- ;;; Command version of ai_deselect to be called from the CUI
1 S* V0 v4 M% ]3 @2 i - ;;; so it gets properly recorded by the Action Recorder/ K/ H/ Q# ]- [! w1 p
- ;;;
: L. n5 W9 C5 L9 k% E: u ? - (defun c:ai_deselect ()1 l8 I* {5 v5 e2 [ p' r0 q$ `- y
- (ai_deselect)
( v" h# B+ i+ m0 {6 ?/ o* X - (princ)( S; w3 j1 ^2 h; K9 ~( A1 n1 t
- )
% ]4 A$ D* z1 V& t% b. s
! R2 V* S% Z; v) U2 K* J- ;;;. E4 C0 e% Z# l
- ;;; Enable Draworder to be called from a menu
) {5 I+ {( k" Z - ;;; Checks for Pickfirst selected objects! o4 Y: C$ A2 h' J% U2 h ^2 t
- ;;;
: i) {" `( T' ?# X I
7 F# \4 I$ T$ e- (defun ai_draworder (option / ss )
- ^ K% M$ w, N; ?
) Z( k4 {" o8 w( t- N5 t- (setq m:err *error* *error* *merr*)
. G" T" |! k$ K0 e M1 A9 s. B - (ai_sysvar '("cmdecho" . 0)); M8 J' i, j d# C
- 7 {3 Q; g# {3 v5 L
- (if (setq ss (ssget "_I"))
; L- O1 L/ b" o) ^- o' | - (command "_.draworder" option)9 B; @' G8 p! f# q$ S! M
- (if (setq ss (ssget))$ H. _# v) H5 A1 `+ n7 m- S* v& M
- (command "_.draworder" ss "" option)
: W; [; Q1 S3 N% t k - )
; d) Q* U z& l0 n z2 E* L; [ - )7 P" ]; `# L2 T3 X, o( T; G: x
- (ai_sysvar NIL)1 i& f6 \& z+ ~6 s( h$ A7 C& A
- (setq *error* m:err m:err nil)
" w+ H7 K" n6 U( p8 Q2 U) i! s
& ?" o# k( U7 w. d- (princ)3 }0 C+ W9 }, ]. b3 M1 }! S$ E
- )3 a+ {4 T2 s5 h0 `: I
3 B7 w8 f) V; h* K! L9 }1 u6 h8 ?- ;;; Command version of ai_draworder to be called from the CUI
; B' E. O' r) t8 j2 S8 u; F - ;;; so it gets properly recorded by the Action Recorder, k" l) F: _5 H( l% l
- ;;;! D: \, N6 r/ I6 L
- (defun c:ai_draworder ()
0 [, n! c* b! D3 B7 B2 M2 F - (initget "Above Under Front Back")
) \, f9 p" i0 x; l/ W0 D9 ? - (ai_draworder (strcat "_" (getkword)))
) B# I+ P2 c# h# v$ } - (princ)
, m1 F! u% Q2 {+ p# R) j0 Y - )
2 r9 ?4 Y! E/ c6 }2 @$ `$ o - & S8 V4 a- q8 K+ F% r0 U5 N
- (defun c:vlisp ()" q' u1 u, U- G/ z2 u) u! R' ^; a
- (if (/= nil c:vlide) (c:vlide))
3 H1 i' r& f3 [( S) j6 I - )% t% Q3 q9 [* D: }) m
- 2 _+ d, L' g, q" j1 {
- (princ "loaded.")
9 c) P5 D5 H5 v; h( C/ P1 U' n - / h* Q' F) f. o9 \: k' p& {
- ;; Silent load.$ _2 t3 B j2 E9 t. c% M
- (princ); M4 N; e: h9 d& ?
5 ?+ D. F! _; \/ [/ F6 X- ;;;----------------------------------------------------------------------------5 {$ L% Z* k# a* Y
- ;;;
Z! G* m1 @& M9 T: t* p - ;;; DDCHPROP.LSP Version 0.5
3 j$ Z3 p8 G* _# ?6 U& f - ;;;
2 W! E: U* }8 [3 c$ i% j. K - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.' Z2 a" k1 Y/ B. g. ]' q" u
- ;;;
3 P1 F# @& s! P1 H' S - ;;; Permission to use, copy, modify, and distribute this software
1 F' M8 z. }0 f% S! { - ;;; for any purpose and without fee is hereby granted, provided2 w0 u) c; r4 \8 W
- ;;; that the above copyright notice appears in all copies and that" I* D9 l/ }3 e" n+ Q
- ;;; both that copyright notice and this permission notice appear in( ?. @3 h) Y! e& i4 {
- ;;; all supporting documentation.
7 b' g6 p7 J$ n# u! A: y# W9 _ - ;;;8 T& k A( z$ o8 m5 O0 L
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
w, R7 `4 h4 v) g - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
. ^' ^0 k# y" G; d% T' f3 T - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
) K' `+ A k. G/ K - ;;;! S( B. F$ c) R+ l% p) b" F8 ^
- ;;; 2 February 19925 x1 w' W" I5 e6 a3 @4 b" [5 x
- ;;; $ g/ W+ m' o* w; Y5 M8 G
- ;;;----------------------------------------------------------------------------
1 E) |6 n: T7 l: z" G) n9 p7 p - ;;; DESCRIPTION. K; E% ?% {' j, K' ^
- ;;;----------------------------------------------------------------------------
2 [5 @( G! _; c1 r: Z, Y - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.% i7 B7 n) c- b7 I) C2 P
- ;;;
3 P3 p; J* D2 A r - ;;; The command looks similar to DDEMODES. The main dialogue has an image 5 K6 C- |) K3 J! A7 J# m
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
% O0 ? a/ w) J0 f4 k - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. : Z: M) s! U( `+ j' g0 [; h
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.- T- v1 b6 ?! H ~) z; c) b
- ;;;
& ]; }4 G* d# M8 R* }# \4 w1 u - ;;;
/ f5 L& U/ P ^: f* s - ;;;----------------------------------------------------------------------------' L3 h' M) ~8 V: I& W p# u
- ;;;----------------------------------------------------------------------------
8 O/ t; e* x# {1 t4 B4 v - ;;; Prefixes in command and keyword strings:
- O$ ?& N: a, z! Y2 o - ;;; "." specifies the built-in AutoCAD command in case it has been
7 G; ^- G3 m1 S# Q/ k - ;;; redefined. d% S5 f- {0 B8 E x
- ;;; "_" denotes an AutoCAD command or keyword in the native language! H4 H' a/ B" z9 B6 V
- ;;; version, English.& C3 [3 E/ f' |9 o
- ;;;----------------------------------------------------------------------------
9 b9 L' F1 y' l% N4 I* W' w - ;;;. h. }1 i1 E; F5 |
- ;;; ~/ Z9 J& ?' v
- ;;; ===========================================================================
- l. p$ I( E0 K6 r - ;;; ===================== load-time error checking ============================* x6 U5 s) K& q1 U @" q' V
- ;;;# e+ k1 |# \3 L: D/ Y& r
- ) `1 [- t4 a/ g' _. P
- (defun ai_abort (app msg)
, O' J( n w4 E# g4 R# f - (defun *error* (s) Z; k, s# c+ t
- (if old_error (setq *error* old_error))
\; ?+ ]5 X! n - (princ)
' j. P9 P' M+ \$ J3 m# r - )6 }& n2 x5 v8 ]; S8 I
- (if msg8 p! ]( M+ E/ ]
- (alert (strcat " Application error: "
i) l- a* @+ E - app. e$ z p, J4 Y
- " \n\n "/ @ d8 _9 D6 e7 M# ?( E
- msg; w4 |# f/ c+ O( k
- " \n"
& L5 P8 u! ?4 q8 [# J! L6 b - )
S7 X/ w$ c; [" I' X! } - )
$ W* y6 c- z/ c* R - )
- g- U2 ]3 l! [% o* I# b - (exit)
' e$ B( @: }& [( u; K - )
& J+ H/ g1 n4 `! ~% b7 l - 0 P' J6 e* W5 w) H8 B; r
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
k2 B" X7 n4 V* \2 y - ;;; and then try to load it.
8 o& | x! W. D8 r1 C( }- Z8 @ - ;;;
8 ?6 K% o& I* x0 Q - ;;; If it can't be found or it can't be loaded, then abort the
2 ^- s# c; E& ^ b2 S. h - ;;; loading of this file immediately, preserving the (autoload); F1 X6 B4 d6 H1 i
- ;;; stub function.- }+ l+ D: s9 M! V
8 E+ B5 X1 R. x5 s. [- (cond m$ p7 Q( W7 c! w
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
) T7 o' q% | h+ B$ p: e( h& Y! P
- V7 B5 k2 T" T* ?/ e- ( (not (findfile "ai_utils.lsp")) ; find it J& A4 y7 d0 j R. A6 @
- (ai_abort "DDCHPROP"9 [& E* A4 ^) O% P5 ]4 ~4 v
- (strcat "Can't locate file AI_UTILS.LSP."
; T( Q7 B+ G( q% [ O+ ]9 ]1 a - "\n Check support directory.")))
7 e' V" f. ?3 W' t+ Z
d2 Z$ i* B, ^1 _& S5 J, R3 Q- ( (eq "failed" (load "ai_utils" "failed")) ; load it
+ z7 F) t; |2 m% Q - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))8 i' i' p8 ]- I2 n! v# r, _4 O
- )3 V3 N9 U: E8 [2 f0 Q5 _3 e+ r: k
+ Y# E5 A4 F" G5 {- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
; F9 ]8 n$ b+ w: [4 y( A% L4 n - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses3 m) `7 H4 S/ G/ r
- ) ; ai_abort's alert box dialog.' m* x2 @6 k9 ?; R' v; L
- # m* c& k% }$ i( {- `3 H$ n
- ;;; ==================== end load-time operations ===========================
1 W# P& S* p) E
8 i4 z& ~) R! ~6 e6 t) v/ U- ;;; Initialize program subroutines and variables.# n% _& j, v" F$ ?
, f# ]- x8 G; p3 O' W2 Y- (defun ddchprop_init ()# J' K7 M) W# _
- # d/ y- h7 P2 h: ~7 x' W0 g* {2 g
- ;;# R! w1 W I3 f# r5 X
- ;; Define buttons and set values in CHPROP dialogue box
' X9 w& Q6 |. @" ]5 @4 L6 K - ;;
7 e3 p( n% p; b0 f" t9 v7 _# e - (defun call_chp ()& B2 ?5 [2 G0 B& k
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))8 B. V l- a" k3 B0 M+ C
- (set_tile "error" "")
6 P* d( z6 i- b1 _. I - ;; Set initial dialogue tile values5 g% S+ A9 k8 m- o( J' `# b. G
- (set_col_tile)1 ^% ^9 f4 ^- J" \7 O% p: r: k
- (if (= lay-idx nil)5 H9 [$ y+ @$ _% |+ s/ o
- (set_tile "t_layer" "Varies")
4 b0 x5 ^- }; k* b1 f- g - (set_tile "t_layer" (nth lay-idx laynmlst))
: h. m; T6 N: _' E) p - )
' q9 Z8 y, h0 n2 u7 V6 p9 m - (cond 5 |8 |: \/ d) W- n! _$ R
- ((= lt-idx nil)
0 r$ F2 O% e' H" e: C) G5 X6 i+ Y$ s& D - (set_tile "t_ltype" "Varies")( d- K" k& F* [% i: r" n' Z+ @
- )
$ c- C) k! N, A+ E( J; ^ T3 _ - ((= lt-idx 0) ; set tile "By layer & layer linetype" N/ E& _( ]. q' q: q/ i. v& g
- (set_tile "t_ltype" (bylayer_lt))
0 n$ r% U, ]2 ^! t& w) f - )
8 b4 n! _ p/ g, d1 ^- N - (T
# _% x. k' D) O0 R8 a5 z0 k* M - (set_tile "t_ltype" (nth lt-idx ltnmlst))
" u' w) u3 n, N4 \1 E7 z5 P: V4 F9 I - )
. A" ]1 X& S. _. A" j; N - )& J/ x2 |, K9 w5 i
- (if (or (= ethickness nil) (= ethickness "Varies"))7 @( e L3 h4 [5 `: I7 _# A: Y9 {
- (set_tile "eb_thickness" "Varies")
/ P- i @2 w- w+ G2 a q+ y; r2 Q - (set_tile "eb_thickness" (rtos ethickness))
- I# q$ F7 l- l; j$ R6 r$ | - )- v- o+ z1 l! @( T+ s% `1 ?" ~
- ;; Define action for tiles3 [- g m) g, s, I2 \: m
- (action_tile "b_color" "(setq ecolor (getcolor))")* I" O, h" n+ n7 U+ ?
- (action_tile "show_image" "(setq ecolor (getcolor))")0 s1 F) E" w% ~# i) b9 N3 j K
- (action_tile "b_name" "(setq elayer (getlayer))")
. q2 R$ L- O9 i- U" K6 z* } - (action_tile "b_line" "(setq eltype (getltype))")
/ e6 C; Q( C+ c, J - (action_tile "eb_thickness" "(getthickness $value)")
4 M3 `: T! E& [2 T - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")"). ?0 a8 F6 ~# Q8 L
- (action_tile "accept" "(test-ok)") D. I0 S b0 W' l- D# A( [
- (if (= (start_dialog) 1)0 K& V) e! J* H2 b! J* f6 [5 B
- (progn
, T( ~6 _) b5 t0 F" c. q1 E - (command "_.chprop" ss ""), q# X& B$ J8 m: u
- (if ecolor. X, _' V6 d$ A4 S% P& W$ T
- (progn% o, L9 E3 u! b, n. p8 ~
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
2 x8 k2 F( e" f3 p+ x - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
' h4 f/ `, {( E0 x' x% o2 _3 N4 ] - (command "_c" ecolor)6 {+ n1 m( H' |* \' L6 ^
- )
S" B) _* @0 R$ \' F; ~ - )
8 P6 w2 A$ Y9 x9 { - (if (and (/= eltype "Varies") lt-idx)
: m( d# t9 K& ?, {& k# H; y - (command "_lt" eltype)
/ F4 j5 b% C0 E9 [! b; ? - )
5 O( \$ i7 b! `. T6 U - (if (and (/= elayer "Varies") lay-idx)
/ d- {7 \3 D5 t, u& P6 d - (command "_la" elayer)
; N' z% [) w5 B# [ - )9 |" a8 }: g5 C5 K# Y7 [! [
- (if (and (/= ethickness "Varies") ethickness)9 P, G, c g- U, P& L
- (command "_t" ethickness)
9 V' |; ~0 _+ j) n9 b - )
- X1 G% q; Z1 I9 v1 j - (command "")
& u/ @# H" e5 ~ ]+ ^ - ); K0 W2 M3 E9 p2 s! i; n
- (princ "\nProperties unchanged")4 Q) o: M; h+ N5 s0 ?
- )
1 ~8 {+ e4 A6 `1 E& q - (princ)
! S1 R/ k1 g, D1 ?! `' C0 v8 P" K: ` - )
# I B6 A0 @- s# J1 t; M4 m# C6 Z - ;;+ Q* e: g, i9 @" w. _2 V2 P
- ;; Function to set the Color text tile and swab to the current color value.
0 U: m0 e: u) Y& e; F: } - ;;
) P! v$ ?% @- K( D" S! u' J$ c0 I - (defun set_col_tile()% s2 g+ @5 a) v/ m \$ D% w
- (cond , S5 J! {+ W7 F: ~9 i; }" a
- ((= ecolor nil) R, ~) g0 D9 Q* D0 B
- (set_tile "t_color" "Varies")
6 g, p3 d1 R* n - (col_tile "show_image" 0 nil)% \' y3 o2 _' N& _/ p8 O2 v9 f7 A
- )! c9 B) j, U7 d5 }9 R. h0 O) N3 w) n3 ^
- ((= ecolor 0). X% l/ \5 d* n6 Q& W# `4 Z
- (set_tile "t_color" "BYBLOCK")
: ?2 u X6 p5 L/ {8 Q - (col_tile "show_image" 0 nil)0 x/ m+ ^4 ]% N+ L' k
- )" f6 N! K% s- ?2 n) V( T
- ((= ecolor 1)
- R& k3 q( G0 c6 N - (set_tile "t_color" "1 red")8 ?1 O( W* ?% u7 n4 M# }1 @
- (col_tile "show_image" 1 nil)7 [6 @/ V4 X$ I' d; @* f
- )& @, Y* G7 K% J& h
- ((= ecolor 2)
W+ h8 C' ~# M9 A1 u0 c4 P - (set_tile "t_color" "2 yellow")" S. V# R& m: w) A
- (col_tile "show_image" 2 nil)$ g/ A% C1 K$ i# g3 N
- )
O& \/ s- I: }: P/ y - ((= ecolor 3)
7 Y4 N" d9 E9 Y" Z - (set_tile "t_color" "3 green")
& @$ N$ A5 j" F$ m- I0 u! M4 M) ~ - (col_tile "show_image" 3 nil)
% I; W8 P- q9 Y - )% _6 u; T" A, D8 \
- ((= ecolor 4)
* J, |( L4 C Z: w - (set_tile "t_color" "4 cyan")
* u+ L* L( G% d4 v" \2 L - (col_tile "show_image" 4 nil)+ C* p' N" Q. o, h5 Q
- )
7 N0 w8 K! K' R q' D+ G - ((= ecolor 5)
* f7 P) G9 z$ p* v - (set_tile "t_color" "5 blue") Y* Q# p1 S8 }! T, F- e
- (col_tile "show_image" 5 nil)
- j4 A4 i8 V6 s# U& { - )
, f( }* j J& ?6 `& i( Q7 W - ((= ecolor 6)
- O4 ^) K) [' Q- }# a, A - (set_tile "t_color" "6 magenta")8 C, W* E Z& f8 T
- (col_tile "show_image" 6 nil)6 @2 i) N. V" o( P; \5 |
- )3 D6 X# W; w- s
- ((= ecolor 7)
$ \' W! G- b: C9 {' R \' q - (set_tile "t_color" "7 white") U5 c8 R( c# q; s2 `" J4 i5 R" p2 ?
- (col_tile "show_image" 7 nil)4 m5 E1 Z" ]3 A8 W8 ^( N7 `" U6 d
- )
/ E% n. h3 b' X) X H - ;; If the color is "BYLAYER", then set the tile to
+ Y4 ?, `4 k1 d( r- Q0 y3 i - ;; show it's set By layer, but also indicate the9 J# K4 Q9 F5 N/ ~" D5 A2 `/ N
- ;; color of the layer - i.e. By layer (red), L" t8 m/ O; J8 A; l
- ((= ecolor 256)- g3 V n& N: Y; `
- (set_tile "t_color" (bylayer_col)), k' H8 M+ c2 T0 l) V! g- w6 A
- (col_tile "show_image" cn nil)
7 d, O/ H8 f* e3 F* f6 p - )
5 C8 H1 A, u5 R+ Y" Q5 C - (T
( B4 g* R$ s. J - (set_tile "t_color" (itoa ecolor))
- K) u9 Z( `7 l - (col_tile "show_image" ecolor nil)
( ~* c- N' c0 b# `* ^8 t - )7 z, Z- O4 e E: R
- )9 m: R9 a) ?/ N1 w' j2 X1 f7 D! G
- )
; l+ ^! m) v4 _5 K* N. D - ;;
. l2 |4 u6 m& y- r" @4 N - ;; Function to put up the standard color dialogue.
. Y2 t+ p) {/ f& b" Z6 U, V - ;;) ]5 U6 Z2 U: \" l% x2 k; O
- (defun getcolor(/ col_def lay_clr temp_color)
" q4 d0 p2 ^3 b - ;; col_def is the default color used when rq_color is called. If ecolor 3 y. k( G4 I( {+ I: O
- ;; is nil (varies) then set it to 1, else use the value of ecolor.6 a* k" N4 T' h4 R# I5 f3 @% k
- (if ecolor
+ S% |" P. j3 P - (setq col_def ecolor)
9 ~7 K7 }4 R' z; M; v - (setq col_def 1): \1 l+ h3 m' k0 P& S6 t' m
- )( U- `5 g7 o: ~( m
-
8 ~, ?/ c( w3 w7 s6 @% Z9 v: q/ H - ;; If we're working with a single layer, get its color
6 i% k. B! m/ K7 U3 ~- @: C1 @ - ;; for use in the color swatch if the user selects color BYLAYER.. o$ I% @, w% D o% A3 U
- (if (/= elayer "Varies")* t" b3 J N& X
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))0 k- w# z9 K% E7 S
- (setq lay_clr 0)
. u0 @0 G* `. E$ o: \! Y - )% [. a, @. T* f7 x2 S6 j
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))- v j* ]" E: ?7 z
- (progn
0 n2 F* p+ O( k" w7 q7 L& ] W - (setq ecolor temp_color)
; z% ~ d8 a7 f) Z! p% y1 D - (set_col_tile)
- j" c& `) X# x- e; v! D - ecolor
/ `5 V2 m% w) N( O8 N - )
s6 M+ b3 R2 b4 | - ecolor
8 V R" u" N" o. y - )
0 j2 J% `9 O5 X7 m/ p5 C - ): @1 [% z3 m* i4 \: r
- ;;2 q6 h; Y$ E6 W8 Y6 ?
- ;; This function pops a dialogue box consisting of a list box, image tile,
, F& \& L* M$ g1 t - ;; and edit box to allow the user to select or type a linetype. It returns 0 J# a; P1 I8 t \# n& i
- ;; the linetype selected.
* W/ Y; c# o2 V. d7 ` - ;;) A' h7 m( S+ O1 d' w
- (defun getltype (/ old-idx ltname)' i8 T: ?0 M5 F H9 ]! x
- ;; Initialize a dialogue from dialogue file
- e4 A. O* P! P* Z7 u9 ? ~5 m - (if (not (new_dialog "setltype" dcl_id)) (exit))
3 {* H3 w' U6 W - (start_list "list_lt"), J {" [! ~' U( q0 y* `$ D
- (mapcar 'add_list ltnmlst) ; initialize list box) P. \" n' |; r r K4 Q
- (end_list)
- f9 d' z9 Z& X3 \# G3 [ - (setq old-idx lt-idx)/ y; I4 `; b1 J
- ;; Show initial ltype in image tile, list box, and edit box
9 j. L5 I) W# c* @ - (if (/= lt-idx nil)
* _- D& s2 q5 ` - (ltlist_act (itoa lt-idx)); }9 Y4 D' x5 [' m7 b
- (progn/ I8 e8 J3 ~, d5 A( N
- (set_tile "edit_lt" "Varies"). ?0 g0 U0 f1 s' i
- (col_tile "show_image" 0 nil)
# b6 P( s' y& j. S! a6 x& }- W - )- ?# f4 v7 s, q& g/ s( q6 T7 Z* ^& s- o
- )
G; [# r9 Y/ h% k6 A - (action_tile "list_lt" "(ltlist_act $value)")
+ G& f( X! a/ \ - (action_tile "edit_lt" "(ltedit_act $value)")
6 J6 W' s) ~+ [/ F2 u4 V5 l - (action_tile "accept" "(test-ok)")
# |6 k8 x# ~8 `0 t: q( | - (action_tile "cancel" "(reset-lt)")6 W* P& w% q4 k- I
- (if (= (start_dialog) 1) ; User pressed OK- T- m. Q5 r! Z h D: B
- (cond
& y1 `. x% b& }8 M: i - ((= lt-idx nil)3 u" v- h1 H1 F% {/ R5 C5 }1 N" Z
- (set_tile "t_ltype" "Varies")0 N5 ?' C, T. G& K/ ]1 B$ n0 ^. S
- "Varies"
% P$ F, V; G% T2 [9 X$ y - )
& s3 A7 f+ X# }+ ~ e - ((= lt-idx 0)
4 z% I; k2 ?3 j4 S - (set_tile "t_ltype" (bylayer_lt))
& d M/ @+ y* S8 n1 S C# F: v/ _ - "BYLAYER"' G8 ?- }% ?3 ^+ V) ^! }
- ) }& k5 J# J9 }: O! q& ^
- ((= lt-idx 1)/ Y2 Y+ E# Z0 R9 c/ @
- (set_tile "t_ltype" "BYBLOCK")6 w! A, ], H: t* l( A1 _+ I
- "BYBLOCK"
# w1 @6 S# w. M9 ^ - )
6 A! t0 ]' u f& f5 c" t - (T
1 E% n+ { H4 u0 x' |( Y1 ^. J - (set_tile "t_ltype" ltname)
& w, b# {! Z B - ltname
. ?- }8 f7 X P8 T) ~ - )
: u- V0 T$ f6 l# |# p9 F8 ] - )
9 b/ g/ j. O( ~4 m; }3 Z - eltype3 h6 L3 \4 c6 s- q/ Z
- )% F+ F ^$ X$ _3 `
- )
4 x0 ~" {6 x2 Q# ^ - ;;2 w9 c% w5 }/ R5 Z
- ;; Edit box entries end up here
1 j0 k; V" _2 q5 ?! v) X- r. Q - ;;
: k! {) A B) i- U/ ~; ` - (defun ltedit_act (ltvalue)
G3 u5 K! r3 G$ |7 } - ;; If linetype name,is valid, then clear error string, - i9 A# C8 K5 |$ w3 R
- ;; call ltlist_act function, and change focus to list box.$ T' t% n9 ]3 ^6 P' x
- ;; Else print error message.# c+ u% w, v. ~) ?5 y
- (setq ltvalue (strcase ltvalue))
' M+ l, P- E' y* ^! R; ? - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))) J6 @/ O2 S/ D( |
- (setq ltvalue "BYLAYER")
7 f# { l2 E* b) Q9 ]! l - )* y- @$ n; r1 V0 h2 P8 @5 G
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))* y7 X" A# W' m7 l2 T) k
- (setq ltvalue "BYBLOCK"); W; e" }2 v& @2 f
- )
( h% w6 U; t" o- I$ u' C1 S! S$ ^ - (if (setq lt-idx (getindex ltvalue ltnmlst))) j& }- }" f. b" v
- (progn
# ?2 T# m, S5 p: D. ` - (set_tile "error" "")
a! t: v8 ? n- A - (ltlist_act (itoa lt-idx))0 _8 H3 h4 i. ^4 y/ ?0 c
- (mode_tile "list_lt" 2): w& @" I% Q) O& d7 f1 t9 _
- ): q! r, T& ~: u& Z
- (progn5 `" D2 m: I$ w+ O4 C B; F3 X
- (if (/= ltvalue "VARIES")6 z/ T9 m" _8 c
- (set_tile "error" "Invalid linetype.")
1 F! w' z$ O' z$ t - )! |5 E: |9 @3 Y9 ?+ e2 L; I
- (setq lt-idx old-idx)
$ u; K3 Z. T+ a# d9 U9 i. L - )
( {5 Z% |2 V* g7 X; A4 O - )
4 K% e# ?5 F5 U/ E: B4 } - )8 ]' L$ K5 P6 U3 a
- ;;
, L# F |) S3 h/ p - ;; List selections end up here
O8 r1 d4 {2 y, p6 w" W: n - ;;
. P: T/ @; ^8 }9 N - (defun ltlist_act (index / dashdata)1 v1 }3 `3 y; W2 J
- ;; Update the list box, edit box, and color tile9 r6 `! \, C0 K3 @# C
- (set_tile "error" "")
7 j: m0 e7 P+ v( h/ R* S& S C - (setq lt-idx (atoi index))
" u6 B L* E) B - (setq ltname (nth lt-idx ltnmlst))+ y/ Y' u% n+ f' E
- (setq dashdata (nth lt-idx mdashlist))( h1 i* H) j; H. d
- (col_tile "show_image" 0 dashdata)
- R- Y* g: a+ ] - (set_tile "list_lt" (itoa lt-idx))" w% T: g" Q; j
- (set_tile "edit_lt" ltname)
) ], W3 H/ z1 P) W! c - )) j. g" v8 o. T, M N
- ;;
0 F. s3 z# O; E- B6 e L - ;; Reset to original linetype when cancel it selected
$ `0 f4 V, X8 Y- m# y- Q8 Z - ;;
- x" h! s" H2 j6 w2 l" N' ~8 V$ e - (defun reset-lt ()3 G4 @$ A: p* ~2 ?8 v8 L
- (setq lt-idx old-idx)) p% X' B4 Z9 P, E! ~9 Q9 ]
- (done_dialog 0)
/ r" r% G& n! C - )
: k: E( A$ C4 ]) I9 |+ P1 a - ;;
) ` A$ K& ]* L. s: j - ;; This function pops a dialogue box consisting of a list box and edit box to ( r) ?8 e: z$ R# M9 L
- ;; allow the user to select or type a layer name. It returns the layer name ! h3 L$ s4 I7 J C- E u+ v; m0 t
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the : \: h' `3 W* D' F5 V
- ;; drawing.( x% E D8 h/ K3 o1 y. o" U
- ;;) [2 C+ Q1 a/ s7 }5 y
- (defun getlayer (/ old-idx layname on off frozth linetype colname)! ]- r1 F8 t4 c8 i- G5 V$ o
- ;; Load a dialogue from dialogue file
/ I# }. R: n) d. R) u' [$ z - (if (not (new_dialog "setlayer" dcl_id)) (exit))
# j0 m9 ]1 U B- G - (start_list "list_lay")# H I1 F" X. b0 I
- (mapcar 'add_list longlist) ; initialize list box
" X6 [' V" S1 r7 T - (end_list)2 [- K! O# q$ H7 J8 n- l
- ;; Display current layer, show initial layer name in edit
$ _9 {2 e7 _( R8 n2 w - ;; box, and highlight list box.; w J* k! }- W1 |
- (setq old-idx lay-idx)- e' j9 y! L* ?/ r
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
6 U- o( X4 s4 z1 ?8 Y' q* g - (set_tile "cur_layer" (getvar "clayer"))
8 {" z) N5 i0 x; ^ - (action_tile "list_lay" "(laylist_act $value)")& E7 }1 h; C1 |( n1 k
- (action_tile "edit_lay" "(layedit_act $value)")4 D/ |( g3 L* W+ m4 b- `4 D
- (action_tile "accept" "(test-ok)")" O# ~8 J; C( e5 T: x# ?. U
- (action_tile "cancel" "(reset-lay)")( q; M+ i7 z& I/ F5 L) _4 c7 V
- (if (= (start_dialog) 1) ; User pressed OK: I" \+ t3 u4 ?
- (progn. h! D6 ^9 X7 }( L
- (if (= lay-idx nil) (setq layname "Varies"))' E! K7 Q& b. P/ V! G3 N
- (set_tile "t_layer" layname)7 H8 T/ \$ `. [" a; n! b8 k
- ; If layer or ltype equals bylayer reset their tiles
4 e! P3 J) z" ]9 B# t/ C - (if (= lt-idx 0)
3 L7 ^6 N0 ^4 \1 i4 T+ }3 `0 d X - (set_tile "t_ltype" (bylayer_lt))
" t4 Q" f; Y& ] - )
% t: z6 C4 w8 G2 D) o/ V2 ^, ? - (if (= ecolor 256)
" p* c; ~9 ~3 g - (progn }, J. ^( e* K- |
- (set_tile "t_color" (bylayer_col))2 y& u# a- ^& `% r5 `
- (col_tile "show_image" cn nil)
( g0 L- B$ M. |) r ?* F% s - )' X! N3 i: @1 P+ c1 b
- )
4 _0 e; V w9 O* A9 n - layname
1 t0 n' ]6 M# T- K/ e1 I" X - )
' c1 ~ f1 z8 ]- q4 |5 X6 |( Z4 ?, D - elayer
/ g# \( r- }$ t0 e+ N/ x - )
1 N5 M& f) t- T2 ?: G - )' R. K6 P! l; d
- ;;+ C2 _% i7 M4 f+ D e$ ?, S) m
- ;; Edit box selections end up here3 ~. d4 F* e/ R. J
- ;;! i$ ?. D" ^) t
- (defun layedit_act (layvalue)
2 r5 b( B8 o: B2 V - ;; Convert layer entry to upper case. If layer name is
8 N% Y5 z( k; p# a( r N - ;; valid, clear error string, call (laylist_act) function,* C N* P# l8 h2 j3 t; U
- ;; and change focus to list box. Else print error message.
6 n, j; L6 r# u" k) k+ B9 K - (setq layvalue (strcase layvalue))5 E; _9 Q( F& {$ e. e
- (if (setq lay-idx (getindex layvalue laynmlst))
2 Q D6 X- z# X2 `! L+ n - (progn
" h# |; l1 [) y' F5 z - (set_tile "error" "")' r" j" |; I; A, L0 o
- (laylist_act (itoa lay-idx))
M$ J2 }" [6 @4 f; W" I/ L - )
4 D. `+ t0 ~. H# W/ u - (progn ]2 u" ~# w5 N5 Q+ R6 s. w6 i, T
- (set_tile "error" "Invalid layer name.")+ Y* v0 |) W: A3 q
- (setq lay-idx old-idx)/ H7 u4 G" z6 v z- O: M' l
- )! u% x* D; X% M" [5 l4 |$ F
- )" ?! ^6 T" ]; ?( t; j' n
- )
& S- C; T2 i# D, W - ;;" Q. Q) G& o" ?: _* t: x
- ;; List entry selections end up here( g/ i, ^3 c1 C: f6 X
- ;;
+ J7 N$ c) \0 f3 k0 r9 n - (defun laylist_act (index / layinfo color dashdata)
9 y5 Q' A$ \. U. i& {' x - ;; Update the list box, edit box, and color tile
; V \2 o0 r4 z- R - (set_tile "error" ""): q7 O2 l0 P. X; Q
- (setq lay-idx (atoi index))
4 A# S/ q0 _9 `; [ - (setq layname (nth lay-idx laynmlst)) X* `9 A% N' u R" ~' o" @
- (setq layinfo (tblsearch "layer" layname))5 b! A3 R4 z5 G4 v& U2 R: x5 D' n. g
- (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
+ ^/ h5 _4 K8 f0 H - (set_tile "error" "Cannot change entity to locked layer.")) i; H9 L' d/ l9 M3 b' ^
- (progn
; h/ T. r# t, |/ N/ ?( H* `8 Y) z - (setq color (cdr (assoc 62 layinfo)))
5 X& x# P6 @1 q/ i. z0 w+ v - (setq color (abs color)) y1 S' G' v3 ?+ h- v! F
- (setq colname (colorname color))
/ d! a0 _ E8 S - (set_tile "list_lay" (itoa lay-idx))
* E& O# U' e6 ?- Q- s0 O' ? - (set_tile "edit_lay" layname)
* B5 j) v9 A0 I! J8 p - (mode_tile "list_lay" 2)
9 ^* ^. Q# [' ^) U3 S+ i - )* n" c- v1 m: [6 x# G& o+ A
- )# } ~4 p, }# q8 Q4 j4 f3 s
- )/ i5 p3 _- E0 a( j+ p& A; t C3 i
- ;;8 M' p3 ~; C, E- \7 c! l
- ;; Reset to original layer when cancel is selected
: `; i9 O, B4 j+ X: D. _ - ;;
2 p+ C" F+ h1 w" t* | - (defun reset-lay ()/ g+ S# V: H$ x# O+ o7 Z1 |' A# k
- (setq lay-idx old-idx)+ e2 |3 g6 ]- g; ^! s; A4 j% N
- (done_dialog 0)
8 h7 U* N# p9 d$ w - )
" Y$ G/ r$ A3 ~. t - ;;' l& J1 Q, `1 ^5 U+ m
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
6 G/ ]5 V/ A. f$ Z - ;; string can't be converted to a real, this routine checks if the first
' n9 `3 ^7 f& B2 v3 Y7 | - ;; character is "0". It also checks to see if the value equals "Varies".& z- ~3 j0 x( T% c4 E% d0 j7 _
- ;;- W9 U* u! n) T6 X
- (defun getthickness (value)% W" h+ B, `% s0 o. C2 Z
- (setq value (strcase value))
; ~& l. L _9 S# m/ h2 D- Q1 D6 I - (if (or (= value "VARIES")
) {8 ?- j) ?8 C' A" z - (distof value)% V" w6 X* q& P! n
- )# Z; U" H4 t( ]1 B% W3 J0 L
- (progn7 Q' ^7 W3 m4 b0 K
- (set_tile "error" "")
8 p+ E- k- u4 t9 n3 C - (if (= value "VARIES"), E8 w" u) }& A, I: K" ?
- (progn
+ w6 `2 v5 d7 E% k# F - (set_tile "eb_thickness" "Varies")7 w0 \0 i8 i1 ]) ^# q. t! v5 i
- (setq ethickness nil)- V2 Q6 O( g; W0 q7 T: k
- )4 H1 j" }1 c- ~, b3 F8 i
- (progn+ O5 n0 B% B7 d6 C h+ q3 H5 y
- (setq ethickness (distof value))
" e) _" g$ }, i& {, W - (set_tile "eb_thickness" (rtos ethickness))
+ D/ l) r/ ?9 M8 M1 J - ethickness
* G7 ^0 {4 z5 H; n, |! L2 s8 K - ); r% f' \7 |' c0 j
- )
# n: |) T6 y, n9 k) T - )
+ g) r0 j" K. ] - (progn
7 N) x* }" E6 }1 A# V/ S, o8 l - (set_tile "error" "Invalid thickness.")6 u1 \- w# r0 m4 q; T7 a
- nil- E0 o; |! m% t4 Y$ r
- )
! g" }8 j/ |0 S4 y2 x - )6 k) y( l( `) X4 g3 y9 g
- )
0 `6 V! Z7 D9 I ~ x, y - ;;* k! v! u$ K4 u! w
- ;; This function make a list called laynmlst which consists of all the layer ! \4 B; n" r- S. g" m
- ;; names in the drawing. It also creates a list called longlist which : Z3 r* c8 y" |6 k. m5 n
- ;; consists of strings which contain the layer name, color, linetype, etc. , m/ Y, p1 K3 _: b
- ;; Longlist is later mapped into the layer listbox. Both are ordered the 4 z' L, o7 @) w7 k3 m l3 x2 @
- ;; same.
: Z7 W5 N- }1 |3 S/ e# C+ Q5 c - ;;
" k4 p) j+ o) e, T V0 W8 K) T - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
& i; ?# [& b$ J: ? - xdlist vpldata sortlist name templist bit-70! ^$ m* ~* U- U5 o! i! N
- )
P) @ a S$ q( y - (if (= (setq tilemode (getvar "tilemode")) 0)9 D8 u, G$ F5 w. d3 i
- (progn
% _" c2 F7 J2 I, E: O2 _7 {9 | - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
7 A$ I: r) [* C1 q3 D6 t( ~ - (cons 69 (getvar "CVPORT"))/ n) e- W5 E$ ?* C7 D
- )
7 J r/ N0 }5 o, G+ F4 J4 x$ J - ), H3 Y, w/ C1 H9 o3 ^
- )
- K- i0 {( p" q1 g1 b( h - (setq cvpname (ssname ss 0))& `2 z' \2 Q3 s* v4 q! `- X: z
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
' x$ x8 k8 M9 }, A- E1 Z& c* ?- @% q - (setq vpldata (cdadr xdlist))& f! t7 k" W! v( G
- )3 x' T, O1 X5 W4 A( z1 a
- )
, B7 g; t5 J1 p$ C6 c - (setq sortlist nil): e4 o- [6 n, p! V& K
- (setq templist (tblnext "LAYER" T))' W8 I6 ?. ]4 f7 D7 d( U
- (while templist' Z% a- v; E; I& n
- (setq name (cdr (assoc 2 templist)))
+ }: T6 J- M$ a - (setq sortlist (cons name sortlist))/ \6 ?8 k# T: E z" q7 t" S
- (setq templist (tblnext "LAYER"))4 V7 f* c# }: a
- ) 8 p7 i( @5 y9 f
- (if (>= (getvar "maxsort") (length sortlist))6 l4 p+ E& o3 G0 p4 u' g9 ^
- (setq sortlist (acad_strlsort sortlist))
% S, D) x" I2 i) m! i$ G# | - (setq sortlist (reverse sortlist))
$ F/ O! P7 ~7 W - )
% W' e2 t1 L3 E$ |. V% V1 b0 i - (setq laynmlst sortlist)
5 }7 O+ U+ k7 x - (setq longlist nil)2 Q: O: t* }1 G$ H4 x6 a
- (setq layname (car sortlist))
; K# [ L2 e3 a! f - (while layname8 T# Y: i2 `2 I: D7 v% U
- (setq laylist (tblsearch "LAYER" layname))
" q+ S3 t) M) v6 K! o - (setq color (cdr (assoc 62 laylist)))5 C: C* |6 [0 [9 r6 P* n
- (if (minusp color)+ E* o7 U/ o6 c2 v7 O1 j x
- (setq onoff ".")% p% p1 `, h" Y3 D7 ~( s
- (setq onoff "On")
% F r- Q# `8 y$ P% K3 V. x - )
! i# S/ W- U8 q" G% H - (setq color (abs color))% C( j' F9 c2 \* A
- (setq colname (colorname color))
3 [: [& Y6 ?- Y - (setq bit-70 (cdr (assoc 70 laylist)))
3 d" n3 H% `4 q - (if (= (logand bit-70 1) 1)6 z% a7 E; p. v
- (setq frozth "F" fchk laylist). [& |9 b- J% B+ o+ \
- (setq frozth ".")
" U) Q4 J5 s( z& ?; @/ m - )
/ O. T( F( o" j3 `" u# Q& Q - (if (= (logand bit-70 2) 2)
/ r) X, `$ ]: r/ `- C' [* D - (setq vpn "N")
/ r3 }, K' {2 V, ] X3 }0 ` - (setq vpn ".")
3 T9 }& T& Y5 ~$ g - )& K7 M9 G+ _% B: P
- (if (= (logand bit-70 4) 4)
7 N3 x# |* |! |* q - (setq lock "L")1 X$ `, |$ i t9 N5 n3 [
- (setq lock ".")9 {# C6 D# S" K2 J( [% l7 s3 M
- )
$ A! k9 }& _5 ]1 Q! I - (setq linetype (cdr (assoc 6 laylist)))
& X# U8 N6 f7 R1 v7 T7 d - (setq layname (substr layname 1 31)). P! p& z* m0 d6 z4 \! e- @* |5 e
- (if (= tilemode 0)3 k& C6 y) }7 R6 i) m y& p9 R
- (progn
8 W, T/ X- S8 H8 c5 z. ~ - (if (member (cons 1003 layname) vpldata)0 ~7 @. @2 i; g; u
- (setq vpf "C")$ ]3 Z& q% x; |+ Q) X
- (setq vpf ".")
4 m# o* E: m( B' T - )
' |9 z2 `, P* Z) Z9 _4 H, w3 i - ): P( D) G: U, a ]7 N8 V: O
- (setq vpf ".")- |( d# u' v, l: X2 J6 h! F
- )
0 |7 i# `* Y4 N - (setq ltabstr (strcat layname "\t"
# R o/ |# p8 b5 W8 Z. C; t - onoff "\t"7 G+ _" i! K* C
- frozth "\t" C0 L& V2 J. {
- lock "\t"" |+ z3 a2 \- [
- vpf "\t"7 v; W" d/ O( j6 M. W- U
- vpn "\t"
3 l4 |' J7 ]( i$ [4 N {1 P - colname "\t"
/ |1 q) l3 P. X' t5 | - linetype$ G' w: O! A8 Z( H
- )
( C* R: _* p0 W! |! @ - )
* [% H) H1 O3 K, I5 q7 v - (setq longlist (append longlist (list ltabstr)))
2 V3 S! t, J' C F) W6 h - (setq sortlist (cdr sortlist))
/ J4 X/ ]/ b# i8 X& C) \ - (setq layname (car sortlist))
6 r4 q% G9 y! h5 Y2 c( q - )
. m' v; a) P- l) G0 v2 L1 o& L - )0 d' x1 q4 P7 V$ ?( n0 c
- ;;1 j" v' O8 P( l9 c, y) }) s
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
- d V; a$ E* j% B, G - ;; linetype names read from the symbol table. Mdashlist is list consisting ( {. m' `3 f8 b8 G; W z9 I. u8 P
- ;; of lists which define the linetype pattern - numbers that indicate dots, 4 g8 q# f- N7 f5 I$ N' S H5 p
- ;; dashes, and spaces taken from group code 49. The list corresponds to the 4 g0 e+ z4 ]$ a* X
- ;; order of names in ltnmlst.9 w+ o3 f4 _9 P+ g3 e
- ;;
( @7 v; F, X5 K% `* h+ R" E - (defun makeltlists (/ ltlist ltname)
0 ]3 x/ L+ d2 w+ `) S" f - (setq mdashlist nil)
0 c9 Q7 R" z( q9 I3 i* h: j1 N - (setq ltlist (tblnext "LTYPE" T))5 S+ R6 F1 H3 b/ r
- (setq ltname (cdr (assoc 2 ltlist)))
; n# h+ t |& c; L+ H - (setq ltnmlst (list ltname))
2 @! ?+ i9 V2 K4 t5 | - h2 O1 A3 u. Y* H6 n0 A$ R+ M- | J
- (if (= ltname "CONTINUOUS")$ c7 ~$ ^7 F. j& |. i, u' y$ g8 Y
- (setq mdashlist (list "CONT")), i4 v6 z- z+ I3 j7 j( f6 p
- (setq mdashlist
* e9 h: }; r$ }7 q+ @) r' a7 Q - (append mdashlist (list (add-mdash ltlist)))- C8 }# |8 ^ b* U" b
- )
- U3 E: C9 A! d - ). j U7 {7 `7 e8 n9 Z( x. N; s
- (while (setq ltlist (tblnext "LTYPE"))
( B5 O l- x; [6 z9 V% C - (setq ltname (cdr (assoc 2 ltlist))); @: ]3 H% ?. X- B6 K
- (setq ltnmlst (append ltnmlst (list ltname))); b. U8 o& p" ]' U
- (setq mdashlist 0 x$ U' V$ N% L
- (append mdashlist (list (add-mdash ltlist)))
; k/ U' @; h) p - )8 `2 i: f' X8 f
- )/ P% y% s9 T; @: Z! Q
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
) Z, M8 Y0 ]2 V4 p9 D4 j' T - (setq mdashlist (cons nil mdashlist))
' i0 d$ d6 [8 {: t8 R0 e( L# M - (setq ltnmlst (cons "BYLAYER" ltnmlst)); G% z. T2 R* S: J
- (setq mdashlist (cons nil mdashlist))6 X# p. e$ P% p) y' C- _& d" x
- )4 D' O3 ^: X, v
- ;;$ k) \% F2 f6 T! o) W. S
- ;; Get all the group code 49 values for a linetype and put them in a list , A0 u$ w% P7 T0 O! z
- ;; (pen-up, pen-down info)
+ o; Z" z0 R& X4 Z - ;;* ~7 {1 u! k( a- p T8 G+ {
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
. @) h6 b2 v) b. c7 \! P - (setq dashlist nil)
9 g& W# s9 p4 \' v9 S0 a2 S3 V+ F: | - (while (setq assoclist (car ltlist1))" H0 t6 k/ n6 k! w
- (if (= (car assoclist) 49)
" @, u- r. `8 ?: R @; P) P& l - (progn& \8 }+ t# o, I$ F( s( i% z: I
- (setq dashsize (cdr assoclist))9 b2 R1 x/ z1 { o) V) N, O' o0 L
- (setq dashlist (cons dashsize dashlist))3 n/ S% D1 N6 S1 x
- )/ z& g( J, d% U( U0 ]4 Y8 J
- )7 l, g" j9 H' u+ G2 ]% E/ a" t
- (setq ltlist1 (cdr ltlist1))
w& A$ r- l v - )
# |& f$ I A- `9 R - (setq dashlist (reverse dashlist))
. \0 O" K: R* G6 X9 b' m7 | - )5 d9 _! V% r2 J; N
- ;;
, `; D3 \- b# Z - ;; Color a tile, draw linetype, and draw a border around it& V0 b2 u$ j' }6 L" y6 d7 |
- ;;7 K' D) T% N j. [( X4 |
- (defun col_tile (tile color patlist / x y)( y) f7 y$ N' S+ `% W7 {7 e
- (setq x (dimx_tile tile))1 X4 R" F" j: ^7 ?3 f5 }: o
- (setq y (dimy_tile tile)) L0 v" E" X2 a) S j
- (start_image tile)- {; _. C% H) j0 E" ^6 \8 N
- (fill_image 0 0 x y color)9 }' S; Z# D8 e6 J% M3 v: h
- (if (= color 7)6 }0 R6 y h5 I& {. ^& `" l
- (progn
4 _' {; _3 ]: w - (if patlist (drawpattern x (/ y 2) patlist 0))0 r s1 C* P% I
- (tile_rect 0 0 x y 0). ?2 |. U( e: u( i9 m4 W
- )5 z" d" w! U5 Z* B0 o: S" t6 y- D: x6 C
- (progn
+ f! o# s& m0 F - (if patlist (drawpattern x (/ y 2) patlist 7))( t4 L7 q3 g; t5 s, ~! [: O
- (tile_rect 0 0 x y 7)
5 m- E5 ~8 U( B6 x5 F( M - )
5 O2 r8 H9 z$ N; f - ): }) t3 @* _. ~* |$ ?, e
- (end_image)( z4 I) S; p5 c, M% B# A
- )7 @7 i X$ Y8 Q# O6 E1 \
- ;;
* w6 I5 K2 X. m, {! S( Z5 b% p - ;; Draw a border around a tile6 }3 x* o0 ]' ?& _. a; Z/ U
- ;;/ f9 R( g# ^5 x
- (defun tile_rect (x1 y1 x2 y2 color)
: y! o+ N; Q9 f- i' t - (setq x2 (- x2 1))& ]6 C j, _9 B
- (setq y2 (- y2 1))
! q- C3 X) Z9 n7 S! h. W: ]4 B; t. e - (vector_image x1 y1 x2 y1 color)* Z/ a V" p& w6 T
- (vector_image x2 y1 x2 y2 color)" u1 `9 D( B$ n! H, q
- (vector_image x2 y2 x1 y2 color)8 l# d+ ]; E( @7 u" n
- (vector_image x1 y2 x1 y1 color)2 z; Y: u7 l, @2 e& I" M
- )6 P; Y% \8 u" I: K4 [
- ;;( I: X. l5 c' B
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
8 E/ G0 Q% ? q. h- l - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a % U3 L* G1 f% ?( C# A+ T- w
- ;; list of numbers that define the linetype, and color is the color of the + `- c8 C$ n' O' R" }
- ;; tile.: A% v: z8 j; ^
- ;;1 z! C9 N( N5 q) s) W9 M1 c
- (defun drawpattern (boxlength y2 pattern color / x1 x2) u! }( D. I! H- p# F
- patlist dash)4 D" ^6 U1 ]: W" Z" i0 f7 B
- (setq x1 0 x2 0)
' O# e6 g) d2 T$ d! J. F5 r* V - (setq patlist pattern)# P! i& Y' c) I
- (if (= patlist "CONT")- g2 \4 U$ C8 A7 O+ H6 S; l8 M
- (progn 9 i @- m! \& _& c. ~* t9 j
- (setq dash boxlength)% ]) @! v. o' v' \$ y* M [' Z: \
- (vi)
1 N4 e) F4 }5 m, v. Q2 s* h - (setq x1 boxlength)
/ Z3 ^; G, H4 N2 Z2 _ - )
. T5 F& \) |# u$ l - )6 ?" ~+ Z) u5 W/ i) H: X+ Z4 z+ I
- (while (< x1 boxlength)! }* \7 _& }+ B# D: A0 J
- (if (setq dash (car patlist))
! [) Q& a8 S: V3 A! q - (progn8 b- e1 j/ B3 o& o% C6 {% Y) m
- (setq dash (fix (* 30 dash)))
- X. Y ], q& s - (cond V# X; `/ N4 h) c8 c) ?; Y* @
- ((= dash 0)
: P" n) M( T5 @. o - (setq dash 1) % }; h9 J: {( e& T) _
- (vi)# ~$ ^/ Z+ A" ?/ m
- )
4 f+ N. t& K4 i9 b+ M, X2 ]( Z - ((> dash 0) 6 y1 {; R! r% l1 r6 Q
- (vi)* G( @7 K; L7 ~1 T
- )7 d" A9 G2 E, C# `8 g0 _0 [4 \
- (T
6 b5 H+ N# @8 W& n. m: w' M$ ~ - (if (< (abs dash) 2) (setq dash 2))4 p$ C( u* L- H
- (setq x2 (+ x2 (abs dash)))
6 {9 m# u" w/ o! F* b! k& { - )
7 [% I/ V4 P U; q- y* C - ); x/ _: _4 P9 M$ `0 ^& ^! ^. g
- (setq patlist (cdr patlist))
$ K: |+ b1 ]; Z2 P7 _6 d' M+ f& X* m - (setq x1 x2)4 S6 D' U2 t- e' s
- ) Z) b- l# `1 R" N! W7 y; H
- (setq patlist pattern)
+ g; d! k. F' e' h! B/ j4 V - )
9 W0 H Z) p3 r- o - )' o0 H2 C" J/ o2 {
- )# D! a" E& J: M% l
- ;;& R+ T- b. Z: y" l5 L5 u Y4 i0 H
- ;; Draw a dash or dot in image tile3 p( q( b4 R$ ] r" U6 e
- ;;
! `# |( K' b# F& Z8 R - (defun vi ()* f: M# e( ?8 G& ^4 c( ~
- (setq x2 (+ x2 dash))- S6 N8 V$ [4 @$ c5 Y
- (vector_image x1 y2 x2 y2 color)2 }3 C& {- h/ L1 J( F7 \
- )
' i* b8 c" `7 c, x/ h6 R: ? - ;;
, V1 o( g8 P/ i1 c - ;; This function takes a selection and returns a list of the color, linetype, , P# w; \; w1 i: E: o2 I
- ;; layer, and thickness properties that are common to every entities in the) [; c8 p8 L% B# y, Q$ s
- ;; selection set - (color linetype layer thickness). If all entities do not ' D( ?& i; n: W" p0 t) ^
- ;; share the same property value it returns "Varies" in place of the $ e9 C2 c. m* F2 ~3 z
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)+ d* V w+ }- w8 A0 b' @/ |
- ;;
! p! x5 p+ G. t: ?3 i5 Y) r V - (defun getprops (selset / sslen elist color ltype layer
' _) e, @2 j i6 \' P2 A - thickness go chk-col chk-lt chk-lay chk-th ctr)+ h# M, B" H; Q& V$ s
- (setq sslen (sslength selset))5 z& p% w& A4 t% V5 w
- (setq elist (entget (ssname selset 0)))
/ o. d+ _) d3 ] - (setq color (cdr (assoc 62 elist)))' I% B& h2 O6 R( y+ ]
- (if (not color) (setq color 256))" @6 ~' D! C, P' g- x6 L# L6 V
- (setq ltype (cdr (assoc 6 elist)))% R5 d, A4 l" F) P9 \$ A, L
- (if (not ltype) (setq ltype "BYLAYER"))
' E4 r! P% E Z7 S8 }$ d" c ? - (setq layer (cdr (assoc 8 elist)))
( A1 u8 \; m2 D$ U, i - (setq thickness (cdr (assoc 39 elist)))9 ^( Y" z6 B% h
- (if (not thickness) (setq thickness 0))
# G, n3 s% ?/ U) h v! I, l - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)$ E1 ^/ M, o! E( ?/ o
- v. ~, B+ p- M- r- i; O! y
- ;; Page through the selection set. When a property
F1 `9 R- ?( n& h# D - ;; does not match, stop checking for that property.
1 q/ K: E6 l' i" {! c! J - ;; If all properties vary, stop paging.
9 Q, ~) ]: Y, g& `/ Z, }
% `2 t5 M" \" d7 T5 d- (while (and (> sslen ctr) go)
0 ?5 |* Y% k+ Q' ~+ G - (setq elist (entget (setq en (ssname selset ctr))))
7 T7 \ @* z k9 B - (if chk-col (match-col))) ]. Y, A9 W( L1 H
- (if chk-lt (match-lt))
) O9 R/ ~8 J& n' ?9 |. ?0 R - (if chk-lay (match-lay))
" A8 k# T8 o, H: U+ V% k0 V - (if chk-th (match-th))
* B6 q; \/ h/ c5 F6 ` - (setq ctr (1+ ctr))
2 P5 D9 s4 S( L! S+ y/ I - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
( e, [' E5 z" ]: w - (setq go nil)
8 X/ C, v+ N: x Q3 O* { - )
, \/ E) U9 i: @: v' ~- G2 Y' @ - ), y) ^7 ~2 R6 P8 H+ }3 _% R
- (list color ltype layer thickness)
/ {8 K7 v" S5 z; O - )
9 H) y5 z8 F+ [- I* n4 h/ y - ; l0 u X+ q5 v+ ~6 R3 c
- (defun match-col (/ ncolor)
" w4 m- b3 S3 u: k7 c! m! t - (setq ncolor (cdr (assoc 62 elist)))
( G" r1 o3 a2 R$ l5 d) }/ p0 X - (if (not ncolor) (setq ncolor 256))- e9 N9 P$ ~0 c5 F, D
- (if (/= color ncolor)" Y7 m5 k4 B5 a! @" P5 F- \3 N" L& Q5 `, A
- (progn9 P+ V) T& t) w6 x, R8 t- Q2 G
- (setq chk-col nil)
; n2 i' d5 `# _. Q( @ - (setq color nil)
V! e) R$ A( j1 q1 s8 | - )# |2 z5 w) i% i& t' f( |) o F( ]
- )9 Q6 t( T( x& h; J8 x+ s% @- u
- )( I* a O+ Q: S& A
- 8 x- i9 l3 G2 m
- (defun match-lt (/ nltype)6 C9 {" `* y( a+ x
- (setq nltype (cdr (assoc 6 elist)))9 [+ e+ b$ l8 ^% W
- (if (not nltype) (setq nltype "BYLAYER"))
$ r* J% A9 J5 w b# O - (if (/= ltype nltype)3 X! r+ j( P, F: n$ T" ^
- (progn) g# F- i: |0 q5 \( P. H2 r
- (setq chk-lt nil)
- E. Q8 x. c Q7 [! Q - (setq ltype "Varies")
. m# K5 ?/ q8 E+ ~6 O* d1 K0 Q9 C - )# t! r0 T2 s: I6 m6 {: {9 |" [" @
- )6 @; ], p% p) A3 Q7 f" i/ O- E
- )
Z/ `( N7 K6 {# |
. |! u9 o! l2 N% Z7 z# Q- (defun match-lay (/ nlayer)3 z# |9 y8 B w
- (setq nlayer (cdr (assoc 8 elist)))
0 Y4 U3 I! T" i% z0 M0 Z+ F - (if (/= layer nlayer)1 Y& q, Y# L/ i/ l% I9 A8 U
- (progn) ]& m9 P2 P/ p% A, K' j+ ~2 v
- (setq chk-lay nil)1 E' k' E) X& g% S, s
- (setq layer "Varies")
: _3 u, r% Q, `9 h - )
" h& d* y1 S# S# ?& c( f - )& K: }) ~: ^( v; K" S# S
- )
" Z- P( I3 G0 i/ ~& x - - S& P' L% e/ K5 O
- (defun match-th (/ nthickness)* P' U# ]/ J' C7 y# R
- (setq nthickness (cdr (assoc 39 elist)))9 z4 f( f; w% x- k+ U# {
- (if (not nthickness) (setq nthickness 0))
, [; u$ w8 }/ n: D1 D7 i6 Z5 L8 b - (if (/= thickness nthickness)
+ d) d2 y, G' V- R - (progn5 G0 K& Y0 y: |7 [* t+ P% D4 j+ v7 o
- (setq chk-th nil)+ v$ b* k2 w# w% U, f
- (setq thickness "Varies")' t- x; s" g8 s' w9 L- U: o6 A7 t
- )
, H( Y* ~, y: c2 r3 Y2 F - ): |' X' k1 Z, z
- ) X2 o/ g) S; d- u: e! q# ^
U4 k, P. l' I" h- ;;
" U) F' f5 m' s0 I( g! A8 x2 e - ;; If an item is a member of the list, then return its index number, else
1 }- O. s: {1 y O4 X; H. [ - ;; return nil.
J' p; I# ?, T6 M4 p0 E3 o - ;;, V! {6 y0 D3 V! ~, f
- (defun getindex (item itemlist / m n)* e6 @7 {0 j! c P
- (setq n (length itemlist))
- q4 r# k% F: t/ ~ - (if (> (setq m (length (member item itemlist))) 0)& m9 N7 S/ [/ x- P* D
- (- n m)
/ C5 H" A; F A, G. ] - nil* [ J6 [+ E3 R3 e6 `* ?" J' q
- )
, \; U8 ?2 @0 S! R - )( @# O+ _& _2 q6 w& D* s2 r
- ;;+ N: T4 Y+ I! [* J
- ;; This function is called if the linetype is set "BYLAYER". It finds the
, g% o) Z8 l a4 _/ S2 {; I! _ - ;; ltype of the layer so it can be displayed beside the linetype button.
- l& v: K: F- O) s$ g! x/ d& w" T4 z - ;;2 ]/ r! F# L8 H, c
- (defun bylayer_lt (/ layname layinfo ltype)7 }" P" s, a5 D* m& V, F% E6 o
- (if lay-idx, b7 H9 ?' q# S( s% Z
- (progn5 i2 J+ }+ H& Q4 f
- (setq layname (nth lay-idx laynmlst))3 q% t" O6 z; B, n5 I
- (setq layinfo (tblsearch "layer" layname))
1 b' c j7 B' i! _2 ^8 a - (setq ltype (cdr (assoc 6 layinfo)))
9 u& O8 c o: E3 d' Q - (strcat "BYLAYER (" ltype ")")- \+ o! ]* q8 ?1 L+ G
- )
0 t, Z+ E7 L2 W; Z; v - "BYLAYER"
5 ^6 y' d* K% K& }8 G$ H3 v/ k - )
" O) N! W6 v+ _5 w% j - )
) O0 u- s# t, p8 Y C% P& A5 i - ;;
& D l* h8 {7 d) D$ p, K) K - ;; This function is called if the color is set "BYLAYER". It finds the
3 a0 _5 C$ P5 S* t( k/ t - ;; color of the layer so it can be displayed beside the color button.& Q. e$ H% i% L2 E7 b) U
- ;;0 x$ b1 N" p# E# i/ W
- (defun bylayer_col (/ layname layinfo color)& H' W4 r" V4 o
- (if lay-idx
" A* N$ ?4 a; x3 E% ] - (progn& }9 D% C q+ D1 e
- (setq layname (nth lay-idx laynmlst))1 ~: y9 ]1 N6 r
- (setq layinfo (tblsearch "layer" layname))& }7 A7 s) K7 S2 Y5 t+ P
- (setq color (abs (cdr (assoc 62 layinfo))))9 d( X* @$ h9 O" k9 | B5 j% P- T
- (setq cn color)
5 w, K' P% Z& d1 s& q - (strcat "BYLAYER (" (colorname color) ")")! \( Q1 E |+ r. r2 D$ i" G$ x
- )
( n8 N' S6 J; i$ n' q' _, s+ H% O - (progn
3 m$ ~3 O9 Z- X - (setq cn 0)' n8 q1 x# z# `/ g/ ]
- "BYLAYER"8 C D/ [1 W; I3 I! l: {( v
- )
% F4 I4 r( p" L1 V - )3 G( d: ^2 {' f
- )
& C' H6 }* X9 S- F - ;;4 j; c, N& u. m7 N0 ]4 b5 M
- ;; If there is no error message, then close the dialogue
5 f: R$ \1 o* g: f. p: u/ y5 _ - ;;
4 T- E& y( Y/ S. @1 O. ] - ;; If there is an error message, then set focus to the tile* J8 ~/ b/ [- S* O0 a
- ;; that's associated with the error message.
% |9 ~) K I. _$ ` - ;;
- U4 N: W- U" `% J4 m0 r. Y - (defun test-ok ( / errtile)+ Y% |0 |, x) K* _
- (setq errtile (get_tile "error"))
# v1 i. |1 Q. y! R. o; u8 S - (cond! }' F0 Q0 V# |
- ( (= errtile "")
. P" j8 x9 [; N - (done_dialog 1))
. O" K& y; b9 T - ( (= errtile "Invalid thickness.")
! u6 Y0 ^% a: q6 v% q# {" p - (mode_tile "eb_thickness" 2))
0 b' ?. T/ n, X$ g% E+ M - ): p: y3 A- m0 I& e
- )1 G5 `& _9 \* i# c1 ^
- ;;
7 u$ z. E5 K2 _ - ;; A color function used by getlayer.
5 h* |/ h0 x' w - ;;3 E5 n7 O) O( g% N
- (defun colorname (colnum)
v/ P5 c8 E9 x4 j9 _ - (setq cn (abs colnum))
5 A& t: \$ k0 F& K" H - (cond ((= cn 1) "red")
5 t: G0 j( g& ^! t& J" z - ((= cn 2) "yellow")
3 u) Q; a) i9 C6 ~. Y8 c+ m - ((= cn 3) "green")7 L. I3 X4 ?2 ?- d+ l; F* t" c- w
- ((= cn 4) "cyan")
1 x8 t9 q, g% N* ]9 b" T- J - ((= cn 5) "blue")
e$ N+ S5 j& R% _1 f - ((= cn 6) "magenta")/ A5 I* `8 \3 h$ z* g' H
- ((= cn 7) "white")
" m7 x# V I6 y - (T (itoa cn))
4 [0 {* A) G* z: A2 \ S9 } - )/ X Y. D8 ?' |/ t6 p
- )$ k4 s; K4 |+ N( @' W, }9 O; x
1 Z6 \* G5 Q& j- ;;; Construct layer and ltype lists and initialize all% h) v/ _* W! m8 z
- ;;; program variables:
% j' k$ S9 k% {" v - * v7 @2 x! H9 Q* C0 `2 l& a9 I5 U
- (makelaylists) ; layer list - laynmlst
9 ]: o& y9 m% ~/ V5 ~- D4 \6 T - (makeltlists) ; linetype lists - ltnmlst, mdashlist6 f7 C. C5 s4 C9 n9 x: o A
- ;; Find the property values of the selection set.
?% Q( i- Q! }* R& s - ;; (getprops ss) returns a list of properties from
+ O4 i! P+ ^- J3 G) h - ;; a selection set - (color ltype layer thickness)./ T. V( a6 H5 b
- (setq proplist (getprops ss))
; V0 ^( U1 T' w7 ] - (setq ecolor (car proplist))
Y* C% u; U0 }* a9 k9 R - (setq eltype (cadr proplist))
' M5 b% F+ z) k' n$ T - (setq elayer (caddr proplist)) J$ g5 z9 J1 Z$ s5 \2 d' ~$ @( P
- (setq ethickness (cadddr proplist))5 m0 N$ [: B1 K# N6 R: b/ K
- ;; Find index of linetype, and layer lists
# m- [! i) m6 l; y0 r - (cond/ R' {6 x/ E; Q$ J
- ((= eltype "Varies") (setq lt-idx nil))( I1 [+ ]/ D7 h$ ~8 H
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
6 \4 s1 A2 Q, K7 t - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
% F' @" ]3 d E* s1 U! |" X+ r. e - (T (setq lt-idx (getindex eltype ltnmlst)))
- C& y4 f2 G! n+ `9 ?* Z - )( d- V% @8 @. x/ G8 J! [
- (if (= elayer "Varies")4 T" K1 R8 Y r/ K* i
- (setq lay-idx nil)
' A' \! x: i% q0 M u& s - (setq lay-idx (getindex elayer laynmlst))
8 m* K* r) m* U( r3 | - )9 ?" J( J) u, G& Q6 ^
- (if (= ethickness "Varies")
0 H3 F# f# ]9 z, ^# g8 m% T6 k - (setq ethickness nil)
$ j8 Z4 V& [. t& V! Z4 G& s5 O1 b - ); H1 C B, C1 c5 k
' v3 m" J8 V" ^1 e8 S" O- ) ; end (ddchprop_init)
4 R; [1 ^! X2 l8 L6 T) n" h - 1 p* l- c4 |* e3 [" ]
- ;;; (ddchprop_select)) y* J$ ?" p. o( x, |5 l1 W2 k
- ;;;8 B3 I2 r( M0 F; }: {9 F
- ;;; Aquires selection set for DDCHPROP, in one of three ways:# B& T; f! O f/ T. D/ }8 X
- ;;;4 _% [+ \' @, G# g8 k
- ;;; 1 - Autoselected.
, ?, t" L' K& O- N3 d - ;;; 2 - Prompted for." e8 |9 t. n# p+ t
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )) [9 \( b0 }+ `3 q
- ;;;
4 y7 {- c0 G g - ;;; The (ddchprop_select) function also sets the value of the
! j9 ^0 A/ p+ z* ?- j0 T - ;;; global symbol AI_SELTYPE to one of the above three values to. _7 L8 `9 m- T" r) v% M6 `$ S& O
- ;;; indicate the method thru which the entity was aquired." M2 ~( T& g3 f4 p! l7 U. s
- z' u z. L1 s% J/ l$ C) T- 7 X. L' ]5 p6 q! X7 w: Z, E
- (defun ddchprop_select ()0 ]6 W f! l- B
- (cond
# T' u* H. f6 C) ^' _ - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to0 O) [0 V* v# q# v% ^9 s
- (cond ; (ddchprop) as argument* k" N- S9 C6 g( Y5 q: n' I
- ( (not (zerop (sslength ss))) ; If not empty, then& P4 K' i O+ ~9 W# z. }/ N
- (setq ai_seltype 3) ; then return pickset.% ^7 c: u3 `& _. l; y: }4 M
- (ai_return ss))))
* s" N& ?( \8 G
2 A. x! I+ j5 v; `- ( (ai_aselect)) ; Use current selection
: _( [8 \+ i" R8 p. @) | - ; set or prompt for objects0 t% ~ b$ \8 d% y0 I
- % @; K2 q# y" |% O. _
- (t (princ "\nNothing selected.")& I, f" a% C& c' |; T; J
- (ai_return nil))
( H6 y7 M5 p/ G S3 W+ e& a - )
4 r: j% n/ G& m/ |$ q9 q: _ - ). o8 \9 m9 A; P
- W' P" V3 X9 q% J" @9 R- ;;; Define command function.
& C. w% b- y B. E9 c1 \( s W
: [4 ~! Z: S1 u. b6 k1 B- (defun C:CH ()) v0 ~4 x& g; _' p% Z6 O
- (ddchprop nil); l0 N n- m, a0 W3 _
- (princ)5 E, S. `3 H. i& M
- )
5 X' K7 A/ M; d, e5 D
! ]- ]( O2 Y6 _- ) R6 Y6 Q2 q( O3 F+ |4 n7 Y
- ;;; Main program function - callable as a subroutine.' ~/ }& @& p/ q, N! I! P+ @3 A8 y& x
- ;;;; c3 h) Q0 U% P8 O
- ;;; (ddchprop <pickset> )
, h+ y9 _ G3 p5 h( f! D - ;;;, H) g. l& J; I0 t* q$ p6 q& D
- ;;; <pickset> is the selection set of objects to be changed.) e4 Q5 Y& ^5 A
- ;;;5 e! M" L0 u9 }) v% H C2 X
- ;;; If <pickset> is nil, then the current selection set is0 H- v( l( K# ], m8 ]- X8 W7 v9 {
- ;;; aquired, if one exists. Otherwise, the user is prompted
& J0 A6 Z& \* y+ \6 M - ;;; to select the objects to be changed.+ D3 N L: @9 {( B3 r6 D2 ^. ?0 j: o
- ;;;
3 O- H5 [& R* x* p! t) K8 I - ;;; Before (ddchprop) can be called as a subroutine, it must
% N- j% j+ S0 w8 b _ - ;;; be loaded first. It is up to the calling application to0 E/ x: ^1 @4 y% @% w
- ;;; first determine this, and load it if necessary.- _: S" b8 C4 z1 w, Y' }. A# ^
- # Y( [/ t9 k+ K, g% B% F
- (defun ddchprop (ss /
' \) w0 {) }9 }/ u, S - ' A2 }# D. J, X
- add-mdash ecolor ltedit_act s' C# x7 R, w7 y _, x; ?
- assoclist elayer ltidx selset
! [9 v% I8 A; P1 P+ O$ [9 y' ^ - bit-70 elist ltlist set_col_tile
# x) ]% z7 z( ` - boxlength eltype ltlist1
; b! a- u5 R) e" z4 J - bylayer-lt en ltlist_act sortlist' u: E( E3 n4 W( M) |
- bylayer_col ethickness ltname
& H" ]) r- ]+ Z r3 c# }2 |( l; z - bylayer_lt fchk ltnmlst sslen: W6 u2 g" x, B" S. z; t' J" A
- call_chp frozth ltvalue templist
+ V4 h4 c! o' U9 F& E8 S; _6 J - chk-col getcolor ltype temp_color
7 a/ {) L- j4 M/ c7 c' G - chk-lay getindex m test-ok
" u. e8 n6 \3 f @* d1 J - chk-lt getlayer makelaylists testidx' l+ L8 w+ V; M# l$ f' w
- chk-th getltype makeltlists testlay$ k0 Z, W6 u9 p C* m- e9 W
- cmd getprops match-col th-value: K) _# k' X/ ]" s O
- cmdecho getthickness match-in thickness) h5 P0 ?8 p$ P
- cn globals match-lay tile. O \2 {7 m+ |1 A4 ~
- cnum go match-lt tilemode/ m- j. L( k5 l# ]! Q7 X
- col-idx index match-th tile_rect
^3 W, C" T$ j, q' F( Q5 y: v - colname item match_col vi% B( M( y$ Z, A9 w5 [( V! ~6 m
- colnum item1 mdashlist vpf ` Z3 ]1 F# _/ X" z. o$ M/ X
- color item2 n vpldata9 f: O p3 s* y& e$ O6 B
- colorname itemlist name vpn
5 {( e: Y& \. Z M - col_def lay-idx ncolor x
J. W9 n( o7 k7 m5 t; ?3 V E - col_tile layedit_act nlayer x1
; t0 A3 Z( v- u0 C - ctr layer nltype x2
( K5 m# N+ i; u- c# J - cvpname layinfo nthickness xdlist
) v+ g; T" z0 t/ G: G - dash laylist off y
" a* |% a" D; o' m5 k - dashdata laylist_act old-idx y1
7 H- T1 d: P# A% p# r - dashlist layname olderr y2- Q: M8 K: T& x \. b5 }3 x
- dashsize laynmlst on undo_init
) i' [; ~' m3 M# w9 j0 Q% M - dcl_id layvalue onoff
) T' Z" [4 |7 A* | - linetype patlist8 t1 ?) ]& r# t7 R1 n
- ddchprop-err list1 pattern- I, B! A. R, _/ y0 |0 E/ a3 s
- longlist proplist; C, P' A) a8 i4 h
- lt-idx reset-lay, c. o. S ?! h( X
- drawpattern ltabstr reset-lt, d7 [/ r8 S; h2 K
- )
0 n9 i; e9 Z3 {" z& {- Y: r3 R8 f
1 `: w! K1 r% p5 ?: j8 K- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
" c9 S- M2 }0 B( c" s) P m - old_error *error* ; save current error function
8 e8 f/ H: G$ Z9 R- L/ ^ - *error* ai_error ; new error function
' P7 ^/ e! e' B# c: R3 G. F - )
% s1 M9 G3 D+ d
4 J* N9 O% R4 W8 {7 z% t- (setvar "cmdecho" 0)
) R8 @- E( x) R
C+ _& c1 F5 M: d1 H7 x+ S. Y. K3 ]- `- (cond: b9 w( o# C8 u. t! t$ x3 p
- ( (not (ai_notrans))) ; Not transparent?: W+ {+ i4 L: ^5 F! H
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
% C- O5 L5 B& K. m# f# b3 k6 n - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?& O% k) E# K( g, y
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?
- R- I4 E* x0 }9 Z8 t - * v6 h, L* D4 x+ b& k1 e5 V
- (t (ai_undo_push)
3 }' l# B! M# y' y1 `0 ]# C; R - (ddchprop_init) ; Everything's cool,
; N1 U. X6 |5 U3 m! t% N4 p& Q$ g' Q5 ~ - (call_chp) ; so proceed!
0 J- H" `: W) ~$ t2 G - (ai_undo_pop)4 q: @+ D0 c( @8 w& D1 i3 e
- )
: K) j$ q; {- J - )* K3 {5 y1 ?8 D7 x! ~
-
' e, t, g8 s9 W1 j - (setq *error* old_error)
$ g8 |8 I/ l+ F. t* p& f9 z6 p - (setvar "cmdecho" old_cmd)
, m; K g& @8 X0 Y z - (princ)2 h, Q8 H+ `5 ~
- )
$ V3 H6 j. i& m) i/ s" Z; x7 s& w - 1 t* q O+ k. U: v6 n
- ;;;----------------------------------------------------------------------------
- I! ^9 z% H/ u3 p - ! A. V* p- n7 H, i# V, N
- (princ " DDCHPROP loaded.")5 X- ^: B4 b( `$ l/ V2 g# c, z
- (princ)
0 V* C! W i+ w. r7 J, j, @
3 m# u* }1 Z' l2 Z- ;;;----------------------------------------------------------------------------- Y% d* T& R' P& N/ ~% u
8 t9 i- t# [$ a7 q, l( K8 T, e- ;--------------------------------ddmodify.lsp----------------------------------
+ i5 p+ V8 @6 E4 m- T2 @9 a - ; Next available MSG number is 111 G1 V5 d$ S' Z w/ i2 L- W& I8 L( b
- ; MODULE_ID DDMODIFY_LSP_; U& h/ ~$ L5 x
- ;;;----------------------------------------------------------------------------% t1 f, B( e2 g( r- j3 C. N; l
- ;;; DDMODIFY.LSP
% {) ~' m x/ r - ;;;( T& ~$ D9 ]7 G8 l7 R! c
- ;;; Copyright 1997 by Autodesk, Inc.3 @: `' @" c; c' S3 m& q# u
- ;;;! J' S9 ]* Q- p$ B- Y1 B2 z8 {, v
- ;;; Permission to use, copy, modify, and distribute this software
% H0 @& v( t4 Q* h& c7 y& O# N, \ - ;;; for any purpose and without fee is hereby granted, provided
% G" n- b, L5 W+ c# n& m - ;;; that the above copyright notice appears in all copies and' h9 ?/ T& U" p7 |& h3 ]
- ;;; that both that copyright notice and the limited warranty and
& F( l# c0 Z1 Q - ;;; restricted rights notice below appear in all supporting
' N. H" u- R, h) |" }# E5 D% C' q- z - ;;; documentation.: I, g) q! Y1 C
- ;;;
2 [3 p! ^' d6 K- v; U - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.* k. y& }. ~: D" m/ J. l8 f% ^+ W$ S
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF5 \/ a0 X" a, F- W! x' [: k ?
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.& W2 b2 F' J- W# t4 n6 t. V2 f1 W" }1 X
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
! k4 q' w$ I2 M7 B& z - ;;; UNINTERRUPTED OR ERROR FREE.
}% g w s9 M4 F2 ^ - ;;;
4 C( g! v, O' ~0 [1 S0 L" m - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
; p/ V r- ?3 Z$ _# y: w8 T- A - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
4 b3 y4 p! J( ?& C2 m8 ~5 E2 F - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii), d# w, C6 ]( w, H4 m: g& i4 |
- ;;; (Rights in Technical Data and Computer Software), as applicable.
. q0 b4 U( r6 _0 @ - ;;;
U4 n8 B: a, x. Z* j+ ] - ;;;.( l: E6 n2 i0 v) ]- X
- ;;; V! H o5 r, j- o* ?6 t5 ~; l
- ;;;----------------------------------------------------------------------------& }3 t5 x; U4 B/ i5 \; B
- ;;; DESCRIPTION
: I+ [ R x# @9 X# H - ;;;
* x5 A, @+ z0 r! T; q# V+ ~9 G4 S - ;;; This function allows the user to get a listing comparable to the LIST
8 J9 L4 R/ T1 i, R7 ? - ;;; command for most objects. In addition, most object fields in the4 d+ [) m0 F/ y+ s
- ;;; dialogue box are editable. Points can be specified dynamically by
$ d/ M, U# k& _" C: X2 |4 q: ] - ;;; temporarily dismissing the dialogue box. Each object has a unique
v8 b" Q' M! n1 _; I- o0 V3 ]- U - ;;; dialogue.) c6 p& |6 S2 |, ~
- ;;;4 @3 _$ E3 ~; r9 X" M
- ;;; Naming conventions2 @; {9 i& s0 {# H5 K# y$ ?
- ;;; Long function and widget names may use an underscore "_"
2 v7 Q# K. _+ P7 z* V. v$ a, E - ;;; in their names to make them easier to read, long variable+ L6 f% X$ Y1 Y! l; v! V
- ;;; names use a dash "-".
7 X. \ A1 s% m( u - ;;;----------------------------------------------------------------------------
( z$ z& Q, \# T4 v9 H/ f q - ;;;----------------------------------------------------------------------------
4 n2 \' e9 T Q; j$ }; l: W - ;;; Prefixes in command and keyword strings:" K0 K# P3 b1 C1 |& e, l- g
- ;;; "." specifies the built-in AutoCAD command in case it has been
) e& J8 ~" `: n) A" \ - ;;; redefined.& Z0 K1 W, n, V" O
- ;;; "_" denotes an AutoCAD command or keyword in the native language+ ~! w2 A/ ?- z, ~$ @( I
- ;;; version, English.2 W- ]/ _( U# r; Q- _! ~) |. {# m) ^
- ;;;----------------------------------------------------------------------------
5 ^0 o% X. i: o; R7 E' t e) R3 D' k - ;;;
3 f. ~$ [" A/ J6 u - ;;; Avoid (gc)s on load to improve load time.. R2 S$ A2 E, A) P$ q
- ;;;+ h# Y" M( [* ]7 D# E
- (defun do_alloc (/ old_allod new_alloc)
* r: A+ p0 A0 m7 ]$ u1 c7 [" z - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
7 ?, x6 s7 A7 p4 ^7 S - (expand (1+ (/ 17000 new_alloc)))
' n* o R9 f% e4 V - (alloc old_alloc)' d- s! ?- W* v& G2 y
- )
; `. M7 [# R9 K6 M9 H& S% m - (do_alloc)
! M, x3 J' A4 o- B2 |1 E$ | - (setq do_alloc nil)/ C5 J0 d- c4 p( p O
- 0 y! O3 h5 n+ q) W4 l
- ;;;; a& l) h6 B8 D0 t+ M- K3 i, v4 g
- ;;;
2 w/ b5 _6 q% M |0 s - ;;; ===========================================================================
' t) D# a- c1 {6 i4 N& A$ V( P - ;;; ===================== load-time error checking ============================
" R" q2 z5 L9 U. o% O5 N9 K - 3 ~& ^$ w# j" B7 j/ o% t
- (defun ai_abort (app msg)2 g0 s+ P5 z4 i- g, e0 ^" k; V
- (defun *error* (s)
5 O; F- ~2 I8 t6 V7 C& ^# a- t$ B - (if old_error (setq *error* old_error))' O+ z& z% X* e8 R
- (princ)8 Y& |# o' @ v }1 c( t
- ); ^4 b% w3 `) c. s; U6 [
- (if msg3 f& ?2 |* F& C. C2 e
- (alert (strcat " Application error: "# l5 `5 i" c* t( c$ h1 h
- app
# ^% e8 S R( i4 O a" ~' d - " \n\n "
5 j& Y6 g% M- X1 L - msg: D) Q& I7 u( b8 \* k" V r
- " \n"
) t) E9 _( L7 Z7 ]5 G - )0 p! x7 P: H. T9 `1 M2 \ t0 q
- )
6 x1 E: H0 T# P" Z$ i - )" l" X1 J- T9 E- i; c5 Z
- (exit)& b/ [( R$ f' |5 |3 p# a7 ?
- )
. ^0 R9 K$ r- n5 i+ O
' z# [. j4 p( L4 Q* X$ }0 w- h' c- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
* w4 L) I9 x/ l5 | - ;;; and then try to load it. If it can't be found or can't be8 ~& T$ t! y# w
- ;;; loaded, then abort the loading of this file immediately.
; O6 @' G* i8 L+ e# M& Z. g - ! R5 g) C4 W4 V M/ m$ A. D
- (cond
0 V: T7 o$ |3 A, i8 L! A) g2 K - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded." g1 o' a% [; B8 o/ z
- H' R1 n9 n( }, G' [9 @- ( (not (findfile "ai_utils.lsp")) ; find it
M6 z% K; A$ `0 X - (ai_abort "DDMODIFY"
% O$ u+ W. L2 g2 `& g9 n - (strcat "Can't locate file AI_UTILS.LSP."
+ u4 K& s$ Q2 M4 c9 O$ D! J5 [& t. P - "\n Check support directory.")))% K+ P& M$ G" n9 T
- : ^# T% w6 K1 G8 T; y$ t
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
$ v; S! q7 j, _ - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
S2 R" X, `+ I& ?6 S. ` - ); ?+ p% E9 w M4 f0 K4 {8 E6 Z1 y
- 7 ~0 ~; e$ o8 S! A/ n( h3 P, Y8 u
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
p0 A: H: y- a) H - ;;; be assumed that all functions defined therein are available.
( C+ [4 z3 j8 Y. ^ ^
; k, }8 G6 [# b& c( i) {9 ~0 e- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
. w8 T9 y! {- H- T7 G$ p - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
/ Y' l6 B8 r* U3 }# ]9 ? - ;;; does not abort the running application itself (so that it can* A+ u) {+ y' [8 L
- ;;; also be called from within the command without also stopping, L b S: {7 \) W( C# f9 k
- ;;; an AutoCAD command currently in progress).; L8 G- B. E ~( T
- / c0 _. R+ [: X8 m6 i( f U
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
( ^, {. \, c$ R8 e4 Y1 C: k - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses I9 _& ?1 e c7 a
- ) ; ai_abort's alert box dialog., \! |- H% u' H/ ]) K( O
- & [6 B; Q8 s q; [" @7 B
- ;;; ==================== end load-time operations ===========================
* u9 h4 c# a0 C; |" f
! i& [$ h( U) k+ f- ;;; global variables4 P& ^% {; [% i8 @- ?
( Z- ?" s3 U5 D5 q- (setq hatch-elist nil)
6 H/ a! P% z3 Z* V) { - $ |- E4 B: u) T0 @! [
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are" R/ d) }1 ]0 y; a# W
- ;;; assumed to be available.
- _6 B: L8 k, x$ m! E* F
. { u1 b" t# J. q9 ]* y' f- ;;; Define and encapsulate all subroutines that are declared' O+ W; d9 ~& V/ l4 F/ a! v
- ;;; locals of the (ddmodify) function.* X4 k, I2 H' c4 ~
- " ~/ h- A0 J/ r; {4 N
- (defun ddmodify_init ()
. I* h9 `$ @: _ - ;;3 ?, I+ _0 R$ q
- ;; These three functions modify the enitity list for common properties. Since
~' R0 \6 r7 f- R2 ~" {) z4 k - ;; color, ltype, and thickness are absent from the object list when they are) o* b) f' R. B# @: J0 z* d+ ^
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using
% t$ K6 N/ L. G - ;; SUBST is not possible.
- J& s& n# ^ @) u# p- {; |& V" E - ;;
% O: u6 I' Y2 `. j3 l7 ]3 G - (defun modify_properties ()
, B, n1 \* v# b- N - (emod ecolor 62). y2 z! K5 C! h/ X0 i( A# k( B5 O
- (emod eltype 6)
2 R' r& {; j) H/ d9 ? - (emod ethickness 39)
% \! @. x* H8 k; u3 F/ L9 y - (emod eltscale 48)5 O D7 q) n: u- h# h
- (tempmod elayer 8 nil)1 h# {( i% |$ I, I& Q
- )4 {0 c# J9 N7 r8 F; ]
- ;;4 c! x6 d( m! A
- ;; This function is used for modifying common properties of the ACIS* m+ l- C. }% o6 m* q/ X: U, {
- ;; based geometry objects. Thickness is not valid for these objects
9 j6 ^/ x, i) i1 N1 N1 F# l - ;; so it is left out.( s' K* _8 I: D6 Q' {, ]3 C1 m5 @
- ;;
, f+ N0 @5 p* t/ J - (defun modify_prop_geom ()6 D) Y( t" P% ^% E' F0 Y
- (emod ecolor 62)* a4 A: G$ i+ s( h5 A% q
- (emod eltype 6)! k( N& X2 t+ W; u/ @
- (emod eltscale 48)9 W) K% M: U2 D9 D3 z
- (tempmod elayer 8 nil)
0 k: [4 N' Z' z$ u2 Y - )
; p. n& a7 G- O
$ C5 z( j3 A: Q) v* }( F- (defun emod (value bit)
3 m; g. G; Z+ P+ i) J( L3 R4 { - (if (= bit 62)
1 X. t! E, z) @, L5 w% X - (progn
" X* I2 ?# w' @* E3 G- _ - (if (or (= value "BYLAYER")
1 w! H' G/ w5 {0 _) P* \ - (= value "BYLAYER")) (setq value 256))
- d5 }6 H' ^( M4 O - (if (or (= value "BYBLOCK")' I0 O3 g& A6 E
- (= value "BYBLOCK")) (setq value 0))
/ L5 n5 ?* `0 q5 R7 }+ E# }/ b - ). w! Y! o% u/ g
- )& d3 O* W# A' M# s7 \& T
- (if (setq oldlist (cdr (assoc bit elist)))' { W" P# c4 g' \ @' V8 @
- (tempmod value bit nil)
% X- i# W* J4 `, I/ a - (setq elist (append elist (list (cons bit value))))
# S \6 z0 [! I0 L( _' k/ w. a' Z4 ] - )6 I9 S- h: A: p) Z" {$ [. _, H: b
- )) F! z$ I4 s& Q, p1 R! m. K
- ;;; u, q# @9 Q% w4 F* B
- ;; Resets object list to original values. Called when the dialogue or
3 ~4 p0 a' R* [. l' n - ;; function is cancelled.* T6 B' y! L! S& T2 u' {6 f
- ;;* d0 }. t) A4 f% T% z; s/ w" ~. B, Z
- (defun reset ()/ w, H/ {2 h4 [$ |, E: X+ \
- (setq elist old-elist
% N0 z0 N0 U% P% r% `6 p. i2 t - ecolor (cdr (assoc 62 old-elist))
1 S& H0 I8 m6 I' t - ethickness (cdr (assoc 39 old-elist))8 C; J" b2 w1 W8 Z" _
- eltype (cdr (assoc 6 old-elist))
0 T- m) h5 R! ]2 _4 P - elayer (cdr (assoc 8 old-elist))
3 d+ ~$ T+ C# D2 R6 [8 J8 @ - eltscale (cdr (assoc 48 old-elist))
- h) g. ^5 J# K! R& n' N U - )( G# o& R4 }! u
- (if (not ecolor) (setq ecolor "BYLAYER"))4 N8 O- R' z/ ^9 F
- (if (not eltype) (setq eltype "BYLAYER"))) E5 M0 u+ Q" _$ j1 E, v0 w" o/ z
- (if (not ethickness) (setq ethickness 0))
; h- x+ L8 j. g- X: H - (if (not eltscale) (setq eltscale 1))4 ^9 _% j/ l+ a; j- d; ]* B( m
- (modify_properties)
& I s& c f& B7 Y4 H; U - (setq reset_flag t)# ?1 m) g$ ?$ o- _3 R: e
- (entmod elist)
. s4 e0 X5 s, T0 }# q, D - ); K1 ^' O, ^' c$ X% N8 S/ o
- ;;3 ]4 {6 H! W6 o: S
- ;; Modify object when dialogue is temporarily dismissed to reflect latest) _0 e+ d: K& T) S+ X, z
- ;; settings of dialogue. It converts the point from current UCS coordinates to$ ?; N" h3 G6 V M# e
- ;; the proper object coordinates (world or object).
; T+ f8 Y, W- V - ;;' ] o0 h' m0 P' m: k7 ]* g, y
- ;; Arguments: value - in current UCS coordinates. y! z: d6 |5 ~2 [* I$ {( u
- ;; bit - object code (i.e. 10 for start point)+ I, v" L* C5 Z7 O) y* D; f, { {
- ;; ptype - point type 0=world 1=planar
% ^" J" R# z! [1 ]- x9 ] - ;;- _8 @3 \7 N+ b3 C1 H* x
- (defun tempmod (value bit ptype / newpoint)9 u: f; k. y4 H1 S! O r" b
- (cond, q! y6 \9 N1 B
- ((= ptype 1) (setq value (trans value 1 ename)))
( Q; V3 H& l: B - ((= ptype 0) (setq value (trans value 1 0)))8 }4 u3 s, j; ^; |9 ^5 y
- )& U) P+ A' P# N" S* ]
- (setq elist (subst (cons bit value)3 s* w5 k' a9 u
- (assoc bit elist)
8 `. a( V5 H/ R8 K; T. Z u/ J - elist
5 i5 a$ G5 D* ` - )
( }0 _' ]5 e5 w N2 p7 y - )
; t" X3 M: x6 l, M) `% n - )
. L; A; t1 \/ x$ _0 x - ;;
9 R2 }, L) W& z$ g' v8 d. c0 S - ;; The following functions are called after a dialogue has been temporarily
$ r- v* C& [/ ^$ w7 {7 i9 h, g - ;; dismissed and the user is selecting a point. If a point is selected the
% w3 U3 v$ }7 E" C4 { - ;; object list is modified and new X,Y,Z values set. If no point is selected; \3 t6 v1 T% F0 \9 i: k5 G
- ;; (null response), then the point is reset back to its previous values.6 e- H& @0 z4 \% v
- ;;. k2 d# I% j5 ^% I" c3 U
- (defun ver_pt1 (ptype)5 d% i5 a4 ^: \) D" c. z
- (if pt13 d3 F& n1 D6 F, X
- (progn
. `% r# _' D/ X! r- E: d - (tempmod pt1 10 ptype); C2 {: P0 p# b; d
- (entmod elist)
' R+ H2 C5 {- o3 Q, F+ K - )" y& f' B- M1 \+ \; j4 E2 {, M
- (setq pt1 (list x1 y1 z1)). Q/ m/ ]. Q" M6 c8 S! K7 M% I7 H) P
- )# ~- e; v0 r) U7 o/ ~5 Y
- )( b, A1 {$ I$ ~. z& E7 ]8 M# I( B' x
- ' [+ y5 T. z- o( U: y- T
- ; (move_pt1 <ptype> )
. ^5 E# v: y1 g9 h2 f* f$ U0 A5 Z - ; C0 V% N0 ~( J( O. x8 l
- ; Called in liew of (ver_pt1) to translate block insertions which! l8 F. z. R& X% n9 P- p
- ; might have variable attributes attached to them. If the distance
7 R* x# G5 @# z6 D6 s - ; the block is to be moved is < 1e-6, the move is deferred., J/ ^' t+ o9 E' _/ H- D+ N; g* Q
6 T0 B, k1 h {. w, \ }- (defun move_pt1 (ptype / basept hi)
. L0 m3 ^$ \- r" i8 x - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1)) \* I' ?2 l$ h9 q3 g9 @
- (cond
" x4 `& x8 t, F/ k. d6 ? - ( (not pt1)
X# {& `8 @/ r7 b$ z - (setq pt1 (list x1 y1 z1)))' E$ |+ w6 a. H- M+ E, e0 t
- 8 r9 T( C8 \* W+ y( G! P
- ( (> 1e-6 (distance pt1 basept)))
, D" I- J+ Y7 Z5 Y7 C
) I# z* [) s) \$ P; i$ I- (t (tempmod pt1 10 ptype)
( p9 c: S6 I/ K- t1 C& q - (setq hi (getvar "highlight"))
6 I) n) ?) z) a! H& R - (setvar "highlight" 0)% h" L; B% Z$ N3 W+ [3 q7 b9 \' |" e
- (command "._move" ename "" basept pt1)6 s( `3 t3 ~: D- J
- (setvar "highlight" hi))
# L4 e( s* X5 r) ?! J - )3 E$ v$ A0 i$ s# C3 \# @# v
- )( ^9 a# \# j- L9 E: X( \
- - b) s# T) G* k5 n; K/ |8 T" h' |
- (defun ver_pt2 (ptype)+ j6 V/ Q1 p7 V$ ?
- (if pt2 I# ?! b- W/ }5 l) j, i% K
- (progn
2 P$ P) H: s+ q$ b3 x. I - (tempmod pt2 11 ptype)
3 u" p, g; P+ z T$ v+ j - (entmod elist)
& E( |8 J o7 v- L: T" j - )2 v7 J1 L0 p! h; @
- (setq pt2 (list x2 y2 z2)): E9 B* w" t" q1 @ Y! @
- )( G) G" M/ ^+ T) k, s' D. T# y
- )
: Y: {; Y0 R7 V2 ^) Q - 3 {) q7 b0 m. F m% L: o5 ~" ~
- (defun ver_pt3 (ptype)
) q: u% {* t; x$ h( _ - (if pt3
4 l: @' c% O+ O" _. b* r+ D$ C9 T - (progn
+ k: q7 O9 Y, e8 }& f4 Y; J( Z - (tempmod pt3 12 ptype)* o- a& M4 \. r, \+ {
- (entmod elist)
! K6 \, _. S. q+ p" L - )
* r7 j( U- m/ [, V& d( ^# l- U5 u - (setq pt3 (list x3 y3 z3))
6 n5 _# i8 X( `% ~, q - )
! s4 o2 H. D3 v; A3 K - )
2 W! b( k* N- ~- s- c$ ] - ! h8 R; q/ L4 ?* @! j/ {, K
- (defun ver_pt4 (ptype)" a2 b* ?2 ^8 V
- (if pt4
# I1 w, j% |7 J% T" J( K( P - (progn8 }- S" F( L" a$ J2 L% C
- (tempmod pt4 13 ptype)
. X* ~' h; n8 K$ c) Z - (entmod elist), c& @. z. e4 O& E# e5 [
- )
s9 u: `) @ g7 K8 o0 x - (setq pt4 (list x4 y4 z4))
; o `% J$ y: h( _ - )
* D; Q4 M2 ?# u3 W& E x - )
$ M$ X! E/ Q/ M' c" q - ;; Xline/Ray
* ^) q- W; d. Z( ] - (defun ver_xline_pt1()7 \. H3 h& s0 c8 {& m3 C
- (if xline_pt1
) ]! W5 }; g6 L" G3 G - (progn
3 z: a% H( r- G+ o/ a - ;; convert to WCS.9 V9 y- E1 P W3 h
- (setq value (trans xline_pt1 1 0))% R( j( h% u$ o B) X/ U9 |7 D9 S
- (setq elist (subst (cons 10 value)
5 k! {" T5 d) I- [1 W& _ - (assoc 10 elist)9 q: L( Z8 ~, w2 e
- elist; f7 p$ D3 U0 v0 }' @; j4 ?% w
- )
/ `" L9 e5 M8 D5 X2 x4 W6 P# _! J% V - )! D: x. l# A' U7 R* F
- )
9 @) ]% M. U, j: K) a# @ x/ e - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
0 a6 j: z2 _- c, h$ Q! X# a - )3 U- m8 I+ E0 T% ^0 v* I( G4 N
- )' h' s* p* h3 f+ ?% s6 c
- 8 n( M! l6 N/ M
- (defun ver_xline_pt2()/ l; t! m# o; h
- (if xline_pt2) e* J4 \6 K: x- C
- (progn
4 v3 b+ Q5 k3 R5 Q3 n# F5 H8 Z - ;;8 n+ y7 T# Y9 Z1 k6 }) x
- ;; Calculate new Direction Vector WCS1 ?6 }) @' K! d* w
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))! y6 q) ?9 s" Y+ s
- (setq temp_dir (trans xline_pt2 1 0))) g6 V7 a- K( K
- (setq temp_dir_x (car temp_dir)) a( ~4 w0 l8 ~" g5 k3 o& F, o
- (setq temp_dir_y (cadr temp_dir))/ ?4 q4 m5 _4 C* @. \
- (setq temp_dir_z (caddr temp_dir))0 p; s& y3 F* q1 I5 K; S
3 q1 O' h* B) b4 K3 K- (setq temp_xline_pt1 (trans xline_pt1 1 0)) Q9 f* e! m6 ^2 r. H' q1 K
- (setq temp_xline_x1 (car temp_xline_pt1))- h! K7 s6 g4 h; d g
- (setq temp_xline_y1 (cadr temp_xline_pt1))
) A8 r4 B/ S# i7 B% d+ d2 \ - (setq temp_xline_z1 (caddr temp_xline_pt1))0 i+ ?9 H+ D$ u
1 _5 C# p8 P0 ]' n! x- L4 b- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
( f/ S) {$ C1 I& Q - (expt (- temp_dir_y temp_xline_y1) 2)
, T- c: @6 w- t& w0 ~ i- ~+ \! d - (expt (- temp_dir_z temp_xline_z1) 2)' Q7 q# l! e: ?+ n' s7 y; ?8 k
- )))
) d% ?; t, b0 e7 P! I - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
( U# t+ e' f& _3 q. B0 Z2 j - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
, z* @) f7 Q0 N - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
0 t3 g7 ?8 ~" |$ r o - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
) ^- Y' r" P, D' Y. L - (assoc 11 elist)
, I! f4 G& X9 j/ b - elist9 n T0 ^! O; _8 H1 `
- )
; U+ N6 m5 U' c4 Q - )
6 o6 S, y# X/ G4 |5 Z - (entmod elist)! A' u* \5 o& R
- (setq xline_x2 (car xline_pt2))
% z! X2 s* h; C' Z - (setq xline_y2 (cadr xline_pt2))
$ l6 A) E, ? K1 K% [4 j+ X - (setq xline_z2 (caddr xline_pt2))
: _5 ~) C# Y9 {6 ^& O - 8 ]" w6 X0 P& x$ B* x
- $ s/ t9 k1 o! w5 Y" k
- )
9 x; @% {# t3 z9 d+ [ - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)) l' V! i% u" F! e/ ]- D* o0 D
- )# C0 Z; K# l" H! o0 r0 M! e( J
- )1 F' f1 Y" G) V5 X) ~7 k
- 9 |0 E% F; M" D* i2 o% J
- ;;: j0 H X1 V7 c$ K* n' z4 Q; @
- ;; Common properties for all objects
?/ H- |. }, L, J - ;;
|6 O4 U8 e5 @9 y0 R - (defun set_tile_props ()
2 z7 H/ X2 C+ }0 ?5 m3 b - (set_tile "error" "")
+ x! V* S6 U# `* [; D( Y - (setcolor)
" `+ |0 v6 R9 ` - (cond
9 |% z7 A( ~; d" p" h5 }" E - ((= eltype "BYLAYER")
7 P( _5 X% r4 g - (set_tile "t_ltype" (bylayer_lt)))
/ f e3 e+ @! j1 ?. ?3 l) f - ((= eltype "BYBLOCK")9 g6 v. `$ I9 [" Q! y3 m4 c
- (set_tile "t_ltype" "BYBLOCK"))' K) i% q) d: ]- S: y
- (T (set_tile "t_ltype" eltype))
8 B9 p2 f% O/ B Q% @% q# z, t - )
/ o; D# b& {5 |, o2 S" t - (set_tile "t_layer" elayer)
) }. z+ R, X% j4 f: k6 p - (set_tile "eb_thickness" (ai_rtos ethickness))
/ d5 N) |+ r1 u) D" Q- d - (set_tile "eb_ltscale" (ai_rtos eltscale))
4 D* d& {0 m+ M1 @& f0 D - (setq which_tiles (ai_common_state etype))5 \9 B* ^0 V9 G) X. E- O
- ;; Disable tiles if need be...
1 N7 u/ c6 s4 q0 M% u0 L - ! u/ L. E( o, v+ f c, |
- ;; Layer Button and Text Field, [7 y$ {+ G+ t1 }0 W
- (if (/= 1 (logand 1 which_tiles))
/ j4 X j1 ]& l$ X% y3 h* t9 ^7 ~ - (progn
" m) o# Z& ?$ @; M" m - (mode_tile "t_layer" 1)
% v- e- N4 L# J# S) T9 ^& z+ H - (mode_tile "b_name" 1)
& @" E6 D# Y7 {. h9 X - )
5 H% N& R! g$ g; b; V - )$ M6 ^' b, k; E5 B
- ;; Color Button and Text Field
8 ?( @5 L/ g; ?6 T6 \5 L/ |; S - (if (/= 2 (logand 2 which_tiles))
% W' I3 ?8 }; O3 {& }/ G - (progn) m9 V$ f9 B& `, h
- (mode_tile "t_color" 1)- Z& b' u7 R- T7 m) d) r- v) c
- (mode_tile "b_color" 1)
$ K: y( y" V0 s- w5 {: Z - (mode_tile "show_image" 1)$ }7 Y6 ]$ X6 u7 d. u7 X& C
- )5 |8 w1 s0 C6 j* F
- )) ?% G m3 `% Q8 U K$ e$ i' e
- ;; Linetype Button and Text Field% I# K& E6 J1 f: `+ ~ b
- (if (/= 4 (logand 4 which_tiles))# ~8 z, |$ r& [7 j
- (progn- p7 S$ K5 V4 T4 X8 ]
- (mode_tile "t_ltype" 1)# f4 p% C g* v, }, S8 }. ^! i. }
- (mode_tile "b_line" 1)( ~. O6 v4 f. F* f
- )
0 s6 g+ O+ l: O7 Y# o7 w: c - )
6 j& [' d/ |$ Y9 W - ;; Linetype Scale Edit Field& ~3 x* o9 B* Q) G6 X) |
- (if (/= 8 (logand 8 which_tiles))1 p( d0 @2 [1 Q3 D1 Z
- (progn
$ C1 [* _! V' y% } - (mode_tile "eb_ltscale" 1)0 Q% g' |) G, Q5 A6 A5 R
- )
* |$ Z# o0 d- R1 A4 g% a _* B# Y - )' C8 Q% |) ^/ E ~ f
- ;; Thickness Edit Field.
( t/ w1 N- V3 t! I7 r" f" F - (if (/= 16 (logand 16 which_tiles)): R8 V4 L, |5 ~$ X; a
- (progn& Z$ r4 U+ l* A2 T6 t# Z
- (mode_tile "eb_thickness" 1)) v6 o5 ~4 b, n: `; V
- )
3 l7 T# |* c% Z - )
% e6 ?* t3 g g- L! K$ r2 ^; R- _ - )7 H. f0 {( H f; s0 |
- ;;
5 X6 Z" y4 I) \% o. o/ B1 C - ;; XYZ Point values for all enitites
# n. t; L4 f/ n9 j - ;;# A4 p2 V; E: H! b) G
- (defun set_tile_pt1 (ptype)
# X; R6 n5 @% i - (if (= ptype 0)
6 J6 G" y- o" X. o- p" Y - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
* r5 p9 S" Q1 P2 d. j1 v9 S - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
7 ~( x' V V- y - ): E: J& {2 x2 s. w4 X# r" B
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))5 H+ M; u5 w! `3 w4 Q) ~
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))( P% r; }0 W. ~$ M& Q
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
4 V( X+ q7 B2 o* o" Z3 z+ i# V' @ - )
% ]$ @) y. z0 d; u - (defun set_tile_pt2 (ptype)
* ~, G1 A" I( N; T) u0 W% ~ - (if (= ptype 0)
" j, c/ A- Y' W/ q& c - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1)). Q+ z. E" ]2 h- ~" Z: Q
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))! Z2 c. y% R* x$ P$ c
- )
3 E) i( j: i' G R, j - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))5 j% z1 F0 ~/ e$ e/ d$ [
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))" x* f7 _) z0 L5 x0 H
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
5 l+ R! G/ b7 H( w0 N - )
' f0 N6 Q8 {" _& D' h& s - (defun set_tile_pt3 (ptype)% ]8 D: A* S5 V. J
- (if (= ptype 0)
8 e+ s. ]4 N( K2 x - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
* r, p# _5 e" h4 [ - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
6 c; M2 {; }* t* ^- I* X, M - )
; i# h6 e1 ^! T2 q. Q - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))9 {( r, O3 `6 L
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))* A, F2 _* ^+ g/ }3 K& |- U
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
: G) @$ z2 v2 z& p% r- t$ } - )9 @: E6 J8 C6 U$ A2 N6 I" c( E
- (defun set_tile_pt4 (ptype)
, i2 k$ e+ B# j: |4 w - (if (= ptype 0)
) ?; W% ^3 z3 d* N% V# s2 q - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
# Y9 ?& d3 S. [( m' r. F5 V! m" q - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))2 w% B6 y4 o c- X9 D; r
- )
, U2 _4 e# u( S' M0 I; z9 G0 h - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))0 I* i( ]6 _9 `, k7 |, g# E
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
! J1 W2 g; \, q# M - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))3 v! T" Q5 P6 ?, b3 p: s
- ), y5 F7 C4 C$ Y# ` Y
- ;;
0 S4 f6 b; o6 { - ;; Xline/Ray' b$ j/ q' d; A7 m! F. A- @; _
- ;;
/ ^8 B$ D5 h& a4 u - (defun set_tile_xline_pt1 ()' Z, V1 z' v/ P' p n5 Q
- # y3 Y. B) W# |. g8 u4 L8 p0 I3 k( n
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1)); j$ B" H; [( l( e
- ) B6 b' _! D+ |( E- W
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
2 e# ~, E6 E7 v( `: j8 D - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))7 K9 s( P# n9 ~$ y2 I3 C
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
1 c9 R! m) ~+ o- Z - )
/ U# ^5 M* b& D) W: `% P0 e - (defun set_tile_dirv ()& @" F0 g8 T1 X' W6 N/ @
- ;; Convert 11 group to local UCS (displacement)& X2 i5 B2 L" d8 |- V& z8 O
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))9 k+ P; x$ N' H7 M$ s
- 1 T4 U$ z. V; s9 T) g
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))% m, J% c2 y' r# c2 s& A; V
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))" ] K3 d$ X t* f/ _. e
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
# G& u: D9 e7 J - )9 x: [$ H$ Q( O7 a, V- p/ W( O
- (defun set_tile_xline_pt2 ()( L0 P. n7 ` `; O4 |+ c
- (if (not xline_pt2): @" D& ^% U& y& \; G0 \
- ;; Initial second point is Root Point + Direction Vector
+ a) m) p. d: Y! v) a: F% b3 Q - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
6 a8 D2 ?. |; L; |" x& _9 | - )& M" z9 A: ~4 h! G/ E1 S) k$ w
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
0 d% p7 z7 x# G$ N$ Z - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
! q2 i& f- |' j" F: i0 g - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))9 s# e9 [ r: D2 S& x: [+ u$ v: A
- )7 O; V3 J9 H1 s9 q8 [
- + E6 e; j4 @3 c3 Y; x- i
- ;;
1 D' B3 k1 x, m S4 p3 t4 O$ n1 o0 g - ;; Handle for all objects I# E. o, H* F& W+ o
- ;;
$ P: d' r" n0 W# H# ` - (defun set_tile_handle ()
! S9 p9 e/ L8 K6 ? - (if (setq hand (cdr (assoc 5 elist)))1 ?4 |* T1 y# g, ?1 @5 ^6 k
- (set_tile "Handle" hand)
; P3 m5 k" x0 g9 W! z - (set_tile "Handle" "None")' N- Y i; ^8 n, N% g* B
- )6 T. U* C3 ~5 ^/ B
- )
# F( c9 f9 r% @- T' B2 ` - ;;% o9 Y- U/ y. v& \: N
- ;; Radius for ARC and CIRCLE9 `: I( C# z! v! G
- ;;
# o/ o/ y7 x/ _$ j5 V- t) y - (defun set_tile_rad ()' a o a$ k1 l! p2 \+ V/ X
- (setq radius (cdr (assoc 40 elist)))
% b1 X0 X: J$ Z6 \ - (set_tile "radius" (ai_rtos radius))' D* w: b9 O1 A) V3 Q" a, k
- )
9 r2 ~, k7 B# w% E - ;;# h6 S# r# o& g# `9 y9 f
- ;; Start angle for ARC' z: x F8 S- U
- ;;& s9 z+ c7 f+ r
- (defun set_tile_stang ()
% L" V, ^5 W S) k; J- ] - (setq st_ang (cdr (assoc 50 elist)))
( S }6 w8 W) m4 F' O - (set_tile "st_ang" (ai_angtos st_ang)): b9 h" f* q; O5 J2 j
- )
" s4 V" |$ ?$ z. ` - ;;
?) A. i3 ?+ Z8 D5 @ - ;; End angle for ARC
% q* y6 f0 G/ n0 R' ` x+ L - ;;
8 Y1 V+ j% F% S/ S. i5 [( o2 f - (defun set_tile_endang ()
% r7 v7 [& n1 o# k* X, M - (setq end_ang (cdr (assoc 51 elist)))' ~4 A% u; P1 W9 H
- (set_tile "end_ang" (ai_angtos end_ang))+ ?4 A5 T4 ]8 f7 `2 J [
- )
+ B! [- g. b- p0 g - ;;
9 O. H* O) v6 d! r - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
) I, P' P6 _$ E) `& R, I; ^ - ;;
6 U, m/ |' r, v - (defun set_tile_rot ()$ N" J. g- s; Z4 ?" N
- (setq rot (cdr (assoc 50 elist)))2 { l( @8 {5 V! b, }- R
- (set_tile "rot" (ai_angtos rot))* Q0 } P5 |1 r! y& p( B
- )( z6 [. N& |9 R
- ;;1 @2 `" W8 l7 O4 f5 |# a
- ;; Height - Text, Attributes and Shapes
% C: z! j1 q+ P* _, ^! ^8 S; ~- X3 S - ;;: s- Y9 O, [+ E4 `
- (defun set_tile_hght ()3 f, l- w: n% c- M2 h9 l
- (setq hght (cdr (assoc 40 elist)))3 K1 ~, i: p/ \1 V9 y
- (set_tile "hght" (ai_rtos hght))
: t5 I& N' ^( M0 |% v5 A - )
3 t8 Y+ a0 d; z! w - ;;! e; {3 @' N, g4 N" W5 M
- ;; Width Factor - Text, Attributes and Shapes
0 r3 G) ], s2 s% w/ ]4 I: V3 h( P. b; K - ;;6 q9 b, G0 l! }% E7 \: R3 Z
- (defun set_tile_wid ()7 S% }& {0 {: I7 M7 c
- (setq wid (cdr (assoc 41 elist)))! G: H& g7 S. m' M
- (set_tile "wid" (ai_rtos wid))$ I* B8 b5 z2 P
- ). R, Z0 Z5 B8 u5 `5 W
- ;;
) a- |9 c3 ~% o t% Z4 p+ _7 T - ;; Obliquing Angle - Text, Attributes and Shapes
* T9 e' F$ j" ?+ |- z" b6 v! N - ;;
' T) e/ @7 [( H( O0 e - (defun set_tile_obl ()' {7 n+ H! v% Y" z7 e
- (setq obl (cdr (assoc 51 elist)))
" ]' I# o a U+ [* i - (set_tile "obl" (ai_angtos obl))7 d6 M$ r& |! C' v1 n, `# `
- )
9 P- M) S; f3 V3 z& n3 @2 O - ;;
6 G$ l0 V: l( {* {+ C) h - ;; Text string
# }, V( ]7 E. c& @' p - ;;. ^! B, _' G* P5 _
- (defun set_tile_text ()3 w! ~3 Y% \6 G. s; d" q x
- (setq text (cdr (assoc 1 elist)))
$ A8 F: H9 U) V# o - (set_tile "t_string" text), B5 y; z# ^; @, o; N/ a1 D+ E4 V
- )
) n5 H( l- F$ g3 B* w4 O - ;;
7 n# f9 N& f6 @2 b' J - ;; Attribute Tag
8 P& ?8 M' T7 [1 z6 M - ;;: F" m% D9 o1 y- K" @! `$ z$ I
- (defun set_tile_tag ()4 F4 N( v) V( p
- (if (= etype "ATTDEF"). f1 P, \: F+ u; D! L& h- L* j
- (progn: a+ @$ G- J. _
- (setq attag (cdr (assoc 2 elist)))
4 k& L) I% w, \+ T Y4 b# f - (set_tile "tag" attag)/ m- g) e- W, ^2 l- g
- ): O8 e! h; f! o! }: h. k( Q* @3 Z
- )
! h( V$ d' E( ^ Z- _) I* z - )
- x- _* G" Q& _ - ;;8 p+ d: s0 Y, ^
- ;; Attribute Definition. }* o* ?- F9 |: m+ ?. p
- ;;# f; r% u" d5 {0 U6 e
- (defun set_tile_prompt ()2 j3 c. N% C* l4 w$ H" H* s3 |. f/ g
- (if (= etype "ATTDEF")% u) I V3 I( i2 k& Y( E7 y5 T
- (progn
8 Q$ w! i; P2 G% O) H$ ]6 l6 W - (setq atprompt (cdr (assoc 3 elist)))
( i% F9 x: \+ j/ d% \, L6 s - (set_tile "prompt" atprompt)
6 z. t! r1 [8 |. F# H% p9 j - )
' y8 A% h, L' t) K - )9 D- E$ b# \" a# f3 s
- )
4 c9 }; e# \4 e - ;;
7 U& @' v7 w, Z0 _# s9 `, e - ;; Justification setting for Attributes and Text. Initializes, j5 L! i% T% G" }, g* ~
- ;; popup list box* O* V( w+ t; a0 x, G. U' z) _6 p2 _
- ;;8 i' Q# V; f' P6 B# ]' H
- (defun set_tile_just (); H3 U; o6 ^! h+ K+ g
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment, C; N, F3 T3 k) C4 z
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
) \' U3 Y D7 h% w - (setq ha-prev ha)) i. k! ~+ z% b
- (if (= etype "ATTDEF")
' l; h( H) q- R6 h7 O8 V - (setq va (cdr (assoc 74 elist))) ; vertical alignment' \7 @4 G/ `6 q% n0 x
- )6 {: k" Q( m1 W8 L- a- @ G8 _
- (setq jlist
1 }) y! b/ y1 Z% @0 Z' d# P - (list "Left" "Center" "Right"
' N' Z5 h1 y/ q8 c! J - "Aligned" "Middle" "Fit"
6 K! b# i9 @; R& V - "Top left" "Top center" "Top right"
6 m! n3 G; b" \3 v - "Middle left" "Middle center" "Middle right"
/ ~! C/ q) |- D% R+ a% x$ x7 N7 t - "Bottom left" "Bottom center" "Bottom right"
# X$ n5 J9 H& ]3 n: Z, u - )+ i# p/ q M' A. `( q
- )
4 q- m" d/ E4 k& E% [ - (start_list "popup_just")' @6 R9 T& O3 _& X' j
- (mapcar 'add_list jlist); C/ u% b4 ]7 L! y9 j
- (end_list); @1 g% k" q4 L% c/ o$ u
- (set_just_idx)
" u, o1 d6 n9 Q" q8 |2 [ - (set_tile "popup_just" (jlist_act just-idx))+ [+ O6 n( g; ~4 |
- )
. ?% K: t' x: }2 o5 Y - ;;
6 x# l+ t- C: k* Z8 ^ - ;; Style setting for Attributes and Text. Reads symbol table for popup list
% c# ?. x; m+ ^9 I. i- {2 x9 A - ;; box.
! ~& o5 I S' @. Y9 }+ x& N - ;;9 N! i$ n. M. K2 c j3 e
- (defun set_tile_style (/ sname style-idx tlist)8 a( W1 S, E: y# y1 m
- (setq tlist (tblnext "STYLE" T)3 C* ~8 X8 I7 [5 L4 t3 [& ?4 C
- slist nil), x4 ~" k7 y7 ~; B
- (while tlist
! N; i( [2 S. j- K6 A - (setq sname (cdr (assoc 2 tlist)))6 a8 ?/ T0 c; v( H) O+ Z
- (if (and (/= sname "")
/ Q" Y0 l: v1 O# D6 ~: N3 @5 b - (/= (logand 16 (cdr (assoc 70 tlist))) 16)), S: q) ~/ k A6 R/ l( E
- (setq slist (cons sname slist)))
" U) u& Y4 K1 b2 d4 j - (setq tlist (tblnext "STYLE")))
5 L1 K* L7 D) {2 Y$ e% y - (if (>= (getvar "maxsort") (length slist))2 ?5 z; B+ W- n" O! m6 u- k7 D
- (setq slist (acad_strlsort slist)) ; alphabetize style list! t( ^ q( Y; l/ L( d3 N' k% o' m
- (setq slist (reverse slist))) ; or reverse it to put it in DB order! z+ D+ j/ H6 _
# S9 i2 u, X. P- (start_list "style")
7 X1 p! B$ X$ p5 _+ O# r4 r - (mapcar 'add_list slist)! W+ w1 @* G1 P' B6 i" u
- (end_list)
8 n9 F! G8 z, A - (setq tstyle (cdr (assoc 7 elist))): K5 O1 g5 X" d J
- (setq style-idx (getindex tstyle slist))& V, C& L& i% t$ m, P& T
- (set_tile "style" (itoa style-idx))
7 U7 I! C% Q V0 P - )* b* f$ v; h B+ E
- ;;, H5 z5 f; l4 U- V& l: G* L
- ;; Text and Attribute setting - upside-down, backwards
; L) @5 r/ W8 K3 Y( r - ;;2 z6 A; I) i) B/ |2 f
- (defun set_tile_bk-up ()
; u" v# T. y6 z9 V+ r) ?# _ - (setq bk-up (cdr (assoc 71 elist)))
& b2 A. M7 o$ P5 q - (if (= (logand bk-up 2) 2)
/ G7 x" X1 H/ M l6 k - (set_tile "bkwd" (itoa (setq bkwd 1)))3 y$ ] u) Q$ p' _! F7 j
- (set_tile "bkwd" (itoa (setq bkwd 0)))
; l5 X) P! t3 H4 p, K - )
# v! @4 i( @6 q3 V/ r# a3 g+ z - (if (= (logand bk-up 4) 4): P# V f% @6 V6 _
- (set_tile "upsd" (itoa (setq upsd 1)))
. s" L* X8 q, G# ~' J" q - (set_tile "upsd" (itoa (setq upsd 0)))
! F* h: \. r s3 Y: p - )( l. `; Y. b {6 M" N" }
- ): h. X& Y; D2 X# E4 b
- ;;9 G2 l* d. w! x; N0 ]
- ;; Attribute setting - invisible, constant, verify, preset# E1 ]7 ^' W; \3 N' f
- ;;/ a- |3 r6 K1 }( L1 @
- (defun set_tile_icvp ()
$ F" b J* ^9 G$ n - (if (not (setq icvp (cdr (assoc 70 elist))))
) q K& v( z$ ]1 V, p& g - (setq icvp 0)
* F$ {2 \- M( \) h - )
2 ~" Z3 f @" D* k/ e. `; ] - (if (= (logand icvp 1) 1)8 p2 y5 i! F0 r# G# W7 t E
- (set_tile "inv" (itoa (setq inv 1))). ^5 N9 O' n1 z7 O4 v9 Q! ?4 D
- (set_tile "inv" (itoa (setq inv 0)))
% I/ v/ p/ M( F/ Z( ~: d% } - )
8 h8 ~) S- q6 J% e" s8 }8 V/ z - (if (= (logand icvp 2) 2)
. c3 I4 Z( ^1 z; U7 l7 A) ^ - (set_tile "con" (itoa (setq con 1)))* |/ D+ M: q( D, ^) o! G
- (set_tile "con" (itoa (setq con 0))). n# R0 W+ L# F" [% m; y" u+ c
- )
1 `9 p) k& A7 w* [ - (if (= (logand icvp 4) 4)0 x1 S2 C; z5 J* ~" R
- (set_tile "ver" (itoa (setq vfy 1)))6 ^& D0 ^- o6 d- j) o
- (set_tile "ver" (itoa (setq vfy 0)))8 `. f) p$ h. `1 C+ M& u2 s2 [
- )
s# s, p8 I* y' W1 ~2 J - (if (= (logand icvp 8) 8)
. i5 X1 w5 `* g/ g' O; F( s - (set_tile "pre" (itoa (setq pre 1)))5 ?) y2 t: e6 Z8 d Z0 c4 K8 q, Y8 {
- (set_tile "pre" (itoa (setq pre 0)))& w, ~4 `, Q9 J9 V8 w2 M6 ]
- )( g9 ^1 L7 d2 p6 U5 p
- )( ~4 c7 [: ]5 J2 W/ d' U: M! W0 r
- ;;
, K; p8 [: H* v1 D, _" Z. ^ - ;; Scale factors for block insertions5 `, l* K4 f; w' k/ Y- }3 d
- ;;
5 |# W4 ?' @0 A; ^5 f* n0 w - (defun set_tile_scale (/ temp)
0 v: Q6 v. b/ [; w$ H1 `8 A - (setq temp (getvar "LUNITS"))/ M. k' m6 @* [! x# b% S N7 f! [
- (setvar "LUNITS" 2); v0 }/ u$ t8 a* }; }
- (setq xscale (cdr (assoc 41 elist)))* V$ a- v/ ?, h$ C/ d U7 G
- (set_tile "xscale" (ai_rtos xscale))
/ X- C8 z! D) x* P7 `# V* e$ x; c - (setq yscale (cdr (assoc 42 elist)))
6 B$ N, }% h8 l [' H - (set_tile "yscale" (ai_rtos yscale))
( s: ]4 D z8 n8 X) S - (setq zscale (cdr (assoc 43 elist)))" {; e) \) A1 |1 N5 X+ L" s* K
- (set_tile "zscale" (ai_rtos zscale))$ P8 C# T% }% k. Q4 i
- (setvar "LUNITS" temp)9 @+ j+ w& N7 A
- )
/ h+ f# | H4 Q! v% P - ;;
; t7 U* }2 `+ U) o3 r! `/ n3 s - ;; Rows and columns for block insertions% T& x; i0 o8 C7 Y. P
- ;;/ c1 j& e& Y1 l. A
- (defun set_tile_rc ()
/ b$ W& W2 ^6 b2 A# k$ _) s3 ]2 i - (setq columns (cdr (assoc 70 elist)))/ U7 \' u7 g5 o' Z, P1 m& `7 s
- (set_tile "columns" (itoa columns ))
5 |( M, R) S. `6 r - (setq rows (cdr (assoc 71 elist)))
0 C( s0 W4 u- ~) e - (set_tile "rows" (itoa rows)). n$ s8 D' d1 C/ a2 Z3 b
- (setq col-sp (cdr (assoc 44 elist)))" P) ~: h; ?5 ?
- (set_tile "col_sp" (ai_rtos col-sp))
% B4 u! v- L' G2 u. w - (setq row-sp (cdr (assoc 45 elist)))3 h+ J. Z! t& _, J7 k1 J9 X6 @
- (set_tile "row_sp" (ai_rtos row-sp))7 r+ _$ m# z( X# v9 U
- (if (/= hasclip T)
# i$ G+ l# A2 I* [( S) S0 g8 W - (mode_tile "xcliponoff" 1)
/ C' N: P4 L0 N8 `" p! V+ e - (set_tile "xcliponoff" (itoa xcliponoff))
" @9 C5 W; k9 ^" u - ): y$ L2 h' \, C# Y# s$ E: I
- )
7 c7 t3 {' e- a7 A - ;;
1 L& E8 e0 P/ x8 B" o - ;; Invisible edges for 3DFACE n% }1 V6 n7 |# `: W
- ;;
) |* p4 f9 P! r& Z4 l& T2 G7 k- s - (defun set_tile_edges ()+ q# N2 k- h+ k& `0 o+ y
- (setq f-vis (cdr (assoc 70 elist)))! Y2 e, l- o$ v$ |
- (if (= (logand f-vis 1) 1)! K% e$ A: B) d3 q W
- (set_tile "edge_1" (setq edge1 "0"))8 Q) V; l' e& B0 M# o
- (set_tile "edge_1" (setq edge1 "1"))
9 L9 h8 P6 N! I6 V! Y! X - )' e/ R+ D5 @# z5 P
- (if (= (logand f-vis 2) 2)
0 h4 i! R/ ^& X6 X% {4 _8 Y% i; P - (set_tile "edge_2" (setq edge2 "0"))* U1 D, o$ Y, _7 T7 K4 d
- (set_tile "edge_2" (setq edge2 "1"))" ^" U9 D7 O) c3 c7 |
- )
6 ~; ?5 k, O. b8 _ - (if (= (logand f-vis 4) 4)
. N; v, y3 b. ~+ e* U5 |4 U - (set_tile "edge_3" (setq edge3 "0"))) u# |: a0 s* _9 Y+ W
- (set_tile "edge_3" (setq edge3 "1"))) i1 a$ u3 [4 ^( x5 h9 y2 L2 s
- )
4 K O! r- P8 y q! s. j - (if (= (logand f-vis 8) 8)6 c; P8 p1 N. \
- (set_tile "edge_4" (setq edge4 "0"))
( V( ?7 u B& q) g/ U - (set_tile "edge_4" (setq edge4 "1"))
$ I) h( O* a! X3 c, P - )
; L, T( ~" u. x) b) ^# P+ w - )7 \- f: v# |0 r3 k8 b2 U' E- \
- ;;. s5 c. b1 }. }% ^0 S y
- ;; XYZ Point values for polyline vertex
. E# Q& b2 @; I% U2 } - ;;
+ \( i$ Z/ c6 G u+ w; i' _ - (defun set_tile_vpt (ptype)% [$ b5 x: E! @1 b2 M5 d) X8 e
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE"). i2 S) S' }6 e! s; {" l$ A1 z5 c
- (progn$ x/ K0 ^4 V- r& e f$ m
- ;; ctr is 1 based, vertices are zero based.
1 {) J/ d. T r4 ` - (setq vpt (cdr (getLwVert (- ctr 1))))
5 c$ G! d5 l9 R$ _ - (set_tile "xtext" (rtos (setq x1 (car vpt))))
/ D/ w* ^" B$ H$ [ - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))2 t- X/ i5 p/ D' q- V) \
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
) o9 b8 y: Y E+ B8 }7 t* U - )
$ u F) h0 C" V - (progn
+ U3 t( N1 j% |' h5 R/ _3 k# ]# o7 i - (if (= ptype 0)
! w; D/ |1 s r) [# B - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))7 y+ Q% X# {3 e! Y
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))) w6 J1 b" B; W/ ]$ `2 q; ~
- )6 x2 V. P/ L$ n( w
- ( G' R0 [9 V! i3 L9 e
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
9 R: F% a2 Z2 Z3 E+ R1 ^ - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
2 c! o- R* |" t/ P! `. a6 P - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
; n: |1 u* S4 D( I - )7 a# r* @& S! x8 h A, o4 l
- ) a. c+ I# M9 z6 j, L
i/ A1 y& n" M+ Y( ~- )
! \" O0 P# U+ H0 h8 Q - ;; This is the equivalent to doing an entnext on the heavy weight' K& w4 h$ J6 d9 Y0 A
- ;; polylines. The hard coded '4' below allow stepping over the' e; d- T( h5 @ y; S, C* [
- ;; 40 41 and 42 group code information. The while loop finds the: a: c [. Y9 R% _1 b( @7 r
- ;; first vertex which will be used as the starting assoc in the! b8 |: @, A8 j) X* X
- ;; call to nth.2 B+ e3 Z8 R$ l% b9 U
- ;;% d5 G+ u% q- O3 c; z' b& P
- (defun getLwVert (tmpctr / count tmp)( n0 T' g/ P, j) e {1 v
- (setq count 0)
( z; E; k3 r/ Y1 |4 S% U% y - (while (/= (car (nth count vlist)) 10)
1 s& H- F; G: @6 U: v - (setq count (+ count 1)), ]0 J7 d: r+ q3 v, u6 b
- ); E. B2 u6 {* y* f, s) h; v
- ;; If the counter reaches the number of vertices,
# a) w; A, u5 K0 _ - ;; reset ctr and tmpctr to zero again.
# q* T6 O5 A5 T4 C- ` - (if (= tmpctr (cdr (assoc 90 vlist)))0 a" m5 B! c7 r5 |2 e0 l
- (progn
6 S0 J% t: j) H2 z7 `* H, @ - (setq ctr 0)
0 v% e# q' P R6 O. E. h. m( o - (setq tmpctr 0)
# ~6 g& e5 O o* E, k5 p - )0 f/ W! Z7 [9 F* w! h
- )5 m! d2 ]9 S, f M5 R* q8 q
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))( y+ P4 E, J H, q7 H
- (setq tmp (append tmp (list(cdr (assoc 38 vlist))))); A- U, P# Q/ W0 Q) Z
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))9 D! h. \; r1 g- m; E
- (setq tmp (cons 10 pt1))6 p& z' l* q$ _1 e/ `
- (setq tmp tmp)8 T6 f& P/ x: |5 {% N, T
- )
2 O5 Q- @# s+ R" q; X - ;;
+ o1 b& w" i8 m3 ~' K8 i0 B$ u1 p - ;; Set tiles for Spline properties. If the spline is rational then we3 z. ?2 a1 I' @$ P
- ;; need to display the weight values of the control points, so set
: d/ D6 M7 S( s- q. c8 b - ;; flag to 1.
. L" M. t# K2 q - ;; 1 = rational spline9 u$ ]! q. F$ v7 i
- ;; 0 = non-rational spline
0 Z9 b! i/ Y6 a, R' O - ;;+ ]8 g% `3 z& i0 B9 Q8 ]" D6 C2 E, Q
- (defun set_tile_spline_props ()6 e% q3 {( K; q' u$ S( Z, F9 B. U
- (setq rational_spl_flag 0) ;; initialize rational spline flag
3 g& y& p+ E1 S - (set_tile "Degree" (itoa (cdr (assoc 71 elist)))), G' |- `8 {$ Z! N6 d$ L
- (setq bit70 (cdr (assoc 70 elist)))
8 {& S4 J/ j: \$ y/ H5 s - (if (= (logand bit70 1) 1)
- ^" C+ T# |' Y5 S4 Y. I - (set_tile "SpProp4" "Closed")
0 `3 I0 F1 P( L; J* r: s - (set_tile "SpProp4" " ")
2 r, }/ m o8 ?' p$ @" j - )
) \! i5 b/ j" w; t6 b) w, G. P4 K5 k - (if (= (logand bit70 2) 2)
/ X* j6 e+ k5 {. [" O; O' @+ B - (set_tile "SpProp3" "Periodic")" [6 ~1 ~7 m/ b/ X. T. D6 K
- (set_tile "SpProp3" "Non-Periodic")+ U+ K5 a! F: F( ~5 i0 U
- )/ w* n {8 H# ~) j" _5 }
- (if (= (logand bit70 4) 4)
) O2 x% S7 ?- l T8 I# R - (progn
6 p6 L9 ?" U8 E+ D% p - (set_tile "SpProp2" "Rational")
. E7 g& F: Z( U+ \. p/ `( ?7 [ - (setq rational_spl_flag 1) ;; this is a rational spline
) _7 `7 i! b7 X- n - )5 ^& s3 e. o' F" K" Z: c8 s( a
- (set_tile "SpProp2" "Non-Rational")
9 w8 Z7 V' t6 C3 R" c) d; R3 y5 @# } - )
, H' R5 g* c% w) a0 Z8 ^3 n - (if (= (logand bit70 8) 8)
( k1 z5 ^8 p( P7 J; E - (set_tile "SpProp1" "Planar")
! E7 T% L2 i6 b1 s8 H' X - (set_tile "SpProp1" "Non-Planar")0 q8 A& P1 u0 h! Y' Y: U$ N( l3 f
- )
4 n& M8 O" S6 E: K! g - (if (= (logand bit70 16) 16)
& F/ K( Y+ t% L - (set_tile "SpProp5" "Linear")
& ?% {( M Y. R; ` - (set_tile "SpProp5" " ")2 Z! }( I; s |) p8 P. s' d
- )- P4 G( W0 |/ m# X
- )) ~+ P( ~3 F6 u
- ;;' s5 f; ^( r8 C& r3 N) [
- ;; XYZ Point values for spline points; ~! z; K5 ? Q- @. B, M
- ;; Need to account for WCS/UCS" x J& l j8 A' _
- ;;. A, C: |& I3 i4 s; U) a. o; U
- (defun set_tile_cntl_pt ()
% ?* h4 I) q4 }0 i6 b - (setq cntl-pt (cdr (assoc 10 elist))) }: _2 C# w2 @; D* A8 q3 m& D3 q
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))4 K9 l! ]; U+ [; f i+ t
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt)))); [: k( u, Q/ ?# j5 h: z# L
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
/ c* e2 k) ?# ~/ A& k, @ - (if (= rational_spl_flag 1) ;; if rational spline
+ `$ C7 q8 q& m8 z1 B# f, ? E - (progn ;; show weight4 Z# j- a! V2 N3 a, {" h
- (setq weight (cdr (assoc 41 elist)))0 f( O6 d! r1 c* p' H# Q' D! M
- (set_tile "weight" (rtos weight))
& }, N, ?: Q0 v3 M - ) ;; else
% K; T- a. n9 s, f# i6 b - (mode_tile "weight_text" 1) ;; disable weight field
$ _3 ^8 A# A! X8 d6 a4 q - )9 h4 Z( |# f% g1 u# @
- )
! N6 v# `! w8 ~( x - ;;
p) o* k- t5 x6 s3 H: L0 b: L! m - ;; XYZ Point values for spline points
6 D- M s3 _6 J' d$ o0 ? - ;; Need to account for WCS/UCS
& a1 W$ I9 T( S# n) R - ;;/ G2 Y+ u9 F V. l* N; a4 t" c3 r1 z
- (defun set_tile_data_pt ()
( D4 p7 W0 U9 g0 [) u& b4 V4 p/ m2 o1 | - (if (not (assoc 11 elist))
$ D) f! h# @+ Z+ g0 a6 D2 ^ - (mode_tile "data_pts" 1)
/ G8 H# k U1 \$ g% M* U7 o - (progn
: _ A6 j8 G I$ d6 O) b - (setq data-pt (cdr (assoc 11 elist)))
o0 y+ o! d* V7 V2 Q# Z9 u - ;; display points with current precision.
F8 a8 ]5 {7 N7 |( N9 e7 B. q3 f3 Y - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
% C+ p$ t4 K3 _5 z( {% W - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
7 W" V% ]; X9 \7 n - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))7 X1 n8 d/ o- B% f/ s
- )
) F9 }" r% U8 I% v. z; o - )
1 n s( s6 _9 @ - )
% j) ?, H1 K) h. U - ;;
% K# R) W, d5 |( q& d3 i - ;; Fit curve, fit spline, or smooth spline surface setting
; h5 | C5 ^2 ]; I' p - ;;
, W; G& U( m& Z0 J - (defun set_tile_fitsmooth ()
' y* u4 ?6 v% }! k9 X6 B" G7 a - (cond3 b) C% y- e3 ~% D7 v3 d
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
+ N; S4 N: v. ]9 [4 H- w* ] - (set_tile "none" "1")
5 q% f4 I5 R. }) E- g3 m- ^ - ) w% k. c! ?( q; [
- ((= (logand bit70 4) 4)
3 v- d, W* S; {% B - (cond
% e! B- r1 y5 x, }/ r {4 k/ e - ((= bit75 0)
2 w3 j9 |$ S8 W+ W8 e0 p4 ^ - (set_tile "none" "1")
# m& T$ L$ U$ [/ E T9 l5 u6 _0 X - (setq spltype 0)8 Q+ I1 [0 L8 m( L# g% E+ [
- )0 j) B7 u% o1 E. c2 R9 ?
- ((= bit75 5)
" ^9 i0 J1 U7 g6 o. E - (set_tile "quad" "1")
8 r; S9 B0 x" q8 q! _0 U* ] - (setq spltype 5)! r8 `( u. v% I) K8 h- R: K2 m
- )" ^- T8 V; L2 S9 [
- ((= bit75 6)! J( E r5 @5 Z, ?$ @) F
- (set_tile "cubic" "1")
# L; @8 o4 r9 F6 N t- r3 u' o. U. t- T - (setq spltype 6)
5 T M& c X5 `3 s3 f. }* ~ - )
- {" W* H* W' { - ((= bit75 8)
: q& {) i( e* _% B9 E/ M9 h& R5 l - (set_tile "bezier" "1")
- @6 _# N- J8 P! n2 K2 }& n3 o9 { - (setq spltype 8)
1 I2 o3 Y D% {3 a5 f - )5 t- _! O, I1 _5 S
- )
4 J$ J6 s" ?( Z' _8 H9 a - )
1 [: @4 I/ K& E* S! d( a - ((= (logand bit70 2) 2)
! r6 r- ]3 s% C' r) B0 f; N - (set_tile "fit" "1")
7 R: t9 C) R5 ] - (setq spltype 1)
: W* H4 v8 x9 E( h c' c/ @ - )2 ]. t6 B8 ^3 j3 ^, W% }6 s
- (T (set_tile "none" "1"))
0 V. g! m' o& i - )6 c- q; h' X0 G4 W
- )9 t4 T# N4 T0 [8 H9 k: a
- ;;
7 _! L% X5 M; \8 d4 C2 r7 [: B/ L; T - ;; Closed or Open mesh and polyline setting3 T2 G5 P! z: K8 b+ k6 t- S* h
- ;;1 A4 P/ h( u/ n' T
- (defun set_tile_closed ()& i7 L* p! J" Q2 N9 `% s
- (if (= pltype "3D mesh")/ Z4 h) m5 c7 J/ m N O+ b; n
- (progn
1 r( a: e2 r8 M4 f `, f. Z - (if (= (logand bit70 32) 32)' E; B# B6 [# F( ]) r
- (set_tile "closedn" (setq closedn "1"))% S3 f0 ~6 y# X: `" U& v" J# }' k
- (set_tile "closedn" (setq closedn "0"))
4 D1 L- p0 @# I [9 f: ^ - )1 Q9 Z _2 F; C9 D( |$ Y6 ~ ?
- (if (= (logand bit70 1) 1). h( |- X% K/ `) K
- (set_tile "closedm" (setq closed "1"))- A# ^/ l: s+ c% w7 C$ r
- (set_tile "closedm" (setq closed "0"))
) }6 M' N* P9 D+ u o - )
7 S; [( t" X# O" { - (setq old-closedm closedm old-closedn closedn)( p% N/ R" J2 }* n$ U) F
- )# y E {5 }: `$ Q% m8 }1 R
- )
\: p" t1 X- i6 R - (if (or (= pltype "2D polyline")
3 P) A6 y2 r* G - (= pltype "3D polyline")
$ y3 B4 @- i: `" S5 C- A8 r - )& A. h5 A$ D- P1 {' P/ W! L3 F
- (progn
1 S" e6 u. N2 D. z! { - (if (= (logand bit70 1) 1)
& D; [4 f( ~, K T' G - (set_tile "closed" (setq closed "1"))+ P6 M( `8 ~0 z* R7 i* I
- (set_tile "closed" (setq closed "0"))
1 ]- ]; m" O* i; {8 O/ \ Q - ). q: z' T( l) O5 \% l
- (setq old-closed closed)
, {4 K: a# ~4 P% k- Q' m( m - )
" ^8 M- ]# c0 T, I6 g$ {" N$ u" R - )
2 q- ~8 i3 r- y) Z/ g8 ~ - )
# C8 S6 U0 ^9 n: E0 ? - ;; Set common action tiles# z* v% Z3 Z# g! p) o: i: f
- ;;7 G5 A. e* @4 I1 a! b( M# [# h
- ;; Defines action to be taken when pressing various widgets. It is called: d( b, H& n+ j
- ;; for every object dialogue. Not all widgets exist for each object dialogue,; D3 z! D& g( e" M7 Z# E
- ;; but defining an action for a non-existent widget does no harm.% E+ q+ J8 K$ d4 t1 B z; g. d+ Y
- (defun set_action_tiles ()2 I! I/ V; I1 |6 F6 F2 [& W
- (action_tile "cancel" "(dismiss_dialog 0)")- j4 d9 j$ ?: n& m) {
- (action_tile "accept" "(dismiss_dialog 1)")
+ Y" H9 |/ J/ `* S - (action_tile "help" "(help \"\" help_entry)")
& W% k5 c1 N r - (action_tile "b_color" "(getcolor)")
* t. G0 r3 S, G8 J5 L. C+ ~ - (action_tile "show_image" "(getcolor)")' I, Z+ h/ o) h/ w* e
- (action_tile "b_name" "(setq elayer (getlayer))")
9 _2 u9 `# v4 I9 K& }$ O9 k - (action_tile "b_line" "(setq eltype (getltype))")/ J' Z! H2 `* o) @1 D7 d" Z
- (action_tile "eb_thickness" "(getthickness $value)")( `) @% b: S+ i% b( `8 M# X) m3 o
- (action_tile "eb_ltscale" "(getltscale $value)")
- a; O/ a) j, S" u
" n% J# N# u6 z/ c& f$ i* s, w- (action_tile "pick_1" "(dismiss_dialog 3)")* I T7 C3 d" f* @& i: _( D
- (action_tile "pick_2" "(dismiss_dialog 4)")5 ^+ F/ Z- |& }: H/ S1 r# l! r) D
- (action_tile "pick_3" "(dismiss_dialog 5)")- i7 {6 Z; ^. y0 R
- (action_tile "pick_4" "(dismiss_dialog 6)")
6 \3 q- Z4 t; @9 g - (action_tile "x1_pt" "(ver_x1 $value)")
* k" v/ J( [. U! a7 n, O: N - (action_tile "y1_pt" "(ver_y1 $value)")
% b9 Z. S) \7 B1 ? - (action_tile "z1_pt" "(ver_z1 $value)") p0 x' T* h$ H6 U+ Q# J
- (action_tile "x2_pt" "(ver_x2 $value)")
3 J$ I$ u- I( h+ r+ y6 U$ T, K - (action_tile "y2_pt" "(ver_y2 $value)")( }9 l( [4 j$ H" _1 j! \1 B$ E M8 I0 R
- (action_tile "z2_pt" "(ver_z2 $value)")
. ^; ]8 r: K; \8 n$ v - (action_tile "x3_pt" "(ver_x3 $value)")
$ j6 P4 y J1 x+ N% S, F3 e - (action_tile "y3_pt" "(ver_y3 $value)")
+ q! N: n1 V$ f1 W& ` - (action_tile "z3_pt" "(ver_z3 $value)")# D: D" z7 |9 C
- (action_tile "x4_pt" "(ver_x4 $value)")# `5 _0 y7 L2 m, c
- (action_tile "y4_pt" "(ver_y4 $value)")
8 @: y8 a+ n0 T; O K; f) C; e" s - (action_tile "z4_pt" "(ver_4 $value)")5 h- N6 A0 ?- |( M. t Z7 M
- ' e. ?! T; I2 e2 I0 M( D
- ;; Action tiles for Xline & Ray
: |/ G* }; s$ g" Z* F, i' }/ j - (action_tile "xline_x1" "(ver_xline_x1 $value)")
# A! _9 X- V3 p' [' n6 r4 w - (action_tile "xline_y1" "(ver_xline_y1 $value)")
0 p4 n! k+ D" V+ d6 h: s- ~! X - (action_tile "xline_z1" "(ver_xline_z1 $value)")
! Z% _' l- x. e& E5 S- o/ ] - (action_tile "xline_x2" "(ver_xline_x2 $value)")4 |. T% q/ J: Z9 |/ J
- (action_tile "xline_y2" "(ver_xline_y2 $value)")+ B7 i: r6 X T! t7 O
- (action_tile "xline_z2" "(ver_xline_z2 $value)")
3 Y# s( b% ?9 X I2 A
1 @; q* p& I/ y! E9 K, z- (action_tile "edge_1" "(setq edge1 $value)")
7 H' P) @# Y, S: G1 u2 o; V# k - (action_tile "edge_2" "(setq edge2 $value)")( t0 r$ z7 g8 b" |, M7 Q. a! l
- (action_tile "edge_3" "(setq edge3 $value)")
0 F- H- G4 Y# o! c0 e, ^ - (action_tile "edge_4" "(setq edge4 $value)")9 B( O0 x" \7 P2 N! k, ^
% v* f" l' G" A) ?( o( F m/ ^ P. Z! a$ _- (action_tile "radius" "(ver_rad $value)")- g% F7 U) b; ?1 L" K
- (action_tile "st_ang" "(ver_ang1 $value)")4 J9 C/ G0 H# b# O) s8 H. V% [1 w6 D" |
- (action_tile "end_ang" "(ver_ang2 $value)")
6 z+ \/ g) t) F& A- Z9 b% I - (action_tile "end_eang" "(ver_eang $value)")
/ @! a6 I/ X# M7 m; o9 m" U - (action_tile "minrad" "(ver_minrad $value)")
. A/ h: T, v; ~ - (action_tile "majrad" "(ver_majrad $value)")1 @9 p8 J! W3 l
6 v3 a+ d) W# w$ _4 A& X- (action_tile "xscale" "(ver_xscl $value)")
+ ]. k/ N& x1 E( a - (action_tile "yscale" "(ver_yscl $value)")
6 d% W6 P8 J6 `6 e5 ?& p - (action_tile "zscale" "(ver_zscl $value)")4 d) e% X( E/ e' q
- (action_tile "rot" "(ver_rot $value)")+ t3 u1 x6 m8 I& }5 t8 a$ q
- (action_tile "columns" "(ver_col $value)")
, r5 `* V5 u$ Z* l - (action_tile "rows" "(ver_row $value)") w# ^" J1 T/ U/ W4 S8 ]
- (action_tile "col_sp" "(ver_colsp $value)")
4 s% G2 T+ G* p8 @+ v% E) ? - (action_tile "row_sp" "(ver_rowsp $value)")! E( d2 g) A- z0 z+ b" G2 T
- Q' ?% d- N! y7 _8 \, C* z- (action_tile "hght" "(ver_hght $value)")
& t: d$ q! v7 ^. G1 b - (action_tile "wid" "(ver_wid $value)")
, O" Y: ?; {/ V - (action_tile "obl" "(ver_obl $value)"): a0 u9 L. x7 ^1 S7 P
- (action_tile "style" "(style_act $value)")8 M3 m) m) G' t; M
- : A+ H: J( f- c, o. f! ~
- (action_tile "t_string" "(ddgettext)")
1 I( J1 s1 i1 k2 o+ {! t - (action_tile "tag" "(ver_tag)")7 e( l7 t" H; ~ a: S: S
- (action_tile "prompt" "(ddgetprompt)")
7 R& W% y% l: a) o* [* p' k - (action_tile "bkwd" "(setq bkwd (atoi $value))")- t& W2 V5 Z. m) O6 G+ G
- (action_tile "upsd" "(setq upsd (atoi $value))")* G) B- R2 P2 G+ t
- (action_tile "inv" "(setq inv (atoi $value))")) R _7 g/ P6 M' u1 E3 k
- (action_tile "con" "(setq con (atoi $value))")
, f" O9 F) U% J - (action_tile "ver" "(setq vfy (atoi $value))")
! I' b' V7 m5 V. z# M7 @ - (action_tile "pre" "(setq pre (atoi $value))")$ h/ }, U, X- K# Q! Y
- (action_tile "popup_just" "(jlist_act $value)")$ r+ S( T3 c/ r
# V+ O- k5 Y" _5 M: C' r) a- (action_tile "closed" "(setq closed $value)")
$ T3 F: L) V4 q$ R - (action_tile "ltgen" "(setq ltgen $value)")6 G, i# A. j. Z( R7 Z# W' |
- (action_tile "closedm" "(setq closedm $value)")
6 h+ o( p2 \" k S6 A( |+ U& X - (action_tile "closedn" "(setq closedn $value)")
/ e( r# o' U$ m# T8 }# }9 ^: c - (action_tile "next_v" "(next_vertex)")
. k3 l4 K! c7 v# u) v - (action_tile "xcliponoff" "(setq xcliponoff $value)")
3 Y# L! R& u9 A2 \( ~
3 u7 L6 q! Q- G4 a( U7 g) b0 S: W1 G- (action_tile "next_cntlpt" "(next_cntl_pt)")/ C7 W/ F. e s$ c
- (action_tile "next_datapt" "(next_data_pt)"), N# h3 N( h! j, g
- % x0 K) i! s# r, X4 Q
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
* \( f9 X8 f+ ` - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
- y3 R2 w* M- a6 y7 I - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")4 q& J# m0 J" m9 v6 w
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")5 {$ e/ a' `# J7 z2 \
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
9 W$ C7 F1 l& O. O& M, D: L
& A# Q8 N4 Y. J6 x/ z- (action_tile "u" "(ver_u $value)")! G* N! E: @- [$ r! z
- (action_tile "v" "(ver_v $value)")
8 N8 E% X4 B9 g0 r - ), |3 z9 ~8 O+ i2 s6 Y! q
- % L h0 ]) a f4 a0 D9 F N' C
- (defun ddgettext()
3 I$ ]/ h" F+ H5 l' E& N8 G: z/ U - (setq text (get_tile "t_string"))
/ @+ W3 t6 V; u0 v0 X - )8 b$ B% ? D+ q7 d
6 p9 e+ I; k% J# Z8 ^2 m' T1 S) |- (defun ddgetprompt()# f: d& H/ Q! N0 M5 d6 }# l0 S
- (setq atprompt (get_tile "prompt"))
: m- R3 v+ R, Y5 F4 X - )7 Z( f, |9 B: [) V, w
- + X. }$ G/ C, K2 { F2 D
- ;; As OW doesn't support disabling of individual radio buttons within0 c9 i5 E$ U1 \ g6 z
- ;; clusters, a check must be performed as to the legitimacy of the
. b8 s0 P* w8 y- P& X% A - ;; button pushed and reset if necessary.
3 t- C1 Q( B4 m' L - (defun radio_gaga (pushed)
5 ]0 S% f, q1 E$ y+ Q; Q* u - (cond
% @9 M# R: I; b# `2 T* f3 _7 H# z- O+ y - ((and (= pltype "3D polyline"); {: |1 F1 @3 I) L2 q
- (or (= pushed "fit")
% u/ j2 _- n! B0 i+ C7 `/ B+ u - (= pushed "bezier"). q9 n( k1 M7 Z5 M: K
- )
: v( e7 l$ m1 U( y# ?/ X# S - )
9 U- g, [9 P2 y - (set_tile "none" "1")) G7 t" l z+ A, r
- nil) G+ {) {) N+ y. S9 n- a' @4 I
- )
3 w$ y+ K# G% u, `6 y4 Z - ((and (= pltype "3D mesh")& t& J1 P. }. G+ S5 ]* c+ Z
- (= "fit" pushed)
9 Q9 ^; |: n9 U2 h0 }' i6 k5 j - )
- D0 A7 @0 a$ e$ X1 q - (set_tile "none" "1")
8 U( n7 _3 H# L3 y' D1 d1 x" I8 [- D - nil6 B9 K# x# A; `' ^ b1 t
- )7 V# u4 X# h( O( S$ @8 m2 ^: L/ `
- ((= pltype "Polyface mesh")# Q( y9 H6 D/ t) A
- (set_tile "none" "1")
7 y+ S. X- p- j - nil; P/ a. I8 M) S
- )
5 n0 o" O% h2 K, b7 H; G* B - ((and (= pltype "2D polyline")
2 v, R# b# P$ s# @, {! i W7 U - (= "bezier" pushed)
/ V. g _, W/ g: l1 o5 K" d - )7 O9 E! |. d; z& c5 S, ~
- (set_tile "none" "1")+ T+ X" Q/ `7 J
- nil J' u# n, N w2 Q
- )
% Z! V2 r/ v8 G: c: ^ - (T)
8 ~7 g& j+ o' l: |9 O; v e - )
: T( [4 n" |% R - )% F0 `7 N& A* W. F( l. F$ @- i0 v
- ;;% ^1 q' `9 E9 ?$ d2 S
- (defun set_uv (type_n)( I. y! u7 |( x: K
- (setq spltype type_n)
6 T" y: Q- V2 Q! ^- L% v9 l - (if (= pltype "3D mesh")
! i' u) @# C1 @ G5 @, b, M - (if (= spltype 0)
0 g' H* ^7 [6 A* }8 A - (progn7 O8 ~0 l1 H2 h' y8 v5 _( m1 g# L2 ^( V
- (set_tile "u" (itoa (setq u 0))): x' y5 u! O( ~+ B
- (set_tile "v" (itoa (setq v 0))): d+ _4 ~% d7 u5 x
- )8 J6 ]* N1 m' d$ s
- (progn
( v9 s+ m! M9 `, `. l - (if (= u 0)
3 z2 Y1 U8 {1 J" `0 u+ H. ~& h* i - (set_tile "u" (itoa (setq u (getvar "surfu"))))
8 w4 K: f4 P! {! w6 N- y - )" `6 y$ \) g" A2 ~/ V' l
- (if (= v 0)
! L- ~1 P5 j/ W# R4 U: N3 Y - (set_tile "v" (itoa (setq v (getvar "surfv")))); m8 k# p% D( ?
- )* i7 P- F; D+ ?3 W3 x7 H$ ~' k
- ), D) O' M% C1 W- L! }
- )
' Z: y' U. M. }3 a3 i: @5 n - )
- u, }/ S% Q" N* a, l - )
* X1 }, V& v5 m5 z, |& V2 T' Z% R
; a0 O- ?# E- c, `- v
2 i- j% W" G, [ ?- ;;
' {0 Q: [7 [6 h+ [0 s - ;; Verification functions! A/ S2 X1 |! ]9 }& p) k
- ;;
0 ^# t, @/ }4 c# W& @ - ;; Verify distance function. This takes a new X, Y, or Z coordinate or
% ^) d' y/ o3 z8 U; D - ;; distance value, the tile name, and the previous value as arguments.7 E' Z6 ^" J% e7 A& C0 ]
- ;; If the distance is valid, it returns the distance and resets the tile.
?4 R( V$ d0 x: U* i$ o - ;; Otherwise, it returns the previous value, sets the error tile and keeps& u; f: |; \* H7 X9 y/ b
- ;; focus on the tile. Shifting focus to the tile with invalid value can; k/ Y% b- e- B9 W1 z& Z
- ;; trigger a callback from another tile whose value is valid. In order
$ @6 }8 _, `+ w6 U. ] - ;; to keep the error message from being cleared by this secondary callback,5 L' l2 \# V2 F( W5 J
- ;; the variable errchk is set and checked. The last-tile variable is set( s5 _% g3 T# a) `
- ;; and checked to ensure the error message is properly cleared when the9 g0 n% w- N% L
- ;; user corrects the value and hits return." g/ a+ X% o( n3 \$ y" L: v1 K
- ;;2 X* U' {! y# {- J; D' ]
- (defun verify_d (tile value old-value / coord valid errmsg)
0 |5 y; q, Z2 g! P! O6 I - (setq valid nil errmsg "Invalid input value.")0 q, V) g: r4 Q: }) O
- (if (setq coord (distof value))5 _* J$ V( A0 G4 n
- (progn
" w; n' ?) Y1 w* @ - (cond
; `* p* M" C! Z" \( g- b7 I - ((or (= tile "radius")* r3 b+ i) `* V# A5 I3 t8 F
- (= tile "hght")
) v* _. C% j; ^( R# Z H" K - (= tile "wid")
3 [- m% d& c* p& a. d3 s1 z - (= tile "majrad")- A+ [5 @# K/ i0 l2 Y
- (= tile "minrad")
$ z. s( D/ w9 W# v" s2 {* G9 f - (= tile "eb_ltscale")
, Z2 X/ O% w' f( b7 h - )
: h4 c3 v$ ]1 C. [ - (if (> coord 0)0 A* f) U$ ~" c% h" v2 K9 x
- (setq valid T)
: z' W( |7 E( N$ l9 Q - (setq errmsg "Value must be positive and nonzero.")
/ Q% ?7 j$ ~3 Z' T7 c; W - )# ?+ M x* A4 N! Q" Q, j! j' i
- ); }4 [% s3 z: c% y# g# H2 b: c
- ((or (= tile "xscale")) o( V2 Q' A- P
- (= tile "yscale")
4 k0 G3 D, ]9 K - (= tile "zscale") U! A7 {7 L% u
- )
# m. d% @7 o* A - (if (/= coord 0)
( F* T; X/ A; U* w* C! K) ^: ? - (setq valid T)
6 v5 Z0 l2 g; M7 Y% k - (setq errmsg "Value must be nonzero.")
3 M: P9 v1 F9 Y( F7 l4 W( E7 l - )' Y: k& z: r; a3 g$ {; R; {4 U/ u
- )- J- k4 I9 \% j X9 J% y* S" B
- (T (setq valid T))' M: Q8 R* a+ @" I- R
- )
7 R5 B# n( J' L6 A$ S7 B4 y. y - )- K B4 L6 S# n4 V
- (setq valid nil)
) O6 a/ X1 @2 w5 x- L, c - )4 O4 f/ U- `- O+ l, O& r
- (if valid
3 ^' T( @% C5 N5 f$ C - (progn
2 b6 b1 ~# W& g0 r: s - (if (or (= errchk 0) (= tile last-tile))
: n5 Q `! ]2 q! e, z2 A2 } - (set_tile "error" "")4 d# ?( |! ?- ~2 \8 e/ W
- )' r4 _/ T% L; n, H2 B/ b9 P* J
- (set_tile tile (ai_rtos coord))
/ }$ d( u4 A* q9 L$ K9 o5 F- n - (setq errchk 0)! L9 X' b/ d ~) s: O. ?
- (setq last-tile tile)
; u! l- q- h. C2 c - coord# m$ l/ B5 e/ t$ _& W
- )
( L0 t. U* q5 h9 F7 E' _9 t - (progn7 L. T6 p! ^% ~5 z9 C+ N; \
- (mode_tile tile 2) ; Move focus to offending field6 I! s. W9 s# q2 Q
- (mode_tile tile 3) ; Select offending text
$ a' J- n' ?# ]. } - (set_tile "error" errmsg)
% \2 M6 V4 S7 e# z3 I" l8 j" \ - (setq errchk 1)) n) d- A3 o5 m2 m* D4 i7 P
- (setq last-tile tile)# D; S S5 N( i; ~
- old-value
# x* O5 B# G+ D* }6 e2 p) n - )
: K ?! |: Z0 _& b: @) C - )
3 L, z9 u8 R/ ]$ o, f - )
9 k+ g3 q4 t2 N2 |4 x! } - ;; Function for Xline coord edit box checking.
- p" [* H# v. E g8 ^ - (defun verify_xline (tile value old-value / coord valid errmsg)7 f9 r1 K" M8 p3 u% S3 O, m( I
- (setq valid nil errmsg "Invalid input value.")
. m- U0 S# S3 X* U7 j - (if (setq coord (distof value))- Q: Z) ?( I' w& E! I4 B
- (setq valid T)
" b0 c" x& t/ Y/ H" S6 | - (setq valid nil)
- p5 ?3 l3 r3 M - )
! B: Y4 N5 y. p2 o) j - (if (and coord5 h: s1 v8 U+ l
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) ); A0 ~. a8 G( q: S) C6 a
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )& h- e: f. R* q4 T5 f {
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
9 K" n2 a+ m% z - )
5 L$ Y) [5 R3 r5 |) J+ n5 c - )9 Z: w" y4 }" q. s$ i
- (progn
: @* w m1 c, M - (setq errmsg
/ Q, J: z6 m/ P0 Y: v - "The Root point and the Second point cannot be equal.")
% r1 t( M! h: V3 a3 i, G8 E - (setq valid nil)
3 S9 E$ O3 @9 O8 C/ C5 V6 L, t - )# }4 ]: Q4 M i4 B' A, e
- )& E' I+ f% j( J2 X2 S5 t, ^
- (if valid# N7 a, p+ U% F6 R+ K( P
- (progn
+ ~" _. A+ d9 |9 T# @+ ~1 y& e8 Q. I0 ? - (if (or (= errchk 0) (= tile last-tile))
5 |1 Y6 y" n8 R, F* P4 F3 n- e# x - (set_tile "error" "")$ _8 s7 m4 I9 e6 m
- )
4 v2 Z( p3 K d, X2 O# C; q - (set_tile tile (ai_rtos coord))
( c8 K7 I& y7 N! \- p1 i/ X1 v d - (setq errchk 0)
. G) [% U) Z) e7 c. O - (setq last-tile tile)5 z. c* B$ f# w/ Z0 J% T
- coord# i! f# g: y0 f
- )5 |: D n1 e+ x; `5 ^$ y
- (progn4 y) W/ n; {4 U* \# _
- (mode_tile tile 2) ; Move focus to offending field
z, V# Y& V$ _ - (mode_tile tile 3) ; Select offending text
/ u* k, f* G/ t. d, X5 e - (set_tile "error" errmsg)
; \3 C s2 F5 U$ H- ]5 u2 `* H - (setq errchk 1)" R0 K3 S, l0 d% I( T
- (setq last-tile tile)
. j5 b6 Z3 Z" I2 ^. t" p# N3 F0 k - old-value. \! G' z6 r6 y
- )
) d7 M) v" U6 ` - )+ y8 Q7 y" o$ h4 t6 N$ ?6 W
- )% f# \9 p! o/ J
9 G* o& v+ W1 H: p1 B" Z6 \- ;;
G6 v! J3 ^8 R - ;; Verify angle function. This takes an angle and a tile name as arguments.# U e8 }/ W* m
- ;; If the angle is valid, it returns the angle and resets the tile.0 Q3 c& F$ t& i
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
! a+ n7 ]- D7 i, { - ;;
& o( Q6 R& ]1 V0 Z W- g; l - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)5 W! ^: y' |4 @8 {, f) G* B
- (setq valid nil
8 k0 u3 @ F: l4 O4 x - errmsg "Illegal input value."- p( y0 L* |. K
- ). a( C' Q& T0 a' X6 E
- (if (setq ang (angtof value)) D1 X) x( {( c, s: q" A( S
- (cond/ K9 o$ s2 {+ F5 c
- ((= tile "obl") ; Restrict obliquing angle
/ E* a3 O* p6 ]* D0 c* Y) K - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))3 `. M' R- {$ v1 h# q% L
- (if (or (<= ang oblqmax)
9 O& u) Z1 a5 u$ t& B4 C# K& i - (>= ang (- (* 2.0 PI) oblqmax))6 k& R+ l f o
- )
: g& g6 J) n& v& B, \; }* l - (setq valid T). q# A: h5 p) R% o6 P3 ~
- (setq errmsg; H- j2 u# `0 @" `3 J! ]
- "Value must be between -85 and +85 degrees.")9 C* d4 f" t0 B8 y. M
- )
_2 R8 `: w' j$ y6 J8 J - )( ~' A' ?; {6 r7 N3 u) N" j( p" S
- (T (setq valid T)) ; Other angles not restricted
( L& g: [ F' o+ N: V8 V! s - )8 j- L+ ?# c1 g* E
- (setq valid nil) ; Invalid angle input
- r! V- N, q ^. v - ) N4 W8 i' f! E4 ~
- (if valid' a. J! |/ g( Q! B( U! D! L- W8 m
- (progn1 ]; N0 N, ~9 C! v% c+ e: h
- (if (or (= errchk 0) (= tile last-tile))
& P" ~- {# f: V - (set_tile "error" "")
8 s+ ?& f0 w9 [7 J0 P% n - )6 E5 R3 E. a: V! e
- (set_tile tile (ai_angtos ang))
9 ^6 a6 g, l7 s2 X - (setq errchk 0)/ i; x9 y5 T" A" C8 m' k2 x! U
- (setq last-tile tile); a: q5 i8 k/ X1 D0 L! j! ]
- ang
7 w' g* _ D3 F# B7 { - ): [( U; R. l* s* ? F
- (progn# }" E7 z9 R$ g/ g( g. D& H
- (mode_tile tile 2) ; Move focus to offending field
6 I4 N/ [+ F2 e+ _. R; Z- [; f - (mode_tile tile 3) ; Select offending text
1 V$ K- |$ @0 ^& m" p! ]$ l2 ~0 X - (setq last-tile tile)) w$ s, W- k: G1 D, X9 A
- (setq errchk 1)
]; n8 O5 t( A3 s7 X; L - (set_tile "error" errmsg)
+ p- u* k; u8 w - old-value8 d2 {+ F1 t; `' M- X3 I/ n+ z
- )+ X: Y* r4 \# ?% h; e6 s0 L( i& q
- )
3 N1 q# _( y2 r! g - )2 w3 Y/ J' ]. u# g8 E% }
- ;;3 t" h; ^2 s& |
- ;; Verify angle function. This takes an angle and a tile name as arguments.3 A1 w6 E$ t4 t( _4 k, y
- ;; If the angle is valid, it returns the angle and resets the tile.. p1 I$ T2 _. t) V
- ;; Otherwise, it sets the error tile and keeps focus on the tile., L/ L3 S8 o& ]% a
- ;; This function is specifically for the end angle of the ellipse object. If
" Q2 S+ g5 r: k- V: q7 ^6 i# F8 N- i, r8 p - ;; the end angle resolves to zero then we want to display it as 360.
, N/ Q) R. w; O6 c# T! T& \ - ;;5 Z& _2 i' p# H2 V
- (defun verify_ae (tile value old-value / ang tempend)( x8 n! p6 E$ E2 }/ |- f! y0 ^3 ~
- (if (setq ang (angtof value))" g- D0 y1 G6 P
- (progn% f, W% p8 W/ f7 Y5 i" V
- (if (or (= errchk 0) (= tile last-tile))# h3 z/ Y1 g3 d8 z
- (set_tile "error" "")7 r) E1 k! s7 c/ r+ L
- )1 \& A4 ~4 q% u6 a' B. S9 P
- (setq tempend (ai_angtos ang)). f! w0 `( \9 ?8 I& L
- (if (= tempend "0")2 Q& E2 y( ^. F% |
- (set_tile tile "360"): i6 X8 c4 g" V' i' Y
- (set_tile tile tempend)
. S& h2 D% t' k& t( O$ p* Q - )# _, a) x% {# F* ~! r. U
- (setq errchk 0)
8 A2 g# R/ V$ G0 Q7 ^' K - (setq last-tile tile)& Y& k& I4 _( A4 z/ Y |
- ang) w/ G; L& J( ?1 ^
- )
2 D0 [0 d- ?& d3 V( [9 T s: ? - (progn" ?2 Q5 S1 c. c$ Y
- (mode_tile tile 2) ; Move focus to offending field
7 t c$ b: P3 H% u* m3 D. B - (mode_tile tile 3) ; Select offending text
$ t, _; m9 ^; w" Y - (setq last-tile tile). k2 O5 I1 K& F6 W6 _& y% y* U, m
- (setq errchk 1)0 g4 y/ r* ^# X% u5 v2 g. j0 g
- (set_tile "error" "Illegal input value.")" Y+ A7 n8 `. H
- old-value, X0 x' w! c% N9 i/ `1 E& E1 m
- ): S+ o, L, w, k ]" t
- )$ [( J$ d+ S( x: d" k
- )2 U v- R V* N3 L: Y A; e
- ;;
, A( M% v5 P2 G3 ` - ;; Verify integer function. This takes an integer and a tile name as
( F) e; L% s+ e: U# Y - ;; arguments. If the integer is valid, it returns the integer and resets the+ n' P/ \: e% k4 l j. ]
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
/ Z9 N/ Q W/ j2 u9 w2 j - ;;- n! e+ E1 U5 C+ F
- (defun verify_i (tile value old-value / int valid errmsg)
1 v% o7 A& h* u$ q - (setq valid nil)
. p) A. E+ G0 U2 F, j. [ - (setq errmsg "Value must be an integer.")
) q c$ }6 `1 K1 E0 N; s+ f* | - (setq int (atoi value))! F8 s8 n% A+ w8 ^
- (if (setq intchk (distof value))
& ^3 u9 E) I0 f4 u3 I+ t - (cond5 l. I6 p0 z( v6 i" c8 Z7 V2 D
- ((or (= tile "columns") (= tile "rows"))
) d# w( w o9 H" R$ y% z8 k7 K: r - (if (and (= int intchk)$ I+ Q' p9 q+ j& m( T$ t
- (>= int 0)
6 V- u- k3 F; @" \+ O5 J3 t - (<= int 32767)
7 Q& ^2 ?5 b; P; {- n6 Z; `, w0 B - )
3 E- _0 L: V, c. ]& G) ^% c5 Q - (setq valid T)
6 M: I# m' o8 O$ `) U, ~5 F - (setq errmsg "Value must be an integer between 0 and 32767.")
; e \( b, h% T& D, H/ a% m - )
- o4 ^. H j8 R4 a8 n7 l - )
0 I1 n- g. f) p5 {" d; r8 |+ T u - ((and (or (= tile "u") (= tile "v")))% J1 J$ F1 X+ ^, @% x/ B; u6 p; B
- (if (and (= int intchk)
- y' u3 [6 _$ B( `" z, _) F# q - (>= int 0)9 q2 l7 Y/ { n; e
- (< int 201)
) x6 J6 F+ p- ` - ) p! F; ~6 F6 x+ v/ m; P3 G
- (setq valid T)
3 T# E! e p1 }( P! t - (setq errmsg "Value must be an integer between 0 and 200.")
5 g4 E4 [: q7 D$ P/ [5 P/ s4 L - )+ k$ i& Q- w) }- l
- )
* I+ i Z+ r' U# d - )
( h6 h" d; J) u) e! g - )
. i, a( G" K4 a: B; q A - (if valid8 n, @3 T V3 U/ U
- (progn
* n1 i: _ L" z, B - (if (or (= errchk 0) (= tile last-tile))
. P( G5 T; ?2 b# K. O$ ^ - (set_tile "error" "")
4 q) ?) \, O# q# p# {- j" u/ n9 D - )
" ?1 p+ z1 N$ E | n - (set_tile tile (itoa int))6 O- I! a" m3 C; l, U3 |
- (setq errchk 0)
# m) A0 v4 k" g - (setq last-tile tile)9 x* H/ m: c, D. t; p+ x
- int. U9 g7 ~$ s- ]" h$ a% Z
- )
+ f3 o9 n. q* E, [ - (progn+ W \+ H' w) g' o) {( g
- (mode_tile tile 2) ; Move focus to offending field
! S- e4 `: V9 _1 v% q2 z - (mode_tile tile 3) ; Select offending text: [7 e! m$ A k! \# p; t; Q9 Y
- (set_tile "error" errmsg)9 R7 f2 [2 R- u' Y8 C, j) b' D C
- (setq errchk 1)
+ N0 s" [8 R0 r ^ D# B, x) S - (setq last-tile tile)
* h) _# I* Y8 o6 } R) v - old-value
/ o* w4 Y2 N! M) I- p - )
5 H$ I$ h$ o5 z. Q5 u4 P8 H - )
+ k* h9 d- N) k - )" G, }& C o" q7 ^
- ;;
% h$ N* H A7 Y: v2 _) e - ;; Functions that verify tile values for integers
! A8 L" s! \- I1 x/ r' F4 \ - ;;- m/ Y3 G, P" {, {2 |& t
- (defun ver_col (value)
7 V* W4 z! s. j8 [ - (setq columns (verify_i "columns" value columns))# _3 h( {, j o, H! M
- )
- x/ T' L6 n8 h7 H4 R5 M+ H - (defun ver_row (value) x2 `. S+ C& L# q* D* k. D; D4 z
- (setq rows (verify_i "rows" value rows))
9 }$ u5 A; e& H/ i) q - )5 p3 D; H. S$ X/ P
- (defun ver_u (value)
" l3 K) _: E2 }( I. F# ~ - (setq u (verify_i "u" value u))
* ^5 b4 N* [( d - )7 E. _* N l4 {! |
- (defun ver_v (value)
/ L0 E+ W" M# r# F* @$ I: R) } - (setq v (verify_i "v" value v))
! N( s( C9 [/ }! k - )* j; ~5 s2 l4 [( u. h1 G
- ;;
2 z# l8 P& u- a9 J- Z. L+ e - ;; Functions that verify tile values for reals, z; ]* e( T* V G- D" \
- ;;& z: G) t& j0 C, d. @7 f% _
- (defun ver_x1 (value)9 l1 `/ s5 q3 f5 b& U. J& i( K: W% F P
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))% ?( e% D+ q. n8 [% o! C) }
- )
6 A6 R) }% R' j - (defun ver_y1 (value)" n& P: L' H( M" r" F
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
) @6 d; F% ]* P) ?# E - )
7 b# v! r( A0 O0 ^: V5 G Q9 W+ R - (defun ver_z1 (value)9 a% a, f/ O; N7 }0 }
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))( E" d1 v7 p" R
- )
' g5 Q) U8 f* {6 D4 v - (defun ver_x2 (value)/ X- d! {7 H0 ?$ J9 z
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))7 {+ e+ e: Y( E: t/ L
- )
' G, D) y+ g J - (defun ver_y2 (value), {) p5 z" k a3 c$ D" ^5 C
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))9 f* }" \& U3 C. Q5 Z
- )
0 }5 k$ b# `% p; W2 ~0 x4 T - (defun ver_z2 (value)
& J6 K1 R1 ?/ l9 h - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
# }" l6 q& Q$ C$ M: b) x - )
, ~" y5 }( _0 q: ~) T - (defun ver_x3 (value)4 P9 D$ G' {7 o2 q3 |) t
- (setq x3 (verify_d "x3_pt" value x3))
9 \) {; a7 O6 [5 j - )- ]2 U, A9 c* T+ h# @" O
- (defun ver_y3 (value)+ R" i; h6 a4 e; ~( H) h" j v
- (setq y3 (verify_d "y3_pt" value y3))
( T$ M. O7 ~$ ~! a- I I; T* T! z - )! v/ r& u, K; A' m6 L( L ~
- (defun ver_z3 (value)
& d: b0 s" [7 I - (setq z3 (verify_d "z3_pt" value z3))
. R, n8 }! A% S! R" V* b+ G% x% N( ]& Y - ), U M3 Y; x# Y2 ?& Z
- (defun ver_x4 (value)
* J8 H( ]3 z: ]9 l - (setq x4 (verify_d "x4_pt" value x4)), y9 v: W' k8 [5 a) [
- )& v9 R. S8 Q7 C- S' y- v
- (defun ver_y4 (value)
0 i# e9 ]: C, G: f1 R3 u - (setq y4 (verify_d "y4_pt" value y4))0 y1 x$ U1 z/ M/ U& n. t! F
- )
5 r5 s. R: ~9 S' O( z - (defun ver_4 (value)
+ R, E. Y/ i& s" V; w - (setq z4 (verify_d "z4_pt" value z4))
; i, m- K$ j y1 [, @0 h - )% b) v9 E. L. R% a, L/ c, G
- (defun ver_xscl (value)7 h1 ?7 h4 N- Z+ \
- (setq xscale (verify_d "xscale" value xscale))
5 M; I* K8 b, W0 G) o9 G - )
6 U* x5 H& k4 {; \- N$ `8 C - (defun ver_yscl (value)
" z7 Y: s: T( t W1 Q/ E! }0 d - (setq yscale (verify_d "yscale" value yscale))
/ o) j* \: f: I3 X# w' e0 N - )
; e* O' h3 t! V+ h5 M - (defun ver_zscl (value)
; q1 V" ]. Z7 k1 _! p k1 u - (setq zscale (verify_d "zscale" value zscale))
b5 J' }( L4 l v+ k$ ], t# d( l - )
" B) ]$ Q3 W5 Y( X0 V1 j6 x" Q7 y - (defun ver_colsp (value)
: ?+ M4 j9 G! L4 Z# \ - (setq col-sp (verify_d "col_sp" value col-sp))
! c7 a3 ^6 v8 @& E( }. y - )/ o8 C- d U& p! c* G
- (defun ver_rowsp (value)
$ ]4 A( Z/ ]. ] ]7 r - (setq row-sp (verify_d "row_sp" value row-sp)) d: O( U7 ^: i
- )
3 B9 \ P) T, U2 } - (defun xclip ()4 w: a- x' ?) u
- (setq xclipmode t)" e# J2 u% \2 i- N
- (if (= xcliponoff "1")
# E( n6 ]8 Q7 H; G5 k% d - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
. K, B7 j' T9 t/ {5 {/ g$ p( z5 Z - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off"): v7 g1 J E( g
- )9 p# |, B+ s( N' Q4 U
- )
$ T" D9 H; C; j - (defun ver_rad (value)2 H$ E: c- M( J- ]) [
- (if (setq radius (verify_d "radius" value radius))+ w9 l) {+ G2 W1 e; J4 t, ]
- (calc): H; ~. D% _9 `% B: c
- ) x1 e5 G3 t7 S8 g
- )
! v; d. n6 {: w - (defun ver_majrad (value)5 a( a+ c/ B C
- (if (setq majrad (verify_d "majrad" value majrad))
; i2 n; b; C; ^5 R - (ell_calc_newval "majrad")4 p- s5 \6 d/ O7 D; ?, `
- )+ D* N2 b( q( ^$ J1 q3 S
- )
: O3 Y4 m5 `% }$ X# M y d - (defun ver_minrad (value)3 J( d1 o$ e: w
- (if (setq minrad (verify_d "minrad" value minrad))
: L& }) J* }6 b* D9 b- B# E4 h - (ell_calc_newval "minrad")1 ?; R6 V0 p- b5 A+ w. c" N6 [0 ~
- )
# Q% K% a2 n: r8 m - )4 f" J- n9 }) U/ r
- (defun ver_hght (value)6 V/ p: Q4 R8 F! q& H, h( a
- (setq hght (verify_d "hght" value hght))! j+ Z" m- E: z7 v0 T2 t
- )
& J1 T2 ~$ O& M - (defun ver_wid (value)! x/ t& l4 B' P" g( J! d1 G3 \
- (setq wid (verify_d "wid" value wid))
. _6 i5 p4 u- q) ]# u - )
7 Q# K4 I$ ^9 d9 v5 B - (defun ver_xline_x1 (value / temp)
, Y4 b/ N& @8 G) o+ T/ f5 t - (setq temp xline_x1)
" I5 C6 h/ q9 ~9 K8 ~; Z - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))3 A) Z2 Q) H3 }4 d5 J
- (if (/= temp xline_x1): ^" L( P8 ~" i. p y# ?9 K- {
- (progn (modify_xline 0) (set_tile_dirv) ), I) h- b( x; @1 P* B7 O
- )) n0 a3 Y: O4 L( o. K# F
- )% y: _% N# r/ ^: E
- (defun ver_xline_y1 (value / temp)
6 z3 {% @3 q" b" e0 k7 Z0 m1 Q - (setq temp xline_y1)
6 I0 r) f* |/ O% v5 T - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
) L! B$ g( N) E8 t% l - (if (/= temp xline_y1)& I# K: S3 t3 i8 T
- (progn (modify_xline 0) (set_tile_dirv) )2 _1 t8 T* Y" N5 b* b7 V1 x
- )
% A4 o8 W. I/ Z) O. ~6 W - )
! Z: z8 Z& K& F6 d - (defun ver_xline_z1 (value / temp)
2 Z; j* [. f4 Q" g* |3 W: `- R x - (setq temp xline_z1), A' f* x, `, a; L0 a
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
5 T/ b* s8 z8 z" b8 m l: C - (if (/= temp xline_z1)
4 k/ O% ]+ E. h - (progn (modify_xline 0) (set_tile_dirv) )
% r4 P' z* }8 |- n) f: ^ - )8 L4 R; P. D# ~
- )
( e+ K+ z7 ]$ F/ W% D4 u - (defun ver_xline_x2 (value / temp)! @4 U) b& s# j8 o: N6 j
- (setq temp xline_x2)
0 t; z, s" U, m, B - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))( y, N' P8 E0 `6 U2 L
- (if (/= temp xline_x2); ]. i+ ?' q2 ]: _! T
- (progn (modify_xline 0) (set_tile_dirv))( Y$ W$ z; l3 I1 h( w& ?9 P) d
- )$ i; | c3 B1 @
- )& `/ c) O1 Y4 F5 U* y7 P4 T
- (defun ver_xline_y2 (value / temp)" \; Z$ K2 D6 m
- (setq temp xline_y2)
, F- }- c: K: J; S+ D) I" } - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))$ X: L0 q6 Q D! H% H
- (if (/= temp xline_y2)
% {* X7 c0 M4 i+ [* X - (progn (modify_xline 0) (set_tile_dirv) )
$ Y, d+ \9 E2 A- j/ K! [% U2 a - )/ q$ j/ v. K2 V7 O6 U' f* j
- )
2 Y% L7 F$ r6 t( R% ?) P7 w" |3 Y& U - (defun ver_xline_z2 (value / temp)
5 Q; r1 \- ^9 \' H - (setq temp xline_z2)0 i3 m% O' R* ]. P
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))/ x$ e. v& K+ @ L1 O- A* W) v3 ]
- (if (/= temp xline_z2)7 R2 k2 Z% y7 f. W1 B. W m
- (progn (modify_xline 0) (set_tile_dirv) )+ U/ F5 _6 h0 U$ ^) r9 u$ A$ E
- )% W2 T/ a0 s& g$ w& l2 {, i
- )
( M' r8 m( v- m - ;;8 |% y4 E1 \- W& i _
- ;; Functions that verify tile values for angles
3 l) }. W x3 j( m, P1 }" w - ;;: `) v1 ?8 P; r6 C8 ]
- (defun ver_ang1 (value)
- n4 L7 k: @4 y( h, q) T8 e& `5 {4 n - (if (setq st_ang (verify_a "st_ang" value st_ang))8 ]8 U6 ~7 S+ V% R7 A/ a
- (calc)5 Q: h0 T9 B, q8 w# ?; o# d N
- )
3 K) v8 d8 X8 p& L% Z R - )5 b9 S7 ~1 l" P1 R
- (defun ver_ang2 (value). s. o; {0 H/ Y' A
- (if (setq end_ang (verify_a "end_ang" value end_ang))
, C9 s4 ? K% F" ~% f* @" ~% G+ k - (calc)- h0 c' K' ^6 \% i- u' x
- )
. S7 l6 W$ O0 N: }0 ~; e- a - )
8 I1 O) [$ D6 } - ;;
/ v; @0 j, k1 K# O - ;; Verify tile value for ellipse end angle. Handled slightly& j4 G6 s$ _: N3 D2 w* ?7 u
- ;; differently than the other angles.
9 T. a% I& N! M0 U4 l - ;;
4 Y) U, u1 a& F: I9 a - (defun ver_eang (value)3 C6 y5 V! k6 `+ S. R6 ^/ X
- (setq end_eang (verify_ae "end_eang" value end_eang)); n% }: B- n$ o5 K; }
- )
& G5 {! K# S; O( p' ~' z - (defun ver_rot (value). N* O1 I/ ?( o* \
- (setq rot (verify_a "rot" value rot)) G( \( V+ b' D3 n1 M4 j" T+ \
- )
; T, F/ x1 y9 l - (defun ver_obl (value)
: y( l3 K+ K, r& M - (setq obl (verify_a "obl" value obl))0 B. O( p7 e% [( V
- )1 P& F6 Z# N3 @8 u
- ;;
5 k' u. F. }" P5 O% O/ q; e% a2 k - ;; Function that verifies attribute tag field for null string, W& v8 [# t% o! R8 g
- ;; or a string that contains one or more spaces. Tile value7 [3 v- L5 F( B9 J' o: Y
- ;; is also converted to upper-case as well.7 h0 E1 C( B0 Y0 `
- ;;
( _! |. T+ z, i o - ;;9 E1 M" `, g% j' z4 t6 Q$ S
- (defun ver_tag ( / tval)
- d' a6 ~3 Z6 U- B4 z" D9 P - (setq tagval (get_tile "tag"))
3 J, s1 W4 o, j - (set_tile "error" "")
7 T3 t0 m& l; T - (cond# `; z! L! [2 \
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))% h- h, M" _9 b9 o
- (wcmatch tval "* *"))) L# E$ ]8 T" ?8 k
- (set_tile "error" "Invalid attribute tag.")
6 c& k5 o% M% r - (mode_tile "tag" 2)% [+ L6 c5 F0 x [" y: ~; L
- (mode_tile "tag" 3))
9 F: {6 y) L. H; p, d g" e) L - (t (set_tile "error" "")
; { ~0 i6 S9 Y1 n5 K! q6 {+ _" W$ ~ - (set_tile "tag" tval)/ s4 M3 Y7 ?+ g3 p0 U8 s
- (setq attag tval)))4 w. B1 }2 a1 z b6 a2 E" \' ^
- )
( ^! E" n4 n$ ?9 g2 \1 x5 P - ;;
3 O9 z5 a4 r) S. I/ X9 Y5 k - ;; Calculation functions4 {1 N1 k. ~2 Z! B/ G
- ;;
+ }: s$ U: ^ i* t9 u - (defun calc ()
) \/ M) ^- k+ G3 b - (if (= etype "LINE") (line_calc))
$ X7 P) ^: U5 d' V! w - (if (= etype "ARC") (arc_calc))
; g4 {) X. t: q& y; N - (if (= etype "CIRCLE") (cir_calc))
1 o6 i2 d9 }" c8 ?6 y) g' I4 ? - )6 \7 w1 v Q, `% b$ X1 J3 z
- ;;
( W2 I- }; t- y3 t$ ^, ^' B( E - ;; Calculation functions for lines, arcs, and circles
( F9 \5 n; Y! d3 `; |" P- N - ;;
1 z# r0 z0 ], m. P - (defun line_calc (), |7 [/ x* j0 u1 `9 K. d; _
- (setq stpt (list x1 y1 z1))2 T. | b5 d: V1 ]+ l
- (setq endpt (list x2 y2 z2))
$ p5 g1 `0 `1 F9 l H - (set_tile "delta_x" (rtos (- x2 x1)))
! D% t0 \; W: I0 s9 V - (set_tile "delta_y" (rtos (- y2 y1)))9 s/ N# R5 K* l4 z/ a3 u" Z
- (set_tile "delta_z" (rtos (- z2 z1)))
' L/ `( }2 _ u6 C! T {: W - (set_tile "l_length" (rtos (distance stpt endpt)))
% d7 t( C6 {2 x& I& P! y - (set_tile "l_angle" (angtos (angle stpt endpt)))
) k; M+ U( G8 l; F7 E7 H - )
* @( i2 D4 k5 k# X4 f) }
- K+ G) B7 ^* F- (defun cir_calc ( / area units)
6 `( D; v! p6 L( J, P3 Z - (setq radtest radius)9 L! n! A' e) \; ?/ F) K
- (set_tile "Dia" (rtos (* 2 radius))); p0 }- r, W6 o/ Q8 j
- (set_tile "Circum" (rtos (* 2 pi radius)))
. a$ m( G* `: e8 Z% ]3 C - (setq area (* pi (* radius radius)))+ \% N3 e J* Q0 }. x$ g
- (setq units (getvar "LUNITS"))
- a# @+ \1 |; b - (if (or (= units 3) (= units 4))
9 A( L+ r' l7 ?4 X5 B7 C- ], s - (progn
2 y( T9 v4 G# ^8 I1 w8 [3 `( o - (setq area (/ area 144.0))
- N" s& ~& k- @- O/ E" I" L$ q+ i3 P - (set_tile "Area" (strcat (rtos area 2) " square ft"))& A" c5 H3 {2 Y: @/ m$ d
- )
. u5 w& k% N6 B - (set_tile "Area" (rtos area))" D% Z' i. a9 ?$ J1 P% t
- )
! G! N8 s* m3 F+ z3 A+ S3 [* f - )5 s0 h! g ?7 `& K
- ; l3 ]( U# C k% N
- (defun arc_calc () T! t) l5 m: m' M% i- e' F
- (setq totang (- end_ang st_ang))
% a3 M# c/ N3 G) d( z8 q5 ~ - (while (< totang 0)8 e Q; ~' L2 I5 x
- (setq totang (+ totang (* 2 pi)))0 A5 a; w4 i# O; ^# b0 q
- )
' k# C- p0 I, z0 [6 p - (while (> totang (* 2 pi))
1 B. i n7 C8 T; D! n1 t - (setq totang (- totang (* 2 pi)))4 h8 @8 z$ {0 Q5 a5 @& v4 P2 J5 O
- )
+ p% q; A: ]+ R \, R - (set_tile "tot_angle" (angtos totang))% |. U6 e- h0 L1 M
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi)))), O/ X# C1 U6 P) s' n
- (set_tile "arclen" (rtos arclen))
: G' M$ m7 \. W9 k( O% K6 ~ - )
& q8 z; M, `- F2 B( @+ H$ } - ;;
5 G9 Q8 o3 H0 h - ;; Calculate the major radius, minor radius, major axis direction.' L6 p: w# j# M
- ;; Get radius ratio. Convert Start, end parameters to start and end' W: A$ }/ I, J3 v/ }
- ;; angles. Save Major Radius value in "old_majrad" in case the user4 H1 _- c- e3 G, w( q
- ;; chooses to input a new Major Radius value later. It's needed to
. r T& p) P2 E. e - ;; calculate a new Major Axis Vector value.# }: k: E, R* {3 S; }- W$ j
- ;;
. k* B1 L L: Q. C0 n# ^ - (defun ell_calc ()/ j1 d* p8 a+ F3 n3 G, H
- ;; Get major radius from the major axis vector.
' {. K( E9 q- h$ p# p% r - (setq majaxis (cdr (assoc 11 elist)))6 m( _1 W& e& ]+ w" |( p% M6 C. _" o
- (setq xx (car majaxis)) b+ f- K5 l5 z! H& W* ~
- (setq yy (cadr majaxis))6 m6 U8 H: u0 q! J) |0 Y
- (setq zz (caddr majaxis))% |) B; S. l; B1 r
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) ))): p4 {7 B4 F# b! y0 M6 ^
- (set_tile "majrad" (ai_rtos majrad))
7 r/ g! B) K) Q4 P7 b - (setq old_majrad majrad)
+ w3 P/ }2 M9 r- i' {( h& R - ;; Get radius ratio
0 S0 m4 M. @8 b* G+ ?3 n$ l - (setq rrat (cdr (assoc 40 elist)))
, N) Y9 c! o6 u% N# u - (set_tile "rratio" (rtos rrat))
( N' n1 W2 R! X' D6 L - ;; Calculate minor radius( ?! |, Z. b7 T: O6 \
- (setq minrad (* majrad rrat))
+ R* G" v) N# T1 t - (set_tile "minrad" (ai_rtos minrad))# U' G. ]; i0 S4 I0 w
- ;; display major axis vector
+ G% z: D4 N, W1 E7 Z% y. d - (set_tile "Majraddirx" (rtos xx))/ T7 t! }4 Q$ o8 C8 o8 F$ n( K V
- (set_tile "Majraddiry" (rtos yy))
; Q h" M& f7 d- @* y: r - (set_tile "Majraddirz" (rtos zz)) {: l- z! X' o: ?
- 5 N# E) K1 ~+ Y) ~( i
- ;; Convert start parm to start angle
( a5 l6 ~5 d* c7 `0 p2 } - (setq stparm (cdr (assoc 41 elist)))
' b+ Y6 ]' O) C: X; `5 i, `2 g - (setq vecx (cos stparm))
- X: I+ w6 k( J - (setq vecy (sin stparm))
, n; U( g! A# J! w( r8 N - (setq st_ang (atan (* rrat vecy) vecx))* Z" o/ x5 q/ h% c& c. p, _8 F y
- (setq tempst_ang (ai_angtos st_ang))
" W! g4 K+ @: |6 x3 `% A0 L - (set_tile "st_ang" tempst_ang)
6 ^% [; V6 G$ n; V* r, D, _ - ;; Convert end parm to end angle. If end angle evaluates to 0 A+ G- L$ F# q; @0 v3 w* L. o* Z
- ;; degrees then display it as 360 degrees.
( u+ e1 M) q9 i) N$ f. `0 m - (setq endparm (cdr (assoc 42 elist)))
& Q5 r; R, f- P7 @ - (setq evecx (cos endparm))
4 c$ Z4 n8 x3 y; m - (setq evecy (sin endparm))
8 l4 ?8 i( a; i - (setq end_eang (atan (* rrat evecy) evecx))
& S+ v! D, M: Q* W* h - (setq tempend_eang (ai_angtos end_eang))" j# j! G: n X* j
- (if (= tempend_eang "0")
2 S. x# y# m$ q( G* ` - (set_tile "end_eang" "360")
3 L( T8 f* ^) f' j d& k& L - (set_tile "end_eang" tempend_eang)
$ r, _. k6 X9 e; U - )- X' B- j# x6 c# `! v
- ;; Get area of the ellipse." L! C1 |6 \- c7 T8 j
- (ell_calc_area)' O& e' @8 F0 C( C! \1 K7 O
- )
/ q( z! m4 d! E& Z$ ] - ;; Calculate area of ellipse. If it is an arc then
) c0 M( U+ A* V: v, K$ O3 f - ;; grey out area display.( J, r* `. e6 T+ a7 v1 \$ d) \
- ;;
' c+ y9 G' |7 m# ]6 U. v0 K - (defun ell_calc_area ( / area units)
, c( g$ y9 {' c: F# q8 `; e8 E - (if (and (= tempst_ang "0") (= tempend_eang "0"))$ [' y" N1 ^/ r' ]* C0 [. Q
- (progn
1 I6 n U" ?6 a% p5 B7 H - (setq area (* pi majrad minrad))- |7 ~* C3 W# j f3 w
- (setq units (getvar "LUNITS")) c% [0 N. M* u2 E& ^* T$ b$ ]5 j
- (if (or (= units 3) (= units 4))
2 S" z- V( K* I$ P9 ^- G3 U, L - (progn
& V# u9 m6 l. m - (setq area (/ area 144.0))+ D. ?$ T1 R; b1 L( i: r
- (set_tile "Area" (strcat (rtos area 2)" square ft"))) U( s7 z' p& u7 N. I9 C
- )
. q' \/ K/ U3 e* D - (set_tile "Area" (rtos area))
3 s. z5 O d( s# x% z4 Q7 {1 ~ - ) N& t6 Z( w) _: @7 C
- )/ Y4 p i# e' I+ ?" s
- (mode_tile "Area_text" 1)
2 N, [" _) O( F# ] - )* F8 x8 c2 X4 q7 I1 E
- )
; B9 Q* z6 s4 e& \ - ;;) C) R! a$ D) p' G( w
- ;; Calculate new values for ELLIPSE5 L# c. ^0 X/ @5 o5 r& G
- ;; Minor Radius, Area
9 d9 \3 Y4 q" s% H - ;;
7 G1 p& D0 R2 Q' a: w - (defun ell_calc_newval (ell_tile)$ Q0 u& A/ z e. L: S: T7 `: P; f
- (if (= ell_tile "majrad")4 {) P1 e5 B+ c- h& |9 N; ~+ z
- (progn0 ?7 X" E' q5 J3 ^
- (setq rrat (/ minrad majrad))) k, G% [# S% T t e
- (set_tile "rratio" (rtos rrat))
9 [. J a9 f6 _+ H v - (ell_calc_area)
0 j; L- T% E3 w" U - )# e/ ^* ^8 k3 L
- ); a& e: |6 D4 `) r: P* N' J
- (if (= ell_tile "minrad")
8 b' [* d$ }+ d; g: B - (progn
5 f: g7 ~" Y0 |9 p E! ] - (setq rrat (/ minrad majrad))3 q- L+ y0 F, P1 B- K) k0 e4 e% E% Q
- (set_tile "rratio" (rtos rrat))
! X$ ?/ v! z3 V* I# Z - (ell_calc_area)
7 K6 g; T* d4 ?1 Z: u - )! Y0 g6 |9 b4 ?# U2 g
- ). z9 M9 S9 o( p# ]5 j+ O* P& H
- )
7 x* B( i3 g8 }4 n9 a: h, { - ! _8 b h ^5 e6 l
- (defun set_dimen_props (/ loop a stl txstyname). f) G, H9 P' W. `8 Y4 x! P
- # C% u. d' x0 @' f6 h
- (setq stname (cdr (assoc 3 elist)) ; get style name6 X/ Y, a2 R* e: J4 A! {+ i
- stl (tblnext "DIMSTYLE" T)
& Y. O3 b8 a/ L% Y5 v# A - stlist nil)
* c4 b4 T7 [ C; S1 ` - ;; Get all style names and list them in alphabetical order
7 z' k. n! C& M) P7 U6 b0 p9 W* `: S - (while stl
7 k& a. U6 u- \ q5 N) ? - (setq sname (cdr (assoc 2 stl)))( e, i# j# m( [, @+ I& U$ N& W
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)! G, C& T6 l5 W$ C' w
- (setq stlist (cons sname stlist)))
7 Y: s- j I$ a# [( H - (setq stl (tblnext "DIMSTYLE")))/ S8 R& J0 `3 ?9 B3 O; v4 j- }
1 j) ?* z, A) q9 M9 i- (setq len (length stlist)
5 U% b9 ^4 E6 R( Z - loop 0, ]) c3 x: A& y9 h( R8 {2 G$ W
- dimsty stname
3 g" J: J* b8 D: F - )* r& ~. c0 X/ y! L7 i
' x1 W5 n5 l% a( W) \! l4 X- ;; alphabetize style list, depending on maxsort' N3 v% c+ p! U. R
- (if (>= (getvar "maxsort") len)0 m8 J3 L) b, I; U6 |0 v0 m& X
- (setq stlist (acad_strlsort stlist))
8 }' n8 p3 U+ `8 G - (setq stlist (reverse stlist)))
9 i/ O* D' [1 ?) |: u
3 l& `9 b' Y6 f0 N2 v) D- ; *UNNAMED style (dimsty = nil at this point) is replaced with! v/ V# \: v# o y H3 [' S& n, N
- ; the current style. After R13, we require dimensiosn to have a' w" e' P; ~* d7 G
- ; dimstyle, so we plug any holes where we find them.
: \2 d: V( N, Q0 Z4 o' r - (if (null dimsty)
; k; r1 c R8 ~! ?- J# ~; l) [ - (setq dimsty (getvar "dimstyle"))
, `+ |0 f' d. s `. Z$ `. X$ x - )
/ v1 O( x7 B' ]! Y; C0 ] - ; Show the styles in combo box) L; q% t! ]! s. U0 d4 j P6 \, o
- (start_list "mod_style" 2)* m [# _0 u. ^; @- t2 Y. J# L& `# b
- (while (< loop len); n6 v3 @1 f7 n# G/ O5 x- _' O
- (add_list (nth loop stlist))
9 }( M( ^% e3 g2 e2 b - (setq loop (1+ loop))1 T: b9 e) ~; \" f: k3 R+ K
- )
6 U% q# _$ j0 M0 p" J - 3 ] O! ]0 ?& D; B H! G& O
- (end_list), [; m; a) J/ ?4 f7 [6 a8 p
- 3 }3 H5 Y1 o' L; H/ h. O5 v
- ; Hilight the style name of the selected entity
( V" a, g M( i- }- m* T' Y - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
. `" t. V1 ~8 H& \# N- ^ - (setq loop (1- loop))* A" ^" E8 n8 E7 r6 x" {, b
- )
: K L; v% L; c+ [ - (set_tile "mod_style" (itoa loop))2 R/ r. Y; O5 ]" S; u
- ! U6 Q. @) ~' v0 H" L
- ; The following is the list dimvars. It must be sorted in the same0 R0 C! S: {7 v3 _6 x0 {
- ; order as the resfub returned from DDIM (ADS module).
% `, l4 t# m8 s9 ^3 Q
, D, k; w3 B, E# L0 E7 _" }- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
; a# Y* a7 l9 l+ F: s - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"2 k1 C5 O/ `7 G
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"4 i) g0 C# C5 k$ h
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"5 L K: y& j+ @$ c7 p' i; @: t
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"; e8 o( M0 f+ J/ x
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
) X/ S% A8 }/ v( @ - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"& j5 i0 _0 X: B
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"& N% s6 H3 @9 z* k7 E3 {: l
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
' ]& T. _1 n0 @2 S$ m - "dimdec" "dimtdec" "dimaltu" "dimalttd"0 g, \5 L/ ]$ O$ _7 y \7 y' S
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"5 o" Q4 w6 o2 D" V
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
2 I2 R/ b, l4 ]. g* J7 t- v - "dimtxsty"
2 q% ?! m; z! }$ z - )), j" j- L% R" @& J ~9 G
- (progn
( ?4 c/ d$ X& ?! A/ a - (setq sv_dvlist (ddimen_getostate dimsty)
# }6 d7 F0 P+ U4 g5 x$ h( d - txstyname (assoc 340 sv_dvlist)
$ g o" \3 r% o* ^4 s6 d8 g9 w' Z1 P - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))' e. d# Y3 t+ o y) L T; [
- txstyname sv_dvlist)
/ F$ }# U1 w5 F/ Q8 C2 E - dimlist sv_dvlist! _6 d, ~, W, D# b" ] `- I
- )% ^1 Q+ \2 e! F3 V+ U% M
- )* r8 z( z, w! L6 X
- (if (= dimtype "DDLEADER")" m# ~- K: ^& k) r
- (mode_tile "mod_format" 1)
, V) V N3 T" d7 j) @8 k - )
/ D; |/ Y, E) D. p8 e - (action_tile "mod_style" "(setq dimsty (ddimen_style))")4 I9 j, ?1 W/ P8 a& ?1 w/ M& k3 L' {* A
- (action_tile "mod_text" "(done_dialog 4)")
+ {5 c1 S( W- M9 c - (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
2 ~6 b% }2 K* M( \& D) A7 @ - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
& J! ]: b" m$ C) _0 w# f - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
% h, ~+ k; _: L( K8 }" w - (action_tile "accept" "(done_dialog 1)")0 e2 o3 v7 p: {: I
- )
' w4 ^- k$ q v# B3 b - ;;: E+ L* [( h% i, y, m
- ;; Get dimvars that have been restored.7 ?* Z, Y" E5 \& }& r; P4 a2 P
- ;;
0 u: m! W3 {: Z8 ] - (defun ddimen_getvars (/ elm dvlist dv i)
3 n9 j ~4 T% W8 m% f2 d6 G$ w - (setq i 3& b4 F6 r, p+ o- J u7 b$ K
- dvlist (list (cons 0 "DIMSTYLE")
/ m' P8 o" h, x C: b - (cons 2 (getvar "dimstyle")) (cons 70 0))6 ]) K$ p- M' ^" [9 l
- )+ N" |5 X, V) m
- (while (setq dv (nth i dimtbl))/ i* S6 k+ ~% ^4 D& J0 ~( ^
- (setq elm (getvar dv)) `7 k6 O- M- i- F3 C, Z7 M" l, j" N
- dvlist (append dvlist (list (cons dv elm)))
9 c: ]% s: W4 V( h4 G" a - i (1+ i)$ d; S# p8 O, K+ J2 j" j1 T- s
- )
) y: |. g: k. N+ f j - )- L$ d( p- P$ S* O" H6 n& u0 {- t o
- dvlist
) B, ]7 [* s/ J* }) ? - )
: ` w( \, P+ M3 z. x3 W& Y8 I - - D9 v* c x& x6 m4 ]- g
- ;;( i; m6 ~/ Y8 Q$ V
- ;; Get the original states of dimvars. This is for DIMENSION entities.( {+ M7 Y6 A, p* [: g" O2 ]0 P
- ;;
: o$ w$ T6 Y: N4 c. k2 ? - (defun ddimen_getostate (dimsty / dvlist elm i dvvars); j5 t$ A! C" O& a3 V, v
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list+ D R4 L+ a( X# i0 e @7 b
- dvvars (ddimen_getvars) ; Get dimvars for that entity
9 Y" T4 N# f3 Q8 K& ^, s' Q - i 1" s; Z+ Z( v6 s1 }
- )
5 I2 {& W7 F# f
^( X9 {+ _# Y# R, |# f- ; Create a list that contains values of the selected entity.
0 |, J2 [, m6 P8 r8 D0 ^
/ f7 y; p& f5 R6 V V- (while (setq elm (nth i dvlist))
. L& F" i1 I. [0 m3 r' D1 W - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)( \) O' }3 u# Q0 e9 m( H6 ?
- i (1+ i)
2 l! c! a$ V* |' `. u6 ? - )( Z1 S" }# o0 v4 V8 @' F3 L6 N# k
- )
?7 o5 N+ |1 y( Z$ z8 L* N' `* M - dvlist" \/ {9 ?! a) E; o6 e5 V
- )/ @6 C/ D# o3 s6 o5 u
- 6 O& x8 i" K6 q4 n ^
- ;;! E7 u' P6 f/ E0 P! W4 O6 j8 K5 ?" a
- ;; Restores dimvars of the selected enity. X f' E+ P* ]) p- V: a3 H
- ;;
8 [7 O( b/ M8 q1 z - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
6 E# M/ c& k2 x8 n - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"$ B2 X# |5 F7 `* |; J* k. W8 P+ E
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
% T7 p. p' g/ H - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"5 a- G' E# f4 v6 v+ r$ T, l
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"* t& F7 {+ N5 W" i& j
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
) E: c- `' Z3 t$ \ Y0 R - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"4 c# G+ v7 K) j
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"- k3 q$ g: U1 `9 |9 Q
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"! Z* L# L% R! n
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
5 d7 `# G+ Q C4 ]% k4 Q0 t - "dimdec" "dimtdec" "dimaltu" "dimalttd"& Q1 |. W8 g/ W8 ?# F: a5 G4 Y
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"0 d$ m/ {. ]1 x" w" B5 {, n" ] i
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"7 h- X F8 y. q8 O$ L0 }, N
- "dimtxsty"
! a( p& {% g% F! e. g9 A2 q - ))3 a8 C+ K5 Z: N
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings% N U4 E4 |1 r# A
- (progn7 ?/ }! N% P* s9 ]0 d
- (setq en (cdr (assoc -1 elist)))
" D" D' I. G4 C$ N' ~ - (command "_.dimstyle" "" "" en), F8 x5 q7 B4 L
- )
1 Z# Z; d z0 Y" \) M - dimsvcurset8 {+ B# e6 S0 M2 s
- )
( ]' Y, H; m# D {" G, d - ;;
1 ^( ~4 N0 W/ D& s( u - ;; Modify Leader! ]! @! j* J% q0 [% B0 q
- ;;& \/ B2 _& f. {) @' _ N: k2 n
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
' ]* G1 E4 }) v - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist/ Q" k4 @% |3 {* u
- dimtype dimsvcurset)
$ `. F7 C. F% G8 ^* [* ` - (setq dimtype "DDLEADER"
$ f! ~4 S9 L+ k6 V W! T - dimsvcurset (ddimen_dimsty_restore)
; q# \% x7 {# x - ) k4 R' G1 j% L: Y
- (if (not (new_dialog "ddleader" dcl_id)) (exit))
+ p0 Z3 H/ a* Z: E - ;; Set initial tile values
, G6 F$ l2 M) t4 Y2 ~/ o - (set_tile_props)0 I+ u' Y9 z9 q$ {) S& m; L
- (set_dimen_props)
: N+ v) u% q( n" a1 y! m - (set_tile_handle)
: V5 L+ m/ j7 t- [2 A - ;; Define action for tiles
- `# [2 {2 \5 `% u - (set_action_tiles)
+ {; n6 B/ k r3 Q, t* l - (mode_tile "mod_text" 1)
4 {9 u* P D- B' M' z. u1 `5 t - : n8 [' E, }: V" C& c
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")7 C. {. n1 v: x& V1 y
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")6 v3 v. C+ {4 F P& Q2 W
- ;; Get ARROW and TYPE.) i, o% s, ~8 e& `' }* N2 e
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))3 M+ C9 Z- V# O; y0 u
- (if (= 1 (logand (cdr (assoc '72 elist))))3 d& H. a. z7 I3 B8 Q' e% n. |8 @
- (set_tile "s-s" "spline")6 l' z" o& M0 b; V0 e& p9 `
- (set_tile "s-s" "straight")
/ |6 p% a2 G! @4 o* g. C - )
* k# v1 @" o" d0 b - ;; Start the dialogue.
; o' T6 K0 p, A( [% C - (setq dialog-state (start_dialog))
% V" j2 J# ~& Y! e; n! C7 k% F6 D. _8 H1 _ - (if (= dialog-state 1)
9 P: P# p8 G; G( ^ - (progn2 i4 @! F2 Q8 I/ D
- ;; update the style0 A2 P0 h( @ l2 U1 y" q$ R
- (if (/= dimsty stname)# ?( |+ ^5 N& K
- (progn% ?. d- f9 j6 z6 y$ [
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case+ a8 h8 q7 M0 v P, }, m( J9 O4 r
- ; doesn't have it.
1 _7 m0 t' }; U& Q4 U8 x - (if (null (assoc 3 elist))+ h' f2 `* O9 G7 l
- (setq elist (append elist (list (cons 3 dimsty)))) G# W S2 \, P* A
- ; else just replace it.. x. q) ^. ^! v1 N' {
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
$ y. } `* y5 u% f, ]" H8 ] - )% u. j# C; Y( i5 I8 c4 W
- ; refresh sv_dvlist with new dimstyle.
& Y# r. _% f0 j - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
* ]5 R) w: Q# d$ y3 N- ` - )( j" @, E3 C: j/ j* a& |, y
- )6 i( o% \ B% |
- (if (not (null dimlist)) ; attempted to change dimvars
# I% P) E/ }2 Y- c* z' z% R$ B6 ~+ g: i - (ddimen_complist sv_dvlist dimlist dimtbl)
3 I5 B. s1 ]1 p2 H9 \$ K' j - )
3 S4 O2 \9 r" Z - ;; update for ARROW.
( O) l- c& {6 t9 |( ]+ Q8 F - (if (= "1" arrow)6 f5 x* L% j5 q: ]0 i w0 {
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))1 v/ F' B: O0 T U( W" R! k
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))4 T7 E0 f" N& t- p7 a
- )- d. ]6 {5 V* D8 x: q& V# @7 {
- ;; update the TYPE." i) `2 L% T) s D2 A3 r
- (if (= "spline" leadtype)
1 P2 e* a/ n* h9 R) n& _ - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
+ J3 g8 A, u" Q' `! j - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))$ R6 s2 }4 ?8 _! U" j ?
- ): V, q, M7 {2 t v; a
- (modify_prop_geom)& u' w6 [8 ]- K1 g# ~( n
- ;; update the Color) s. H) A0 e& a6 F# q
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
; E& s# c" i* \9 N0 s0 L - (entmod elist)
1 w# W' d6 Y) P7 n2 c9 R - )
c; I; M. P* F - )" i- R6 G1 _6 G* \9 ]9 d
- (ddimen_setvars dimsvcurset) ; Prepare to exit8 n7 U0 P/ M& h; p" O/ e# [, k
- )9 j- R. o8 `6 X: h& }! U( v' T! D
- " u9 x( E {. d: N
- ;;8 d( y t' q! I& u- s5 R5 z
- ;; Get dimvars of a dimstyle with overrides.
7 p: C; y6 V9 c, Q - ;;
( ]3 ]0 d# _ L$ b - 1 l) {! G. {2 g. J5 Z9 K1 f1 f
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)! H- A5 V& I |- f6 k ?3 B
- : Y; ?8 Q, O+ \ j6 \2 N8 p
- ;; Get override information for the specified entity.
/ d9 \7 c1 e- L - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we$ O! \" Z6 t3 ?/ Y
- ;; must obtain override information through this tedious operation.
* p2 O: r4 \6 I; }' H - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))' B. L* V3 c$ f$ r
- dvlist (tblsearch "dimstyle" dimsty)
. z4 i$ ^6 Z6 b/ `: i - i 2
/ ^' k! F$ ?% ^4 r/ v+ G6 y, B7 I - )
; [5 L4 @: ?4 n. S3 Z
/ q# u/ Y6 x4 ]/ U* n0 N D- ; Update the list with overrides if overrides exist.
7 Q9 S) U0 D0 f3 r. K/ ? ]" _8 a - , n# ]0 S1 a7 f) S7 z
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr)))). R5 f! J2 l! u* O9 j) w# Z
- (progn
. T* v* n: V7 i, U, W( j - (while (setq elm (cdr (nth i dimovr)))
: i3 S s9 z: _ - (progn
# s2 H3 E7 H: f+ {# u* t - (if (or (= elm "{") (= elm "}")) v1 m3 [1 ^# s- Q7 J
- (setq i (1+ i)); X4 T. Q Q! G: F" D2 S* s
- (progn
- v3 Z( O8 k8 J - (if (or (and (< 180 elm)( q: b7 d- [2 i/ ^% B
- (< elm 190)
& i, m+ {! d% D/ P! ~ - )* F+ Y1 N A" M! F' _ u
- (and (< 80 elm)
' ?* t. T0 v, P! l# C6 Y: F- O - (< elm 90)5 k7 `8 G* I4 r) w6 o
- )
( M% E8 Q/ z% l) M' y; w - )
) G+ B* O( p% s' C5 o5 ]$ ^ - (setq elm (- elm 10))9 d+ B* x# S" A+ y
- )
1 Q% q0 l' f/ H5 y6 Y/ e# i - (setq i (1+ i)
- A6 B$ l+ ?$ ~5 e2 l! { - elm (cons elm (cdr (nth i dimovr)))
9 ]8 A, ~5 M& P- p - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
% @/ l- k C8 y. l( r0 M - i (1+ i)
& k4 t% x* E2 o! h. a* j1 @ - )) ^( W3 y9 F2 G% e Q# S
- ); C: s, T9 T5 ~# j
- ): i9 Z( j& H! h( j9 U
- )
: O% H: _, J2 O& \+ [( \! J5 Q1 J) U - )1 P1 d- \ H2 }- _9 G/ {
- ) t- x8 P! k4 ]! {
- )* V. m5 S4 N: f2 c3 U0 f
- dvlist% `( {. ?, V+ w3 U3 t
- )) ]5 F' X) p N- n! u2 E
- , w: }4 K4 e5 u- x2 V
- ;;
9 V- @. Z- ^' k+ j: G; f4 | - ;; Modify POINT8 S2 p( p, B2 B. {: @
- ;; X( D6 b2 r `, ?2 m
- (defun modify_point ()
" b. _ Y5 I( l; J3 H2 G - (modify_properties)$ V( ?- k) m7 K
- (setq pt1 (list x1 y1 z1))) e* v$ x8 I) H8 U- ], r
- (tempmod pt1 10 0)- H, x4 i5 s k/ e% `/ w
- (entmod elist)
3 `/ P6 |8 l! H) v( f - ). n! p% x6 t$ |8 w+ D
4 A/ l7 g+ K7 I' f/ D; I- (defun ddpoint ()
% z% _9 I& D; B2 N% E) ]5 W - (if (not (new_dialog "ddpoint" dcl_id)) (exit))
, m# ? |. m9 a4 ~5 h - ;; Set initial tile values. @$ c0 P. p6 ^6 Z0 J" ]
- (set_tile_props)
' ~& d$ Y2 O2 x1 m" N. m - (set_tile_handle)/ A1 v8 M& ]) _" t- b, F' ^' b% b
- (set_tile_pt1 0)
6 @0 p/ k& n) z* A - ;; Define action for tiles' _6 } G8 U3 H2 A( Z; m# C5 h
- (set_action_tiles)" H4 d1 x3 }. W9 L& i: S
- (setq dialog-state (start_dialog)); H3 A9 A* X- l _, i
- (if (= dialog-state 0)8 L$ a+ |0 C x, J9 H- u1 j
- (reset)
9 U7 o3 a2 s' S) D* ` - )* }$ f+ Y# S' S/ r6 a+ w& z# t
- (if (= dialog-state 3)
0 h) N6 `9 H, f - (progn' ^# [5 o" ~5 S8 Y7 K7 x
- (modify_point)% F7 I3 Z% v w2 [
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
/ f' ~, r! O9 J3 j - (ver_pt1 0)
5 B+ K& Y* a% U - (ddpoint): A8 T/ i) c' j; N* \
- )
3 E: Z) W+ d2 K/ Z1 |- @ - ) m' `) ^2 R$ H1 K- P* ^
- (if (= dialog-state 1)) k! f: J! j; x
- (modify_point)
! ]7 T% N6 Y8 W - )0 p3 j4 M9 J5 o* I% x
- )% o. W2 c4 r9 [- M% k6 K+ F
- ;;
5 a, ^, F% S1 ~5 O. Z2 Q - ;; Modify LINE
9 @4 a5 [+ z2 f4 A1 \ - ;;
5 V' y+ G+ x% |" g - (defun modify_line ()- g7 T7 r* y0 K" [3 {1 f+ q' k8 _8 r
- (modify_properties)
: W' ^& \5 i0 \% O$ @$ v; H* x& n2 n - (setq pt1 (list x1 y1 z1))
2 _5 s8 I5 H! ?* p* M2 h) S/ r3 V - (setq pt2 (list x2 y2 z2))! w2 K: Z8 K# `4 _
- (tempmod pt1 10 0)
% u5 `2 f5 j, t# K& N - (tempmod pt2 11 0)
/ V7 m, N$ P: P - (entmod elist)0 r7 ^" K: G: ]4 @3 A: ]
- )
/ ^0 F! r: Y& P- t( j - (defun ddline ()
: E4 ]2 S% P- K' x/ s; O - (if (not (new_dialog "ddline" dcl_id)) (exit))
0 O3 c6 E, g& j. f - ;; Set initial tile values
8 F5 V, M5 v V9 J - (set_tile_props), @! s$ J. t0 w1 L4 x# Q
- (set_tile_handle)
' G6 z$ w! d$ N1 T, n - (set_tile_pt1 0)
4 D" v- t6 Z% p - (set_tile_pt2 0)
3 Y P& M' z5 _" u; K) H: y2 d. C - (line_calc)
; E/ x1 M8 W0 p4 E - ;; Define action for tiles
4 I4 T; C' c% V& ` - (set_action_tiles)
" h" k+ K* D' r. n" G - (setq dialog-state (start_dialog))4 {' g/ K9 R" X/ B! U8 E1 x: Y
- (if (= dialog-state 0)
7 H# t c5 n4 h- A I) M - (reset)
( o5 R3 q; t- }- q( |0 j! j! A - )
j% p: H1 V& n# s- a - (if (= dialog-state 3)2 r3 r/ r' A2 c. L( S
- (progn6 m9 L# i+ F5 \2 z7 m+ ^! B& L
- (modify_line)
) J3 z. X o" B# R& H, y/ e2 K) W - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
2 C3 {. @2 @$ J( y3 L: z+ T - (ver_pt1 0)
& W' R9 a* \+ Z; Z - (ddline) A1 D" U1 K* q5 x/ z
- )3 v }% G5 [- j( u4 v, m" }" f, R6 `
- )
9 g( q1 n! n4 J - (if (= dialog-state 4)
, C2 @: L8 P* M/ u9 T3 ^& T - (progn
' T3 I* j9 a1 i1 X - (modify_line)
+ [& i6 m' B6 C! v( q - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
; B8 b ^( V3 s( M - (ver_pt2 0)
% w! o; i- b7 s Y - (ddline)
4 `' S$ \, I* U" a, |& j3 n - )4 a2 j$ P+ o7 e6 v) p A
- )
' H2 \6 {: c$ I8 i- q. x# U - (if (= dialog-state 1)
9 W( ?. V& {+ d- | | - (modify_line)6 h: X9 Q0 S" M9 O, E0 g
- )
/ ~. m9 K% T$ l0 v7 i2 J: p - )
5 o, r3 c* [% X! h' V- R - ;;5 d5 G7 K+ U" }$ S
- ;; Modify MLine
; d5 G6 z1 W" o' }' ] - ;;
4 S: _" Z3 Z& c. D G5 I: G - (defun modify_mline ()' j+ e/ G6 c2 q# z. Q
- (modify_properties)& T: e2 I& [# _0 S. ~# y
- (entmod elist)& ?' y& z4 G5 ?3 o7 R& |
- )7 c+ k5 ?1 x8 \" h8 z
- (defun ddmline ()4 j/ v; v5 E% S/ M9 G% [! ~
- (if (not (new_dialog "ddmline" dcl_id)) (exit)) W$ e1 L8 y4 Y9 n/ d
- ;; Set initial tile values8 w, f$ H& M. d* S
- (set_tile_props) o2 D9 W8 O* i) O3 N' g9 y$ o. s
- (set_tile_handle)
( R1 f8 d( U; o9 q! t4 T& W- x - ;; Set mline style text field.
- C( x/ @/ C& F) U) {+ o8 [' B - (set_tile "ml_style" (cdr (assoc '2 elist)))
! l4 `" F- }5 d. I5 P! G- L - # g; ? \) Y7 I, \
- ;; Define action for tiles
6 @2 {4 u+ C. x: q. f - (set_action_tiles)0 b$ I$ Y7 z; x7 S' ^+ _# q
- (action_tile "ml_edit" "(done_dialog 3)")0 l6 ^7 }- H* F( ] f
- (setq dialog-state (start_dialog))
; O$ t* L! D) I @1 j% x+ ] - ;; Dialog cancelled, reset to original values.
. b k5 s9 E0 s% @) Q' f- _ - (if (= dialog-state 0)" F1 I% g) J% E8 f
- (reset); u, f/ l2 d; I6 Q
- )
% C% q$ Z" U$ x! E! g7 ` - ;; Dialog OKed, update the mline.; Q2 y2 l% l6 O
- (if (= dialog-state 1)
6 ]0 @ r4 d0 s6 I3 i( V - (modify_mline)2 f: y" z! G3 p! A r
- )
. e/ W5 R$ ]5 n! ~ - ;; Edit Mline, call MLEDIT.
R5 P/ a x' U$ p& Q- o - (if (= dialog-state 3); L9 q2 X! c5 J( J1 j% c
- (progn9 r4 Q# b7 _& B; ? _
- (modify_mline)
% A7 \7 A$ n9 }7 @' ` - (command "_mledit")7 C1 B4 w6 r t2 l v
- (ddmline)
5 [: a# d4 a" w; Y0 F/ L' M - )8 F# c8 |9 }2 l0 X0 [& K8 o& _
- )
" z6 \- L: g% {$ T1 l - )
/ m/ s5 e7 N4 U8 u1 a - ;;
0 B T1 f8 Q& }7 V7 o& A - ;; Modify Xline- Z2 b L% U4 \
- ;;3 q d6 L1 ]9 @
- (defun modify_xline (flag)$ B. V5 C, r( H* ^2 {6 H
- (modify_prop_geom)0 v/ p5 D8 ]! O# q1 h6 Y
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1)): t2 E0 p3 {0 F6 i3 b$ S$ _( D
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))- A1 v& Y& T3 R6 E; { E
- ;; Update the Root point.
7 \, n2 G6 I7 U4 J- X* I% S - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
) o- Z/ `( o( S7 |: J$ X - (assoc 10 elist)
# d/ O* m+ K9 q - elist4 f6 O* t4 ]. ~2 A/ D" ^" @( Y/ b7 [# Y
- )$ l( c' X% [7 |% l" E; s: c( b
- )6 Z- `8 ^3 Q$ c! h" P) w i0 \
- ;;9 I" i& S* f' `
- ;; Calculate new Direction Vector WCS" _7 H! n a5 f4 I5 Q$ J
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) )); N* v0 l. {4 n6 S4 ?% ~
- ' v: V5 z1 X& z, a) r
- (setq temp_dir (trans xline_pt2 1 0))# o4 d% N& O) @9 ?! t
- (setq temp_dir_x (car temp_dir))
. v1 e4 V2 k& i# \& q" y- s# O - (setq temp_dir_y (cadr temp_dir))
3 S$ y! z# x2 J' b2 a - (setq temp_dir_z (caddr temp_dir))
: v( a7 B# v2 X
: R; f- j3 b+ t* S& z- (setq temp_xline_pt1 (trans xline_pt1 1 0))
1 a( l9 E F5 ~4 M: m( B0 C1 X - (setq temp_xline_x1 (car temp_xline_pt1))
( A. N$ W& ]' k - (setq temp_xline_y1 (cadr temp_xline_pt1))" O8 a* p- I# D
- (setq temp_xline_z1 (caddr temp_xline_pt1))% U) E3 h! w6 ^, S7 H- Y7 t* U
1 N6 ], g6 H$ |& K' i: n ?- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)! O+ {5 B; v H
- (expt (- temp_dir_y temp_xline_y1) 2)
) y p) [7 a6 d+ T1 R b$ u5 n - (expt (- temp_dir_z temp_xline_z1) 2)
( D7 O+ m7 ^8 w1 l0 v - )))
' z8 t5 t; \8 h% x! z, O0 T - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
* i6 [" A: C; {" t1 m* H - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
1 g4 i2 T) U! n+ K# H; d2 V - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
' K( E# k3 U8 E9 z - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))5 S9 S8 O3 Q1 ^& s$ c" s
- (assoc 11 elist)
- ]6 o) Y9 D" { - elist" n9 X' P9 @. \: b: b
- )' a( _( L9 G h L
- )
$ [9 d7 g8 x( T3 F; [ - (if (= 1 flag)
4 o7 H+ U4 g3 D% F7 r$ f - (entmod elist)/ K G+ K7 o! b% @5 V( y$ ^
- )
- n! Y/ h( c" M! m - )
7 C3 n, l3 J' V& F; X
: \$ m! d! o. G' l8 p- (defun ddxline ()) w. h7 @0 W+ x- x: ~( j7 W* O
- (if (= etype "XLINE")
2 n3 B7 W7 t) _' ]) t( k- O - (if (not (new_dialog "ddxline" dcl_id)) (exit))2 e0 B$ V8 h" g) D
- (if (not (new_dialog "ddray" dcl_id)) (exit))
; p) ]5 `9 n% H' R) s) L! } - )! G) P; J! d4 Y @6 n+ @
- ;; Set initial tile values
' J1 j. H+ Q Y1 ?, V; Y* f3 I0 ^( c - (set_tile_props)
$ _3 {! p" P: F+ z, K - (set_tile_handle)
/ s6 A/ `: x8 B9 d# @+ d - (set_tile_xline_pt1)
, r% q9 o# L4 g% ?6 y - ;; Convert to UCS and post Direction vector.
1 c! q1 b5 d% b3 D u. } - (set_tile_dirv)
3 p9 J1 _1 C( o9 H! J - ;; Calculate second point by adding Root Point + Direction Vector.
2 a& f) [0 E% H% B5 ~7 g0 a - (set_tile_xline_pt2)/ y. ~) Z% }3 Q! a; {( E
- ;; Define action for tiles! [% Q! Q5 z5 J) H1 a3 ^
- (set_action_tiles)
! I0 n* O7 b M* o - (setq dialog-state (start_dialog))
9 T/ z; v) B) O; o - (if (= dialog-state 0)
' A% s: v: g3 ^3 N5 p2 ~ - (reset); h1 i4 e* \5 L$ N9 s; M5 r- V
- )' o7 d `2 Q; D5 w& @! M) Q
- (if (= dialog-state 3). A: q, `$ z3 c
- (progn: V. f- v( [, h0 V" L9 X, s+ J
- (modify_xline 1)/ H: B1 W" {5 r' [5 o9 a& H
- (while (equal xline_pt2: u% y5 J; d9 W. Z/ A+ U
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)- }( j9 v. v, V
- (princ "The Root point cannot equal the Second point.")
( p) A% V2 a5 l - )
2 t1 |) c( _2 \+ a" {3 g - (ver_xline_pt1)
3 W# k: q. ]; F( x$ f$ |+ } - (ver_xline_pt2) F6 Q3 [ e3 h2 S; U
- (princ)7 k' [, l! G3 \8 U& }$ f
- (ddxline)3 t {) c8 d7 F5 `& V; n
- )4 M! @- o+ Z0 o2 ^6 }( o
- )! F) b1 i1 z) M9 ]3 K, {
- (if (= dialog-state 4)
) {$ O2 N- T7 j, ], V& q - (progn- Z+ l5 E+ a6 R( h( ]) q6 _
- (modify_xline 1)$ {( |+ z1 q: r/ \9 ^5 T
- (while (equal xline_pt18 u+ L" Y4 G+ }! ?7 v
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)" H( F+ o& _2 m* J6 D2 b
- (princ "The Second point cannot equal the Root point.") f5 [; ]- d; {, }. U2 A$ W
- )
0 \3 t% B& v) P. u9 c6 e - (ver_xline_pt2)
! x! u( @6 y ~+ J/ h - (princ)
5 J( M+ h! G j* h - (ddxline)
5 c. O% Y4 U# R: b( T1 N+ T - )
$ Y* B0 W4 ^7 f# q8 c) D/ X - )
0 ?& x& {# U [& [, P* J9 O - (if (= dialog-state 1)
9 p& b- S- L' B4 k. @" L+ ?! L - (modify_xline 1)
6 c& N X9 d8 L, {1 a6 }) G3 t - ), K+ ~/ Z0 _7 y2 w9 B$ v, J9 @
- )
% @- r$ p Q7 t" k" y0 a1 c - ;;
; A1 a" A" Y5 P$ g4 @1 T" x - ;; Modify ELLIPSE! k. H4 ^% o& m* b9 \8 r; [' Y
- ;; P" X& u# \- h- u4 n
- (defun modify_ellipse ()
% S9 v" `5 |' d1 H' R- n) r3 M& p - (modify_prop_geom) w, u/ t( n" ^. [
- ;; Update Ellipse Center Point value.1 I# Z, s3 G& T: t/ |
- (setq pt1 (list x1 y1 z1))8 l, p( A3 a1 x+ N
- (tempmod pt1 10 1)
! P7 |8 _9 B: s! }0 R" t - ;; Update Start Parameter value.$ \/ a+ S# t5 R" _. @7 f" R. [+ G
- (setq y_val (sin st_ang))+ o4 _# r% M/ @; `1 B# F& U9 w
- (setq x_val (* rrat (cos st_ang)))- l9 [( v5 ^ {; f/ z+ `) J; t
- (setq stparm (atan y_val x_val))
. i9 b3 o9 Q2 M4 s0 f - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
4 W3 m) R7 O) `% \ - ;; Update End Parameter value. Normalize it, if it's less than
! } j. k/ B* b - ;; the start parameter.
! [+ f& ?0 Z* t/ ] o" v1 a - (setq y_eval (sin end_eang))
5 A: \/ J4 u% Z E3 n( w$ j3 ~4 o& I - (setq x_eval (* rrat (cos end_eang)))
4 T1 G3 Y, ] m' j q7 Z - (setq endparm (atan y_eval x_eval))
. a6 s1 z3 _0 R$ ]9 X# I8 y% k - (setq diffparm (- endparm stparm))
* X J" N7 J0 T, `& ] - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
. J6 @1 @, ], \& q+ F" j - ;; Since zero length arcs are not allowed - construct the full
6 R( F6 K2 S: _4 S: p( @% k - ;; ellipse in this case.0 `6 I7 `. q$ @8 Q4 Y
- (if (<= (* diffparm diffparm) 1.0e-12)
( D/ K+ ~6 o' \( I' R0 v7 ?) k - (setq endparm (+ stparm (* 2 pi)))
; W- a- @2 G2 ]* n P - )
8 ]* F. |& d, ]# P$ w' Z. u6 @ - (if (<= endparm stparm)1 N( ?/ |4 v' I6 n) x
- (setq endparm (+ endparm (* 2 pi)))
& w" Q9 Q; z* G3 h/ K5 d- H - )4 x0 p' Z" [4 t. s4 V S4 F" O
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist )) k% c" k/ ?; x* ?. _# M
- ;; Calculate the Major Axis Vector by first calculating
4 _( z: r3 [5 ]" [- [ - ;; a unit vector using the old Major Radius value. Then+ l/ j8 s9 O0 k# b& I3 ]1 _
- ;; Multiplying that by the (possibly) new Major Radius- `; }5 E- j+ Q s; W2 E0 z7 g
- ;; value to get the new Major Axis Vector value.
" {- K& F- j3 v# `: e7 C& Z - (setq unitxx (/ xx old_majrad))9 Q5 X: h" u! Q2 Y/ R1 \3 Y
- (setq unityy (/ yy old_majrad))5 z) x0 {* M. R5 a. m
- (setq unitzz (/ zz old_majrad))
# y/ f) D K# N - (setq newvecxx (* unitxx majrad))
8 ]& R! j! p$ v: A - (setq newvecyy (* unityy majrad))8 h9 W2 W# F3 D8 B8 L) W
- (setq newveczz (* unitzz majrad))/ p. c& N/ [/ m; `, p8 N. _
- (setq newmajaxis (list newvecxx newvecyy newveczz))4 j- H$ G8 i a# ~2 I
- ;; Update Major Axis Vector value
$ A( \( A3 Z) b- b& p) l8 I - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))$ L' i' i, s/ U3 c
- ;; Update Radius Ratio value
4 \0 Z9 k6 o2 { - (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
A2 F! i M5 q( r0 L/ _1 F3 [ - (entmod elist)5 g( r0 S4 X3 h
- )
# f! b/ _- G$ N& ?6 d& t8 i - ' \* c% X u$ o4 f0 ^
- (defun ddellipse ()! ]) W- l2 ?" E
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))
( @4 C" t# F. I! S" M8 P - ;; Set initial tile values$ J1 t+ d" B9 e
- (set_tile_props)7 J/ u) k$ s( V; \5 C' f X6 g$ W% `& K
- (set_tile_handle)
$ j5 W; y8 y* e, d$ g - (set_tile_pt1 1)
: t% j3 P& n U" F - (ell_calc)8 T, u Y" P9 S3 F
- ;; Define action for tiles
" Y, @/ P! o2 {' L - (set_action_tiles) ?' b: Z& P! y* G9 I
- (setq dialog-state (start_dialog)). w) ^; c, `$ l# @1 h6 d3 R2 ?
- (if (= dialog-state 0)
0 n# ~3 m% s- o+ H# p - (reset)4 G, E8 L* W/ R& V$ P
- )9 G+ F- L3 u- u8 \( x, d: M2 n
- (if (= dialog-state 1)( L$ o6 D- a2 F& M
- (modify_ellipse)
4 N `# O* {2 m7 p - )2 _; I* \3 i+ s6 _) Z
- (if (= dialog-state 3)' \& [0 [9 `% ^, h# i, @3 n" Q* N+ t
- (progn
) |9 m3 S+ W/ ]5 o/ } - (modify_ellipse)
5 l6 ~/ w/ t* B5 |. e - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))$ y* y# |% D% a" {) N! x* n4 g
- (ver_pt1 1)! W b% @' \+ _1 f- y9 B+ ^
- (ddellipse)) Q- h2 H( p! i. e
- )0 q& z, H! }9 V
- )5 G% P8 q, I& K( [6 @1 l( W9 a: s
- )
& t* J6 Z/ D5 N - ;;1 O# A5 ]' V' W2 U* T
- ;; Modify REGION; C9 J% A; N* n. L
- ;;7 u- w' D1 ^: J* o! g
- (defun modify_region ()& V7 T' |" z2 @) X2 ]8 i s1 n6 b
- (modify_prop_geom)
_' F7 J4 O5 N" _2 H! M: v6 f6 N - (entmod elist)
; P1 o0 t" Z! b7 A% Y {, C! h- P - )9 Z' T4 }) Y& ]/ ~8 N
, N7 w6 \; N$ V# b7 |' f; V2 ~- (defun ddregion ()/ t5 o4 |4 O2 ?$ Q
- (if (not (new_dialog "ddregion" dcl_id)) (exit))4 ~ m' w2 Y+ `4 @2 e3 G
- ;; Set initial tile values
+ ~9 R. n0 ?+ u4 K( q3 G - (set_tile_props)
- h5 y6 s$ f0 e! f! j' Q* n5 C - (set_tile_handle): r$ N6 W/ P4 J% N3 |- q+ P7 O5 t( t
- ;; Define action for tiles" d# A# d7 P+ B% a/ h
- (set_action_tiles)+ t- H+ b! s. c1 Z
- (setq dialog-state (start_dialog))9 r% D0 C0 n! A7 L @: Y3 V
- (if (= dialog-state 0)4 Y# ]: Y* R: y: v1 P- `
- (reset)
* c6 p ~8 y/ {0 Q - )5 M) L3 s/ d5 v# T2 ]' {) U
- (if (= dialog-state 1)
$ {. A+ a0 G( t5 r% x: R& g2 l% e( i - (modify_region)3 O5 I/ |( ?# ?3 f
- )9 o0 N' K4 z I
- )$ i$ I, ~5 _" F' ~6 Z- K
- ;;: O4 k" L7 q5 }, p- v& v
- ;; Modify 3DSOLID
2 z6 G" E4 J% a8 V( R6 @5 t) e - ;;
% ]: U7 |7 \- r - (defun modify_3dsolid ()6 }$ p/ _* ^( D3 C* i1 { s, a) p
- (modify_prop_geom)8 p( G8 q: N. R; Z ?, X
- (entmod elist)7 y9 m! @. r6 D, H( F/ g7 ?' f
- )8 K0 d* t/ |# U
- 9 o0 r0 O$ w; \7 n, g
- (defun dd3dsolid ()0 ~& p/ {7 d, v% v' y' L
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
t& g. P7 x+ ]0 R n - ;; Set initial tile values
* w8 I/ \+ @, m: \ - (set_tile_props)
# \4 Q1 V; ~) m# v - (set_tile_handle)
6 @3 w" l6 u) a$ F; s" o, B. z, i - ;; Define action for tiles
. u$ ^( J8 p# y$ G& Q - (set_action_tiles)4 m2 p+ H4 _! V! | `/ H5 s! K8 w
- (setq dialog-state (start_dialog))
3 Y# o$ P- R) A& B! P- y0 y8 y( w0 t - (if (= dialog-state 0)
1 h" W7 @5 {9 U: o8 W7 o5 V3 l# o - (reset)
" \* V4 |0 Q+ v D - )
2 E- |7 L; ~) |- C) \6 Y. P - (if (= dialog-state 1)% P9 F3 p9 Y% G+ U; r% J( k
- (modify_3dsolid)$ K8 U! ?6 B$ z9 K: Z# n
- )
0 ?, j4 U/ X# J - )
; I, O$ j$ i3 i1 A+ ^ - ;;
4 m4 P) X0 k! T R0 l# o1 ]* K& l2 ~ - ;; Modify AcDbHatch3 X; M# Y: s; F% Z
- ;;
8 n4 U5 p! {! A4 ?" I [ - (defun modify_hatch ()
1 m" x* R8 x, X1 {% q2 L- y0 S - (modify_prop_geom)
# ]- F6 z5 k# Y1 I6 O6 K7 u - (entmod elist)
" \) [$ q6 @" l4 `/ o: H& R - )
9 T% C7 T5 H M# f- i. ?. K - / V G1 A7 x6 K4 n! `5 b, \6 X
- (defun ddnewhatch ()9 E) R' [9 T( ~+ ]
- (if (equal hatch-elist nil): D. i( m% J3 |! q2 s; }0 I8 r" H
- (setq hatch-elist old-elist)
# t* @' y! W3 i( I0 x$ `7 k. _3 r - )
, @+ c( Q9 Q4 z/ ?
% S) r, ]4 X3 r) @) x6 |! q- O- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
! ^+ A; M" n( ~$ W0 ?7 Q' c - ) p. u( T/ b% N) G1 ^; `
- ;; disable the thickness tile
3 u2 c7 E9 |6 C" c& n& Y9 S - (mode_tile "eb_thickness" 1)+ o2 \6 k4 }* C; ]
- (mode_tile "e_thickness" 1)
# X: Q* |9 O1 t9 r# H2 f, u - ( g7 m9 i3 e: s/ Z8 I2 m4 c0 h0 x
- (setq help_entry "modify_associative_hatch_dialog")
6 p6 ]7 ]" v- {" K- T% ] - (set_tile_props)2 J# Y4 @. V0 f. k: c! U
- (set_tile_handle)! Y2 {8 y2 W& E( n% z3 G
- 0 {' [+ G/ }. j
- ;; Define action for tiles( U9 S4 Q% B2 U% i6 L
- (set_action_tiles)
, |* c4 c/ \( |8 e( \$ P - (action_tile "b_hatch" "(done_dialog 2)")5 T3 E [3 D2 j. X8 i1 t4 ~2 r$ s
- (setq dialog-state (start_dialog))& P& K6 I6 d$ q
- (cond+ ?5 G0 R8 h) d- V$ w
- ( (eq dialog-state 0)
) q. Q. K) t; a8 Z& K3 q - (setq old-elist hatch-elist)8 S" P! A& q& B: l- F6 R' E
- (setq hatch-elist nil)# \3 V% t" {" y" g) b5 c( S0 u9 Q
- (if (= (checkforlockedlayer ename) nil)% R( K J% l+ |) [
- (reset)
x4 C4 G' C% x- A4 F - (progn ;;; special handling for locked layer reset1 V4 u& K5 m2 b) z5 u* Z
- ;; unlock the layer
% J x/ r7 b& I - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
3 G2 W: p7 H$ m) R' Q+ G* M - (command "_.-LAYER" "_Unlock" layername "")
; {& g, l& }4 O {3 ~ [5 s - ;; reset modifiction
# R; _% R% f2 D+ i7 P$ W/ o9 c - (reset)
2 j/ _' d; H: I% y - ;; lock the layer again
0 \& @8 ~" Y0 m) H8 Y C - (command "_.-LAYER" "_Lock" layername "")
# Z4 i2 P6 {; k! b* a - )
6 O+ v' L$ _2 _) ]; z - )) g) u* s/ x- X* q o7 J
- nil ;;; makes (ddnewhatch) return nil for Cancel7 z1 N" V4 D+ B8 K
- )$ z) ]1 {* O% O' ?! \" {9 I* b
- ( (eq dialog-state 1), N0 x3 c1 V: U
- (setq hatch-elist nil)
d2 { H, h7 [; L4 a - (modify_hatch)
, ~9 n h: G0 k) o" d; @ - T ;;; makes (ddnewhatch) return T for Ok
4 z1 d, d8 D& S& H) f, N" r1 B - )7 J* Y. q" }$ q% I% I
- ( (eq dialog-state 2)
J* m0 G3 l0 b& N. K/ ]$ f: k6 ~ - & N, ^2 X4 O/ f8 x# j/ J+ u
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))0 z8 u$ }, e4 G) T
- 4
/ v' E: X9 |" J; s+ N' g9 K - ) . ~, h& T: q2 k3 h& u- U- J
- ;;; new selected layer is on a locked layer+ X' |3 n& x) Q$ v6 E, K4 k
- ;;; we can simply modify the hatch properties9 }- C* r& e5 z# n) \% y) l% \
- (modify_hatch)
1 m9 Z) c; }( w) B% { - (progn6 V: C' b9 z# j
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
, u3 x# o) E3 M3 P- @ - 4
" \; v2 j3 M5 V9 j6 j% C: f+ f( I% G - )
& c: ~( j; \% A! A - ;;; We changed the layer previously and now the hatch lies on a locked layer.8 u) g7 A( G6 x
- ;;; We have to unlock the layer forethat we can update the hatch properties.) L1 c6 h1 P/ B! Y' q2 I% g
- ;;; If we don't do that (entmod) fails to update to the new layer.
9 v5 c7 X1 y" d1 ^0 S; O - (progn
: `" u: C2 h: B" z* m* [4 W7 \ - (setq layername (cdr (assoc 8 (cdr elist))))
' i; e! m6 r4 A3 D) Q - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer/ {2 R- c/ b/ H/ ]- a
- (modify_hatch) ;;; update the properties
$ b- T+ q# C$ y9 j - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
, e2 s8 r- Q! O ~: f5 m - )
+ N- g9 j2 @9 T- K5 u - ;;; All other cases we simply update the properties
: Q2 r8 J6 A6 q+ Z. P$ E- A: Z; f - (modify_hatch)+ |2 z8 L! j1 W; ^( ?* W" V5 q
- )& |8 Y( `+ F# \9 h8 Y7 {
- ). g$ B9 q2 ?8 l- {! u! }
- ) . `/ h# \) ]7 B, f; k, ]
- (if (= (checkforlockedlayer ename) nil)
5 z2 h o# M9 p - (command "_hatchedit" ename)
! Q7 f5 X1 e1 \6 `8 ?0 E5 ` - (alert ;|MSG111|;"The hatch object is on a locked layer."): Q( q$ i5 b5 ^3 O4 {+ O9 F: Z
- )1 G) C5 j# H: x, M- z
- (ddmodify ename)
! [9 P& k% Y6 h9 L7 A) y - )
2 U2 V% ~! v; @$ S$ @* { - )
5 T3 e* y9 l1 x; H6 p/ E% z; K# B - )' S3 N6 b3 u6 K) B2 l& e3 o* @# Q
- ;;- \$ k0 Q7 c/ \# D7 s( i
- ;; Modify BODY
0 H( r2 `4 C% k8 P" r' W - ;;# ]4 d4 U$ l; ]2 V9 T( v
- (defun modify_body ()( b, t( d/ g7 f) I. A
- (modify_prop_geom)' c; H" T& J* y& j. s; a
- (entmod elist)" h2 j, h: b6 z! `; J w
- )
8 m4 s" H1 i/ c5 h' s- x - & _- ^( F/ O( l. }, v. z
- (defun ddbody ()5 A H7 R: j1 z6 z- q
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
' G7 [0 K( m+ J1 M3 ?3 ^ - ;; Set initial tile values
) C6 Y, _0 C- g0 E3 P# D, m - (set_tile_props)6 y% a' K% ~0 x% L+ y; Z3 \
- (set_tile_handle)1 F2 m( V( v' ~# L8 s
- ;; Define action for tiles
. X" T0 E! d) u! p - (set_action_tiles)' q- A) J* F1 l; \+ V
- (setq dialog-state (start_dialog))
' T1 A9 @2 h6 j9 h' G3 ` - (if (= dialog-state 0)) ^1 e8 o l5 H/ E: _& T6 N
- (reset)5 U" S0 d6 W, i. u) P5 z
- )" } F- z* B- V' B
- (if (= dialog-state 1): c- J. m# F' F5 j& [$ Q, c
- (modify_body). p) }6 A, G* P) v/ T/ W
- ) p, E5 y: x9 ~3 @/ |' r6 C
- )7 q( u: g8 R- o$ Q
- ;;! g9 X/ f, G+ Y, N& N. C$ P& ^
- ;; Modify CIRCLE
% `+ x; c' y a: O - ;;5 h+ F! k( }$ f) F) I E8 q( S
- (defun modify_circle ()5 ~* E' I+ R/ J- J
- (modify_properties)
& ~, f) p) P4 }# q4 n: ` - (setq pt1 (list x1 y1 z1))
0 a2 Z- e/ b, M0 k7 o/ |% n; X' A - (tempmod pt1 10 1): P, V( \) \+ H5 j9 v
- (tempmod radius 40 nil)( s/ A( e* Z& S
- (entmod elist)
! @" f7 T6 w# ?+ ^% \. ~, T - )
3 d/ a4 Q2 T" ]8 }6 L+ U* Q- [
; q3 [$ L5 u# f# R3 N8 U% Q0 ]% Q- (defun ddcircle ()1 I- j# _5 {3 u H1 i! K
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))/ ^3 }9 c5 z+ g! A+ B3 d/ \# m5 Y
- ;; Set initial tile values
1 l' P1 j* U U8 m, w3 l6 e - (set_tile_props)1 g5 w: o9 ^3 M% V6 W
- (set_tile_handle)
* V/ c& Z. e. [/ _1 I3 D8 u1 p - (set_tile_pt1 1)
; E2 l" w5 z3 A" _+ T - (set_tile_rad)+ K1 s4 c' o( g3 `7 b, C" T4 r" Z
- (cir_calc)' Z: L9 W: a: E$ y* D! f
- ;; Define action for tiles: S8 |+ k9 X- j# D: w% m- Y8 g/ ]
- (set_action_tiles)4 J# W7 j6 w+ m1 a/ I: i
- (set_tile_pt1 1)
' y! o6 H1 V7 {, E F$ ?) L - (setq dialog-state (start_dialog))! {- {( Q2 G1 ~; C/ G e8 }
- (if (= dialog-state 0)
+ F. D3 k, L/ _ Y& o4 U( J - (reset)2 }- c' \; \- s, t
- )
, V5 m8 Q9 B' R6 C- P0 x - (if (= dialog-state 1)
9 r, k2 c! s' s& Z* P# a - (modify_circle)
, k" V% a! p4 c4 Y: D* b7 b& c - )
- V& b. d& v3 G: A" @ - (if (= dialog-state 3)& m5 }" i' D; F$ }
- (progn- d% X6 x Q+ K3 M( ?
- (modify_circle)2 q, G* W( Q i* O2 P) }
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
7 @" U8 u% [0 }4 e+ k; O+ H- ~ - (ver_pt1 1)8 \, }, ]. D8 }9 D" |
- (ddcircle)# r' J7 E1 s# h0 B. A! q
- )
* |7 o! z. e4 G+ Q - )
* X3 P* l6 Q. w6 N - )
# E1 K/ n; P" i2 _/ [ - ;;7 b/ V R; t: N& b& O
- ;; Modify ARC- w5 X& f1 [/ O# K( k+ x+ O
- ;;
, b1 l; U6 w- a1 t" `: k - (defun modify_arc ()
$ ~+ x% M2 l) s4 W& f - (modify_properties): c) V; |$ q) Q% L* [4 o4 V
- (setq pt1 (list x1 y1 z1)). h& a& B& ?/ \
- (tempmod pt1 10 1)
2 |! `' I+ J) n$ H2 H - (tempmod radius 40 nil)
* \( y! k, `3 t. M - (tempmod st_ang 50 nil)& l2 V) Z/ g+ S* s0 F. h
- (tempmod end_ang 51 nil)8 e, e% m0 k9 ^4 C* ^4 C8 d
- (entmod elist)4 V* e Z4 t% C: o0 P
- )$ f/ R |; w4 D" U* R+ J3 ]
- (defun ddarc (). b3 W, v$ ^+ P9 {
- (if (not (new_dialog "ddarc" dcl_id)) (exit))
1 R+ d" | o9 I- c0 X2 M1 i5 M: C3 C - ;; Set initial tile values
) C! w! A) u9 r9 o' Y/ O. @1 _ - (set_tile_props)& [; @4 r) A7 M, n/ t
- (set_tile_handle)
' G7 X! V4 x. x9 |8 [# M3 y2 B - (set_tile_pt1 1)
. {7 F5 A" @: v0 W - (set_tile_rad)0 G& H B& h4 T# S+ E- e0 A4 m
- (set_tile_stang)
- h. H, c5 C) U" S, H* p - (set_tile_endang)+ B2 K3 e+ Z, {# r# p5 S Y- f
- (arc_calc)
5 ^" l4 g: K3 R - ;; Define action for tiles
, M$ E2 |) { v8 B5 \, a - (set_action_tiles)
( ~! T$ p8 M1 X - (setq dialog-state (start_dialog))
% X+ \4 I: i/ E; a# ^ - (if (= dialog-state 0)
7 |, r& P5 p5 h& {: q% D) r - (reset)
2 H# o' T, n, H$ q4 @ - )
5 u/ ? _ B% V3 a3 n5 [! \4 i - (if (= dialog-state 1)6 Y1 O3 ?' b; Y7 q
- (modify_arc)
# y$ _/ n$ z5 R Z( E - )
7 {% ? [! G9 c - (if (= dialog-state 3) a6 z* k! p2 P$ X* t* C; t
- (progn- O' M" c+ F* c/ ?
- (modify_arc)
5 o( I X4 g% d' m - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))- y8 N$ L( Y4 w
- (ver_pt1 1)
; b |$ l8 V" R/ i - (ddarc)) E) C( W" m9 J
- )
* t& O2 O1 U- `/ M. J0 K - )
5 o1 c, f2 X/ K* W0 n6 y' a - )$ o6 ~% X2 `) t& n- a
- ;;, f: R; {% T% K1 {! `" g* q' r# h
- ;; Modify SOLID or TRACE; `! y& M, [4 {7 Z
- ;; Note the Z value of the object is determined by the Z value of the fourth
# @9 l1 t5 h; R, o$ \) q1 e - ;; point - code 13. Changing the point values of a solid or trace from a UCS
5 g* D: {6 ?5 P3 R* i; R - ;; that is nonplanar to the UCS the object was created may confuse the user.* { u+ J" g7 a2 r
- (defun modify_solid ()
6 ?; g4 j/ ?: Y* N - (modify_properties)
" k' M! V# J2 ?! N# V3 h; K - (setq pt1 (list x1 y1 z4))
" |( J4 n, {; D e' f3 f - (setq pt2 (list x2 y2 z4))( s: A- K9 E4 o
- (setq pt3 (list x3 y3 z4))- G/ J3 Y0 F. C1 o X
- (setq pt4 (list x4 y4 z4)), |, S+ u# h! C7 P
- (tempmod pt1 10 1)3 e( v" r0 F k* O% I5 k3 G
- (tempmod pt2 11 1)- x0 S2 ~8 e* q" ]
- (tempmod pt3 12 1)
: N! l+ `' ^ j" E+ a - (tempmod pt4 13 1)' [. N. R" c% F2 X) i6 k
- (entmod elist)" @7 k$ ]% O- O; I K
- )8 G! i( I& }; U' v F- Y
- + h4 {3 X& L G6 O- i
- (defun ddsolid ()
0 Z7 A! J! f3 }; y3 \4 D6 A - (if (= etype "SOLID")8 y7 [) I( G$ ?7 Z
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
7 e& X. h L$ q( B" g - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
. K& ], T' d+ A$ ^2 \& X5 P: s - )
3 u; v: O% e6 B6 M- C" N1 { - ;; Set initial tile values I7 W; a- @2 m, z# g" A
- (set_tile_props)
$ j7 h4 _3 o X1 k9 T - (set_tile_handle)
+ U* p6 x0 b0 \7 k - (set_tile_pt1 1)
1 U8 A; {/ z2 r! @, ?5 p; m- g8 a - (set_tile_pt2 1)
5 R, F% y# ^* R9 q5 e - (set_tile_pt3 1): o2 B( R6 h- l3 h! E' i5 B
- (set_tile_pt4 1)0 C9 P# p1 t2 Z8 q( Z
- ;; Define action for tiles
) c! `* e, I: C9 _2 g3 D( N- ] - (set_action_tiles)
% p1 ^9 q6 h- K, E% T' Y - (setq dialog-state (start_dialog))
) M d. J0 H* f. L - (if (= dialog-state 0)
- o2 i. v7 G) D( ] - (reset)
G3 ~( ^; {/ V! L/ C - )/ D& S9 e. b. o9 C `
- (if (= dialog-state 1), t! c+ n4 W1 H* A: I* @
- (modify_solid)
9 b- \$ _$ }8 F0 X' J; g- m, A - )) {- x7 Y4 ]( V1 ^4 ?/ ^8 A
- (if (= dialog-state 3)! c) V# Z" [3 _3 E4 `
- (progn" W! V5 ?9 v( P: @4 C8 `, v5 u
- (modify_solid)
! z' G9 N3 ?6 W# S0 Q - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
* M/ c4 h. X7 f! b! g4 X! t8 f - (ver_pt1 1)
1 e. ~$ }9 |: f$ |+ D' O- X) x - (ddsolid)5 x1 T+ Y c' T( g4 x. g1 t6 O
- )
6 y0 Q/ P% D! _( i - )
r1 o4 ^+ l& }: ]$ T - (if (= dialog-state 4)
2 D2 p4 d+ o" A( [: W. T - (progn
$ [; _' m% v# b* I: s, p0 x# s - (modify_solid)
3 T! Z. m1 y" f% l# Q - (entmod elist)
R2 v# q; o- j( j - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))7 g) |3 W- E' h6 z9 @
- (ver_pt2 1)
6 F% a' g0 x2 ?& v. U a7 N: l - (ddsolid)
8 ^6 u, B( ` s* h% h0 v - )
" p! z: y4 i7 p! h& h3 ] - )
3 o2 m0 o* {% [) Y R$ d% v6 L - (if (= dialog-state 5): w3 D' S. O5 o+ q7 P
- (progn) w6 N0 K' f5 c0 C% A4 Y3 R4 b
- (modify_solid)
9 V% b( p; @+ X9 E& y - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))8 d( I) j! S: i2 q) P( _& f3 D
- (ver_pt3 1)5 l: o" \0 i1 ?( w
- (ddsolid)5 h; S: C2 F4 A G0 b
- )6 @# g% W- P2 _; Q5 c
- ); a( _/ C K7 V$ e& }, ^; F
- (if (= dialog-state 6)6 d+ s+ C" r1 S* f( j, S1 |
- (progn' ^# L2 c1 X: o3 R
- (modify_solid)
* A8 l: l S- q: a - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))$ {$ v5 R- [. L/ f2 U( I
- (ver_pt4 1)2 X- ~ J8 g: ^; n2 Y6 T/ ^
- (ddsolid)1 b' B( J$ Q4 V2 }: {9 {
- ). I) _: P! y& y& Y$ M+ f6 E
- )3 S7 v& y; o2 s
- ); A6 t+ `7 q2 {, g, q; h4 k
- ;;
' Z! B% ~+ e* S; W; }: r% _ - ;; Modify 3DFACE
9 _- _% O9 M$ n; k" R* [! ^+ x - ;;
0 z3 V2 V9 W7 @9 q' v- I+ Q: u5 m - ;; Check visibility of edges
, [$ i. W7 U0 D! i& v% n - ;;3 a% w8 Z$ p3 G( P6 Z/ s7 K9 n$ l
- (defun edgetest (/ bit1 bit2 bit3 bit4)5 I( X+ Z# {6 F5 T% D6 u
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1)), x" ~4 w$ T; }9 C
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
! T- ?. E, q- n' k& B - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))' X% V, r( ]$ p( n' d
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))( n5 G2 d" U) Q$ r% i4 Z: _6 U" b( `
- (+ bit1 bit2 bit3 bit4)0 O8 Q4 [7 s; h" A' c
- )
0 B1 j# i0 h( p x
0 U5 m) |1 a- j2 i( x: K- (defun modify_3dface ()
7 D/ j7 y' y' X" G1 ?! _% ] - (modify_properties)
7 g7 K+ I& h9 o% f - (setq pt1 (list x1 y1 z1))
2 i# W) E# Y- M, e+ d& G L/ C - (setq pt2 (list x2 y2 z2))( d3 D' M+ w& u+ A m9 h5 q/ I/ d
- (setq pt3 (list x3 y3 z3))( `- z: t5 ^" T( J) {1 O3 j8 m' X; V
- (setq pt4 (list x4 y4 z4))
1 x9 ?6 Y! R+ P- a7 u l - (tempmod pt1 10 0)8 |% j& d: M: k" i. X% k
- (tempmod pt2 11 0)
! S5 E/ A8 n7 V - (tempmod pt3 12 0)7 _: ?8 [, p7 R* m
- (tempmod pt4 13 0)& y) K; S9 l! Y* y6 j
- (tempmod (edgetest) 70 nil)2 T. U, q$ A; B) r2 l4 F8 V
- (entmod elist)
# N* R7 K$ `2 _/ O* ` - )
' N' `) I7 B( }! r9 i% q+ R) P$ Z, ^ - 2 N# F- ]8 V" a# x* N$ a
- (defun dd3dface ()
9 z2 g: q; k/ |% Y/ x - (if (not (new_dialog "dd3dface" dcl_id)) (exit))
) p/ l# ~4 A5 H4 y1 O. l - (set_tile_props), e! X7 a: r" ^+ g
- (set_tile_handle)9 M7 ^4 x& m6 v }& [0 l8 `5 f5 |3 h
- (set_tile_pt1 0)* ~- f! Y( v; ?( s4 D' ]
- (set_tile_pt2 0)
! H! K& U' w) ?0 Q- `/ s - (set_tile_pt3 0)
4 d6 J* w( z: y! |+ o6 \5 ?' H - (set_tile_pt4 0)/ J$ b3 B! F: }( |. l& p
- (set_tile_edges)
9 J! V+ u# L& [# S! t' I/ g1 ~ - ;; Define action for tiles
( o0 K& h2 I/ k - (set_action_tiles)
# q- e9 d) ^& S8 M5 j- v - (setq dialog-state (start_dialog))' f" ]* b8 S8 L* H% t
- (if (= dialog-state 0)
, j- I3 {. V% v - (reset); d) U0 V2 ~4 [3 v* m& a3 M
- )7 L9 ?+ w# _# } N6 y$ Q
- (if (= dialog-state 1)
4 M: h$ R3 C" u! `. ^7 H4 D/ H. p# g - (modify_3dface), b' j7 g+ W$ A; i _
- )! y! Q( S' {8 a
- (if (= dialog-state 3)
" X5 p4 b- V+ Z0 m1 S, v - (progn9 }$ U& a+ {( }- ?* d0 Z
- (modify_3dface)
3 W8 A0 Y- b/ M" f4 N. ]$ c - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
7 T( g$ ^- I- |! H - (ver_pt1 0)$ `4 [8 Y, {5 q$ g+ k
- (dd3dface)" U, z' [& m* D9 A, b
- )9 A) i. u6 F2 ^9 w: ^& w- y
- )4 m' e; {+ s; j3 g/ B+ R
- (if (= dialog-state 4)
8 X( B' M9 D5 | V - (progn
- h# W4 c3 ?9 d! i5 z - (modify_3dface)
" W% m) P# p5 J( `$ a; b4 w0 s - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))! Y3 r) M0 {+ l: y& S& ]
- (ver_pt2 0)
! e$ m8 F) f4 y% Q& f - (dd3dface)
5 V4 z# p* X+ o) U& _ v3 Z - )
- G# n' Z) l. S4 I, V1 J1 K' Y- s2 |" C - )
' e* t6 A/ a: e$ f9 G, j0 p- R - (if (= dialog-state 5)4 { ?, s& T5 L: }) |
- (progn
' r7 l: r/ A4 f& D4 s% U, { - (modify_3dface)
8 ~+ ?( N- y" y5 Z: b - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))* A+ o" }3 m) z5 t
- (ver_pt3 0)( _9 y) X" W6 ?: D- _" u
- (dd3dface)7 n. t/ A8 d! s- k6 c# t- r! n8 e
- )5 v y. U7 W% a; X& ^/ f; Q7 R, r5 W
- )! x/ @9 W" c/ N( x9 @
- (if (= dialog-state 6)- K9 x' S5 M2 b: o" r' u
- (progn, d2 G$ k8 p1 m5 a* U. a: G
- (modify_3dface)8 R+ j/ n2 L; Z* W9 \) }1 q
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
0 J4 P' F/ }, { - (ver_pt4 0)
2 {1 E1 H2 r5 C' c% E4 {: [- y - (dd3dface)
( y: _! `; t, o8 }, d7 Y - )1 L/ E4 B' p+ @" I$ ^
- )1 \# x7 Y+ m6 i0 r$ ?) }
- )
; Q* \& d7 F5 [* x! Z
5 f2 T, q* o; {# D- t6 }2 Z9 y- ;;% i' A" T9 l) E, F! d
- ;; Image functions! d# r/ P% e- O+ w( I5 M. L2 B
- ;;! }8 z# i# L$ r' u6 y/ b
- (defun image_scale (/ upixel en n userscale temp)
" d2 d1 D w9 s! a" u2 { f6 } - ;; Calculate the size of an image pixel in AutoCAD units2 ~" I- ^: S: b
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))8 N/ J. v, _! S2 W+ ]# u/ D
" d c3 ]( q) Y9 l3 Q. K- ;; Retrieve the user scale5 Y6 h+ m& ?5 K
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
8 f" F, k9 h+ P6 O1 x - " ?, g" Q% q7 \8 p. [
- ;; Next, extract the image units and pixel resolution
8 L) j) K1 n) o3 @6 C - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
6 p+ P( {: F8 Q! t8 O4 ~ - (setq image:scale (* (cadr (assoc 13 elist)) upixel))
' l6 N% U% j3 j5 v _+ m - (progn
/ ]8 Z1 C4 O1 d - ;; Convert the user scale to the proper word& P& |( p( O" T7 h
- (setq n (cdr (assoc 72 en)))
K! P/ m! L3 r9 J) F - (setq temp (getvar "LUNITS"))7 H9 A6 R+ I/ b, r) K
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
& |: z4 r2 B3 } - (if (= n 1) (setq userscale "Millimeter"))
0 C# z+ @$ ^( ~6 [; F. e+ [ - (if (= n 2) (setq userscale "Centimeter"))$ i+ C( E& k9 ?" s, x0 t: D6 C
- (if (= n 3) (setq userscale "Meter"))
6 t5 J+ X. h& }0 E - (if (= n 4) (setq userscale "Kilometer"))
% S1 d7 R% R9 s( Z - (if (= n 5) (setq userscale "Inch"))
' v7 C3 L! P& G( X6 H7 L5 { - (if (= n 6) (setq userscale "Foot"))
8 r( e7 }; _9 B1 Q5 [8 } - (if (= n 7) (setq userscale "Yard"))$ j/ P4 _+ x9 G' z. p1 h
- (if (= n 8) (setq userscale "Mile"))
' h4 W/ E# E# S% y - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))# I3 L1 g! q! Z2 B6 s" B4 g
- )
. x6 R. ^+ Z/ t& [0 O6 p* s: ] - )1 C& f6 X5 ^4 C+ y
- )
" D3 P4 G% v8 K2 t; ?8 M& O6 s5 @$ Y
1 d: I* x6 R2 r; E# y- ;;$ b% z2 Q4 T, l G* v1 I; Q
- ;; Scale factors for block insertions8 d& e$ V1 c9 W0 Q& u
- ;;
+ E p9 C' }9 H! N- g$ |) q" H - (defun image_set_tile_scale (/ temp)0 p; ]4 t, J* |0 i
- (setq temp (getvar "LUNITS"))% j$ L9 x9 j& j
- (setvar "LUNITS" 2); J+ Z% h+ t; @, J4 T6 Q' p
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
% b* z% j ~) D: U/ j; o- `: B4 H$ ~ - (set_tile "wid" (ai_rtos (* image:width image:mult)))
* W$ O8 j3 J+ ?7 Z - (set_tile "hght" (ai_rtos (* image:height image:mult)))( X3 g4 d+ a# L F0 P6 i# a
- (setvar "LUNITS" temp)
/ h6 h6 f& p1 E3 I( E - )
0 X" _! R3 z( x1 R, |/ H. g* l6 } - & P7 y$ O" |& e' s O+ T. E/ J
- ;;
# S9 j) n" D, V - ;; Set the scale, width and height values appropriately.
7 X# t2 d1 G; x7 { - ;;; b1 f* h$ k/ S! j% G1 _& ?
- (defun image_update (field value / orig_value new_value mult)
& v; Z. {! E# j: o - (if (= field "xscale")
: F _3 G: P$ Y - (setq orig_value image:scale)
! S& c2 x3 b$ U( b5 w! \ - ). F) C7 I, B4 S/ {! I$ m$ `
- (if (= field "wid")" s. J- r! G) S# V
- (setq orig_value image:width)
& M3 ^2 R: A( e0 d8 q - )
( N2 ?" t+ ?6 D( n - (if (= field "hght")
' a' q& [, |/ T - (setq orig_value image:height)% E# ]' t# N( S- L: K
- )# _; R3 _- m0 K v" W
- (setq new_value (verify_d field value (* image:mult orig_value)))
5 r" L b4 W0 [ - (if (/= new_value old_value)* y# t' c( U1 W2 {4 N
- ;; Make sure the user has entered a sufficiently large value- A# ?4 J. B8 F8 f# J5 t( O
- (if new_value" `, b- F+ Q& c8 i: ] v8 M4 i4 k4 I
- (progn
# s$ P, T: l% j1 V& H) Y" s4 f2 p - (if (< new_value 1e-8)
0 r( q/ Z5 G. ~ `9 I" w! `% Z6 V - (setq mult image:mult)
3 l2 h; O% _9 J/ O" J/ S4 C2 m$ l - (setq mult (/ new_value orig_value))
5 e/ R( B- ~( Q4 o) M7 @2 U - )
. N" ~' R# [* R3 U( Y - (setq image:mult mult)5 k/ H& p6 @" N3 }/ g k
- (image_set_tile_scale)
% G8 n% h- _" v w; y - ): ~& [3 n3 c) z
- )
. ^" z- S5 E7 e* C1 g( R8 p - ); a3 f* K" ^$ p( ^+ m$ x/ [/ c! Z
- )
7 `! M' l- x' d- p( u! k
! e/ y/ D/ m2 D5 G9 i" N y# `- H- (defun image_disp_opt (bit)
( R2 l7 s8 @. c+ T# m - (setq image:options (Boole 6 image:options bit))
' n* a Z. V1 Y - )
4 j- j, S2 y: `( P0 R3 u5 y
! d4 ?* I [, u0 D2 {- (defun image_modify ()
. ]: a6 o5 k- K- U2 d& K' t2 l r9 U; Q - (modify_properties). {" D7 z! i6 M' \* F; C2 @
- (setq pt1 (list x1 y1 z1))
y' y8 Y/ T% `9 v. A2 Y9 X/ Q - (tempmod pt1 10 0)
. n0 d# V0 Z7 ^- v; W5 w - (entmod elist)( I' Y$ ^7 u7 C |$ e) N- u; k- @
- )1 r! y3 f- S4 A6 ^# g
9 `0 B8 A% J( f% q) e8 ~- (defun image_clean_variables ()
. J) D; c- c% k- _ - ;; Clean up global variables used here
1 S8 l) U- c/ l* ]/ V" A - (setq image:scale nil)2 e5 N% P1 ?! `5 P3 U( A& K/ ?
- (setq image:angle nil)
+ |9 M3 ]0 G+ p7 z - (setq image:width nil)
* b% H4 c% Z* ?* T - (setq image:height nil)4 [% L/ W2 _( R: s* `, m/ F* n
- (setq image:options nil)0 M% F) A; {: I, T b6 y
- (setq image:oname nil). B' Q# u' l( H2 t# m7 b$ @
- (setq image:olist nil)$ U1 v( w& Z4 n" w% ^# Y4 m
- (setq image:mult nil)* V! V$ @4 L* v& n" P( t# g4 Y; S+ P
- (setq st_ang nil)
, C; t4 ^5 {' W# r - )
( q/ J: I7 @7 j8 w6 X; O
' {/ X: k4 I: b8 A: @- (defun image_scale_vector (v1 value)
( r/ f% Y/ G/ K% m6 K! h% h5 w - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))- ~+ E1 w" J+ U
- )0 V* @7 h2 Z. E3 y) s! u$ z& x% F
4 Y+ O: u& j4 u5 F; X- (defun image_cross_product (v1 v2 / vx vy vz)- w% M6 q. G& N
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))) d+ B! q% \$ B1 D
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))9 f3 L: H3 n1 @& B" B
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1)))), a+ w1 k( C8 z8 h p- l( c$ ~) I
- (list vx vy vz)
' Z9 h& r$ ^- u2 o3 p/ _ - )) [0 N# Z3 q, A8 c
6 o! T/ D7 S: l: W( x; |8 n- (defun image_dot_product (v1 v2)
1 ]/ X1 b7 T1 `; O7 X - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))$ y3 A+ b9 A0 [
- )# K% q3 S/ Z+ t$ m+ |
- 0 T8 Z# L+ m# b3 o
- (defun image_add_vector (v1 v2)
3 I( x' I3 m8 E# r# z; _5 M - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
6 F! x- e9 [3 j/ s - )
" j- P, q& ?9 J2 ]( S- N2 q
! z/ N4 Q3 c/ x- (defun image_subtract_vector (v1 v2)! i/ L- L" U8 Q
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
2 c7 t8 ^3 L8 I8 Y1 _. p& a - )
9 A. a9 I* Q( s5 K
( c3 @. q! p. \4 \9 d+ g7 C- (defun image_normalize_vector (v1)
% d) C7 t+ Y5 B% o4 I g - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))5 k L K" _: l7 z
- )
6 Y8 [5 g* A9 \+ D4 N( @' N - ; O# n- l) m8 {' |5 z- Q; a5 Y
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)6 I3 L j! I$ B7 @6 q
- ;; Normalize the axis a2 m& n' u$ P; c) F1 _
- (setq axis (image_normalize_vector axis))8 C; C" @* m# a. J3 [
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
8 S" Y, A+ U" O* n4 ^ - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))% p/ `1 {0 @+ a. [7 T% W4 n8 `4 q
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
( j! _/ e0 |: U' K. V( R( G - (setq in_rot_plane5 e* Q2 A. L0 ^( s6 |+ L
- (image_add_vector
* m# ~% O# [; U! _ - (image_scale_vector axis_x_in_rot_plane (cos angle))# i: _9 z) _" L4 d% v
- (image_scale_vector axis_y_in_rot_plane (sin angle))0 u# [# H" q4 f
- )
6 s' |- D7 R: m- f2 X# l: d" ]$ K - )
n! P7 ~' z {8 B7 g2 \8 z0 \ - (image_add_vector along_axis in_rot_plane)
0 e& F- [4 G9 _( H( P' m0 M& f- p2 t - )# S3 B- j1 {8 B: d( \8 E& b0 _
- X5 a% S0 X9 v0 N& e! t3 ~- ;;% D- A: E4 A7 G! s$ H
- ;; Calculate current rotation angle if appropriate.+ i5 U5 t0 v2 {! X l( d- ?
- ;; If not, grey out the rotation field.
. w; d( J! T% `; |& ` ]5 I/ g* m - ;; ]! ~2 {9 G) M% m
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
1 P4 D# _! b+ Z m& l) R - ;; Determine if image normal is codirectional with; F3 Q- e* w0 f; Q+ x
- ;; the current UCS Z-vector.
7 e& w8 k' J" Z( ?0 @ - ;;$ Y4 T4 G9 X$ C( a" |
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))5 j( u# o/ v9 B2 g% N
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))! o$ t& s7 E! N& a) {
- (setq zlength (* (last normal) (last normal)))0 ?9 s/ T# |3 ]+ @0 U v7 R; U8 F
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
/ n) W+ }% W8 l/ E7 F - ;;
; I& m/ D7 y+ J1 x: c4 ^ - ;; cos(.0001)^28 _; p/ K7 R* V# u/ X# O
- ;; Tolerance = --------------
/ ^- |5 r; x; b - ;; sin(.0001)^2
* c: a5 V/ H& H: O - ;;
( g0 z$ Z( I. q0 ^: ^# @# ` - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))! I% G( x o3 w* ]
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))5 W# a Q l) X" o/ @4 y$ a
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))) b, ~) L7 V8 X2 x* B9 r
- (progn
, w; d/ h w0 Q8 o. w - (mode_tile "st_ang" 1)
- e" o0 }8 j9 d: d1 g* I+ P - (setq image:angle 0)
2 T% D3 Y( G& h4 h1 P: Z - )8 a4 d+ Q+ E2 U2 l; @
- ) K# V) S* T3 l/ {; O3 B* n% ~
- )4 K6 [4 z: D* Y: |8 t
7 p( @& U! f0 }0 l7 L- N- ;;& m/ N L! k, M6 j- j8 J9 W5 ?+ L
- ;; Modify Image
6 O/ F2 D+ ^- }+ I0 C - ;;9 `! ^1 o d( R6 q/ l+ ^
- (defun modify_image (/ u_vector v_vector z_vector), b, V, K1 g1 R; V# F0 v
- (modify_properties)1 D4 ~1 s1 e, D, H# ^/ c( N
- (setq pt1 (list x1 y1 z1))) r8 x4 W0 |* F& k% h) n
- (tempmod pt1 10 0)$ P5 k! m# h% E1 t/ ^
- ;; Make display option changes to image$ H" f0 f) G* z$ O. \9 k8 I
- (emod image:options 70)
6 H9 \. ]! B1 z( X m$ R" d - ;; Get the u and v vectors
$ l7 `; D' i, T2 ^# p- x# |( _ - (setq u_vector (cdr (assoc 11 elist))), T- |. t4 x0 z1 y' Y
- (setq v_vector (cdr (assoc 12 elist)))
1 Y$ O; |$ o8 |# W& e } - $ M* C2 V1 z6 k0 j8 Q0 \! T
- ;; Make scale changes to the vectors+ A! I5 n) o' b* M# h' G( E. Q* n9 a
- (if (/= image:mult 1)
4 O3 j- H6 u: O& v - (progn1 r6 o X- p c
- (setq u_vector (image_scale_vector u_vector image:mult))
" \9 a. c: `4 C% l: n0 H! Z" Y - (setq v_vector (image_scale_vector v_vector image:mult))
" C1 P8 V( T) {# W - )
" e3 J( k/ t! y5 q& G/ h - )
. U, b2 m, N: I - ;; Rotate the vectors R9 W2 \% l/ W |' d2 S- p9 q
- (setq st_ang (- st_ang image:angle))$ z$ n' h* M4 i5 e( s/ D) D5 s
- (if (/= st_ang 0)
5 ]* ]: Y1 z/ t: X$ q5 b! ` - (progn2 p' j8 y/ q$ |
- (setq z_vector
4 E2 X4 k: u0 Q0 V: T - (image_cross_product) Y) x6 p& ?% s& E
- (image_normalize_vector u_vector) o: z: S7 v/ P, h0 M) h
- (image_normalize_vector v_vector)& s& ]( T. L( S& E6 I
- )
+ C" D( q. s3 O$ g: P - )
# t2 \) y8 O( ]* T - (setq u_vector (image_rotate_vector u_vector st_ang z_vector)). W/ A; s1 Q* M. f6 f% x) o
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))9 m- Z3 L) t7 n3 l5 w1 g3 t
- )' G) F9 ~# J5 N9 J
- )# b# j/ Q, y* w3 ~) T8 V2 ?1 c
- (emod u_vector 11)
& k; {5 \: `+ Z9 l: } - (emod v_vector 12)
S7 y) l3 W0 r7 J - (entmod elist)! c8 m9 v1 X( i: S6 Z5 h
- )
' P$ i' n6 Y; o" E6 {7 i - & T- e$ w9 t* ]' \9 E9 _# Z
- ;;
1 D8 w/ d+ y m9 ? V - ;; Run imageadjust on given entity, working around possible
, `. Q7 F+ B# E$ | - ;; re-entrancy problems+ E! T7 k4 n# u; H' F
- ;;3 ~% \& @) N! r; ^
- (defun image_adjust (ename)0 l [+ R( }$ Q9 |# o/ r7 x
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
3 t1 K0 `/ ?# \( E- |' M# d$ d - (imageadjust ename)# \7 I3 k% M, C. x" V
- )
* y6 C& G. m+ }; v - " O; m8 I3 B8 t
- (defun ddimage ()4 \$ t5 _ C u& S; B% R
- (if (not (new_dialog "ddimage" dcl_id)) (exit))
, p; F t3 n6 ~1 `1 }0 v' p/ } {5 L* K - # ^; x2 }) s, p
- ;; Grey out the thickness field.
& e: w; }- U2 H& l - (mode_tile "b_thickness" 1)7 }9 [7 j) ]. w9 g+ }8 v' `5 C
- (mode_tile "eb_thickness" 1)$ @7 I' N! E" c9 {4 r& D2 }1 f$ X
+ P. S) X, [2 n. d/ k$ c6 E- ;; Get the associated def object.
+ L- Y, K/ N5 d) b1 k - (setq image:oname (cdr (assoc 340 elist)))
6 [" g$ ~, ]$ K8 y# w* \ - (setq image:olist (entget image:oname))
$ W4 j$ ]: Y! D- R - 0 I4 p" h& \0 \
- ;; Set initial tile values( B; ]5 G& a; `, y m1 y
- (set_tile_props)
5 ~9 I, r& J; ^8 C- t - (set_tile_handle)( T3 m* U @7 ~+ t
- (set_tile_pt1 0)( B9 T1 Q' J! P" g8 C
- (setq image:scale (image_scale))
1 f/ f# ?! F4 s: Y - (setq st_ang (image_rotation))
5 N- _' l% Y# n( l - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))9 g) B0 i0 U- n/ s
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
% R+ x( S1 O) A5 n; H - (setq image:options (cdr (assoc 70 elist)))
" l! t* p- B2 u: t: T" n
4 P( x% _$ k8 r3 c, P' d- }1 i- ;; Record the last multiplier for use in image_update function& P: `8 N7 t; G9 G0 M5 ?8 i1 N
- (setq image:mult 1)
& k; m' p% f* d9 t* O& v* j - ! F" C) ~" s* Y: B
- ;; Retrieve the image name4 L" s* E5 D* y S: d
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT"))). _5 S3 I i0 f4 X
- (setq flag 0)% h9 b5 k, `7 X6 h0 \
- (foreach n fn6 E, E9 d4 g( n9 u" l% O
- (if (= flag 1)
; g6 r( y5 Z. H8 ]8 i - (progn% v: v9 e" f9 E6 R7 |8 | p7 L& y: ]
- ;; Display the image name9 n. B# X$ P( A3 c
- (set_tile "image_name" (cdr n))8 L; i5 _& K0 P4 j# b
- (setq flag 2)
: k& I% \& P" a5 b; v0 ` - )% E( }3 Y* ^1 N
- )
- s2 z/ V' [( X2 i/ ` - (if (= flag 0)
' ~; c) |- P& p3 W7 {& h- K - (if (equal (cdr n) image:oname) (setq flag 1))" H% {4 \ P) u
- )
' L. H; B! H' u - )
5 g! R6 @! j0 h& W5 {8 P - / }- h5 ]6 j9 r6 [" X$ ?
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
6 w+ w9 c% Z% B9 ]) Y - (set_tile "st_ang" (ai_angtos image:angle))
+ R3 Z2 |- m; X- i" N: v; I - (image_set_tile_scale)3 [7 v) e$ P1 u# J$ X9 ]
% X. O6 k% h f5 _# l) p* o- ;; Check the appropriate boxes5 y- n9 u- R( e5 H8 G
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
- n. Q2 ~5 b0 C% n, y - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))3 L4 S# A+ t: H6 }, p) n+ V" }
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1")). P* n3 }6 U. o# X
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))) M, P( m( ^7 d# S1 O/ B; D/ c, G
- 6 q8 z0 L+ r* o0 n! L5 h
- ;; Define action for tiles
" N% B5 P, @9 {! ]% `3 M& e - (set_action_tiles)3 u, k6 T. |: F' [
- (action_tile "xscale" "(image_update \"xscale\" $value)")
8 w. b) y6 d. ]8 B) a - (action_tile "st_ang" "(ver_ang1 $value)")4 ~& \8 R% T% ?; j
- (action_tile "wid" "(image_update \"wid\" $value)")* I' d/ |. w3 W% }
- (action_tile "hght" "(image_update \"hght\" $value)")
Z- B' \5 C6 m- y. c, I# @6 \ - (action_tile "image_show" "(image_disp_opt 1)")
3 x8 f: O4 q4 e$ q - (action_tile "image_non_ortho" "(image_disp_opt 2)")
: h% h0 i5 M- P8 E5 W% { - (action_tile "image_clipped" "(image_disp_opt 4)"): M, d- `. B4 O% O; z2 p; R+ M
- (action_tile "image_transparency" "(image_disp_opt 8)")" t7 a/ x" X% A, y$ s+ Z
- (action_tile "image_adjust" "(done_dialog 4)")
5 m8 g+ q( w2 o1 K0 i/ W9 Z: G - # C5 a* ~9 `4 \: n1 x' z6 e$ x
- (setq dialog-state (start_dialog)): G: }. B. Q* v2 G( G( d+ z
- (if (= dialog-state 0). {8 O, u$ Y. G3 k9 u& c
- (progn) f1 p E5 b6 s! g" e
- (reset)
. p, H$ {& p/ h - (image_clean_variables)6 t l8 P/ f) r' o
- )0 @: ^6 I2 S; W
- ), w; }' I) n! Z) C& I
- (if (= dialog-state 1)% Z6 L( e' v9 P- O' i& K
- (progn$ a$ [) a% k2 {, H' b4 ^! V3 }: q" E; B
- (modify_image) c9 h1 Q7 R+ N% c# v6 z) V5 ^* X
- (image_clean_variables)* N+ f" u& H8 R9 J o8 y
- )/ b7 h9 Z6 i: M) r; e! Q9 L, a
- )
* L$ r! Y) U1 d; l' Q0 _/ x - (if (= dialog-state 3)0 X# {- s( Y5 F$ A; y0 M
- (progn2 P, J5 d* p4 V8 K) M" O6 N
- (modify_image)/ _2 @9 x# g9 u
- (image_clean_variables)
/ J) r% c, s/ r+ g2 n - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
; m0 q- X4 }+ H: j& F* \ - (ver_pt1 0)+ i- z- k4 C: }" [; H+ {$ z, F& `
- (ddimage)& b+ T+ a& @4 n
- )
- m) m% j" x1 w5 l5 }( w/ | - ), c9 \# L2 [/ K+ b s$ I6 E( d3 G
- (if (= dialog-state 4)" t3 l+ l& |, h* {& ]
- (progn3 ]# l# r9 A, q! M/ O# h) e. J6 x
- (modify_image)
% Y0 \! o& w3 e3 Z q V9 m - (image_adjust ename)
" Y& N' \9 `9 w+ {! e# o a - (setq elist (entget ename))
- C: O. p$ s7 N' s - (ddimage)
) V/ M4 B: R; O7 z/ k! i( g6 R - )
, q- ~5 G* [" g - )& b3 t% z l K
- )8 l( |3 y; i& Z \+ J1 I
- ' L& ` [* a( n% W
- ;;
$ x, a1 E7 A7 G4 p6 i& f - ;; Modify BLOCK (and its Attributes, if any)
( k1 A+ ~! F0 y$ `; U7 P - ;;. W4 y( N; L. }+ G+ J) b+ Q( f9 _
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
9 N$ A! \. ^2 E+ |7 c! E- z, k - new_wid old_wid old_rot scaling old_scale. g& ]2 V% i7 E. a$ ^
- xdelta ydelta zdelta xbase ybase zbase ipos): ~; p5 }& q9 y, ~+ _
- (modify_properties)
8 ~4 D) o. W9 E2 L: [, w( e1 | - 0 g8 u4 K! e+ |6 z2 m
- ;; First, translate and scale the Attributes, if there are any.4 y6 h. J. H, f/ |6 D# V
- (setq old_rot (cdr (assoc 50 elist))
" I0 B3 ?& K2 O4 c$ {. F% k" W - old_scale (list (cdr (assoc 41 elist)): X2 k4 d3 Z$ Q- J
- (cdr (assoc 42 elist))
( z+ k$ S3 w" B- F y: H" T - (cdr (assoc 43 elist))$ {5 H {4 g/ q6 H9 H# o8 G( M- h+ B
- )- s1 v" x) a9 m& [
- scaling (or (/= xscale (car old_scale))
% o+ o/ I# A0 |9 W3 M, G% P - (/= yscale (cadr old_scale))# g2 ~- A9 K+ u0 U& P0 u6 \) S2 _
- (/= zscale (caddr old_scale))! }9 q; K: W+ n0 q
- )
: M5 N2 w3 p7 ?4 ] - attr nil ; No Attributes modified yet6 Q/ ?/ h. R ^$ _# e/ k: r7 {7 N
- )3 u* K6 {) ?: F: Q, B
- (if scaling$ w+ Q7 j" q; |! t/ F9 G; p
- (progn- ~+ L% E/ {- c2 _( x! b
- (setq xdelta (/ xscale (car old_scale))
; W5 q2 o9 c6 {$ i8 ? - ydelta (/ yscale (cadr old_scale)) B8 J6 s* w7 A5 m
- zdelta (/ zscale (caddr old_scale))
$ h/ V4 ]9 l0 X6 l: K4 U$ k& ] - ipos (cdr (assoc 10 elist))
' S( G7 b( ^- x" A - xbase (car ipos): l6 e& t8 a) F& a) P! Z8 R
- ybase (cadr ipos)& X& w1 }+ P2 U( m- m% s$ d
- zbase (caddr ipos)
. x1 v" Y3 P9 O4 c0 j - en2 (entnext ename) ; First Attribute. A9 ^. \- U) W S6 K7 j
- )
8 i9 C. H) _; O+ o* G7 o
" L" h0 Y. T. R0 y# \8 `) {- ; If the Block is rotated, temporarily un-rotate it, along
& W) I- E7 u# X; @& m& _/ o5 G - ; with all its Attributes, so the scaling/translation of the- m. M; T: f) O, D! s
- ; Attributes won't have to take the Block rotation into account./ e) D) h/ p: P/ T. H3 |
- (if (/= old_rot 0.0)5 O# I6 `" z4 N7 l1 p
- (progn' T) k, p' ?4 n2 O. b! E- d
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))5 [% g( Y: B5 O$ z) S9 i
- (setq old_rot 0.0
* u+ Q' v0 @; A% `- o9 L% r: m" d - elist (subst (cons 50 0.0) (assoc 50 elist) elist)
8 x1 U( [' o# o3 A - )6 @" F% \4 e( o V# `8 J" X4 R
- )& H: n. {/ D( \3 N
- )3 {9 m/ R% `# e4 k, q- Z
/ s% y. D; ` G) |- (while en2, Q. k+ ^. J S, w* ^
- (setq el (entget en2))
1 c! b, r A* ?3 D3 m" C - (if (= (cdr (assoc 0 el)) "ATTRIB")- U- j( j2 g" [. q A$ l* `" f
- (progn
% r, B3 a' w9 C - (setq old_hgt (cdr (assoc 40 el)) ; Height
% {( t, Z5 u0 J: n - old_wid (cdr (assoc 41 el)) ; Width-factor0 C3 O3 F) }; n2 G6 X* |. w
- oldp1 (cdr (assoc 10 el)) ; Generation start point# P$ ?5 |! b0 T7 _4 Q
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
! C! _; N, y5 W K9 p% | - ha (cdr (assoc 72 el)) ; Horizontal alignment
* o' N& X" N2 f, Z+ ^6 G - va (cdr (assoc 74 el)) ; Vertical alignment
, q* C# E+ r g! O+ S/ i - ) O Q+ r" ?0 D7 a2 A( j. x
- ; Translate gen. start point
4 Q: _/ o) E. n/ q- P/ Z6 h( Y6 y - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
# {' e$ }) x! W4 G! |1 o - (+ ybase (* ydelta (- (cadr oldp1) ybase)))1 U: X o& u5 r8 c2 B# z$ |
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))% i6 ?0 }2 o* @8 M
- )6 l4 W( S# B" r4 g+ x
- el (subst (cons 10 p1) (assoc 10 el) el)
9 `: r4 |/ c& c; F, q8 \ - )4 E$ m& M1 z0 |* G9 B: ^; m
- 9 w' a# [& N3 P1 L
- ; Translate alignment pt similarly, if present and applicable4 {7 S' h3 P9 M A% U4 Y
- (if (and oldp2 (or (/= ha 0)' L% _/ l, [8 {( G( ^
- (/= va 0), s9 e9 B. i) j5 O9 W% c
- )7 y! c- ]0 [5 E6 {/ J
- )" u$ h) u/ ^4 J
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))0 i& @- D0 c, v3 l
- (+ ybase (* ydelta (- (cadr oldp2) ybase))); J# v1 x6 D0 J# V) E
- (+ zbase (* zdelta (- (caddr oldp2) zbase))): \& s3 g6 v0 o$ }$ k
- )
W6 E$ `. H% e ?! h& O - el (subst (cons 11 p2) (assoc 11 el) el)# E, w m: y# J' x2 t
- )/ B6 v! I/ d) c! \4 T8 _) t
- ) Q, X3 p! |* }7 p2 ]4 a2 X0 E7 H" `: J
7 u( w. a7 w9 t( \) C- ; Each Attribute's height and width-factor were computed, e/ I. h, z1 H5 w, H1 f( N
- ; based on the Block's scale factors. Adjust them now,( v* c' K/ V! H& F6 b- g$ t) f
- ; by first reducing to values for 1x1 scale...
/ O, X9 _1 p* e - (setq new_hgt (/ old_hgt (cadr old_scale))
Y, [, \! v$ `% I$ ?/ n - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
8 i/ k1 e0 X7 A8 F- M! U0 u6 V& v0 m3 k - )
+ U: _6 p0 {4 {! p) d8 G1 U8 n - ; ...and then rescaling.
6 ~0 B# D6 h# r' b1 {, `" m) G - (setq new_hgt (* new_hgt yscale)' X' ]5 W0 _0 ?& R
- new_wid (* new_wid (/ xscale yscale))6 K7 c2 D: p. y# o, U& O
- )
3 @+ ^6 j8 X3 K& s9 ^ - (if (/= new_hgt old_hgt)% j3 `( \, u- n, p$ t. M2 @
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
; F; q. D9 `/ J/ _8 F3 q" ] - )
8 T C9 n3 p* a7 X Q - (if (/= new_wid old_wid)% Q. o. W B" h$ F i K: }
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
0 e; E1 y# P$ {# e1 i - )$ {- f" ~8 @. H. d: d
- (entmod el)
$ Q: f5 z! o, j' j: P - (setq attr T ; At least one Attribute modified& z" `/ X9 |. q; v- ^
- en2 (entnext en2) ; Next Attribute
" _, X- ]& h: q5 I - )
% a1 J4 K+ v0 H4 T$ h) E- Y - ): G5 l0 X8 d ~3 ^1 Y0 g
- (setq en2 nil) ; No more attributes
. S) O. s4 X W1 B( v" l' h - )7 _# g- u5 ~2 M
- )
. q6 ] F, i& G6 ` - )7 r Q7 J( X6 s) Q; _1 r( K& R
- )
6 J+ F% D2 @- X3 h9 }3 s, ~ - 3 |3 \9 n4 P- x' z R/ p2 L
- (setq pt1 (list x1 y1 z1))
' g) q$ s' Q" [8 M - (tempmod xscale 41 nil)
0 Q; W3 z2 o! | - (tempmod yscale 42 nil)
( d8 K2 z9 s/ H, f9 n - (tempmod zscale 43 nil)
4 V6 x2 U3 A8 ?# Q+ k - (tempmod col-sp 44 nil)
9 W; ?2 n5 i/ { w& t - (tempmod row-sp 45 nil)7 s' r6 n- C& C* Q8 \6 P
- (tempmod columns 70 nil)
- x- k6 `, U# F2 b0 A - (tempmod rows 71 nil); E$ E7 z6 v/ A5 t3 v, w
- (if (= xclipmode nil)
. Z* O- c3 V3 Q0 o - (entmod elist)
. j4 }; `7 I3 _7 V( v' p - (setq xclipmode nil)( d2 T$ T" o/ d# l5 L* }, S9 X8 x
- ). W4 @$ n' Q+ s
- (move_pt1 1)& ]9 e4 t% k" b* s5 q& d& ]
" R, U+ ~% g6 A$ o! J1 ~4 _- ;; Now do the rotation with the ROTATE command.
8 @1 N% ~6 |- Y$ c) Z - (if (/= old_rot rot)
# z" Q$ h5 Q. b: }7 a0 O) e! d0 P - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
8 {0 E, R u+ R/ @6 D1 `( E - (if attr ; Else, if attributes were modified,1 l- q' b# x( t+ K7 {: P
- (entupd ename) ; just regen to force attrib display
& z1 C$ S: a' [7 q# T6 N - ): C' u" N3 n1 k7 C' @6 y
- )2 N, J+ O `4 j% a( S, O
- (setq elist (entget ename))
* B& A6 q4 z0 W' _' I - )
+ O! a! q, L5 [5 `- p - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
; d8 e9 b2 g( o# P2 S! R8 ^ - (setq newhatch 0)4 H9 k/ }, P2 s5 I: k n" s
- (setq blkname (cdr (assoc 2 elist)))8 b1 O5 P& K/ [2 @2 K
- (setq blklist (tblsearch "block" blkname))7 C" n! X& Y% n
- (setq blktype (cdr (assoc 70 blklist)))) U V. U7 G' Q8 s) |( A: o5 |
- (setq xcliponoff 0)" L" T1 \9 ]* }0 L: C3 G: |
- (if (or (= blktype 0)(= blktype 36))
! L, O6 N2 z9 E1 x! c - (progn
9 C# x; `" {. U: f7 ?1 b - (setq xcliponoff (xclipon elist)); Z9 S# v2 l' V; Z7 V
- (setq temp_xclip xcliponoff). `$ C0 D* {9 C! v0 D, w
- )
3 q. P& n+ w: q& z3 f0 B5 y# L3 z - )
4 [) w# v N* n - (if (= (logand blktype 4) 4)
5 s4 ]8 Z: J1 z; N# I$ o - (progn
- z: x. @1 h! i* o0 E: D2 ` - (setq xrefpath (cdr (assoc 1 blklist)))2 @) O# F( v9 P
- (setq help_entry "modify_External_Reference_dialog"), o8 B: t' U+ J$ Z! {6 ~
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
& a9 k7 ^7 J9 R5 i - (set_tile "Bl_name" blkname): B2 M/ D) i, i w- O
- (set_tile "path" xrefpath)# a2 p% y; X/ t# |, `; X, Z
- )5 h0 ?+ b. O1 t/ V( j) ?- y
- (progn
% ~6 R+ F3 x0 s1 I& a4 J - ;; Get program name for use as Xdata app name
]' V) M. l3 |) ` - (if (not (setq program (getvar "program")))6 u8 _. x ]2 w/ p) T# W( u
- (setq program "acad")
& z4 T' N" f9 O/ |0 K5 ] - )& } ~$ }) t0 n4 B6 f; u0 d
- (if (and (setq temp (assoc -3 (entget ename (list program))))- ^5 B% h5 P1 u% g* f, D; R
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")$ I: \# h% k! _! C* z' |; `6 T
- (assoc 1005 (cdadr temp))/ S+ `5 ~, W" M" o. ^% S, u1 ~) D
- ): |1 a2 x' V; C$ o
- (progn
( r) J7 W7 |) D6 Q T - (setq newhatch 1)
2 H. T3 ~5 u. B& r* k7 g( v - (setq help_entry "modify_Hatch_dialog"). R1 S7 G7 Q+ O, g I7 b
- ;;; convert the object into a new hatch1 u5 s0 y0 C, m" E: h
- (ai_undo_on) ;; enable undo
* o3 G" L/ ~, N. m( D+ X7 b - (COMMAND "_.UNDO" "_Mark")
& D. H3 W& z3 `4 E2 |8 U - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")3 X! c1 `7 A3 [5 H5 e
- ;;; suppress nasty message from convert command# P. y: I6 l' a+ J9 b
- (princ "\r \r")
" ?; n& X& }; ~1 ? - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
. I9 Z" n% b0 y& p$ A6 i - (setq old-elist elist)+ ?% ^' t# F* h7 x( }7 b
- ;;; If we have cancelled ddmodify% f! Y9 p( L& t; T( @, m2 m- ^
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
' N% a# U9 `2 U z; }1 t% ?8 s - (command "_.UNDO" "_Back")
& S3 Z( {( m% C* [# w - )
2 F3 b- n. O! b7 Y' z2 y - (ai_undo_off) ;; restore undo state
2 C0 _- z8 n0 Z+ g/ o - )3 g2 U4 }( H8 v/ [. Q
- (progn
/ w. `& t0 _9 B' v2 V7 z - (if (not (new_dialog "ddblock" dcl_id)) (exit))
7 R" S2 v- C4 X. N/ a: \ - (if ( = "*" (substr blkname 1 1))1 u# i' ~) l& Y! [
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
8 E3 A9 \7 Y% k, }$ k! h6 H - (set_tile "Bl_name" blkname)9 u: g8 V0 f1 e$ a: j/ Q
- )' t9 x& Q) C: C
- (setq help_entry "modify_Block_Insertion_dialog")
# F8 U' U* I0 P. | A. p( h: f - )0 k5 l3 O! x6 ]. [8 }5 ~7 G
- )
$ C2 I: T/ J& [& b+ n% r! c5 W - )
. ^; x) m- W! P# e A4 a - )
. w- K' E7 b4 x, P* a - (if (= newhatch 0)
- n, K- f4 o% c$ j1 D* d: G( {+ [! W - (progn* m. U2 w7 J6 ^" z
- (set_tile_props)6 t5 b& s) N3 t
- (set_tile_handle)) [6 f( ^# S* v6 I+ |
- (set_tile_pt1 1)
% m- a, R% X* Z* z* b - (set_tile_rot)
+ c, k$ D8 u3 L6 M! L - (set_tile_scale)$ E& j" h9 S5 e7 `
- (set_tile_rc)3 T9 ?9 m+ P0 K0 ~) h4 w; ^
- (if (= (logand blktype 1) 1)* z `$ N. j p! u2 V$ @
- (progn
* |6 n: a9 v( \ - (mode_tile "xscale" 1)
V# M! {4 R% m% J8 Y7 C: D4 ~ - (mode_tile "yscale" 1)
9 r) l9 g- f E - (mode_tile "zscale" 1)
1 \ k" R$ `* c+ @1 g - (mode_tile "rot" 1)! I$ H/ b& W# W1 B7 R1 I1 |8 Y
- (mode_tile "columns" 1)
* Z! B; l: w* q' `% K/ R - (mode_tile "rows" 1)
0 r' J# S+ M0 H8 X) | - (mode_tile "col_sp" 1)
6 j }* p* p5 w+ }3 ^8 h: Y6 _- L; h% R - (mode_tile "row_sp" 1): n( t) Q" o0 t* b9 x0 y
- )* K" L- Q5 w# @4 W7 X% w0 d
- )
& V- k {7 _6 m% t - ;; Define action for tiles% g! X+ u# E* ^0 j
- (set_action_tiles)
8 Z: Z- s* c; T' H! T& F" U - (setq dialog-state (start_dialog))
( I1 n" S& d+ `' c1 o - (cond
3 Z2 F6 m; L) _3 k! J - ( (eq dialog-state 0)
. ^2 G! |( M' U$ c - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
q8 m5 g; g* a - (move_pt1 1)
& Z7 K' H* I7 R. Q6 B2 P j2 ~ - (reset))0 U* G" y- y3 D5 T3 x: ]8 y7 g) G
- ( (eq dialog-state 1)
( ^% X' _. l% v6 ~ - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))7 d0 C& S/ t" n9 F" n
- (xclip)
- r x2 j" @/ J - )( l. ], I+ Q+ j3 `5 x# r
- (modify_block))
5 B( d5 c5 {" X9 A- ^* J - ( (eq dialog-state 3)+ b& m6 x. l. Q1 r9 K2 I
- (modify_block)
& u" |0 n& q& |% ?7 g& G - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))0 U7 n( Z: j( _! R
- (move_pt1 1)
% c* h$ S( J+ R - (ddblock))
' X0 H3 M4 _0 Q - ( (eq dialog-state 4)7 w: M2 x% g# [
- (modify_block)
$ T7 U( z$ g- j+ Q) u4 O, ^& K; W - ;; Get current handle.# H1 c, \" l7 D" G& T' V h
- (setq hand (cdr (assoc 5 elist)))
: s! Y8 C0 O: f$ B3 w s, e - (command "_hatchedit" ename) `2 t' R. U% L
- ;; If OK in hatchedit, a *new* entity is created and the old one9 {3 |8 u- E' X
- ;; is deleted. So if the old one exists, it must have been a
& O# A$ e3 P4 u0 @1 _' y# I" w - ;; so rest the entity.3 M0 H% d' r2 g7 o1 r) F6 r
- (if (entget (handent hand)) (reset)): h2 ^3 g n v* ~0 s4 f$ F/ o
- )
+ P& o8 J' N. x+ C1 B# a) k* ] - )
( Q1 g" Q4 R" g7 l0 h, [% P - )/ z0 T# Z/ O/ o7 A( O# D, Z M" J
- )
2 F5 o! J( |1 M2 ] - )$ ]% j- S- W h
- ;;
* `* E! d% @ _6 G0 O& ^" u - ;; Modify SHAPE
8 F5 A2 R& T) ?1 E W3 q0 ] - ;;/ l5 u9 Q- g9 O
- (defun modify_shape ()
9 u% A; ]% I4 r$ _7 q4 Z - (modify_properties)2 ~: {0 p5 Q4 F5 J! M; \7 H" _
- (setq pt1 (list x1 y1 z1))1 g1 y/ o7 E+ z( N5 D4 p; V- c
- (tempmod pt1 10 1)
, m! D# O1 J% w% k - (tempmod hght 40 nil)
! A2 ^- w. E! Q - (tempmod wid 41 nil)( p- a( F( m7 n- Y* u7 ]+ l& G, ]- Y
- (tempmod rot 50 nil)
% J+ Q+ c" K' P8 |6 k, R% I - (tempmod obl 51 nil)# z+ Q% b5 A# [: l2 u8 d a" F
- (entmod elist)
' c! ?9 [: `% u# J5 p5 L - )/ B' |6 q3 ~5 R9 D6 b
- 8 p N) ]) V @/ c+ {6 h$ W
- (defun ddshape ()
' P5 P$ Y, }3 q& ]! ]. t' X8 b+ A - (if (not (new_dialog "ddshape" dcl_id)) (exit))
5 _/ E# C5 k5 g9 F: u5 B' Y+ p; {9 m - (set_tile_props)
2 d1 A7 ?/ b- F: A& Y! f - (set_tile_handle)- i' s4 G( Y: J% @; W6 h
- (set_tile_pt1 1); U1 R3 y: P" a* T, T* ^$ S
- (set_tile_rot)
^( m @% r: C( R - (set_tile_hght)
( o' e# v% H$ g - (set_tile_wid)
e% O3 Y% |: K: s0 \5 T - (set_tile_obl)
% Z& C9 K6 d" Z - (set_tile "sh_name" (cdr (assoc 2 elist)))
( V8 N! g6 W0 N/ Q - ;; Define action for tiles
% Z, |- n% z, W7 d# A% m - (set_action_tiles)& S+ \* y6 g; K0 \* M5 @9 q' ~8 J
- (setq dialog-state (start_dialog))
" s' n& s( z8 u5 X+ d' Y" ` - (if (= dialog-state 0)8 K6 j) w1 v' n
- (reset)
: ^* R5 n0 N; Z" g+ Y% B2 f - )
- F2 {4 x3 u9 I$ O- t - (if (= dialog-state 1)3 }* E$ f- l1 A$ f& w' l* z% n) L; E
- (modify_shape)
1 V2 [6 q, u% K* K - )
( h1 J+ |0 p `+ W( w9 | - (if (= dialog-state 3)
6 z3 p) w9 n# w: _- u0 V9 x, U5 v - (progn, \" @/ E9 F6 u" c M) k
- (modify_shape)8 u+ P$ G7 G/ R4 ]
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
9 P& \# V8 j) K( Y - (ver_pt1 1)1 ?% E& t! o% t' c( U; o
- (ddshape)
* l9 m, E$ M# d6 l - )# O4 l1 k. B/ x" C
- )0 u' ^$ S2 Y# e0 c `1 j5 e
- )
0 I9 R3 R8 @; P$ U9 h, t - ;;; g& N: ~7 [8 U) ?* ^- i: G
- ;; Modify TEXT or ATTDEF* K: K. Y3 _. F. S! [, c+ m# U7 I* [
- ;;: o. R; Q0 e* q5 n& M
- ;; Set bit code for upside-down and backwards setting+ m0 \$ Q$ ^' u2 L
- ;;, w! O+ }1 W! p9 ^+ K6 h7 W
- (defun code_71 (), x# M1 p: F" h$ ^/ h# L# ?& }
- (cond ((and (= bkwd "0") (= upsd "0")) 0)' D; ~; m0 s/ r3 ~
- ((and (= bkwd "1") (= upsd "0")) 2)
8 ?- i$ X. f( r$ k) c) a" q4 Q - ((and (= bkwd "0") (= upsd "1")) 4)
& q& ^( P; g( \ W! m+ h9 j - ((and (= bkwd "1") (= upsd "1")) 6)
. o# w; e2 K! C; h, \5 T+ b0 A9 y4 z4 M - )* F6 Q" E4 y/ W5 b* }0 p
- )! Y' }/ p- J$ A& @. W6 Q
- ;;
S* O% g. e; j1 o& X" o! V% v2 v - ;; Style action. Reset widget values to style defaults
4 F! @; k, t# E3 w# e& C - ;;
9 h: v7 E7 j' { - (defun style_act (index / style-list)
( n: Z. Y/ z4 K! X - (setq style-idx (atoi index))
& S' x: f! R& S" ~5 q) s& d4 c - (setq tstyle (nth style-idx slist)), P: u+ D: i0 l. K/ q; A j2 S
- (setq style-idx (itoa style-idx)); L I7 r8 x- g6 Y) H' b2 n
- (set_tile "style" style-idx)
* |' J' ?/ a$ `) B" f4 e - (setq style-list (tblsearch "style" tstyle))
3 G% @8 `, P: I3 W - (setq shght (cdr (assoc 40 style-list)))
; e4 b# `# s, ~' b) ]; g5 S8 x* t - (if (/= shght 0)
6 F4 S& V6 g+ {, j6 g3 _ - (progn
! f" i3 i/ y& C! ~& p* \ - (setq hght shght)
2 E. f( ^' @2 t1 v; a( b' F! n9 G - (set_tile "hght" (ai_rtos hght))
" ~# M5 ]9 ]" Z5 n: y+ s8 C) D - )% q! X( M K- x9 M/ S0 W
- )
& I% E5 B& V+ T5 h - (setq wid (cdr (assoc 41 style-list)))$ e' I+ W* j1 T6 ~* J/ O
- (set_tile "wid" (ai_rtos wid))
- }& `" I6 O, O# ^' X7 U3 P: o - (setq obl (cdr (assoc 50 style-list)))1 a, e+ t T" g' f
- (set_tile "obl" (ai_angtos obl))
7 _, N/ V$ l- ~) E7 K1 v, u, {+ [ - (setq bk-up (cdr (assoc 71 style-list))) ]) y( m+ d0 c
- (if (= (logand bk-up 2) 2)
0 l4 w+ d' z* u. T/ b - (set_tile "bkwd" (itoa (setq bkwd 1)))9 Q/ T# q) I/ |; X0 f2 U' T- b" K
- (set_tile "bkwd" (itoa (setq bkwd 0)))3 Y! U# X# e/ E0 W/ V/ x- ?; h) [
- )
1 y, u: n# D* L- a# F( U# t - (if (= (logand bk-up 4) 4)
. N9 n/ I5 m+ | - (set_tile "upsd" (itoa (setq upsd 1)))9 I& m8 _ z7 }# I1 }
- (set_tile "upsd" (itoa (setq upsd 0)))
7 m: a2 [" I% t- X$ R, u K - )4 x. a3 l2 C5 T# Q4 T* ~# \8 l% c
- )
) A: F% k' n' L) I5 _ - ;; b, N& }. h7 S
- ;; Justification action. Set vertical and horizontal alignment variables,; d! u$ V7 S) j& p8 u- q# T
- ;; grey out rotation and height if alignment = "aligned", grey out rotation0 i$ q" Y9 ^! w) N8 i
- ;; if alignment = "fit".
2 r# u/ N W, r& _' C# ~5 Q" c" I - ;;
) N) ]9 C3 `# p& {( k' Z3 y7 B! ^" f - (defun jlist_act (index / templist)
" x+ H9 F: V4 v4 ~ - (setq just-idx (atoi index))9 F! _8 V1 U+ r" s' \5 V
- (cond# n! P, L+ P: E, p$ q5 k9 U2 r
- ((= just-idx 0) (setq va 0 ha 0)) ~- X7 `: p* ~8 [5 _5 a
- ((= just-idx 1) (setq va 0 ha 1))
8 ~3 H D' p9 a! c4 L8 | - ((= just-idx 2) (setq va 0 ha 2))
, j& [( v( ~ }9 d" {5 o1 ~/ q - ((= just-idx 3) (setq va 0 ha 3))$ p1 i1 M/ J) b: o) I1 X
- ((= just-idx 4) (setq va 0 ha 4))$ ?$ B; ^, Z8 V$ y# W
- ((= just-idx 5) (setq va 0 ha 5))
! C+ H8 { V! N0 {# K) j - ((= just-idx 6) (setq va 3 ha 0))
; Q2 [# N9 S+ q5 Q# G - ((= just-idx 7) (setq va 3 ha 1))! r/ S& G3 H' o( F2 L* b2 D5 O
- ((= just-idx 8) (setq va 3 ha 2))
8 |1 B+ }) T/ E$ S3 f- | - ((= just-idx 9) (setq va 2 ha 0))9 X L. F: V' U. u1 C0 {" a
- ((= just-idx 10) (setq va 2 ha 1)): J! y( l; A1 c" e& Z p, B7 N% t
- ((= just-idx 11) (setq va 2 ha 2))1 _9 U1 |- G& @+ P9 I
- ((= just-idx 12) (setq va 1 ha 0))" Q: f8 ]6 H+ y* ]& Q
- ((= just-idx 13) (setq va 1 ha 1))
1 W' }2 q- c! E8 e5 c/ ?; \ - ((= just-idx 14) (setq va 1 ha 2))
4 Y c' m" w- @8 } - )
' e* w6 v3 ^+ R' ~8 z: q- F. d9 G - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text) H( Q" R( b9 }& k1 y
- (mode_tile "rot" 1)& z( |4 }) K) T
- (mode_tile "rot" 0)6 k) y9 \5 W) _" V1 ^
- )# O5 G6 e7 c3 U0 D( u& i. ]' q. L
- (if (= ha 3) ; If Aligned text' q* y8 O+ a: k n4 m
- (mode_tile "hght" 1)/ R, _8 H& w' _! q# M# c' p# C( w
- (mode_tile "hght" 0)+ a: l4 P! J3 `$ R% f6 n
- )8 V& i* P: c0 E/ ^* I
- (if (= ha 5) ; If Fit text4 d- d. W$ A# E3 l' c; W* \
- (mode_tile "wid" 1)
, t. X0 ~% \, [3 C - (mode_tile "wid" 0)+ q+ E' g; Q! }( y, S- n9 n
- )3 g0 C4 \; j2 ], }4 k
- ;; Reset rotation and height if changing from aligned.
0 A3 j) q7 X1 I9 t7 P/ E - (if (and (= ha-prev 3) (/= ha 3))+ E& g: F; t- G. U% H
- (progn8 i+ I4 o0 [# M, C+ [
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
& N& e: d" N5 o# w+ \' D3 |) v+ z - (set_tile "hght" (ai_rtos (setq hght 1.0)))# s# V" t" O; x9 p7 W
- )
9 i: ^) ^# m: ?' o5 U( r. v - )
+ ~ Z/ v+ M* |' f% h. c - 8 m( f1 ^: r3 [' I% `5 ^( ]9 l
- ;; Reset rotation and width if changing from fit.
L) W# |* B" d6 ]. ^, I& f - (if (and (= ha-prev 5) (/= ha 5))) H% q% C. X# r6 |! e9 \* v
- (progn- U# I7 E; a, R$ ~6 o
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
: q* T5 Q% ?* U$ m - (set_tile "wid" (ai_rtos (setq wid 1.0)))6 `% k, w4 s- ^4 B" v* ?
- )
& h2 a4 Z$ U: ]% l4 h8 R - )3 W/ {4 b% h) `* @0 P7 C
- 9 V( Y& D. e2 P3 Y6 l
- (setq ha-prev ha) ; update ha-prev for next time
+ A0 Q4 H( H- }5 T: n+ I# A$ F - (setq just-idx (itoa just-idx))
" m) c( _1 F; i - )7 G. z0 f* G; B* [* V3 i x
- ;;
~9 v* N5 I0 X# P3 {6 o0 I - ;; Set intitial alignment setting based on vertical and horizontal alignment$ y. ^8 G# ?9 V
- ;; bit codes.& C3 B- h6 f1 G* b b0 j- V" H9 R
- ;;
# m6 U0 L3 G2 C W - (defun set_just_idx ()* U4 j0 _3 e# U7 c6 C
- (cond$ \0 q) O7 K& K
- ((= ha 0) ; Horiz alignment = Left
+ h+ d; ]6 l3 a3 i/ K8 b - (cond1 I6 l) R1 ]% e" D1 r2 _
- ((= va 0) (setq just-idx "0"))3 m! H! P% |; e' \1 d. [/ @
- ((= va 1) (setq just-idx "12"))
) M5 N6 U5 ] z4 }5 e - ((= va 2) (setq just-idx "9"))' H F/ | e/ Y0 o# ^' F
- ((= va 3) (setq just-idx "6"))- x% F5 i7 k. N1 e) G
- )
! \, W4 d7 y2 \9 P" a" v - )
+ g6 b; K$ m4 @1 Y# J$ u - ((= ha 1) ; Horiz alignment = Center
8 x8 S" k: M. ?4 [/ c - (cond) h* w3 C5 m2 X# J3 _/ d1 O$ g, m
- ((= va 0) (setq just-idx "1"))
5 h1 @, I7 t' w5 r: K* m V# k - ((= va 1) (setq just-idx "13")) j0 w% O# Z; ^/ ]
- ((= va 2) (setq just-idx "10"))9 W5 ~+ u3 l8 k
- ((= va 3) (setq just-idx "7"))/ W$ m& K% \ z: L- L% ]0 H: W( U
- )! ^; R+ I9 _3 Y$ T9 a' v- h
- ). r8 z* ?/ b, T
- ((= ha 2) ; Horiz alignment = Right: c" F) S' A' E# N, W# p& P
- (cond( A: v$ r; ^' S+ P( J
- ((= va 0) (setq just-idx "2"))
' R9 e1 ~7 Z b% V/ Q. n - ((= va 1) (setq just-idx "14"))
. m4 C' {4 R% g1 p0 F' W& g - ((= va 2) (setq just-idx "11")), G. F9 r9 j6 L( x0 ^: r# n0 V
- ((= va 3) (setq just-idx "8"))
4 p, a' X3 Q& |0 _* G - )
$ I, U2 z7 J0 M+ x - )- ]3 N/ X. [0 i4 W6 D
- ((= ha 3) (setq just-idx "3")) ; Aligned
! @2 p- K/ Z+ n0 \; u, q" r - ((= ha 4) (setq just-idx "4")) ; Middle
/ o- L* J6 K/ g6 v7 k, J6 V- z, B - ((= ha 5) (setq just-idx "5")) ; Fit
) q2 ^, T' ^$ A( }+ \; z# w - (T (setq just-idx "0"))/ g9 |! o5 M- j; j
- )
5 ?1 O" Z P# g; d1 j8 Y' D - just-idx9 @/ s0 o7 s/ Y; Q
- )
: l4 _$ e ~' Q8 b) \5 F - . }/ ^- V! G7 i6 U E" W- D9 O- c
- (defun modify_text ()
+ ?4 H# _! D, s0 I, s8 z- E9 o; | - ;; insertion point2 ]0 ^0 z, ?2 g6 U* \4 `
- (setq showpt (list x1 y1 z1))" ]+ F) T6 v5 T- ^, k) W) X. n9 C
- (setq bit-10 (trans showpt 1 ename))
& ]% A( ^" v% G5 q6 ` - ;; alignment point
$ ]) x6 V* w& ~ - ;; for 'Aligned' or 'Fit', alignment point must be different! C, R$ R2 }$ s! T; q& v% Q+ j
- ;; for all others, use insertion point8 r( p/ E+ n4 N7 f
- ;; (ACAD will recompute insertion point)
" U' J& @& Q+ ~! Z% ~( \ - (if (or (= ha 3) (= ha 5))
( e; f1 Z7 }% A4 Q& X. D - (progn
& N1 [- r3 H; ~9 w0 Q& d - ;; if no alignment point, fabricate one
* y: @; ]! B: W9 r - (if (not alipt)
( B. G7 C* ]! Q$ f0 @3 C' a - ;; add text width to insertion point
4 X# t' Q2 k& f# _0 @; U - (setq alipt
: T' ~- q, G( s( J7 k: x8 O) G - (list (+ (car showpt) (car (cadr (textbox elist))))
. ~' A7 a6 c/ y - (cadr showpt); c( Y( J M( J' P0 \* c
- (caddr showpt)" g$ ^8 W8 ^; ]% X
- )$ C4 u [+ _9 ~+ \; G3 d; t
- )
. m. z5 I* r0 p7 ^( M4 `, f4 \6 U& e6 @ - )
& |1 g) c7 A+ J0 @2 V3 K8 ]% @; J - (setq bit-11 (trans alipt 1 ename))
+ o6 T5 S7 i6 C& t0 o6 j - )
3 n5 A9 K+ v3 g0 O7 ^- Q7 `; D - (setq bit-11 bit-10)1 B' ~/ O& p6 f: g* ?. K6 B
- )
* X- @2 @( J1 P; R) a) n - (modify_properties)2 u8 c& {8 Q/ g" h2 D6 `1 P- z
- (tempmod tstyle 7 nil)
- R5 n v" H( f4 t W1 K - (tempmod bit-10 10 nil)
5 V( g2 d& {8 \' f - (tempmod bit-11 11 nil)
5 Y+ i; N6 ^7 L' ?$ R# s; b0 B - (tempmod text 1 nil)4 ~" W3 d6 Z T$ y: z; p8 W+ h
- (tempmod hght 40 nil)
, K! \4 |; U' J2 }; a0 H: c - (tempmod wid 41 nil)
! \. f0 ^% Z6 H( h# k0 K' D1 j - (tempmod rot 50 nil)
$ m* D _1 Z2 x, r" A( _2 |; Y - (tempmod obl 51 nil)
" w* H# u. U \& | - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
) M# S( Y. H6 b% E n. F+ O - (tempmod bk-up 71 nil)
& ~1 F3 v8 i" ]2 U5 k9 q( s1 h: ]' f0 w0 ? - (tempmod ha 72 nil)
1 D8 T! J8 w$ K' m d, P" o - ;; Attdefs use 74, text 737 }- [# K4 I7 N/ [
- (if (= etype "ATTDEF")
/ n9 Z# k, N7 E% ?& g. y6 X- o0 v - (progn
$ p( \$ K. A O1 U! p9 R/ U - (tempmod attag 2 nil)
( }- `. O% E2 G& ~8 S* J - (tempmod atprompt 3 nil)
: v/ J- n* m" p& v( u# K - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
7 w7 k$ b$ q( ]+ {# A1 S/ b$ ` - (tempmod icvp 70 nil)
& b% c1 w6 T3 j/ K6 n+ G - (tempmod va 74 nil). Y0 U; L% o: R7 R& _" Q
- )8 h4 @& d8 f( g( W* {% W) ^. U
- (tempmod va 73 nil)
! r. M) _+ m8 C7 a$ X: q. P1 Z* | - )
0 z) E3 y. d* C2 t/ M# D6 Z - (entmod elist)
. p/ \1 Y8 D; L; A3 ]! M - ) A+ [' u7 B) e1 o9 U# C
- # m; a6 W: @/ C6 }7 m2 r, ?
- (defun ddtext (/ 2ndpt slist i)/ g' ~% t' L& N1 f1 y5 J% `/ U Q
- (if (= etype "TEXT")5 Q) y; J" X- S! I' I/ z) N
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
+ I, _) ]: s6 M& M, b1 Y( A& `# d( P - (if (not (new_dialog "ddattdef" dcl_id)) (exit))/ W6 |. p! h0 d% n: g. f
- )) b4 }4 d& D( Q) `: i* d J
- (set_tile_props)+ L8 B3 M/ D8 T! D; ? I f
- (set_tile_handle)
& ]1 |4 K8 n+ x+ `, q - (set_tile_text)
+ J9 R2 b c$ z+ W/ K4 v$ R2 t* O! u - (set_tile_tag)
! N1 T5 I1 c- w8 B/ P, y - (set_tile_prompt)! ] y, ?4 E) M3 L/ s, ]
- (set_tile_hght): h \& c7 b3 Z0 d% o
- (set_tile_wid)
! V8 a, @7 j! s A - (set_tile_rot)
5 O6 O b8 B/ f, [# _1 G - (set_tile_obl)
8 J/ B( w# d3 v; U - (set_tile_bk-up)1 T" P4 ^$ v3 Y5 e! M
- (set_tile_icvp)% T) i* w0 p7 }
- (set_tile_style)
6 r% r( o1 T( p - (set_tile_just)# r/ B4 K+ G& c( m0 A0 @! i
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1)): W' p: f' @4 q
- (if (not (assoc 11 elist))
8 R- M' |) g; Z/ {% s+ k5 \% a/ U( }2 ~ - (progn (setq pt2 pt1)
; o. n( ~* k7 p g4 r - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
; ^, C# [. T6 i( t - )
5 E1 U' t. [% g( U6 R - ;;(trans '(0.0 0.0 0.0) ename 1))3 N, w# R5 h2 L+ h, |3 E. M
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
( R) X9 e( `: I* m6 ]' W @1 S - )
) ~" M" A( V& ^" q& J2 F5 ?+ u - (if (or (and (= ha 0) (= va 0))
3 z: L- W }4 s$ z& [7 X% M8 X - (= ha 3). c/ R0 ^6 O# U/ [% L
- (= ha 5)
, W" M, y0 b; Q2 |, Y: a" M - )
+ O0 C% n, N4 f - (setq showpt pt1)
/ o+ E6 n- w- E! y l1 \# B7 U6 E - (setq showpt pt2)
( |1 J- k* X/ t/ x - )
, O$ \8 B# |" a# k E' J3 |( g; @ - (if (or (= ha 3) (= ha 5)) C' h" B1 s k6 \5 C3 x
- (setq alipt pt2)
1 ~% l' Z+ |7 g9 r4 y - (setq alipt nil)
0 Z7 }) M; E0 G9 n: x - )- A3 L+ I9 r* t
- 3 h8 B' `7 q% M$ O& C* P" I+ y( X6 e
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))! m! S4 l6 `) Q; v5 A
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt)))): l" m2 ~7 X7 u! i. M4 u. I
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))4 W2 w* z: c1 E( @ s
. q" r# x# W+ C- K4 C: U- ;; Define action for tiles% M5 |( E: x; r8 U, o: N- _
- (set_action_tiles); S- i: M) V9 Q3 K$ I, h9 {
- ;; Set focus initially to the text edit box.
( P7 c+ y2 ]/ p" R# b - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))4 n; W" O O" d
- (setq dialog-state (start_dialog))
/ u1 C0 [4 Z9 V; ?# U - (if (= dialog-state 0)6 a3 T2 n C) J( K
- (reset). e x+ R( m. U8 a; E- K
- )
" p6 T8 D. r2 F3 l+ A& G2 h - (if (= dialog-state 1)
6 u7 ~) T1 l% b8 Q- | - (modify_text)+ {# x! y4 j5 V- }; x
- )
& {, X) o. l- ]4 b - (if (= dialog-state 3)
# Y N$ Y$ {+ M$ L& L/ q - (progn
$ `- j2 g/ z' l2 h/ K. R! \ - (modify_text)2 [4 {5 ^ q7 x7 ]0 _) R
- (if (or (= ha 3) (= ha 5)): k+ ~8 L" N" X+ E
- (progn
' x% p+ L, z b) T - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
0 ~& a/ U' t. Y8 \' v/ p - (if (not showpt)
. C3 F- H* @4 ^ J8 p4 Y - (setq showpt (list x1 y1 z1))9 m5 S- {; ~4 W' w
- ). u8 s: b* i8 N- F; J( @+ J0 r7 D- P
- (setq 2ndpt (getpoint showpt "\nSecond point: "))
( `, F) E- s W. S, J r) Q - (if 2ndpt
' U/ M3 R8 v1 \. F5 x% a - (progn
: U( ~' [2 d. T y6 }- J; Y - (setq alipt 2ndpt)# z; O5 k) [7 }8 B6 z! ~) A
- (tempmod showpt 10 1)
$ _, E1 Y3 y4 z/ s% p - (tempmod alipt 11 1) J# ]0 q. h" H( {( d
- (entmod elist)
! j$ ]) f- |/ }3 |6 z5 Z8 y9 T - )' x/ y/ l9 l* g: n3 |
- ): u: L1 C& e0 |& S4 o, M7 o8 |7 U, e( L
- (setq elist (entget ename))- h0 U* b5 ~' q) O% j) S3 {# [
- )
% k. c H8 y7 X1 A2 N2 H) [8 i1 C - (progn
. p: V$ X" D7 I( x( } - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
; ^' p( `- M {) g* @: a9 ?+ C - (if showpt
+ B8 f- T# b8 v, U2 i - (progn
1 _1 {( P( K; Z2 t8 w L7 P' Y - (if (and (= ha 0) (= va 0))6 Y* p; c, S3 d
- (tempmod showpt 10 1)
( [, s- Q* y( u3 b- z' [ - (tempmod showpt 11 1)2 Q$ u T3 b& ?* I* X, ]- O' v
- )
$ z+ r" {) F/ e - (entmod elist)
7 K: _ t8 X! ]% G6 P - )- T/ _' i/ G$ f; P6 U
- (setq showpt (list x1 y1 z1))7 e, C: k L- F+ B1 ?
- )# y6 a7 M) c9 N( n$ P
- ); G; ?5 v* K% M/ t+ m
- )
" e1 n. T' F. L/ t8 N% L& ?+ j - (ddtext)
- D$ r2 R4 b2 O5 H& X( f - )
T& e& P# K ? - )6 m! z5 h D9 S3 }5 B
- )
; a) m* j! A8 [: b+ z* `" r
: N9 X R% p/ _- ;;
% M/ V3 p+ b, t$ J" ` - ;; Modify MTEXT0 f* z2 `" }7 {* R# i2 p p2 D, O5 b
- ;;
, r: O# f) u" R! a' l- t% h" A# ~ - (defun modify_mtext ()
) Z3 w$ L4 o3 Y p! C - (modify_properties)& P O* X* ^9 |( T9 {) c2 P
- (setq pt1 (list x1 y1 z1))! Y; U( t' k: P- K) h; y
- (tempmod pt1 10 0)
) g" [) m1 A4 ^! `5 i, j0 x - (tempmod text 1 nil)
7 Y, e- B; _" t& ?' L8 Y - (tempmod tstyle 7 nil)) O7 q1 y, }( I2 Y
- (tempmod just-idx 71 nil)
! F5 n b/ d% z! c; T2 h - (cond
7 n; Q0 s$ d! d. ?2 d8 v - ((= dir-idx 0) (setq dir-idx 1))
# s' Q) p6 ^# a0 }# G: g' z$ | - ((= dir-idx 1) (setq dir-idx 3))
; L* U2 |, t' r. q) G - ((= dir-idx 2) (setq dir-idx 5))
+ r4 `+ F7 W0 _& a9 [ - (T (setq dir-idx 1))9 Z8 \) M9 Z- n
- )
J' X0 O( B3 j/ F! D# e - (tempmod dir-idx 72 nil)
3 m9 i& v* `7 T' f7 ?: ~ - (tempmod hght 40 nil)
- V. ~& }! ~; _4 P - (tempmod wid 41 nil)
( U! A" Y2 A0 z1 `# `' P! [% M% e - (tempmod rot 50 nil)% ~5 e5 k5 @ V& X6 l7 R) o
- (entmod elist)
) z* I8 V. J Z1 P1 j! y - )2 l1 n3 i/ ]7 x/ b
- j2 I" ^7 F( s& L- ;; Set MText text style
- @. s6 ^7 M, n6 A' `+ I - (defun MText_style (index / style-list)4 R8 v7 j. K& n) O
- (setq style-idx (atoi index))
9 e5 ^ X8 z' M G( }/ {, Y3 t - (setq tstyle (nth style-idx slist))% d; i4 i# d4 W4 y7 l3 _" g0 I
- (setq style-idx (itoa style-idx))
* \0 @- L b( H3 P - (set_tile "style" style-idx)5 a5 J; T1 Z: }& `
- (setq style-list (tblsearch "style" tstyle))
# {" u! {5 S+ e9 _6 C/ H$ D% U - (setq shght (cdr (assoc 40 style-list)))" q# K) N4 f& u/ u6 y$ R- ~2 C5 c
- (if (/= shght 0)& v/ L( c; Q- I {& c6 ?
- (progn
' a' W7 p+ s- h4 ~) d/ u - (setq hght shght): A- r/ {( B- }+ h. r
- (set_tile "hght" (ai_rtos hght))2 E, r* Z( A8 f Q0 d
- )2 x1 q2 K' C% y# N
- )
4 ^% o; B) a3 ~# [ - )" S# v$ v5 {% U" `3 V# M" z; X. h
+ X' g4 Z' L7 e% y) q D- ;; Run DDEDIT on given entity, working around possible re-entrancy0 s3 @2 B+ o' p4 H3 s2 i; }5 b
- ;; problems with MTEXTED A- a* E8 B/ b2 d
- (defun safe_ddedit (ename / orgMTextEd work)
, }* e$ S) B2 Y' d - (setq orgMTextEd (getvar "MTEXTED"))5 k: j9 n1 l1 T+ x
- (setq work orgMTextEd)
6 D A c7 g! d* s8 J1 |0 F2 L - (if (= ":" (substr work 1 1))
4 ?9 M: s; z8 Q) [ - (progn! O! C% i9 Q2 _0 |( t7 {( h9 z
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
# ^1 w$ A/ y) U5 A4 w: X& X - (setq work (substr work 2))3 J9 Y0 v. T( }' G" T- t
- ), j1 K0 F) r& a! q
- (if (= "#" (substr work 1 1))
! M3 U! g# N" F$ @ - (setq work (substr work 2)) D2 f6 `! p# n9 r) {" ^0 |6 s
- )
6 A9 _( W' g& _1 U5 @8 G) E - (setvar "MTEXTED" work)" d) k7 E& k- N3 p6 Q: |$ [
- )7 Y. D; ~. w4 L* |9 S
- )2 G* |% R4 j6 X+ o: U
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
) M! x5 T! o4 J3 d - (command "_DDEDIT" ename ""); v* W. K: j+ |& t7 U+ v
- (setvar "MTEXTED" orgMTextEd)& Y2 o# s! V# [! `. X3 f
- )
; h% [! H8 h: h5 r/ b: V - 5 P4 j$ U$ w1 m
- ;; Verify MText object width
) X- K6 }; U4 d! y8 j' x s. v7 f1 w - (defun ver_MtextWidth (value)7 _# f8 \# H6 a* N, I; ]( x
- (setq value (distof value))
0 \; ^% N8 \9 U4 e. ]1 ~ - (set_tile "MTextWidth" (ai_rtos value))
7 p" P7 ?) m' \ - (set_tile "error" "")' n ^# I& B$ v% P/ z8 k9 v, L
- (if (< value 0.0)6 h3 s$ y' T7 |6 T; h+ Z$ F0 `( h1 d
- (set_tile "error" "Value must be zero or positive.") G0 N# r* x Q
- (setq wid value)1 c9 I3 j9 { `* Z) A
- )
, W/ p3 a+ V5 X5 m( q - ); |1 u) B; K! w4 z8 v/ q! _7 ?( a1 q
6 `8 Z7 Z7 P: @: N3 x- (defun ddmtext ( / gc3)
* p. ~. w' J& q9 ^4 w - ;; Get dialog
1 j9 N' q% Z* \( A - (if (not (new_dialog "ddmtext" dcl_id)) (exit))) s# g5 q' @' y% j( t
- 5 J$ t+ v4 E; u$ g1 E7 |
- ;; Load list boxes% w& c* ]5 @% q
- (start_list "MTextJustify")
: Q& U+ R7 g4 Q7 x, u! | g - (mapcar 'add_list '(8 W, O( }& `$ p. B; w
- "Top Left"& i" k5 l/ Q; z- M: e' D# F4 F7 {
- "Top Center"5 Z3 J( B. r8 r- g
- "Top Right"
' p: z0 o' e$ b% L - "Middle Left"% {2 G. [5 T: X9 D2 n" u9 u
- "Middle Center"
, y% h' h# x3 V. | - "Middle Right"
/ \- w1 ~8 y! v% g3 W8 V z9 r - "Bottom Left"
6 w# v' J- y8 i( }. [ - "Bottom Center"
0 Y8 H+ B1 O, b1 @ - "Bottom Right"
% `( M3 ~# c5 w o+ a - )% m" K! G0 G/ B2 x
- )+ e0 H$ H) J$ X% f/ m& [
- (end_list)1 R. J# c5 |0 I
& [! f' g, e. u w. A- (start_list "MTextDirection")
1 F7 u* K7 A2 F7 q, E9 B - (mapcar 'add_list '(
- c! b0 R8 G% V) W! G: c+ N% { - "Horizontal"
, @4 `2 O% ^4 a6 \: M - "Vertical"# j5 y1 O1 A( b5 u+ M, w
- "By Style"
/ \# v# {2 A* p1 {1 N6 Z; }1 e$ D' t - )& Z$ _ z6 c' e4 ]' Y- w, q5 h3 c
- )
* ^, H4 R' `) S0 A4 d3 p - (end_list)
6 {4 G, J; n+ C" w4 c - 4 b; {- b3 t5 B' L! Y
- ;; Set initial tile values
3 g% m9 k1 Q/ f& P1 d - (set_tile_props)* G2 l) k) C5 j) M1 g; i7 v0 z: }
- (set_tile_handle)
4 k7 k% } e2 A! e% [+ ~' [- I - (set_tile_pt1 0)$ ?) ^3 W) w9 v+ @
- (set_tile_style)
; a: x) j# W% ]7 n - (setq just-idx (cdr (assoc 71 elist)))
- g: j/ \ \. G9 C6 u" o1 b5 K - (set_tile "MTextJustify" (itoa (1- just-idx))), E; L* H, Y B$ Y
- (setq dir-idx (cdr (assoc 72 elist)))
' O7 L+ R8 k( j% y4 B - (cond
, }5 [9 W* N4 t' | - ((= dir-idx 1) (setq dir-idx 0))
7 k* V0 I7 Y+ ?$ v( s' Y# J - ((= dir-idx 2) (setq dir-idx 0))3 r9 i) H* {8 l; G; D
- ((= dir-idx 3) (setq dir-idx 1))
5 R8 T7 t# J4 s) ~6 M( a: G - ((= dir-idx 4) (setq dir-idx 1))
0 m3 K) k6 K5 c6 V; n% o - ((= dir-idx 5) (setq dir-idx 2))# F i% K" k3 E' _" x" f
- (T (setq dir-idx 0))5 m# L2 ?) S) v: y" n
- ): h) f; d5 \% o8 z2 a; L4 c
- (set_tile "MTextDirection" (itoa dir-idx))
\/ J+ X! P( @# e - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
8 v8 q* g, x4 g - (set_tile_hght)# X" D9 p' Z0 d( \7 Y, `
- (set_tile_rot)3 }- U# W( a2 {4 N
- 9 J; n& Z8 j) d/ e9 x, ?! ~; s4 j) a
- ;; Set edit box, disable if too long
0 g5 `3 b, f8 u& i1 j - (setq gc3 (cdr (assoc 3 elist))% q. Y/ ~/ J V
- text (cdr (assoc 1 elist))). T& L6 k7 \8 w0 k6 k
- (if gc3
) m0 r: n# T0 R( C1 `/ @4 T& T2 q - (progn ;; Text is over 250 chars, disable edit tile) G0 G' P! A% D. K5 x9 ^ I2 N3 W; `
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
$ U- y' b& S8 Z - (mode_tile "t_string" 1)# S( T1 Z) i) u3 z8 j1 \
- )8 I8 n+ g9 {0 m0 p; i% j
- (if (> (strlen text) 80)0 g0 z5 f6 O8 C1 a0 w* C
- (progn ;; Still too big
; k8 w; i% Y4 k! a* `9 C4 L1 N - (set_tile "t_string" (strcat (substr text 1 25) " ..."))! x& o* l; F2 K9 D9 l
- (mode_tile "t_string" 1)
( B9 E ]& ~8 O: W, }. n - )
2 y5 B3 |9 Y" M; U" ?1 Y# ? - (set_tile "t_string" text)
7 @8 L+ ]- t; Y" l) o) {# H* x- ?3 x - ): @7 p% D, |2 q2 l1 u
- )2 X0 G. R1 j5 _
2 ?* ]/ f9 y1 G" ?, v- @/ @9 C- ;; Define action for tiles, J1 X4 k2 O- `! j1 O
- (set_action_tiles)
2 g- R2 @; X* \" N - (action_tile "style" "(MText_style $value)")0 d4 f% h# `) _2 L2 u+ Z
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")
. N/ l& X$ A# H - (action_tile "MTextEdit" "(done_dialog 4)")
: q( O* [$ f0 b8 }0 V8 T - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")3 ~4 U, O# i; @$ b; T
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
0 f, }! T. b$ |6 p2 U/ }3 Q* c - 4 {7 N( p; } ~
- ;; Set initial focus to text edit box.
) P; c: F/ G* b& a - (mode_tile "t_string" 2)- D; l# M! V) O' v& o1 j
% ~! `4 M1 E& g( s C- ;; Run the dialog5 v9 i/ F% |7 w, [" S
- (setq dialog-state (start_dialog))
( j8 `0 ]% s, Z - (cond
; l3 o' q9 U; V& d4 c- { - ;; Cancelled - restore saved data' V4 u8 ?; ]' j) O
- ((= dialog-state 0) (reset))
" V7 _6 j h5 |3 f - ;; OK - save new data
/ _+ z; o5 M3 f9 V- P" {% P% s - ((= dialog-state 1) (modify_mtext))3 G/ } N( ~. L' a. E5 K' h. O
- ;; Pick new insertion point
7 [& V) p$ K) K - ((= dialog-state 3)
! a/ R; K* k4 v0 _ U - (modify_mtext)
" S, u) U% l x" y/ ] - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))' [" @. ^3 {; ~0 r. O: q3 Q) u# |. j
- (ver_pt1 0); m8 R- [ t x$ w3 b1 D, f
- (ddmtext)( O% q' c( D# d+ w
- )
5 U5 c& y: r5 w( V - ;; Run full editor( \1 a- d- I' ?: K
- ((= dialog-state 4)2 f Z6 C% v y) q; D
- (modify_mtext)
; {% D W0 j+ l5 c" ]$ P' G L" z - (safe_ddedit ename)! ^ z9 Z$ l) r$ k
- (setq elist (entget ename))
1 C6 M! s7 ^7 i. F; U - (ddmtext)2 d+ Z' Y5 ^, D' m" p$ b0 w
- )
) @. H, B5 b; f) U8 C - (T nil)
; _; P$ k" T4 Z6 K& G0 t- l - )
, C# `+ d9 d5 j4 m2 T" ? - )
# U, y! F, d( M0 ?4 ^ - ! o2 s/ ?6 S: i
- ;;1 n$ g! l6 ^ d6 N% m% r
- ;; Modify VIEWPORT
: R5 j* g; ~" X4 s/ e - ;;3 C# i" q1 z3 p3 d9 P( |- y. q" ^1 T8 b$ \
- & K; F6 c4 S) G+ d
- (defun ddvport ()4 X* v1 E: g `. O8 u- s
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
; d7 c' t% [' f- U - (set_tile_props)
) T# X/ R7 L5 ?1 ]. g) f. b - (set_tile_handle)1 z+ T5 W9 a( V5 I# o5 E1 o
- (setq vpt (cdr (assoc 10 elist)))
: @' |5 o- u: g/ K3 E - (set_tile "xtext" (rtos (setq x1 (car vpt))))- Q8 P- B7 R0 D* r+ j9 c* X: a
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))/ W c! ?# o3 r$ Z' p" J9 k6 }) S
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
, y3 }/ `# F) y - (setq wid (cdr (assoc 40 elist)))
" V: z+ C5 T; _. O1 F4 J - (set_tile "wid" (rtos wid))
. U% Q" \2 D) Y9 j; |! a - (setq hght (cdr (assoc 41 elist)))% g+ \7 {& C5 b5 F# L9 m
- (set_tile "hght" (rtos hght))7 z0 }4 Z$ W' _0 }( A- I
- (setq vpid (cdr (assoc 69 elist)))# `$ F9 m7 l; a$ j8 ^- a6 j
- (set_tile "vpid" (itoa vpid))
: C8 B' G2 `2 P$ B' R& h6 n - (setq on-off (cdr (assoc 68 elist)))
5 _; d$ L5 j, h+ S4 e - (cond7 k, q) e! {7 Q
- ((= on-off 0) (set_tile "on-off" "OFF")): H% R, m4 F# E5 P' \& W
- ((> on-off 0) (set_tile "on-off" "ON and Active"))! d: T/ i' N$ H8 W0 A) c
- (T (set_tile "on-off" "ON and Inactive"))
6 @" {- X/ D) u/ b% W g - )
9 j3 c) m3 l$ \9 s1 w. R+ ?
9 X$ z+ e& e G" p1 w- ;; Define action for tiles
3 Z& D: M+ y- ~$ f - (set_action_tiles)# N' V) q- r" f7 {# m$ o2 ?
- 6 |0 h; P8 T1 o% [1 z* {
- (setq dialog-state (start_dialog))
* `8 d& ?# P: g1 [. L, k5 } - (if (= dialog-state 0)
2 F! @4 c, E0 y- B' S; S9 W - (reset)
- |2 a% c' W% O8 |/ \- q - ); \* @% x9 T, _
- (if (= dialog-state 1)
& _" d, N1 L, x" j - (progn
: e. \( g+ }! m/ p( R9 m - (if (= ecolor 0) (setq ecolor "BYBLOCK"))
' j6 u9 f/ t/ Z3 Z - (if (= ecolor 256) (setq ecolor "BYLAYER"))
6 F7 Q7 G) C# b, y1 m, ?5 J$ }6 d - (command "_.chprop" ename ""2 t( k8 T) @% n' b& F5 w
- "_la" elayer. `# r& {: z$ \: Q. f
- "_c" ecolor ""
' J/ `- U' ^, W7 t+ ~ - )
1 X1 U/ u' B9 U' B: K - )7 \( e/ H8 n" i' ^7 Z9 j; Y
- )
3 M$ ?) L! q- }( d - )
/ [" l6 ^: R+ w. [( i, S* c - ;;, z- n2 c) h1 f& |$ w- y$ \
- ;; Modify POLYLINE0 W% q. h, Q# I0 d
- ;;
1 |2 n- m3 m. ~2 ~- z - (defun modify_polyline ()" C' O" c8 y2 e/ [, G
- (modify_properties)3 E; G. v) H7 m
- (if (= ltgen "1")
: q8 g, z. L7 G; a - (if (/= (logand bit70 128) 128) x& J6 Y; f5 G% |
- (setq bit70 (+ bit70 128))
; T/ T: Y; E; [" `' g1 J4 G: { - )
5 b& V/ ]: p, I' e. U8 c( R - )$ [& u7 N- v: V4 Q! K7 ^. {: V# k
- (if (= ltgen "0")
" r* _* _ G1 E% B2 Z - (if (= (logand bit70 128) 128): m2 P5 w1 z7 f7 J" P' j
- (setq bit70 (- bit70 128))) \. @ ~: F. t
- )1 }) e) |& w' |: ]! v
- )
1 H- d% f" P1 G1 D! a - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
; B6 [" B' x$ r$ C( n - (entmod elist)0 i- t& l2 t; j2 ]1 X# T
- ;; Added to take care of updating Vertex information for color
( k0 W% [; i: E" M8 ~( l - ;; and linetype.
! Q# m9 a4 R7 \4 Q$ E1 a: X$ c; E - (setq save-ename ename save-elist elist)
9 L+ N+ {1 v. _8 c% y - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
* x& B3 {( m& v) ^, x3 f2 _1 c* L - (progn& \6 H& O' j1 j% A+ G
- (emod ecolor 62) h+ M! P0 \. |3 c4 U7 l
- (emod eltype 6)
% k3 j6 B% U9 Z3 D$ \( q! G) F5 M - (emod eltscale 48)
# _, ~4 _6 g, a2 d* B2 V - (entmod elist)
: F. m1 C1 @; m5 ~5 Z9 o - )" ~, i5 c+ a' S/ ]; I, N
- (progn) M$ C$ ?+ A( g
- (setq ename (entnext save-ename))
6 |2 B% d& C: Q5 L4 o- c - (setq elist (entget ename))
) j7 H+ \/ J& g. t2 }) A - ' C* D8 Y( t# [
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
* N. Q8 L6 {& i4 _# y - (emod ecolor 62); b! B; [8 M! Y+ h. t- @9 E
- (emod eltype 6)
9 }3 O; T, W, Y - (emod eltscale 48)) w0 [7 f9 S# S1 a- ?- p |
- (entmod elist)3 o6 {) J1 p' h2 p% ]) @
- (setq ename (entnext ename))
. X: {1 ~8 }3 j0 R7 s - (setq elist (entget ename))
$ |" e) l2 f& `/ [0 B l - )
# \, R* K4 a" S1 q& D9 Y& k; ^+ J - ) v) n9 f/ e5 r. O4 H
- )
! `4 f8 `" d6 Z( F0 g - ;; Update the SEQEND: Z5 d! B" G" P$ x" a$ I
- (if (= (cdr (assoc 0 elist)) "SEQEND")
1 | s. `# ^; T - (progn
9 [. l8 {; p/ C - (emod ecolor 62)1 |3 n& h. `" k8 T$ S1 e0 u+ N
- (emod eltype 6)' ^; r; R5 A' Y ~1 ^# R
- (emod eltscale 48)
( J4 C$ X" e6 [, [ a( Q- u1 J* V - (entmod elist)
% W* p5 @6 V* t/ |# R" h8 J+ H3 E - )% t4 [& Y; N H/ z: x
- )5 L5 F) I' H! N$ E0 c8 Z) E& @
- ;; Go back to header.
6 v k( l0 t/ M% A( H - (setq ename save-ename elist save-elist)
" d2 D' B* p1 M, |& f9 w - # i2 F7 N# q3 z8 t7 G
- (entupd ename)
. R8 D% i# \8 M P: c - )
, L+ l; s& S1 P$ K% S( H2 v
. ?7 ]1 F: b" ?* w) u9 d/ c0 U- ;; Increment vertex. Set tile values to next vertex
, L+ H" y1 t) a+ q1 y: L - ;;% C9 [4 K3 C* D/ G' G _
- (defun next_vertex ()( g* c6 [! A$ t, J) J4 S8 m
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
6 @% c! s$ i. U" ^ - (progn
: s' M; I- X; ~6 A: K( d, o8 c - ;; If the counter reaches the number of vertices,3 Y( s0 K6 @5 A1 f6 q- e
- ;; roll it over to zero again.' T1 l- ^5 Q$ U% u
- (if (= ctr (cdr (assoc 90 vlist)))& a8 C: z" |4 t8 j2 K; ^: Q
- (setq ctr 0): T+ }3 d7 M% P$ |/ U$ s' u
- )% X) i7 ^' {3 W8 [3 G3 S
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
% s" Y# H3 e) Z5 n - (set_tile_vpt pointype)) ~" Z- n3 F) {# e$ g# [
- )8 L$ f2 w8 t& Z% F z, K4 r, U8 r
- (progn* y; W t( y! j
- (setq vname (entnext vname))
) I0 `$ C2 |9 V" s# e- j) _; Z - (setq vlist (entget vname))
* P q) R" i3 X - (if (= (cdr (assoc 0 vlist)) "VERTEX")
$ g3 n3 {' |3 K; [5 }) J5 F - (progn9 V2 k5 P1 E) ?+ p0 h$ t
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
% W, p1 h6 _' _! K - (set_tile_vpt pointype)
. x: ^2 G. n! |! a- ^1 y - )) o6 X: `2 x2 P6 C0 ~2 x
- (progn/ ]* a/ f* D5 h Y2 O6 a. n% A. Y3 [% r' E
- (setq vname (entnext ename))
( |* y: l# Z+ j3 ?2 x$ W - (setq vlist (entget vname))
+ v; U# f" d1 f - (set_tile_vpt pointype)% S8 E5 @2 O! }3 y
- (set_tile "ctr" (itoa (setq ctr 1)))
3 _2 p: W- C$ l- X, W C) w - )$ k s* U- n% L/ I8 m1 [
- )9 c) A a4 \% N
- )
+ S9 y) U" y1 a6 I! E. a9 X - )
5 w4 G: Q5 Q( v2 q1 e - )
4 ^" s( p! V, m
1 j# V# r1 j5 M+ {- (defun ddpline (/ oldecho)" P7 [9 B2 R3 T, H' b- C
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
# `+ X) ^: M0 d5 g; O% K - (set_tile_props)# G3 S0 M v/ ]) k' `0 W1 ]9 n- j
- (set_tile_handle)
- s: g8 v9 e) a! R4 }. l - (setq bit70 (cdr (assoc 70 elist)))5 o: ^0 b; Q& C" B$ i6 R( i) Y- Y, b
- (setq bit75 (cdr (assoc 75 elist)))
" N- M9 v5 w7 q' X w" A6 y# z6 N - (cond$ l4 F9 y. ^0 t V9 C+ y4 Z
- ((= (logand bit70 8) 8) ; 3DPOLY* A; S$ N. P* E8 z5 Z% F4 U
- (set_tile "ptype" (setq pltype "3D polyline"))
; ~/ R2 u X/ N' y - (setq pointype 0) ; WCS or ECS point values _* m- a2 J; k5 V
- (mode_tile "fit" 1)
! S" g* e7 k# ^: T8 E& x- J$ E - (mode_tile "mesh" 1)
4 Z: ~2 h9 e) E - (mode_tile "bezier" 1): b, U w) ], |% {
- (mode_tile "ltgen" 1)
* j% ]/ v" l+ O" |2 e - (set_tile "none" "1")
: U) Q6 M; g8 J; A3 v: w& s* Z' {0 G - (set_tile_closed)
) w' p4 i* T- m" U+ b1 b - (set_tile_fitsmooth)
7 Y- O E. L) Q! `" \ - ). v6 s7 `( f0 J: X* K+ m% f
- ((= (logand bit70 16) 16) ; 3DMESH
# h. o0 m5 s, Q. w - (set_tile "ptype" (setq pltype "3D mesh"))
" k0 W5 z7 H: X - (setq pointype 0)
p6 k5 L U! H2 k - (mode_tile "pline" 1)
& j+ ?( P7 Y. ~" z- Y - (mode_tile "fit" 1)
- O" V( _+ Q9 U0 Y- B! v2 T - (mode_tile "ltgen" 1)! F+ r/ c& a4 t) V& M9 Q8 ^0 \
- (setq m (1- (cdr (assoc 71 elist))))
' @0 a' r/ b# o4 x6 \) k - (setq n (1-(cdr (assoc 72 elist))))
9 N+ h' _; H# B! Y - (setq u (1- (cdr (assoc 73 elist))))
) H$ a+ ]/ [$ J N - (if (< u 0) (setq u 0))
/ @4 u$ k9 H ]/ S. \ - (setq v (1- (cdr (assoc 74 elist))))
" c' a3 Y) p/ k; |3 | - (if (< v 0) (setq v 0))7 F3 ?/ t4 ]! _+ G( m
- (set_tile "m" (itoa m))
, w0 Q( `2 |8 F* O8 ? - (set_tile "n" (itoa n))
- h6 ]8 l# Q+ N4 [2 \ R - (set_tile "u" (itoa u))4 @ j* K5 g% f" F* ~" z
- (set_tile "v" (itoa v))' }! X6 n9 K! c \) t5 `
- (set_tile_closed)
% P( k% b1 h' B+ V2 A, r) ]9 V - (set_tile_fitsmooth)* N# j( _2 S |- @+ J
- )
9 I1 X: Z1 b! D5 n$ N0 K - ((= (logand bit70 64) 64) ; POLYFACE MESH% H1 \8 e& K& `
- (set_tile "ptype" (setq pltype "Polyface mesh"))
( M! m% |6 e9 x/ U) R6 U - (setq pointype 0)2 h5 F2 L) u6 G) c
- (mode_tile "f-s" 1)) ^# f/ g8 u- U: k
- (mode_tile "mesh" 1)
0 f3 n* {; Z* M/ X# r; H7 m - (mode_tile "pline" 1)
! I/ {+ {% c" O0 c - )9 E" o. s [8 \4 V1 V* x! E
- (T ; 2D POLYLINE6 {! k! a/ S1 I+ q
- (set_tile "ptype" (setq pltype "2D polyline"))
% t' a/ V9 g& M' j - (setq pointype 1)
9 m- `# ?2 m8 c6 E, K8 C i9 E8 x - (mode_tile "bezier" 1)4 g- y( b. ~1 \
- (mode_tile "mesh" 1)
4 m3 _% ^. j! p0 r - (if (= (logand bit70 128) 128)
" K& `6 k. N. o( z9 ^3 _ - (set_tile "ltgen" (setq ltgen "1")), q1 W& R% c, O# Z X* o% U
- )$ ?' H- [* o. ^; m# Q) I
- (set_tile_closed)
C: Y, \/ y& X - (set_tile_fitsmooth)
4 R$ n X+ e4 S# c! R. c% W9 [ - )) A6 s! T' s% J& M8 N2 e5 z
- )
1 }% |& f* e* `0 e" u
2 P2 ]9 L# Q# ~1 Z& v3 k/ q8 x) E, g- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
5 k7 l3 `8 o2 p4 S - (progn
6 d6 T: ?# H6 b( A( l7 ~ - (if (not next) (setq vname ename))
* a- d0 a7 w" t$ J* K - (setq next T)
, I' c* j" g6 Q5 _8 N) S% N. s - (set_tile "ctr" (itoa (setq ctr 1)))
: ^' s9 S0 Z' u0 q4 g! v - (setq vlist (entget ename))0 g8 N* Q0 I2 h9 ?5 G. x1 D
- )
4 ]: B6 U* V$ p2 L2 c - (progn/ u* O$ z7 Y W" v8 M. Q* q. N
- (if (not next) (setq vname (entnext ename)))
+ k v" N; _$ k5 x3 Y- l - (setq next T)9 c3 v( Y3 q, J! w3 ?3 F
- (set_tile "ctr" (itoa (setq ctr 1)))
1 w, O+ t' q" Q9 h l - (setq vlist (entget vname))
1 D! ` z: @2 e$ G - ): a% I% j% z2 {1 u m& V. |* K+ t
- )' g7 f1 k& B- c; _+ O% ~
- (set_tile_vpt pointype)
/ m; T! J+ W1 Q, Q$ x G1 B - ;; Define action for tiles
4 C: I0 H% N9 z K( Y ^: q6 t - (set_action_tiles)+ O5 @- j; v: W0 E: x( H7 ?
- (setq dialog-state (start_dialog))
3 n' C1 H# w: o+ {' p. O V
- b+ V2 u+ @( _9 I- (if (= dialog-state 0)
- M; G, z) Y3 D4 @4 O6 s - (reset)3 \% M+ Y: b7 k! o* M: G
- )
# U9 E5 Z/ G( e( v& B - (if (= dialog-state 1)3 C1 |0 ~+ B& R- G) ]& R) w
- (progn9 V# D9 a8 V/ \, c
- (modify_polyline)3 q9 G; e6 J/ j& C/ m
- (if (or (= pltype "2D polyline")6 I, ]% V" Q Q" \ g
- (= pltype "3D polyline")
5 K( P# B' |2 @7 F - )
, T0 f$ e; z3 W; J* M% u: l3 g - (progn( R3 ]/ d7 [* S" i; B/ G& ]
- (command "_.pedit" ename)9 u8 a2 b2 q% m' A, c. F2 o7 I
- (if (= spltype 0) (command "_d"))
7 ]2 O8 ?/ e, ?9 E/ ` - (if (= spltype 1) (command "_f"))& Q. r. s: j: h& a
- (if (or (= spltype 5) K* ^" V% g4 U
- (= spltype 6)0 |! y; I3 H; h6 ~, u# p7 c
- ); ]% w8 s7 X+ t0 b T& s
- (progn
7 |. _* Q b/ S' G0 S. g5 x - (setvar "splinetype" spltype)2 ~+ M0 R2 p8 s1 b, w5 m& ?$ i! L* \7 ^
- (command "_s")& {% Z# v; Q0 \: [; |
- )$ Y; l9 p2 o) }- }# u
- )
! k# K$ b3 |2 s, `! ^; R& N - (if (= closed "0")2 W7 l" A' x$ B+ }; d
- (command "_o")
; X5 y* i" B E( E8 c; k - (command "_c")- @9 h1 s$ V+ v' j. n; W4 n: h' D
- )
8 {6 o" G- n# m" H+ X R2 O- s: p9 F - (command "")
j' Z' N/ e; V5 ^ - 0 Q5 b$ J. H; V
- (if (= spltype 0)
1 a- t" K0 y6 s+ K4 W k& f - (progn
' z& J' x8 ]# y4 a) H - (setq oldecho (getvar "cmdecho"))
" Z2 m \8 n: {' b3 ` V - (command "_cmdecho" 0)
. R8 P6 o" T1 k# } - (command "_convertpoly" "_light" ename "")
8 D, l! d2 F! v& K Y7 \ - (command "_cmdecho" oldecho)! x: b* V1 s8 D; ]/ m- H
- )1 x& B9 I0 H0 l% @1 O) ]
- )8 | Z' U. ]% [
- )& E' a4 ?* D& S& B ^
- )- P V2 w4 {$ d6 I8 A# X
- (if (= pltype "3D mesh")& \. R; z9 k' k
- (progn4 n1 M! G/ \: H* P
- (command "_.pedit" ename)2 Q$ M( Z; a7 U( n
- (if (= spltype 0) (command "_d"))% Y$ v8 C ^2 Y# s7 O/ y5 C) Z
- (if (or (= spltype 5)
F& Z) R. Y! a. j$ y" V - (= spltype 6). Z3 w" p8 e, ~" s5 e
- (= spltype 8)/ \, r { [& h* e& S
- ); v; P/ f) D" a
- (progn
1 o+ `! z! C5 e- S. I X - (setvar "surftype" spltype)4 }: H, D: |9 u7 {
- (setvar "surfu" u)9 \. F+ f9 x9 W2 T x
- (setvar "surfv" v)0 V2 K1 V3 s, P- U6 j% M2 ^
- (command "_s")
4 K# U7 p ]2 ^( W" f- l - )
& |6 d& R) _* T& t6 W, A6 ` - ): ?' C5 c, @' m( f% X% h# U0 m
- (if (/= closedm old-closedm)2 J8 i7 g& L4 ~: a. v% v: A
- (command "_m")
8 U* A# i [ H8 e( U8 M - )- ~+ j/ a1 J+ _7 g
- (if (/= closedn old-closedn)8 m* e. g$ s/ n8 M
- (command "_n")# X3 D/ p" N# D4 O
- )
# E' {1 M; Y: s- T _9 e( { - (command "")- p# ^9 |1 I7 j i9 V, S- S2 C
- )
* @2 ^% k. G5 p7 V7 A - )& u1 w/ u# t8 W1 ], S: r1 ?0 H& O
- )% z3 `! e9 o) G" O: ?
- )
% A/ ~2 m; O# L& t, U' X9 |4 J# ~ - ) k0 H V, j# s8 N) x6 |
- ;;$ K; x$ Y6 \: B# X- @! R4 R: `- a+ s
- ;; All the spline data is contained in a single elist. We must do some
. p. M5 b5 E: r7 y O: g - ;; tricky list processing to loop through the elist in order to display
+ o# L# S% G. b2 x: R - ;; all of the control points., K& D" E0 m4 \& @
- ;;
* k7 j( n. R$ g! H5 {8 @3 o - ;; The structure of the elist is different for rational and non-rational
. p+ u$ P& ^& ~( P - ;; splines. Therefore, we check the rational spline flag.+ _$ } j* {# e# T7 @/ F
- ;;
0 |- ~0 Z0 d/ C" I1 d3 d - (defun next_cntl_pt (); J' e; S. H) b
- (setq elem-no 0) ;; elem-no = element counter
7 T7 j' ?7 Q2 q - (if (= first-10-time 1) ;; If first time, find location of first
Z7 L1 K9 O7 u - (foreach list_item elist ;; cntl point element in elist0 V& ]# G: W; ]4 I" w1 h
- (progn+ c1 g' i# z; |9 Z5 r6 J
- (setq elem-no (+ 1 elem-no))* L" s2 \3 i' h( ?
- (if (= (car list_item) 10)9 z9 b, h5 X4 j2 E: T# z- z( k
- (progn
2 w* p2 R! p3 s - (if (= first-10-time 1)
: H0 D; l6 @ y( }8 E! _4 Q. b - (progn
# ^" b7 r {2 [2 H& P8 p# Y& |8 H2 Y$ k - (setq first-10-rec (- elem-no 1))$ n5 _7 [! `% E) q2 y; F% A4 s) F
- (setq first-10-time 0)
5 T' ~% b" O% L, l3 [ - (if (= rational_spl_flag 1) ;; if rational3 S) j# c/ ?" V9 Y& W
- (setq cur-10-rec (+ elem-no 1))2 ?* R4 P/ a6 d
- (setq cur-10-rec elem-no)
7 |5 C+ T; i& U, e - )
" c9 |. u, t4 I( ]& E6 p$ P - )- O% r# @6 S, t; Q. {% O1 z1 ]
- )
7 }" l9 ^/ ?& p; z6 W9 z - )
: }3 D. u5 w" `' ]0 ? - )
" C; ?# K# u; {! y - )
* u( E1 J6 _+ [1 H; S* `1 i - )
" l. K* W: b. ^( x7 \ - )
4 z9 T2 R; D% Z7 Q9 n - ;; Now we know the location of the first "10" record; it's stored
* Y. [2 M1 d6 C: \% [ - ;; in first-10-rec. The first 10 record was already displayed when
; \8 i* q; m) y- ~/ P - ;; the dialog first came up so let's display the second one when
$ W1 Q8 B# v0 u. k y - ;; the user presses the "next" button (the first time through).5 L* Q l: `) y$ y1 e* ], z
- ;;
/ }# G2 R# t/ L; [ - (setq temprec (nth cur-10-rec elist))
* c- C- H+ { P m; L - ;;
) a8 N7 F: ~) k' d6 B - (if (= (car temprec) 10) ;; if 10 record
1 h* Y4 s" P; }4 p1 a3 A4 W I - (progn
' b: b0 ~8 w( o1 E2 p8 Q - (if (= rational_spl_flag 1) ;; if rational spline1 h( p m! P, J% B9 L
- (progn
5 Z3 D8 B. H9 }: U2 V9 H; I6 X. Z: F! I- v - (setq tempweight (nth (+ cur-10-rec 1) elist))# }( ?5 X1 V' |, y, L
- (setq cur-10-rec (+ 2 cur-10-rec))% s! ~$ P; {, |" b
- )+ K9 j$ }& _2 X6 u+ N: E2 j
- (progn ;; else
3 g; V3 l4 j9 O; e# r3 x- C/ R. o5 p - (setq cur-10-rec (+ 1 cur-10-rec))
- T* l0 h; A; \. w5 L& y/ H - )& a1 r+ G; A( j9 h$ L5 `* a
- ), ^- b2 S7 x$ |+ J C8 Y/ A
- ) ;; end if rational spline
4 G$ C u* \3 E$ L - (progn ;; else reset counters$ A5 n+ y$ p" M8 x; {( Z0 Q, D/ ]
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec) b0 y$ [6 g2 J( O$ u1 V
- (setq tempweight (nth (+ first-10-rec 1) elist))
2 |; d0 A6 c d' K* ^' P. f - (setq cntl-pt-indicator 0)( J' n( t4 y: c( V5 {8 J
- (if (= rational_spl_flag 1) ;; if rational" y4 j+ Q" r- b2 O
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
+ Y$ x# O% S8 [. N2 I5 A8 p - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
) u2 w! P" n) R) x+ G - )5 R* Q( b, H% B
- )
; A& `: j) s1 G1 ]. C7 f - ) ;; end if 10 record w" @3 B8 M- g5 q7 k" l! t7 y
$ e* g4 m# v5 l9 Y- ;; Display cntl point, weight and ctr. Increment ctr.3 R2 y( {* b" n& n; c
- (setq cntl-pt (cdr temprec))
" X8 A5 R3 ^0 p3 F3 p - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
/ {. O8 M, F A1 s - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))( ]' F! H# w3 ~1 c+ T4 n
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
8 |! e# i" d4 H1 S! [9 v' U - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))9 ~, i! i y- f; O
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))6 B) |- _, F( P7 h$ V, d
- (if (= rational_spl_flag 1) ;; if rational% r3 u9 B+ o a
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
: V; e& S( D4 z1 u - (mode_tile "weight_text" 1) ;; disable wght) f7 j' ~$ [+ q. [9 F) ?3 j
- )- R6 Y5 H+ \# H+ g; v, W8 K; d% U
- )
+ R F( r4 V, f - ;;- w0 _, w& A. X7 n3 v
- ;; All the spline info is contained in a single elist. We must do some
, v+ U3 C. E& i. q; O$ u - ;; tricky list processing to loop through the elist in order to display0 ~9 F6 S+ C) J1 k/ o d
- ;; all of the user data points.
$ U% p, d+ E( \5 u' k3 S" q: @: q - ;;
3 j; [& D1 C! b - (defun next_data_pt ()/ \9 V4 q4 P) a3 k. W7 Z! r/ L: W
- (setq elem-no 0) ;; elem-no = element counter
" [0 t3 W* R8 [9 E. Y - (if (= first-11-time 1) ;; If first time, find location of first$ m4 D$ s+ W: D" y3 @" N2 y( A
- (foreach list_item elist ;; data point element in elist
% f! ]! G) R- {5 G - (progn
* `( Y- N$ p6 a$ V3 O% k1 p$ g - (setq elem-no (+ 1 elem-no))
% L3 E5 y1 t9 t% F - (if (= (car list_item) 11)
- I2 I2 R# r K. N4 s$ d - (progn- V$ u$ }$ p9 N+ J& M/ J$ E6 [
- (if (= first-11-time 1); ~. Z4 {! O$ R) [- a
- (progn
* V4 G# } Y: z/ _ - (setq first-11-rec (- elem-no 1))
! f& _% t0 N' N/ f - (setq cur-11-rec elem-no)+ B) C2 j4 l1 F5 F& h
- (setq first-11-time 0)1 u4 s2 {1 C& }: ~, Z4 H$ e0 c
- )
: Z$ f8 D' z( t8 v2 f' q9 y - )
* f+ [/ N8 p, i; y - )( _# U8 Z9 R; d& J$ ]9 S$ \! ~
- )
2 I. t C3 Y& c3 g7 E0 y D7 J - )
, @4 U3 ^& E3 o( G' }, E5 ~ - )
% o) X; K7 F4 i - )
. G# k( t) c( X8 S1 x; E - (setq temprec (nth cur-11-rec elist))( H# S9 L2 h0 F7 I2 E4 |4 ~4 I3 O
- ;; If it's not a DXF "11" element then we've gone past the last
8 L6 L2 P, j! N) n+ o# Z3 S - ;; "11" element. Go back to first "11" element. Reset counters.
# x3 B" c- Z+ q2 Z8 H, g - (if (= (car temprec) 11)
$ x7 z, l: L! C3 D; a. P' C. M - (setq data-pt (cdr temprec))
- a [3 a: x" Q* z3 z# H - (progn ;; else7 G; y' F, E/ W
- (setq data-pt (cdr (nth first-11-rec elist)))1 m$ F) ~! W8 P- n. S9 T
- (setq cur-11-rec first-11-rec)
) S# |! l0 D4 C7 F3 n - (setq data-pt-indicator 0)
9 j0 V' v4 P5 f& a; s" N9 p - )& Z* l4 y8 {/ D2 r& B
- )7 j2 [( y* `! C+ R( ?2 D
- ;; Display data point and ctr. Increment counters.
9 g, C# ?! Y. N1 x - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))7 y8 Q% n8 }( T, O
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt)))); |4 c) |1 Y3 X0 x, J: g1 C% v) g
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
$ }6 p% d f2 h4 g - (setq data-pt-indicator (+ 1 data-pt-indicator))2 U" N% R; d0 m. P' V
- (set_tile "data_ctr" (itoa data-pt-indicator))
% E) x+ e B0 D7 R( A1 Y1 G( J - (setq cur-11-rec (+ 1 cur-11-rec))4 y; F X" E+ s" p
- )
0 y0 c4 m# U8 L) x, i" _8 d3 d- Y - ;;) B* o* i7 s5 g0 m
- ;; Modify SPLINE) w4 Z: W# f4 N3 x9 Y' k) F) [
- ;;& v# o7 U( m2 U# y7 M$ W4 D
- (defun modify_spline ()/ M: c) A1 @* v" K& s# Y2 r
- (modify_prop_geom)
0 a u, ?" o: U* g, u3 G - (entmod elist)
6 O9 f. a+ @6 g. I0 G4 B4 a - )
7 E6 I6 g/ a% k. j- Y
: W8 K0 O" _3 y: v- (defun ddspline ()2 r# Y, ^3 f* c# C! h
- (if (not (new_dialog "ddspline" dcl_id)) (exit))4 `: z0 u+ [! `
- (set_tile_props)
3 t* E% {1 d' B/ ~$ K" A& F `' g z - (set_tile_handle)
0 \& R1 u3 l! {0 l - (set_tile_spline_props), v! l9 ^* N/ B1 G7 X# i. w
- ;; Display first control point
" r2 `; a$ p5 e- d3 [, S1 z - (set_tile_cntl_pt)
' S* u/ [; A5 [/ X6 p% l" C - ;; Display first data point
]- I; Y1 I7 ]" \' E - (set_tile_data_pt)
/ {- v5 u- ?4 t2 k - 3 M1 ^; t1 G; v% f3 y% G
- ;; Initialize flags to indicate first time through the dialog.
- p+ v6 C2 }. j, c0 Z- k. [6 Y - ;; For control points and user data points the "next" buttons
! d. v4 {# B; n0 ^, u - ;; in the dialog call the appropriate functions.* h; ]7 k# ]6 l; h0 q* O+ W! | N
- (setq first-10-time 1)- W& u% S# B9 A9 d7 f0 N) d& p
- (setq first-11-time 1)) |1 o9 Q; w& G+ j$ _3 M8 o6 Y
- ;; initialize control point number counter
9 Y: v6 x! B+ \8 `3 b" c - (setq cntl-pt-indicator 1)3 @8 A" G1 H1 K4 G: _
- (setq data-pt-indicator 1)
% F2 E/ k/ o* D) E - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
5 S8 I2 K* ?- ^2 S- E - (set_tile "data_ctr" (itoa data-pt-indicator))
6 w; o5 {1 J$ T; h- [6 v2 ^ - (set_action_tiles)
% n m$ ^ ^) y" V) p6 | - (setq dialog-state (start_dialog))+ Q8 s K2 M* r
- 7 {( j$ d" z) U3 Z
- (if (= dialog-state 0)3 q4 W- j; e# h+ a0 @1 }% r
- (reset)5 U! a) y3 H+ U5 A# I. |6 C {
- )& I+ M, T" l6 A* s( d: w
- (if (= dialog-state 1)
3 p1 N0 T% J3 q! N$ U5 d$ ] - (modify_spline): Q2 c; Y$ d( n0 D6 [5 y5 a+ P
- )
1 U& a' r4 |3 f; j' B* P1 r/ c - )* H" I) E/ L: U3 x
- 4 T0 k, A1 x" y5 R
- ;;
; ^0 p$ h" y: P4 T6 w0 o/ S - ;; Modify DIMENSION
( e, h) h# j& l6 X! j- V1 c8 K/ s - ;;
6 J1 M$ j' L, f% H" b. O - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
9 ~8 p3 h% A" t2 _# v3 H2 l+ A - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist7 |, K' C: L0 u1 V2 D
- dimtype dimsvcurset)
* ~4 V2 k* h2 N& k: @* ]: o - (setq dimtype "DDIMEN"# C2 e! u/ C1 b9 C5 B
- dimsvcurset (ddimen_dimsty_restore)
, ^( E0 i c3 q; h9 p/ H - )9 c a, I8 f7 \/ c' _* Q2 m
- (if (not (new_dialog "ddimen" dcl_id)) (exit)). G, j% E0 _) p# S
- (set_tile_props)& E. u f+ A5 q, L9 ]$ _. _
- (set_dimen_props)
& p+ ~, \; {; I# Y, ] - (setq dimtext (cdr (assoc 1 elist))), ~& Q* c" k' c8 X/ R5 n
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
6 ?! _* s" d, u# B" s% ~. d/ m - (set_tile_handle)
) D: V8 a" q! m9 |1 ^; u - ;; Define action for tiles# W% L6 |0 A! R! G" W
- (set_action_tiles)% |' I D4 N: Q7 a
& Z9 `, C8 H" B$ o5 d+ c- ;; Set initial focus to text edit box.3 ?" u. X, W+ c3 O/ G+ k W& W, ]
- (mode_tile "t_string" 2)% D. o" C, N; L& k. r" @( q4 _
- * k( {: `: \! g5 a8 l* F
- (setq dialog-state (start_dialog))& L, U& f7 P( P3 B) T
- (if (= dialog-state 0)
( a8 @2 c# R. }+ O+ A - (if (= ddimmt 1)
; f( Q: V5 [8 Q: o. @( @ - (reset). _( y/ o) b0 }6 u9 G4 R4 ~
- )
; x- m/ @( ~5 G6 w: _% F6 H - )
) s# ]' F* T' ]4 a) I - (if (= dialog-state 1)0 E9 P1 a7 R! A# u& p
- (progn3 O, z4 |" g2 h% J+ m
- (if (/= dimsty stname)
3 p0 F& {% ?5 R D/ A( y - (progn3 Z; Z ]9 `% @9 G- J% d
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case( v3 i( N9 a) {# b; ~. l
- ; doesn't have it.1 q( x* r" |; H# i z3 v
- (if (null (assoc 3 elist))
. {1 T' O' b, B3 V: O - (setq elist (append elist (list (cons 3 dimsty))))2 K7 v4 ~% A) c5 \
- ; else just replace it.- m9 m+ U" U5 h$ t6 r! P) S7 M, b
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
6 X7 n, }, ]0 \ - )
7 c: g I& y# e* Z! b* s# z+ G - ; refresh sv_dvlist with new dimstyle.
. q: j O5 X( y3 e9 `# T - (setq sv_dvlist (tblsearch "dimstyle" dimsty))- ^0 S& C- W0 O' b+ C0 X2 @# a
- )
/ H) l6 v& l& ]3 s3 R+ K" S7 w$ n - )( L5 |4 Y6 ]% _: e4 }% v
- (if (not (null dimlist)) ; attempted to change dimvars
* v4 m2 g( _/ b0 }- U3 r- a$ e. { - (ddimen_complist sv_dvlist dimlist dimtbl)
{% a0 _$ t: T F7 F. o - )$ @9 D/ M2 A5 K- x& C6 }# i z
- ; Modify dimension text3 K7 O, ]4 f6 s6 P, a. j5 f
- (if (/= dimtext text)8 O3 b- [$ X5 s1 P
- (progn
$ H6 A. U% @. O1 G - (setq dimtext (if (= text "<>") "" text))
; q. z. i+ r8 Z. A2 W - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))" I' U# z0 {# R; @
- )
- E2 {+ W5 q* |+ v+ C - )
0 s" `5 Y+ v& g- d - (modify_properties)
5 O$ ^+ Z) w8 @& Z } S; W - (entmod elist)
! H' f% s% Z7 K- [* g: } T0 V - )
( }+ ~4 ~# n, g7 G* N% L - )! J, I1 P6 O% H$ T
- (if (= dialog-state 4)
2 o- y$ Q; r, F; D0 D5 U - (progn& ~. Y7 M% I0 B
- (setq ddimmt 1)
. R& x: f% _+ l - (if (/= dimsty stname)% |# |% c7 T# [8 P" \* }2 {+ J
- (progn
+ ?$ W: x! l5 m v% V9 K - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
# m) }- [( d! C0 x" f0 i' Q - ; doesn't have it.
: V r" l, p9 N - (if (null (assoc 3 elist))2 e+ O9 M- K4 |* r; v" h" r
- (setq elist (append elist (list (cons 3 dimsty))))8 G6 E5 \! E1 c* G& Y
- ; else just replace it.
" M& y' g6 m1 Y) p& L, f - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
8 {! V, l, x" S) z4 Y% j - )9 A# O# \: ?5 j3 t
- ; refresh sv_dvlist with new dimstyle.
3 T8 k* A: q1 u9 B' ^4 N P - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
V, P' ]3 S. M% _+ ^% ]" a - )
6 M6 S, H+ s. d+ H7 |% J4 u6 M - )& u8 A! c) R( ^+ ]+ G) h& a/ v: }% p
- (if (not (null dimlist)) ; attempted to change dimvars
# P% g. Z) K. F7 I4 V - (ddimen_complist sv_dvlist dimlist dimtbl)
1 |* I9 p( S% \( ^4 S - )
9 R4 A* D# h$ [! M7 I - ; Modify dimension text
, v- D# R/ m5 ?. u& n! ^4 I - (if (/= dimtext text)
" Q" J" k/ f2 w( m6 @1 ]1 Y - (progn8 r u8 E0 [ A5 }. G8 K2 {" X
- (setq dimtext (if (= text "<>") "" text))
" s7 l$ {8 a* f) ~ - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))( l7 d0 J- U S. r2 W
- )) T/ \3 H: h4 {, p- W- |1 V
- ), C. c2 J: [9 Y* o
- (modify_properties)8 A- O$ H1 y; B
- (entmod elist)! W! k* _$ a! y( `1 c* R9 ^
- (safe_ddedit ename)# D: V$ S9 F. o# X0 f, R* P
- (setq elist (entget ename))
2 n6 Y1 d; Q( b7 R4 z! K* y) F - (ddimen)
) E3 T, [ W: _* i/ K - )6 f( X" B) b- l6 C
- ), u/ g& T3 l+ B) n
- (ddimen_setvars dimsvcurset) ; Prepare to exit
* E- z. l! M0 }+ r9 [, y - )
8 Z% c) c9 `% b9 a0 N) j - 4 P; f* N' W: H' {: s* [0 |3 U
- ;;/ P9 H6 \! e0 b. }5 X
- ;; Modify TOLERANCE6 R6 ?# s; D$ q5 I; ]& X
- ;;
9 W4 c6 O1 n" e% i6 ~( j - (defun ddtolerance (/ a stname n dimtbl+ a, [3 x/ y3 Q/ o3 O
- dimsty dimlist dimovr sv_dvlist stlist dimtype
6 a4 U8 q, Z3 \( |! G - dimsvcurset)6 k# b; f$ [; P4 p5 i
- (setq dimtype "DDTOLERANCE"
$ A$ \; D" f& E4 Q - dimsvcurset (ddimen_dimsty_restore)
1 ?( ? u% Q* M* h1 M: a - )
1 `' A' X& w! U! q - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))! S7 Q d: S6 p- M: R' [, I1 j5 p# f" c2 t
- (set_tile_props)
, Y! s# C# C0 l - (set_dimen_props)
S: K4 r9 U X+ Q - (set_tile_handle)
5 J# h" j% g/ H; s4 w$ R0 L; \ - (set_action_tiles), }( L/ t2 }9 e
- (setq dialog-state (start_dialog))
+ w% ~4 ]* w* j4 [3 L - (if (= dialog-state 0)
: i+ l4 P- @* u9 e, c+ Z0 Q - (if (= ddimmt 1): ^6 I4 ?0 L9 p
- (reset)5 ?- S9 W. d% D9 u) a/ a
- )
, U" F* [# Q) {1 i. r) N - ), e" M3 h" v, }5 C
- (if (= dialog-state 1)
0 j+ l8 G1 N* w. t - (progn) t8 I, p* k: I
- (if (/= dimsty stname)9 H" K( l! x+ R! |! B' J. X% Y2 }- `
- (progn
( s: b* Z p/ R/ ` - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
! n9 z/ w% i. w- L - ; doesn't have it.
* e/ Y* m3 J' z: g, k - (if (null (assoc 3 elist)), Y# u5 @. b$ d, T& S" F$ J
- (setq elist (append elist (list (cons 3 dimsty))))
* M) T$ ^ Z2 d: y" J6 t; } - ; else just replace it.' D& b+ F- o" Q$ x
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))& N5 `9 n$ G H. y& g
- )
( l9 X* X5 }7 U. A; T6 C$ ` - ; refresh sv_dvlist with new dimstyle., ` z0 |$ I/ c9 x0 x
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
, s: u0 i$ x4 O - )
4 h( P( C$ X4 @0 m6 ?3 x - )
' K6 B% V! J' i' C - (if (not (null dimlist)) ; attempted to change dimvars" d4 Y5 X, o' H, y2 s. ~( X, e% J$ m
- (ddimen_complist sv_dvlist dimlist dimtbl)
, U+ y' W& L; r! c - )& v; }8 Q0 s+ E; k+ x
- (modify_prop_geom)
2 [$ p; u5 V+ v6 P3 ]$ H1 t - (entmod elist)
3 U3 {% Q- b4 [2 h - )
( @ t: k0 n6 r$ u# {1 k) j, @! b - )6 x5 s. ?# F! ^- n( Q
- (if (= dialog-state 4)
4 A: ]3 j2 d/ U# e7 ~5 \; P+ a) W - (progn: x" \& h. L" x% z
- (setq ddimmt 1)* J( Q. [0 I: I' d9 C3 W1 R7 V
- (if (/= dimsty stname)1 X" A2 S( P' Q+ k
- (progn
- U8 t5 T# w" a+ [+ J/ r5 E( d - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case# C$ y* }8 \8 u- @* B
- ; doesn't have it.6 e, a" o9 A! g& S9 y0 w
- (if (null (assoc 3 elist))# k% _% W4 o5 e `1 G
- (setq elist (append elist (list (cons 3 dimsty))))
) M0 W% P6 @3 a. M0 D8 m$ T - ; else just replace it.
& v+ u: \ c3 g6 T: } - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))$ T" f0 ~! @+ h- f6 j
- ), _4 x7 v/ b& {7 w" y& o
- ; refresh sv_dvlist with new dimstyle.
% @' {0 I% D/ T q9 A" ]7 v' z - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
* w4 v0 f, z" d6 r/ s - )1 L% o7 j( r l! O: ? V& ?7 d
- )
& a* S7 }2 [$ X3 }) V - (if (not (null dimlist)) ; attempted to change dimvars& V! Z* o; J3 g8 b
- (ddimen_complist sv_dvlist dimlist dimtbl)$ W) b, x( R, Q. I9 v) _+ d
- )
& N2 u2 h2 ?$ d7 L - (modify_properties)* w$ e+ c2 q% x
- (entmod elist)8 W. z+ Q8 R2 Z; @# {3 c2 f
- (safe_ddedit ename)/ ?- R# Z8 x+ ]. E1 r2 K2 T; o
- (setq elist (entget ename))" D2 U) a: X: \+ k
- (ddtolerance)! X# ?5 G( J) Z
- )
- r4 B( v2 W6 t z2 [8 d/ u V; @; u - )
+ Y4 W, E; g4 s* n W# O - (ddimen_setvars dimsvcurset) ; Prepare to exit
3 R+ I# Y# _8 ~) X; e1 g - )& k. E5 f {4 y1 ?$ ~; C6 L* @0 p
- / @3 r4 S! E0 D }
- ;;2 ]; ^* s2 T. j/ M
- ;; ddimen_dlg - jump to ADS ddim module; }5 e _% z2 a
- ;;; _8 H) K7 V- N! R, U& N" _
! H) b P) s+ P9 x4 E2 J( b& ]- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
+ N1 N, N. n1 u+ ^' R* Y
" F7 ~9 J8 E1 e! q9 |; a& c) ~- ; Jump to DDIM with overrides if any.
1 \5 r9 f5 w# m6 g% K# n* l1 ? - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
8 M7 j, y1 C b% \$ J' b - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format6 p# Y# T0 {0 \
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation5 H# f/ _0 L0 p, n! @; ^( ~3 I8 V9 L
- )5 t9 b% X" P3 \$ c& ]$ H+ @
- ): f4 V# V, Z) x$ N" Q# o5 Z! @0 h
- " A2 j8 `) A* t) B0 V
- ;;
. {: _% {; i3 Y1 ~2 Y1 ` Y5 Z" E8 B - ;; Dimension variables updated are stored as overrides.* e, X1 [8 K! m9 u
- ;;6 x) @8 w/ W9 J- U! e0 g/ m
- $ f* C" P9 x8 B ?: d- U v8 L
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar8 q# B8 m) _$ s; S- k$ e4 v+ A
- dv dime commandIssued)
$ k. |1 ^0 a' U3 }" U - ( Y: k: H6 b( ?8 D
- ; Here we skip the following first three items:( a' O; ?/ ^+ C) e, q, `
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)* W/ a3 ?1 S" T+ B" z
- ;6 p6 m$ P" C, b, R8 k! a! {
- ; The list comparison immediately begins with dimvar.# e. j( j# \6 o4 e0 F
- ;
- K& v- P. A% A; L) e - ; dimolist - original states of dimvars
$ j3 q: H: _: m2 W' Y - ; dimnlist - new dimvar list which is of the resbuf's& j1 y' ?* N8 @9 \* h, R) \
- ; dime - entity name for the dimension
6 U& p/ U% o) P3 S1 L3 T' p* N - ; odvar - value of dimvar for the dimolist
- A" a( F1 F5 @0 ^, [; y - ; ndvar - value of dimvar for the dimnlist
* Q0 W3 g" J! q" Y! y: t! q# ^! ~
0 q% S- N+ x7 o6 Z+ `0 {4 d- (setq i 3
2 h/ @6 w; s1 v, ^/ x* X* Q: L - dime (cdr (assoc -1 elist))
$ O; v( a( o: s1 n - )
/ {/ U8 J- ?7 W* I' z$ H( p - (while (setq odvar (cdr (nth i dimolist)))
+ n i7 V1 [. A1 H$ [! e - (progn
3 Y9 s* _7 F, A6 r1 k: Q! Q/ _ - (setq ndvar (cdr (nth i dimnlist)))7 J/ [& g- p! c! h5 w+ U
- (setq dv (nth i dimtbl))
& r6 d5 w& c% f: T t- Y - (if (eq dv "dimtxsty")$ U* W) O2 P$ N; H" h( f
- (setq odvar (cdr (assoc 2 (entget odvar)))
0 I+ H) A9 U/ k: J1 d7 A8 l/ d - ndvar (cdr (assoc 2 (entget ndvar)))
7 a" Z% J& M7 Q$ ~) F0 _8 C# Q - )
3 k' ~# m! g8 l - )( W; W1 l9 d D g2 r. l
. n6 b! T2 r" X& l$ O* j- ;
$ [5 S0 k! A1 O5 m' b! S - ; In order for DIMOVERRRIDE to operate correctly with string) T& t$ ], B, f4 j4 T
- ; based dimvars, we must pass "." versus NULL strings.
1 C" ^/ n' x; a; u - ; In this case ndvar is the new dimvar value the user wishes
d! ?: d- d+ H. C! X8 ?: j - ; to update on selected dimensions.
4 Z5 a3 w, U: h - ;
( Y- H' G' D+ O7 U0 B3 z ` - (if (/= ndvar odvar)
5 `' V( s$ b1 ]7 |4 E1 E0 b - (if (= 'STR (type ndvar)): T% B; q; ?* g" m
- (if (= ndvar "")
+ G( p( |- l/ X0 x - (setq ndvar "."))))
2 C: P6 f3 w& d1 K& g. [% b - . W5 a% K7 r# [/ U- [7 V
- (if (/= ndvar odvar)) N/ e% {' D& P4 O
- (progn
8 b7 i" B1 I5 K* o1 b, H - (setq dv (strcat "_" dv))/ {/ A+ F9 k/ j4 g
- ;+ `' j+ _9 N" G5 T8 j- N0 n- V
- ; Start the dimoverride command& J; W/ Z* H# l% h- U: t/ I
- ;; ]1 A- p5 Y- d3 e6 Z. |% l
- (if (not commandIssued)
3 y7 k' `" i' a: M - (progn7 U4 d( U3 ~& d" k1 L9 D
- (command "_.dimoverride")8 o4 ]! L6 V0 D
- (setq commandIssued "T")
0 j* Z8 Q3 y" q* m9 H4 K5 O, l - )' k3 k7 c4 ?; p( E# E9 `
- )
5 a! h" f* ^( A: F: R- i - ;% K2 T2 R5 E1 D9 M3 N
- ; Issue dim overrides0 }, h) {' l) t u% q) f! e5 v
- ;2 v9 z, _7 q: C( }
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
) @. y5 N7 `; a P5 R - (or (= ndvar 0) (= ndvar 256)): K* U" H' Y3 W) m* ~
- )
! q' e7 N _* }% a$ X - (progn0 K! \, Q& t) S) M
- (if (= 0 ndvar) (command dv "BYBLOCK"))
/ {& Z( n4 r. l8 n$ W# e: w5 \ - (if (= 256 ndvar) (command dv "BYLAYER"))
/ G4 ?* z ?# x0 i" ? - )+ S p5 l8 t: S* ^# b9 a9 h! y9 Z
- (command dv ndvar)4 X7 s2 { ]* u) v0 o! _ J
- )( Y3 E# G( J5 {2 J
- )! A/ X4 z& d" ?" i+ S' o
- ), f! d( j3 G, b) v& V1 ?! C8 E
- (setq i (1+ i)). C- ~# [& j) u
- )
# j& M" q, Q" q! M0 I( t - )
: I3 z2 O; z% y( p( r3 U - ;! h. a( e/ B. A) i4 D" T; ~% b. k( q
- ; Select Entity and terminate command
7 } s% r% C; `- g9 o. r" [" K - ;
4 a2 _: g E( _3 K& ?7 v - (if commandIssued
) t+ C* X) n& K5 z# D7 _+ H% } - (command "" dime "")
, u, q0 u% H8 [4 V - )2 k, ~0 l- R' h6 n# u" @* z
- )! y: T1 _3 z ~/ M
- 9 e4 k4 b; ~0 O7 x/ }# H' z4 ^
- ;;, D/ Z# [" d0 t0 z4 z
- ;; Get style name currently selected style name.
% M6 C2 c8 E& G: q6 J/ D% V - ;;
8 z8 s6 p7 Q8 F# v; R" j) g$ V - 5 q2 P4 F/ {1 E( T
- (defun ddimen_style (/ dimsty)% f' T' A5 ?8 k% U) l
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)3 o9 _' b4 \+ S5 O: n# m
- dimlist (ddimen_getdimvars dimsty)& b8 ~7 x% `9 H2 P: B
- )
! |% w+ s; \$ V! a/ Y0 M, ~8 U - dimsty
" F2 H" p" o1 F6 E2 Q! e - )
7 b4 ~2 w, x4 t8 ~. J2 r
0 _/ x# M3 U* q3 F- ;;
6 Y2 b$ {0 ?4 ~) L# x5 W$ D E$ S8 O - ;; Set dimvars
1 J* [* ^5 c1 M( ~9 W) J: u - ;;) A- A$ T& ~' x! ^+ j7 p6 ^
- (defun ddimen_setvars (dimsvcurset / dv i)
; E& f+ s! t/ x& t9 B; t' g - (setq dv (cdr (nth 1 dimsvcurset)))0 @* R# G' B S) J* t
- (command "_.dimstyle" "" dv)
7 ^" L% [8 `; m: j6 u, V. p( R - (setq i 3)% v8 t& e( ^9 x1 ?0 A
- (while (setq dv (nth i dimsvcurset))' ]! M. E7 C$ ]+ K ?: b
- (progn
}& S! g; K, J$ G8 p - (setvar (car dv) (cdr dv))
5 R. \& a. o; T( }& w - (setq i (1+ i))
& t8 ^' h. ~5 ?9 d( p - )9 Q' R6 N' @' f; B4 r: n- b
- )
& E, h$ Y7 Z! y7 @% H - ). c. u' q# Z. {7 f' n( j. J e* v. g
- ;;
; _! H+ j, r* E, @1 c - ;; End-of-dimension
* r9 Z% S" [3 _' X" } - ;; ==================' B; @) v% z4 i; [* }% _
9 k8 t- j2 _! a" W! Q% C- ;;
5 ^) n$ S- P0 G% v+ y% O$ S - ;; Sub-dialogues for properties. Common to all object dialogues. t" H( t" Z8 O6 |) d) x
- ;;
: n1 a1 K2 }7 F* N$ g - ;; This function pops a dialogue box consisting of a list box,image tile, and# |: h" N3 o- K& U9 _" `
- ;; edit box to allow the user to select or type a color number. It returns8 b: W1 G; A3 D
- ;; the color number selected.5 F X/ d' W( |/ F
- (defun getcolor (/ old-idx colorno cname lay_clr)! c# y2 n" G+ \ P2 f0 E t
- (if (= (get_tile "error") "")
/ I8 l! Y, y. f' b) k: A - (progn
* `) H7 i1 p5 C$ ^! i/ J - ;; Get the color associated with this object's layer, for use/ U* Z! b t, y# c/ L ?
- ;; in the color swatch if the user selects color BYLAYER.$ R, u. V) E4 H- [1 z) u; X( o. t
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))! ?4 U. ]& u" B5 X0 s
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
o3 g& ]: z: Q( l: E2 ` - (progn
! A5 y& V4 E/ C& m. U - (setq ecolor temp_color)
# D1 `- [% H6 v6 l9 g) ~ - (setcolor)) Q3 d( e1 J/ b/ i4 @3 u. J
- )
1 Y7 ], }: v0 ~: J5 |5 |* v - (setq testcolor temp_color)
5 d; F* |- R# a+ u/ L3 W - )# j* y5 P' x; F) N1 X2 l3 X
- )
( p: I$ Z0 i, k R. h; Z - )' e8 s2 k% e# T9 D
- ecolor
W; e& v3 A9 l% e - )
4 e+ N) |5 L) ]$ w7 A - ;;2 ]1 R% h2 X7 s1 [# n" u
- ;; Function to set the color tiles.' J% x# [! p& Z3 P4 A* O3 d4 g
- (defun setcolor()) Y3 ]/ K4 I8 R5 {( i l
- (cond
- t8 w* Z0 S4 S* l6 Y - ((= 0 ecolor)# K5 L$ I$ Y8 U! c m+ M) \( Q
- (set_tile "t_color" "BYBLOCK")
# A9 E, F& H% Z' o# H E1 Y9 ?+ ? - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
! {$ f9 g( A, l! u& ?' \; m' L - )
% R$ n+ ~$ W+ U" E% k - ((= 1 ecolor)
% t* q+ J I! ~' q0 Z - (set_tile "t_color" "1 red")- c4 {. n. r9 x3 z
- (col_tile "show_image" 1 nil)
! Q# M" |2 b0 T9 T" a) W - )+ e+ c6 H- u& e' Z& d [2 Q4 p
- ((= 2 ecolor)0 `) M @# H& B0 E( s u8 B
- (set_tile "t_color" "2 yellow")
. I: |8 r. c; O2 p1 T$ z( e8 A! N; } - (col_tile "show_image" 2 nil)! J% G" j1 @4 B% U9 |5 k' e
- )& l" R; a0 q( W$ e: ]
- ((= 3 ecolor)* M4 `% s) P& R2 y
- (set_tile "t_color" "3 green")
; }8 m8 ~- V3 `1 A1 H - (col_tile "show_image" 3 nil)
* a* A' I: a# j. x; b$ W; J5 e% Z1 o - )
; ~: @1 I+ y! \ - ((= 4 ecolor)
6 r; f/ w# o" L) C - (set_tile "t_color" "4 cyan")
6 h5 ?: z$ I# S0 A - (col_tile "show_image" 4 nil)
9 E& ^; v- P# l - )8 Y# O2 s! H2 j( {& c) P, K
- ((= 5 ecolor)
+ z3 |- v1 {/ O! v2 v, o - (set_tile "t_color" "5 blue")
4 I N: t; U" ^7 c- ? - (col_tile "show_image" 5 nil)3 o; G# T7 ^8 r8 S
- )
% @3 U6 z: b' q, I; Z5 h - ((= 6 ecolor)
2 s! X- @- C. }( r) k, Y+ b - (set_tile "t_color" "6 magenta")' }+ X* f$ C0 H7 | r; u; o! l9 M
- (col_tile "show_image" 6 nil); d) D( i' j0 Y9 \/ i" k
- )5 b3 E+ }3 s! r3 D2 u% z( m# \
- ((= 7 ecolor)
% L4 v* c% j0 h" g% ]: T - (set_tile "t_color" "7 white")
& X$ \+ t6 d& X" N* J - (col_tile "show_image" 7 nil)
5 }9 ?( k. B; c$ B - )
! E4 A7 E+ {# X: V R3 }4 G - ((= 256 ecolor). }5 f& E2 Y0 M1 z' ?) |7 ?
- (set_tile "t_color" "BYLAYER")
. D, o# d7 K8 i3 n - (col_tile "show_image" (bylayer_col) nil)9 \/ c. I; |' ~$ q! G
- )9 T& J# G$ z) ? s* F
- (T
7 b5 n2 \7 S1 A - (set_tile "t_color" (itoa ecolor))
( }& t: z' }) B: {" w - (col_tile "show_image" ecolor nil)
/ V- w; i3 F0 o) u - )$ ~( O/ i3 K4 n7 R/ `" \; j
- )
G# }, C# b0 b% q& u7 q0 ]$ [ - )
: o2 I& N3 T7 V; ~+ ? - ;;' b7 E* V# b0 o( t
- ;; This function pops a dialogue box consisting of a list box, image tile, and
" E# {/ Z/ h7 m - ;; edit box to allow the user to select or type a linetype. It returns the- P7 T1 P, }1 ^$ x& P3 K% ?8 s
- ;; linetype selected.
5 H8 P9 g8 N! @3 w6 K - ;;" V! I D7 {- a. r
- (defun getltype (/ old-idx ltname)0 ^ e$ _5 _3 y. d! d; T& K
- (if (not lt-idx): v" @0 X2 d( M6 ~* ^' D J; I
- (progn
) y/ [4 w3 o/ _1 N, @ - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist H3 t* ^* Z D2 A$ h) E! J
- (cond
* \" }- K# @% z. P" S# A( W/ _ - ((= eltype "BYLAYER")
% r0 }( v y8 G8 v8 W ^ - (setq lt-idx (getindex "BYLAYER" ltnmlst))); u* c* s" S% Q' F. u8 t
- ((= eltype "BYBLOCK")2 Q4 a2 z( _: r1 D8 S1 g
- (setq lt-idx (getindex "BYBLOCK" ltnmlst))): y4 k/ r' ~9 x, K9 L
- (T (setq lt-idx (getindex eltype ltnmlst))), |& P( ?; Q6 R `
- )
0 {6 k$ e: A+ q: m' x - )
- h: v! ]: M" c; S6 C, N - )
" e! v5 S7 a. p; e
) h7 T& [+ Q- z0 B- (if (= (get_tile "error") "")- Y. l5 p% A1 g' g6 i6 b3 G; ?
- (progn
, b$ Q* L: Q( \* }/ G) W - (if (not (new_dialog "setltype" dcl_id)) (exit))
5 t* c: m- A% z: D - (start_list "list_lt")3 n5 w6 ] [7 c
- (mapcar 'add_list ltnmlst) ; initialize list box
$ d8 o' v* x( @0 ~5 x - (end_list), y8 e2 k; v7 C9 u. b2 {
- (setq old-idx lt-idx)* R( s9 X7 c5 }7 [- H
- (ltlist_act (itoa lt-idx))" W4 H5 G+ L( f& ~" f3 y8 }- \
- ' S5 K0 B, F7 Y# L h# q
- (action_tile "list_lt" "(ltlist_act $value)")* ?9 M1 ^: [* u3 J3 w6 p- r# e
- (action_tile "edit_lt" "(ltedit_act $value)"). _5 P( g: ?. \, ~
- (action_tile "accept" "(test_ok)"): E8 j0 F) w, c- }, }
- (action_tile "cancel" "(reset_lt)")) X6 }0 R4 W. _) H w
* l) W) e' g% ~7 I9 ~- (if (= (start_dialog) 1) ; User pressed OK$ k: J% {3 M4 x, T
- (cond8 d3 g8 C2 C y
- ((= lt-idx 0)# N, ~5 {+ q2 L+ u/ y4 q
- (set_tile "t_ltype" (bylayer_lt))
( x N# F: m. H8 W. V - "BYLAYER"
7 e6 M* }5 X- s: S: N: X" y - )
( y7 K! f* o) k% Z8 t( C7 K - ((= lt-idx 1)
. L0 m. T& a! E) T3 q0 u: f- d - (set_tile "t_ltype" "BYBLOCK")$ h: v$ z& P8 C) X7 [
- "BYBLOCK"4 i# G7 \3 @; h7 U0 m+ [3 r
- )* X" P0 e4 ^8 Q' X8 j+ ^
- (T (set_tile "t_ltype" ltname) ltname)3 C8 b" d% K+ a& f, U# u/ B
- )
* X, z5 u: @ \ - eltype
6 h. H% \9 i3 T6 { - )$ x* N2 P( ?" F' [- z0 _2 L3 A0 M
- ): j! ]' ?4 F. R( S
- eltype+ C) V# [2 ]; R( M5 [! p
- ): p% e7 e6 c" \: Z3 s
- )
& j2 d: r8 Y+ x9 c3 a- I - ;;' Y/ {0 Q0 c7 t! U- }
- ;; Edit box entries end up here5 c' X$ p0 C( r& J# ]2 z
- (defun ltedit_act (ltvalue)
+ I) ~, m# L6 p - (setq ltvalue (xstrcase ltvalue))+ P! N) W+ o3 F; ?2 Y) `: u: S
- (if (or (= ltvalue "BYLAYER")( y6 h3 l3 B( F2 J. y
- (= ltvalue "BY LAYER"))
+ a! a1 ?! F& `, B - (setq ltvalue "BYLAYER")
" V- v) b6 b4 b* T - )4 X) ~" R Q6 W6 Q# P
- (if (or (= ltvalue "BYBLOCK")
' u5 \& g) g; k; @8 E" D4 ?( p4 [ - (= ltvalue "BY BLOCK"))
9 l m: l+ R) Z# X- V - (setq ltvalue "BYBLOCK")' D, i7 u1 g6 w
- )- B3 Z6 w- R V L( ]: g
- (if (setq lt-idx (getindex ltvalue ltnmlst))
9 B$ a7 D6 o" S' q$ _- F3 [ - (progn* L- p8 K5 [$ _# C& u8 l
- (set_tile "error" "")
8 v9 y& X* Z2 k5 L. c - (ltlist_act (itoa lt-idx))
+ V: `. a! i7 J3 o; ?& O' B" U/ K! x - ), T2 @4 k, E" ~4 j' g6 Q: |
- (progn
; o! t6 X9 [# a6 N5 c9 |& `; X - (set_tile "error" "Invalid linetype.")
+ Y7 h1 `5 M, f7 C j - (setq lt-idx old-idx)9 u+ W _6 G) v7 V) @
- ;; (mode_tile "edit_lt" 2)+ P+ k6 F8 [+ o9 _: r& i
- ;; (mode_tile "edit_lt" 3)+ e3 T# H- G, J9 W
- )
: y" H: Q0 U/ C" A6 {+ e* u9 i - )* Y! L+ }5 S/ t, d V/ \
- ); u$ O; r: ~# r, r: d7 I0 d; t2 o
- ;;
2 M! k% v! x0 [ t - ;; List selections end up here. Update the list box, edit box, and color
- C. x- w" B( S1 K( V: R - ;; tile.
/ E& K, d N& H! l. f. y - ;;( M' r, Q" |$ \9 Y1 {. h2 _
- (defun ltlist_act (index / dashdata)
* P, X% ^, U% A* ?0 C - (set_tile "error" "")8 A/ w" R5 y& t; V$ `# e1 X
- (setq lt-idx (atoi index))2 X) r+ f. F" ?0 f# K
- (setq ltname (nth lt-idx ltnmlst))9 N0 e* C4 P7 A) J. f
- (setq dashdata (nth lt-idx mdashlist))
' F* y; f4 p3 B/ P$ V - (col_tile "show_image" 0 dashdata)
0 {8 p1 t2 y2 d! ^) H; h - (set_tile "list_lt" (itoa lt-idx))
, D2 R8 C7 N% _6 e! R, o - (set_tile "edit_lt" ltname)9 ~/ M5 Q H* _* }7 G% E
- )( g( O2 U( j2 a7 t3 |) V. V0 U
- ;;6 S5 N, {3 z7 A! t7 L1 j
- ;; Reset to original linetype when cancel it selected9 |7 C; ~4 U& g2 ^
- ;;% E4 X+ u5 }# y2 V+ i" I( }
- (defun reset_lt ()
! v- M/ ?1 _6 K P+ j; o Y } - (setq lt-idx old-idx)( d) w, L6 j" l3 ]9 W
- (done_dialog 0)
: l! t5 r. f) r0 E( @* a - )
4 j Z: A9 S6 t( w2 E$ J5 B, Y - ;;
: t8 I' X' ]; n8 I; U& [1 {) l - ;; This function pops a dialogue box consisting of a list box,image tile, and
: B3 Y3 G# U# `9 {; m% K - ;; edit box to allow the user to select or type a layer name. It returns the3 w: \/ X, h; R) w% V- z1 s
- ;; layer name selected. It also has a button to find the status (On, Off,
+ ~3 D2 G0 c e: R3 ]9 t; A& y4 ]# ` - ;; Frozen, etc.) of any layer selected., \- N# |* v/ r5 C7 O0 R4 _
- ;;
! I; p( j$ ]; o0 F' m - (defun getlayer (/ old-idx layname on off frozth linetype)
% x/ v% q! c4 s* g. L - ;; Create layer list the first time the layer; O8 g5 b' K: ?6 {& m% k: A
- ;; dialogue is called.
! U* C. j2 q' t: _! z0 m2 B0 t - (if (not lay-idx)1 @5 R% H! H/ ~
- (progn
0 T# q: }8 B7 k$ F( O - (make_lay_lists)) f0 I8 w+ C4 @- a! V
- (setq lay-idx (getindex elayer laynmlst))/ D5 {$ e8 z4 S; ^
- )
0 b v4 G$ `& J2 V. A0 n - )
9 \' I4 o. L2 J7 b2 ` - 7 m5 `/ U' k) u0 Q2 H; E
- (if (= (get_tile "error") "")* a* L4 H6 L/ s' ^, @( w
- (progn
+ p, S3 e2 t# ]3 U- ^$ M0 i - (if (not (new_dialog "setlayer" dcl_id)) (exit))
d$ R" X r5 G9 P. X - (set_tile "cur_layer" (getvar "clayer"))
( I* H! ?1 R. |8 [6 H# M | - (start_list "list_lay")
) y2 V1 |0 _3 K6 e( s/ @2 x8 [- i% y# G# Y - (mapcar 'add_list laynmlst) ; initialize list box/ _. d; I: X' r3 w6 w
- (end_list)
( Z# j) @- ?9 }5 m - (setq old-idx lay-idx)" q( @9 s2 L/ I
- (laylist_act (itoa lay-idx))
: Y5 k' r6 u) H# U - (action_tile "list_lay" "(laylist_act $value)")
$ ^4 K+ q6 e+ L9 v a - (action_tile "edit_lay" "(layedit_act $value)")
6 m: G4 H6 h0 ^, g) n. O3 s* z - (action_tile "accept" "(test_ok)")
# g/ G2 C# w# @0 ?: p5 g% a. ^3 p% F - (action_tile "cancel" "(reset_lay)")
, G# U4 |. h. o - (if (= (start_dialog) 1) ; User pressed OK
+ ^: s! L: Q* q9 N& n$ M/ Z/ ?/ G - (progn
4 ?7 s5 R2 Q1 z7 T C% D - (set_tile "t_layer" layname)
% i- O. V5 _0 N8 A0 h, j - (setq elayer layname)
+ T& z& n0 q/ y' h. T7 X1 E: s/ v - ;; If layer equals bylayer reset color tile- t" C- f, ~ n% l
- (if (= ecolor 256)
- G, V8 K( t, }8 D! ^2 J - (col_tile "show_image" (bylayer_col) nil)& O. }# ~8 T' }( [ U
- )
9 ` g* n! _. Y9 d - layname
8 D0 o% W8 j# D/ u: n4 I - )2 k) p! z$ c, \1 f$ X3 p
- elayer; r$ l2 b, ~8 O# @
- )) U- d/ W2 c- {% ]8 }5 a( D
- )
, X/ x6 u6 b& x. q# E2 X; u' Q - elayer
+ ?% G$ I9 P0 `* R - )
5 d- f3 V- \; X1 Z; Y7 y( J - ): L; K6 L5 J" M
- ;;
3 X9 ^4 C! P" r - ;; Edit box selections end up here. Convert layer entry to upper case. If- S1 y9 S# W2 o% Y! f- S+ |, @2 m
- ;; layer name is valid, clear error string, call (laylist_act) function.
! o6 r. {, E. M6 @% x$ w - ;; Else print error message.
5 X) |4 z+ j% a9 M1 { - ;;5 w2 j. R/ P9 {9 V A% i; }
- (defun layedit_act (layvalue)9 X6 ~/ x6 x1 d# B
- (setq layvalue (xstrcase layvalue))
6 L9 P* c' Z; Q3 b. M - (if (setq lay-idx (getindex layvalue laynmlst))0 |% S2 t" Q' b+ z1 Y- L
- (progn
7 w) t7 }' b3 @) ?- K4 z$ J( E3 I# M - (set_tile "error" "")5 a, K& z: k. m3 c
- (laylist_act (itoa lay-idx))+ u0 S# P& r) ?3 z( ^, D3 y3 j8 }1 c
- )0 k/ h2 e) z2 k' o& u
- (progn1 d, ^, X. m) Y2 ?& f" @! @$ y
- (set_tile "error" "Invalid layer name.")
{5 t8 w$ r5 K2 b5 @ - ;; (mode_tile "edit_lay" 2)
d3 C7 l$ a7 a' Y - ;; (mode_tile "edit_lay" 3)
* {0 M( J' T& C" w - (setq lay-idx old-idx)6 F4 \5 S- A) ]2 d* |3 F0 }& P
- )
- B' ~$ Q2 X: E$ e+ a1 t8 D - )1 L# ]- y! I% x% S! o$ P1 s
- )5 n! E! v( l2 h" U, \6 x1 j' k) T
- ;;: T- Y7 L4 m: Z e
- ;; List entry selections end up here.' L: l8 G9 I4 q# ^& F
- ;;
. v# {& O, W6 t) _# ^ - (defun laylist_act (index / layinfo color dashdata)
0 L+ V. W, O8 m$ S - ;; Update the list box, edit box, and color tile.: \, C% Z [, ^5 ^. \7 M
- (set_tile "error" "")$ M) O2 @, i& S0 }% D% C
- (setq lay-idx (atoi index)): b! \6 r7 S- b! l
- (setq layname (nth lay-idx laynmlst))
" m( L0 T: ]; M& [3 I0 L% F M - (setq layinfo (tblsearch "layer" layname))3 {% t1 V. \# D: Z! @" s5 i
- (setq color (cdr (assoc 62 layinfo))); t) W0 n1 t! M" ~5 X: o6 Y
- (setq color (abs color)); e J* X" i/ n& C# y
- (setq colname (colorname color))
r' I8 K) }6 N' u' W - (set_tile "list_lay" (itoa lay-idx))0 h8 }1 y0 g- i& N7 B- H) P! H
- (set_tile "edit_lay" layname)
8 y. _3 z( v+ O3 J0 c4 D) M - )9 {' ]3 S! m% ]4 m# V; y
- ;;" U9 A% n7 r% W/ o4 t) p
- ;; Reset to original layer when cancel is selected.# e q* ]0 Y! v2 Z, P. e
- ;;
/ F/ Y# R& N( K$ y$ y* q$ D% [ - (defun reset_lay ()
' y3 }0 S2 `( Y' a - (setq lay-idx old-idx)0 A0 @! ^5 B6 j1 O* k, T
- (done_dialog 0)
3 N9 y4 R4 I* N+ W# [4 n - ). \; ?2 A0 ?# D; n! S; ^% T
- ;;8 T' o2 S2 r1 g. {4 w
- ;; Checks validity of thickness from edit box.0 ]4 O/ z [: B2 M3 C' n
- (defun getthickness (value)
7 J( h* J) J; r X: k7 D - (setq ethickness (verify_d "eb_thickness" value ethickness))( r: J, q% [* O9 y! ~
- ), w; V: S& S `* t1 K7 E( C/ Z" ]
- ;;
/ M9 @1 o6 s9 X/ t - ;; Copy of (getthickness) for ltscale. If more, make this function* M; c8 `' K& w; r* t2 |
- ;; generic.# d1 `1 y! `% s3 L4 x" T8 c
- (defun getltscale (value)
: f. B! \$ U8 V9 n7 ?# f' ]! o - (setq eltscale (verify_d "eb_ltscale" value eltscale))
) t9 M$ P* K0 x/ T$ J - )
: E7 z" B! X( e% }4 s - ;;
# a% a% V2 l3 V4 Q1 O7 o - ;; This function makes a list called laynmlst which consists of all the layer" @7 P' d; I& S% _7 N( p' x7 y5 L$ ~- V4 t
- ;; names in the drawing. It also creates a list called longlist which
, Z0 o# r) U& w: D! `. c - ;; consists of strings which contain the layer name, color, linetype, etc.1 ^1 h7 ]! |+ s4 N" E
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
. M0 }) P) x6 c2 \) T# z$ K - ;; same.* R& U# C& p# ^0 T! V" U
- ;;7 c: r% Z- g" X1 c M1 _
- (defun make_lay_lists (/ layname sortlist name templist layer_number); Y; o/ G3 H8 A' Z9 `" p
- (setq sortlist nil)
* U% |8 Y: S* M% x. ~ - (setq templist (tblnext "LAYER" T)): H+ F3 n" J! [, Z) I0 A/ \
- (setq layer_number 1)
" s$ K- w: k; y, F6 y - (while templist
, A- `0 F# k; w9 N5 T' c0 { - ;; No xref dependent layers, please.
! T; G3 J; j1 y2 ]5 S5 M - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
8 ^2 W. n( k+ K6 d; R - (progn8 ?1 P5 i% h( \1 B6 l m$ g
- (setq name (cdr (assoc 2 templist)))
- I1 O9 y! |* W - (setq sortlist (cons name sortlist))
/ O$ f6 `: [& ]& Y; H - )
6 G( k& C& i; M p" { - )* } ~3 F1 r+ o& ]. i0 G
- ; Get the next layer.- L4 J( c( O7 f
- (setq templist (tblnext "LAYER"))
8 g/ Z$ p' I: W0 _; A% r# | - ;; Not dead message...
" U Y3 c! J; C* L4 Q - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))6 V9 G9 u+ @) [$ Z. K% q
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
" T$ {7 b9 D3 _' b" P# G - )+ H8 S: |4 e: o2 O9 o+ p6 e0 z
- (setq layer_number (1+ layer_number))# A" P( o7 |0 {* V# w, Z; o
- )
. O8 h( t4 w; I$ f! J D: `( m - (set_tile "error" "")
& i; ?3 y; [8 I+ h. j% d7 _" ? - (if (>= (getvar "maxsort") (length sortlist))4 b3 E7 f" ^2 K
- (progn: a* _4 G z3 G2 N. I5 q* z
- (if (> layer_number 50)% J4 e# g( p. A; S r3 [
- (set_tile "error" "Sorting...")
6 K- ]* [( c; k+ R4 g: T+ q - )" o" G) L% a2 b/ z7 O0 m
- (setq sortlist (acad_strlsort sortlist))
- P& x. }$ Q* B - )0 x/ p q/ ~2 _: z# o0 S
- (setq sortlist (reverse sortlist))
S, @/ m/ f | - )
' {0 Q, F* q( A- T - (set_tile "error" "")
; q, g4 n. M1 b+ Z$ z - (setq laynmlst sortlist)) d2 p* e7 W# ?; D* ]9 {9 B7 w
- )( r# @9 b- g+ Z g5 A0 o2 z# o
- ;;
8 V0 O' i9 K4 l; O6 S - ;; This function makes 2 list - ltnmlst & mdashlist.
2 z# P2 I% R& v( M# U/ O - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist7 A q* t1 N, u9 k
- ;; is list consisting of lists which define the linetype pattern - numbers
5 ^$ ^5 G |, P6 Z+ D - ;; that indicate dots, dashes, and spaces taken from group code 49. The list7 L& i! }3 m) k8 m$ t5 C
- ;; corresponds to the order of names in ltnmlst.$ g3 m+ P3 U) Z4 X u
- ;;
( W. e3 u$ d/ q ~) R) O: q! X - (defun make_lt_lists (/ ltlist ltname)( g. v0 e0 d4 \9 Q: }
- (setq mdashlist nil)
: R. A( e( @& i" a: Y" C2 m$ k - (setq sortlist nil)
1 b5 ]( n$ `+ _ - (setq ltype_number 1)
9 L5 N+ }% t" l: L - (setq ltlist (tblnext "LTYPE" T))9 L" y3 n O4 H3 _
- ;;(setq ltname (cdr (assoc 2 ltlist)))
% J; T) F4 _" F9 J - ;;(setq ltnmlst (list ltname)): D* _- ]7 Y/ a' ^: p
- (while ltlist
# t3 U# l' o7 K, S - ;; No xref dependent linetypes, please.
1 R. \+ D5 M7 `/ [( E! ^# _1 b - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
: J( M: B6 g8 r6 {% F4 `. ^ - (progn4 ?; V9 v% {- ]: R2 K
- (setq ltname (cdr (assoc 2 ltlist)))
1 u) r" n [& H7 @% Z - (setq sortlist (cons ltname sortlist))
) A2 q! q# D5 E+ j' F - ) ^7 k# t# t1 ]; X" F
- )
4 M! U, b, w( D# C1 h$ _ - ;; Get the next linetype.. R! I T8 `/ G) D2 {5 s+ j8 O
- (setq ltlist (tblnext "LTYPE"))& h1 K" f+ i: ^" c
9 F& @" M8 H1 B( Z- ;; Not dead message...4 w& q! L7 m% Y2 i
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))3 B" K" S9 ~" J
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))" J( F- `4 |# ^" t
- )
: z/ v& W; @7 e6 d - (setq ltype_number (1+ ltype_number))
( f7 x6 q( {' W+ Z - / O7 e% s2 _2 o& ^# i; L
- )
4 y$ z- a& K5 Z- M) i# R
+ u" _" R( v- _' {! x- ;; Remove Collecting message.0 x F! V; h$ w+ g
- (set_tile "error" "")/ w. V7 M- g# [" e& d! N7 v4 M
- 8 d8 \, H1 N' e$ N
- ;; Sort based on maxsort.# j" _. o. q7 B6 C7 n5 w* M
- (if (>= (getvar "maxsort") (length sortlist))/ L& p3 d' w3 D4 M. x- k) X
- (progn
; E; i; ~- ?2 J3 O' W - (if (> ltype_number 50)
; T- p/ \0 }0 c - (set_tile "error" "Sorting...")0 d" Z) \5 e0 h" O% m, E- q- J9 N
- )
" W$ b# ?$ o% F - (setq sortlist (acad_strlsort sortlist))
( J+ _3 S; e4 @' C4 f - )* ?4 j7 ~- Z: H+ H" t7 T( K3 S
- (setq sortlist (reverse sortlist))0 `! i7 c& \! g7 m( q
- )/ @6 b) p* B5 \4 P) Q, j
- (set_tile "error" "")! s5 i: ?) f$ `* b. h
- (setq ltnmlst sortlist)
" T" \7 [3 i& A* C Z - " z6 A6 x. W3 B& V2 m& s) _
- (foreach ltname ltnmlst
: H' E, y6 J7 ~& Y& Y# p& F - (setq ltlist (tblsearch "LTYPE" ltname)) ]' u) W6 M2 ?% S
- (if (= ltname "CONTINUOUS")
2 G3 ^7 v3 z' _; r( H$ t - (setq mdashlist (append mdashlist (list "CONT")))
# M! p( {% |2 Z - (setq mdashlist7 [% H+ M1 f1 L
- (append mdashlist (list (add_mdash ltlist)))
- ~ o1 K% B3 V, | - )! a3 C; v/ p8 p3 z7 x" {3 h$ Y
- )+ I( R, \. \3 p* Y" u$ R, Y8 ~$ }+ j# A
- )- r+ R: f3 X' B, _
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
% d3 S3 x1 ?9 k" ~$ N: I6 {; O/ p6 l/ v - (setq mdashlist (cons nil mdashlist))
6 Q3 m k# k1 k, R' T/ D - (setq ltnmlst (cons "BYLAYER" ltnmlst))
9 Q( o# [+ }" t3 b) ]( e - (setq mdashlist (cons nil mdashlist))
4 e; X4 ]& `0 ]# @6 w& J - )
# M) K7 G% ] ?: b0 @ - ;;3 K" _* p+ m% F! m! I0 k' Y) {! r2 s
- ;; Get all the group code 49 values for a linetype and put them in a list+ _6 k; H) F, `
- ;; (pen-up, pen-down info).
. Y! m$ x0 f2 u" \# W$ j - ;;9 e% C$ T& E3 z- y- H. v) K
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
# c5 Y% d, U5 f" s - (setq dashlist nil)
4 [7 T- |( A6 Y9 V7 b7 q( b' [ - (while (setq assoclist (car ltlist1))
$ I- b; e( |) s' Y: X3 _ - (if (= (car assoclist) 49)4 i" [. _3 ]8 a7 A
- (progn
! f, T& M$ Z7 a6 m m - (setq dashsize (cdr assoclist))2 Q0 H. Q! u# L$ @
- (setq dashlist (cons dashsize dashlist))4 n7 c$ @: D4 x7 M" r0 A) t
- )
4 F) u7 ~ N9 _ - )
6 W& \2 ~2 R$ Q1 ^) w - (setq ltlist1 (cdr ltlist1))
. F' Q; c: ^6 T$ F# C# g( U - )
# q+ ?( L; v% B9 |8 u8 M! ^% X% g - (setq dashlist (reverse dashlist))
9 w v4 D g0 I n - )
! }: k2 b: T- M6 l$ x! h - ;;
9 v. I7 J; C6 \# Z. c - ;; Color a tile, draw linetype, and draw a border around it* u" _ B U) `" }
- ;;
7 O4 {' }; y' Z# W' d+ b6 u - (defun col_tile (tile color patlist / x y)
8 j" b# j* u9 y+ a8 a* K4 e - (setq x (dimx_tile tile))
2 _. c2 @+ S, m- C - (setq y (dimy_tile tile)) y1 r. ~+ \: V+ e
- (start_image tile)
' |. j' J" W5 U1 A, G6 f - (fill_image 0 0 x y color)8 |, T# T, Z. {, X) ]% e& C" E
- (if (= color 7)
) q( k/ n O! G: O - (progn
4 i1 t$ Z$ N5 g1 r/ S" I" c4 K g7 H - (if patlist (drawpattern x (/ y 2) patlist 0))
7 \* \* c Z) b" j$ J - (tile_rect 0 0 x y 0); Q& y. j% U' P O7 \
- )
: A6 w: C4 I# V1 R - (progn7 ~$ ]# }' u, N7 c
- (if patlist (drawpattern x (/ y 2) patlist 7))6 M9 a1 C: x) X% Y+ ]3 o& B: g
- (tile_rect 0 0 x y 7)
, H# q* [& _6 n5 I/ r8 {# _ - )
& k! `2 C$ C- ]( Q- i9 R - )
: l2 i+ ]: c( Y! A( F5 Z% B/ G2 J - (end_image)
! g, h- @& M" x - )
O* j! O' R: U0 [/ B! h3 v - ;;
) H1 Z6 ^" Y4 T& R - ;; Draw a border around a tile& G; W6 {. Z, V/ z- ` r+ s
- ;;
8 R7 a3 F8 q2 c8 F2 V2 Y- O - (defun tile_rect (x1 y1 x2 y2 color)% J+ ^ D$ W0 _5 }. z8 C
- (setq x2 (- x2 1)), T1 ~8 c) Y, C( d9 j
- (setq y2 (- y2 1))
6 p; n$ r1 e) e5 c% A" q - (vector_image x1 y1 x2 y1 color)$ v* q, J6 p' Q
- (vector_image x2 y1 x2 y2 color)4 g! H: M, r& S5 r( F0 Y) S! d
- (vector_image x2 y2 x1 y2 color)
$ t7 k7 c* t% o1 }5 D - (vector_image x1 y2 x1 y1 color)( R8 P: q: L0 D! M
- ) v! L1 |) \* D; {5 R+ ?
- ;;% T6 ]& ~( @( M4 a0 q( ^
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image# |1 Z- u+ a4 O* W
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a% q& {+ |3 h; @. Q2 X4 A
- ;; list of numbers that define the linetype, and color is the color of the& C; h8 t8 f% _& m: N
- ;; tile.$ d( ]0 F5 V- z" I8 c) U" k8 ~
- ;;# O( a1 X" s9 c- G
- (defun drawpattern (boxlength y2 pattern color / x1 x2$ ~3 i% S& v6 I- b) j, o, j5 k
- patlist dash)
- Z0 Q/ k$ d8 }1 A! P& } - (setq x1 0 x2 0)
" b4 b$ Y+ F2 ^2 I3 ^: u' |& ^" I - (setq patlist pattern)
|" T' E% P, u4 j - (setq fx 30)
* y, R* y/ l3 p7 {; H - (if (= patlist "CONT")8 v7 S- n. i) g1 }: F
- (progn (setq dash boxlength)4 i9 N. X5 o7 k5 t) }; _. \* E6 B4 J
- (vi)
4 f9 Y' c) u+ \ - (setq x1 boxlength)9 |3 s/ ?. m, ^3 i2 s4 A$ s1 U# y8 U4 l9 W
- )
) I' R0 }8 E' ?/ J) X' |* n - (foreach dash patlist
$ e# X3 A" ]& H6 p5 R - (if (> (abs dash) 2.5)9 x( R! w0 E! ?0 a% r; d$ F# g
- (setq fx 2)
. d r; f9 S; h5 b# E - )
E: T& ^: W7 `+ ]& R- b - )
* Q- B3 }1 D9 c/ _ - )
* e% l; q2 b1 s1 _0 D# [$ Q - (while (< x1 boxlength)
5 A( b, t* @' O) q& E+ E! B: x - (if (setq dash (car patlist))
; ?+ @8 W, K9 X5 y, m2 @ - (progn
- N* m8 P8 k; M2 j" G - (setq dash (fix (* fx dash)))+ _7 F" s5 V, N9 P% p h( {, X
- (cond
+ q8 r# u# g7 W c - ((= dash 0) (setq dash 1) (vi))2 d2 I: k9 N. v* [
- ((> dash 0) (vi)); ~; k8 c0 U( Y) n5 P
- (T
" S1 A- m% ?3 O1 j# c# }% W: L' A - (if (< (abs dash) 2)9 Y$ M# W0 X5 _& h9 P, d8 G
- (setq dash 2)4 p- i5 @" u4 }6 Z+ r4 ^& H7 K+ e
- )
4 U- E9 A& ?- w. t# F0 n - (setq x2 (+ x2 (abs dash)))4 F& V2 A0 B5 I
- )
' [$ Y; ]( ~+ I/ F1 `" w - )* S2 h6 B a- I: b
- (setq patlist (cdr patlist))4 m3 W9 L3 K# x+ w$ a- |4 A# O
- (setq x1 x2)8 r2 a* ]: C& G% x
- )' f/ c- x: W. g& ?
- (setq patlist pattern)7 x! L8 j6 t; j7 O
- )
6 \- r- {' g* c" a, q4 @ - ) n. |, b. |) D1 c# Y7 Y
- )7 s3 h2 t. n3 l
- ;;
5 o% t$ C0 r; j5 j8 B5 T, K; W - ;; Determain state of xclip" `1 X+ @7 }6 I+ o, ~6 B7 ?7 H" F
- ;; Returns the group 71 value of the spacial filter dictionary.
1 S) U3 \6 i0 x# x4 I" | - ;; If the entity doesn't have a spacial filter dictionary, this
7 M% h8 w0 g3 U% C# h# Z& s - ;; returns 0. If it does it will return 0 or 1 depending on the y& x' I* N4 H5 k4 F( U
- ;; current setting of the state of the clipping visibility., t7 z! _1 A2 V! h% _
- ;;! ]- W3 Z5 h8 I# B; _- x
- (defun xclipon(elist)8 r! \& C- f5 D- M% v, e+ H
- (setq hasclip T)- e, o. D; G7 Y2 S3 f1 R+ h
- (if (/= (assoc 360 elist) nil)* P0 m) w A7 m* i/ Y, } L) Q6 B: L
- (progn( P) }5 s/ L& s- D' F
- (setq tmp (entget(cdr(assoc 360 elist))))* A5 {0 K3 Z+ N5 J4 Q* r4 b- m4 S
- (if (/= nil (assoc 360 tmp))$ \; E: m. F9 N0 R+ Z. a6 N
- (progn
' r' b1 W7 P& H: }# _ - (setq tmp (entget(cdr(assoc 360 tmp))))
$ g& t' A0 q7 V4 X+ a1 O+ _ H - (if (/= nil (assoc 360 tmp))
/ C( K& t8 U- i. N5 c2 f - (progn3 ]3 J$ z' ~; R7 x9 U
- (setq tmp (entget(cdr(assoc 360 tmp))))9 H( A/ c/ r0 g! i$ k
- (if (/= nil (assoc 71 tmp))
2 Z- V; p- @; Y9 }- ^& v! ` - (cdr(assoc 71 tmp))% I+ O0 Y4 ]. b* C {7 w# r
- (progn
/ _% p/ R* Z' l' g - (setq hasclip nil)
5 ^5 z8 U E( i' T - (eval 0)1 a; b& N: p/ x* V, b& U
- )
$ k& x4 G; l8 E( ^8 `! E - )
6 Y" L" e1 U( U - )7 I0 ~1 ~% j3 B& O& a
- (progn
9 A: q( V, L/ Y5 R2 G - (setq hasclip nil)
6 B8 c) d. d- r( I" S. J - (eval 0)
, K$ E. `. Z8 t5 y9 r2 q3 s - )
0 Q! ^$ d7 b- g0 u! J - )4 f" t# n4 b$ ?$ X8 d, T
- )7 j# i* u) H0 {% `4 [. J
- (progn + k; H9 I, `8 c& C. \
- (setq hasclip nil), e$ D- K0 y4 A! G0 N/ ?
- (eval 0)7 p- U/ j: }) p$ |7 [
- )
. J$ B$ q4 d( G3 n2 | - )
2 O8 x( E2 Z: k2 P - )
5 u6 b( p( O; Y, J9 z' f/ k2 x - (progn - y; z% O5 l/ Q. o' e% Y% s
- (setq hasclip nil)' _0 B" N1 C' u+ x& X2 e
- (eval 0)- L; u: p7 x# b. s: z
- )
3 U# F/ M' ~' T4 f1 ^& h - )# f4 `+ Q8 g+ K" n: D$ l
- )
7 Y+ B; ~. N T5 l) B - ;;5 h3 {7 `' g4 \% V) b
- ;; Draw a dash or dot in image tile! C( n! y2 v! K6 M' D5 I" W1 t
- ;;
1 B) t5 q; ~+ t& a' _+ j - (defun vi ()
8 ~! t. B- ?, _4 d - (setq x2 (+ x2 dash))
: g7 e8 I! b! C - (vector_image x1 y2 x2 y2 color)% R$ K; [; ], d. b! D8 n
- )
, w# u- X- \! V - ;;: v1 ^: ^+ x" F) m7 g I
- ;; If an item is a member of the list, then return its index number, else" o/ D! ~1 J7 _* k8 _
- ;; return nil.
Q% R5 L5 ?- m5 M/ M) }0 }3 F, b - ;;
0 ^8 ~* I5 _9 @; {! b$ j - (defun getindex (item itemlist / m n)0 m+ M- A/ d5 [5 c& V
- (setq n (length itemlist))' H" `& F( F$ s5 n
- (if (> (setq m (length (member item itemlist))) 0)
0 |, P3 |& a/ n% M5 U0 ^ - (- n m)! U* _# o$ N' ]& L' V. P7 w
- nil9 u& c$ l1 }' c* G D2 d8 `
- )
! v, v N# [! n6 o4 K - )
6 |% u/ l3 }: Q: m4 b - ;;3 r& X% l0 |( i3 e' X0 M
- ;; This function is called if the linetype is set "BYLAYER". It finds the
d8 l9 u! a0 w7 e3 D8 o+ X - ;; ltype of the layer so it can be displayed beside the linetype button.
e1 M1 K) X% n" i - ;;$ P2 i# }2 l+ I/ g2 f( k0 ~
- (defun bylayer_lt (/ layname layinfo ltype)& W8 `0 J) `0 k9 f0 Z" \" s7 o- j
- (if lay-idx' y5 @ j& R, p, [
- (progn4 ~% `$ w" t2 ~$ y# R
- (setq layname (nth lay-idx laynmlst))
j# E$ t1 q3 i1 g7 u5 E& ~ - (setq layinfo (tblsearch "layer" layname))
, o6 }6 { D; P1 o - (setq ltype (cdr (assoc 6 layinfo)))
" h( f, ~1 w# k3 P- D - "BYLAYER"
& B5 n$ F0 Q2 N& W" a& c - )/ I' G+ W; D5 N
- "BYLAYER". V+ }& M# ^+ Z& R$ T% p' W
- )( h6 W4 B& N9 S+ E. [. w
- )
! D5 X( n5 u& M& J# O - ;;
$ X7 n+ O' i1 i - ;; This function is called if the color is set "BYLAYER". It finds the color
2 l0 n( K4 [" L6 {) P - ;; of the layer so it can be displayed beside the color button.
8 T( r( \+ j: J2 V$ Y' J4 t0 z - ;;
+ C% x3 {, ^3 Q1 I7 L8 H* G: L - (defun bylayer_col (/ layname layinfo color)* @8 B: ~/ E+ b' _( g& q2 q6 C
- (setq layinfo (tblsearch "layer" elayer))
! y( G9 _& u5 m - (setq color (abs (cdr (assoc 62 layinfo))))
7 Z2 ~+ I c0 ~9 U - )1 y7 [' x6 F% t5 d0 Y: R
- ;;( K( ]% S1 O7 p$ a. H6 E! G* P, D- [4 Y6 l
- ;; Used to set the color name in layer subdialogue./ A; Z& x3 y& ?5 P6 T3 G
- ;;# f& Z+ ^, B8 F* W, o1 J- P$ b
- (defun colorname (colnum / cn)
% z" C% B* N1 r7 R9 v* Z - (setq cn (abs colnum))5 Y* P9 [% J, i2 J7 v3 E
- (cond ((= cn 1) "red")
- U2 S( h' Q$ `' O# ` - ((= cn 2) "yellow")
: b' b7 d* }+ @2 W - ((= cn 3) "green")
( d# [( N8 U: t% D0 i8 A- m$ ? - ((= cn 4) "cyan"): h! x5 L" `5 V2 f8 H. h" I/ B0 `$ s
- ((= cn 5) "blue"); C) d ~" @4 w; ]( `5 P& A( ^
- ((= cn 6) "magenta")# @$ o: o8 Z, U! |
- ((= cn 7) "white")
0 V1 O+ S& h& g9 ?2 ?! r - (T (itoa cn))
$ Y" H7 U6 `3 e' K; [4 A - ), U/ H$ N+ m6 ^
- )% ]/ E K! P3 F6 Z! }6 q
- ;;
W. D0 [$ g+ W7 t: S - ;; If their is no error message, then close the dialogue.
% r$ |4 C2 S, ~4 a2 k - ;;
5 v4 Q) e# ]) q( L- Z1 n. [3 V( o& H - (defun dismiss_dialog (action)( l/ F1 t: X7 I) l- a9 B
- (if (= action 0), u) y/ D& j+ i3 ^5 h& C) h
- (done_dialog 0)/ `) x7 a2 e: [; F
- (if (= (get_tile "error") "")
2 w5 D% W4 L4 ]: V. [- [1 C+ v - (done_dialog action)
- h6 H M8 O. w - )
0 b$ p$ `4 z1 a8 S3 } - )* ^2 i2 |8 V7 }
- )* d: B% ~$ @# B' _- |" i
% S7 e- {+ S2 l/ c, e- (defun test_ok ()
# b$ w5 G8 B" [! k, M - (if (= (get_tile "error") "")4 l5 H* H4 V. E4 H+ g8 D0 ~, c' m
- (done_dialog 1)
3 B7 ?4 D* r% }3 a N9 E5 z - ). ~1 v9 I$ m8 V2 r* U: d3 E( y2 N
- )
$ z( O6 B/ p: T) A8 [/ y; _
; K1 _6 P2 K7 I3 g/ O" M" Z+ }- (defun cancel ()& C' N1 M6 i6 |/ m' k; Q" S
- (done_dialog 0)
" l, j# f% q8 q& y# U, x [' ]/ d - )( Q" K$ S! J K8 f C
8 d; t' S" ?6 b- H; j- ;;; =======================================================================
( @$ Q/ A% J5 G9 x4 @/ e - ;;; SETUP layer and linetype lists for application, and initialize all
0 r7 F8 y5 r \% s0 }, s9 { - ;;; program variables.
6 W) G, u( [' G3 i) S
* }% c( X$ U9 L* e4 g- (setq elist (entget ename)% m% k- x1 q7 I; Z/ \" P' p: @
- old-elist elist
+ F* ]: V6 a5 Q2 s0 h! Y( S. V - modlist elist( j: Q9 j- O- u- ?) Z4 C
- etype (strcase (cdr (assoc 0 elist)))
/ B! \9 J0 p0 |0 q& m/ w - ecolor (cdr (assoc 62 elist))) `% s6 Z' W$ v9 a3 r/ Q2 }
- elayer (cdr (assoc 8 elist))
; m- V4 [5 @9 Y; J# |5 J% r - eltscale (cdr (assoc 48 elist))
" _1 b6 h' v% D- G: L- T - ethickness (cdr (assoc 39 elist)) a+ c( c9 e- t& _" e; [5 T0 ^
- eltype (cdr (assoc 6 elist))* H. L) t) l; n3 H7 \9 x
- )
, O3 h/ m2 a* e- J. h/ P - (if (= (assoc 210 elist) nil)3 L% c% p- \0 W' x% w6 [
- (setq extru (list 0.0 0.0 1.0))) I, W9 H `2 R t
- (setq extru (cdr (assoc 210 elist)))7 ]" \9 {8 X+ a" H, _! U- [, T2 n
- )
; s# K% S: a' U) i - : m: f1 j3 W, E! `: B9 ?; Y
- (if (not ecolor) (setq ecolor 256))
+ \* Y! x5 D3 Y. T - (if (not eltype) (setq eltype "BYLAYER"))
: i8 w1 W7 ]3 |6 D - (if (not ethickness) (setq ethickness 0))
5 \3 |9 O3 n* T' t5 W - (if (not eltscale) (setq eltscale 1))8 T \6 P9 Y; O3 H. G
- ) ; end ddmodify_init* b5 p; E3 J. g! N& Y' W
- ; U, A9 H# N4 Z% l' F
- ;;; --------------------------------------------------------------------------% q/ i' M2 K9 g% v# y) C4 ~" y& ^
- ;;; Function: DDMODIFY_SELECT
- V( t! c" K3 [+ ^ - ;;;( a6 v9 j' z2 v6 T
- ;;; Object aquisition function.+ k7 \3 y9 U, F D, G
- ;;;
( y( q$ x H$ Z+ @ - ;;; (ddmodify_select)
% Y0 t5 y$ e5 i' R - ;;;) p( U% _, a% V& F: A4 a0 v
- ;;; Obtains object to be modified, in one of three ways:3 A @, C$ l, } v0 {
- ;;;
# E2 ~4 r$ J- r5 s! ` - ;;; 1 - Autoselected.
$ S" r. B2 a6 I5 I( I7 Z - ;;; 2 - Prompted for.! b/ @" v* M, n
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )) N" A }2 c/ ^9 k4 b5 B
- ;;;7 x3 a; m& x L6 i3 L
- ;;; The (ddmodify_select) function also sets the value of the3 i, R3 j8 O4 I* x% K: K
- ;;; global symbol AI_SELTYPE to one of the above three values to
! _ J. X5 u; w$ J; ?$ j3 A - ;;; indicate the method thru which the object was aquired.+ {' ~9 o. [* r% H1 E7 j! Q2 C
- ;;;5 H$ r/ O! j) [3 g( l/ ?& D
- ;;; This value can be useful to applications that want to RESTORE
- e* N* \2 |$ t$ w4 I' ^( W2 Y" z3 O6 R - ;;; an object that was autoselected to its previous selected state
/ z/ g+ ]: t0 `* q- r2 m4 W% L* J" [) _ - ;;; when they terminate, although there doesn't appear to be any- f! h+ h$ x+ n) V' o3 \
- ;;; way to do this right now.: @, {0 u9 I) X* F; K, x: O
1 `* F' c, Q& X$ [- (defun ddmodify_select ()) j( {) y. f2 r! E5 p5 @/ e1 v
- (cond) {5 P+ f1 |7 D0 }/ J
- ( ename ; (ddmodify) was called l: Q4 U" N; b6 p2 J
- (cond ; with an <ename> argument
& T* N7 l# |0 I8 x1 s; r7 K7 d - ( (entget ename) ; If object is non-deleted( n" L9 p9 \* y8 }) a' E% ?- r
- (setq ai_seltype 3) ; then return its ename.
+ N- [- u3 o. q' Z) B; J: L) V" _$ k5 I - (ai_return ename))))
. R& f4 g% ~& O. D% |8 } - ( F% X: Y4 F4 d/ S5 j2 f& k1 u
- ;; return auto-selected , see ai_utils.lsp3 h9 M9 C) J; g$ J/ G$ X8 ~+ n
- ( (ai_autossget1 "\nSelect one object to modify: "))- W& ~: p$ G/ m2 q# \
! e& V6 d% Q% Q0 l" b# a- (t (princ "\nNothing selected.")! w$ _! E9 F% y0 T5 u" e6 r+ i
- (ai_return nil))) D( d9 ^5 x; `( B
- )% K4 u1 u* Y; `2 ]" C
- )! \9 H' ~; b. e! @
- ( N3 c7 E0 f2 E6 e+ x9 V/ i
- ;;; ============= Command line interface function =======================
+ _+ N+ y2 |! C2 R+ I2 L5 t - ; t( O7 ~& v' m
- (defun C:MMO ()
* k N* @- j: m# K) C0 z - (ddmodify nil)
8 _) _0 _+ I) `2 n7 ~; Z* O - (princ)) Q3 u5 _8 D; {
- )8 s0 b% v( ~ U* m8 ?- ~# E
f, o4 T& k% I- y8 m- ;;; ================== (ddmodify) - Main program ========================
- A0 g1 p4 A3 ?0 @7 q - ;;;
% V$ I7 Y3 k' N4 X! N( ~4 x/ ?1 C8 |7 e - ;;; (ddmodify <ename> )# ^1 E6 M5 G0 j F: X6 o9 N2 b
- ;;;
4 V; c: e. H& ^: C& \7 D; Y - ;;; Main program function, callable as a subroutine.
' F6 b( F/ w5 |: L$ B - ;;;
" \, P6 E# {, c' K+ k& e - ;;; <ename> = object name of the object to modify.% P1 L; h1 B# V. G0 N0 n& Q3 U2 c, ]
- ;;;
2 c7 P- |. C( v% V7 \$ y6 u* w - ;;; If <ename> is nil, then user is prompted to select' R# R. w" c$ T" U0 l
- ;;; the object interactively.) k& F! r7 x0 Y% k- g: Y+ o
- ;;;
2 N" [: U% D+ V, i5 E - ;;; Before (ddmodify) can be called as a subroutine, it must
( n v* E/ S9 m1 l: l - ;;; be loaded first. It is up to the calling application to
, w7 d3 x* t ?6 ? - ;;; first determine this, and load it if necessary.( z4 E3 @; ]$ J5 S5 ?/ R
* w7 M! l9 X" ]7 t# R4 ?& [- 3 p2 l% q1 }: d' z
- (defun ddmodify (ename /
# n4 o( \$ d0 l1 Y- N - 2ndpt ell_calc_area move_pt1 templist
U1 n& m# N6 L9 O6 l- ? - add_mdash ell_tile n tempmod
* p- M+ l1 w/ k$ |& p. O1 f - alipt eltscale name tempst_ang
) [6 M2 O+ R3 V# y* t - ang eltype newpoint test_ok
; `8 w- Q( D- Z - arc_calc emod next text* C4 v7 _" W4 H- a+ |% C
- arclen end_ang next_vertex th-value
, ~( _. T3 P' h- P% q0 | - assoclist endpt obl tile) m" v! [6 U \' C K3 p8 @
- atprompt errchk off tile_rect
2 q0 N# h- {2 U% G( l - attag ethickness old_majrad tilemode+ G6 c7 ^1 w& `
- attprompt etype old-closed totang
" U z" d. B1 X9 F$ `8 }! L9 l1 ] - bit extru old-closedm tstyle1 `+ B/ w& S9 z7 }- p/ H5 P
- bit1 fchk old-closedn u: O& _0 C, a- x& J% s& E
- bit-10 first-10-rec old-elist undo_init
5 w0 `# X) R, L7 Z. i" W: m; q - bit-11 first-10-time olderr upsd
7 o2 u* K/ ^. h$ E - bit2 first-11-rec old-fit v
, U& W- B! p+ e3 E - bit3 first-11-time old-idx va
" _1 q$ F' ~- [ h2 M8 O# d' [" H+ ~ - bit4 fit oldlist value/ s, |0 W2 U, R7 V3 W- T8 M ^/ W, U
- bit70 frozth old-spltype ver_4
* O: I. c1 p" v' a- h0 L% w! N - bit-70 f-vis old-u ver_ang1
* `" H) ^* J) K2 g4 ^ - bit75 fx old-v ver_ang2
& U5 T4 h4 e0 P; F; ]0 K( \' C: R - bk-up get_color on ver_col
3 b( w& a$ ^# k! W+ m5 f8 ^* T - bkwd getcolor onoff ver_colsp
, ]& Y$ `9 t6 z% H/ C( o+ U - boxlength getindex on-off ver_eangle
5 D0 B( J0 W+ D: m - bylayer_col getlayer patlist ver_hght
: ?" M' _ V1 l a9 l% O! R - bylayer_lt getltype pattern ver_majrad0 i: a& r k# l6 A5 B6 V; C
- calc getthickness pltype ver_obl
/ y: T; ]/ n1 I/ _; x7 E - cancel globals polytype ver_pt1
/ B, p: T5 ]; c/ _ - cir_calc ha pre ver_pt2* E$ e [9 L: f! C8 `8 W/ N
- closed ha-prev proplist ver_pt3
5 }# ^* D0 i' I; S& A" n - closedm help_entry pt ver_pt4
6 G1 P- Z, ]( [& w3 i - closedn hght pt1 ver_rad- P4 J; W# l/ f* a" O2 }( }
- cmd icvp pt1_eq_pt2 ver_rot
0 Z5 i. m3 k8 Z9 S" M2 O - cn image_add_vector pt2 ver_row& M6 Y' B9 t. ?& `+ L
- cname image_clean_variables pt3 ver_rowsp K+ C2 B9 p% j, b- e- t( k8 g
- cntl-pt-indicator image_cross_product pt4 ver_tag# f3 P& n' {4 C @. R1 g& S
- code_71 image_disp_opt ptype ver_u U5 G9 y# a( W$ b
- col_tile image_dot_product radius ver_v
+ x5 [2 l1 H& v - col-idx image_normalize_vector rational_spl_flag ver_wid
6 ?$ K- i w7 X% N. I. ~! w - colname image_rotate_vector reset ver_x1
6 h) B& S* G& T- ~1 v0 f" I* h3 _ - colnmlst image_scale reset_flag ver_x2
( ?6 d7 m/ S" o, _7 Z+ H! S - colnolst image_scale_vector reset_lay ver_x3& W- }: }6 g& D% ?
- colnum image_update reset_lt ver_x4/ T4 ?0 J: i. a8 }
- color index reset_uv ver_xline_pt1
Z* Q, v# R& M: A; [ - colorname inv rot ver_xline_pt27 x9 g/ z; s8 j/ ]! Q
- colorno item rows ver_xline_x1
3 p2 h7 t, W3 J; \. e$ u3 f - col-sp item1 row-sp ver_xline_x2
" c p) o6 d3 ^% Z& q - columns item2 rrat ver_xline_y1
% w$ B+ H8 _4 A - con itemlist s ver_xline_y2
6 P, ~3 x6 F! y- l6 c' M - coord jlist set_action_tiles ver_xline_z1
* n. t- t# z+ F& j! F; A - ctr jlist_act set_just_idx ver_xline_z2# c3 _3 ^6 n. m: \( B' D
- cur-10-rec just-idx set_tile_bk-up ver_xscl" P( b& M0 H2 X1 S# z
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
. z9 g9 V; X: E' i$ ~ - cvpname lay-idx set_tile_data_pt ver_y2
! l3 H2 }" M' M+ b; E) I; D: y4 u( } - dash layinfo set_tile_dirv ver_y3
/ A) N& I/ x, r% Y$ M ^ - dashdata laylist set_tile_edges ver_y4
- ]5 p+ _* K% s+ G! K( y - dashlist laylist_act set_tile_endang ver_yscl. H' t- A% p i% a
- dashsize layname set_tile_hght ver_z1
. ]0 Q: C4 B0 X! P; a) ~8 I - data-pt-indicator laynmlst set_tile_icvp ver_z2
, ?; o4 ~& s V# H# l& r- G+ n6 l - dcl_id layvalue set_tile_just ver_z3
; ^% e4 J. z$ M - dd3dface line_calc set_tile_obl ver_zscl$ B5 Q, B+ k6 }: ^. Y5 l7 M2 l4 x
- dd3dsolid linetype set_tile_prompt verify_a; L0 s% w1 W0 }' S2 O' x0 Q: _
- ddarc list1 set_tile_props verify_d
) Q0 X: j4 R) m - ddblock longlist set_tile_pt1 verify_i b# [/ j {7 P P- l- }8 `
- ddbody ltabstr set_tile_pt2 verify_xline
; b; r# h$ e' y' ^; W; Y - ddcircle ltedit_act set_tile_pt3 vfy
$ Z# o# ?, T6 N# X$ M2 K# v; I - ddellipse ltidx set_tile_pt4 vi
9 v9 Z- w4 a8 B. L0 T - ddgetprompt lt-idx set_tile_rad vlist
/ M' R5 T/ v' e- N - ddgettext ltlist set_tile_rc vname2 z A/ {% p# J$ H& m
- ddimage ltlist_act set_tile_rot vpf
+ h C7 a" @. c - ddimen ltlist1 set_tile_scale vpid, K, y% f: w# a1 r2 b
- ddleader ltname set_tile_spline_props vpldata* b2 t- N! r, g" N% Z9 P
- ddline ltnmlst set_tile_stang vpn
, C) E' b3 E; o8 I - ddlist ltvalue set_tile_style vpt0 R: |* @% i" L0 J! d* B
- ddmline ltype set_tile_tag which_tiles
+ p+ ]7 O2 W+ Q- f7 g - ddmodify_err m set_tile_text wid7 `4 p. q) l1 Z& Y+ K. T# H
- ddmtext majrad set_tile_vpt x6 k* O% n$ V5 q( J/ f# o+ c
- ddpline make_lay_lists set_tile_wid x1
* D' p3 x: a! F: o" A - ddpoint make_lt_lists set_tile_xline_pt1 x2/ Y1 s' c l1 F4 a! A7 N& C
- ddray mdashlist set_tile_xline_pt2 x3# R! `# R+ A. ~4 k
- ddregion minrad setcolor x42 U$ K) j+ w# ~) F7 A
- ddshape modify_3dface shght xdlist" i/ R1 c" q* B7 O: G: o4 T
- ddsolid modify_3dsolid showpt xline_pt1
! t. V3 J( e0 U. i - ddspline modify_arc size xline_pt2& s1 b: k$ i4 r1 y7 ?
- ddtext modify_block slist xline_x1
+ b% a+ A+ d2 {5 R: K$ N$ g" ^ - ddvport modify_body sname xline_x2" ^, {7 r7 E& c* ~! x* S) @
- ddxline modify_circle sortlist xline_y1& S1 L+ l/ m8 I) c f) s" y
- denom modify_ellipse spltype xline_y28 r, k0 X& O) r$ Y6 p8 F% R5 y
- dialog-state modify_image ss xline_z1& b0 Q9 F( s' ?9 c, ~
- dir_pt modify_line st_ang xline_z2! g( c' k* H/ w* b0 W0 w* \
- dir_ptx modify_mline stpt xscale% q% C# C, t% _ V) b
- dir_pty modify_mtext style_act xx, ^3 |/ f1 j' e/ s4 ?
- dir_ptz modify_point style-idx y
. J+ s3 o# F' o5 Q, F9 b, r+ j8 u% ] - dismiss_dialog modify_polyline style-list y1
( e; G |: b5 ] i6 U - drawpattern modify_prop_geom tagval y2
) o5 P* Q* S& `' F) \- z/ P - echo modify_properties temp y3
( I- t( J0 ^7 j* ~: C - ecolor modify_ray temp_color y4# R/ M3 k3 t+ G4 B$ o
- edge1 modify_region temp_dir_x yscale
0 S! d/ k. [) J. A" }9 R& O - edge2 modify_shape temp_dir_y yy3 `1 A: s- [) }
- edge3 modify_solid temp_dir_z z12 x9 z5 z @$ x1 a, _
- edge4 modify_spline temp_xline_pt1 z2; \/ a* t; h {
- edgetest modify_text temp_xline_x1 z3
6 z# U' z' J; v& @- _5 _ - elayer modify_vport temp_xline_y1 z4
- Z6 t0 ^' Y" {0 k/ U& v - elist modify_xline temp_xline_z1 zscale; R* F7 P; \7 g" `
- ell_calc modlist tempend_eang zz# g" R) e0 x: b! p+ s
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
3 p" z$ n- B$ @ - MText_style, c: [* Y( h9 o
- )
9 ]$ b s% C+ x
' M2 x- r" E { s: _- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho& [+ a" h+ @8 m* O5 [7 |
- old_error *error* ; save current error function; o" _1 W' t! A( X# k
- *error* ai_error ; new error function, a+ s) F$ M, d ?9 A
- )
. U1 H. W) i! {. v
; g0 H: f; J( I, t" l. c- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle$ a, @4 X7 h* b* O) T+ v) x
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
2 O+ w) B0 n1 s3 U - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
0 ? P, t3 |6 t, E! w1 f* y( Z3 o" h - , u; ?) Z- A1 l3 ?0 |# M6 l
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
. S* ?7 M' b7 `" N7 e( d - (t 1)))1 C# o2 w( O# q# O% z
- (cond/ M1 J: y& z% {+ X: X1 f2 X2 W6 K
- ( (not (ai_notrans))) ; Not transparent?/ M2 L' `" W! j$ R
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded? F5 N Y& I- p( r0 @
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
+ @. ~9 V! U9 _1 O1 _1 h' f9 \ - ( (not (setq ename (ddmodify_select)))) ; object to modify?3 S @; F) j. Q3 r: B( ?
1 _3 a1 _* g4 T- (t (ai_undo_push)
% r# }4 M! j8 a) M- ~( g3 M# d) P - (ddmodify_init) ; everything okay, proceed.
) {9 T! a+ K$ G" @- p+ c$ Q - (cond' z: K8 Y* h) |
- ((= etype "LEADER")
! a" F( ~/ p! m - (setq help_entry "modify_Leader_dialog")
( w7 {. K; k6 T+ X+ f3 G3 Y5 E - (ddleader)
7 O3 u; F9 z ]& ~% }$ v' \3 l - ). F2 D* c0 l$ O6 s
- ((= etype "ARC")
+ q/ C+ @% |" F; u - (setq help_entry "modify_Arc_dialog")
+ r; K9 y L$ q: M! P3 Y( c - (ddarc)# Q6 c* J. {2 M/ F; E! N
- )
0 T8 u) a2 ]; x& S7 r+ L* L - ((= etype "ATTDEF")
+ Z4 T0 n2 H# b+ ^! x - (setq help_entry "modify_Attribute_Definition_dialog")) Q Z, k; z) F' a, f
- (ddtext)
. I6 O! Y) b, K. [/ I1 i - )
: O7 y6 D" f7 d6 H8 v$ ~ - ((= etype "CIRCLE")" G# P* v$ [# n2 c4 S
- (setq help_entry "modify_Circle_dialog")
0 @. [5 t4 j" p; o/ f - (ddcircle)
+ }% [% z1 G# T3 F5 x+ j" ^3 O$ f - )
/ L$ d3 m1 X' Q/ O" J0 x8 R- C - ((= etype "ELLIPSE")
+ C) j5 H* r5 K( _& i - (setq help_entry "modify_Ellipse_dialog")
% ?- s) } t- h$ F - (ddellipse)
9 q4 D* p! Z6 k! J' b( B8 [ - )" H- j; S: m( B# Z" P" l' S, a
- ((= etype "3DSOLID")0 k4 ^" W- d0 p0 B
- (setq help_entry "modify_3d_Solid_dialog")
$ V- c3 \5 A, Q1 t" B - (dd3dsolid)+ M; V% _ b7 U& R5 a
- )
( ~% d. I" O* P5 W# ^$ G - ((= etype "BODY") _2 U' h; z( X. J8 K
- (setq help_entry "modify_Body_dialog")+ h2 Q+ R+ T7 Q) D6 r
- (ddbody)
( n" G: T) z; M! t - )
5 [* S& U6 @4 k4 I5 {9 J8 t. P - ((= etype "REGION") f8 w* u/ p: N+ i$ |& w
- (setq help_entry "modify_Region_dialog")2 ?! Y n2 n: {, }: G, }+ `: A
- (ddregion)
/ L' O1 w/ w% ] i - )
$ b1 h* X) c' V1 X4 B - ((= etype "HATCH") d/ H' F3 H) y8 W1 w
- (setq help_entry "modify_Hatch_dialog")% i" V d l9 R5 q) _" K3 J
- (ddnewhatch)
* A& d' U W" ~+ M$ U+ r - )* i- B- j; y2 n) f0 _) o
- ((= etype "SPLINE")
) }& {3 b$ f# z5 F - (setq help_entry "modify_Spline_dialog")
4 Q4 K8 _9 }: Q0 ~; Z1 S - (ddspline)1 T- ]8 u: m' W9 U; _
- )
( @, p- f! w; x9 _) ?& Z6 I - ((= etype "INSERT") ; see ddblock for help_entry
' X0 @' C: p* F3 H" P8 `7 O - (ddblock)
$ G3 T+ ^- h) o& M f0 ?) Y - )9 {. O) k: p# i
- ((= etype "LINE")
' \$ y0 B" l+ W5 N8 D& A. v% b: C - (setq help_entry "modify_Line_dialog")" W, ]6 J: M2 k5 O
- (ddline)# @! L4 ?7 X6 i3 _. }% a
- )
( h: ?! P: \3 Q8 a - ((= etype "MLINE")3 k- Z+ `5 q% X+ |( k( z9 I5 O
- (setq help_entry "modify_multiLine_dialog")" \8 N6 p. _7 [, M) ~: r- Q3 ~
- (ddmline)# ~6 I6 k* E' i% c0 d
- )
9 k% j4 g5 g: S/ P - ((= etype "RAY")& c3 k: O+ I' O1 W G; ]7 ]$ S( X
- (setq help_entry "modify_Ray_dialog")5 o; ^* z% |8 F( ?
- (ddxline)6 j* A; a: z* V6 a
- )
% l8 _2 j$ u0 u - ((= etype "XLINE")9 g- R' h; s- F3 [+ V. ]: F
- (setq help_entry "modify_Xline_dialog")2 Q4 \5 w3 d- c* U% j( B
- (ddxline)
/ b7 R9 c# d0 Z9 K Q7 o: ?5 U - )
4 @, f/ B3 u" B2 x - ((= etype "POINT")0 w" M8 K0 Q3 K/ M
- (setq help_entry "modify_Point_dialog")/ C8 k% }6 H7 e. a! V: K
- (ddpoint): N) j7 |7 B! s6 a" u/ c) ~
- ); n& X. `2 K4 {! h$ M2 @
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
, M7 t y' m X$ V |5 i - (setq help_entry "modify_Polyline_dialog")
4 M }( F7 V% k: Y1 [# I9 B - ;; If a 2D pline, check to see if it is planar to the current
- x2 o+ Y& J9 M, ~/ k: X - ;; UCS, reject if not. To see if the pline is parallel,
' N1 ] ~$ N) a1 _6 U( ] - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
4 y) a0 B0 V$ R2 h3 x - ;; and then converted to the current UCS and checked to see if
! W% Y& [: c" d7 m) C+ m6 i* a7 s - ;; it is equal to (0,0,1)./ V h0 h0 s+ `3 z3 R$ u9 V
- 8 @$ B6 ?- _/ X- g8 s
- ;; Incase the 210 is default and not in the dxf list.
0 B# X( [2 o9 q& k - (if (= (assoc 210 (entget ename)) nil)$ B9 X8 k# B; a+ @
- (ddpline)
& A# u i. w5 P4 ^: s. N4 E - (progn; J ^/ j. y% O) W% [
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
, B n& C" o3 n% t - (not (equal '(0.0 0.0 1.0)
, g8 `4 Q! h. j2 {6 T0 M7 G3 Y( @- W - (trans (mapcar '+
" v6 q1 N9 b' O% r# q) ^4 A4 }% | - (cdr (assoc 210 (entget ename)))
% z: g8 n- y# _; @ - (trans '(0.0 0.0 0.0) 1 0)& M3 f9 Y0 ~. L u A
- )8 Z3 D! C3 G- u8 z( H% f' d {
- 0 1
7 [0 u* r! ^5 Q$ f8 _ - ), P4 S4 g o0 C T. ?
- 0.0000000001 ; fuzz
+ q: s9 C& m m2 {$ k( s - )/ \ u" M1 S- }
- )
Y# N, n, U: O2 e6 y: @2 C - )- \4 h* | P( r3 N
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
. B# n7 h" e1 G$ c4 [0 \ - (ddpline)
3 g% Y% O' [0 v/ K. `( `- m - ) R5 g0 f/ M7 X, l- H' g7 |2 g. W
- )! M4 n% f. w/ E$ B5 N9 u* u1 s
- )
! G" q8 m" @1 i. V - )
g5 |/ R$ g! l/ B1 U9 b5 w$ ^- y# k. m& Y) L - 1 ]: z7 c( r. k% W) p
- ((= etype "SHAPE")
; V! t0 I2 i H9 o }. ~4 I* M - (setq help_entry "modify_Shape_dialog")
8 r3 ~2 V+ A; C( X9 A - (ddshape)
) h: f! W y; R; L - )
6 C: P! |0 N$ U: P/ e% Y - ((= etype "SOLID")
& m3 \7 ]5 x k' e+ q - (setq help_entry "modify_Solid_dialog"). X' ^" l' E5 c/ x8 C& y, |' t
- (ddsolid)
- I4 d H6 c; s - )
- j4 E8 a5 s$ Q; F$ h w" r - ((= etype "TEXT")" u& B" ?4 d5 j0 l
- (setq help_entry "modify_Text_dialog")
' T6 F) W! @$ F* P - (ddtext)* }6 ^. S5 K" ?0 t
- )% Q% D5 Z0 V: k# \3 i2 ^4 t2 F
- ((= etype "MTEXT")
# W- x5 D. O" i" {5 { - (setq help_entry "modify_MText_dialog")0 n+ h8 J- T. J, S) Q+ D
- (ddmtext)/ J8 N$ n. {, v4 z: n2 C* `
- )
$ `9 `0 @* u0 w8 F - ((= etype "TRACE")/ Z7 }& J: V6 g3 L5 m6 w* T
- (setq help_entry "modify_Trace_dialog")
% s4 G% P- E% X' O - (ddsolid)" |; }: I- g1 ]: g+ o- c7 F, v" q
- ) M$ m; R$ G- F0 Z1 h, _
- ((= etype "VIEWPORT")/ N7 E$ b! a2 W- C' ~% c
- (setq help_entry "modify_Viewport_dialog")2 e% b2 G6 Q7 L/ k1 X1 n% J
- (ddvport)
1 z o) L9 v; l3 B& S - )
1 z& r& W) C" H5 N. I: j - ((= etype "IMAGE")6 D% ?* @ j3 j( l
- (setq help_entry "modify_Image_dialog")
4 f. l% H7 o: I) \ - (ddimage), u9 B% s9 e: w
- )9 s% y. ~. M0 N; O
- ((= etype "3DFACE")' g; r3 J. ]2 d9 F% F d
- (setq help_entry "modify_3D_Face_dialog")
' Y+ c* w9 H3 @; ~ - (dd3dface)9 H( d* d% `! ~* i' @. P) ?, j' u* \
- )9 z. Y( C) K- K3 L: `
- ((= etype "DIMENSION")( Q8 S1 j1 P5 M4 G$ t6 a9 F' U
- (setq help_entry "modify_Dimension_dialog")' L" m5 w; Z. U2 i7 G
- (ddimen)
1 x: _8 H& b3 B: x9 g2 M - )/ h$ ^8 K; H$ n* H4 {6 _' a+ U1 y
- ((= etype "TOLERANCE")
+ O& }# c$ ]" f2 _' o - (setq help_entry "modify_Tolerance_dialog")
! h3 t& L0 f' \$ ? - (ddtolerance)
9 [& Z/ o6 X9 b# f8 I2 c' a$ Y; ^4 u - )- A/ d0 c# m# _* S
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.
& b" e$ e2 x. i9 H- @% u$ G7 R - ;; This allows DDMODIFY to work on any custom object or any new object type
' P6 V. p9 d# X7 _! S" b+ A - ;; that isn't specifically handled above by calling the more generic DDCHPROP.
' z6 I R7 i3 ^! n/ z - (t; L, _) M7 J, t) Y! `
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
" h+ R3 Z; L/ N - (princ (strcat "No dialog support for object type: " etype ".")))
% f2 M5 ?( n6 Q, C: ~4 x2 j) L, G# W - (progn
5 y0 S" R+ p" o# H1 X. R+ x; I - (setq tempss (ssadd ename))
8 [8 \: i: b' W* A/ }' Y - (ddchprop tempss)$ W& G- D9 B0 h' o( |& P
- (setq tempss nil)- t( u2 s! c# d l/ j8 @# W
- )
' p& B1 g$ t; k - )
% j* F- f0 Q. B% Y/ e - )9 N Q8 N6 P* i* c, e& t: G5 C
- ;; Previous fall-through condition.
9 u J) g2 p' Y; y1 Y - ;; (t (princ (strcat "No dialog support for object type: "
* s% s; ^. f, {1 e" y. n' r - ;; etype "."
- `) I, E( [0 Z, ^ - ;; )/ i. L9 A- P6 v1 g0 o
- ;; )( A8 u: n9 w8 y$ o* w% H
- ;; )
7 P. j5 t) \& E# q/ j1 l" h1 z6 Q! w& I6 a - ;; )& c% q8 E0 L4 z% B9 q( ?! l6 z
- (ai_undo_pop)
# }1 d, j8 a( L' b+ G6 {% ? - )
' ^) T/ n0 _0 M7 C - )* ]) I/ W( }& u
- 5 I2 K# N$ i# Y
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle# C( [6 H' L8 {4 G
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back$ m. R7 p: a0 j
- ) ; to what we started with% }% I* K2 T9 t* h7 C, e1 a
- % b" I. H" i( I3 n6 Z! A( U
- (setq *error* old_error)
; D9 i$ E% }" K5 ]& ^1 o - (setvar "cmdecho" old_cmd)/ q2 p% f( P9 _
- (if (not reset_flag) ; if object was modified, then* B o6 O* u0 a9 K& _
- (ai_return ename) ; return it's ename to caller. [. V0 d: a) v# s
- ). }; g. |/ M3 F D
- )' _. ~0 k' E5 V- E8 j% D! [' V. [
( @% V: G0 ^- \$ f. X# E$ _- (defun checkForLockedLayer (ename)
# x: z5 }" S! N# h% F9 V5 b2 h - (setq layername (cdr (assoc 8 (cdr (entget ename)))))9 Y, j" j1 |" o/ C! {! k' @
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))9 P8 Q7 _ V& m0 S. t6 {) T& L
- (if (= layerflag 4)
7 Y+ t2 G$ _1 Y" Z4 S - T9 {9 ]0 y. e8 ~8 D- q! }. E- L$ H6 t
- nil" f/ n- v" u* d7 C. o9 `; M8 y
- )
0 a9 n3 p$ ], z2 N5 V# ` C- Q - )
R$ e& _, Y7 x8 U/ }: e1 k9 K - , v2 T: L& W6 n7 h+ Z7 @# h5 Z/ ?
- (princ " DDMODIFY loaded. ")
! r8 i6 _) l( d i4 c* b( z: N& u - (princ)
% {/ |+ Y7 A% d4 K - ;;;???;;;---------------------------------------------------------------------------------------& z# e& R/ J3 N3 i; W) ~
- f2 K" {7 Q3 \ ?( k
- ; Next available MSG number is 8
' H% E8 y7 j6 {! }; @ E" {& q3 a - ; MODULE_ID DDUCSP_LSP_
; O7 x5 T% M8 Z - ;;;
- F' B: w, ^8 v! N# i+ j - ;;; dducsp.lsp2 V6 B" R3 p( h6 R% a
- ;;;% Q) Q( o D- j8 f7 w. C
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.0 D, i& q$ }! V+ g- H
- ;;;9 B W& F e7 e' M& Z
- ;;; Permission to use, copy, modify, and distribute this software4 I/ l$ f. d, m4 [) u
- ;;; for any purpose and without fee is hereby granted, provided
4 q2 x+ _3 Q: v1 } z - ;;; that the above copyright notice appears in all copies and1 ?! g4 ~% {* `7 o
- ;;; that both that copyright notice and the limited warranty and
5 K0 W( u6 O/ @! V - ;;; restricted rights notice below appear in all supporting6 V) [- e X" z1 Y9 Z
- ;;; documentation.0 P8 u% k# A: R, b6 Q5 Y
- ;;;' C+ k' e/ i. X& t& q% Y
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
/ C) q1 r; a- c0 s1 p* U6 j - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF; s1 E# c; e: b/ p& K* y
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
) ?# v; H& ^. G, p& B j+ P - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE, N; e7 e6 ?# w9 g
- ;;; UNINTERRUPTED OR ERROR FREE.$ u& @, {& _& x9 ?
- ;;; T; F# v, v6 ?- H- ^4 s
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
& P% ]; n0 J% o8 a; P - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer& X Y9 L7 g s0 o7 ~4 f# ~- M, t5 S
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ; l+ z8 J( L, H: g+ V
- ;;; (Rights in Technical Data and Computer Software), as applicable.' R# K) }- W3 n, C& m* i! Y
- ;;;: x& Q# g m- f1 o: Q
- ;;;.
5 A8 n; t* O# {! U" K - ;;; C:DDUCSP - User Coordinate System presets dialogue.
( o6 |0 ?9 c/ L2 B - ;;; # k: e2 q/ }( n; f' ]0 c4 `
- ;;; Uses DDUCSP.DCL for the dialogue definition. The/ C h% Z1 ?2 b% o* l
- ;;; slide images are in ACAD.SLB.4 E) Q( _# V, p% Q9 v
- ;;;
' ^4 P. z6 L" |3 N: n4 ]- l - ;;; ===========================================================================* Q, U& a" H5 m
- ;;; ===================== load-time error checking ============================7 o& n# n0 Y$ V
- ;;;- t0 t; w! I. A: _6 o& X' B
- 4 b7 t: j |9 a/ ?
- (defun ai_abort (app msg)$ w* \. l, ~4 _( J0 y% f8 }
- (defun *error* (s)
! U- l$ a$ Q( r+ A; @' Y - (if old_error (setq *error* old_error))
: z; [6 h# T* v3 Y$ ?' b - (princ)
' \4 S8 p8 i0 M1 b* O( [" v3 e - ): b: g9 T$ t% e% o: f2 N& [% n
- (if msg
0 r$ H. G' U; p5 W9 p - (alert (strcat " Application error: "
; @( h0 y- j1 K% r* I2 |& T9 C0 B - app
9 q0 T. ]/ L/ M; A3 w; G) M, Z - " \n\n ": O" M; \' h/ O6 J6 x/ w
- msg0 R4 N" ~- H/ a. _2 o2 T8 r
- " \n"
- P* M7 j4 C# `8 X7 O3 Q7 C - ): p+ X* N% e+ w+ ?
- )/ Z5 s7 p" ?0 o
- )
; T2 v+ n+ O" w1 l - (exit)& Q% N3 y0 y% m6 |3 J, F
- )$ }2 q& J% S& Y7 h2 `
- 4 b" m9 `/ U+ g7 g& |
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
& C6 m3 c. O: v( F4 H - ;;; and then try to load it.
& b1 G1 Q1 E! M% r6 I - ;;;
: c6 A! E/ z& _! _ - ;;; If it can't be found or it can't be loaded, then abort the% x% t3 M5 U; Z, H! I3 D
- ;;; loading of this file immediately, preserving the (autoload)
& U6 q& J6 G, k% p& R% P% n - ;;; stub function.8 A# o. y5 _$ k N
- 6 W: @: a/ N! N. X d) ]1 u! v
- (cond
. T: H) @% r3 |& f: w - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded." t- `% q+ |( p: d) G
& U1 T- z6 e* H$ x6 x2 E4 R- ( (not (findfile "ai_utils.lsp")) ; find it
; f, h, V2 r3 b. q3 B - (ai_abort "DDUCSP"4 F+ Q7 R! o* t( R
- (strcat "Can't locate file AI_UTILS.LSP."5 p( B( w% b" ^6 ?4 h/ [" @' c) ?0 K
- "\n Check support directory.")))- A0 r4 Q4 t f4 G/ q" ?6 ^7 A
- 9 p2 K3 o6 ]" Q" r
- ( (eq "failed" (load "ai_utils" "failed")) ; load it! O! Y5 O1 u; t/ p5 c, l* J9 n+ [
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
b" e: Y7 Z4 t; z R - )
! K5 G; E6 m: `* A" h
: [$ b+ G* \5 ^% f' e- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP4 o1 t# t: L1 E$ m) H$ N1 V$ V
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
( Z: }8 m/ Z4 J/ m/ ^" ]- o - ) ; ai_abort's alert box dialog.
5 b+ K2 s. ^7 L8 n* ] - # L7 r* }4 M0 ?- N
- ;;; ==================== end load-time operations ===========================+ w2 W6 S: p. G* w0 G& k9 C
- ' B+ W( r/ h4 B" z
- (defun ai_ucsp_start ( / program)- m" D' p2 {" N/ v# I" `3 t
- ;; Get program name
) E: _; E+ f* J" u7 }8 b - (if (not (setq program (getvar "program")))
1 R2 j; J7 j' m5 I3 V - (setq program "acad")
2 S3 l2 }# q, o+ `2 k; M* }- X - ), r, C+ E+ w/ y0 s
- (foreach v0 '("world" "left" "cview" "top" "front"
# u, u) ^0 Z5 C - "bottom" "back" "right" "prev")
i8 a; `$ q1 A& H* P: [' a - (start_image (strcat "ucsp_" v0))
, c) ]( g- Y9 E- S+ H4 b! ] - (slide_image, g: T8 \! o3 _, \1 H, Q
- 0 0
, a- u% y7 U6 l! q - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)) {6 s+ u+ L& @( B' ~9 w
- (strcat program "(u-" v0 ")")
. _) E( U8 ]! m( _# y) d - )
, W7 M; S; Z$ Z# @/ v - (end_image)
3 Z/ p- l" Q1 ^& r$ n! V6 m - )
+ i# F/ Y# V4 I - )# r* A7 s6 j: s; E; r
* w! Y, g+ x" N4 V( l1 _- (defun ai_ucsp_set ()$ B; m: P! f+ v/ E. T
- (if ai_ucsp_sv
6 q( J4 ]: D9 ~8 e, f i, _2 A m J - (command "_.UCS" "_V")% ?. J/ a* a7 y( S
- (if ai_ucsp_prevs6 c! W$ \6 \) T& E
- (command "_.UCS" "_P")
, \3 M+ m" `7 P' D x5 n# ]6 G - (if ai_ucsp_chg5 M) ?, U) \" M* N3 ~0 D6 S
- (progn8 m5 J) i5 ]( h- O8 L: S
- (if (/= ai_ucsp_a "*")
# c3 r. c. q& k! J/ _ n8 ` - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
) s: g' `4 }9 C# U+ T - )- K( R' X2 L2 M" G% F" ^
- (if (< ai_ucsp_pick 6) N4 n# z) f$ u( B8 v- c& k
- (setq ai_ucsp_set0 "@"); {4 U K; y# Q" e
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
- r1 e* F- `& w8 ]9 Y+ t% K - )/ r) p2 F9 T% `0 s, z Q
- (cond ((= ai_ucsp_pick 0)" k1 m; i5 t5 }) `7 g9 `4 O% ^2 Z) R
- (setq ai_ucsp_set1 "0,-1,0"
; c r; S: p, s5 Z- L$ v - ai_ucsp_set2 "0,0,1"
m- A! O5 O* h; I6 w2 X$ M - )
" o6 }: y+ i z/ J3 { - )
3 d! Q. y Y3 P. t! ~ ^8 ] - ((= ai_ucsp_pick 2)* G z; k! O! E, K
- (setq ai_ucsp_set1 "1,0,0"
5 c [/ h* m" ^+ [% t - ai_ucsp_set2 "0,0,1"
+ G' H8 }6 I7 ~1 L- J5 g3 L* F+ H - )
9 f: q0 l. ^3 Y: S4 Y5 W: ` - )/ k$ e& i$ \ m u
- ((= ai_ucsp_pick 3)( n: ]- `% d$ Z S- b
- (setq ai_ucsp_set1 "1,0,0"; J$ ^- R) N' U. L
- ai_ucsp_set2 "0,-1,0". a$ H. _; @ Y5 o; r
- )
" l8 A$ v- Y' t, g - )
# l) h! C7 v/ _& a9 ^ - ((= ai_ucsp_pick 4)1 n7 @# k t/ y$ e: y
- (setq ai_ucsp_set1 "-1,0,0"/ f# `7 d( e; X5 @! J" C7 d
- ai_ucsp_set2 "0,0,1"! X9 P5 I1 @- J, ~
- )2 U5 l7 D$ y' a- d# r
- )+ B A# Q0 f b& s
- ((= ai_ucsp_pick 5)
) ]. h3 o3 K. q: g% }) C E! R - (setq ai_ucsp_set1 "0,1,0"
2 ^% z; s; {5 o! ?* V - ai_ucsp_set2 "0,0,1"
# w2 X8 v4 f* W; Z4 _/ ]9 M: s - )
4 @ X' d# J6 K3 \ - ): v* D6 P8 T% [5 K0 a. ]
- (T6 |) N/ W0 N( M1 A- k
- (setq ai_ucsp_set1 "1,0,0"
) p! K& V4 m" y+ S - ai_ucsp_set2 "0,1,0"
) g6 X f. L4 F, G - )
3 ?) R1 e: k7 e0 q9 [' c( Z - )
4 h6 i! Z) G! ~7 m - )
" M) N" V6 E1 z# F4 p+ e/ q: u - (command "_.UCS" "_3P" ai_ucsp_set0 # [% K3 B' t/ z" O+ }; B0 O1 t' a
- (strcat ai_ucsp_a ai_ucsp_set1) * r: x9 |% ~0 y& e& A$ r% y& q
- (strcat ai_ucsp_a ai_ucsp_set2)4 F& M0 S3 k; _/ g4 [
- ) - d% [7 Z- ^" @' ^' h% ~% \
- )
; Q: ?4 Z& {3 F" S+ U - )0 C- E( N5 t: Y& E: K
- )
1 W& P: p- t- i6 a - )* M( ~, c3 c N" R) I% J
- )
$ V( l3 j& w; H7 A/ Q1 D( y - 9 b; r1 p: M# H) _9 q1 d
- (defun ai_ucsp_p (val currtile)$ d, |2 v6 Y$ v4 ~4 M# V' K# E
- (mode_tile ai_ucsp_currtile 4)$ w" J a) u1 R+ M8 a2 J2 T/ ]: i4 X
- (setq ai_ucsp_pick val
2 g. W) t9 d3 R1 P( | - ai_ucsp_sv nil
- w; _- t/ V g# Y8 q# Z+ D `- k" a - ai_ucsp_currtile currtile N1 t2 Y( k, F4 H# d( {5 ^
- )
; G7 ~8 N+ L9 K5 L9 _: o" ^ - (if (/= val 1)7 q! E7 H! C8 y: A
- (setq ai_ucsp_chg T)0 N0 H6 k2 r; s- x/ A4 S6 u3 W, {
- )
+ d8 E1 p( Q+ I! V0 B2 h - (mode_tile ai_ucsp_currtile 4)
# C/ \% x1 w5 H: H1 S V$ a0 m - )
2 s; J" e/ ~4 x3 U' C- o1 p P
( W& j1 ^; V! p8 {! s1 o- (defun ai_ucsp_swcs ()
- d# R, L( L2 P2 n% H - (mode_tile ai_ucsp_currtile 4)
# \; w" T0 C" K0 r8 K* u - (set_tile "ucsp_a_wcs" "1")$ D3 U2 R6 d' a; k N
- (setq ai_ucsp_pick 60 n! ]$ p4 O! f8 S$ L6 n* Q( N$ q
- ai_ucsp_sv nil0 E, q" c7 r; H1 `( ?
- ai_ucsp_currtile "ucsp_world"1 |9 B: W2 y. [- ^9 ~
- )
! k! {4 ~1 H# u1 I O - (if (/= 1 (getvar "WORLDUCS"))
+ X3 A( ]* S+ c& H, W - (setq ai_ucsp_chg T)
4 o! T$ n- u4 Q( x5 t$ W - (setq ai_ucsp_chg nil)4 ?5 Y; {# k( Z, P( p
- )
9 G- _. G, M6 T {0 t - (mode_tile ai_ucsp_currtile 4)% ?9 Y& X5 W. i" L1 s, F6 P
- )
; S, v: Y$ Y& A) d! u7 P' c8 d - 8 X8 ]5 R8 @# |( ^4 [2 Y
- (defun ai_ucsp_cview ()
$ B8 ?7 g5 p% K/ l9 P - (mode_tile ai_ucsp_currtile 4)- i) c% @9 L* D# _3 T: C
- (setq ai_ucsp_sv T ( L+ W1 l" x3 _! K; n
- ai_ucsp_chg nil9 q+ w3 B6 b% D. f1 @2 \. X
- ai_ucsp_currtile "ucsp_cview"+ @! F- q$ k% Q
- )
! N e( D* b* M - (set_tile "ucsp_a_wcs" "1")3 I D9 P' v7 S8 E5 R8 X* e
- (mode_tile ai_ucsp_currtile 4)
; L) X% L4 ] A - )
2 Q2 t; |8 v* U& t4 n% P5 ?; o
1 `- M' ?; A$ ]+ d% U1 Y7 h. |, d- (defun ai_ucsp_rucs (typ)
3 W& ]# `( n4 K8 W- r6 _- L5 ] - (setq ai_ucsp_a typ)% v. U" b2 T! {' f0 i
- (mode_tile ai_ucsp_currtile 2)
/ D" @* r) H& h% W3 `2 N - )
7 \- o0 {' e' X
7 T0 A# R3 ?2 U8 c6 }9 L" K9 i% n- (defun ai_ucsp_prev ()
& R o5 ?$ w+ s - (mode_tile ai_ucsp_currtile 4)
8 U* ^( z# ~, t! g ?. D - (setq ai_ucsp_prevs T
# \- ~. W- x5 B& f/ b - ai_ucsp_currtile "ucsp_prev"
! t9 v9 m& x8 C/ _7 N - )2 y0 k" e4 {' e/ p) E
- (mode_tile ai_ucsp_currtile 4) h5 }0 x' d( T/ b) v
- )
) B2 Z9 V2 N* x" ? - P6 g+ J+ S3 z3 U' w
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)% U/ e8 r8 ~4 s1 y$ X! r4 N
- (if (not (new_dialog "dducsp" dcl_id))
" x% f7 G \8 i$ ~8 N/ `+ w% ? - (exit); b( _, w* c i; B- j
- )5 X2 e+ m$ H1 m- @: c$ k
% Z- K, c: |5 I: H! D- (ai_ucsp_start); ^% u) ?) M7 N _7 ?
- (setq ai_ucsp_a "@" 9 u& l5 _8 x; K# Z6 |, P, v
- ai_ucsp_pick 22 k5 L P, z( `. V# P+ U6 ~
- ai_ucsp_currtile "ucsp_top"
- Y- P- c F) d2 p/ M4 M - )/ x$ g# h( m& e1 D4 C- o5 K
- (if (= 1 (getvar "WORLDUCS"))
9 M: ~* f# F& u - (progn% W( E& M% q, @3 a$ g
- (set_tile "ucsp_a_wcs" "1")
: ]- k$ V d: o4 P; w$ [ - (setq ai_ucsp_currtile "ucsp_world")& e. r* p, e, n9 b5 j' x! d
- )
+ @/ c3 [) l$ D; ^ - (set_tile "ucsp_r_ucs" "1")
; G2 V8 G. }, g# F; _& Y - )7 m3 e) T/ T& [, T
- (mode_tile ai_ucsp_currtile 2)0 S3 S v4 N" _! d: l2 a! v
- (mode_tile ai_ucsp_currtile 4)
' E6 E+ e" K1 w# I - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
% u) V8 ]0 T( t+ d - (action_tile "ucsp_cview" "(ai_ucsp_cview)")
, b/ `8 e2 h- J* u \, j8 S - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
) M- r+ w# ~& E2 @( v [ - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")0 R5 ^2 u* t$ W6 ~& @
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
- t# h6 R) ?! x5 ^8 k7 H - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")$ Z P3 h* Y C/ T G T
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)"). _* n, ]) w8 ~( L* Y3 d3 d
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)"), ^' C0 b' E. W2 J: Q
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")
5 a8 n$ Z' w. o$ P3 l - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
$ i( ^* Q$ M4 x - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")7 F" C# v5 M9 s O
- (action_tile "accept" "(done_dialog 1)")
4 |# C) m( |: D2 m5 Z, i0 F - (action_tile "cancel" "(done_dialog 0)")
2 J- f) G: b/ K3 S% l7 U& C - (action_tile "help" "(help \"\" \"DDUCSP\")")
5 L3 f l! d% f/ [$ K - (if (= (start_dialog) 1)
" B& g0 @) ?4 k3 `# H+ T; h. ^1 k4 ? - (ai_ucsp_set)
. Y. V1 q; ^! U5 F+ p6 f; F' \; | - )
6 W! R& h% m$ r9 D - )1 X" U, j9 Q3 W: u ^5 p; {1 t
* D# k+ @/ t$ T" m8 ^. K n& q4 l* a- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs 6 i* S# `% w/ ~4 i2 h9 [- S. ~
- ai_ucsp_sw undo_init)+ i$ q; t5 c. G. t" N7 o& Q
' X) I1 w, V! ]. U$ ?0 y8 a9 l- I5 e- ;; Set up error function., J9 q4 `8 m! T9 ]% T7 ?) W4 A
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
* f- ^% u% ^2 d - old_error *error* ; save current error function
9 @% f+ ?% Y! \5 Z2 r# N - *error* ai_error ; new error function
U$ p' S$ H7 r3 J8 ]; W9 | - old_osmode (getvar "OSMODE") ; disable OSNAP for duration8 j1 j4 v: W/ H( s$ p
- )
; R! \* s2 P8 d0 o D& O0 H/ L
$ y, w6 ^1 ?6 B" W6 p& S/ }- (setvar "CMDECHO" 0)
9 x' Z8 q3 Z& \' a" a( u! i
, j2 N2 ^! |" u) t; \1 s- (cond* Z" W' Q& v- U6 k) b
- ( (not (ai_notrans))) ; transparent not OK$ `" k5 L+ Y5 t) x' K$ B
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?/ t2 d3 l% R+ H
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
- a, N2 E" X/ `+ L8 a8 s( X- o - (T (ai_undo_push)% v0 {7 o5 L% \. Y' f
- (setvar "OSMODE" 0)6 ~2 g H* F, _) r) `$ o% x4 t$ p: B# b
- (ai_ucsp_main)9 z7 }* t. s) S% b0 d
- (setvar "OSMODE" old_osmode)
$ u+ U% o8 B V* K - (ai_undo_pop)/ K- k8 |' s, m A1 Q
- )
1 P2 K5 L- A, d4 L; ]: _ - )6 A1 j% v2 q& J3 D
# l1 V o6 I& D; A2 D- (setq *error* old_error) 6 K6 p, I7 F7 C, M" i5 [
- (setvar "cmdecho" old_cmd)! h' V8 D" i% M/ f8 o
- 6 v' K: b$ @" X. ?5 a+ p9 r% ?
- (princ)- _, I# W5 j0 _
- )
) X$ O* M2 P2 E1 e3 \& I - , x0 b) t) }. {
- (princ " DDUCSP loaded. ")
5 _* `7 r9 R4 F' ?: I - (princ) E' y8 \" x% Y, l4 E5 p
0 M! r# V0 x8 X- L$ J+ f- ;;;???;;;---------------------------------------------------------------------------------------
1 I% ^! @: y' J( l8 [5 u% o
( C6 n: j4 m) y8 I4 _- ;;;----------------------------------------------------------------------------
5 l: l6 C* O$ i& D. ? - ;;;
* @% L0 g0 ^7 r9 x' I- g- X) W - ;;; EXCHPROP.LSP - T1 x+ d2 r. A
- ;;; Polyline and text modification capabilities added by
2 t5 J% Z7 q& ^, [- u - ;;; Randy Kintzley
7 G3 c& _9 `6 v/ h. [9 \ ^ q - ;;; 5 k! T/ ]3 F- r6 G e$ @) P
- ;;; Copyright (C) 1997 by Autodesk, Inc.# X4 f; m \+ j* y. ]9 C
- ;;;; d3 K# [/ B: m# t) H" d2 R
- ;;; Permission to use, copy, modify, and distribute this software# y/ h, w, O( y
- ;;; for any purpose and without fee is hereby granted, provided5 P# ]( Z1 a1 L. N. Q- t
- ;;; that the above copyright notice appears in all copies and; b( i; M: t* e
- ;;; that both that copyright notice and the limited warranty and
: ]) I1 E0 h/ w& z# y$ w E! A - ;;; restricted rights notice below appear in all supporting
8 C0 U9 x. T5 u - ;;; documentation.' R2 Z2 |. ^. k- ?/ }
- ;;;
: l y0 \9 @) z - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS./ N$ `( k; e5 }0 X u- _# N! i
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
& e2 e( W! o3 d+ M; Y+ v( _ - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
! a5 t( L- J# ?* K: z. `( ]/ _- x5 q - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE) \& o2 ^. {0 F( B( w
- ;;; UNINTERRUPTED OR ERROR FREE.
" t- ]5 G( F5 }, W; O5 B% t - ;;;1 Q5 H$ G' D2 |% F2 p! Q* S
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to, t' ~2 y7 D; M- W, g
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
r( T4 J& K) J( N/ | R - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)' B: W3 Q' L+ U/ J4 e+ k# Y6 j# P
- ;;; (Rights in Technical Data and Computer Software), as applicable.
2 d: e2 E5 V8 ?+ J2 V: P - ;;;0 h5 n" `/ D+ E& p' Q
- ;;;.( Y# i) T/ U$ Q" r4 Y% D5 [" A
- ;;; 28 February 19974 S+ H J4 a1 w3 A
- ;;; W& w) o+ t9 |& J+ j
- ;;;
0 o- v3 Q0 w d$ } - ;;;----------------------------------------------------------------------------. S% u* B5 T3 J
- ;;; DESCRIPTION
) P& g6 u1 Q; `8 c - ;;;----------------------------------------------------------------------------
: X8 R. g$ l |3 A) v* D - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This 5 u: I( a- h' a3 ?$ y( W- u
- ;;; command gives the user the abilitie to change several characteristics q% j6 R" w, M- W7 U
- ;;; of selected polyline and text objects. 9 l n5 [* V% \7 L8 n6 c: E9 g
- ;;; The style and height of selectected text objects can be modified % S1 G' F" z, P3 G+ q6 Y
- ;;; (including text, mtext and attribute definitions) as well as, width and M3 Q" y6 G2 ]- N/ H5 m
- ;;; elevation characteristics of selected polylines (includes lightweight and
# ~1 ]: e: r& [$ ^3 H - ;;; traditional polylines.)
: B x5 N) Q$ V" x1 q - ;;;----------------------------------------------------------------------------1 p7 f8 {* l. U0 n ]- W, x
- ;;;----------------------------------------------------------------------------" ~2 ]& A) `4 }' `
- ;;; Prefixes in command and keyword strings:
4 Y7 \- @+ f6 X3 i, Z8 [6 T @0 f) H - ;;; "." specifies the built-in AutoCAD command in case it has been
9 l$ s4 _1 }- b* F1 v: b# p - ;;; redefined.
! b$ G3 P+ j2 y# b$ J( ] - ;;; "_" denotes an AutoCAD command or keyword in the native language [5 u1 l v8 b: Q
- ;;; version, English.
' ^- e0 n. l, B3 H$ Y! ^0 | - ;;;----------------------------------------------------------------------------
; |9 o& v2 a% s; L* _ - ;;;; ?! h5 [+ Y+ V9 U, j) W; F- x
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7 y! g, ?' ]8 W2 m3 H. r n
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;* E8 _/ M8 v6 W/ D: Q1 k( M9 o
- ;Functions created as result of loading file: exchprop.lsp
% o; e1 s& P, _. Y* |4 Z - ; DDCHPROP2
# Z+ t' h z2 f - ; DDCHPROP2_INIT
0 ~3 w; `/ t# m - ; DDCHPROP2_SELECT
. P( x+ z$ l! f$ U - ;
( }, I7 H. D& f- T2 k - ;Variables created as result of loading file: exchprop.lsp
7 g4 N e! j8 E$ Q, w - ; OLD_ALLOC. p/ p) o& M! |' f! F
- ;
% F1 R5 Q& M) `& Z - ;Functions created as a result of executing the commands in: exchprop.lsp
Y8 g6 X- D* b8 X( {' ~ - ;
0 V4 a5 j. u. j o - ;Variables created as a result of executing the commands in: exchprop.lsp! U6 [; x, @! C
- ; AI_SELTYPE
" C f5 D4 [" |$ u2 F+ p - ; BONUS_ALIVE" `& a: B3 ?7 S
- ; BONUS_OLD_ERROR
& x" [3 [% ] u% R- o' H5 p0 e' Q - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
* u) p) }' K9 K - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
. V9 \4 v. {; x! J
* M; e% \ V5 z6 } B+ P. p8 I- ;;;
- h7 S8 [- B( S8 F% @ - ;;; Avoid (gc)s on load to improve load time.1 v% d3 f8 }% A
- ;;;
7 a. a1 A' i! x8 c+ [ a# m - (defun do_alloc (/ old_allod new_alloc)
1 B T- `" U; d( k5 ~- \7 s( V% a# S. I - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))5 M! [& Z/ { h$ W) i B$ E
- (expand (1+ (/ 4750 new_alloc)))
; m+ l% e: D i3 H& a8 v2 h' n - (alloc old_alloc)
. Q3 D( A( a* ~ - );defun
) W3 x2 B' i8 e/ ]9 O' N) H
- W# ]1 l5 S d. c' B/ Z. [. A- ;runs at load time - rk+ b- F; G4 f) K) H7 f7 a
- (do_alloc)
, z& z: ~$ m3 C- @( S4 f4 G - (setq do_alloc nil)
; q+ p9 @; Y) [! {7 b/ o8 @* K - ;;;
% q2 C9 H, y& P) s9 N+ L - ;;; ===========================================================================
7 \% Z4 o [8 U# N' f( T - ;;; ===================== load-time error checking ============================
! |9 u" ~) c1 i2 x - ;;;& G: J. X9 S8 C: R4 s) t6 ]
+ d2 X- v, K* f5 A- (defun ai_abort (app msg) $ a' v* U% q0 R8 C5 \& k
- (defun *error* (s)& ]6 o( y' h. J: i* U% |7 }- `, c
- (if old_error (setq *error* old_error))+ o, ]% f2 c' v
- (princ). v5 B+ G E6 i% g
- );defun* t; c5 L) R/ U m
- (if msg
1 s( S7 E" ^3 i6 b; ^! H - (alert (strcat " Application error: "
; c5 \6 }( Y8 F/ ~ - app
2 z' a% g9 U5 G+ k - " \n\n "2 H/ i- ]5 `( U% i
- msg
) }7 m: b1 @! t: ] - " \n"
- ~3 t8 ~# W+ j. m/ d, Z) ?( e" S - )- E0 a7 I5 I! f: {
- );alert
" }5 T) E/ e/ k# Z9 p6 }9 o& M; A - );if
7 }0 _, J1 g i& x% } \ - ;(*error* msg)" l5 k: G/ ?0 B" W' [
- (exit)
; K: j E+ y5 d5 o - );defun ai_abort
3 q. p4 f _7 }0 q' @/ w, E4 N - 6 Q* s; F2 h" b
- ;runs at load time - rk
9 t+ \$ G; K' d. h; a5 V - ;(if (and *error* ;added the if wrapper around this - rk.2 n ~) T- X% }7 _8 S# Q
- ; (not old_error)
& W' z8 Y3 g( G* y/ \2 S) | - ; );and 5 a* h8 g; G3 |
- ; (setq old_error *error*);setq
, W; f6 k7 v+ \; ~ - ;);if q7 W6 O' l y
- + I/ Z* P s& k/ |& n2 g$ l) ~, O
- & P* Z' q& b0 A# n/ v7 H4 ?$ B. H/ q
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
$ ^9 L% C; @8 j* L4 M9 f - ;;; and then try to load it.
* T( l! F/ c( _* L - ;;;
# q# V: [+ T* r2 ~6 m2 L1 O0 ~ - ;;; If it can't be found or it can't be loaded, then abort the3 _+ v4 `7 \- t; S( _
- ;;; loading of this file immediately, preserving the (autoload), |8 T5 F+ ~, f/ z
- ;;; stub function.
3 G' \2 Y+ O; N. q% N& u( v - 5 {; Y! T: `2 V7 ]$ A+ p; P
- ;runs at load time - rk.- H; L/ p$ `/ o; Z8 @9 h
- (cond
N; {6 Q4 W0 P) f' M. Q6 b - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
0 {" x8 e, U+ `: S+ J, T - ( (not (findfile "ai_utils.lsp")) ; find it) u P% Y( B! n9 `& W; p/ [0 M) ?7 i* c
- (ai_abort "EXCHPROP"
& B/ Z0 n/ m8 d0 ?! p9 i; y - (strcat "Can't locate file AI_UTILS.LSP."
: u' }2 M# ]9 G5 `) u$ ~( [: { - "\n Check support directory.")2 J* V( Z1 b- G: P5 v6 a% V
- );ai_abort9 h+ u- k! y2 p# f- w9 Y
- )
+ u& e' c7 w$ H - ( (eq "failed" (load "ai_utils" "failed")) ; load it4 v& }" c5 J/ j; x& p# S9 ]9 {
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
" Q Y& D* h* I+ ~! d! N, @1 h0 `( a; h* s - )
/ U" W! o: \7 }7 _ - );cond close
5 L7 L5 O! n. |) `2 f - ! r9 _& I; ^3 G R8 h
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
; ?) @* u+ I J- Q2 ^- C! w! e% M - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
7 k2 q. @" V5 S! E+ x - );if ; ai_abort's alert box dialog.1 e S x7 i0 m8 K. ^! h, ~: q# y$ t, @
5 h) @7 ^' t: ]$ P/ V- ;;; ==================== end load-time operations =========================== S; P0 Y( \6 J, l7 U) h' a
- 1 O9 k8 @8 O5 h) Y/ n& v+ ]# b5 u
- ;;; Initialize program subroutines and variables.
; ~& t1 w9 F+ i) Z- G, j0 |% N - - F) o: Z' t% ]8 V/ j
- (defun ddchprop2_init()( k. A$ l" C) [* M
- u9 S- \! C$ t- [0 C8 c# C
. A7 k4 J9 n+ B0 m- & @4 P7 x4 R+ A
- ;;; ~ L/ G! d4 E" W# M
- ;; Define buttons and set values in CHPROP dialogue box
8 p) H, ]- g+ s - ;;
$ S8 U, q% C8 M5 {$ ]/ e! g - (defun call_chp2 (/ cmdact p1 p2)
" m4 O4 M) g# A! K: ` - 3 N6 _: ~: Z5 [/ {3 p. w5 v0 p
- (if (not (new_dialog "ch_prop" dcl_id))
" @" @8 t; [5 l4 M$ Q - (exit)8 G( {( C7 ~ o; v! c
- )# N0 [* Y5 S7 V8 t% Y2 U
, ?8 O; O9 B; d4 A% h4 [) I- (set_tile "error" "")
; `+ C4 f8 S1 ?* ~1 I5 P0 r/ p - ;; Set initial dialogue tile values" W- e- V3 Z' V* K7 X
- (set_col_tile)
: l+ j. o1 y" k5 O: J: S - (set_tile "t_layer" elayer)2 [7 h' N, q9 T3 r3 t. m% I7 X( h; a
- ; M) c/ L& c* k! Y3 C- N
- (cond- C H" }# Q* V/ j4 I% A! T" C
- ((= lt-idx nil)& p; ` w; @+ g& D& f8 U! P1 Z
- (set_tile "t_ltype" "Varies")
/ K9 D8 y# u$ _3 _+ C0 u - )$ z3 y9 X" |4 w
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
+ s/ Y% c% t$ U, o - (set_tile "t_ltype" (bylayer_lt)), u6 q' M9 v: n0 }
- )
8 f* }+ x. `; B3 O/ G! Y, U - (T
8 M/ {& p N+ M: }/ J( w - (set_tile "t_ltype" (nth lt-idx ltnmlst))
7 |$ |3 E/ \8 i6 ^8 k3 A/ ]. q q4 G% G - )
9 T. D* ~+ n8 j0 w - )
2 H% y! I/ W7 r8 j& Q x8 [ - ( F6 C6 K4 ?( ^# @- {! K0 S5 i
- (if (or (= ethickness nil)
6 o6 g# |6 }9 c3 M$ ?# p - (= ethickness "")
/ }9 X& l! X L: B6 g+ j: \ - (= ethickness "Varies")
! p% t- f6 m+ T3 f# P1 h - );or
% |6 M/ f- b* k" c) m - (set_tile "eb_thickness" "")& l" s+ Z0 C1 |) ?0 l1 S
- (set_tile "eb_thickness" (ai_rtos ethickness))
4 x' |3 e/ Q" q! J" b" T/ M - );if& g; u6 p. x8 }. G- w: L
- (if (or (= eltscale nil)1 v/ l4 U3 a. Q/ l1 G
- (= eltscale "")
- S/ U% [2 f) M _1 m; P - (= eltscale "Varies")8 o' O* d9 d" z
- 5 S- t9 u4 S& u
- )3 Q, }) B) R: [
- (set_tile "eb_ltscale" "")
6 ^- y/ K0 j7 e( e - (set_tile "eb_ltscale" (ai_rtos eltscale)): ~0 A/ _7 D& F: g
- )- u8 R: ?, ^8 [: P
- (if5 `8 ]0 H$ q7 t0 k+ P' T
- (numberp ewidth)6 |; ]" } W3 t4 y
- (set_tile "poly_wid" (ai_rtos ewidth))
# ^: a4 N* \0 h/ x6 o8 j) H% G2 D - (set_tile "poly_wid" ewidth)
9 Q$ z# B7 A2 S% V! t- _3 [+ F - )4 M8 o& y y0 A8 q! p& v, P9 W
- (if1 u: g; I8 s3 o% W w) x
- (numberp eelevation)7 `+ s f* Y3 R: t, R8 |
- (set_tile "poly_elev" (ai_rtos eelevation))
: X! V$ J& o0 u - (set_tile "poly_elev" eelevation)
1 |4 M* v5 k( ]2 b: l* G - )
: h. ~! R- M- `% E5 W9 q+ \ - (if
6 y$ E3 e! }' t1 _* }: a2 V - (numberp eheight)0 t( l7 E% l/ t4 ^. S8 u" R
- (set_tile "text_hgt" (ai_rtos eheight))
) k" R7 q0 _* V- B7 n( F- [. l, c - (set_tile "text_hgt" eheight)% J. t4 r! g4 p* _
- )5 d3 {* K0 \* a _9 m* N
- (if (not estyle) o7 n- N) }/ s3 c- C
- (setq estyle "")
) L, k, G1 V- p* i& @/ |0 v! A - );if 0 t |. Y; ^. F+ l; U
- (setq hair_style_list (tnlist '("style" 16)));setq
, k/ ~: y; Y6 g - (if (not (member estyle hair_style_list))
0 b% n; B1 L- r& q - (setq hair_style_list (append hair_style_list (list estyle)));setq* ]! I0 F+ ~' I/ Q- ^( Q# e; A
- );if
1 |+ V: L1 ^9 c: b7 M - 3 i; q% @! s+ Y# t
- (setq hair_style_list (acad_strlsort hair_style_list));setq
, [+ U' [- L" O, n - (mpoplst "text_style" hair_style_list)
! y) {. W% o% d) o" [* |0 ^ - (set_tile "text_style"
2 \% R$ p% D: C4 K: ^ - (itoa (position estyle hair_style_list))7 E1 h9 Q" E$ q7 A' \3 o) d0 y; ^
- );set_tile / X$ j& c6 f- u/ @+ c: h' t! E
& W, f0 w3 Q/ G1 e2 y# P- ;; Disable tiles if need be... ;@RK* C: u G" ]. N. i( V
- (setq a 0)
( N# {3 H, _5 ^, l. u5 }; a+ v J; p3 a - (while ( < a (sslength ss))" }9 e* i1 a6 o; ?$ E4 B
- (setq which_tiles; U& R* o0 [3 P$ k( i: `
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))/ \4 O4 ]5 g0 F! d
-
8 S( B7 b! Z2 k% }' X3 r! O - ;; If all fields are enabled, don't bother checking anymore.
! X2 [; M# f, `' s8 V3 ~: U - (if (/= which_tiles (logior 1 2 4 8 16))6 r1 i) u0 |" I1 e
- (setq a (1+ a))
/ }- o$ @# C/ D5 v( i - (setq a (sslength ss))' s' i2 K- E4 n5 Y8 |; }! h
- )
: {3 J( w3 M& @, _5 ?% ~& a - )
1 \1 U: M! e9 j/ h4 @4 X. h - ;; Layer Button and Text Field
- t7 {& g, V) Z) y5 ^! C. P6 f - 2 w% O/ a# G. m
- (if (/= 1 (logand 1 which_tiles))
, S& L( I2 C j2 r3 F - (progn
% s2 f& T3 L' ?3 v4 ?8 g8 v - (mode_tile "t_layer" 1)& K: o6 F. W' V3 K7 D
- (mode_tile "b_name" 1); _' }: W; y: \- D6 d7 i; x
- )
, ]% c% L( U4 [9 B7 L - )/ r2 U% x' q+ B1 S& p( n1 |9 {1 F
- 7 J8 p- _' m% ?: f7 [
- ;; Color Button and Text Field
# u ^8 P1 @/ Y6 } - (if (/= 2 (logand 2 which_tiles))
: }1 I% `* W& k2 c4 I - (progn
3 e2 `" C) n$ h: i8 t& `# f4 c+ P - (mode_tile "t_color" 1)% B$ H4 u: c& @0 Q) x
- (mode_tile "b_color" 1)
# G6 ~5 z7 U) H+ T5 P/ m- J - (mode_tile "show_image" 1)# D; M9 X& G, |- w
- )
: ^# v" n- H; Y% `5 y4 L- R - )( V, g8 C+ G2 p+ f- K$ |7 |
- ;; Linetype Button and Text Field- A" [' h1 G) s% ?6 F$ p
- (if (/= 4 (logand 4 which_tiles))
" r: L2 E$ N) N* N P: Z9 \ y9 b - (progn, h0 q: ?. K6 `) k Y
- (mode_tile "t_ltype" 1)
y+ E* P) @3 n0 u8 D - (mode_tile "b_line" 1)
4 Z0 f H0 H+ q2 ]% I; F - )
& t) C& @* A! k" A- E - )
0 Y* y+ z/ I- N2 @: ^5 l - ;; Linetype Scale Edit Field& w8 p5 U; O0 \% V
- (if (/= 8 (logand 8 which_tiles))2 }( n+ [; G9 s2 Z2 u/ I- D- M1 f: w
- (progn
f _" V& y5 y6 W: X0 s - (mode_tile "eb_ltscale" 1); y- p# Q; y4 n. k' h* U/ Z( z7 ^
- )8 f' W6 m1 {) H) N
- )% |% n$ v+ X& ?3 p; h3 e c
- ;; Thickness Edit Field., m: {- I$ j5 m8 o5 ~# R0 z
- (if (/= 16 (logand 16 which_tiles))) `4 h6 U( ~5 X, a/ o- c
- (progn$ N6 V; H! u+ Z* P0 ]0 d
- (mode_tile "eb_thickness" 1)6 V. R7 C" K! ~) L q
- )
& ?# P; C& l* T/ R( |/ J" Y- G0 j - )6 R9 Z! c6 @6 _2 B4 y
- % P% N6 R' V: g. C. W$ n- J) j1 M
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
4 G6 T( l, Z' ~3 c' V! P$ R1 Y - (if (not (= 2 (logand 2 eflag)))
1 b: e C0 \6 b4 ? - (progn
h' z) o T+ ~. D# G- \ - (mode_tile "text_hgt" 1)
& Q" G/ j7 D, t* H - (mode_tile "text_style" 1)2 } [. e& `5 {* g: b
- );progn1 N- j4 O7 ~) r' [0 V% k
- );if6 `* Z N: N- E# T ~& m
- (if (not (= 1 (logand 1 eflag)))
; \" w; H1 R9 C% ? - (progn
u9 A7 j1 L3 i1 |: o - (mode_tile "poly_wid" 1)
5 ~# ~0 f; ]. b) X3 j - (mode_tile "poly_elev" 1)
% M9 l* m+ y2 c2 v9 ? - );progn then disable polyline fields
' ]2 s' u6 v1 _/ [- I - );if
" ]8 _' i3 C7 `. n9 b2 V& ` l! t
2 l+ ?- C" I- p) n- ;; Define action for tiles
2 R0 g' X9 s4 O1 N6 R" j - (action_tile "b_color" "(setq ecolor (getcolor))")8 @7 F: p& h) A
- (action_tile "show_image" "(setq ecolor (getcolor))")- Q& @9 ?- k3 t( l3 f& T
- (action_tile "b_name" "(setq elayer (getlayer))")! `& z+ _, ^! z9 ~; I: N9 f" H
- (action_tile "b_line" "(setq eltype (getltype))")+ h1 g% z' ^$ ?; n" N% O: \
- (action_tile "eb_ltscale" "(getscale $value)")
; E- G5 l1 I2 N - (action_tile "eb_thickness" "(getthickness $value)")( k# D# S6 l" p& x1 X' p0 N+ G
- (action_tile "poly_wid" "(getwidth $value)")5 d) O- S3 c% h: R1 a. f
- (action_tile "poly_elev" "(getelevation $value)")4 |8 X7 m+ M7 G. e7 [8 U
- (action_tile "text_hgt" "(getheight $value)")' x2 f6 h: K; I6 S2 Y2 ]% d
- (action_tile "text_style" "(getstyle $value hair_style_list)") ' V* r! B' t ^8 m1 q9 Q' Z" o1 a
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
. ]0 X% Q+ R- d- B4 F+ I6 B - (action_tile "accept" "(test-main-ok)")
' V) U/ v1 B- C% S0 B - 5 ?: S- {- k; w7 k
- (if (= (start_dialog) 1)
) I _- M B1 N8 X! f9 s( U# P - (progn
$ g" A: s% o+ y- }& e6 o4 d - ; Update special properties for polyline and text selection-sets.
7 y* s7 H) O9 ~: W. i$ ~7 V -
5 ^* }2 ?0 j% {) m - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
% l2 [9 b" @4 ]- G7 o - (or ewidth
: d) y. b. p+ \* M. O3 ~7 g- U# f) ?3 s - eelevation
2 }! J. M3 y* y' n# G3 L! d - );or
! e/ Y8 c: J6 t! J+ t1 Q - );and
2 I2 G4 g- p. X% g) _3 z: h, X - (progn
! F1 {) s" e: S - (setq ss-index 0 ; @1 R- x8 i0 u+ N( Z- u6 {$ r
- ss-length (sslength poly_ss)
4 L. X1 ~6 r7 G* A" G" i/ y - );setq
3 Z1 ^2 t; h' S2 j/ y - (while (< ss-index ss-length)% E6 q9 C: T& ~% A, x7 e0 W
- (setq ename (ssname poly_ss ss-index)
' a- r$ E1 V6 m) j6 |2 r+ P" |5 [ - elist (entget ename)
" i, r* h/ d& g - );setq
0 P) d4 Z. H" T; ~) w1 Y - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp/ S/ @4 e' u% X$ |" y/ C
- (if ewidth
" w* O1 g& O; v0 o - (command "_.pedit" ename "_W" ewidth "_x"), c0 P" l$ L- `# ^- Y
- );if
* _) H$ O {6 [0 O) E+ B - (if eelevation 3 g+ ?5 R4 D5 ~9 Q( D6 d- B+ }9 U h9 c
- (progn3 C' b! g1 N' G) q" _) W" K$ n
- (setq p2 (list 0.0 0.0 eelevation));setq
! U7 ~8 }6 W4 z* }9 B- V - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
# u O2 ] i. ~$ W% h - (setq p1 (list 0.0 0.01 n+ _9 m* F7 m6 F: @: o# Y
- (caddr (cdr (assoc 10 elist)))+ q" a+ }$ e6 ?- J' V
- );list7 A8 Y& M) W5 \5 M
- );setq* I: ~: Q) e0 Q( B+ Z; `
- (progn+ _7 R9 p1 \7 H7 F: u
- (if (assoc 38 elist)
7 D! I6 z& |; H - (setq p1 (list 0.0 0.0. y% a+ J7 S, Y) r3 \" E1 k/ Z6 g
- (cdr (assoc 38 elist))
+ R& f/ Q$ p. u% u$ K( { - );list+ k& R$ \1 U6 W) z" ?
- );setq1 H$ `% B) O! ]9 e8 c
- (setq p1 '(0.0 0.0 0.0))
8 F4 Q9 \. h! r6 a+ K - );if& J6 i4 a2 T1 c- T. T# D, G6 [
- );progn 5 a& Z. z3 L% W
- );if
" N: e$ {2 w/ ~2 X - (command "_.move" ename "" p1 p2)" H/ r. v; p* A! x p
- );progn then change the elevation of the polyline
1 L& ^: Z6 r( w/ F) w3 Z - );if
9 c9 m8 K+ }: a! e - (command "_.ucs" "_p")
+ n1 [- k# w _7 \1 K - (setq ss-index (1+ ss-index))! k3 f1 C0 i+ \! |
- );while. a" W5 k5 f3 ?$ q* x3 J: E) n* R
- );progn then polylines are in the selset- T' I) C* \6 y8 [' e3 V! p
- );if
1 F" O Y4 P2 m& X; T4 L3 |5 B. D - (if (and (= 2 (logand 2 eflag)) ; text. p1 ]- N) g0 d9 I
- (or eheight
1 h' `. p) S _( w- f - estyle1 [( r( }- K' J, W! Z
- );or1 v/ o+ { }0 P% }! f0 D# ~
- );and
! \9 d1 n( P0 _* u" R# T w1 L$ N - (progn- ]3 ]$ P9 h) s$ N
- (setq ss-index 0 ss-length (sslength txt_ss))! m% [ i: f& R, D, C# Y
- (while4 c* q% k- T' ^ f9 r( Q5 Q
- (< ss-index ss-length)
. Y$ R# _* I* Y2 R a - (setq elist (entget (setq ename (ssname txt_ss ss-index))))
( \5 y3 ]: A& L8 T2 T* J2 t - (if (numberp eheight)
1 e% V5 |* o0 s& l" b( ~ - (setq elist (subst (cons 40 eheight); O7 D8 [2 i$ X8 w! q
- (assoc 40 elist)7 k) [4 H6 f$ @& l' f1 q7 |7 D5 l
- elist% ]8 r8 u' W5 A2 B5 j9 }
- );subst: E1 W6 v( {2 v2 A+ A
- );setq
. `; P, V! ?( _ e1 O - );if0 s. l" k, Q$ h2 D7 O1 ?" r2 r$ R
- (if (and estyle ;(not (equal estyle ""))
4 {+ P: L9 l3 d' J* O - (not (equal estyle (cdr (assoc 7 elist))))
8 ?( j8 o- v7 G; e# o: F* P - );and
& n! r0 Z, r; w+ U5 h- b/ V - (progn ( ^7 D. f! O& o- Z: b: H6 ~
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt % q; E8 A5 Z# @0 o. I0 h
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
* o( `/ |; c0 u9 [ - ; (setq elist (fix_mtext_fonts estyle
! `% H: d3 L) D* S' @+ {4 [ - ; elist
/ A( m" t. q) k, h e" Y - ; )
/ a) x( f3 g" q# n - ; );setq then# w/ E. N7 s. P) `, w
- (setq elist (subst (cons 7 estyle)
+ u+ L( L# q M* x - (assoc 7 elist)+ Q* i/ W# p* ?8 o/ S# i O
- elist
# o0 D5 h' m* Q; y - );subst7 y* k" y0 ]2 K# q% L% ]# _2 `) o0 N- u
- );setq else
. E \+ ]3 C; D7 \. q# X3 I" ?# W - ;);if * c* L; w$ n9 t% E- r0 O6 s
- );progn) f: k* Z1 d9 O& A* a4 ]
- );if% N3 @. a4 x7 }
- (entmod elist)
* Q; Q. I+ k. c: x! w - (setq ss-index (1+ ss-index))6 C+ [% u. x' K, ]
- );while- t9 T. u k0 l
- );progn then
! d+ q5 X- Q4 V7 }9 O5 Q! E0 x - );if
5 o3 S. u: d d2 L - 1 @% _: h' i P R6 \/ a
- (setq cmdact (getvar "cmdactive"))1 Y5 \3 Q% I+ D# N
- (command "_.chprop" ss "")8 K9 h4 T6 I$ h2 y1 s: `4 m
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?. O% b4 Q9 P2 T. g
- (progn
* y' F- L+ u! l) ?& p, j - (if ecolor; p7 K6 T! Z6 E3 V: f; J& F
- (progn1 d0 U. i1 N4 B' D1 v
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
2 T" D, k; p1 M6 T* E, j - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
/ c( z u/ j8 c$ v9 Y/ } - (command "_c" ecolor)$ \3 L$ V: q5 z. s; t! t) x
- );progn then% y# h* V6 G- @/ F' r( f( m
- )1 Y/ F$ F7 c- w2 @ o# d4 S6 Y) x& w
- (if (and lt-idx
: `2 e- r& [" ?' w4 Y/ Y - (/= eltype ;|MSG0|;"Varies")
; z6 a! O4 G! v; T+ Z - )
% `, `2 \1 h/ e3 \# w - (command "_lt" eltype)8 L G' z4 @: H, W, J8 W, u4 k9 q4 Z- h
- )+ P6 I, X! w5 V
- (if (and lay-idx
* y6 u% d7 H7 C* N5 A - (/= elayer ;|MSG0|;"Varies")
7 W7 x, k; Z3 _& k; X8 ~: | - )
7 [0 J7 b/ j; K* |# ] - (command "_la" elayer)1 I$ B7 z4 ?0 ]8 \
- )
( f& m; `9 J( |( x0 y - (if (and ethickness
2 l1 X( h# |! D - (/= ethickness "")9 f! j# t6 b2 Z: J
- (/= ethickness "Varies") & t# @! T C+ x- T+ `
- )
2 [/ {: u. |' L0 g# x$ T: q# | - (command "_t" ethickness)* @2 Z5 K$ s/ Q! Z2 d k- F
- ) q& h; t8 ?1 T
- (if (and eltscale (/= eltscale "")): j- {) q4 |% B
- (command "_lts" eltscale)
! c. E8 S& d. ]4 K! \0 F9 [ - );if
3 e, w) R+ z: n8 n: L, v4 o, ]% N - (command "")8 D. C4 E% V d- E7 {
- )
6 B$ k' ~* X7 `5 J: X - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set! B' L9 n9 p! e1 d" q5 ?- E8 K
- ) [8 T" b3 ]- k5 L2 E
- 2 l. M( B+ F- S
- );progn then OK was picked in the dialog.2 c* _4 r! s3 H+ U% r5 }3 ~
-
- O0 Z4 l) v4 ?4 V, @ - ;; Fred GERBER - 25-AUG-94+ O" g5 l& C( n* Q0 @, R& G
- ;; Don't print the "Properties unchanged" message when the user cancels
6 y" O0 H& S( b0 a: b, P' a - ;; the dialog because he knows that already (otherwise he would have; i8 h1 K, U! H4 `+ B- e2 V
- ;; hit the "OK" button). Display the message only if CHPROP fails for6 `" x- }3 Q- P/ R) e5 Q8 B. v
- ;; some reason, because it is not the expected behavior of the command.
% Y2 c4 q, A7 X. W! k& F N7 T& X - ;;
. m7 J1 [, r7 I3 Y4 q# C - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")& n0 O+ [) [; m0 C3 d4 M
- );if2 Q) H! k/ S& _* D$ L% k1 U: }
- (princ)
* Y9 N; y+ p; O: [: F. u - );defun call_chp2
! i# m$ A/ ^& ?6 J1 R& @4 G- q a - ;;
; S0 H" b/ _) B - ;; Function to set the Color text tile and swab to the current color value.
4 V1 U5 d3 d; X! l4 ], ~ - ;;
9 ~" ?: E8 U5 @+ v - (defun set_col_tile()
' o K; b$ I7 K* a i& Z y - (cond: Z+ W/ U! E' l( J& L! w$ G
- ((= ecolor nil)
$ o2 r8 ~2 f% F; |, | - (set_tile "t_color" "Varies")
8 I& s! p, g% }1 p; D5 O- y - (col_tile "show_image" 0 nil)9 }! R" y) s2 z- l: t- h
- )
( |7 a* ]: L& d' i% | - ((= ecolor 0)
% Z8 C ~! w3 ?" P* K* N; K2 o' E9 v - (set_tile "t_color" "BYBLOCK")
. o2 G7 B0 G/ \$ O4 R; g - (col_tile "show_image" 7 nil) ; show BYBLOCK as white; k; }2 `9 l3 j' ~6 M
- )
% D. r" z5 U R - ((= ecolor 1)5 O: M' a( I$ F$ \6 K1 t4 Q, C
- (set_tile "t_color" "1 red")
. u: M4 g5 B0 ?; l: ~ - (col_tile "show_image" 1 nil)
c: X: i4 y8 E - )' p: z6 _# q% h' G
- ((= ecolor 2)
$ Y2 c# ?' ^6 b* J* O4 r - (set_tile "t_color" "2 yellow")
* ?& b- Y# ?& X) o5 I - (col_tile "show_image" 2 nil)
+ I. P+ e7 ]0 \" M# | - )
8 I; \( i; [0 k; U3 B/ P& n3 L# g - ((= ecolor 3)/ n, g J8 K% ~0 h. Y+ p L
- (set_tile "t_color" "3 green")5 n c- c3 c: K8 R. C
- (col_tile "show_image" 3 nil)# l3 n5 y' o+ |0 q$ V, E! U9 ?$ `1 q
- )
5 l6 R/ m& Z# ? - ((= ecolor 4)
. z# o; x3 [3 p - (set_tile "t_color" "4 cyan")4 Y( v) r" b) K) N% J
- (col_tile "show_image" 4 nil)
. e, s F# _0 h" O: h9 x - ), O# d1 s1 O2 L' }5 }
- ((= ecolor 5)
7 l3 J9 z/ a; s: H' z - (set_tile "t_color" "5 blue")
/ J8 v. f( j2 V* ~) n% B - (col_tile "show_image" 5 nil)' c u [. K2 a8 z/ K! V& n
- )! O! {2 \9 ?; @2 _0 U2 ]
- ((= ecolor 6)
# a" g2 Y0 b7 n; p - (set_tile "t_color" "6 magenta")
4 v; C* `' p/ |8 S: ]! z: N! Z& x - (col_tile "show_image" 6 nil)
6 y$ T2 d( r$ O7 h* {) u! @$ E - )9 f" _: F2 s0 K
- ((= ecolor 7)
9 k: p+ v! H; S8 k. s. ?' b - (set_tile "t_color" "7 white")% M# {! F: Z9 M$ |: \. y6 S
- (col_tile "show_image" 7 nil)
: R, U8 G& Y$ t- Y0 z - ); r3 x6 \: f& u$ E7 w
- ;; If the color is "BYLAYER", then set the tile to3 s# g1 }0 a' N5 \( K
- ;; show it's set By layer, but also indicate the n- f" {$ [; o. ?* V5 m/ b
- ;; color of the layer - i.e. By layer (red)
7 C \, o8 v8 e0 o U' L, ^; f2 A% ] - ((= ecolor 256)
, j: b* K+ l* S - (set_tile "t_color" (bylayer_col)): W1 R, p' o/ u
- (col_tile "show_image" cn nil)
+ |3 M% R2 I% f; N1 n9 t - )
8 a; B t8 l3 k - (T
5 s0 B w* ^) z$ {+ Q0 Q+ }4 E& k4 J - (set_tile "t_color" (itoa ecolor))
' @0 Q x. K5 n - (col_tile "show_image" ecolor nil)9 N; F% O2 J- g4 a" `7 X
- )
3 ]/ B! e4 c* k( M1 ?/ a - )
8 Z- A2 M v- E. j - )$ v: T+ V, Y( u( q. w4 h+ O
- ;;
U2 i y6 e+ q M - ;; Function to put up the standard color dialogue.
* ]' M( K9 } w8 N; w( { - ;;1 W8 P* H: Q, U" [' Y( r9 U8 Z! z
- (defun getcolor(/ col_def lay_clr temp_color)
2 F2 U) i9 E! E: `. n& u( B - ;; col_def is the default color used when rq_color is called. If ecolor
`4 P6 H) c, K6 F6 C - ;; is nil (varies) then set it to 1, else use the value of ecolor.5 s- V( G) W7 J. J' u0 N
- (if ecolor
: b) B" e/ ]/ }$ p/ M - (setq col_def ecolor)
5 Z, }" ~/ n1 \4 [" I - (setq col_def 1)- |6 t$ y& [. ]. |: y5 s
- )( V6 b8 l' X4 z. }
- 4 W; _5 j6 \# J1 }" D! w9 a
- ;; If we're working with a single layer, get its color
9 h0 O9 ^: v: }0 u& b" | - ;; for use in the color swatch if the user selects color BYLAYER.8 `& p7 g2 Z7 y" C+ r) j
- (if (/= elayer ;|MSG0|;"Varies")
* |' ?3 c. x& z! g$ G - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))! g% z6 g* ?: \/ |4 p2 l- B; R5 x4 R
- (setq lay_clr 0)( j6 }- v r2 q0 r% ]* Z6 M8 E
- )
3 O" v! F/ n2 n# y0 I - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
7 T7 Z3 h& }2 L0 q w9 i3 u - (progn. l1 p/ {4 m1 T) g }: B$ W: c
- (setq ecolor temp_color)
9 J3 _/ M: O# C2 A, B - (set_col_tile): I* Q( a) H: Y3 K, O3 ]4 [
- ecolor
& g; U" c- Y* k7 O - )# v- [* t9 }) s! _% V* z. N
- ecolor7 u1 e- Z' n# z ^
- )
2 X- g( D$ y* s, ? - )8 d- T& `$ o1 `2 \* b4 y
- ;;
% E" N3 u% q% S - ;; This function pops a dialogue box consisting of a list box, image tile,
4 n# L1 v1 D2 f$ V5 D7 ? - ;; and edit box to allow the user to select or type a linetype. It returns
' L: O- m% k w% D - ;; the linetype selected.
C# [1 {1 \ p; D4 a5 k - ;;9 ?5 V1 k( ^0 t- Y; m& P
- (defun getltype (/ old-idx ltname)
M- n& M; @; I, F" d' ^ - ;; Initialize a dialogue from dialogue file
1 I% d* h7 A! s" |6 T - (if (not (new_dialog "setltype" dcl_id)) (exit))
( L/ O- N, k- O8 O0 n! o - (start_list "list_lt")
% ?. Z$ W, @* q$ I6 I# J' l - (mapcar 'add_list ltnmlst) ; initialize list box
$ \# ?- s9 l3 C E+ |6 {! ` - (end_list)
5 j! [9 o% W U9 k! z6 z9 I+ N9 O - (setq old-idx lt-idx)4 h) N0 Q7 T k
- ;; Show initial ltype in image tile, list box, and edit box
$ t3 w! S4 z; C1 I* b4 }/ V - (if (/= lt-idx nil)" g% O; t4 |2 y' ?3 r
- (ltlist_act (itoa lt-idx))/ S0 s3 x1 e+ K. v8 p) ^
- (progn2 w% c. D! O1 Y2 ]& l: g m) ]
- (set_tile "edit_lt" ""); f2 P+ v3 x9 T
- (col_tile "show_image" 0 nil)
: [& X( A* R5 W8 d& X - );progn else9 x, a2 i; B+ `! s* I6 r: ^+ O
- );if
9 v& H& N5 I# q2 T- n# O - (action_tile "list_lt" "(ltlist_act $value)")0 }5 g o. `9 _% h1 l, ~6 p$ A- ^
- (action_tile "edit_lt" "(ltedit_act)") h! ^0 |/ c4 j
- (action_tile "accept" "(test-ok)")
% A8 e/ `* B+ @$ a5 ` - (action_tile "cancel" "(reset-lt)"); q) f9 u7 n8 T: Q7 e4 E6 C1 F
- (if (= (start_dialog) 1) ; User pressed OK
0 N9 W r% h+ G, Z - (cond
. E, c7 O$ S( ]- u. w - ((or (= lt-idx nil)
) r6 L4 L4 ?. F8 P# S0 s - (= lt-idx (1- (length ltnmlst))); S2 d' S! T, [: @
- );or
# m& h; R- F* l2 o1 e+ Y* t m+ ~ - (set_tile "t_ltype" "Varies")& y# |7 x8 p/ Q+ b7 V: A9 P
- ;|MSG0|;"Varies"
. q2 P. j$ K% t5 u! W! A$ E - )
# t$ ~! C B. Y7 E( i: x- s - ((= lt-idx 0)+ t T8 Y- }, f$ E* `
- (set_tile "t_ltype" (bylayer_lt))0 W, o3 Q+ p) ^; f, H; a
- ;|MSG0|;"BYLAYER"
' z7 W) |, Z6 A! K - )
0 f1 I4 ~: D8 ~: X) y& s3 ?( V+ W - ((= lt-idx 1)& F$ p5 L7 J+ N: J3 q
- (set_tile "t_ltype" "BYBLOCK")
" Z# ]& ~5 p+ J+ k - ;|MSG0|;"BYBLOCK"$ F e% {" _( @" n# X6 T- }3 c
- )* d! p: i4 W6 c' X B
- (T9 ^* Y0 N) [' e
- (set_tile "t_ltype" ltname)
9 {- M- a5 }; e: m8 n, N8 } - ltname* p5 W/ R7 ~$ U
- )% \6 `1 a8 T4 G( i1 j
- );cond then0 U1 B1 x' Z9 W+ I) C1 E( i* s
- eltype
) R5 U4 X% ]- R! C( S; G, E( | - );if
+ S# j, q( h9 W, e; ~' J - );defun
0 Q+ [+ {1 _9 X8 z6 { - ;;8 D: m2 K; g3 `1 ?: P( j
- ;; Edit box entries end up here
) G9 b) U7 D* _( l! y+ s - ;;
) I( j: r1 y' |9 { - (defun ltedit_act ( / flag)8 e* i$ i! G; E
- ;; If linetype name,is valid, then clear error string,7 S( {( y3 q- g/ p: |% w# A
- ;; call ltlist_act function, and change focus to list box.
9 E8 F$ e& f; n( B1 I8 V6 u - ;; Else print error message.
0 {% e2 Z" A4 I: L+ [ -
; a2 a) n0 H) Q$ \, g' ~7 ` - (setq ltvalue (xstrcase (get_tile "edit_lt")))
4 ~' B& M5 b: C/ m. R! i2 {" c - (if (or (= ltvalue ;|MSG0|;"BYLAYER")
\1 g% a% P: N% u5 W - (= ltvalue "BY LAYER")
1 d4 |# X$ o8 C% n* y& O% p - ). {: K$ g7 P: c! N) ]% K1 b
- (setq ltvalue "BYLAYER"): ^- e8 W) C ]3 E" i8 H- j
- ): }- t, s9 z+ {2 u6 B
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK"), G2 X& a: @( C. R# ~
- (= ltvalue "BY BLOCK")5 H9 e4 t# t% Y8 c8 }: q% D+ U b& d1 r
- )
3 h+ i J" p! N. N - (setq ltvalue "BYBLOCK")
4 L1 @ M, X% ~# i - )2 _( z: C/ h9 j) T' ~
- (if (setq lt-idx (getindex ltvalue ltnmlst))* {& ~3 y" \6 `5 A% h6 D( n, Z
- (progn. Y" ?) `8 j# p4 B: m( f1 [
- (set_tile "error" "")* M7 x& C9 E( g) n
- (ltlist_act (itoa lt-idx))
/ E, x& W5 Y! S' B% ~8 I* ~4 ?% D - ;(mode_tile "list_lt" 2)
+ ]) i8 j- L7 g& T1 k' { - );progn then
: A. R/ |" ~5 S" t1 C& W - (progn$ P3 w% H5 b5 ]6 ]
- (if (/= ltvalue "")
0 P/ D7 {- k1 N - (progn
8 l4 O U5 z5 T5 O) F - (set_tile "error" "Invalid linetype.")
0 Q' A, N: z9 X6 s4 C - (setq flag T)7 V1 {2 w" G5 V# N" E
- );progn" o8 y) t3 a; Z @/ p5 p; g$ ?) `
- )& B! B) y8 p- K+ ~0 k" _
- (setq lt-idx old-idx)5 x! d- E7 t; r5 q# @, {: L
- );progn else
: P# V) M; n4 ?1 T6 e) H - );if, s9 d" m, O" m e' }/ _- ?2 k, x
- (if (and (not flag) ;added so a return will take you out of the dialog.
0 g% J' ?( J2 A+ I1 [ - (= $reason 1)
% Z _5 {4 k" z3 _& I; n - );and
. E7 Y2 |( S( {, j9 y - (done_dialog 1) & Z& ?& c0 j0 C- n1 {
- );if & _, c- E2 L% t6 u' c
- );defun ltedit_act3 G% L K" z3 C! @" [
- ;;
2 b4 N2 q4 x3 h. s- W8 _ q - ;; List selections end up here3 s& E* n3 Z/ T% s( ~8 e( D
- ;;: `* |6 e/ J& m! L3 \% c
- (defun ltlist_act (index / dashdata)
/ P1 y( u) d4 J6 r8 @+ T - ;; Update the list box, edit box, and color tile
3 X# }1 ]3 F% e# Y/ m; v1 ] - (set_tile "error" "")
7 ?2 q5 |; Q6 w - (setq lt-idx (atoi index))
( Y9 h7 Z* y: t- b) M - (setq ltname (nth lt-idx ltnmlst))9 z8 P6 B% J" T) g
- (setq dashdata (nth lt-idx mdashlist))
; Q+ C9 v$ P3 I; o- X - (col_tile "show_image" 0 dashdata)3 k4 i) J8 u i _! a+ ?9 j8 K
- (set_tile "list_lt" (itoa lt-idx))
4 G4 q7 K" l \! U; I' R6 O - (set_tile "edit_lt" ltname). x$ c* q! }; B- x4 \- M, {( G( q
- )) k2 l7 X3 \4 c- `6 ~- t6 D/ G+ H
- ;;; f. i, G6 G( C: w
- ;; Reset to original linetype when cancel it selected
$ Y/ j6 u1 |- e y2 Q' u - ;;
. g: X# }% `- ^/ W) A0 Q - (defun reset-lt ()" V' @. h% Q5 M6 y# b2 h0 K! {0 D' g
- (setq lt-idx old-idx)
5 ]' E( ~* N. `5 i/ y# z$ l3 u - (done_dialog 0)) V9 ?4 {9 _. u
- )
; A. i, J+ T6 L; F9 W - ;;4 [. y Z, C( A( Y
- ;; This function pops a dialogue box consisting of a list box and edit box to
% u, i3 l9 V; k2 H v7 T - ;; allow the user to select or type a layer name. It returns the layer name2 E2 C4 Q+ B" o. X+ I8 V
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
% R3 n7 {& y; O/ \5 L - ;; drawing.
7 _2 S1 ~# u6 R) ~* n - ;;1 ~- V7 }3 L; A. Q
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
& y+ w! E- A' I1 @1 {+ o. v - ;; Create layer list the first time the layer( N: {( O, ^: s9 x" g3 [- Q w
- ;; dialogue is called., A8 k* J/ E9 s- K
- (if (not lay-idx)
$ S/ C/ s0 I) w; @- w - (progn4 {6 v8 [6 i* p# Z
- (makelaylists) ; layer list - laynmlst' J0 q* M& R, v; t: N4 A( h. v
- ;rk
) U" S3 `8 @3 N+ l - (setq lay-idx (getindex elayer laynmlst))
8 I# _* d W9 |$ N: [ - );progn
, s8 n8 n; a( t: C - );if* D0 O4 Z# r) {) S3 P
% C$ M! ]2 B" w/ ~8 S# E- ;; Load a dialogue from dialogue file
2 g3 U: D; v% m; L& K1 s0 c* i+ ~ J - (if (not (new_dialog "setlayer" dcl_id)) (exit))
U1 k& J W# l( `( v4 N - (start_list "list_lay")
- Y9 h* }+ j" n# ] - (mapcar 'add_list longlist) ; initialize list box
! r$ T9 [7 t( Q - (end_list)1 w) ?. B- y4 |+ n1 h' d
- ;; Display current layer, show initial layer name in edit
) N* m7 ?8 b* W; U7 X1 ] - ;; box, and highlight list box.- M9 A. x) I' w* P/ G' S$ Y
- (setq old-idx lay-idx)
: M& u4 S3 |$ a( t" T2 m3 |2 d5 d - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
% D, H# z* u: r& I" b. q! z - (set_tile "cur_layer" (getvar "clayer"))7 M! g& v9 N7 m3 Q. P
- (action_tile "list_lay" "(laylist_act $value)")
. `2 r+ E6 r, V M - (action_tile "edit_lay" "(layedit_act)")
' h; Z m$ ?# Z! w2 n4 r - (action_tile "accept" "(test-ok)")8 j. ? T. L8 b
- (action_tile "cancel" "(reset-lay)")
& B( l" y! X7 r/ E |8 q7 r" O - (if (= (start_dialog) 1) ; User pressed OK8 h6 L" c9 n! e9 T
- (progn
2 ~$ k/ G' x7 g0 H1 n - (if (or (= lay-idx nil)
7 n5 z3 z9 A6 C% _" O$ P7 T - (= lay-idx (1- (length laynmlst)))$ T5 s6 I! }- r
- );or
6 y% ?3 ~( l- ~. h# r N$ N% } - (progn
, L1 p' G" C+ _; m - (setq lay-idx nil) 9 M! f3 m& q* `5 O1 E9 b* C7 a
- (setq layname ;|MSG0|;"VARIES")
( H) |- S1 A2 X/ L - (set_tile "t_layer" "Varies")
2 c! O3 ^" |2 o1 g g - (setq layname "")" ~6 z4 S1 D$ Q `, J: g
- );progn
+ R* @2 e9 i% T7 V: h - (set_tile "t_layer" layname)
) @2 _, c+ Y; |9 f5 F' D - );if
% Q r8 ?7 m) ~ - ; If layer or ltype equals bylayer reset their tiles) L' T+ ?+ |& K" X, @8 C
- (if (= lt-idx 0)2 d) ~# C$ e9 k2 b6 s( S
- (set_tile "t_ltype" (bylayer_lt))
) z+ v7 @1 _' e# Q: r3 J8 N: J - );if Z; S4 q3 z; L$ ^3 q
- (if (= ecolor 256)
/ B3 ]" O; y' i) q - (progn
$ ]) l8 m- @$ o - (set_tile "t_color" (bylayer_col)); O6 @" l% S* ?+ V) k& z. b
- (col_tile "show_image" cn nil)
/ A3 \# C8 i9 N7 N- N7 \4 J - )( I7 I6 ^& r# ]' G1 l
- );if1 }$ ~ |- N7 _/ F
- layname0 @- [- [( T0 y& f" n
- );progn
7 O! v- N- m. @2 u. B - elayer+ w6 V/ P/ \8 v7 |! S6 ?+ L' [
- );if
, c8 l; e9 d4 v" P& ? - )% M* H/ Y* y) ~' Z3 b8 v! g
- ;;
) H7 T% {3 ]% U - ;; Edit box selections end up here: _; }/ v2 h) ^
- ;;
' @* |1 \! `4 }3 E - (defun layedit_act()8 Y& c7 c8 v0 g+ a2 o
- ;; Convert layer entry to upper case. If layer name is
4 g% l' v% E. w - ;; valid, clear error string, call (laylist_act) function,2 _" e& d M, c# p# W h
- ;; and change focus to list box. Else print error message.
! m: q" w' O4 G - (setq layvalue (xstrcase (get_tile "edit_lay")))
2 d( [9 W+ ^/ D! e6 Q) `/ F7 D - (if (setq lay-idx (getindex layvalue laynmlst))
5 p% B5 T Z- k - (progn
7 w3 w$ D* l$ E2 ~( ~8 r, \! L - (set_tile "error" "")' Z1 R7 y+ o, r7 A H1 x
- (laylist_act (itoa lay-idx))
9 j. ^2 T. ~. Q q; d! t6 w$ M! R; I - )/ M. ^! I4 }# V# z7 K
- (progn# a1 \3 ]' G6 W8 U" V" J
- (set_tile "error" "Invalid layer name.")
# W. B% l/ U# I9 k# R* Z& X& w* ?, H - (mode_tile "edit_lay" 2)
# r! M8 D! s% }& k. p' K) o - (setq lay-idx old-idx)
1 p, j: g! h$ S, ^ - )) y6 J0 g1 u& @5 r$ n
- );if
" I! ?$ a# \: X' K/ ?% [6 X - );defun
$ |5 ]8 ?+ @' F8 Q) n - ;;
9 ? \7 g6 I, q/ ?" [6 E, ~ - ;; List entry selections end up here' u0 g" X. p4 ~) J! c2 m7 N& w
- ;;( f Q0 \, }( q8 w+ @
- (defun laylist_act (index / layinfo color dashdata)
1 w0 X+ W4 i3 t# r6 `, ~# B9 J/ Z - ;; Update the list box, edit box, and color tile$ n1 O( f: X! }/ f9 \
- (set_tile "error" "")% [) ]" M0 h. v, _* W, u/ g! o
- (setq lay-idx (atoi index))2 V, B) o; n% D+ U; x8 i
- (if (not (equal lay-idx (1- (length laynmlst))))
0 @3 h: Z& G7 V7 _) D) j, \ - (progn 6 P( J0 K; m. m$ H
- (setq layname (nth lay-idx laynmlst))
! v4 @" c; {( x: ^2 {9 E - (setq layinfo (tblsearch "layer" layname))( w& V0 C! n* ?6 D7 ?
- (setq color (cdr (assoc 62 layinfo)))2 `! A4 Z* P/ q! T9 h
- (setq color (abs color))
! l1 O: r) G; n% `" ]" { - (setq colname (colorname color))
7 ^' W8 ?- H, y; [ - (set_tile "list_lay" (itoa lay-idx))
K9 [0 g% S) t: w - (set_tile "edit_lay" layname)8 d1 _. ]( y& F% t3 }: A
- ;(mode_tile "list_lay" 2)
# ~- H' l; R& ?! I9 C# m - );progn then
$ a4 x, E# M9 t - (set_tile "edit_lay" "") ' l" r" a: X# D: S8 z+ V$ V( O+ G
- );if
4 O/ x$ y) h; L8 ~ - );defun laylist_act
8 m6 G7 j) }% t. C - ;;
. T k7 k8 D3 D; ^ - ;; Reset to original layer when cancel is selected
) t5 G" y+ g2 t1 e5 f. A2 f0 d$ q1 F - ;;- v, G& y% a! `" f' c8 {+ u2 R
- (defun reset-lay (): P7 u& L4 G% H3 i
- (setq lay-idx old-idx)
1 j8 t' Z5 w8 z( d/ K2 E - (done_dialog 0)5 I" U, O) L3 Z( W# ?9 f0 B
- )
1 W0 o4 R8 L3 J6 w# p4 r: p - & m7 ?" t0 @7 K7 P, p% e$ @
- ;; Checks validity of linetype scale from edit box. It checks to0 l' r: H0 z3 K- S
- ;; see if the value equals "Varies".3 Z. t7 c: d! q1 U
- , N, b& n% N9 N, u' ?/ a* L" E1 Y* V$ ?
- (defun getscale (value / rval)- n/ L. C" i& w7 D+ C8 f
- (setq value (strcase value)/ d; p: Z+ l" C' X _: D
- rval (distof value)# I; q y9 k! x1 R! Y
- );setq
5 Z- X) S: l2 P1 k! v, {- {4 [ - (if (or (= value "") k( ~! Y( `" b/ U" ?' J6 f
- (> rval 0.0)9 Q( m, L5 u4 |" K" |" j
- )% e7 f! g, v$ L; p" \" x
- (progn5 i- a& U+ W: r6 w. d
- (set_tile "error" "")
$ k$ E. N G1 [0 i8 N: x - (if (= value "")
0 n7 j1 G7 b5 k { - (progn+ j, w' ?0 {! Y! {
- (set_tile "eb_ltscale" "")9 r# d4 x; L: |' J% |# X) J2 r
- (setq eltscale nil)
4 M# n& `7 q x! o1 x - );progn then; V/ ^+ J- S6 ?2 I
- (progn
/ k, \/ w/ I+ @$ Z/ ~0 Q - (setq eltscale (distof value))7 k! J9 `5 ]' \8 J" e
- (set_tile "eb_ltscale" (ai_rtos eltscale))- }4 m$ G0 V! D6 V! E" J
- eltscale# n8 \/ y) U- t: C R
- );progn else
; R0 R [3 A5 T7 G8 r Z - );if; L0 {% p( e3 h+ i
- );progn
/ c9 ?' b+ o( Q! w' W) w - (progn
( i7 m7 o+ F) i - (set_tile "error" "Invalid ltscale.")+ P b1 n6 E$ i+ o
- nil* ~3 w1 {; l" Z* h3 d' H! N
- );progn else2 S; i& n! V, M0 ?
- );if! m! j: G5 G6 m
- );defun
5 J) Q6 r0 V7 ^0 `. B+ @ - ;;, x& N# Q* I8 m G; S
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a" r+ O4 V3 p' r) ^
- ;; string can't be converted to a real, this routine checks if the first
! h: m% a0 O$ R/ m3 O' o - ;; character is "0". It also checks to see if the value equals "Varies".+ Z; w4 p6 i/ D# X+ A6 k
- ;;
) w9 e) f7 `6 [; @+ ~ - (defun getthickness (value)! h) c, a, R. K7 _ \2 ?
- (setq value (strcase value))
7 L8 [2 ]* _" j/ |9 g# i - (if (or (= value "")
6 C% r8 g! F% A/ n: d - (distof value)
" Q" h$ x$ Y+ B. m7 j - );or
9 Y4 z2 p* I0 v% P0 ] - (progn
2 k$ U* Q6 N* }/ o& t8 @. a& p - (set_tile "error" ""); q7 d: [7 `1 I0 @3 [/ _$ Q9 L; z
- (if (= value "")% C* m) a: i4 h
- (progn* T3 ~1 b/ c' U m
- (set_tile "eb_thickness" ""), H4 I8 t( |7 u. H8 `
- (setq ethickness nil)
1 w' Y& s* O" v6 [* { - );progn
* q, f# ]# M0 W2 F+ t, E1 D - (progn
`6 Q* E0 v7 F; \# ~ - (setq ethickness (distof value))
9 |0 P$ Y( i# t( a6 N - (set_tile "eb_thickness" (ai_rtos ethickness))) K" V$ \) Y. ]2 g& X3 l, K) @& C
- ethickness
7 b9 {; L+ Z. n - );progn$ Y- _% @' ?9 b2 w% t& ?
- );if2 E9 |. T6 n9 h0 x9 v9 J
- );progn
$ f, d6 N D! |3 {7 a2 J; u - (progn+ X( }$ N1 C3 ?3 U8 k5 l9 M
- (set_tile "error" "Invalid thickness.")
6 }* }1 Z; B6 B0 ] - nil
: P p* Q9 b! G7 @8 E, M9 b - );progn* U6 }0 h7 P' w- T3 n8 u# G
- );if
8 {% v$ r0 w0 h; K# j5 T4 e( \& ` - );defun 0 @8 B" E0 {5 C! n( m, z
- ;;
; J" ]( e- q$ H/ u! C( x - ;; Checks validity of polyline elevation from edit box.
& x2 U( I, b( |- ]1 j - ;;
+ Z+ ?$ g, Z- @# h7 S9 {& b* { - (defun getelevation (value)' I2 N7 x7 D: ?3 Z) j2 X; |4 ^
- (setq value (strcase value))4 y/ U5 S) K4 Q# `. z
- (if (or (= value "")
9 A% p; Q$ l% x) k- t2 j4 f - (distof value)
9 y6 v. n0 {( _ H$ n, x4 s7 H, J - )
, E8 {* C4 J' `& \8 ^ - (progn( S1 T( o8 j7 b
- (set_tile "error" "")- [) U2 A- Q7 m# g6 \% k
- (if (= value "")
4 F! l; ]' l) h+ |: B) f - (progn
# m. }3 O5 C9 P - (set_tile "poly_elev" "")1 P9 q4 c% g7 Z Z0 }" v7 U4 K
- (setq eelevation nil)9 Q) c0 O: Z5 @7 Q4 P
- );progn! i! N& u$ y0 q4 h' s6 @
- (progn# s0 }2 N' r5 k6 S: l5 [( [
- (setq eelevation (distof value))
. ~1 G( j" G& G1 m - (set_tile "poly_elev" (ai_rtos eelevation))- U" R' i, w0 x$ h8 K. }
- eelevation
; t. _& k, {$ s - );progn
4 M3 m" p3 S- ?4 @# d - );if
" [4 P4 a: E! J - );progn
2 ]4 z' H6 v! c" @$ s* c4 q4 ?6 h - (progn
" S8 U7 @. R9 G - (set_tile "error" "Invalid elevation.")
4 e; o4 o" J- a2 F& ] - nil
+ K' d0 R5 M- q- J5 | - );progn+ H% e% p2 u7 |- M" E
- );if7 E% ? s# e7 Y/ }" b, ]
- );defun: `( l0 n U; i1 @5 m, m6 v, P ]& k
- ;;/ a6 Q1 H4 t2 M2 U0 Y0 s
- ;; Checks validity of polyline width from edit box.
( X* Z7 [+ a4 W# Y$ Q - ;;- m7 ^5 \" h+ i1 y) U* G& b1 d6 Y
- (defun getwidth (value / rval)
5 Z0 u6 D& l2 K9 I - (setq value (strcase value)
& o: y& i8 S: W/ C2 ~4 c - rval (distof value)
2 L9 M, H! H1 g" G( @8 U6 R6 { - )# U9 Q, @: i/ l6 u" m% O' t* d, l
- (if (or (= value "")% D7 G4 X# m" i
- (>= rval 0.0)
" Y# l0 E1 W( x4 k: U - )
% l j+ ]0 b3 v1 B- k' ?. F$ X - (progn; M5 c7 Y8 f' R
- (set_tile "error" "")
0 K7 |9 a ?) p& X( P5 O - (if (= value "")& x& ^4 ?3 X4 J; p4 ~ ~
- (progn. T$ M$ H& ^1 M% I5 f
- (set_tile "poly_wid" "")3 h% R3 k" U5 w. O+ g$ O
- (setq ewidth nil)( c# `: ~5 a2 j
- );progn5 V! S' o `7 \8 Y6 H! [7 K
- (progn: F1 l4 g. S5 d Y% j
- (setq ewidth (distof value))
9 n2 B) H! Y K% c5 o - (set_tile "poly_wid" (ai_rtos ewidth))9 h8 O3 V' q- F9 Y6 _
- ;width- E+ F( u& r' B3 S5 _8 |0 g
- );progn- t4 n' h0 a3 A3 U& D; d$ X
- );if
) E: u; L3 I7 n% j. L5 k - );progn* C. [: u$ _$ {# t# U
- (progn) t! K- g. l/ T" F! b
- (set_tile "error" "Invalid width."). m# l$ Y `6 t9 b' |+ l
- ;(setq ewidth nil)! l6 m$ n; E2 Q* i9 }1 r9 M5 i
- nil 7 |! y$ _7 G3 x9 l3 V( c2 y* a) D
- );progn
" G. x% g; Z' O3 E6 C* p# W - );if9 V: O6 S O8 _/ y
- );defun
; Q* D# [" ]/ ^0 K - ;;+ t n% }; M; [+ E
- ;; Checks validity of text height from edit box.
2 ]2 ?0 g5 @0 m0 x - ;;. F) I) R& E- c5 e
- (defun getheight (value / rval)! l- e" E0 f" R6 V8 e- i, ]
- (setq value (strcase value)
$ {( S2 i7 x2 o' l" e0 r- C - rval (distof value)3 b: u7 S3 z0 b4 ~ c6 n8 |$ R7 w
- )
% ~- q( j+ w7 z4 n - (if (or (= value "")
" e) P1 z! I- Q4 }3 D - (> rval 0.0)2 D2 N% L4 J% |& p5 u4 i; t5 o
- )$ `+ i% b" t/ N$ ~, b9 V, w0 ^: a
- (progn
# j& A; A( I$ W5 L: Z ?. ` - (set_tile "error" ""): S d0 A Y' {. g$ h
- (if (= value "")7 Y7 G5 _3 V' i& B1 G1 j) K9 ^3 r
- (progn" n1 r# @0 c6 n$ g& |
- (set_tile "text_hgt" "")7 V6 |5 v N ~4 u, {5 e. {% O
- (setq eheight nil)+ F( z1 H0 e2 G+ y0 V# G, e |
- );progn; V3 e+ k( n; |) Z1 Z5 K
- (progn! h3 B: Y2 p) p
- (setq eheight (distof value))
( Z$ ^+ t/ r3 E' `6 E8 w6 H" W* B - (set_tile "text_hgt" (ai_rtos eheight))2 P- ~& _# a" B( Y+ b8 x
- eheight' ?8 z: \* G( Z. _# o" }
- );progn6 y" M9 l4 @' G: y
- );if
# Z+ v- f0 M; x% }, s( `' U$ z - );progn
: [9 S' ?) f! g+ K+ ?) [5 K - (progn, D( M" x9 f z4 F. E2 w
- (set_tile "error" "Invalid height.")
# I$ k- i8 E7 y0 y: M" { - nil3 a: ?/ n+ V5 U! [+ E2 T& D& X1 j
- );progn9 @& R5 P* J5 V& j( |
- );if
6 r3 W- O: }2 j - );defun
. p8 Q6 V: P3 R
2 t3 x4 e3 b5 k7 z" H- (defun getstyle (value lst / rval)7 V' P4 i. f$ M
- ;(setq value (strcase value))
% H3 L+ a, [- `( q - (set_tile "error" ""): L- z0 |! P0 k0 w K' w/ ?1 c/ I0 Q
- (setq estyle (nth (atoi value) lst))# @) Z/ Z5 }' `0 [+ q
- (if (equal estyle "")8 L$ }2 e* N' U- u2 F
- (setq estyle nil)
7 ]; P( r5 d. v2 j V' ~# Q& y - );if
6 s, g! f- A2 [. Z/ A -
/ C+ M# {7 ?4 \ - );defun getstyle
) Q6 Q, h+ K4 G o - 8 f7 N. J/ Z" Y
- ;;
7 _: X6 \# l8 `! [& m" E - ;; This function make a list called laynmlst which consists of all the layer
3 o$ o5 F F7 `6 i- X& X0 q - ;; names in the drawing. It also creates a list called longlist which2 D3 R3 O8 Q- L/ ?! w7 n$ y2 i, A
- ;; consists of strings which contain the layer name, color, linetype, etc.- P* @, g2 F6 a8 N* N! u; e
- ;; Longlist is later mapped into the layer listbox. Both are ordered the& j) Q7 N' k! Y5 g
- ;; same.
; c# _, r: U& p( [ - ;;
+ ^8 p ]1 |) f& Z- R - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
. i/ ~. ^+ S9 H6 n, w0 @0 { - xdlist vpldata sortlist name templist bit-70
8 O7 `9 l& ^8 J8 y: [( K( K+ Y - layer_number; H7 f& e- x* h. [$ Q
- )4 u: E! I+ N* ~6 n4 |7 ]
- (if (= (setq tilemode (getvar "tilemode")) 0)* v: A) _5 E: c
- (progn
2 d/ d- T* A6 ~& d - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")) F! Q7 {& t- b4 g1 t, p9 e
- (cons 69 (getvar "CVPORT"))$ G; x K5 p3 J* H: k" U: e$ d
- )+ ^. \) k7 s$ ^6 ?: J$ N
- )
% v3 L% u" B: o8 N - )6 O1 `1 J) g" [3 Q# }5 f
- (setq cvpname (ssname ss 0))* w' y9 l4 m: t+ A) n) _
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))1 R1 k9 c' B5 i8 ?5 s8 G8 c
- (setq vpldata (cdadr xdlist))
! j% V: i4 Z2 P - )( ^# i* R$ l' l# Q! U
- )
! {! ^3 y4 I" L9 S- l9 l# T- h - (setq sortlist nil)2 R- |9 k7 ?% t3 l7 X
- (setq templist (tblnext "LAYER" T))
+ g, r8 W; ~# ]* C" b. ^ u& o - (setq layer_number 1)" q* w# \( g$ E) l) k1 T: c
- (while templist2 M: q4 F+ g6 A; T: _4 J( e, d* k v& p
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))7 H5 @% d, U- o+ R/ `
- (progn
' C3 m" @0 Y. d) o) y" V - (setq name (cdr (assoc 2 templist)))7 r P2 l9 \6 L; }6 B* U
- (setq sortlist (cons name sortlist))
/ N/ M- d7 F/ Q# o - ;; Not dead message..., G/ A/ X+ t) _4 }! l
- (setq layer_number (1+ layer_number))
4 m5 B4 k" x$ v' b1 ] - );progn
* X7 G) {$ p3 e7 _; J6 }. B - );if
$ v0 j2 K5 a9 y1 A, Q9 O - (setq templist (tblnext "LAYER"))' q* ^9 T7 }$ n( I) t
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
' r! t {9 c3 f2 i - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
$ d1 |( F$ g) H8 y R - );if' f5 ?1 W8 l# s$ }% P
- )5 Y$ A9 j2 R8 [$ B# |% R/ [" O( |
- (set_tile "error" "")
- r. v! x, P+ q4 ~6 v& s, i - (if (>= (getvar "maxsort") (length sortlist))( D6 p! o$ K7 }2 s9 D- q/ @% }
- (progn, M% G4 r! i: ?) X, o. e
- (if (> layer_number 50)' }. F9 g2 f+ p9 f: a* A( S
- (set_tile "error" "Sorting...")' P* m" Z6 ^ o9 `. H T# E4 n
- ): ~5 c3 Y/ @9 N. a. ~+ k7 J4 ^
- (setq sortlist (acad_strlsort sortlist)); @/ K2 s1 n- F, H8 e' w, o
- ); B# ^. H T! u4 b$ K
- (setq sortlist (reverse sortlist))% e: _% d( X/ r$ e+ j
- )
) L; u- `+ Z* ?8 T: {; Y - (set_tile "error" "")& G1 r+ |0 W) _) M
- (setq laynmlst sortlist)" m6 |1 v1 {: P
- ;rk
4 B- L; Y) W ~; E1 g, P* l - (setq laynmlst (append laynmlst (list "")))
0 I7 N' B* x4 j% R - 4 R/ } m2 J7 x: X- ]! ^8 a! X9 b8 A( e
- (setq longlist nil) J$ u i6 I2 b6 t- d. b
- (setq layname (car sortlist))
$ Y$ s; g4 ]" C, c) v" }( N+ I - (setq layer_number 1)! E9 X& l8 ?* m
- (while layname" f0 j8 E: R5 g, _4 ^( N0 K
- (if (= (/ layer_number 50.0) 8 H1 c! @9 G, p9 J! W$ m- s
- (fix (/ layer_number 50.0))
9 L6 \8 p4 {4 R5 S* R7 T9 `, p - )
0 _; e; a4 b6 J' A - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
" b. z" F9 `/ s3 L5 o9 u - );if4 ~ v. U+ v) ^; r! `0 i. |
- (setq layer_number (1+ layer_number))$ B& J# ?# @, z, o# V u
- (setq laylist (tblsearch "LAYER" layname))
# w* |0 f5 o2 O# h' n0 u - (setq color (cdr (assoc 62 laylist)))4 _: G& u( w6 M' F2 a
- (if (minusp color): E+ E5 O1 B' Y
- (setq onoff ".")
5 Y1 ^( w% @, i: H - (setq onoff "On")
! M+ F1 G! f( J+ b' C/ S9 c0 ? I6 `4 _ - )
K( p( i) _! P( i. G - (setq color (abs color))
9 q- M+ ^/ v; K/ f' F, a - (setq colname (colorname color))+ X2 R5 L, c4 S
- (setq bit-70 (cdr (assoc 70 laylist))). Q/ z3 K) y& ?9 t7 h
- (if (= (logand bit-70 1) 1)6 z8 p' Q* W4 G/ I8 L6 Z9 z
- (setq frozth "F" fchk laylist): J5 O. q: v6 q2 n
- (setq frozth ".")
+ O: v3 K7 S3 u1 r; X9 g7 ]1 K7 \, L - )
: H: g$ d% L+ ^8 y# r - (if (= (logand bit-70 2) 2)' i1 y; W6 \8 N+ D& ~% B% H) o& V
- (setq vpn "N")
3 P" Q8 u* w: v. `. H! U - (setq vpn ".")
3 E3 r W5 ~/ ?0 r- l/ {# s - )9 k1 b5 Y4 O. u- _
- (if (= (logand bit-70 4) 4) U& g+ {. \) [. P A& D0 m
- (setq lock "L")8 f- c) h& ^$ X0 ]: t, _
- (setq lock ".")
2 P* p. W( H; y8 Q/ d8 f - )
8 `5 Q2 B. y* F5 L* m - (setq linetype (cdr (assoc 6 laylist)))+ k; ^; D1 I6 F+ a) }
- (setq layname (substr layname 1 31))
4 j% O! E, A. | - (if (= tilemode 0)
5 Z+ `! y3 w) s4 m. ]8 v. |, z - (progn1 a2 ]3 u/ [3 w( H
- (if (member (cons 1003 layname) vpldata)* N; T& c" q% ~
- (setq vpf "C")1 x9 P. `; K3 |! {$ E: b
- (setq vpf ".")9 m+ S1 J0 \- b7 ~& ^
- )! `8 V `, P' B1 u
- )5 D7 ?5 E- J/ `6 S4 P1 H, G& Q
- (setq vpf ".")& @0 t4 [8 k" Z7 Z
- )
! C+ I7 `; g8 a) L2 Q& X - (setq ltabstr (strcat layname "\t"; O# b# O1 x9 J5 m! [3 m K4 @+ V
- onoff "\t"
$ k, E+ K( l1 l - frozth "\t"5 R* p5 A' o: Z- \. Q/ G! L
- lock "\t") x( y( U& M" ^* S0 A6 v
- vpf "\t"
) A1 x, c3 Y8 w' X - vpn "\t"
3 z* X: |1 M% F4 N - colname "\t"! z/ O0 W' K8 P0 P5 R- ^
- linetype' e0 I! B" F# F* t
- )
2 v8 u# B4 W! F( e8 ]! f; d - )
* L9 `1 Q( E. M: V4 l0 Y - (setq longlist (append longlist (list ltabstr)))
& c5 L6 l6 q1 [7 E, h2 y: j1 x - (setq sortlist (cdr sortlist))
* Q& G: P! R, n, _* {# x' V5 T - (setq layname (car sortlist))! X1 p/ [+ y$ h( U
- );while
8 ~% A' ^' T! K4 n/ g - (setq longlist (append longlist (list "")))6 p4 m" ^- o6 L" ^7 c% x
- (set_tile "error" "")
# t+ y% S o9 N; p4 } - ); ^$ h5 {- L! K% e& Z' e* ~
- ;;
$ Y' a: P: }2 E7 T1 Y4 O2 I# ?9 q - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of) N) t$ I* T) ~! u$ b% P9 l8 H
- ;; linetype names read from the symbol table. Mdashlist is list consisting) D( I! h- i8 l2 s4 G# R& H
- ;; of lists which define the linetype pattern - numbers that indicate dots,
. s! f" W# O7 G" T3 a - ;; dashes, and spaces taken from group code 49. The list corresponds to the
. N6 c4 @1 @0 f+ I3 y! H, a - ;; order of names in ltnmlst.
( ]% B4 U9 \5 g) V& X - ;;8 X4 `$ ^ E, x/ J$ N. L8 V
- (defun makeltlists (/ ltlist ltname): m7 p/ F3 ?- T2 Y
- (setq mdashlist nil)
. z' I$ g; G* S, A - (setq ltlist (tblnext "LTYPE" T))9 Q' ~- O' t+ Z: ?
- (setq ltname (cdr (assoc 2 ltlist)))6 S8 X& W* T! P9 s3 x; }- \8 E
- (setq ltnmlst (list ltname))
5 y* `8 z* I) k - (while (setq ltlist (tblnext "LTYPE"))5 Y l" g f) v8 I7 W) y, P
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))% d" H I1 Z0 q. t" X
- (progn 0 j* A+ p0 q% d) a R3 C/ L
- (setq ltname (cdr (assoc 2 ltlist)))
' n: v) I# Z0 C" `/ B& k - (setq ltnmlst (append ltnmlst (list ltname)))
( ]: d0 ?) D0 \7 C2 n6 o8 z - );progn
' F+ J3 ^5 D) i0 x7 f - );if
3 a) v4 n6 t2 u+ g: N* q0 W) \( o - );while
, L/ j4 T: g6 ]* x' N% v: f' i - (setq ltnmlst (acad_strlsort ltnmlst))
4 |0 |0 z1 Y7 \" ^+ \5 y3 q - (setq ltnmlst (append ltnmlst (list "")));add by rk * x2 T* e* ]% X
- (foreach ltname ltnmlst
$ c( }" [ ~4 r$ [3 U - (setq ltlist (tblsearch "LTYPE" ltname))
& S4 Q( y/ I/ k! _( S - (if (= ltname "CONTINUOUS")( X8 |! O( M0 g5 p
- (setq mdashlist (append mdashlist (list "CONT")))& |5 S3 O' j4 v
- (setq mdashlist. z( D1 D( j1 ^2 Q9 J: }& a9 p
- (append mdashlist (list (add-mdash ltlist))): X" `4 B% j# d. t
- )6 D/ h& s2 _( U! @
- )7 Z; ~ N, _" M% M
- )
, l& ^, h! {" `; @ - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
% V- M4 \. ]1 U, F0 R# r/ W6 C - (setq mdashlist (cons nil mdashlist))
6 O P7 G9 l2 F& g - (setq ltnmlst (cons "BYLAYER" ltnmlst))
% S0 P1 J* a1 O; B5 F; \. B5 g - (setq mdashlist (cons nil mdashlist))
; V, d' y& Z! W7 E# X2 `7 h7 b - )' a( o) T8 r8 L4 ^# v9 Y
- ;;1 N; p5 s# y9 n/ V5 j6 y+ Q
- ;; Get all the group code 49 values for a linetype and put them in a list
7 R* h" V/ M F% N* d, @. Y, ^ - ;; (pen-up, pen-down info)& L o6 A3 p' c. S3 K/ m) l9 s
- ;;
1 Z# ?$ W/ m/ t7 t - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)- T5 e9 ?- T8 _' G L
- (setq dashlist nil)
- u/ h6 y' w; H1 H1 Y* m - (while (setq assoclist (car ltlist1))
4 W) v: H+ {1 P1 y" Z* a. ~ - (if (= (car assoclist) 49)
' m9 ]! f- T+ I0 o4 ^/ p: ~ - (progn
8 ]6 T; o+ h7 }+ T% d7 O - (setq dashsize (cdr assoclist))0 T) o$ B' y+ P7 F8 B
- (setq dashlist (cons dashsize dashlist))
" o) F, F; C& u3 g u, r - )( {" z [! |1 x. r% w
- )* J' z+ y2 ?. }4 G8 r0 e; B6 u$ B1 k
- (setq ltlist1 (cdr ltlist1))" Q& U# t+ [2 ]* w# H8 |& H2 J
- )9 ^" l* f1 `% {* B" f4 t
- (setq dashlist (reverse dashlist)), |5 `8 n5 C" O
- )
# E: [; s$ l- l! \" M - ;;" a$ S1 E3 n: G& `8 m
- ;; Color a tile, draw linetype, and draw a border around it
0 H! z0 M* C) y9 W5 J" X8 x0 c - ;;( T& D4 ^; q: Z5 n
- (defun col_tile (tile color patlist / x y)
7 h F4 N$ J% q9 z) g) c' Z+ D* r - (setq x (dimx_tile tile))$ b$ o, l8 }% D8 i
- (setq y (dimy_tile tile)). e2 e! Q# w* _; W0 ~7 W
- (start_image tile)
& f" K2 a* d; c0 u - (fill_image 0 0 x y color)1 w2 N( m" O' s( Z
- (if (= color 7)
0 ~+ t+ Q3 @6 X: }/ T: s - (progn
6 T4 s% I# `/ ] - (if patlist (drawpattern x (/ y 2) patlist 0)), R) t; A: ]4 g) N( N8 N- O) \" S
- (tile_rect 0 0 x y 0)6 q% ^8 o: q" h% J g' h F
- )
" U$ z0 F+ `' z9 h( v4 O: P6 u - (progn# Q! K m9 q! a& h+ ~$ Z% i4 x! O
- (if patlist (drawpattern x (/ y 2) patlist 7))
! d& {8 V# b" J - (tile_rect 0 0 x y 7)
* |6 g% y* F8 a- q - )2 j4 u$ f! x* j6 T4 T! t
- )
6 E" S5 X& \7 R6 b! M% ~1 U! q - (end_image): u3 @& u7 d3 q' l3 d
- )' T" V7 i' z2 Z4 N4 P9 H0 D
- ;;
" V- B9 u% Z+ k3 { - ;; Draw a border around a tile9 e3 a6 ], d3 U% O: K
- ;;
) S' H% H- t' a- h# w# N# _ j - (defun tile_rect (x1 y1 x2 y2 color)& z! i1 h7 ]2 l4 F! I) Z. O0 @6 V* y/ u
- (setq x2 (- x2 1))2 r3 ^" `" K6 F" t( u3 p
- (setq y2 (- y2 1))
1 ?# s& T9 e) y% N- o% D - (vector_image x1 y1 x2 y1 color)$ K: X" O2 z8 i4 y- r9 J( Y
- (vector_image x2 y1 x2 y2 color)9 `9 t( N9 F0 j1 e+ ^1 u
- (vector_image x2 y2 x1 y2 color)
x8 J" d, U, {. P4 s - (vector_image x1 y2 x1 y1 color)
8 o) a3 q& K, s" t* O - )
4 t0 \0 W, [: W/ `% H6 F- H - ;;
! E/ _" g+ D9 f5 l - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
8 P1 l* @" D6 ]' g) x% y7 ~ - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a' E6 @! G4 I+ ^( Y$ q7 Y9 ?
- ;; list of numbers that define the linetype, and color is the color of the8 x6 p0 O% Q5 W& h0 O* v8 R- Y
- ;; tile., `" ]8 t! h; c+ s; _
- ;; ]7 A+ Y0 S( H/ }9 P1 s0 E
- (defun drawpattern (boxlength y2 pattern color / x1 x2
6 u% P7 P2 x: c" n3 m, X$ L- i - patlist dash)
! y9 x: u$ h9 X- Q9 d; w6 e - (setq x1 0 x2 0)% y6 c4 y: U# z/ j9 P' O
- (setq patlist pattern)" E) M w9 i$ c" o1 q+ e
- (setq fx 30)
. G: Q( o+ @! y, O: F. [ - (if (= patlist "CONT")
4 v: k) g2 R; r. @& r# y - (progn
/ O P) b! A7 | v - (setq dash boxlength)
4 v, F0 Q- m9 F W3 v. y2 k0 m - (vi)
- Y+ J( N* d. Q3 n - (setq x1 boxlength)
- Y) |9 ~2 @. U4 O5 H8 n - )
0 _' c' j; }5 m$ o - (foreach dash patlist; i+ ]$ j7 s8 ^+ l4 ~, ~
- (if (> (abs dash) 2.5): ]' b5 `7 f6 t
- (setq fx 2)
( z' d% R6 X1 I2 T& i( G - )# O4 y, ^# A: |/ p/ O2 D: l
- )* {- n# s# J8 o
- )0 v2 d& ?4 K- R
- (while (< x1 boxlength)
$ ~, I4 l. W; d: b& H' c3 D5 b b+ ~ - (if (setq dash (car patlist))3 \, j8 B0 H) N! s% ]. k- t9 B, J
- (progn
1 ]) `8 l( x( \, @ - (setq dash (fix (* fx dash)))% y: q6 R( R+ p* G; K
- (cond4 m& F) i0 _: I; n: P4 e5 c: P
- ((= dash 0)2 c. m& O- n7 [; l- g
- (setq dash 1)8 |& i4 t4 B. Q. [. A
- (vi): E6 E# c; ~- A5 c% u$ `
- )
! t( [# y! U+ Z' o6 }7 C/ r - ((> dash 0), {4 c4 {9 G0 T' M' p: [4 Q
- (vi)
. o1 `9 o$ m A' I+ A4 c" g - )
! v5 Z: V$ n7 x5 v0 X) P+ q - (T
[- O/ F* Z, a. ~ - (if (< (abs dash) 2) (setq dash 2))
1 y( p* m% g) o0 o - (setq x2 (+ x2 (abs dash)))# S4 u1 a0 b. w4 \: D9 @
- )% e2 P6 ] B. K+ o. p! d. g
- )
# ?+ V+ N$ o- x4 K/ P& X - (setq patlist (cdr patlist))1 g. ? T& V: X- h
- (setq x1 x2)( r) `+ I3 ?: Y& j8 Q
- )
h% o G1 V( X* @! | - (setq patlist pattern)
3 d6 `7 W0 B3 z" Z* @ - )
1 ?1 E. [2 Q5 F; R - )
6 w; f, w5 ^3 ]& K' g1 A - )
/ K A& u" N6 C5 t; j7 l - ;;
c' f/ D* A; L! n8 Y$ z. }* s$ @ - ;; Draw a dash or dot in image tile
3 @' p4 P1 p5 n! n" B - ;;( P* L& H3 e& ?& f( U; f" v5 }
- (defun vi ()- q! ]* ]# u+ z U
- (setq x2 (+ x2 dash))6 {3 \3 H' u+ H/ [- u: y9 C% g0 Z
- (vector_image x1 y2 x2 y2 color)
1 E4 j& K" q# C7 X7 j - )
9 b; p# B0 _3 l - - i/ h! v, w1 ]3 i
- ;; This function takes a selection and returns a list of the color,
2 O* p N# ^1 i# [ - ;; linetype, layer, linetype scale, and thickness properties that
9 r1 _! S5 R: u' N4 p3 c - ;; are common to every entities in the selection set - (color
6 u d! r: \* R - ;; linetype layer thickness). If all entities do not share the same6 M/ P/ `4 r- o& y, ~
- ;; property value it returns "Varies" in place of the property
8 a% {! X/ P8 P, S/ l - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
4 C# L7 D/ \4 O4 W: u; o - ;; The last item in the return list is an integer flag for the
4 ]- S5 {* `# F1 Z, }! U1 w, K" m - ;; homegenity of the selection-set object types.& M4 \( q# E% D/ m$ g
- ;; 1 = All polylines
y4 Q4 [$ c: @ - ;; 2 = All text or mtext or attdef, or a combination of the three
' f" X- v' \. U: U - ;; -1 = Any other mix of objects
! p# J. [) }* f' p6 u) v
. t+ N" `6 i8 t, p& }. P% g! S8 ]& ^- (defun getprops (selset / sslen elist color ltype layer ltscale thickness, H u" h. j/ t+ [
- width elevation height go ctr
" W# P6 e* E8 r8 C! e& Q5 y( }# B - eflag 8 W& J2 o4 s \* ]8 S" S
- etype temp 1 |- ?( p4 S" |7 _; @1 i' J' u; v
- txt_ss ;;;;rk 11:24 AM 1/30/978 A. l. e) M }( L
- tmp 4 ]/ H ]% r) a/ n' y( _- N
- poly_ss
$ g6 l( S! d' M& X" X4 t8 U - style
* r7 `( |& X0 H! Z, h/ v7 H3 U& O - )
! K! R. I1 b, l9 b
( P* U7 V+ w0 H- - J7 Z+ r# O7 m1 I+ Q- w4 o
- (setq sslen (sslength selset)
/ Z) v. q9 _( ]$ m4 a8 f - elist (entget (ssname selset 0))
1 l1 ^( x0 l$ ~& j$ h9 } - etype (strcase (cdr (assoc 0 elist)))
" r2 T/ ?; L M3 _" ]/ Q - color (cdr (assoc 62 elist))
: d. E$ o, n4 E* ^* H - ltype (cdr (assoc 6 elist))
. t2 R- R2 s! h9 c- {: I( ~0 Y - layer (cdr (assoc 8 elist))0 N/ H# I8 P* ^* t- v
- thickness (cdr (assoc 39 elist))
/ r4 t9 ]- j7 N2 q8 @7 z% {: V - ltscale (cdr (assoc 48 elist))
6 x) T/ q; G4 n. n8 ^8 V9 U - );setq
4 f' b9 _% D; Z. r
3 I" s7 ^. @0 N9 |5 }& I- (if (not color) (setq color 256))* j$ V$ @1 y' M/ O$ e* H% T; g
- (if (not ltype) (setq ltype "BYLAYER"))
" [6 [5 v# a8 @3 X: M( J' W2 b; e - (if (not thickness) (setq thickness 0))
- X5 b- b1 y1 O. M - (if (not ltscale) (setq ltscale 1))
& B* O0 t) j5 U( s - " D8 |6 o6 T9 y
- (if (not width) (setq width ""))0 U5 Z; g8 C9 H- {( v G6 V T
- (if (not elevation) (setq elevation ""))7 h% x p' u4 ]% j( \! q- u
- (if (not height) (setq height ""))# ^! H8 p& }' m( G
w' l% o. }9 T2 `" M) K- (setq go T 1 A$ }( p9 c* U3 g, Z+ Y6 Y+ n. A
- chk-col T ! D- Y! t' O( C% [
- chk-lt T 6 r( ]6 {9 h6 U$ \6 R
- chk-lay T
: S! V! ~" p, q) R - chk-lts T
& |( ~% n( [( ]+ {8 Y" T - chk-th T ) g3 i6 \. V9 Z ]! m5 ?1 W* Q
- ctr 0
$ r( d- R4 M# \- O/ v - );setq3 K" w4 ?! n- H
- , y; U0 k: G( N5 n% E0 b
- ;; Page through the selection set. When a property8 H u- G5 x( Z8 {' J7 J: ^/ G
- ;; does not match, stop checking for that property.
% L" u. H( W% Z" c2 _- D - ;; When the selection set is not homogenous, stop checking.: D& i. G0 R4 X9 {6 J
- ;; If all properties vary and the set is not a type 1- `. a/ D; |7 h" B( c6 H0 B
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.& Q4 o8 R( ^$ q6 x2 ? U
- ) ]( @; G* _7 `: s1 F( S
- ;Lets set the eflag so we know if the selection set includes any
5 g; }6 j& s; } - ;combination of polylines, lwpolylines, text, mtext or attdefs.- ^# h! L6 o/ X
8 n& h8 {* Q& P8 x- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
- y% T( |% |" _9 h6 t& z6 s: G7 L - (setq eflag 0)) t6 W( x9 r3 Y0 g4 T7 ?8 y' q$ B
- (if (setq poly_ss + f2 P3 ~) @4 ]
- (ssget "P" (list '(0 . "*POLYLINE")
" V- C* o4 @$ C# B5 b, ] - '(-4 . "<AND") 6 u( Y; b \- ~1 ^7 o
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
7 e, ~- |4 [* y0 @- u6 w - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")2 m( g7 E' ~, ]2 I
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
/ ?7 v @# _1 O5 b- d+ T2 M7 R2 J2 B - '(-4 . "AND>") 5 [. O5 R; Y; l! Y
- );list
! \; G# k& G% q; S. Q3 D1 F; o0 X - );ssget get 2d polylines (legacy and lw)
3 ^$ C. W0 f9 U - );setq) L5 @) j5 S8 l- J* O0 N
- (progn2 D, o" G# e2 d
- (setq eflag (+ eflag 1))
) N9 {, K% e. Q7 \' ^( x# o- i! u m -
/ C$ N+ q, e* V- n - (setq tmp (entget (ssname poly_ss 0)));setq- G, p: X& d# n, @. A# j) k( n4 R
- 2 j* R- U* Y+ g* b" L5 S, J+ \, _
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))7 D- ]7 j2 E. O+ i5 M; ]
- (setq elevation (last (cdr (assoc 10 tmp))))/ B5 V( {9 k m1 M+ Z. Y: k
- (setq elevation (cdr (assoc 38 tmp)))
& d C* s$ D, f- f& P" {4 ]) ~& N& I - );if& P& q, R$ ^. f( s! }- }9 D
- (if (not elevation)
" }' ^: h. K* Z, p( a+ { - (setq elevation 0.0);setq9 C& \8 H, ?: w/ `( X
- );if2 D- T; K: U8 E/ @# |; ^/ f
+ w/ @, C# Z4 O+ c% ]- (setq tmp (ssget "P" 2 L& B8 V+ I4 t# s
- (list " l! v c% W1 A( y+ o. @
- '(-4 . "<OR"): T/ R6 q4 G Q! R: y! a9 e* I
- '(-4 . "<AND") 9 z& T; d( E$ [2 B0 e8 l$ c
- '(0 . "LWPOLYLINE")
0 a) w0 a# ?6 @6 u - (cons 38 elevation)# n7 w: b* S6 x6 S$ Y0 r7 Z# w3 e4 N
- '(-4 . "AND>"); ^0 q: r- Z' K! L# W5 ]8 z
- '(-4 . "<AND")) @3 Q. W7 M$ A( c1 _
- '(0 . "POLYLINE")& a8 _3 }; Z4 c. V" M' C' X
- '(-4 . "*,*,=") 8 H# i' v I$ G
- (cons 10 (list 1.0 1.0 elevation))
" R8 f+ j- G! r+ {8 C5 D2 o3 F - '(-4 . "AND>") : z, Y* j' |& H4 g) @' f
- '(-4 . "OR>")
) i1 _6 u6 n) x! |9 o( L! d - );list f- B1 Z0 V4 d4 I/ X$ f, E
- );ssget* N) ~; V+ J2 \; g7 G6 z
- );setq* n; s1 `" [- `- p8 a
- 8 g* q. }( V. g
- (if (and tmp & k* I, A. T4 C& y
- (equal (sslength tmp) (sslength poly_ss))
7 e6 m& X# o; ? - );and
9 l+ E: w1 x( }1 ?9 _6 S# c - (setq elevation (ai_rtos elevation));setq9 T) ]7 H( h" T* W
- (setq elevation "")
- Y4 ~- a# _+ c6 `- I - );if
& v8 M h! G$ n6 N% ]8 l -
2 U1 x5 P+ Q" b) M- I! W - (setq width (pl_width_getter poly_ss));setq6 n! d8 Y9 O5 E. S
- 0 W& _. p! P- U
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE! u2 H6 w% s! F1 G; _: K6 ^
- );if/ [7 ]; q" j- Y
- (command "_.select" selset "")
/ F' P1 @& @ L, y5 x' ^ -
! N% T0 m3 r. L - (if (setq txt_ss # \, U, y+ ^1 C1 l$ ^, a
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 9 L; X4 u) x# f# D/ p
- (0 . "ATTDEF") (-4 . "OR>"))
0 o2 V% M, a6 u$ \* K - ) ' [7 I% A3 c3 c% X4 Z2 x0 l" f
- );setq" X9 [ A$ S3 C2 [ i; r- s
- (progn4 A- Q# c. f N" l
- (setq eflag (+ eflag 2)). b- ~0 _2 a, ^4 c: t. Z
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
1 q& M9 O O1 Q8 W& } - tmp (ssget "P" (list (cons 40 height)))
0 Q; B4 F# o. \' S* ` - );setq
% A" K* u5 v- R/ r, |2 e - (if (and tmp P( W4 U! p n; O5 E* f3 F+ P
- (equal (sslength txt_ss) (sslength tmp))
, q4 ]. L- b; m - );and
t( g0 e2 Y: i - (setq height (ai_rtos height));setq ;@rk need to translate from float 3 M% r; i' _" _: m
- ;to string and back again easily! @& A; k1 C, o
- (setq height "");setq else the height varies
# f' C; z; H0 Z6 z L - );if
% k( G. F5 U$ W( I( A5 n1 Z4 t: F - (command "_.select" txt_ss "")
9 W9 a* @. c* `1 p$ |" \6 Q& K# M - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0)))). o A; r7 n# X+ q9 k: T
- tmp (ssget "P" (list (cons 7 style)))
6 K" F, b* @% q - );setq
1 B- F4 \8 q* N5 j - (if (not (and tmp
0 [3 w$ @" e8 M" v. O( f9 s - (equal (sslength txt_ss) (sslength tmp)) 3 M/ I; t n+ e
- );and5 _4 V' Y7 w, z/ ?4 E
- );not# T; s U! P7 E2 ~
- (setq style "");setq then the style varies ( a. `5 u3 j6 X/ F! u% j8 d
- );if6 F7 c' A" E1 B* W7 ]4 l6 m
- );progn the text type objects are in the selection set
& o7 u) `) H1 c8 h) x - );if, i7 r. T+ w& ~5 T2 M
- (command "_.select" selset "")
7 {% I, P: q4 Z: C8 W. C: I -
g( t1 ^8 z8 E: ? b - (while (and (> sslen ctr)
5 r% x$ M& N4 w9 a, W - go
1 O& Q0 T% H) s% i7 ^7 m5 u - );and. |2 S( w& R" K- t! X, f
- (setq elist (entget (setq en (ssname selset ctr))))
0 P" b# K+ K: G - # }7 z7 k% W3 P$ b0 ?4 i6 t+ B0 ^. @
- (if chk-col (match-col))+ M( U; s! A3 w6 C0 y/ n
- (if chk-lt (match-lt))
) r% y* ]; S2 v7 G/ c7 r - (if chk-lay (match-lay))
$ e9 @2 M! P/ D. U& `) N2 B: l% y - (if chk-lts (match-lts))% @$ n+ q. _. X
- (if chk-th (match-th))5 M; W$ h4 v2 B' q- ^
" j7 H, d- {. @) B# K4 o- ;(if chk-etype (match-etype))9 g, ?; V% m; q# G4 K) U4 C: |
- - _* R4 p5 n. O5 ]8 r2 m
- (setq ctr (1+ ctr))3 D+ m6 z4 @9 d1 @+ Q4 q7 i
- (if (and (not chk-col)
- Q/ V" [& O3 U8 p, i. K3 ^ - (not chk-lt)3 N k7 y8 `9 J/ B$ _6 g5 H
- (not chk-lay)& f5 ~( G& ~8 R
- (not chk-lts)
1 c' s# P9 T8 f* }2 e - (not chk-th)
; U. K' b' q* E4 R' V# a+ s& Y! `- m - ;(not chk-etype)
: ~$ x$ V7 V! u# x" ^ k* r - );and6 [8 X/ u8 x; q2 e; Y' W6 A
- (setq go nil)1 ~/ ^0 i& a- U6 y5 U8 d/ c
- );if' P* E2 t+ D3 ^3 N9 i
- );while
! D9 }3 g$ K( h+ u, t& |, M) |, z) W -
& [ x% Y0 I# Q h. n& Z2 w - (list color ltype layer thickness ltscale: c. c7 d5 f% y1 r
- width elevation height eflag
, a B5 l o' }; ^3 s - style poly_ss txt_ss. k* Q. L% G. x' F, v
- )
S w6 V9 k) l# x8 ^! \1 @ s7 o - );defun getprops
/ Y* D- @/ B. Z* @ - : H# x [% W2 D- Z
- ; This is a speedy little routine to tell whether the polylines in
" Y, v& L5 [1 h - ;the selection set argument are of varying width or a constant value.
& L r: q; b) \7 u2 z' Q( I4 ] - ;Looping through the vertex's has to be done for old polylines when
5 S/ `* i2 q: y: p - ;the polyline header has width values of 0.0. Basically, in this case, 9 J9 D; O- O g1 w8 _
- ;information in the polyline entity header is abmiguous. Width values
' ^- X* \' X# d7 k( P7 M5 {% G6 j5 x q - ;of 0.0 in the header entity could mean the polyline has a constant
- d- E' G2 W# p: S: T4 ~ - ;width of 0.0 or it could mean that the polyline has vertex's of varying
$ g% N, j; [9 V7 U7 B, r# j - ;width.
; Z2 I( j, H5 I/ }2 K' R! y2 E( f - ;
/ l8 S# X8 @# t: }) f7 T; T - ; It's all in wrist. Err a.., I mean it's all in the 'if'
9 V9 u( M3 t7 u7 i B - ;;
+ A9 F7 c; N2 J8 f8 A! y" y - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2), |) L# c P6 B
& q8 V8 k6 |8 f- (if ss . [, X, n7 h$ F2 P& S: r0 h0 \
- (command "_.select" ss "")
9 p2 {/ E, T7 s3 S - );if2 Z8 h1 q, a$ l5 L: l$ i
- (setq width ""
4 l8 ]# e, }; l5 i/ K3 Y - flag nil5 f6 k) {) X4 R0 q' o: J
- flag2 nil9 L- {# x* {1 |0 W3 W& }) h4 |4 R8 h
- );setq
3 ^$ C" \8 ]/ x. p( K9 A c - (if (not , }4 d6 _7 X$ G6 H6 ]
- (and ss4 u8 [1 D: G& a6 {( ^
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq# s& Y1 K+ [9 j1 g" w( Q( f
- (setq na (ssname ss2 0)
6 D8 @, @$ M, Z2 I3 l: M$ z - width (cdr (assoc 43 (entget na)))
1 B9 z! m5 C, k! \. c - );setq; \7 y3 C0 \0 m7 q6 r
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
2 u$ r0 Y5 o/ B8 @5 \ n' x - (cons 43 width)3 Y8 h3 z9 C' h/ l
- );list) b2 [9 _1 O1 F& y
- );ssget$ |) g9 T c$ U+ l
- );setq: R$ ^% ~2 x. }, R
- (setq flag T) * a) l" w, i$ o _2 r
- (equal (sslength ss2) (sslength ss3))' x3 q6 c) Q: T B% l6 u
- );and
1 i* N; V# e& G" ^ - );not
) D7 x6 V5 i- w+ F. Z/ \3 y7 q - (progn1 x! s, i/ K+ a' s. z2 ~2 Q; k/ y
- (if flag
* c# Y& p7 W8 K2 z) N) q& i- ~4 ~- { h - (setq width nil) ) _& O4 y0 y8 J: I! F0 L8 t: z$ ~
- );if ~7 R# r b: F0 o. U0 x6 i5 J9 ]
- );progn) b X4 A' e1 a5 z- S4 z6 l* e
- );if 8 o$ \1 R {# Y- E5 ]- m
- 2 _" M& {. d8 s9 w; C! L
- (if (not ! M. r* D7 B, ]
- (and
# K# T9 C* T" r0 E+ N4 b - ss
: K+ y! i0 o0 t0 a1 S2 l0 M - (progn (command "_.select" ss "")
. ?2 L, J$ E D7 D - (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
2 Q5 N% |% k4 E& E& { - ) 8 o1 g: k1 J! [" |
- (setq na (ssname ss2 0)
. _1 S2 T. ?; J. j4 D3 w - e1 (entget na)
1 N& E" p7 s$ E7 k) l4 C - width_a (cdr (assoc 40 e1)): a3 g# Y1 E1 ]9 h
- width_b (cdr (assoc 41 e1))
4 v/ K6 w; b+ B+ n - );setq
# }, `. ]# s" j& `% ~ - (equal width_a width_b)( U2 X5 u6 o. S6 r
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
1 r9 ] b/ K- M2 c5 e% A: ? - (cons 40 width_a)% y' Y2 o ]. f: U6 z3 H7 w( \
- (cons 41 width_b)2 Q+ T9 D/ j. w8 |
- );list4 z* q/ l; @4 }% u+ z" g* `
- );ssget
1 t* s# N6 O- n' { - );setq
+ W: `7 I" m r/ w N s/ Z - (setq flag2 T)
; g5 Y [$ U9 x' t4 A5 H - (equal (sslength ss2) (sslength ss3))
$ I2 F8 l* ?3 I: x a, S; U - );and
8 l6 F- U6 h" w) A. N - );not - K7 S+ u4 x, B! p
- (progn( F5 g1 \0 b; t. {9 |* o
- (if flag2
# e/ @4 J0 R& E( d - (setq width nil);setq
9 D( z" w+ B( H4 m - );if4 g2 Z9 C6 J; Y1 r
- );progn then+ D0 \8 L I1 j: c4 c8 O- C0 S6 w
- (progn
, M' I1 u8 C) q! k - (if (or (equal width "")) `' x# G- y# Y6 l/ k3 n8 @
- (not flag)' ~: a( A' o I* E4 z- `) [
- );or8 {( s, a8 G$ K% r' ?
- (setq width width_a)
* {6 e+ l* b+ t, L - (progn; ?* a* D# O+ R9 {( `7 o, L9 j: m
- (if (not (equal width width_a))6 R: v2 E# L3 a7 i
- (setq width "")7 r/ A' \3 Z, p
- );if
5 t# |4 x# h: d; l" b - );progn0 S( j C, w3 C0 f! [9 F
- );if
; y" s: L# ?+ T8 g: j& W - );progn# ^3 }+ A8 N0 U8 a3 n% m$ V( z
- );if! P4 |, t% [4 g' y, Q6 A6 k
-
. H! q. w* \! ` - # C% c4 d+ `& n6 |5 V# y4 G
- ;now for the special handling for old polylines
- M) o I9 E/ K, Q* \9 a, D, L# T - (if (and width . T4 \9 g2 E4 S% O) g. Q% o3 _
- (equal width 0.0)4 N. i1 v! h! }1 o! x) y' j& k! R* X' m
- flag25 j; F' Z4 c. D; ~
- );and 1 T$ h; q6 b7 t& F6 \
- (progn7 g0 k/ K) N: p
- , J4 X Y4 T. E
- (setq n 0);setq
6 k: A' y8 i+ t3 y - (while (and (equal width 0.0)
& F/ {% Y/ u/ k6 d - (< n (sslength ss3))
4 z' Q8 f( ~8 n6 N! l - );and" {- _/ J% a4 f$ }) |) j
- (setq flag nil9 ^: k, o6 U) i- r) b
- na (ssname ss3 n)
* ]) a$ A( a% z1 E9 A" |% Z" V% x9 | - na (entnext na)
- _: W( k6 }- A- l) Q - e1 (entget na)
( Z. g* k4 } E- A; d9 K6 V - );setq
7 z* K3 s' R. r - (while (not flag)7 w; J4 b/ {8 ?# P, d+ x: R* B9 F
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
: R9 G/ C6 `5 J# m" Z! r - (not (equal (cdr (assoc 40 e1)) 0.0))
0 O( N4 ~; {; f - (not (equal (cdr (assoc 41 e1)) 0.0))
3 M! W! B/ {; ^' e; C' w4 }: v6 t - );or
! n1 O. X6 }7 y8 P7 f3 g - (progn. R- {- F- c, P6 _) ^6 u9 B
- (setq flag T);
. D0 H- U }* i6 k - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
' _* i* e) Q O& Y3 o; L( W! B - (setq width nil) : S' Z8 Q P( V) j$ ]0 h4 q
- );if0 `. d2 A) K* | C; ^3 h
- );progn then jump out of the loop0 [% b+ J* t' E) e/ l, R# B2 d# ^& l8 \
- (setq na (entnext na)
2 O2 a: L5 J1 y - e1 (entget na)
/ v; y2 j( y* O% m. I+ _3 y - );setq H0 m& Y6 q! B. e: g- w) P- A
- );if 8 E7 j, A# ]1 R8 Z! L" }0 s
- );while
- _* \5 [' [. a( c1 I - (setq n (+ n 1));setq
4 W6 J1 V( E: b6 h - );while * a3 r% ?( D1 Z: p
- 2 ?& z. }2 U6 ]: a/ _; n4 P: K
- );progn then it's a legacy
6 v0 [% c/ R; z! ~& l - );if ;legacy polylines that may have varying widths ; I# I0 ]' g6 a2 m1 u: I$ Q) P
: W, ^$ Z3 f. n6 Z% } B! f. x- (if (not width)
1 P/ r/ d Z! O, N - (setq width "");setq' K7 W& `( I |3 s: f: c! }$ W
- );if* w/ s. _. | j5 X
- (if (not (equal 'STR (type width)))
* H3 T8 I6 x5 X6 N - (setq width (ai_rtos width));setq
5 ~- @) h. y" C - );if % H; |3 `/ E) ], L5 g- z
- # \9 ?6 N7 m- P. c
- width
8 n3 |( \2 m' w2 h3 q; U5 S - );defun pl_width_getter9 ]2 i, r, @( n; A
- % a6 s! f7 j/ v# ~# P
- 6 @8 r) ?- s* Y; S* W7 v
- (defun match-col (/ ncolor)! l) F- x8 O4 j) q. N
- (setq ncolor (cdr (assoc 62 elist)))
5 q5 n" U9 {5 H: q7 k8 p+ j; q" h - (if (not ncolor) (setq ncolor 256)). e# ? H/ g3 M
- (if (/= color ncolor)
e$ V% m' p7 }& u1 X6 d7 P - (progn, T, A2 A s) P) u2 h
- (setq chk-col nil)$ ~1 z. q/ f0 H! z# E
- (setq color nil)% c i. @$ p/ a6 L
- )/ z% N/ f, }% |7 D5 A1 d
- )
$ p7 y% O# D0 H/ ~3 T6 `8 j" V - ). @. O/ f9 |. g: C% S0 y
- % Z( v* t! D( S- v8 g3 n; z A
- (defun match-lt (/ nltype)7 Y) i0 e9 R4 t, y- g6 i
- (setq nltype (cdr (assoc 6 elist))): [. G- T4 ]7 c5 ]& K2 i |3 a
- (if (not nltype) (setq nltype "BYLAYER"))5 o0 _8 y$ u* y
- (if (/= ltype nltype)' P2 E+ p7 |( b& p- A6 Y
- (progn
4 S% T( n4 u! Q. F - (setq chk-lt nil)( s6 N) n; s, S W* z) W/ E
- (setq ltype ;|MSG0|;"Varies") ]; L. l0 i S( B9 C
- )' _. R8 T& X5 j3 |$ l# s/ \
- )! A& a# [2 |0 V( `/ q4 p
- )! f$ l# C* `1 [9 d3 G3 }8 y
# L+ J X0 w! E% p- (defun match-lay (/ nlayer): b9 _; T v+ E$ c# t' ^3 I
- (setq nlayer (cdr (assoc 8 elist)))
% r$ |* P& n# a; p. B - (if (/= layer nlayer)
0 z- G# s8 T+ S5 h7 ? - (progn
3 A' P! q% Y7 T: R5 A. D - (setq chk-lay nil)
9 E( R! @8 m9 |3 f - (setq layer ;|MSG0|;"Varies")
: l# c) C; @& N3 w/ j - )
5 {9 o& D2 `" M8 c8 m* z% Q% q - )
6 R- }$ N8 R* W8 e: @ - )& }5 w: m9 ` I* b, k2 t
d9 {3 I+ I( H& F' M- (defun match-th (/ nthickness)
8 ~9 K4 w6 @' O - (setq nthickness (cdr (assoc 39 elist)))
5 Y; z) D3 ]% w - (if (not nthickness) (setq nthickness 0))9 Q4 D( J0 m: o2 L
- (if (/= thickness nthickness)* h& l* y \- @; P6 A
- (progn( ?" w/ L; S7 p1 F$ W
- (setq chk-th nil)# ~9 `6 j( X% n! a
- (setq thickness ;|MSG0|;"Varies")1 k L5 d2 z$ S: i9 v
- ); D* K. m$ x3 Q9 r/ ^+ r: Y1 `
- ) F- K- B& N* @, h$ l, q
- )
* I: Q* q# C5 L' W* D0 h; Y1 i6 Q8 ^! w5 } - 8 t3 D0 Q' F& l- i; T+ W- l
- (defun match-lts (/ nltscale)
3 w1 h6 _$ ~% Z- j9 R8 C - (setq nltscale (cdr (assoc 48 elist)))
4 \7 Q r8 a0 f - (if (not nltscale) (setq nltscale 1))
* C7 I- Z+ ?& V# r4 z" J. H1 E* A - (if (/= ltscale nltscale)# r# U. o- ~6 P, |+ q/ X
- (progn6 V0 z, S) P5 Q; L. y
- (setq chk-lts nil)
! _4 k& X% c9 i+ Y. T& I+ v - (setq ltscale ;|MSG0|;"Varies")
' X, w, E! k- D7 B m - )7 t7 F+ v* P- Y8 }! }% S; N0 n
- )$ n5 S m9 m- l: P* l& b
- )
' g" V% j, g. y; }0 |! O! U
$ y& F4 f2 z: w0 r4 v7 g: T( s3 F- ;;$ t- ?& [5 [% L8 E+ D; p9 I
- ;; If an item is a member of the list, then return its index number, else' h% m7 p* T; @, h8 z
- ;; return nil.
8 p7 N9 O- i2 l7 t) t% ] - ;;7 U2 o" u5 Z5 P; G" n
- (defun getindex (item itemlist / m n)
* w% z- r6 R, T3 Y, _ - (setq n (length itemlist))
% z# k/ {7 e! t9 A- h - (if (> (setq m (length (member item itemlist))) 0)
3 }# y) v8 N, F% j - (- n m)
$ `# c0 j0 k q& T - nil
+ U& X7 n( k* X7 P# r( e - )
) Q L# {1 {% u [, D. j# R3 r - )
3 ]* \* e8 _5 t) H3 Q8 J - ;;% U2 U" L K- G- l/ D; l
- ;; This function is called if the linetype is set "BYLAYER". It finds the
" `( l0 C5 ^9 s+ B - ;; ltype of the layer so it can be displayed beside the linetype button.0 ]+ ]- Y* j! M7 u
- ;;9 U" C7 \' ~1 P( s* Z
- (defun bylayer_lt (/ layname layinfo ltype)5 b. M: A! x& B5 z% d* t, u% s
- (if lay-idx/ V: u# h9 |) W8 V1 F8 g
- (progn
- {1 W5 }% H2 B& C! o4 P5 ] - (setq layname (nth lay-idx laynmlst))* o. n( O9 I0 z0 ^2 W
- (setq layinfo (tblsearch "layer" layname))+ q4 C. f+ g# H6 O H% L! E# Q
- (setq ltype (cdr (assoc 6 layinfo))): P& v. n/ g& i/ Y8 L! l: Z5 c
- (strcat "BYLAYER" " (" ltype ")")
5 ~# \' [7 p9 E. p6 y A - )7 P% x5 M# Y/ }2 T
- "BYLAYER"
/ O* p" A& [: F6 ~2 G - )
8 v; ?! N* L7 Q' ~' U5 ^' F - )
/ P. F" o: A4 Q: f4 G - ;;" p) m) h$ u0 R( l& @
- ;; This function is called if the color is set "BYLAYER". It finds the1 U8 k; \) Q! F+ P
- ;; color of the layer so it can be displayed beside the color button.$ f7 u9 q: b. G! H% Q* M8 r
- ;;
3 A8 e) r# }- ]2 u - (defun bylayer_col (/ layname layinfo color)
( t9 ?" S4 v- b" n - (if lay-idx
! X# N1 b0 _3 `- w$ p" h - (progn
7 c* s3 @* i" k8 [5 D- } - (setq layname (nth lay-idx laynmlst))
/ [7 p2 f/ c* x1 O - (setq layinfo (tblsearch "layer" layname)) A- p# A {1 q* O3 V
- (setq color (abs (cdr (assoc 62 layinfo))))/ q# ~$ h3 l$ `% n
- (setq cn color); L" |1 Y& C- H X6 h' J* ^
- (strcat "BYLAYER" " (" (colorname color) ")")6 }: ]5 Q+ q! N }+ ?, _5 S
- )! n W; n$ }0 Y- \& e* @
- (progn* y+ N4 B2 q- I# _
- (setq layname elayer)2 O6 z$ C' P9 v+ R3 e9 c% P# ?
- (if (and (/= elayer "")3 e' Q' h& T4 \/ {
- (/= elayer "Varies")% u/ m& h( r3 t9 j* E* Y3 l
- );and
# [% v' e4 c; r- [ - (progn
9 x- N8 N: `3 o! `5 f; [- R' ~$ n - (setq layinfo (tblsearch "layer" elayer))9 f! q/ C. o5 h. X# O
- (setq color (abs (cdr (assoc 62 layinfo))))
! d: q. \& O$ a5 U+ g - (setq cn color)7 M) Q& \, x: @
- (strcat "BYLAYER" " (" (colorname color) ")")
?5 E5 e" e/ B - )2 N; M( ?. y9 A" F6 @3 N: } E
- (progn
6 A" k! o4 \9 V: O7 c, v* ~! r - (setq cn 0)2 a& [& y' n0 b1 z
- "BYLAYER"
* F- |& Z% _3 j+ u% u) g( w; b - )' J- }3 @& r) W
- );if1 h" o4 D! }8 n& i2 E
- );progn
3 W; W6 p/ r% S7 h! x- m; F. g - );if
( E. O0 d$ q7 d5 x# `) u - )
* y s* ?8 F: R% ~& A i+ p - ;;: ?: ?8 Z0 H8 R; H
- ;; If there is no error message, then close the dialogue9 s% N4 C0 @+ M' U5 C
- ;;- ~3 U7 Q' y2 k" z. K
- ;; If there is an error message, then set focus to the tile% d/ u2 k& v, A
- ;; that's associated with the error message.
2 x6 U8 `5 I3 C* O7 K - ;;
2 e8 w, u( [2 p7 L V6 Q. F" Z; N - (defun test-ok ( / errtile) {( l: u, X# h& h& Z
- (setq errtile (get_tile "error"))
7 B" s; |! e, `$ h: j& k - (cond
; W: R1 Y$ W7 Y- d) Q - ( (= errtile "")
3 A( O5 W% U8 T) ?; p0 s7 E - (done_dialog 1))
7 {' |" |; t! ?2 j6 f x - ( (= errtile "Invalid thickness.")6 H) K$ j5 r* r- X
- (mode_tile "eb_thickness" 2))/ S4 A4 W: ]) o# }
- )
4 e* j* y0 d6 }; H) a - )7 C- M6 ?; R7 Z O0 X( v& `, D
- ;;2 ~1 _% k$ W8 [
- ;; OK in main dialogue.. P1 [$ r& E) }( U- G( V
- ;;
8 A- o; S- i/ Q# d9 | - (defun test-main-ok ( / flag)) t0 @; |4 \) l, G
- (setq flag T) 9 l9 g0 ]0 d- W' d- Q5 N
- (if (not (or (distof (get_tile "eb_thickness"))
/ t+ j1 X$ n& s0 R - (= "" (get_tile "eb_thickness"))3 M' X" T; {7 ]
- );or
}2 n7 |/ t9 H5 g: r) V - );not
' c2 r1 B, D5 s - (progn
9 H, ?) s4 _" l1 \! H0 T2 w' m* S6 _) f - (set_tile "error" "Invalid thickness.")# v S1 }# \6 Z
- (mode_tile "eb_thickness" 2)
$ k1 F; m8 r$ K: {, ]3 R$ k - (setq flag nil);setq
4 C- e" y% J t: A- l9 W/ v - );progn
$ \: ~& }$ d) \) I# a9 ` - );if) \! m1 i% V8 |& R8 L. \
- (if (and flag/ @5 T# ?) `; H9 j' \
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
- m6 F4 m, w7 r& }8 F, J1 t+ Z - (= "" (get_tile "eb_ltscale"))3 @6 ^ t7 I7 W1 l- ?0 e {- l
- );or
+ E$ z, t& I! \: K2 f+ b - );not) ^( E5 u# E5 |$ G1 U: ]
- );and
! e& Z# _1 S; E5 H8 l - (progn- O" _' O w5 r2 g w' f
- (set_tile "error" "Invalid ltscale.")
" ?, C( V+ ~: ] K. t - (mode_tile "eb_ltscale" 2)4 M6 L8 Y* {, i7 [
- (setq flag nil); 8 \! E+ H* ]+ e" Y v( P# A
- );progn then$ Q$ t( q0 j3 w0 g2 k( [# q
- );if, e& U2 _% L) j o# F
- (if (and flag4 k& Q" P9 I( ^# l
- ; Don't test the tile's value unless it's enabled.5 x5 l: |* h" J
- ; We're not set up for the display-only value
r* y! T$ |) k/ d4 p - ; of "" here in the error handler.
7 J7 k9 h& v9 [& f, o& t1 @0 n - (= 2 (logand 2 eflag))
/ N* _2 ~1 t- m: k! {0 u - (not (or (< 0 (distof (get_tile "text_hgt")))
$ Y5 y/ G4 g7 H) H. j- s% @$ O - (= "" (get_tile "text_hgt"))4 |5 L9 H1 W, D8 j
- );or. o5 j" a- p, J0 Q+ C% r9 g5 r: P) e" [
- );not, P9 ?9 ?; _1 N, i/ g
- );and
; b L7 t; i! ^* F0 s4 I- H - (progn9 c/ J) O: k5 q( w2 W
- (set_tile "error" "Invalid height.")
2 [" R& w5 J. ~ - (mode_tile "text_hgt" 2)
- S3 ^8 D) I9 }% P' U; E4 y - (setq flag nil);
6 _, ]# x% }2 l/ I" [& B - );progn then6 Y8 f" F3 ]3 L J: b
- );if9 l/ y! b, P, y( ~; k: F& [
- (if (and flag' F3 F& u- ]( H& V7 X7 h4 J: f
- (= 1 (logand 1 eflag))
a# `2 @( e. _* u& n% t - (not (or (<= 0 (distof (get_tile "poly_wid")))& [0 u. Q* \, I# K: W3 R
- (= "" (get_tile "poly_wid"))+ Z0 H9 `, s) \! F
- );or/ ?+ x+ O+ u/ u- [3 ]$ h6 f' M
- );not+ Q% Z& F) R% L0 ?
- );and
0 S. e( {* m! u0 e5 t/ z - (progn! G) ?6 M: t. G9 t
- (set_tile "error" "Invalid width.")0 c8 D, w4 V+ _7 a
- (mode_tile "poly_wid" 2)
. i4 Q& Z1 t3 p, H6 c - (setq flag nil)
9 o' I- P x& v: F2 g - );progn then
) T& s# x" Q a# ]( I) d - );if , N, O7 q, p$ {
- (if (and flag F! A+ N1 |- I, I5 u
- (= 1 (logand 1 eflag))5 L- w2 j$ \! ]( i0 F4 y
- (not (or (distof (get_tile "poly_elev"))
$ h% S2 j+ Y1 S( T" D3 v" S& { - (= "" (get_tile "poly_elev"))- j0 t& g, i/ ]. j2 K- P
- );or
5 J8 F6 e: Q3 B8 @/ t - );not
* i9 H1 A, | h: E; M - );and
; A( A( @' T4 l8 w - (progn- \* h3 K7 s ~) e+ s
- (set_tile "error" "Invalid elevation."); m% g; a/ h3 h( b5 f( |0 R+ B
- (mode_tile "poly_elev" 2)3 X& K2 p2 i6 d
- (setq flag nil)7 [, g5 U1 ~& A6 Z
- );progn then' J+ T: ^( `2 G- v$ e! {$ b# G
- );if
) }- s6 c! s0 O8 n - (if flag g8 e% I" d9 D6 Y o
- (done_dialog 1)( w9 a# o( R# ~/ e9 p0 x g
- );if* C# f" I' D+ [* o' X! D% p/ u
- );defun test-main-ok4 U6 G. \% H& y4 d1 J0 a
- $ b. I& ?; N+ q7 T2 Q2 B
- ;;
I- Q' D U7 }, B3 }( e2 z - ;; A color function used by getlayer.
" M( w# m& R# T, \( E( f - ;;- N& Y, D' Q: i1 }6 V4 j
- (defun colorname (colnum); @7 X8 E) p$ h5 }) |$ b
- (setq cn (abs colnum))
- @4 H8 [* {& e+ Y7 O% O - (cond ((= cn 1) "red")
5 D. M, m4 a+ Q/ `2 n, O e - ((= cn 2) "yellow")+ g, j, Y: s& T+ w5 c- K
- ((= cn 3) "green")3 L) e$ O: ]/ `
- ((= cn 4) "cyan")
* J8 R, }! P" `5 a, L - ((= cn 5) "blue")5 \) ?( B& ^. Y J3 C; x
- ((= cn 6) "magenta")
8 T; [ Y7 M4 c - ((= cn 7) "white")
9 c2 R5 i9 k, A; Z - (T (itoa cn))
* s% N; r7 x. _( }( n% k5 M2 ~ - )
- R3 z, l( G0 Y - );defun
" l/ h u! n) F1 a. o2 `" P
! v5 P- n) R2 _- ;;; Construct layer and ltype lists and initialize all
6 X ^. p" A. `, h* H$ Y. T8 |1 r7 Y - ;;; program variables:
+ _/ }- x1 v" ~5 c4 H
) E. }% P' j9 B! g7 f/ L- ; (makelaylists) ; layer list - laynmlst" E/ d0 F: y7 M( O" x8 e
- % H" y5 U, A% B: {' X
. }! ?5 j N, M' E7 o3 N9 G- (makeltlists) ; linetype lists - ltnmlst, mdashlist2 F) n( G; h7 [" y0 P
+ W8 u6 J3 w( E- ;; Find the property values of the selection set.
|( o1 u. i# i2 m& s! B2 a6 {9 f - ;; (getprops ss) returns a list of properties from9 {+ P4 g, q; n I
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).+ I; M2 f' c4 I1 Z
- A/ ^- o) Q# q' _& c
- (setq proplist (getprops ss));@rk interesting things happen here7 K& b% D/ t$ J* O5 e. f
; M9 l' R- U4 h* i& k f8 P- (setq/ m# R/ G' x0 u) I6 O" S3 B' T- D; A4 i
- ecolor (car proplist)
' R, p% @7 W8 K6 k, ?+ G+ j) G- i - eltype (nth 1 proplist)
1 F. F+ b/ a9 |5 l/ j% i+ T# r - elayer (nth 2 proplist)8 L1 M0 B+ T9 T6 u' w- z4 w
- ethickness (nth 3 proplist)
5 g H D# b% d8 t - eltscale (nth 4 proplist)
5 ] o4 `" V- H& r m6 w( N - ewidth (nth 5 proplist)% i8 I# f; g3 L: R l+ O
- eelevation (nth 6 proplist)5 K0 R8 I- {- _4 o/ y! \* g
- eheight (nth 7 proplist)% H' ]* l4 o( f. J; Z( _. C! J
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
" R1 u4 a9 E" @& {) u% s - eflag (nth 8 proplist)
1 y) O- @2 r$ g/ ?+ O; w8 { - estyle (nth 9 proplist): J: B% t$ L3 }9 f s5 g; P" f Z
- poly_ss (nth 10 proplist)
t2 E9 Y6 {1 X5 _8 b8 `9 m - txt_ss (nth 11 proplist)5 A( n2 v! K; P+ T9 C
- );setq
- `+ E @& N9 ` - $ A, q( {3 t& Z7 @7 B8 K( P" D$ I
- ;; Find index of linetype, and layer lists6 P, P# N- G+ ?* Z! b# [# X h+ R
- (cond
" Z% V: X, q6 X$ S0 J - ((= eltype "Varies") (setq lt-idx nil)). v' {( }6 e! Z6 y" ]
- ((= eltype "BYLAYER")
, ^' {! s5 i3 F4 J5 d9 ?; s - (setq lt-idx (getindex "BYLAYER" ltnmlst)))# c' R& c. ~; c: `6 ^8 e5 K
- ((= eltype "BYBLOCK")
$ y ^2 T. \# Q9 X* l, a7 J+ Z - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
, n5 d# u5 K" u& {+ V4 ~. M - (T (setq lt-idx (getindex eltype ltnmlst)))
" u# R( D q- _. ~. u I# a$ z - )- b4 c! K& O' _
- (if (= elayer "Varies")& {! ]+ D# C5 r
- (setq lay-idx nil)& G+ V, K5 R2 l- x
- (setq lay-idx (getindex elayer laynmlst))
% r N$ p% \# v ~3 { - );if/ {4 }! ]: ~' [/ k
- (if (= ethickness "")8 W; G0 ?: h- V9 u, p$ A ~
- (setq ethickness nil)
3 j6 N) o3 o! @ - );if
1 K3 p! R0 Q( Z# G% e - (if (= eltscale "")
( S# B" C2 ~0 N3 C5 r - (setq eltscale nil)2 _) y+ U+ M) z" w$ h i: T
- );if7 a; q0 I. Q% w2 N# b `
- , R. p2 E' A/ A8 \8 ^& E' ], N
- );defun ddchprop2_init ; end (ddchprop2_init)* ]; H6 }4 Q9 l- T0 K4 V% o0 k# W+ S
- J% Q1 |1 V( l/ E& l- ;;; (ddchprop2_select)
7 d$ s* u& {' M" D% f- K - ;;;
1 _: p( m( _/ T - ;;; Aquires selection set for DDCHPROP2, in one of three ways:* r- g/ g- f. E: H4 v9 ]! [
- ;;;* E) Z% |0 o6 Q+ r- k2 N9 P
- ;;; 1 - Autoselected.
$ \# h5 O7 v) v) S# u6 K7 R - ;;; 2 - Prompted for.# ^7 ~$ C: G5 |$ `" @
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
. `8 C: J$ T: u2 P - ;;;8 l1 z6 h/ j+ L0 k4 d
- ;;; The (ddchprop2_select) function also sets the value of the
: K% u4 `/ V& h0 ]+ W% |; b. U6 @' K - ;;; global symbol AI_SELTYPE to one of the above three values to3 e1 ^( t) c8 m) A
- ;;; indicate the method thru which the entity was aquired.1 Y2 @% ~' b* Q8 f* y4 v( g3 |
7 Y! \( w6 }; f! z; ^$ K) f3 x/ X7 k- 2 x- N) R! Y' E$ j! t
- (defun ddchprop2_select ( / )
8 r$ @3 z: Q3 v* m! Y - - @5 y$ t7 i7 i4 ?
-
% i& T! M _' o, W! U S" X - ;returns only entities in ss that are in the current space. " Z# |9 G1 f' i
- (defun ss_in_current_space ( ss / a cur_space ss2)
, O' ?$ }6 |1 v- z
6 @/ I" E7 R$ y S- (if ss
8 g3 f, x. Y7 ~$ _" @ - (progn# O6 F2 v9 g* H" d' m5 T0 y
- (if (and (equal (getvar "tilemode") 0)
& I& r8 K& K& [( q9 d/ L+ Z - (equal (getvar "cvport") 1): N N4 w) A" [1 m1 K
- );and 6 ]4 v8 o( _% I
- (setq cur_space 1);then paper space is where we are.
( ~9 |* Z! R& y! d- j - (setq cur_space 0);else model space.
2 ^3 |" ]) C4 I( m: Y5 R - );if
" _$ @6 c% _$ d - (command "_.select" ss "")" A4 t' h6 l0 l
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
# |' `6 r2 a2 O* F - (cond ;;;;;tell the user what's going on.
1 M, @3 `$ ~3 F2 y7 R$ Q/ G% O - ((not ss2) (princ "\nNo objects found in current space."))
, j* L5 u. t F6 D$ i* E - ((not (equal (sslength ss) (sslength ss2)))9 E3 f/ k" ~; [1 q
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))$ B* |4 l' b) h
- " object(s) were not in current space.", D+ n) T+ C- s8 b! k4 W v
- )7 _# n; |9 j$ G0 Y$ R3 N
- )
! ]$ ^9 F7 D! Q - ) 9 o9 w& x. E" W, ]* c
- );cond 7 d" a, q1 U9 n- X" |' q$ A; O
- );progn then; v' r0 K) T6 x
- );if
+ K! F% E" j4 g1 Z) ]! k) Y# a/ a; o - ss2% G7 f/ P* ?! N* W7 C/ k2 c
- );defun ss_in_current_space
. S( c! O+ P0 M7 h1 u
3 o+ q! Z9 h2 t, \. E- & F3 N# G& `% E. O3 o# C
- ;;;begin the work of ddchprop2_select% Z) m7 }7 X7 g! y$ e- P- a0 p
- & |" m) z9 {- @
- ;; temporarily restore original highlight setting.
: l6 A( C1 O: z0 I6 C8 ^2 k, l/ p9 I7 ? - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))1 f7 b" }7 z. j) J: i6 M
- (cond2 L: i. ]; D( J; {
- ((and ss
0 W% W, O1 b {8 G; w - (eq (type ss) 'pickset)0 q3 t) z ?. |+ }
- ) ; selection set passed to" \0 t. k+ g! G& S0 X. X, d
- (cond ; (ddchprop2) as argument4 i9 A9 n7 p8 }/ `) C. z0 L& l
- ((not (zerop (sslength ss))) ; If not empty, then
8 W! ]" @7 m# a& a - (setq ai_seltype 3) ; then return pickset.4 i3 e' g3 w8 z* \! s
- (ai_return ss). e R- O+ T w6 L2 j) B: P! V
- ); h( i5 Q* F# \* [% o
- );cond close
$ |( e, {5 [, ^+ ~0 r - );cond #1
! h$ X4 I! R1 \7 p7 J1 F, x: V" |& F - ((setq ss (ai_aselect))) ; Use current selection/ b+ ~4 P) x* m% A8 W- o* A" `! Q
- ; set or prompt for objects
4 C+ j; U6 B5 E, u+ u {9 X2 t - (T (princ "\nNothing selected.")
, c6 | X V; R3 r; K& T/ K/ k - (ai_return nil)$ p) s2 a, }5 z9 U
- )
* f W8 }9 z2 q - );cond close4 L/ ~& Y6 S _' M" q4 Y H
- (b_restore_sysvars)
. I \! a( b5 i2 q- h( b - 2 m3 B2 @- b2 x) k6 |
- ;(if ss
3 t9 b0 o& l p3 `4 N - ; (setq ss (ss_remove_locked ss))
0 N+ L' @' L5 a4 Q( `7 O! C& x - ;);if
+ V9 D4 E( Q5 r% B1 O6 z" Z$ Z; \- E - (if ss
+ C& G9 r) k. i. t; k S8 m) Z - (setq ss (ss_in_current_space ss))
3 ~- J* p: o' k$ n! O& z - );if
( V+ W6 O, \. t# ~$ R+ H, b6 _
. Y# j0 m. z/ C6 r- ss
4 o c! o& Y$ e3 Y) H9 h- R( b - );defun ddchprop2_select
( N+ z* u N" M
" P# H# Z/ V3 z; A, E- ( m! i3 ]8 q5 p7 v
- ;;; Define command function.$ } t7 C, [1 f
- (defun C:CCH ()
x8 t6 J" ^* [ - (ddchprop2 nil)1 V& |4 Q4 R: E' }
- (princ)
1 W+ I1 F& i* C& S& ^# c - );defun1 ?9 p. ^. Z6 @8 N% L% m! b/ {$ S" s
- # x* f, x, ]# D u
- 0 E* l c5 U J/ r
- ;;; Main program function - callable as a subroutine.) o1 i* W& J: K
- ;;;
: P% F1 U: K# e. d. H G - ;;; (ddchprop2 <pickset> ); @) m1 E# d/ Y
- ;;;6 L6 w$ W' N B+ }. V; W
- ;;; <pickset> is the selection set of objects to be changed.
1 A! x3 Z% A. V* j* S* H5 d3 L - ;;;3 g1 b4 x, Q4 T; v1 _) ^
- ;;; If <pickset> is nil, then the current selection set is0 l7 |. s9 \9 T m5 h' `( [. ?
- ;;; aquired, if one exists. Otherwise, the user is prompted5 D2 Z9 ] v; U2 h
- ;;; to select the objects to be changed.
# w" f9 r6 f8 b8 ^8 D; h: H - ;;;
4 R& e! S. |- z' _: s - ;;; Before (ddchprop2) can be called as a subroutine, it must
5 Z+ f3 k T: z( a - ;;; be loaded first. It is up to the calling application to
8 q( J; I* r7 _# M4 ~0 R - ;;; first determine this, and load it if necessary.
9 } w! T* q7 y( P
, Y& y9 R" h0 Q+ v' O0 K0 R; j- (defun ddchprop2 (ss /( [0 ]( }1 b% n
, Q' r5 a' ]. ]1 }: r' ~- a$ N. Q" r5 I+ Q% A. I* |( e( |
- add-mdash
! _$ B( |0 ?' I q- J! w8 e- E - assoclist" n Z) L- M/ t: G
- bit-70
. K+ L- k: i# M/ r - boxlength
$ g6 K7 j8 M! m t9 ^ - bylayer-lt6 N/ x1 s5 G, N
- bylayer_col
Y4 G% k, k* R5 a3 U1 w, M0 z - bylayer_lt
' h. i& F( Y( P8 V4 P' ?1 F; O' } - call_chp2
( k2 z2 D" x& a" }/ O9 o+ _8 I - chk-col
$ x i1 q% O" r$ f) u - ;chk-etype ;var removed by rk
4 A4 w' x2 ~% O1 H6 u# T - chk-lay
8 n$ o! m) [) g: C# D - chk-lt
) B8 s! b( s& A( ^8 Z - chk-lts ;var added by rk
" g9 }5 o1 S4 X. d% A5 ]' v/ _ - chk-th
) R( T2 O r+ [( v - cmd- t- N5 x! Q. {' \& f3 B+ q
- cmdecho
8 {2 _ E3 t, l6 z8 R8 j w - cn
6 M4 F6 k$ o% ~4 k/ e- k1 ^ - cnum: Z; I, }" O1 D- S5 D
- col-idx0 `0 [1 T( C$ k7 f8 H- S' M
- col_def# j0 t. z! G s; h% |4 A
- col_tile
0 y1 ^1 q; |, I) O# x - colname
; U( ]7 y7 f) f0 b/ f8 B - colnum
; A* J! f3 x5 s% Y( } - color
& I6 v% f. N( U. {7 E - colorname3 u# g8 V! V I) H. F- V
- cvpname
2 Y( V5 |4 ?8 L! c- r - dash
$ u( s* _ d% [4 V& f3 J - dashdata4 r0 x+ l6 A S+ r) }! m2 c5 D
- dashlist, V& {: [9 x$ Q' f- l
- dashsize
5 B. D5 C2 x( P. G% Y- q, O7 D - dcl_id
# N: c) K- [! L" k! [0 \( ?' N - ddchprop-err) U. V, S" D: |! ^( Q* k
- drawpattern# u) R- {# I- O( A' L
- ecolor. {0 t" U) ~8 z2 g. B$ [+ v
- eelevation
. z* s2 S2 K$ J - eflag) \# N8 \& K4 D# B
- eheight
% V% a% y, Q# x - elayer6 p6 b1 Z4 N( l2 _
- elevation
; x' }' p- Z1 K1 X6 \$ a - elist
% L' ^, I( [% H2 P - eltscale6 `) a+ C( N& O' \; K, O
- eltype
, q9 P1 ~' A/ s- R9 W - en$ r! Y4 O) a: i7 q, S, W
- ename
: ?# F. b8 {1 E+ _5 T$ W6 Y% b - ESTYLE ;var added by rk
" B8 v- _1 Z3 j/ l( E- U# R) \& ~& j! ? - ethickness2 g- e1 p- f$ K G& y
- ;etype ;var removed by rk
* s+ d' O" O6 o& Z - ewidth% ]! d) s' G+ l9 ?
- fchk
# M- l# A3 z, |2 U7 v - frozth
& X8 p! x# K$ n7 r- }5 V - fx
; Y$ {8 t% W- x/ N d8 @- ^ - getcolor5 `: l: L( v5 L8 t' g
- GETELEVATION ;function added by rk
& r: l% K/ |+ z* ^ m3 [5 q - GETHEIGHT ;function added by rk
! R/ Y8 U; U; L - getindex: Z0 t: o0 \! S$ F
- getlayer
5 V+ q% K$ z+ R _& W - ;get_locked_layers ;function added and then removed by rk
8 j3 I7 |3 x; s( q; i r& _ - getltype; w, j! R# g; ^0 t# h5 Q2 s
- getprops/ e; s+ T7 o9 w, a2 W$ h. K; R
- getscale ;function added by rk( ]! `+ m6 G& ?# H- T. }2 c0 }3 z3 y
- GETSTYLE ;function added by rk( Z& t7 n' f W% Q. Q* B
- getthickness" j9 @5 S- x1 p. s: G. D8 e
- GETWIDTH ;function added by rk$ Q3 z5 V5 G: ~0 E+ G) A
- globals. \0 A' t$ |3 e8 e
- HAIR_STYLE_LIST ;var added by rk* T+ f$ a9 [0 ? A1 A
- height
' a0 x8 \. ^- R5 Y" u8 y - index( e) j, b( k X, y+ v, t0 N
- item# F3 b E4 K- ^
- item1: g6 X- u0 ?0 a& `/ D" w
- item2
' {6 ?# X9 A. S N) I - itemlist, K( Y+ U. j4 S4 F. C: ^" j. J7 p8 E
- lay-idx2 {4 D3 M4 q6 m* X" w- e: [* a% g
- layedit_act9 U3 N1 b) x e. r/ v
- layer
9 F1 D9 _ ^8 K. W r - layinfo3 y8 i+ h I1 u1 x: b( n
- laylist
' j3 |+ A* n# j0 } - laylist_act) Q2 u. X3 P1 @$ Y
- layname
! t1 d1 r7 F! \1 O7 U - laynmlst
2 k+ [+ w9 R8 L% D3 [ - layvalue
1 A) J6 o3 _: {, Q+ X9 Q- ? - linetype
* Y$ J7 [4 K7 K* }8 l! q, l% b - list1. _; M: O- V4 ^4 r1 w
- longlist7 }! ]& m" a" b8 `. l
- lt-idx& z3 p; L3 g6 v
- ltabstr- _+ H% o2 {$ |' @
- ltedit_act
1 K' S& C- B- m! s - ltidx
) `$ q7 u0 _: o; F- D5 h. y- n - ltlist
* F9 r& p" V, F - ltlist1& }' {# g. g1 x
- ltlist_act
! r* ?+ U6 a( ^6 j7 G - ltname5 v0 c3 l2 o+ e) \9 ?. t/ y* y N
- ltnmlst: M; _1 n0 I/ V( T1 Q" `. o
- ltvalue$ |8 n+ k, W" p: B) t! a+ k
- ltype
' V+ v5 [1 J' W7 Y - m7 ^* n4 X$ L' g
- makelaylists
8 {2 c, O* V, l" C# p6 X! R4 r: F - makeltlists; @3 }7 \) v0 h1 T+ U
- match-col* \5 ^4 N0 u( o; \
- ;match-etype ;function removed by rk E9 ?3 h% E) {
- match-in- P- w$ t% Z* n
- match-lay4 [' G0 S) m3 [- O6 u! S
- match-lt
$ v2 w; w0 I5 \9 J - match-lts8 U9 g Y8 }$ m; w
- match-th
" ]9 s' {! B( B4 K7 c - match_col4 c- D( R( \2 {% @
- mdashlist6 F X0 @# a* X7 C# J8 o
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
9 w5 _ y. V9 N' I4 d - n2 z+ i; Q$ }! j! w6 q4 q' g& r
- name
4 I0 [1 G8 S) A5 n - ncolor
. h* N Y8 R: v& _ - nlayer6 c x, Y6 E7 A
- nltype$ r2 ]+ t b* D! x, {1 N2 R
- nthickness2 e" L, I8 }. {% ~" _ U; m
- off
5 f$ E( ^ C) i' \5 Z - old-idx7 G, L7 C: G( H1 }' {
- olderr4 N2 C; {; e ^* _
- on
+ d6 L! R2 {$ _3 U5 F - onoff
4 o( m8 R& ^ S: m. p - patlist+ o! K8 _5 k; `3 O& d( K
- pattern( a" R, v: n7 y8 _3 l0 a6 K/ v
- PL_WIDTH_GETTER ;function added by rk
* ~7 J8 Y) c4 M; j7 I - POLY_SS ;var added by rk# C7 R& N2 z. R- Z V
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp
/ `, |; R/ X9 }# h' h% S- z - proplist7 H2 E* F! K4 _3 n- e
- reset-lay A8 B2 S# Z7 K: I% m3 s1 R, L
- reset-lt
% {$ a& `! Y5 a: M2 Y' l: g- H - s* v+ ^- Z; s3 c5 k5 m8 z
- selset
6 R$ d! Y ~4 I3 {1 k - set_col_tile
+ C2 b5 M0 {8 _$ c2 F, k/ Y - sortlist
( Y: f4 ?0 j; b' a) H# x - ss
. w2 `& L$ S% }% f1 K - ss_in_current_space ;function add by rk." M: {' d, C. ^ O! L& R
- ss-index
7 n- H' k2 L4 o/ z2 W - ss-length% w6 K/ B) Z q4 y* p' F9 p. L
- ;ss_remove_locked ;function added and then removed by rk.$ u2 y7 S+ |% E. U1 X* e; q- A
- sslen
% v6 R8 {2 r5 e* j - temp_color, A; z3 A9 ~: N) ?$ \8 y# L
- templist' G m) {' o, u- U
- test-main-ok
* h2 o& d: {! T9 N) s - test-ok
$ ?/ U# Q! u e! Z4 e# ~ - testidx
5 J& K: I. }6 M3 y - testlay* H1 o# f- k' P
- th-value8 g q2 g! K p; \ {
- thickness) {2 N9 i9 a: b4 M% v
- tile
6 M. R& z: h2 G$ S* h2 e - tile_rect
9 c# ~2 W& M. m: ^2 X( c! i - tilemode
3 y# U) {, P9 l7 w0 k, t) o* t - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
3 d' k3 F+ I n R- N/ ^+ N - TXT_SS ;var added by rk
. Z9 f% N2 p8 X7 D - ;undo_init ;removed by rk.
6 G6 u4 M0 w0 \4 S; m - vi
) K- k" h ?6 Y7 x: A8 g - vpf7 S4 L2 G# h! O( k: E
- vpldata
# r2 Y5 B7 c1 E6 F* \ - vpn
! @- l* Q/ ]/ l' k) y/ { - which_tiles0 b0 e7 f- Z o# e* F! f
- width
0 K& _! }0 h* S5 ]3 s3 x; i q( Y - x
( q4 v. G' p% D& [0 N% Q - x1
: Q% C& X" p! l: i- K - x21 O; Q( _3 e& q0 x* J- q2 t
- xdlist
5 u+ H! Q) v4 [( k/ I% a, f; g5 ~ - y
3 I4 g3 J9 `* d8 ~- L, X0 l: ? - y15 o1 [/ A1 C9 }6 q: ~! i- A9 a4 @! e
- y2
2 F9 X! f( l3 X' U! C1 ]. M - )- P: }9 ]6 K! i& I* d
- / V1 \, r) y5 E" q
- (if (and (not init_bonus_error)
. f. Y g: k, c W ? - (equal -1 (load "ac_bonus.lsp" -1))
% u, R; C% b* [. K6 W9 ` - );and
, U) \# M1 E% t% D7 n - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
# ^( L- _9 Q3 t, ]3 e/ | - );if
; Q) X4 ^9 _- G3 O4 W/ k/ M# L% ~ - (init_bonus_error (list
: T9 y, J: |2 c3 g( L1 D M - (list "cmdecho" 0 $ L! B# f1 D# y* L; {0 A
- "highlight" 0
; R) S- \+ @& w3 ]9 s - "regenmode" 1; _ R6 B% m' y/ O( d
- "ucsicon" 0+ H% Q5 D& F+ r/ I8 G, z
- )
9 W( [: W2 q4 {3 T - T ;flag. True means use undo for error clean up.
" m5 N5 h/ V$ n d% z) l - );list 7 N* D7 ?' l( o; \7 `
- );init_bonus_error
% H+ `3 O0 w" N# H* [2 A! a - % h0 K3 Y5 J/ ^- E4 e
- (cond
# ?/ e4 \2 ]* V4 R1 ^1 h - ( (not (ai_notrans))) ; Not transparent?
. V% z" a0 i4 h! F - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?, k5 y- C& F( j( i, Z1 c
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?4 I3 `& m4 C6 n1 w2 h
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
. I( E1 N! L1 L) K - (t 7 U% t: j R- L
- ;(ai_undo_push)9 F2 s3 J8 X3 F# P
- (ddchprop2_init) ; Everything's cool,% v- l7 Y! ]; j. r
- (call_chp2) ; so proceed!
7 ~8 Y ^1 K( `: t1 Q - ;(ai_undo_pop)
# w3 e" H- \" Q6 i: F( E - )
/ K6 P0 q/ T1 M" F - );cond close
* P! T' _9 b7 A7 d
2 D1 q4 y- a# D+ v/ a- (restore_old_error)
2 j8 A4 d+ P( e( u2 M0 a& v8 U - 6 d7 s+ ~5 G5 ~" q p1 N2 Q
- (princ)
6 |" ]3 s% `/ O! m# E/ e - );defun ddchprop2
# d( R0 }0 _7 ^# i
/ f* W5 F/ y2 j8 W0 ]- ;;;----------------------------------------------------------------------------
# i, b2 J4 j5 U; t& }. T
5 x& H" w- A$ ]# m2 G g; V3 ? ?- (princ " EXCHPROP loaded.")4 f( E O# H& ?' x
- (princ)' ?* H l5 v7 k/ }/ ^2 d7 ^' g1 ^
- ) h% a7 j6 L w1 W4 _9 ^5 K6 s
- ;;;----------------------------------------------------------------------------
7 {0 ?" J+ c+ G! q - ;;;---------------------------------DDCOLOR_LSP--------------------------------; F7 @) {; w: p" Q0 C0 f
- ;;;----------------------------------------------------------------------------
& z+ l0 F, s1 J( G9 D - " P. a' U9 Z I
- ; Next available MSG number is 24 : y0 B" f f8 S, E; P9 X- b6 E
- ; MODULE_ID DDCOLOR_LSP_
4 I8 R( h2 g. K - ;;;
# e2 D0 l- O* X - ;;; ddcolor.lsp8 l) f( n3 z) Z6 O; M
- ;;; 5 {7 A' z$ I) K8 V. g6 \8 H
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.# S- H% C2 c. U6 L
- ;;;
* [. D5 C# j9 g2 f* R* s - ;;; Permission to use, copy, modify, and distribute this software
}- ^2 T! ?' H ] - ;;; for any purpose and without fee is hereby granted, provided/ m8 C; d( ?# l+ `; m) X- d: P% @
- ;;; that the above copyright notice appears in all copies and
( v0 ?/ h. {9 e3 d& | - ;;; that both that copyright notice and the limited warranty and0 A8 O+ `# v. y& j( q( }$ s
- ;;; restricted rights notice below appear in all supporting
% J6 ^9 q' n, e7 j. B) Z+ n - ;;; documentation.
0 s; H- N" L* }5 d1 h - ;;;
: ^$ V6 F5 j+ k" g3 h7 x G' c - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
, O$ c& V2 X8 ?1 {2 o; F - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
- E9 k9 x8 Q+ X8 X, ? - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
# S# [' L* Y5 i0 u4 t& l z - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE) E. |' _& w" o) E7 I
- ;;; UNINTERRUPTED OR ERROR FREE.
1 m; [3 j& B+ \: H; p6 X7 p - ;;;2 A" v' d. ~; m/ C8 V2 J+ }8 M! F
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
% Y/ S+ s7 v3 W- J6 p- p- T& I - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer3 s$ V# I( v3 N# W+ i
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) " K& x; M5 b( ~
- ;;; (Rights in Technical Data and Computer Software), as applicable.
+ X- P- k) f5 t6 U - ;;;; m3 Q$ ]5 e! y9 T' b& y
- ;;;.+ q8 C |8 ], ?' B8 ~$ P- v
- ;;;+ Y5 ^% Y0 Z" z
- ;;;----------------------------------------------------------------------------
3 `' ]$ D* h0 Y* T1 S3 x0 O - ;;; DESCRIPTION
( Q: v7 P: f! O1 Z! k- { - ;;;
3 e6 p( d; \ G2 R - ;;; Chromatic Pallete style color selection dialog.
& _7 N2 w+ `- A- s7 c9 ?* n+ }! @ - ;;;
. [/ W% n7 D6 W) I. S9 J8 ? - ;;; Globals:
( {4 U; w* P& w2 P1 W - ;;; ( B7 _8 S9 _; ~9 q: m/ [# ?" A; L
- ;;; chroma_color - Integer color index. The last value selected
5 n% h( y0 P$ h$ J' J1 u1 Q - ;;; by the user in chroma dialog. It is not cleared or reset, K# f; ?& Z/ T
- ;;; by a cancel. Only used for communication between callback
8 y5 {7 k( I; W9 e( f - ;;; functions and the (chroma) funciton.
( d6 l8 ?4 {6 i* q Z% S. | - ;;; + ]1 e9 {, S0 [1 c( i4 S9 c. P( R* ^
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.
2 z4 A( M1 f" t - ;;; ! f4 q. i/ \, a) _ y) Y+ e G
- ;;;( d/ J/ b+ H J; Q, d4 e
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
/ y0 R; B: e- ]! _4 Z3 W - ;;; pallete style color selector.
6 g* `. y/ l* U - ;;;6 e' l/ }7 \8 g8 M, x) e
- ;;; ===========================================================================
& h* |4 k# v+ O4 \! X2 W2 i - ;;; ===================== load-time error checking ============================6 |. @5 W0 s/ e$ N1 {$ t. {) d+ E
- ;;;
% T/ M. P, Q& N% ~5 |$ B V
: A' t7 ?8 \: Y+ ^1 R6 L; B- (defun ai_abort (app msg)/ Y% s# P' j( p' c! N) e
- (defun *error* (s)
# A c: L* O" G2 R1 \ - (if old_error (setq *error* old_error))
, p8 p) e8 F( X+ k2 V2 V3 A3 u - (princ)
5 n8 T3 h6 w5 Q( p - )
' i* [" w, T7 d. _, J; l. [3 \ - (if msg9 h) d4 ]# h' C V6 X; A+ c0 f
- (alert (strcat " Application error: "9 b+ q. c" X1 _7 O* ^- M
- app
! b) _* x7 |3 d* [ - " \n\n "
/ D3 l7 i0 F) [9 S; O/ [ - msg8 u* O& K( k1 l. x( b
- " \n"7 g4 p2 I& G( D% o8 I; B" ?! a& N
- )
; N( u) f" `" ^4 j! }- s" g+ \ - ) E5 L2 q- E8 U- D! Q A4 j4 z
- )
+ [. P, g; b- N- D! E3 @ - (exit)
; C. C- k! f7 y6 `8 |% F - )
0 X+ P2 b% W9 [) C# [ - 2 |" i/ p0 o2 e F m7 N
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
$ d W$ V& J7 j, W+ J - ;;; and then try to load it.
$ s( q7 f& J! n - ;;;
5 m" p( E( e. h/ {3 q - ;;; If it can't be found or it can't be loaded, then abort the H; B: I1 L) s! j
- ;;; loading of this file immediately, preserving the (autoload)
, L+ o) O4 w L6 A1 Q8 c& v - ;;; stub function.
# |$ \. y5 V/ U
, y- D5 W; ]* w7 Q$ y7 p6 ~' c3 K. J& q- (cond
* a+ D3 y1 |3 h; ?8 C - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
; X2 l6 |; {- A1 p
3 i" d5 ^ h) H% ^$ d4 L- ( (not (findfile "ai_utils.lsp")) ; find it4 w; G' M g, O
- (ai_abort "DDCOLOR"
# h6 ^& e Y) S: Q3 g& q/ T - (strcat "Can't locate file AI_UTILS.LSP."1 D! p' v0 u+ L( Z9 C& @* L
- "\n Check support directory.")))
9 L: M# j8 u+ v
9 |8 u. ]$ J2 J' E- ( (eq "failed" (load "ai_utils" "failed")) ; load it
* j, R3 e; e- o# Q& z5 P4 d) g - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
/ ^( F6 e+ o* y, i6 m - ). W! [* R: d* i) a; n
- 4 w( r" H; r9 n' U/ M2 I' d
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
: ]0 [/ m4 a7 @. m9 K+ B8 { - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
" [1 y7 Y; |) x; N2 K. }" Q, t - ) ; ai_abort's alert box dialog./ A A8 s4 A3 X- Q" d
2 q0 p5 F$ f# T$ H3 T5 o- ;;; ==================== end load-time operations ===========================
, K, D7 L" W8 e2 L& v% T0 W \: r
: V! \) P7 n! |2 O+ |- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
/ E9 ~& g, I8 @ - 2 {8 n3 d6 ^- Q/ N$ Z/ l- w! J
- ;; Main Color function, called by setup code.3 j1 l0 |" M% u" ]2 r, j$ w G
- (defun ddcolor_main(); l2 O( T. s9 J$ {* g
- 1 B! X2 a% [% `1 f" l5 `8 x6 ^; C
- (graphscr)
7 {; s+ c% {; }1 }/ x7 L! d* z - 3 Y! t l) Y0 e8 G
- ;; Get the color of the current layer, for possible BYLAYER color swatch.' N1 i- ]' A2 ]8 q* E# f% o
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))" U4 K# L; K+ O. J% B
. q: I5 O- k: C# p- ;; Call the dialog here...
2 p z3 j- [' S6 W. h6 Z* N$ U: M - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))1 F. C7 K6 R* e
$ ~$ D; M9 Z9 I- (if clr" n# K0 d$ |! i( A) ^& M
- (setvar "CECOLOR" (citocs clr)))
; t; O R' g9 X/ Q m5 h - )
9 j, Z7 f/ u$ x2 H4 m, y+ B - # N( D) `5 C0 W$ R7 B
- ;;;
7 q l D6 i$ C9 R& V - ;;; CSTOCI -- Color string to color index" j: b5 x/ d0 q) _: f
- ;;; Convert an arbitrary case string into a color index.2 s' t, L, D2 G
- ;;; Returns nil if string is not a valid color.8 {! [6 M0 [9 M3 Q) B+ H
- ;;;3 o; G6 p* v1 ` f G5 w) ~7 T
- (defun cstoci (str)1 M! `; W0 U+ s5 d0 Y
- (setq str (strcase str))
. ]! j0 ]& Y% {2 ]; F. C$ x. E - (cond; e0 b5 f$ G# k' i$ Z) w
- ((= str "RED") 1)
- e7 [: @2 I$ }/ k - ((= str "YELLOW") 2)
3 d6 n; r9 \% m* v5 o9 ~ f. D$ Y, L - ((= str "GREEN") 3)+ V5 R0 o( h8 f, E9 K% d. D
- ((= str "CYAN") 4)
& \3 J! R' x6 H/ z X! V - ((= str "BLUE") 5)
3 b; P$ o6 \% r3 q - ((= str "MAGENTA") 6)
! I; N" D( ]) R: m- f - ((= str "WHITE") 7)
. e+ c6 q' ]/ Z, v1 b - ((= str "BYLAYER") 256)
; g5 U3 T8 g$ [0 s - ((= str "BYBLOCK") 0)
: v5 B$ x3 i0 U1 x/ P - ((= str "BY LAYER") 256)2 i- U% _' j U& |7 x0 t; c
- ((= str "BY BLOCK") 0)
9 H* z7 F0 y% f - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
1 ~9 \. P8 ~/ b4 m v' d. S - (nil))
2 m: N! {+ w) D/ V: K" Q/ C - )
7 `# e2 {4 w( B$ x& X9 u - * y" z9 e' c4 y9 B$ [, L, @
- 0 v# g: P4 m# @8 `
- ;;;
; V. {# [) ]# B+ W( i s - ;;; CITOCS -- Convert color index into standard color name.- g1 {0 K' P" A9 @
- ;;; Will return the standard and logical color names as text
; y, u E0 P/ f2 W% Q: N - ;;; strings. Returns nil for out-of-range color indicies.
6 ~# O7 d( _* ^2 \$ @ S* o - ;;;' {# D, i! D) o8 d* J* k4 U$ T
- (defun citocs(i)
" e H( R+ q7 o3 H - (cond
3 V9 i+ u0 l x( j3 B) s - ((= i 0) "BYBLOCK")% k$ T0 N/ n) b* s: a P+ @; |
- ((= i 1) "red")
( {6 o8 n, _: E - ((= i 2) "yellow")
4 I5 q2 `7 C3 I - ((= i 3) "green")
; Z" G+ o3 e |; ]- b1 A/ r/ _9 [! w - ((= i 4) "cyan")5 |8 b1 }3 K* v
- ((= i 5) "blue")
; C/ J2 A; l( l* l; q( Y N+ W( v - ((= i 6) "magenta"). k( ^9 M/ f8 X4 Q& @! l
- ((= i 7) "white")
6 g8 D9 A4 n0 I3 l) Q) L" [" G - ((= i 256) "BYLAYER")
T s6 v# @# r) x7 r - ((and (< 0 i) (> 256 i)) (itoa i)): O* p7 x5 f9 G: C/ P) @ O
- (nil))- V; K1 W9 g/ Z/ K4 ~ P
- ); R% x3 e( F; B' J( K
" A2 _( m# o/ i, I6 m5 o2 D- ;; Start of ddcolor
( u7 q4 f2 E# j. M z' K - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho& R I7 }) s! \5 a: h) u
- old_error *error* ; save current error function
, X) G4 n: N! M9 J - *error* ai_error ; new error function
g( T l! T b# C2 p) a - )5 W, ?3 z8 Y+ K1 K+ T
- ( ~0 m4 p: F, {7 i) `
- (setvar "cmdecho" 0)3 X3 y5 v6 M$ s" V0 L
- 7 ]9 S5 X% Y7 J+ U4 @6 @/ S% x5 _) _, `
- (cond
* b! V3 f" d, ~ - ( (not (ai_trans))) ; transparent OK
0 q7 D3 e2 e! E" J" K U! S: M - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?; l& |6 O% {4 B' M
) g3 ?; i- \" r- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
; _' H, R- d; q - (/= 8 (logand 8 (getvar "cmdactive")))
4 g* Y$ q7 {- B; e/ K( e - )& n w$ ]: {$ X2 c3 e
- (ai_undo_push)
( d. y9 Y1 T. A' U7 M' | - ): q) O' x& \# l/ D# @
7 }& s0 l/ n- H% \% s- (ddcolor_main) ; proceed!0 |* m* ` r1 u% ~ p+ u
- 1 O3 s4 {- \1 g' S
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
6 v! h# Z" Y+ f& H$ x2 T( d. _! a - (/= 8 (logand 8 (getvar "cmdactive")))
3 k+ C" P; b. I) a1 c3 z - )
+ z7 m4 X& z0 g t' g2 {' X: j( t - (ai_undo_pop)2 @; j$ Q3 U# F% u
- )
' Z/ O0 B$ S7 o% J3 T1 |8 ^$ u" M - )5 p3 c U/ Q* R
- ), P( U, P2 S& C+ r
+ ]/ z! L5 q0 q0 ^9 P' \- (setq *error* old_error)
" N- s. K2 Q2 ]) K7 [. G' G4 i% l( @ - (setvar "cmdecho" old_cmd)3 J& w1 n) I* d5 L7 E1 D! R4 B9 s1 u
- (princ)( i- Q) S4 _$ ^2 T. w$ T
5 F+ o8 F, G+ c$ F* z( s- \- )
6 a2 }/ t6 n1 D8 V, b1 ?% b. k
: F0 A" e8 H" l' s; h% A5 X- k- ;;;----------------------------------------------------------------------------1 e) }: c' J* H2 p# y& ]/ P
" _$ S2 _% i9 p& N/ R1 a: S- Q' d- (princ " DDCOLOR loaded. ")
( G" Z/ f* f% D8 i1 r& J1 _ - (princ)' f, J: v2 {) W# Y; x0 y( r2 g
- 0 o% Y7 g) Q! G4 D# h
- ;;;--------------------------------------------------------------------------;: K3 o6 f& ?. c3 @
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
0 p/ j* l) ^' ~) l7 t2 m& O$ X - ;;;--------------------------------------------------------------------------;
* g; p! a+ Y* O. t - ;;; ssx.lsp
8 l9 q7 S; q. h9 k! ^ - ;;; Copyright (C) 1990 by Autodesk, Inc.
4 E. M7 n) S/ d; U: \# q, c: A - ;;; Copyright (C) 1991 by Control Systems, Inc.
" z1 N1 c7 C+ A6 ]1 `; P* u6 @ - ;;;, B# c5 L9 I0 C3 Z; f! C0 p
- ;;; Permission to use, copy, modify, and distribute this software and its; o. h- y% F2 R$ l
- ;;; documentation for any purpose and without fee is hereby granted.; J( O4 x$ h, _* k
- ;;;8 Y# u$ S* n6 A
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY./ O6 u4 A( v2 C: O' c# k0 E( p* r
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF7 [2 d: A8 c5 @1 e8 A
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
" V; q1 L5 [8 @ - ;;;
0 Q; @4 Z& A+ g3 P. e - ;;; Larry Knott Version 2.0 7/18/88
$ u& u: ~2 m6 Q" a7 U) y# o" c - ;;; Carl Bethea & Jan S. Yoder Version 3.0- Q* X8 g2 l$ r) I4 H0 H
- ;;; Enhancements to (ssx).0 |1 Q: S3 \) b# y$ }1 S6 x* l! r
- ;;; 15 March 1990 5 w- ~9 n0 y1 g& {
- ;;;
6 X, C, A) u: [" T3 H/ { - ;;; ARTIST Software, Inc Version 4.0 December 1991
8 `+ }4 Q% G5 c/ q- n - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,9 V' p$ u; T& B# u5 X+ k) }7 q
- ;;; use Flexicon menus
; V, {+ J& }1 l- F9 [* G - ;;;" L4 T1 [( h. ?$ I/ |. _0 n
- ;;;--------------------------------------------------------------------------;
9 R% D! g: d& M - ;;; DESCRIPTION
# A% z# N/ _, C/ { - ;;; SSX.LSP
& f6 I9 n/ c. Q - ;;;
9 f! Y; {5 I( R$ `+ d - ;;; "(SSX)" - Easy SSGET filter routine. 8 P3 d) o9 W: e% o) J
- ;;; % L: v8 s" e+ B. O# L5 n; n( b
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
; C' m# v7 q' Q* i3 P - ;;; to create a "previous" selection set or type "(SSX)" in response to
% ]+ S/ r9 h& r" r5 W( K0 t - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 3 F4 V4 F1 d; F& Y/ j5 F) l5 A
- ;;; entities and "(R)" to remove entities from a selection set during - T' ]6 g, P" q! P7 J6 X
- ;;; object selection. More than one filter criteria can be used at a * [- g9 q! V* ]/ x7 X5 h$ [6 E
- ;;; time. - m3 D8 x. ?5 l7 b% O% @4 V3 b
- ;;; + {/ L' W4 p8 e
- ;;; SSX returns a selection set either exactly like a selected
5 |+ \: C- y0 ~' P* i8 E& C - ;;; entity or, by adjusting the filter list, similar to it.
& z" N. ?7 ~% q, s6 }6 H# c - ;;;/ m) y/ G8 `8 {. V2 J$ Y2 @
- ;;; The initial prompt is this:
: h) ?+ R5 [. a - ;;;
# i" Q! T; S2 R' [4 c9 y2 X - ;;; Command: ssx; v2 v; S. V. G- C' ?' T3 r
- ;;; Select object/<None>: (RETURN)
/ F7 o: ^2 _: N - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ( j6 T! T a' [* a3 } e. T' s
- ;;; 8 @% y9 @6 O6 }8 D8 y: i
- ;;; Pressing RETURN at the initial prompt gives you a null selection 7 k% J( P9 c( M% }* F
- ;;; mechanism just as (ssx) did in Release 10, but you may select an
4 ~' m- {" N8 v0 ?/ W - ;;; entity if you desire. If you do so, then the list of valid types * b& z3 d7 o$ F$ W6 k- |$ N- S! Y
- ;;; allowed by (ssget "x") are presented on the command line.
4 T( y( M( |9 R, j" \ - ;;;
" H' `; G _- i4 b. H& Z - ;;; Select object/<None>: (a LINE selected)
- S& p$ }7 E& O9 N6 P$ n - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
5 O u+ l% K, m5 G" v) Q - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
- r) l' w% K# `8 u - ;;;
0 t; {9 T1 W4 Y# ? - ;;; At this point any of these filters may be removed by selecting the
) X& T; m* i2 F2 b/ P2 e5 k - ;;; option keyword, then pressing RETURN.' _" U1 Y% H6 `5 y, Q: D/ [
- ;;; , Y( }# ~# \/ x* J7 H
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
! Q- A: @" C4 W/ V# n - ;;; + U+ R9 U, |0 L) l9 _0 u6 u
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
: D: t/ G2 U1 u9 M- u - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
/ L$ L$ a- |/ @; H - ;;;
# m/ [, S* ]. G - ;;; If an item exists in the filter list and you elect to add a new item,
. P9 j& a" {5 z6 M* v( V - ;;; the old value is overwritten by the new value, as you can have only 9 f6 n3 k3 Q' r4 \( C
- ;;; one of each type in a single (ssget "x") call.
' T+ f! V1 i3 O& B8 n I$ k+ p8 Y - ;;;
0 w) A$ m Q! V8 z& y/ m9 e - ;;;--------------------------------------------------------------------------;3 s- h$ _2 h9 X$ G, ?* w
- ;;;
' J/ j2 @% }% U - ;;; Find the dotted pairs that are valid filters for ssget$ e4 ^) w/ G( L" N7 d
- ;;; in entity named "ent".6 h* N" E: P+ V5 l+ v$ L* f0 a
- ;;;5 f' S* O% y5 Y) {) Y4 s/ A
- ;;; ssx_fe == SSX_Find_Entity! {4 N( k/ p; A& l$ a8 n* g
- ;;;8 G4 f) Y; |; {3 l2 p7 C# j" x
- (defun ssx_fe (/ x data fltr ent)
" Q3 S) A' Z. {; A' P - (if (and (= flexvar 1)(/= t2 "Pick"))
* v2 o4 |% q6 M) ], k - (setq ent nil)
: B0 p5 V( @( e. F. }5 W2 `. `9 y - (setq ent (car (entsel "\nSelect object/<None>: ")))
, F* o, j! N# R H+ v - )
+ } O/ D) C7 L. O1 T! ~5 {9 D - (if ent
6 d9 J4 f+ i* l8 U - (progn
7 g4 U" _4 T* G - (setq data (entget ent)), f8 X0 L+ T; e8 ~
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 389 s u; R9 p- t/ o( M
- (if (assoc x data)& }5 I8 o+ r% _+ R
- (setq fltr 5 d4 y' E3 o: t, R/ C r
- (cons (assoc x data) fltr)
3 V% X- z! E* D2 N - )
% i! m8 w7 e) C! j3 ?3 z - )( ?# r" F }) Q7 x! @
- ) E$ h' [8 i p# w5 J
- (reverse fltr)$ u2 w* ?1 Q+ {* `
- )
0 O* f2 U5 O) e% l/ d6 W' m - ) 6 M4 X* l- B, @) w$ Y. q
- )
@/ j4 Q3 G& K, e [* e - ;;;9 B% V, _2 \/ \+ Z
- ;;; Remove "element" from "alist".
) x* ?* W, b4 O - ;;;
0 ^! j/ C% X& ?; o, p4 N - ;;; ssx_re == SSX_Remove_Element
: O; Z0 R$ G4 [/ q - ;;;* J) b+ x. e, k& C) u. Q' }
- (defun ssx_re (element alist)
+ I. B( O- J/ K - (append
% u2 _) e u! |2 B7 Z- m' k - (reverse (cdr (member element (reverse alist))))3 p5 Q3 s( B6 s
- (cdr (member element alist))
/ o: T/ \- N4 a! g/ P% C9 A - )
T, H0 j% i9 ]& X& Z4 v6 R6 G+ { - )
/ t6 U1 S: {' _: w. | - ;;;. }7 y% n& x3 |* A$ t
- ;;; INTERNAL ERROR HANDLER 1 X& [6 G4 h& A3 A
- ;;;7 r% J$ @0 k) M; [; t( c3 F: }
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
2 f8 c! @% g; u; F! O* L2 K9 ? - ; while this command is active...
/ X3 x+ p( ~* y7 b [ - (if (/= s "Function cancelled")
# W$ k3 g/ g. N& @( U/ ?0 O - (princ (strcat "\nError: " s))
3 o+ A2 U* H: \" q - )2 h, q3 R+ h0 A6 D7 b/ {
- (if olderr (setq *error* olderr)) ; Restore old *error* handler4 p" U/ ^8 i% w
- (setq flexvar 0)$ U7 j: Y& H. o
- (princ)4 k# B2 W; Z9 U3 \, `
- ); Z* W$ j; d* n' U. t
- ;;;
4 F z* _' f3 e8 r - ;;; Flexicon call routine* M1 I1 n$ ]* ^7 ?
- ;;;
( Z6 O# }. g9 D2 |% w - (defun flexmnu (a)5 `& W( e' T, b2 X8 A: f
- (if (= flexvar 1)
; k ]0 N( C9 {7 F. o7 Q; Q) u5 s - (command "FLEXICON" (strcat "FLEX" a))7 t. p9 S0 N( C! z- y
- )
0 Q/ D7 i" N3 |$ C- ?. ]8 ?- r - )8 S2 R$ ^* F3 R$ I9 I9 L$ b
- 4 E+ E) C; f3 Q5 P5 [4 p) @
- ;;; , `: x* r" F! I
- ;;; Get the filtered sel-set.; D9 B' m, U( R7 c( x0 p
- ;;;$ v" r+ X/ D1 u+ ]. s" @ m
- ;;;
" {% k4 y8 z- K' e. w( L8 \ - (defun ssx (/ olderr)
: U$ X1 X/ }" J1 e# a& C8 Z - (gc) ; close any sel-sets 1 H8 F1 F7 Q% i# l
- (setq olderr *error*
c) z5 ]- c4 j/ L% Y - *error* ssx_er
+ n- ^( @9 H+ g- |/ s/ K) D! g$ Z - )& U# b- H6 w; t3 ~8 A
- (setq fltr (ssx_fe))
1 V& i. o4 }0 i+ j" g! J - (ssx_gf fltr) & I4 e2 J& u1 T0 ^2 c; W, p! F/ o( m: U, t
- (if (= flexvar 1)
0 b. H7 S) p) H9 U' C* A& [3 r - (progn
& J/ n `- P3 q' q - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
" J* V g' W# s8 v: o" b - (flexmnu "EDIT")
! ]0 x2 H+ W2 I" _- C& n- _3 m3 F - )) s6 g! z2 q: ]5 G
- (command "p")' D, h, ?3 j0 l9 ]5 t
- )
, v1 H" J+ q$ Z: a8 I2 q4 s' O* } - (princ)# m) N+ D8 Q) y2 y: s4 m3 O
- )
6 T1 m L8 ?* V# q% d" I' A - ;;;0 D7 H6 j- d2 I; U
- ;;; Build the filter list up by picking, selecting an item to add,
8 U3 d" f) x8 q! ] - ;;; or remove an item from the list by selecting it and pressing RETURN.0 A; }! K3 G( p3 r u! Y5 ^
- ;;;
; e# X$ f' w3 C# E - ;;; ssx_gf == SSX_Get_Filters& F( g7 }/ v0 R# [
- ;;;8 t& x! J5 H# {7 h! l; L& m# [
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)4 c& X& c3 a2 `; D; ^( M O2 b
- (while * T- {. j6 X, l; k, P
- (progn
4 s" y4 J; e* s- e' \- \ - (flexmnu "SSX")1 |! t1 t5 _, v) m7 k& m% i& e
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))3 v4 V& T; b8 P* p( V4 |
- (initget
) ?9 e$ Z3 P+ G3 y& s+ m - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")) P9 E+ A, s" t
- (setq t1 (getkword (strcat
. q2 V" V4 w; |' ^# [7 C - "\n>>Block name/Color/Entity/Flag/"
2 R& j! Z7 C* j2 h - "LAyer/LType/Pick/Style/Thickness/Vector: "))) 0 E; C0 _ K2 }9 a9 e! @
- )% i2 o. i+ h( y. Q& [
- (setq t26 H' l: \8 w2 o' d5 u, E
- (cond+ n; z v" N4 g3 D5 w' G
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)
/ z( d5 Z" O0 p' s0 x& V - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
6 d, @' E* R1 _' i3 _$ k - ((eq t1 "LType") 6) ((eq t1 "Style") 7) S3 E3 ]- F$ J' E, p5 G
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
1 k' d7 c2 _1 e0 D# p* g - ((eq t1 "Vector") 210), ~0 ^3 x: b+ G
- (T t1)
' `, U$ x! H }9 I& | - )
# ?& b5 a* u/ g( R+ f* y1 l - )
* A8 v( F% S8 Q3 P - (setq t3
+ f$ w# L) c* x - (cond
- }6 y3 a8 h7 ]* V/ A. H) W2 g2 Y( e - ((= t2 2)$ b6 g$ D& E% L9 k
- (if (= flexvar gtads 1)
! O; S$ |% B' H3 o' v5 F - (progn# @. L4 m7 d* i
- (prompt "\n>>Block name to add/<RETURN to remove>: ")( y& H- a! e$ U3 p' ]& j
- (gttable "BLOCK") z: E J2 W Y# C$ [
- )
8 P0 K# X7 a* | - (getstring "\n>>Block name to add/<RETURN to remove>: ")
7 g& ^/ g0 b5 \/ \, U& O4 e - )
5 l) d+ D5 ?0 v4 E' w5 M, k - ): W$ p* h$ O* e6 c- @
- ((= t2 62) (initget 4 "?")7 o3 H$ C5 C4 M1 V
- (cond
9 i5 Q/ C- n/ S) s# i0 g3 l1 S - ((or (eq (setq t3 (getint
& b* U0 M( q& F! I9 G6 t9 I - "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
5 j y; @$ U# A. d% `' b+ V - (> t3 256))
' ?( z. j7 H/ M+ I# S" x - (ssx_pc) ; Print color values.+ y& b3 v' c" ~1 r, D0 r1 c
- nil
, \* g* x% m, x2 A+ G; b - )( P" j( i( ?, a6 I; }" a! D; f5 }
- (T
1 n v# V! g. j2 _/ E; X - t3 ; Return t3.0 f2 q5 w8 W2 U$ q' J) n+ w2 T
- )0 r) W2 l9 F* ?. Z c+ O0 v1 F
- ): u& O' U6 K: V; p
- )5 r5 F5 V# W$ A3 S
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: ")): @" ~) ]/ a) T$ {$ K
- ((= t2 8)! m. n3 V: T0 z) T* u+ T
- (if (= flexvar gtads 1)7 u: i: _7 o7 W* \: P! c+ \3 @/ c
- (progn5 r$ ~. j3 V! O
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")+ @. D8 l: ]+ p+ j% p( }7 j
- (gttable "LAYER")5 T5 v0 q8 u5 V( n& X
- )* F; b) |; z* w3 ~" t2 n
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")
8 ?4 ?- w1 P0 S2 t6 t1 U - )
, @ Y2 Y \( G; l- m - )3 W3 f( `; S& N% ^* c, b6 k; G
- ((= t2 6) : x) u& N0 d9 w8 e
- (if (= flexvar gtads 1)
/ k9 v: Z, h6 B. M0 N, v9 l - (progn
0 g1 b9 W4 I0 H - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")$ g+ \- F& e: u
- (gttable "LTYPE")" @. D2 g7 q- ]9 Q
- )6 [& k) q4 N# m7 _/ a) L
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")# N5 X% Z3 e7 z3 ]- e0 K
- )2 W* v. `4 j: b: }' H- Y9 @
- )
$ S2 }- Z% j. V+ l, A$ I3 N - ((= t2 7) % p7 j1 P7 H8 D) ?. r% R0 D2 A! t
- (if (= flexvar gtads 1)! g& K g8 @' c( d( r X" y+ X
- (progn
" {% S" s: \! C; o. z - (prompt "\n>>Text style name to add/<RETURN to remove>: "); [/ }+ {$ N k+ @! t
- (gttable "STYLE")) x' d% m, Z1 A% J
- )/ \9 _9 s0 e- p; i
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
# g3 q# g- [5 U2 S - )0 y: p) D6 x/ C# i$ A
- ); \! S7 W5 k* k O5 L! i
- ((= t2 39)
( _0 B: _$ M: ?2 o4 J# o. ?1 Y - (prompt "\n>>Thickness to add/<RETURN to remove>: ")' c" N/ d$ c$ K$ Q I: V
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))) @0 V3 d4 C. E- E! ?
- )
/ s2 d: L; N: s4 L - ((= t2 66) (if (assoc 66 f1) nil 1))
% V3 h! Q) \# D1 I! |$ \0 R' I - ((= t2 210)
+ F( m z, c$ w( r1 w0 d - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")) z# z7 q: ]9 V; j. k
- )
( K7 }: W: b: Q3 E9 }4 J& F; N: u - (T nil)& T) \8 y: R1 V& u- @* t
- )
9 E: y- s3 v" E# H- N/ i - ): _! W& V' c$ I- h
- (cond( |8 P: K1 ?9 Z
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity+ a+ [( J8 F3 g9 l! B" b# |
- ((and f1 (assoc t2 f1)) ; already in the list3 W% V6 u+ Y1 b2 H* e; O
- (if (and t3 (/= t3 ""))
2 @8 S9 B) T* q! @( P" N - ;; Replace with a new value... 5 W% } ?5 q! l* q
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) 2 d8 G" f0 Z3 a$ l/ U2 u' S
- ;; Remove it from filter list...
' E8 H; ^7 Z1 b2 M& h( v# f - (setq f1 (ssx_re (assoc t2 f1) f1))
, `% e; M- L7 I* @ - ) $ ^. G5 w& x }" K
- )8 d% c( w2 L( i
- ((and t3 (/= t3 ""))8 c1 i% A+ c. b9 c# g# {
- (setq f1 (cons (cons t2 t3) f1))
$ U% I5 F* _- B! s - )
' X+ }" n5 Y* q @; Z - (T nil)
% S$ _" z# e0 w" M - )
7 o* u: a2 g6 g$ D/ p: f4 J1 D6 X - )
' B5 z/ V. m" U0 C8 n - (if f1 (setq f2 (ssget "x" f1)))% x! P( e3 [- A5 `% M- E$ O
- (setq *error* olderr)
/ I" x* g# m D; G4 m7 U: q - (if (and f1 f2) ) n" ]" g2 [: ^- q/ `% ]: @
- (progn
/ m5 i- P9 E) O3 W! T - (princ (strcat "\n" (itoa (sslength f2)) " found. "))& m) H! K! Q) c
- f2 ( S& w3 a8 P# j. ^( W& H
- )
7 b( W; U# f& q" r9 N - (progn (princ "\n0 found.") (prin1))8 X( y5 z; L% R, B
- )
# U3 g+ M3 X/ s( B - )
" V/ E' ^# u2 \7 _ - ;;;
9 l+ B# [9 _8 y& t m3 k8 X, z - ;;; Print the standard color assignments.
5 B8 o6 ~7 C5 @$ S' p f9 T - ;;;" S5 Y, o, @, ~) B9 _. `' Z
- ;;;
% \, H: u9 Q: G. ^- Z - (defun ssx_pc ()# ]1 Z$ {7 A" } I" P5 F
- (if textpage (textpage) (textscr))
. R1 o% D @, l3 m - (princ "\n ")/ y: K! i$ l- y- }
- (princ "\n Color number | Standard meaning ")) l% u H8 C# u7 ^
- (princ "\n ________________|____________________")
7 ~/ v) s+ F( f: N& h6 m - (princ "\n | ")% h0 M* E: h3 @/ R) c
- (princ "\n 0 | <BYBLOCK> ")
3 U9 u3 w/ Y* D; t - (princ "\n 1 | Red ")% v$ D: H& Z1 Y
- (princ "\n 2 | Yellow ")
' P/ H1 ?5 u+ g, | - (princ "\n 3 | Green ")9 u [5 e$ X8 f2 p
- (princ "\n 4 | Cyan "): d; e) \- Z5 h
- (princ "\n 5 | Blue ")$ j; @. t) c w( m# ^. z" J8 j
- (princ "\n 6 | Magenta ")
1 ~" ?. n) k6 \8 Y1 f$ A - (princ "\n 7 | White ")
8 C2 p: U6 e# w# Q8 ` - (princ "\n 8...255 | -Varies- "). u# S, R2 M- r2 P+ F q5 L1 C% N3 V3 F
- (princ "\n 256 | <BYLAYER> "); j, V2 t' [$ [6 B* \* c$ T1 s5 e8 C
- (princ "\n \n\n\n")
* d; Z- x- n) p/ ~/ L - )
' Q: u3 ^9 ?3 Y F - ;;;. T8 W1 C" e4 @2 [8 c
- ;;; C: function definition.. s! V. e. V/ ^% ^* \% ^
- ;;;
: O w5 m9 k: p7 ]! y' H1 d - (defun c:ssx () (ssx)(princ))4 K- c5 |5 a& _/ M0 H }
- (princ "\n\tType \"ssx\" at a Command: prompt or "). N. x2 Q2 \; f' {" e3 e2 s
- (princ "\n\t(ssx) at any object selection prompt. ")) _% p, o7 f" ]' w
- (princ)0 `' O0 O7 B" @
, O8 r" l1 K" ?, r' R4 a b- ;;;--------------------------------------------------------------------------;
1 a5 c/ D* K3 R3 o - ;;;--------------------------------------------------------------------------;" b2 G& L/ x1 l: [' [: q. l
- ;;;--------------------------------------------------------------------------;
1 c8 X& B# f/ m- L6 r5 J# \ - (defun S::STARTUP ()- N4 E- R: _7 Q6 @9 J
- (setvar "cmdecho" 0)
' \; V( |; N. y d* s: L - (setvar "cmdecho" 1)
4 g/ T8 H, ]0 ~) \$ R- S! T9 g - (setvar "LTSCALE" 10)
, Q. h3 S$ f1 Z+ R9 _2 h
( b* @; L' g9 h, V- ;(command "_load" "chenKH.fas")
' j% g! a! `' Y9 e$ t - ;(command "_load" "ctcot.fas")7 e( o0 h8 b u% z: X
- ;(command "_load" "damdoc.fas")3 G' T. U1 M0 { _, T
- ;(command "_load" "ghichu.fas")4 z+ K: S9 [# |6 D% C, K4 j
- ;(command "_load" "hamtutao.lsp")
3 V c8 |- P( } - ;(command "_load" "KHOITAO.fas")
5 B# a! b1 x2 j" d1 p - ;(command "_load" "KHthep.fas")
* Q" l5 r, H# L! P { - ;(command "_load" "mbmong.dcl")# |( l+ Z$ ~/ L% J* K
- ;(command "_load" "mbmong.fas"), Q4 X0 f- k1 r0 e* n
- ;(command "_load" "mccot.fas")
: C3 { |7 e% [ - ;(command "_load" "mcdam.fas")
4 B" {0 L. P! E& p - ;(command "_load" "mcmong1.dcl"); M, o1 j. x8 n3 o+ c4 S+ F
- ;(command "_load" "mcmong1.fas")
: z. H, c2 K0 n$ i8 p - ;(command "_load" "mcmong2.dcl")
6 U {' T0 v$ J6 |3 w - ;(command "_load" "mcmong2.fas")
) p$ F9 y- C' W3 N1 v6 @/ d - ;(command "_load" "mcmong3.dcl")2 @$ g- m. O! L* g
- ;(command "_load" "mcmong3.fas")
1 Z$ v) ~' `/ v' P! e5 Z - ;(command "_load" "mcsan.fas")
: U5 M2 u2 } B - ;(command "_load" "thepdai.fas")1 n8 V" w( [1 u4 N
- ;(command "_load" "thepdoc.fas"). ^1 J: O- E' f: ^0 D x
- ;(command "_load" "thepmb.fas")0 D" W9 a1 w4 V n% ~8 l7 v+ I
- ;(command "_load" "thepphbo.fas")
3 V4 M1 ]$ R/ F2 r6 M* u- p" V7 A* F - (command "_script" "thongso.scr")
{) B6 t& p6 z1 i- W, T) ~ - ;(command "_load" "thongso1.dcl")9 H2 j$ m( }; Y& m) [
- ;(command "_load" "thongso1.fas")
5 c( _( |' a( r' h" a - ;(command "_load" "thongso2.dcl")
( Y+ {1 d8 k8 q( o: i - ;(command "_load" "thongso2.fas"), x0 T& |; l3 j; B# U, m
- ;(command "_load" "tietdien.fas")
6 W5 r7 W, J, X6 j) |" g8 {8 F - ;(command "_load" "vehan.fas")" N1 p" [6 k- f3 i& n
- (command "_load" "phamDuy782006_TKT.lsp")
6 h' V6 f% j1 Y; v4 j - (command "_load" "phamduy782006ganhtd.lsp")4 u$ t* Q: n. `* M* N0 c5 q
- (command "_load" "phamduy782006ganhtds.lsp")
( ^) [( w8 {8 O: v - (command "_load" "phamduy782006htd.dcl")
# t" g+ e% n# M/ ~1 Q7 d - (princ)2 b* t0 ]- ?- u1 E/ Q4 C4 |
- ); Q- `, i" ?& {6 G& a
6 e, J9 E7 ^3 G! m5 ?+ m- ;; Silent load.2 e {% A1 M* W& I" m
- (princ)
! X% r- O( R7 r. L; V3 ]# b% B
) I7 V: u; ~1 c" J/ K% o
) |9 L/ I1 J5 v) g; m- ;; Silent load for the Express Tools.
: p h3 w5 M+ I" l; }6 H - ;; Altering this line will affect Express Tools functionality
2 W: o$ N& u4 ^% R* e. a - (load "acettest.fas" (princ))
4 c# M7 e) ^; a* C& e - �32
Sao chép mã S' t9 G) G" r" {4 S
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
7 N% N5 ^& B: x |
|