|
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 |
- ********************************************************************************4 j: l7 q9 J9 g3 `9 _
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
2 h) Q& b* O" v" m, S - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
& t. Y x+ t* E0 N. B5 _$ v! v - * Suu tam & Soan *2 X; C" d d' W$ x7 z) c
- ********************************************************************************; u9 l9 O: Q7 ~
2 f8 [$ c1 ^( z- ; Next available MSG number is 104% N: r6 M3 y8 ~- g) b
- ; MODULE_ID ACAD2000doc_LSP_
! P+ ~' T8 S( Z! B6 o+ B, B - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 20001 M7 b1 z9 b& O7 W- B1 F2 ~' y
- ;;;$ {4 r, R( \' i& P0 r
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.* j: N' R( g+ \7 y1 J
- ;;; {7 R' P+ L6 g; e, B) b
- ;;; Permission to use, copy, modify, and distribute this software/ k' n3 f5 K1 m# c
- ;;; for any purpose and without fee is hereby granted, provided
3 |, F O8 \9 B' C* \ - ;;; that the above copyright notice appears in all copies and4 r* J% c q3 Y9 {1 d
- ;;; that both that copyright notice and the limited warranty and! {* I( H/ N& X s1 d" q O6 j
- ;;; restricted rights notice below appear in all supporting
4 a1 C# t# }$ T0 R7 Q' c - ;;; documentation.
) E" V4 e5 F$ |7 M* H# [. N9 U - ;;;
- f# i h$ U8 U2 z- | - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
! F" L- h+ J* v; P* \ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
0 f& D H* K5 U. n' ?- h' H - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.; x) l ~. G/ v& _7 E* n
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE1 w [3 r+ x% s; s
- ;;; UNINTERRUPTED OR ERROR FREE.- w+ i# d$ s; }7 g I! {) x: h
- ;;;
- N. a: {0 e- i' c - ;;; Use, duplication, or disclosure by the U.S. Government is subject to: y9 M8 S* G' j0 j" l
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
1 I9 n% ~- j/ a - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) $ X s3 X% r- G# b* F2 M
- ;;; (Rights in Technical Data and Computer Software), as applicable.
3 I8 o* ^% w5 r1 Y0 ^7 M5 ?1 p" q - ;;;
$ ], z' P, \' S5 b - ;;;.: ^; u; X3 P4 C
- ;;;
0 g# g* x9 j& ~) H/ _2 B0 A% u' r - ;;; Note:
6 x$ Q% p& j& t5 U7 B - ;;; This file is loaded automatically by AutoCAD every time % [! j/ J# s2 h& O" x
- ;;; a drawing is opened. It establishes an autoloader and9 k& w( ?) P! N. E
- ;;; other utility functions.5 u2 T" v j* R0 X7 D
- ;;;
{* D7 x( a, B% n3 j+ Z9 F- \ - ;;; Globalization Note: . p ~3 |% P5 z, P/ W4 n
- ;;; We do not support autoloading applications by the native
* P) z& E% D1 t; t" u - ;;; language command call (e.g. with the leading underscore9 N; k2 r0 R7 m; _ x6 x8 F0 ?
- ;;; mechanism.)
9 d" A# y% l6 c% Z% s1 d! S - & x& W; `1 C' t* q [
- % ], K' m5 b* t' Q* x2 r: r3 I
- ;;;===== Raster Image Support for Clipboard Paste Special =====: j; P0 f8 o3 |* I! V9 ]
- ;;: ~6 o" x2 m- K. L
- ;; IMAGEFILE5 b! f/ t( E* z" X0 y' U+ x0 j
- ;;( Q7 B/ t. e0 H4 _2 |
- ;; Allow the IMAGE command to accept an image file name without
8 \7 s4 d' g. X - ;; presenting the file dialog, even if filedia is on.
( W5 A3 _2 x& n - ;; Example: (imagefile "c:/images/house.bmp"). c( j4 ]2 n9 D/ M- p
- ;;
4 b' o1 @3 `: g; I6 q k - (defun imagefile (filename / filedia-save cmdecho-save)* D* ~) Q2 v9 c8 \' ? {
- (setq filedia-save (getvar "FILEDIA"))4 }8 G! r- r" C) h1 v- [
- (setq cmdecho-save (getvar "CMDECHO"))' L) _7 C d. n% X& j1 Y3 }0 ]
- (setvar "FILEDIA" 0)
. z# k1 s+ i4 S! v3 c8 {+ C - (setvar "CMDECHO" 0)
; V$ ^+ i/ I' i; D# E' Y - (command "_.-image" "_attach" filename)
1 @6 X) j0 Y0 P6 l - (setvar "FILEDIA" filedia-save)7 X4 v* C5 R2 N6 d
- (setvar "CMDECHO" cmdecho-save)2 @8 v, H) ?0 W- a
- (princ)
$ P/ b! Q7 s/ { - )4 I/ G& S7 I$ o q/ ]! m- v
4 Z4 v7 j) p. @9 k' y6 z- (defun c:zx () (command "zoom" ".5x"))$ Q+ n/ k/ ^. c0 Z+ m8 h
- (defun c:zz () (command "zoom" "p"))- c( ^4 P* Z0 c8 W
- (defun c:za () (command "zoom" "a"))
& G# S3 \; H3 r3 b - (defun c:zd () (command "zoom" "d"))/ v8 _4 `8 W$ |2 h, h7 R5 f; x
- (defun c:ze () (command "zoom" "e"))
, t! u5 p7 [9 { - (defun c:zr () (command "zoom" "" ""))
! K4 y1 Y! O5 M& F5 Q. l - (defun c:vv () (command "ucs" "v"))
" F1 J' O% h- T2 d$ Y0 l, C - (defun c:co () (ssget) (command "copy" "p" "" "m"))
+ R+ _7 t3 f$ \ - (defun c:c () (command "circle"))! U- v+ f/ w* |7 K
- (defun c:rt () (command "rotate"))
& e. `3 {$ B: I) v) N* g- _' X - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))* e* _9 B% ^' r1 o- B1 @
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
$ e y3 m; ~3 w" r* | - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
! g$ Y k, F. D5 i' l$ c: P - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))- t( a2 [. r5 K% E Z
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5")). s& S, W' I" x# r, Y* X2 V( \& L
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))" \" ^9 J2 E7 ?2 e/ W; d
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
7 T9 Y4 X# O8 u ^$ [2 J. `; h0 n - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90")); T9 E# K$ h2 S" v
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))5 q. V, Q+ J; i* X2 L
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
# c2 @( g! B% G9 k; E* l& Z - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
8 o; N8 d+ A' Q; O6 X - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
! z0 s' i+ V8 a8 q - (defun c:fd () (command "find" "p" "" )(princ))(princ)* M6 Y- X; A2 @* {
" Z) D6 A$ ~- {+ K- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)4 [3 s& I2 r! o* U% H& [8 Q; t+ E
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
l% s/ A6 Z& a. f* L - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)4 L, T0 S: P* S+ ~/ O8 y6 I
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
8 h8 S( g0 ?) ?2 u4 J$ m) w+ k4 A - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
# G0 x: w5 ]" i& i2 t6 N4 X0 T - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
+ B' ]. |6 c* A; _) G8 z% s - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))* G6 M7 {' f% m6 [/ F+ W/ Q$ t* f) W
8 X: F% s: z* B2 E6 _0 i- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
6 t+ v+ W# B( S - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))& m9 C3 A1 \& b" N+ q
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
1 w$ Y7 ^5 K; P3 I - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
/ w3 v8 J G& X8 j7 W# T& ? - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
) k0 [+ n- s) [ - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
8 K6 x6 }; M" U W
! W" Z; k% Q. p1 {) z- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
/ ^+ E& i' d* @: X- Z1 W6 r - ; r: G$ k: f$ \; S# Y
- ;free lisp by cadviet,cd2k44& O5 Z2 y- j' @6 V- a2 a
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538305 ^% t5 [$ l- ^$ e
- (defun c:FTEXT (/ ent tstyle )4 Y/ X; I6 u# X3 w3 z
- (command "undo" "be")8 D `% U# [; [- [! _7 v. V& y
- (setq ent (entsel "\n Pick text :"))
1 L _! e, u; ~1 K! n8 a4 T - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
7 I$ O6 Q8 h' z+ Z! H5 Q' d. D - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
. Q! }/ N5 W9 t# l2 R9 j9 U - (setvar "TEXTSTYLE" Tstyle)
( e; T% ]( a) a% G! F. e8 c- z - (command "undo" "end")& G c4 Z0 d, w% C+ V: B! U- l
- )
9 K2 @7 V0 T1 Z/ r7 X/ m - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)% w/ y/ v: H5 N; J3 D: g9 v d% p+ q
1 ?7 h+ K1 e$ p! w* A- ;free lisp by cadviet,cd2k44
: l0 m3 e% K# p+ L - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830. ^' U" P( ]* ]& B% L& a. g
- (defun c:Fvnh (/ ent tstyle )% h f& v* w; e9 `8 F: E
- (command "undo" "be")
! u8 D+ H+ Q$ i! ] - (setq ent (entsel "\n Pick text :"))2 T1 K/ i) G4 [
- (setq TSTYLE (cdr (assoc 7 (entget (car ent))))): X3 g/ R5 L M; N, w
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")$ |% \; |& Y* c4 c4 K, j$ e
- (setvar "TEXTSTYLE" Tstyle)$ W. C0 [$ i3 V3 k4 s9 ?& f
- (command "undo" "end")
: i, Q# v+ z3 |. Y - )3 ~$ D) }1 ~2 o- R- r9 u* Y; `
7 m% D4 Q2 H" u) I1 s- ;free lisp by cadviet,cd2k44 M: d( T- X) ~# C
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538300 h+ S2 w z7 v; X; K
- (defun c:Chbg (/ ent tstyle )0 V8 ^2 {8 `6 \: W3 L
- (command "undo" "be")
! c0 c& r6 p0 ]) |" G - (setq ent (entsel "\n Pick text :"))+ s0 X+ F7 w# ^% O
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))$ G' e! P. L& Q- M1 R7 n. X
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")+ ~" r/ U, X& A$ U
- (setvar "TEXTSTYLE" Tstyle)+ S1 Z* B8 L f* Y6 w( F- ~ v' u
- (command "undo" "end")
0 h0 Y4 @/ q1 @! e - )' M: O/ Q1 X- U! x1 J
- 1 S8 u7 X: ] x$ v2 o
- ;free lisp by cadviet,cd2k44! d+ ?# F: i5 y; @# ~: a
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538301 T+ Y8 ~, j0 E) ]1 t
- (defun c:Chsm (/ ent tstyle )
: h% _+ {2 V0 V1 {# F - (command "undo" "be")9 D/ r/ `3 U3 O. d {9 Q
- (setq ent (entsel "\n Pick text :"))
8 Q1 G" F& h8 }8 S$ ^! Z3 x - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
; u$ P5 H: ^. E) k+ U - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n"). L9 {% X: v0 q/ ]* O8 |
- (setvar "TEXTSTYLE" Tstyle)
" d* c0 _+ J! Q - (command "undo" "end")! c9 M+ g1 @# s9 w, n+ j
- )
2 d% ], B4 n5 J; [9 T - * O l0 c5 A u0 K8 T% ?5 R
- ;free lisp by cadviet,cd2k448 `; \4 j, I1 ]8 a" Y
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830. b8 Z5 w* H# ^- K7 w0 ?% \+ I
- (defun c:Fttf (/ ent tstyle ), }# Z& L7 r5 B0 N
- (command "undo" "be")
; h# g( `" w0 R o - (setq ent (entsel "\n Pick text :"))
% L0 L' E! X' f2 L! C" l& Z9 F' q - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
4 e! l0 `7 h) v( S% t4 E8 E! O1 y4 y - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")1 Z5 z4 q* Q) ^) L! ] {2 c
- (setvar "TEXTSTYLE" Tstyle)
8 B1 {% N. C$ b( f& s V - (command "undo" "end")" U9 @0 f3 t% k0 R3 ?% y
- )0 ]+ W; K8 g' N# }) u
- , X: \2 e& [5 {( F7 {
- ;;; ============================================
3 q6 B* k* y) ?! U+ p9 ]4 a - ;;;
! L. q+ ~ d" G* y0 O! a. x - ;;; LISP Creater Tao Duong Dan AUTOCAD2000
3 \7 j+ ]9 v d3 e# [+ ^5 ]7 D - ;;;
! ?3 i% w' \2 P' U) |9 t - ;;; ============================================1 W+ N: ]8 K3 b) a5 z9 {$ O; E
- * k# | k7 v/ ]! U) S: j' G
- ;;; ============================================- M! g0 U- j. G3 P
- ;;;* h9 K( D; e n7 L1 h
- ;;; CREATING FROM AUTOCAD2000
. P" u+ B6 e2 i8 {) w - ;;;
7 W! U# o+ F# _# D7 ^" \2 y/ h - ;;; ============================================- e' x" V( I* n3 t1 g
- ( M$ \% W9 P# R7 I
- (setvar "INSUNITS"4)
* v: _4 c0 W9 h - (setvar "ANGBASE"0)) R) M. F3 w) c& H; T2 D @
- (setvar "ANGDIR"0)
. U8 C' \) D" C! D4 W& k - (setvar "AUNITS"0)# l! x. s- s3 R9 j- B/ x6 r# q) k
- (setvar "AUPREC"8)
Y. K4 y" h# O' V( J - (setvar "LUNITS"2)7 [( c2 l' X. s4 T6 s" w# t4 w6 M
- (setvar "LUPREC"8)5 Z, y! f3 X6 v N
- (setvar "ACADLSPASDOC"1) 4 h9 K7 [* Y, J7 c
- (setvar "pickbox"5)5 v8 G( `0 P. ~/ i, K1 Y" p0 w, {
- (setvar "blipmode"0)8 f0 L/ O; z, M7 y
- (setvar "mirrtext"0)9 q" n) k7 H0 v; z0 F5 @% O8 i
- (setvar "cursorsize"100)
+ L3 e, A z& I5 m2 f - (setvar "ZOOMFACTOR"75)( T+ o; e. `/ y6 i: V
- (setvar "LTSCALE" 10)
/ ?( ^, T( i2 c( Y$ l" m/ f) R - (setvar "lwunits"1)
& ^5 w* G2 f/ o; u% T$ i+ V' R) g - (setvar "DIMBLK" "Closed")
+ o% h9 C7 R, i - (setvar "DIMGAP"0.0693); L7 Z* I* `, T( h
- (setvar "DIMASZ"0.20)
4 r/ P& I$ W3 T4 S$ u: H - (setvar "DIMCEN"0.2), D# ?4 G% c; [4 C
- (setvar "DIMDLI"0.1)# i" o6 ~# C8 P. m
- (setvar "DIMEXE"0.0693)% X5 T3 T% C( S6 w' d, l9 ?! X8 Q
- (setvar "DIMEXO"0.25)
- j3 ~2 x) h( O- r: o - (setvar "DIMDEC"0)% T5 J1 |) h' g( Y# U' E
- (setvar "DIMTIX" 1)
* _+ R* l& T/ W p - (setvar "DIMTXT" 0.099)
0 K) ~7 ?% K* h6 p+ p6 B - (setvar "DIMCLRT" 7)
2 E. }4 g V, B' F' ? - (setvar "DIMTVP" 1). X4 d, [* R) `# |4 E# o) D, B4 K2 v: {
- (setvar "DIMJUST" 0)' I5 S9 L8 o6 C- c; s9 T* q! w$ ^
- (setvar "DIMTIH" 0)# {( ?: a- v! A
- (setvar "DIMTOFL" 1)& Z; M$ g, b- ~9 ~) u$ C
- (setvar "DIMSCALE" 1111.1111)2 @' O% r% |8 h, M* t, ?
Z7 g4 |, F5 c& I0 x9 z0 r& [8 h- 1 |6 |1 y. b7 s7 [- I: b( }: s
- L2 t7 s- f' ^
- (defun c:zp () (command "'.zoom" "p")): I3 ]$ E8 B; ~+ Q1 ?
- (defun c:zz () (command "'.zoom" "p"))
$ d0 S5 b- a% M- y+ ~ - (defun c:ze () (command "'.zoom" "e"))0 N0 G% S+ u9 d0 X2 k x5 r
- (defun c:za () (command "'.zoom" "a"))5 T6 |; v" k* O) a
- (defun c:zd () (command "'.zoom" "d"))
2 ~7 E9 `7 t' w: F2 D$ u) W - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))8 |) T: c4 G! D8 q
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
" G- |( `3 Y2 I( ?0 U+ B6 I - (defun c:de () (command "ddedit")(princ))" \+ C2 M6 o; {' L
- (defun c:dda () (command "Dimaligned"))
( t& `' l* l* U" H( }1 T. D9 _ - (defun c:ddb () (command "Dimabaseline"))
7 f& }6 ~; D5 Q - (defun c:ddc () (command "Dimcontinue"))
1 r$ B* \7 y- a( o6 S7 E - (defun c:dde () (command "Dimtedit"))+ G" I7 _& k( {5 k* X" _( ?
- (defun c:ddf () (command "Ddattdef"))3 G; `8 S) o$ }1 l( r% j
- (defun c:ddi () (command "Dimdiameter"))( H3 j# M& J, V# p, L ~& \
- (defun c:ddl () (command "Dimlinear"))
7 f' l2 V" A2 u4 b" f' ]* u - (defun c:ddn () (command "Dimangular"))& i8 L) A$ N6 D% K: v" U6 s7 y
- (defun c:ddo () (command "Dimordinate"))$ u! Q- Q, e- Y2 ]
- (defun c:ddr () (command "Dimradius"))) E* E# W' S% n- Y
- (defun c:dds () (command "Dimstyle"))
7 D2 Z+ r4 X* ^* s# X - " A( ?6 S: }1 }- Z
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
+ D( w2 @) I. h - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ). k% ^' X$ V v( c4 X9 w) _
- (defun c:UU () (command "dim1""update""all"))
& S, u0 T! F* [ - (defun c:ded() (command "dim1""tedit")), C- {! N% x# l& h3 N8 }
- (defun c:da () (command "dim1""ali"))/ x; F1 Y& K, B* G+ ^
- (defun c:dll() (command "dim1""l"))
+ |. A) R [) `1 V- i! ? - (defun c:dan() (command "dim1""an"))/ F/ F% A! h# \6 E
- (defun c:d1 () (command "dim1""ra"))
& G6 W- }+ @- k0 V& `- [! l1 \ - (defun c:n () (command "dim1""new"))
- C* W. V ~, r$ n; w6 _2 i H; S
4 s N4 C' U3 R$ H+ i- (DEFUN C:PE () (COMMAND "PEDIT"))) v; p0 Y) {5 a) X( [
- (DEFUN C:PL () (COMMAND "PLINE"))
- `! k { T2 a4 e0 C# E2 w! Z - (defun c:dd () (command "dist")(princ))
+ T; O( `% a+ _* B3 Z8 _ - (defun c:w () (command "pedit" pause "w" "au")(princ))) |6 t7 l1 {) t' L( X/ `. B" K
- (defun c:pg () (command "polygon" "polygon"))
2 Y+ c& g2 @+ K - (defun c:el () (command "ellipse"))9 Y2 R: Y% v& [) @
- (defun c:xe () (command "explode"))* }5 K6 r) ` P: M- X* \* ?6 Z. z' \" V
- (defun c:eex () (command "extrude"))
" Y! B, s# a& I2 @" U - (defun c:xg () (command "xline""a"))
, k: V: e* R8 L - (defun c:xh () (command "xline""h"))
4 M- D* G! L# e$ o& s - (defun c:xv () (command "xline""v"))3 K, N- {8 s) g% ?: }" D6 F9 M
- * W" o( D. v( j0 K/ e
- (defun c:oc () (command "osnap""cen"))
+ s1 a' l$ E) S" v1 K! K) d - (defun c:od () (command "osnap""nod"))- I5 X# @* x. e
- (defun c:oe () (command "osnap""end"))
. r0 y% V6 S& B0 z. p5 [* ~, x - (defun c:oi () (command "osnap""int"))
; ~8 }1 U% d' c- n. I) r - (defun c:or () (command "osnap""per"))
7 v& S- i( }! J; ~; B; ? - (defun c:on () (command "osnap""none"))
' [9 i8 [! n3 h" B" x+ j - (defun c:oq () (command "osnap""qua"))
0 h3 P. d0 ]0 u+ O) g4 o/ t, u+ @ - (defun c:om () (command "osnap""mid"))
- d2 X$ {! e+ }# R% I, j - (defun c:ot () (command "osnap""tan"))
. t; u' _' ~) @ - (defun c:oin () (command "osnap""ins"))
: }; Z0 G# o H0 D* l - (defun c:oa () (command "osnap""nea"))
# k1 a7 w9 T& o& C3 B: Q3 h6 K - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
, v1 u! {# i- B* @ - ;(defun c:du () (command "dim1" "up" "s" "pick" "other")). Q7 ~% o1 s2 r+ I D8 H! S- y
- ;(defun c:nn () (command "new" "y" ))
5 l) f4 u6 R i - 2 b& a8 v. J0 X& L) E/ S
- (defun c:/ () (command "limits"))0 i- K, {+ K; e) R$ v, W
- (defun c:`1 () (command "region"))5 v$ N: s/ S2 F
- (defun c:`2 () (command "subtract")); Z; z/ B$ I& Q, {( c4 q
- (defun c:`3 () (command "union"))
; o) w, a& |- D+ t - (defun c:`4 () (command "intersect"))( q' S3 W4 e+ Z" ]) d. X5 n' o
- (defun c:`c () (command "cal"))
6 J. w6 P, T" {* F+ Z - (defun c:`g () (command "Polygon"))( T9 T' q a& S
- * |0 o. |( N7 {9 b5 @' q
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))& P8 `5 R# C# e4 c( f: f3 S
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))* V G, m, E7 q7 @: @: P' p6 A
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)
5 w; z) E3 Q3 C& v' _! m# D" j, W6 ? - W7 x8 J6 W6 }6 ^7 t; C! l" p
- (defun c:ddm () (command "ddlmodes" pause))
2 ^% v! W+ K3 F# T( S1 Z - # @$ {4 t- F4 g: }
- (defun c:sha () (command "shade" pause))
% T! j Y' O$ H5 |' z, ] u - " X0 t, e* y2 L& I
- (defun c:sr1 () (command "surftab1" "p" "" pause))- t* O+ J* O0 e! J+ M
- (defun c:sr2 () (command "surftab2" "p" "" pause))( }& p7 L( X4 N2 _
) F+ k3 E% ~2 Y! Z2 C- (defun c:ad () (command "audit""y")), b6 g: n [5 g3 [ A9 y
- (defun c:q () (command "quit"))2 z1 K: v) `1 B) ?8 U x
4 Q; _6 B b4 K! R+ i4 y5 D- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
/ T3 t/ m ^9 K( n$ i - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))* t8 J6 n3 l; ]5 |- G) P
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))" Y: M1 U7 N( f: ^1 n
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
* {2 U/ c# F( r9 k$ U6 } - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
, ]7 F0 E! p: V8 F: n% E$ F - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
7 w5 k$ P! \4 R7 I - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90")). r% k8 F( v2 M/ h7 X3 g
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
! P# a# U2 r1 Q$ I - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180")). Z. Q a! o# E& g& Q
& h' h& J3 {4 a7 a- I1 W- (defun c:u3 () (command "ucs""3"))7 N: b0 o7 a. B' t( Q1 j
- (defun c:ue () (command "ucs""o""end"))
) Z f; e, q$ n- j. } - (defun c:ui () (command "ucs""o""int"))8 `6 ]$ E* I' @ p6 ~8 a% X6 o
- (defun c:um () (command "ucs""o""mid"))
I) T7 T X3 Y- r, q - (defun c:uc () (command "ucs""o""cen"))
% f( O+ U* F+ I1 p% J% O* ~# X3 M - (defun c:uq () (command "ucs""o""qua"))
6 ^3 |1 ~% d4 {+ T - (defun c:3s () (command "ucs""3"))0 g3 X' y* z U. w$ Y K7 D
- (defun c:sx () (command "ucs""s"))
8 ]% `: O' O) }9 t! G E, l a - (defun c:sf () (command "ucs""o")): d( r! X, ~0 k3 Z
- (defun c:sz () (command "ucs""p"))$ }4 k( T$ j! H9 C8 s9 t' o
- (defun c:sr () (command "ucs""r"))+ _! ~: \4 {! ^- w) Z, s8 x
- (defun c:sw () (command "ucs""w"))5 J. `/ M! f, E7 B: k0 l/ N4 x" d
- (defun c:fv () (command "ucs""v"))
% |7 |. l3 T$ u& `% F3 n1 k - (defun c:ux () (command "ucs""x"))
" D/ t% D, P, Q* h8 M8 { - (defun c:uux () (command "ucs""x""90"))4 ~4 }& w! N8 H, r. O; x5 H
- (defun c:xxu () (command "ucs""x""-90"))
! o/ }( T5 Y( s5 \4 i/ s- R - (defun c:uy () (command "ucs""y"))8 M) s( E0 f4 ^. v7 W
- (defun c:uuy () (command "ucs""y""90"))
* w8 A" r5 f8 l$ v - (defun c:yyu () (command "ucs""y""-90"))
( m4 r2 \* T; b3 @! V, M* O6 c - (defun c:uz () (command "ucs""z"))
1 K. ^6 d1 W: i+ V/ F9 o4 W8 v - (defun c:uuz () (command "ucs""z""90"))
1 G5 i# z; j& a$ i! V7 ] - (defun c:zzu () (command "ucs""z""-90"))! S) y: g6 U7 [; A+ _* k% a
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)# L$ ~. h! g: z% c" I: y: d- W
- (defun c:ucm () (command "ucsman" ))(princ)
6 f, S5 ^: s3 n. V9 D+ M - ! a; H! N# Z* Y+ X: y" O+ E. Z2 ^
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
3 ]6 x( g r; _5 _+ X* a- }- ] - (defun c:sd () (command "vpoint""_non""1,-1,1"))
& w( L& R0 R7 @9 ? - (defun c:se () (command "vpoint""_non""1,1,1"))3 D* C4 ?( L+ d8 }& Z$ j
- (defun c:sq () (command "vpoint""_non""-1,1,1"))& ]3 P* @5 S( _& _# j
- (defun c:vc () (command "plan"""))
/ v. @2 [, E+ T% }) { - (defun c:vd () (command "dview""all"))* K$ o4 n0 o7 r4 K' x( @) `
- 0 p1 C3 T/ c1 S1 w5 ]
- (defun c:TT0 () (command "tilemode""0"))% @: {3 I8 ]/ |" w# ]( c' Q2 E
- (defun c:TT1 () (command "tilemode""1"))
( u6 [" C* [3 e; H* t( h) L2 Z
\6 g( U8 G1 r- L4 y1 Y0 t. s$ Z- (defun c:vt () (command "vpoint""_non""0,0,1"))
2 L! Z1 `- ?: D8 ~1 Z - (defun c:vb () (command "vpoint""_non""0,0,-1"))
9 \' b$ \9 w4 k0 M, W6 \% c k - (defun c:vl () (command "vpoint""_non""-1,0,0"))
5 }: q9 `' ]/ u - (defun c:vr () (command "vpoint""_non""1,0,0"))
8 ~( Y& `6 h8 x8 X - (defun c:vf () (command "vpoint""_non""0,-1,0"))
, N7 r0 N( C- e" U: M+ n! C+ ~1 Z - (defun c:vk () (command "vpoint""_non""0,1,0"))
5 e Q* t/ r, F7 H$ d
* N8 I* k' `& H7 C8 D# b9 ?" \- (DEFUN C:MM () (COMMAND "MIRROR"))* F) P5 Q! N" B" A; A
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
2 Z1 ~/ h5 u/ C; H2 Z0 h
# Z' F! \+ T; {, W5 i- (defun c:mee (/ a)& O3 [5 x& k& t
- (setq a (ssget))(command "move"a"""end"pause"end"))0 {6 C6 u4 [( N
- (defun c:mc (/ a)
* J! Q5 B+ g( u - (setq a (ssget))(command "move"a"""cen"pause"cen")) S1 \7 |4 c& t8 M2 ]8 ^) M
- (defun c:cc (/ a)
X, Y+ `7 i' I# S, D" R - (setq a (ssget))(command "copy"a"""m"))8 {5 l* X3 w- k
- (defun c:ce (/ a)
" [" p/ R3 B: E - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
4 I/ y: E r9 |, ` - (defun c:cn (/ a)% `! R0 m: x$ h/ ^0 s
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
* G* i# B. V* J, I& p - (defun c:tl ()(command "trim""l"""))
3 P9 i4 E$ B8 y# O" A - (defun c:tf (/ a)8 m/ F0 p- W! |# K/ i5 a& X
- (setq a (ssget))(command "trim"a"""f"))
- }3 ^ s. \7 Z/ `9 @) S' a - (defun c:el ()(command "extend""l"""))
/ G3 w8 }% Q4 ]1 ]5 n' x7 { - (defun c:ef (/ a)- f; p# n* W# k1 @- G' g) C+ U
- (setq a (ssget))(command "extend"a"""f"))
. u! i2 K) [: v9 u: c; @, ^ - 8 E% C/ g; V8 ^$ J: n3 q
- `) F) t& Z0 p$ }: z/ r- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110")), [( X9 M2 [1 n9 V3 Q! _
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))* x4 k- Z* `. ~: g" F; S, T- P2 \
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330")). p( ]9 [4 r+ I' C: H$ n
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400")); }/ R8 ~/ R( e$ `; u K
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
$ L! [+ f- Z) G3 Z - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
) u5 d# e ?' r; J4 d: O A - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
7 f+ G- o/ T- D& s - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))* n3 A+ p5 ]0 e" N' u
- (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
. ^; K% w, |, y9 A! Z- s - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
; d% z( [ ~7 y& A+ J - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))/ b3 B0 j3 C# z
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))8 p+ g/ ~8 s* \3 o
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
, F! S4 n4 K$ Z- v* E0 w/ P$ E, F - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
5 _! O( n: {9 ]0 v/ M - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
; G7 k8 h! S+ u8 `8 @ - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
' x& ]. {( i: B$ L+ f7 H2 ^ - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000")); V8 w: q J$ ?) N, R
- - N$ M1 ~2 b2 O7 h) b* f: G
- (defun c:mla () (command "-mledit""av"))) B/ Y4 m# @9 o- v: i
- (defun c:mlc () (command "-mledit""mc"))
* b. S0 T7 J7 V: z( X0 } - (defun c:mld () (command "-mledit""dv"))/ p* E5 G2 k/ m) d+ ~
- (defun c:mle () (command "mline""end"pause"end"))
' i$ j* c/ _- b" Y Q, |9 x$ K3 }' m - (defun c:mli () (command "-mledit""ca""int"pause"int"))
; ]' ?! e: K' m; U9 | G$ o - (defun c:mlj () (command "-mledit""cj"))# ]& E& B2 i2 g3 r
- (defun c:mlt () (command "-mledit""mt"))7 i1 t/ }7 b, C: W) n
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))
( l2 u4 Y" M$ _# l. Y - (defun c:mlw () (command "-mledit""wa"))
5 s3 U& D, i; S3 I% \$ m% r) {6 \: {
& U8 w. _7 Z, B& u" C& G- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA")); a( `+ O7 J( k6 r" I
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
6 p6 O/ s, N, G- J5 @) w: I - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
+ S1 U! H" |9 e& U3 } - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
& _- P3 X9 B3 B9 o1 S - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))$ h" X9 l# |* i! t
- 7 a* g" ]7 j$ @0 G* [
- (defun c:p0 () (command "pline""""w""0""0"))
, o: v0 d. o8 x8 ^6 d& h - (defun c:ot () (command "offset""t"))
$ k& T* p+ t' o - (defun c:t () (command "mtext"pause"j""bl""h"pause))( O/ c H1 p! n; X! c4 {) J
- (defun c:uo () (command "ucs""ob"pause))
5 Q" S. d( w( Q& V1 S - (defun c:f0 () (command "fillet""r""0"))
# K: |! w" k4 X) l - (defun c:fr () (command "fillet""r"))3 r2 ]' Y# M5 ? f
1 V7 S# G: N! ?( H- ;CHAMFER' Z: l, m H2 ^( s0 \' i* m& V2 ]
- (defun c:cf () (command "chamfer"))2 Y" Z. M- z3 B4 M2 u3 Z P" l
- (defun c:cfd () (command "chamfer" "d"))
: A7 S2 b6 J6 U7 q2 t - (defun c:cf0 () (command "chamfer" "d" "0" ""))+ r& | L) d) b
- 3 K# ?2 Z# L8 u& H
- ;FILLET
* q- {3 D2 Y8 j5 B8 |% t - (defun c:f () (command "fillet"))
: W- l: ]) K5 J7 H+ _( T - (defun c:fr () (command "fillet" "r"))
* ]3 h3 t: n Y - (defun c:f0 () (command "fillet" "r" "0"))
. {5 o9 Q& D- ^* K1 H
& y L; z2 v: H- (defun c:OO () (command "oops")) [# O% m* \* o- d7 E
- (defun c:dln () (command "dimlinear"))
6 V$ }$ l, M3 G. y - (defun c:dan () (command "dimaligned"))) ~3 R) o1 x- t) G# t7 g) e1 n* _
- (defun c:ddc () (command "dimcontinue"))
5 n& ] y3 |; g - * C8 Z6 E( {3 `
- (defun c:sc () (command "scale" "auto"))
; A7 Y0 m5 g5 Y" Z2 }$ v/ y - (DEFUN C:XO () (COMMAND "snapang"))2 d" P% e- ]" y: i" \) Y* C# N
- (defun c:cc (/ a)4 C9 ^% y @( x+ a# A' x4 _
- (setq a (ssget))(command "copy"a"""m"))
, m2 [( S# e, H1 x' n* S/ l$ _
; q. V" C8 m1 e1 w B- (defun c:PJ (/ a)
6 t' s2 n& {2 j" P0 { - (setq a (ssget))(command "pedit"a"""j""all""y"))
( F* H4 W$ F2 ~- I$ A3 Y& X' E - (defun c:JJ (/ a)
1 w6 U) v$ E J - (setq a (ssget))(command "pedit"a"""j""y"))
& v+ b7 n, u2 l: R! L( A0 x - (defun c:TN (/ a)
! Y' i; k0 n( j2 R) t - (setq a (ssget))(command "change"a"""p""T"))( U, e% J6 x G& R' }' ~9 I+ p
- ! r- q% f3 u, e5 i6 M
- ) C. X3 c+ S2 b3 M, D9 O5 n$ {
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================! }8 E1 Z6 A' j6 A9 L$ N4 W7 A
- & e& _& ^2 x' l5 u4 K" l
- (defun C:IB ()(setvar"cmdecho"1)
, M# R) z+ {9 }+ {+ F) V6 j E - (setq pt(cadr(entsel"\nSelect Block:")))( w6 J$ a) }' o/ {! Q2 E. W' B* ]# V
- (setq e1(ssget pt))
/ y4 H/ Y% M8 i7 G - (setq e2 (entget (ssname e1 0)))0 H K; q. U9 g) |9 a2 C
- (setq blname (cdr(assoc 2 e2)))4 L# {- k* D0 O" \! O/ g
- (setq oer *error* *error* err2)(command ".insert" blname))% n0 ]: Y9 O, o6 n
- , _; |$ Z( ?2 _1 N
- (defun c:II ()5 R4 K) o. p! L! v3 w7 _; W+ j8 P3 `
- (setvar "cmdecho" 0)
3 ^7 T) o; L7 o/ Q$ K - (setq olderr *error* *error* myerror)
! q' m7 t- w6 \9 S1 u' N, b+ T; ? - (prompt "\nSelect objects: ")
( G- k3 t; C5 v( Z - (command "select" "au" pause)
% h! O( J. j4 B4 J - (setq sstxt (ssget "p")
( Z$ F" T# I6 f6 D, L8 {' T - sslen (sslength sstxt)
2 C0 T( Y" g8 z$ K6 P - ctr 0) S- K! R+ u1 E# w, @
- ): P) h7 U7 K W. y( l' ]! f2 V
- (command ".undo" "mark")
6 ^6 h7 ^& `2 C' Y; w - (while (< ctr sslen)
0 T: M' [ w$ ]8 { - (setq listxt (entget (ssname sstxt ctr))* ~( E* s( D$ z2 o2 V0 Z! O. w
- txttxt (cdr (assoc 1 listxt))
1 [- |2 {% @1 Y5 K - enttxt (cdr (assoc 0 listxt))
/ Q3 s4 V4 k g - )( ?7 ?, q1 H0 _0 |0 A
- (if (= enttxt "TEXT")" ` C ?7 v8 i/ ^
- (progn* T B$ S. i6 m! a8 ^
- (setq testxt (substr txttxt 1 3))
$ k B7 Q) ^ d% J* Y( u4 u. ?2 F - (if (or (= testxt "%%C") (= testxt "%%C"))
- R3 y# \8 D" h. ^4 s1 I/ A - (setq newtxt (substr txttxt 4))' W$ w5 F/ @) w( j. q4 \4 |. j
- (setq newtxt (strcat "%%C" txttxt))
2 m4 F% N: v) h/ r% N" O - )
$ [* J9 L6 {* y* Q$ T8 l# Y+ Q - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 E, C8 a4 ^: G# d: t; L
- (entmod listxt)
3 G8 d( O2 o2 o$ V+ Y - ); @4 |7 T, w7 V$ Z
- )
' _2 w. D# r' [ - (setq ctr (1+ ctr)) W% t2 s6 u" B4 E, h
- )/ P2 b0 u- X9 _! l+ A1 [0 E* |1 A
- (setq *error* olderr)
) \9 b6 ^$ M; B - (setvar "cmdecho" 1) n$ N0 L* `9 Y4 d* {+ [
- (princ): O/ C" m* {' a- p C% r
- )$ k0 n$ ~, Y' v0 G7 |
' S/ D! }% v& V$ z$ n& c: z% c% [1 I- (defun c:DG (); ^ Y7 c' L% u
- (setvar "cmdecho" 0)
( H% F; B4 c7 d" G: l) o8 Z7 ^3 ?4 K/ R - (setq olderr *error* *error* myerror)
+ M) v3 @2 _& k% ] - (prompt "\nSelect objects: ")
W( X" d' c8 {+ u6 \ - (command "select" "au" pause)
( U' U% a G' H$ H* y - (setq sstxt (ssget "p")
* j+ T) H; T2 O; W( H5 w - sslen (sslength sstxt)
2 X' {& i4 g4 _1 V5 i - ctr 0
5 D( _5 s1 ~! g4 S( e - )- I! e$ R4 H$ S' U# o
- (command ".undo" "mark")
! X! a, [7 t* M" f" F* Y& E) E3 B - (while (< ctr sslen)2 d* s" ]% W% |3 h) P' o( N p- e, @
- (setq listxt (entget (ssname sstxt ctr))% z/ ]# I& c s
- txttxt (cdr (assoc 1 listxt))& ]' a$ |2 m, H: b. B. M/ i
- enttxt (cdr (assoc 0 listxt))/ b8 o6 h0 @4 A* |. j3 p( A: N
- )* u( Z" i8 ?7 y6 P+ ^# V- G* j
- (if (= enttxt "TEXT")
* i: M5 Z7 i5 ?$ E- M( [5 C$ M - (progn% p/ E) N9 o, h% r" f1 |
- (setq testxt (substr txttxt 1 3))7 V$ B' u% @; V( l
- (if (or (= testxt "%%d") (= testxt "%%d"))3 K1 r6 k( C- l( P, ~( b7 l
- (setq newtxt (substr txttxt 4))
! m; |2 P! T/ | - (setq newtxt (strcat txttxt "%%dC" ))
2 E. b" |2 e! e4 O2 T0 r - ): E% p2 I9 [* l Q& F9 `; A
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))% L2 O F9 O( X5 [
- (entmod listxt)$ n4 M+ w7 ^- t6 {
- )$ P5 H$ ]) ^. h, _. r+ i7 s
- )
7 Y; p. m* z/ u# c+ h4 U& [. G - (setq ctr (1+ ctr)), X l; q v& r1 x6 d
- )
2 `* X! Q2 |6 |" V - (setq *error* olderr)
& ?- Q$ S& W, s5 k9 t$ t- k - (setvar "cmdecho" 1)6 f6 W/ y$ i5 f/ j$ P4 E
- (princ)
' U+ z8 `. e! Q$ W& g1 R4 | - )
1 p1 ]6 v) N3 t" k" Z% Z
5 C2 h# L( H c7 f) a- (defun c:PI ()
1 l a Q; w8 `* q3 |( f# e# H) l6 x; a! | - (setvar "cmdecho" 0)
& U) p0 v3 ~/ U9 [) A - (setq olderr *error* *error* myerror)
' k# k5 T+ l$ k5 ?6 N6 p - (prompt "\nSelect objects: ")) w+ y' E- k) @4 d
- (command "select" "au" pause)# V0 [; F' d, ?4 u6 ?
- (setq sstxt (ssget "p")
5 j( ~/ f3 A+ R0 n* N; N - sslen (sslength sstxt)
8 A/ N. |2 @% ]/ ?% P) G/ B/ I - ctr 0
3 S7 y/ U6 ^& } - )7 f/ ^ G0 T5 V4 d
- (command ".undo" "mark")
5 L0 e& W- s* u. \ - (while (< ctr sslen)
" y: Q' x6 V. d7 g: `1 |" J - (setq listxt (entget (ssname sstxt ctr))
7 O! v$ L0 b+ F3 J) |9 Q: k - txttxt (cdr (assoc 1 listxt)); I' c8 s6 i) s0 x3 A0 L
- enttxt (cdr (assoc 0 listxt))
5 l: h9 p2 O0 a. b0 ~- [ - )' ?3 L+ ?3 |" H$ C% ^0 x
- (if (= enttxt "TEXT")) S* O. c1 |* g/ y: Z5 I
- (progn
+ ?" T$ B, q. ?) H, G, X" ~ - (setq testxt (substr txttxt 1 3))0 @; v+ g# G5 A0 M6 l" F
- (if (or (= testxt "%%p") (= testxt "%%p"))6 s7 O/ I- k( p" I+ L! \ O
- (setq newtxt (substr txttxt 4)): Q ~' N; u! P/ g% [
- (setq newtxt (strcat "%%p" txttxt))) A- s! y" U- O# |$ Y! I
- )
: S. @+ B: e. Q% E6 p - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
+ J4 E! l1 R1 ~; c' p3 \ - (entmod listxt)
( ^% z. d" K1 Z/ x' m3 u* d - )9 I% |$ ~) F& v
- )8 h) t+ [2 n7 s
- (setq ctr (1+ ctr))2 d: Y' x3 M# T9 o) \
- )
, g; J4 P4 `& C. j - (setq *error* olderr)& q- C5 n8 [9 k' ]# b
- (setvar "cmdecho" 1)+ n7 D r( k- Y% f
- (princ)7 m& C; O6 F) L$ Y/ \& |
- )
4 |8 q/ S8 D0 C5 x. l4 W* F4 H - 6 e" w3 m* t9 Z
- (Defun c:CB (/ a)3 E" `1 ~+ \( ]1 M, j5 i' d
- (setq olderr *error* *error* myerror)7 `1 g6 j. u( s: x; q! s, C# _
- (setq ocmd (getvar "cmdecho"))
! O: {: k$ [ M/ V( N7 X0 ? - (setq oblp (getvar "blipmode"))& x% I. w' M, d
- (setvar "cmdecho" 0)5 K3 F0 N$ z- f2 m7 V+ Q+ K* c
- (setq a (ssget))" Y' B% p' l/ h) |
- (command "CHPROP" a "" "C" "bylayer" "")
3 Y+ M" s( C! x - (setvar "cmdecho" ocmd). a' K" ?: [& w+ ]. | U1 z5 Q. z5 e
- (setvar "blipmode" oblp)# h m( J5 C. }! f2 _) {( ?5 q
- (setq *error* olderr)1 P; S. p" W6 T9 t! |& K6 W3 j$ x
- (princ), ~% N. ^6 `7 k# A" `' E/ v1 l
- )2 F8 `( x1 `. D% }( y
+ Q; |- p* N$ b% N) R* r+ \; A- (defun c:LCC (/ co43 obj23 la23)
& s6 H6 P( ^ z6 R7 {" y - (setvar "cmdecho" 0)
: _( t: P$ g7 A9 |2 @" S" f - (setq co43 (getstring "\nNew color : "))
- o' }. D/ J' i' t - (setq obj23 (car (entsel "\nPick object on desired layer: ")))$ |5 p$ r; P) Q' [
- (if obj23 (progn9 F% O+ _9 y7 \7 z7 Y
- (setq obj23 (entget obj23))
$ o) j+ r7 r, P6 W; b" }, U) t# @ - (setq la23 (cdr (assoc 8 obj23)))/ q. u4 F6 f N( I, m6 O2 p
- (command "layer" "c" co43 la23 "")
( W" R$ a$ F, `7 e5 T. O - )
& D0 z+ b# p0 N1 A& V7 o - )
7 n3 D3 ]; z- i& b - (prompt (strcat "\nLayer has changed..." la23))
3 |2 b% W0 e# F" b+ q - (setvar "cmdecho" 1)
- R- A0 b' l% e2 S9 D8 Q$ |9 C - (princ), M$ h6 A5 o. [0 e" d b# c
- ) ' N& W/ n+ @3 W1 U8 z, W# ~
- 2 Y& N# l+ d2 L+ K
- (Defun c:RP (/ a)
6 q1 |3 @& W% L: F) ? - (setq olderr *error* *error* myerror)
/ i$ l1 y- x5 O0 a - (setq ocmd (getvar "cmdecho"))
5 c2 ]) g( e9 v: L7 X! l, K7 \ - (setq oblp (getvar "blipmode"))" \" ]# ]3 Y5 A+ s, R/ o! e
- (setvar "cmdecho" 0)+ z8 H2 F3 l% R0 [3 }
- (prompt (strcat "\nUSE: Delete object(s) belonging to"5 y" j) p; e; n# ?& d2 \
- " the layer of the entity picked...!"))
' o3 ^5 D) @- ?# f- T - (setq a (entsel "\nPick the entity with the desired layer to delete: "))
, |& e. x; Y* V# C" K/ f - (if (/= a nil)
7 a& E3 ?7 q' I9 x$ l - (progn (setq a (cdr (assoc 8 (entget (car a )))))
+ B9 r; c0 L$ S6 u5 Z9 J - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) "")); v% C' B7 m6 z3 {- \2 H
- (prompt "\nNo entity selected!"))2 S) R4 h# U9 @* X y9 k
- (setvar "cmdecho" ocmd)
; Z6 s' v: W, Y- x9 T+ G - (setvar "blipmode" oblp)
0 I5 ~7 @; H" X* t' s- y; w6 n - (setq *error* olderr)3 b6 B/ C! P" q3 C8 |& m; T! m
- (princ), U$ _; d9 N+ M3 R
- )
! @, O4 R: V: X - ; Y @6 `7 ^; w! [
- (DEFUN C:WL(/ SSET NET SSL M)0 r. b* t* {7 K' | y7 Y) \+ y1 @- x& Q
- (PRINC "\nSelect lines :")
$ l, G' h# B+ k; o/ C4 F+ L - (SETQ SSET (SSGET))( i) Y% h* j* g% Z5 P) Y" l6 }# Y9 u
- (IF (/= NIL SSET) (PROGN2 [: v7 T. R% @* o+ B' q
- (SETQ SSL (SSLENGTH SSET))
* u/ f, a4 D Y9 `0 z: r6 d9 [" G - (INITGET 4)& o7 n; u$ ~) n# o* ~; o( x
- (SETQ NET (GETREAL "New width : "))
3 ^- A$ R3 m* M! K$ l0 ~$ f - (IF (/= NIL NET)
, ^4 {' h& s* z; ]6 V% {! S% C - (WHILE (> SSL 0)
+ K# p* W$ i! X. x. M% | - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
- A- Y' R. P2 Y' e, D7 L# l - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
( B. E# p: M6 D - (COMMAND "PEDIT" M "Y" "W" NET "") ' L, a$ c8 M5 x+ K& p
- )
( J4 Q A7 ]% Z& U1 Z# k - )
1 p* R2 s6 p3 [* f5 T6 \$ d - )))+ k9 V* J# A- i& ^! ~! y! E9 H( v d
- (PRINC)/ @7 f9 ~) x" |' _9 Q9 u- \
- )" A& a' F+ T9 @/ h. n/ ^
p1 F/ a- c, A; t& c. X- (defun C:MML ()& N% m# w$ B+ Z# ?6 A& i5 B+ i
- (princ "\nSelect objects to move to another Layer.")
( ~( h% ~6 e1 Y0 o - (setq ss (ssget))
) P0 T/ f7 ?5 n# A8 C* G7 ` - (SETQ UL1(GETSTRING "\nLayer to move entities to : ")). h* C4 K0 J* H+ Q
- (setq counter 0)
3 m0 H& t$ B" Y: y! m. s% t; E+ n - (prompt "Moving to layer.....")(princ ul1)" g( j) e' [! V6 Z+ Z c* J
- (setq e (ssname ss counter))
0 k* M9 g; t$ Q+ R - (setq l (cdr (assoc 8 (entget e))))
! q b3 k/ x& b- X: c! b( Z4 P - (setq S (ssget "X" (list (cons 8 l))))
7 o4 A+ h7 p/ f( T2 a% T# e - (command "CHANGE" ss "" "P" "LA" UL1 ""). d! H, x7 k( h, V& U
- (setq counter (+ counter 1))
7 x) Y2 P; m4 m/ o - (princ)
, @7 L5 p4 p/ ^" H3 W% x6 H - ) * k# A$ u/ W2 s0 m) n' d7 x4 i
- " n: L0 c. K$ Q: l8 ?1 S; ]
- ;;; ================================ GHI CHU ============================3 n% m$ f# a5 l% x9 f; u
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========' p1 H3 g9 S; O, I' G5 d+ u" F+ ]
- ;;; =======================Thuong Dung Font Romant.vnh===================9 |# R/ K8 J+ H0 q' P4 ^
- ! F* {$ q0 O; \4 k
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
" i8 [- I7 ~0 X - (setq oer *error* *error* err2)
, `9 z( \, R) `8 q/ h. M2 l0 u - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
" ~0 e7 n, ~& j* r' B4 r* w - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))# t) K9 H5 S) M, l5 x) u# V
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))! I0 v4 |* z2 P% m# V
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))4 C; ^& e. z- z* n+ ]3 M* F
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))- a+ w: U0 ?! q7 {, c: p9 c
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))) y1 B9 C0 k9 V5 Y2 I" r) Q6 D
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
y0 A" D7 u# b0 w& p - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
- m0 e* r2 y% z( F' m0 o9 M - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
0 V9 i6 H) Q9 e4 ]1 S. K5 \ - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))2 |: H) u# r: K N3 H
- 6 y( @$ g5 `" ]; ]
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")); r7 A: W' c$ c e& \; y
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
. o9 v. }: a8 z+ Y& P4 I. k - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
* g; ` G, ]- M+ x# v - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))& x' k* w8 W- B9 o# R7 ?
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))1 O. S* g: Q0 @
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))' N5 m3 @: g/ \) l( N7 w/ ~3 n' a
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))1 E- B' X' _ i# p, D( h
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
/ R `* x: k5 n3 k" h9 e/ Q& H U -
4 b0 t; P5 r! l f& a3 b4 a; o - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))3 k7 K" M+ [* ^! {7 {
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
$ d) \) B) z& k% O - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
" |* ~4 X, o8 e( @+ R - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))1 g7 R- F# X( r' N ^# ]+ m
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
4 C. E n( L$ y/ [7 C1 [ - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
/ k" t' ? j0 \ - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))$ {* S1 t2 i: S+ a" r1 |& E
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))* U* C$ w9 W* v
- (setq pta (getpoint
. u* |8 ^ f( m; r# h' }1 q5 V- q - "\nPick first corner. : "))( M9 Z- _; |# ^5 E4 W% c) ^
- (setq ptb (getcorner pta( C, I$ Q' K; ?
- "\nPick second corner. : "))' w, l/ j3 `% i3 }% Z9 M: W) z5 {1 r/ D
- (setq ptc (list (car ptb)(cadr pta)))3 T; D' U6 d8 Z( B6 X
- (setq ptd (list (car pta)(cadr ptb)))
0 {2 Z2 ?" g+ \* f% T+ I - (setq ang (angle pta ptb))$ O9 u0 A! u0 o. b
- (setq d1 (/(distance pta ptb) 2))
& ]9 p4 `# u* y& c - (setq cp (polar pta (- ang (dtr 0)) d1))/ A2 @# \( q$ _) Q; O: ]1 G
- (setq X (distance pta ptc))) R5 f' m. P, }: s! q9 s
- (setq Y (distance pta ptd)). `+ E# t, ?: I4 ]& e9 o. f; b$ p! p
- (setq X1 (rtos x 2 1))
7 \1 e$ |; P# G6 |- A, e& \ - (setq Y1 (rtos y 2 1))
7 t9 j) F U' O' k r: B - (setq rmsz (strcat "(" X1 " x " Y1 ")"))8 O, M! g& | \) G, D1 h4 l
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
7 @' R- V) v( C- c3 N7 k - (defun dtr (angg)8 a2 u9 O d. {+ B% i
- (* pi (/ angg 180.0)))
9 y4 Z! r9 a/ v# n: z" z
( K2 U4 e. u: S- (defun c:WS (/ pta ptb rmsz pl1)
1 b: A$ y4 G: P - (setq oer *error* *error* err2)
0 s, K% Z6 R5 F - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
0 Z% H8 B+ W/ F' X" T0 G5 d - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))/ w9 U, S* z* D8 W
- 3 \, O: q! e/ _; q/ l# [
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))9 x" H& U( Q6 ^. d8 A( F' ^5 ]
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))4 B/ ?3 F3 u0 `$ q
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))' a& @5 {$ u& O" N4 l
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))% s; i3 E2 `. E5 V' v
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))) F/ P7 D3 J. k8 \1 M6 F* E
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
) n$ n& m4 B7 ^5 x* Y: R% l! A# f- I - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n")). o! C7 k: r/ D; t/ G" M
- $ e# F0 ?! `& `) H$ B; \
- (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"))
# g4 S& m! r) V+ @+ } - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
o3 \+ b+ k" g/ X( p - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))& m7 V7 D3 ^$ X- f) [) b- h
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))5 a/ T3 h7 f9 D4 w, n
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))- M2 P1 A2 G2 j7 _/ v/ o/ { L
- (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"))
& P% ^' _2 Q2 G3 V - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
8 [0 V% F! N, }( i9 F1 g$ M5 g - (setq pta (getpoint5 {) Q4 o" E! J& | f& ~% w
- "\nPick first corner. : "))- C% h" T' S' D- t
- (setq ptb (getcorner pta! ^$ I @ e; d" K
- "\nPick second corner. : "))6 y, S' [* N7 ]0 i6 Z1 W
- (setq ptc (list (car ptb)(cadr pta)))
% y# e! z: ]8 v1 h5 U3 m: ]6 v, [ - (setq ptd (list (car pta)(cadr ptb)))& A" ]4 q. _& b. K5 C
- (setq ang (angle pta ptb))
' p8 a n, d- }8 ~( Q0 c' w - (setq d1 (/(distance pta ptb) 2))
. D% a% |7 Y% {) d3 x$ n4 V- H - (setq cp (polar pta (- ang (dtr 0)) d1))/ A0 ~8 g/ Q7 |8 _" C
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz)) v: Q5 a; ^; _( r" X# P6 L3 B% R
- (defun dtr (angg)7 x! o" p* y5 }1 O& x
- (* pi (/ angg 180.0)))7 d4 L" r- ~; H. \2 `( e! V. x. j
) E- c) P6 S( b J+ Z. _/ b( R- ;;; ================================ GHI CHU ============================
! ?: Z+ U7 V/ U3 N4 Q3 ~' D - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
* g; o+ Y( q! i' s - ;;; =======================Thuong Dung Font Romant.vnh===================5 n. s1 S2 [4 U, {+ _7 W- E
2 x2 f. Q5 z/ x7 Z- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)) D9 Z; i: f& F# j. |9 R+ ?" _
- (setq oer *error* *error* err2)
8 \- a$ ?4 l+ V& O% E - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")9 D; T. n7 @% B, B8 C! X
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))4 }- ^1 k* M: z
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))- ^$ F) Y3 Z4 ~7 ?$ }$ D$ I6 q
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
% B. ^4 O* h0 s! _5 Y: \ - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p")), v$ a; |. H" C# B) o# Z
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))1 o: O; {$ U1 l1 _( i& P
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
% [- ?! j+ ^6 m1 f. J$ N5 q - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))3 x6 i. `/ P) B- `) ~
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))) U! O2 p. }+ q4 J
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
) k% T) w# l, i4 P: y9 N - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
- Q" t R' \ E* Q$ g; k9 i - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
% M( D( X+ v3 u( f, e - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))3 y! e) w7 E( `2 j0 f
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))- s7 D7 \9 R( n2 T
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
7 |) K5 g9 {4 b: W9 T y; ?6 } - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
7 l& Y) |! @6 O8 J( b - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
- y R# A, u* `$ j* \0 e - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
6 L/ ^* w* z1 s9 Q9 X) I - (setq pta (getpoint
4 [3 g) t' S* y; ^: S- |% x$ Y - "\nPick first corner. : "))) ]" T) H6 ^# _5 V: h
- (setq ptb (getcorner pta
+ I& N' s! M8 Z8 G/ |3 t' F - "\nPick second corner. : "))/ n8 Z* l# e6 E+ {% u
- (setq ptc (list (car ptb)(cadr pta)))
3 w1 L6 M0 l% `; ~! M' G- |; m7 c - (setq ptd (list (car pta)(cadr ptb)))
" r5 L2 W$ v! M' t6 X - (setq ang (angle pta ptb))
$ O6 `0 \* ]+ ^3 ^; H$ t" l - (setq d1 (/(distance pta ptb) 2))
$ V! n5 W! X: w& p - (setq cp (polar pta (- ang (dtr 0)) d1))7 {- v$ V V! |) Z6 k' e
- (setq X (distance pta ptc))
; g+ ~2 x1 Q3 z% g0 U - (setq Y (distance pta ptd)), I. N2 t* F2 k8 K" \2 k" J
- (setq X1 (rtos x 2 1))
# W0 L& n$ k- ? - (setq Y1 (rtos y 2 1))
. M! c! y, t5 E; _7 x2 K" n - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
% G9 C1 j, z4 \1 I Y' k6 h& S9 v# Q - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
& J o& K6 Q! T- q1 w- @1 ? - (defun dtr (angg)* X! K) `% a% X' t# b2 W" T0 G2 l
- (* pi (/ angg 180.0)))4 |* l, L# |4 h
2 \( w, H" F1 l0 U3 N- ;;; ================================ GHI CHU ============================) ^, `" M5 l0 g9 z
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
5 Q$ l! H/ `5 R; ^# k* ] - ;;; =======================Thuong Dung Font Romant.vnh===================% z3 ]/ L$ t& B6 A7 w; g, h
- 3 |' g. k0 A, [; L& r. [
- (defun c:GS (/ a b c d)
' Z6 \) ]9 I4 A' j' L - (graphscr)( z) x$ q0 B. b" x/ b
- (prompt "\nSelect text to set style....")( X' ?* q- q' @% H! r- Q
- (setq a (entsel))6 K; i1 F# O" E* T
- (setq b (entget (car a)))
: O6 W0 V) o1 w1 n - (setq c (cdr (assoc 7 b)))
. L% }; e- I, p. Z8 l; E+ Q - (setq d (cdr (assoc 40 b)))
\ k" h/ ^6 {; @* j9 v - (command "style" c "" d "" "" "" ""))
* A2 d, W9 i2 d8 D: O - (princ "\nType GS to set text style.")
" O7 H# L: K, U0 Q0 R& O8 F
: R3 b! W) k2 v' ]# Z: e- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)( R4 v e2 \6 @, o" A6 P
- (setq olderr *error* *error* myerror)
. m @* a5 v# \: e9 c - (setq ocmd (getvar "cmdecho"))
* A" B! k, P. a- \9 q1 [ - (setq oblp (getvar "blipmode"))8 h6 j* y, _4 ^# j; `$ H: m" E5 s
- (setvar "cmdecho" 0)
$ Z" s2 ?' t0 Z) S0 l - (initget 1) ;3D point can't be null! O# |/ h4 \" @1 }- C
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: "))): z, a Z( N9 f+ n
- (setvar "ORTHOMODE" 1)1 M; ?# ^2 D K1 n2 @# @4 o9 S
- (initget 7) ;Length can't be 0, neg, or null
) r- ?' t" v# L# K4 C - (Setq l (getdist pt1 "\nLength: "))
) n% s5 \6 p+ [( F# l. ] - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))2 P; I7 \0 U8 a/ I' f' W. j0 d
- (grdraw pt1 pt2 2)
0 m) G: t) n+ g) X% S8 Y - (initget 7 "Square") ;Width can't be 0, neg, or null
: A! J6 v- O" _! ? - (setq w (getdist pt1 "\nSquare/<Width>: "))
% `( J6 K G* o" J - (if (= w "Square")
2 V- _, E5 Z2 @& L - (setq w l)5 I' G& E) s" ~* y V
- )
+ s$ L3 }1 L2 R/ U$ U - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2))). L' ^' B! M, L d* x0 \; Y9 f( `0 |* b
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
, m- P9 G3 l* n - (grdraw pt2 pt3 2)$ f! x' G5 }$ U& U; v; @
- (grdraw pt3 pt4 2); D/ D) g) s& V& D9 g7 \& I# A ]+ A
- (grdraw pt4 pt1 2) m$ i1 ^1 j c) l. {
- (setvar "ORTHOMODE" 0): ?( m# \% N5 g X
- (command "pline" pt1 pt2 pt3 pt4 "close")
2 M2 A& {2 F5 y- `) Z* X - (setvar "cmdecho" ocmd)) Z T# k+ U! h) |' c
- (setvar "blipmode" oblp)* Q- N1 q+ ^* R1 i% }8 _8 W
- (setq *error* olderr) ; Restore old *error* handler
9 ~8 I1 B$ Z8 s; g/ F - (princ)
$ d) L$ b* B' X7 {6 t - )
' Q5 w) C J4 W( {4 P. n - ' M3 }$ D& u) w9 e* i
- (defun c:SG (/ ent pt1 pt2 ang)
6 z( d* q1 B$ J5 q* f& l - (setq cmd (getvar "cmdecho"))
% Y+ Z; w' f7 d% _; [( f4 O - (setvar "cmdecho" 1)
4 z/ |4 ], x6 A6 L8 D - (prompt (strcat"\nSnap angle will be set to angle of line"))
1 v- h( X9 ?. M# ?) z5 |7 L( K5 m$ O - (setq ent (entget (car (entsel))))3 {1 N9 o' R* {+ @
- (setq pt1 (cdr (assoc 10 ent)))
5 Q7 D; g% t X) \: D2 x" v$ R! X - (setq pt2 (cdr (assoc 11 ent)))- \ e& L9 X1 @. k) j D. Q
- (setq ang (angle pt1 pt2))5 U5 f' H+ h* \8 f7 r F. H) Z
- (setq ang (/ (* ang 180.0) pi))
9 x# X9 L4 e; t/ ]) Z - (setvar "cmdecho" 0)- b* H! m) d+ j3 i2 R+ o, m; P
- (command "setvar" "snapang" ang)
0 D" A E3 j- R - (setvar "cmdecho" cmd)
; Y( L6 \2 X) D, w2 ~ - )* w+ p' F( O4 J9 }) c- b; G
. p, Q2 g$ p$ V% ~- (defun C:TG (); c8 ]2 g6 [% d, H) l
- (initget "Increase New")& I1 e; _* F; {2 \
- (setq ans (getkword "Increase/<New>: "))2 B1 K2 _6 @* N0 F. I3 A. e) c I
- (modang)4 U' P; a. |$ Y1 ~. f
- )
, q/ s- P- G* p; ^5 T0 H - (defun modang (/ ang ss ca e na ssl)
& l* y% D; C9 u- A4 V+ I2 `* C% | - (if (= ans "Increase")
P6 U0 s( s, E! a7 O+ }# j% W1 i - (princ "\nIncrease angle for text by: ")2 z- V' d/ B! a3 l0 |( Q& E
- (princ "\nNew angle for text: "). p- H1 Z$ G3 h3 o
- )8 ]; d8 F$ l3 y' E% y- A
- (setq ang (getreal)): `" |& C; a2 V* @3 v9 i; B
- (setq ang (* (/ ang 180) pi))
+ {* ~! h) q5 O$ q! c) Z* F - (setq ss (ssget))
% g& w; X' A g - (setq ca 0 ssl (sslength ss))
4 m' y: w- ]* w# D" ]6 ]% ? - (while (< ca ssl); [ x% I8 D$ J3 |- ?+ S: C: J
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca)))))), x; |: O4 v/ u7 I7 w0 l
- (progn
" f1 t; ], k7 H2 e! M0 C3 e - (if (= ans "Increase")# d# I3 M+ L+ L4 v
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))* t* q! q4 b; O& N) E6 ~' N- \. z
- (setq na (cons 50 ang))
9 \/ M2 W5 e+ w. h - )2 A8 W+ c- x8 w, N* F1 o9 T6 E. t
- (setq e (subst na (assoc 50 e) e))
$ M# f# Y; K* V4 k+ X - (entmod e) D! Z# \; M4 D
- (setq ca (1+ ca))0 r* b- k" X. X* r: Z+ D6 h# b; |
- )' B# z1 c( L# f, X( k, b" a$ }
- )" \. T4 n9 d- s: G, {
- ), X$ l8 W$ F7 s; y: S1 H$ {
- (terpri)
) a4 O' u/ }' P - )
% V! y# {) w% e! c& R - 6 F* ~- l6 h) _0 H1 ~9 [
- 1 s% X( z7 ?4 d1 `9 m
- (defun c:WL ()
3 e1 C0 M, Z. K/ B2 e( {) g% \ - (setvar "cmdecho" 0)/ @# i% ] q6 K- m) r4 n1 I/ p8 \* H
- (setq a 1)6 v9 S; Z* v$ W1 A2 U
- (prompt "\nSelect Polylines to change: ")
% C. K0 w, w# q6 D! E - (while (/= a nil)3 P( y% J' g5 Q9 @
- (progn
3 v8 U( B' a7 n0 p0 X - (setq a (entsel))
$ T& w& O6 T" P3 N# o b1 v- R - (if (/= a nil)
% I; F0 z3 B) x m/ d; c& E9 }7 u - (progn' M+ f3 |$ _# b
- (setq b (entget (car a)))7 z- z; a% O) Z5 ]6 x
- (setq c (cdr (assoc 40 b)))
; S ^( K' q# {# a/ Z/ l - (princ c)$ N! b, } T$ z
- (command "pedit"a"w""lw""")/ M3 P5 W7 J; _3 w
- ))))
5 ~0 M4 s$ V7 S3 R7 R - (princ)
3 l7 m" r! H. ~! V - )
7 B ^1 L. n* K0 ^( y( x - / q: Q8 E3 Z X4 U0 u B
- ;;; ================================ TEXT FIT ============================" i' s) y7 B2 F F6 _
- " f" l6 {$ A; `. I% u7 W
- (Defun c:FT ( )
+ a; w) A; ^- j$ k - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
7 X9 h A, d* e* D( \9 e - (Defun LL-xyz (arg) (CAR (TextBox arg)) )
3 x) s( l! y! r, Y* T, a+ p - (Defun UR-x (arg) (CAADR (TextBox arg)) )0 P0 A8 V' ]7 e: b
- (Defun LL-y (arg) (CADAR (TextBox arg)) )- O# T: C, a E7 Y% ]8 N8 l6 o& A
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
& k* k1 ^ }/ Q - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
C& S g% |% N, T: E3 g2 z$ N - Textent (If ename (EntGet ename)) )
* C* _& \( c# @. F q3 H+ ^. { - (If (= (CDR (Assoc 0 textent)) "TEXT") u+ @, P6 y" ?
- (Progn (initget 0 "Start")/ M: c7 ^1 `3 _+ \/ K9 [& P
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )3 Z9 i- U4 s# w( k2 `7 X" l
- (setsnapang Textent) ;set snap along text entity; W D/ V1 ]/ p' w
- (setvar "ORTHOMODE" 1) ;drag along the text
q) f4 v/ F" i+ B* c2 V - (setq
) Q0 m. U1 h& a# ~) v - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )7 T0 n0 }& B% W
- (setvar "snapang" 0)
- Z8 T- s* Z1 ?7 W; x+ {( E, { - (cond7 Z$ ]7 }! n! l
- ((= (type TMP) 'STR) ;;new starting point to be selected4 |# y* l" o- E0 {! f9 n
- (setq Start (getpoint "\nPick new starting point: "))
2 Z% w2 M* e; h2 U/ H - (if Start (progn
+ ^5 Z3 G& {( G- a) F3 F0 R - (command "_UCS" "_E" (cdr (assoc -1 textent)))8 q. P% `0 H# v
- (setvar "ORTHOMODE" 1)
) I( X0 d6 s# o; U( ~ G - (setq NewPt
- b. L, w5 B% W# l9 V0 Z - (if Start
( O! ?. \+ L, X2 ^$ q# ~% I - (getpoint (trans Start 0 1) " ending point: ") nil ) )0 v7 V9 \$ C$ D( v" f: c
- (if NewPt (setq NewPt (trans NewPt 1 0)))
6 g7 P+ O1 q. E/ T& ]. s) A0 v - (setvar "ORTHOMODE" 0)0 V/ E& E$ a: p( X5 f( r- x* T
- (command "_UCS" "_W") ) ) )
: Y! x' S' }& o - ((not (null TMP)) ;;new ending point selected9 i4 Z& n) n" b3 v/ I/ o9 E# p- K
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) ): o; n+ y3 T: t8 o% D9 }
- (t (setq Start nil NewPt nil) ) )
% Y) Q9 N) E2 M+ x' [+ u - (if (and Start NewPt) (progn9 T, N9 ~; i, E0 R4 s( O; j( V
- (setq Val (Assoc 41 Textent) ;;current width factor) A# R; |" b* i: R3 b
- Val (if Val (cdr Val) 1.0) LTC_% . v* |) [1 c1 V; I& J
- (* (/ (Distance Start NewPt) NewEnd ) Val )
! G- ?, B# D9 V - textent (Subst (cons 41 LTC_%)8 ^- `1 A2 s6 M8 f/ y q
- (assoc 41 textent) textent)" b. U8 l: E9 i
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
% ?+ n* E( B7 b" Z8 R - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
, Q! t; [- N4 [4 _* F - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ)). ^/ X: n" E+ }9 D7 g! g5 ?
- : }5 O$ s- C: r+ F
- ;=====================================================================
9 J! v5 r1 l4 `4 }6 x+ n# c1 J' Z - ;=========================COPY + ROTATE ==============================. t7 r# S; W' V
- ;=====================================================================' |+ m9 I% p. @1 ?' j# ^: J b( B
- 6 p0 y% |9 m4 x) O
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
3 T$ B3 t5 h7 P ` - (setq olderr *error*) L0 K7 D% r9 V! Z+ r& C
- *error* croerr)- ~8 i% V# F/ ^! B% a
- (setq cm (getvar "cmdecho"))* t- N" T4 Z- r6 c) @, B$ ~4 R
- (setvar "cmdecho" 0)! U V2 R) G6 j1 c1 y- `/ c
- (setq loop t)5 g6 k. W7 z3 x
- (while (not (setq ss1 (ssget))))
3 W4 A+ H- z3 V. k7 u) I& u: j - (initget 1 "Multiple")' h P3 a2 _& }* C8 a1 W
- (setq bp (getpoint "\nBase point or displacement>/Multiple: ")). J5 u Y( r' y2 \" ^
- (if (= bp "Multiple")
6 q" ~" w: v" p* g- r( u0 P - (progn A3 D9 d6 U$ l% Q9 g/ U( a; n
- (setq bp (getpoint "\nBase point: "))8 r4 I. `, y6 b( \* H" h
- (setq mult t)
7 D' L" Y- g# D - )4 F5 \' R; s' }0 e# I1 q% b
- )! d. N3 `' Z3 m: r$ }+ Y
- (while loop
8 G' {! w/ F4 [# X0 D# V6 v - (setq loop mult)- y/ ~+ o" N) {0 ^7 j0 m
- (setq lent (lastent))/ ?+ c! \# {+ B y
- (command ".copy" ss1 "" bp bp)
+ i5 @ O2 X$ h& F$ E - (setq ss2 (lss lent)), b8 [/ _, t; z0 d, p% l/ L
- (setq lp1 (getvar "lastpoint"))+ G0 b7 M! Q4 L- b! _/ |" f
- (prompt "\nSecond point of displacement: ")+ `' x4 ]2 S$ V6 [, y* v
- (command ".move" ss2 "" bp pause)
6 h( |7 y% a, a7 U( {, Z& P" q8 h5 j - (setq lp2 (getvar "lastpoint"))% C+ [# ~3 x& u% Y1 X0 W; H
- (redss ss1): i9 s0 |- f( U9 E4 J7 c3 J+ V
- (if (and (not mult)
$ Y/ Q( ~8 z/ |5 L, H - (= (distance lp1 lp2) 0)/ Z: f0 h/ P/ J: u" C; G
- )
, Q: w8 R" O8 _ - (setq lp2 (getpoint "\nRotation Point: "))
2 l5 F1 G$ m; ~6 J/ |3 e3 J5 a - ) L) ?' V1 E- G4 H$ Q! h! X
- (if mult) l. K2 Q7 M5 d2 G; @, a+ `
- (prompt "\nRotation angle ")2 e- r4 C: @* `* }5 |
- (prompt "\nReference/<Rotation angle>: ")
$ o6 w+ o# M) Z C2 u4 N9 _ - )8 U" J8 [/ _# t7 O+ B
- (command ".rotate" ss2 "" lp2 pause)/ @( d7 l! m7 ]+ R, \. {- a
- )8 N" z/ z3 T* O/ _$ [% }/ U& }
- (setvar "CMDECHO" cm)
( U2 y5 R7 l) [. z% y' V - (setq *error* olderr)
7 X( V+ E% t( Y5 B - (princ)9 p. E* L7 W) p6 D
- )9 O0 I3 B# _5 v: \/ k/ [. q% b
- (princ)
. M% r( n; O. Y- F - (defun croerr (s) % ^7 c& G% S* L5 y- ]$ h+ i- z
- (if (/= s "Function cancelled")
3 i8 g" p9 {! A! c5 k - (princ (strcat "\nError: " s))! U: x4 y0 [& W/ `. e
- ) ( o; ]4 y$ b2 [, H0 E/ s0 r
- (setq S nil)+ B4 `! G! Y+ ?& l8 K3 S- {
- (setvar "CMDECHO" cm)
/ [8 U' }% D5 v& Z7 a - (setq *error* olderr)
: I y$ T. Z' \* D: K - (princ)
9 [7 p" ~. p" n$ ? - )0 N+ ^" \3 w" l5 h. D# O2 O& P
- (defun lastent (/ a b)
3 g d$ @! }( v: h) ]: h - (if (setq a (entlast))
4 Y' f" r2 B8 F& p8 o: ^2 B - (while (setq b (entnext a))
$ ~. t' I v# P - (setq a b)
1 Q- M6 _% q% ~2 | - )( S; b( s& Z8 c4 l( w' n9 l& H
- )
* Y. b( r. t! B2 s! P( I - a. K* }/ k4 w4 n6 @% M. D3 R
- )
4 Q3 F2 {# z( P# z _* f - (defun redss (ss / en i)
1 l" R9 P6 v& |6 j0 K& ^ - (setq i 0)9 N2 M3 e4 ?) c( X. l- M, A
- (while (setq en (ssname ss i))
; h- c) [6 t- Z# M& @, q - (redraw en 1)
* n* ?- B' `! C8 M - (setq i (1+ i))% R! g$ F: z. X$ g
- ); Q1 V5 T1 ~$ Y1 s
- ), V8 o$ Z2 n( V* Q: Z l
- (defun lss (en / sels ed) k. y& g$ U4 h8 Z6 j7 h
- (setq sels (ssadd))) @# y* U8 s g* X- `! E
- (while (/= en nil)" T4 ^6 p6 |* V
- (if (setq en (entnext en)) (setq ed (entget en)))6 x) T* f+ U7 I, P; \1 w4 I$ B
- (if (/= en nil) (setq sels (ssadd en sels)))
& ~8 X$ [" V- A6 M# Q - (if (or (= (cdr (assoc 0 ed)) "Polyline")
! z( x8 n5 {0 A - (= (cdr (assoc 0 ed)) "Insert")4 u S6 l) e, A
- )
% O+ |4 A* y! x8 c! k# U' [" Z - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))7 G% \6 ^) V! }/ c% }% ]2 S# M6 C
- ); c3 q4 b a' R f3 c# O. m" z
- )
0 L) T3 l& k+ c# Z - sels
9 _# D/ ^) A- k - )
# {: n# d( E+ i2 B& {$ s& M4 u! e - ' [. M. [, s! |( ]
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================4 R4 u. W0 h# n1 J; [
- ( L0 H/ d# _ ~
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
9 L- \# X" o# P* m - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))& S8 ]: j- G/ ?: d+ v$ F: i- Z! y
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))% {5 z' U( n" o* i& K! a
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
' g, p5 I, z& F1 u0 q - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
, q; i* h5 v8 D6 v w2 l: x - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
- X; i8 M% I: d3 w& I+ U - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))* W: X" H0 F9 W: u. I% }/ _
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))% N+ |! L3 Q4 i2 o; [
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))1 y/ H0 x" L3 B ^' k6 a' {8 W z5 W
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
: y; A+ E- S/ S* z0 s7 P# o - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))* x- ^0 c0 u" a5 `: [
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
8 H4 U7 k' ?3 p7 k1 q1 S - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))/ ^& Y& G5 r! y2 ~
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
: L* N8 k1 O7 O4 R* r& g - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))0 U, ?3 P" g1 X! ^
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))( p, J+ |5 r* l- ]4 [2 `7 s* u
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
* |# I- w5 \$ U) R8 n: J9 D - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))* ]; ?1 t5 j: O5 i2 ^* K/ E7 B
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
* l* Z5 g! C% p$ _( H( Z
8 Z# Y" x. X9 r4 G# ~/ o0 q- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
& \" ~! i8 w1 T8 t - ( q4 s. @; K3 h( \8 S4 n3 M
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============, U7 P! @. d4 V& O' ~% K
& t1 @1 E2 l, }( [- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
$ O6 U3 I% F4 e - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")$ C1 W0 Z( H. b* ^- y% n5 q, E
) Z4 K; w s0 b) I5 R- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===1 G8 W; ^: [3 L! O+ N3 U8 e: K
: K: I' P( l, a7 g& N/ @ V5 `' B- ;(DEFUN C:netxuatanh ()' R% h7 i. x" A0 c1 U% c1 l
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""0 \" P- y" s9 d s
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""$ M9 S/ ?) q6 b+ X7 x
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""
( T0 N$ V9 x/ E1 e; A! P: D: v - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
) W( e7 N( P& U* e% O# c - "M" "DIM" "C" "1" "" "Lw" "0.6" ""% }! \# I5 Y7 f4 C
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""
2 Q. {5 g* I1 e6 C - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" """ {; j$ ]6 R" L2 y
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
* n) q+ n* E0 ^6 m [ - "M" "COT" "C" "2" "" "Lw" "2" ""
0 o0 N& s. w! Z- k1 V% { - "M" "Defpoints" "C" "7" ""
* T( F4 o% l5 r - "M" "0" "C" "3" "" "Lw" "0.5" "") G3 M; [7 ]& H# b/ v' _4 u0 b
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""0 |/ K1 F& ~' j( F3 _. L, j! y3 v( `
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""
& S3 i3 z; b$ e7 o - ; "M" "3" "C" "8" "" "Lw" "0.35" ""
5 M; |# r% |2 V) R% A - ; "M" "4" "C" "4" "" "Lw" "0.8" ""
- {. f" b! c) \$ D, Y! w - ; "M" "6" "C" "6" "" "Lw" "0.35" ""
8 A' ?7 M9 Y+ A, x9 }& B - ; "M" "7" "C" "7" "" "Lw" "0.4" ""
7 ]* N% R+ b) z - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
m1 _: @) [" {8 G/ l( m - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
4 C4 a! r7 w1 N2 J+ U - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""; C6 L, P; q7 f8 \
- "M" "KE" "C" "8" "" "Lw" "0.3" ""9 P2 u1 B# @/ m8 b" g
- "M" "KT" "C" "9" "" "Lw" "0.35" ""' p0 D" u: M# [
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
8 h1 m& d; t% n4 t1 I7 D - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""' h" c$ O8 O' z. F
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""
* b4 h0 J9 C" s( D5 e* \ - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""* f% S- F8 L- l; A+ R
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""9 G+ S& p+ U8 H9 y: v5 l
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
) Q; Y/ \8 J4 t! i7 e6 O8 ^ - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""9 B. [' h0 V' \3 \! h
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
" Z& P1 C7 a* r6 w7 S3 r& F - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""- {9 b9 w/ v$ B1 Z0 O" P8 e
- ! P8 k1 @: c! [# Q; v5 W
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===+ I' t1 j6 E: u. ~3 V& N1 g
. K* H, Z- Y1 H- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "") e' C. z- N3 _$ N
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
, a, M0 G g1 H; X: W: x5 c - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""( `1 {/ N! u" y! w/ m! e, }
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""5 K" O* r: Q& v$ I/ N' s5 Z( E
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
Z+ Z0 {6 U6 A. N; V - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
8 N" `: H7 q2 W; h, c" ~) J0 J
. Q* M7 A2 u3 u( ?! s9 M- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======1 E& r, S* F: c! a3 n
- ;===================================30|04|2024==============================
& Z3 o+ |- y3 h/ s# `7 W
) @8 ]- W# s) c- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
1 X7 K; @6 Y0 X6 N8 E( Z, ] - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
- K3 O3 ~9 }2 j9 K! v- x' W - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" ): f0 g8 f6 t6 _! R+ u
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )) C1 U# x! ]' I1 B" W$ x
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
( [9 J R' p% ]+ I Q8 i' H - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
8 E$ n g" p5 y2 S - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
" D: o6 u$ ]( z i+ W' h - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
' {$ G5 B" ]8 z* m - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )' d3 G) |: o& N) r, K E4 t- E
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ): q2 t3 l% d1 G# m* e4 X4 l
# X9 o0 | ~: L( Y- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=8 H5 S% z: d A" n9 r6 |3 G
- ;===================================17|10|2024===================================
! C+ c8 x* T# ~5 T - 1 @8 D! j. V8 U3 y
- (Command "DIMTXSTY" "ROMANT-DIM" )
3 c; Y' y% D2 i3 C: |; Y% y - (Command "DIMBLK" "" "Closed" )4 `2 l r$ v* s9 T8 q
S! x5 }0 M' } {1 J* y- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=5 {$ m* t: Z# o9 g' j8 i+ W3 J
- ;===================================17|10|2024===================================& e1 X4 ^: n# d1 P/ U
x2 p9 H2 H, P; r3 u$ J5 Y- ;(Command "-units" "2" "8" "1" "8" "" "N")
! ^) X6 b: i0 G f/ ] - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)' @; e5 h t% K
) _8 U. E( C: K! u+ [* I- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
- z7 O8 ?7 d3 O1 O - ;===================================17|10|2024===================================0 H: L% z# h4 {% m9 ?& z
. [! W. o" u6 |+ r& S e7 h# [- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====4 {6 f" G5 M- n! W& a: o
0 O& p L# g# `. X4 X, L5 d. L- ;======================== DAT NET IN & TI LE BAN VE =============================: I2 `! ^+ U# p( s# x4 x
- 3 s8 G i. L" u( T& T9 N4 B3 z
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
# t) |! g. S. |3 k/ h Y - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
5 }: Z _0 d: g - ;=============================11|07|2025==============================7 K& z+ L4 ~2 T8 T' x
- ;Ti Le Ban Ve - 1 : 100
/ U* b8 H' Y# d: g - (Defun c:kta4 ()# ]& V7 Z5 n- a. X2 \
- (setq mv_sc 100);Ti le ban ve2 |/ t' I ^5 c r
- (setq x4 297)
; E- x+ g" N1 q' K* w7 ~: @8 s! E - (setq y4 210)
; Q2 t( Z( u& }8 C0 o" B+ P - (setq x4 (* mv_sc x4) . D, s0 Z* X E7 K: L; P. W
- y4 (* mv_sc y4) )) v$ N1 ~2 y, w4 ?; o" V. q
- (command
q( n" l& x% ^6 c* S9 f! | - "LIMITS" "0,0" (list x4 y4)
M% J5 f0 q& O - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"' ], j7 `/ R$ S- t8 Y& o$ P& q9 j
- ;Khung CHU NHAT Chinh ' n( O1 n/ h$ x8 @7 T- p( V
- "RECTANG" "500,500" "@28700,20000"' N: _( f$ M! I W
- "RECTANG" "700,700" "@28300,19600"+ h6 W3 G D! y
- ;Khung Ten Chung
/ J- ~1 J7 y' A8 C) E. m8 a" } - "RECTANG" "700,700" "@8000,1250"
" U# E3 s, k4 J7 m - "RECTANG" "700,700" "@17300,2500"
2 w% } m* \5 J! y# @: g - ;Ten Ban Ve9 V6 B+ A( {4 @1 T; z; C2 P1 v
- "RECTANG" "18000,700" "@11000,1250"7 X$ F: U9 k5 B
- "RECTANG" "18000,700" "@11000,2500"* O" D- T+ Q% G
- ;Khung Ti Le + Ngay Thang Nam
* r6 f6 H- D+ _# H0 ~ - "RECTANG" "22500,700" "@2000,2500"( d- [) @- W# o
- ;Khung CHU TRI9 y R# w% e1 W) l5 R9 o! i
- "RECTANG" "8700,700" "@3800,2500"- a4 d, i' S) V+ g% a# g
- "ZOOM" "_a" ))
& d+ ]- ^$ Z. v% e - ;=====================================================================/ P [8 D. Y' \% Z% n+ o3 g
- ;Ti Le Ban Ve - 1 : 100
( I) s* L, c' | - (Defun c:kt4a ()2 S! f: ~& r, `* z3 g7 `' \, f
- (setq mv_sc 100);Ti le ban ve
$ }7 G: M& u( s; }/ J - (setq x4 297); }: T, r/ e( P! I) u! L
- (setq y4 210)
2 R: z1 B' T; I - (setq x4 (* mv_sc x4) ! r! L8 N4 s- s" U$ g/ _+ c; N. {
- y4 (* mv_sc y4) )
2 O: {5 ~: E9 J; l+ D2 e - (command
5 s& x, S( W$ E( V- B6 Q2 y - "LIMITS" "0,0" (list x4 y4), E% n1 H9 F% k+ _0 f! R
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
! I2 V, w; A) `; |# _' E - ;Khung CHU NHAT Chinh 3 k; \' q- M' A4 g# j' z: |+ t4 c$ \
- "RECTANG" "2000,500" "@27200,20000"
" h. \6 P, N. Z$ h% t1 ]8 q1 v, d - "RECTANG" "2200,700" "@26800,19600"
2 Y9 ?# t' E2 o6 M0 z9 d - ;Khung Ten Chung8 r' f6 J! G4 z6 v$ J
- "RECTANG" "2200,700" "@6500,1250"4 q9 X3 {5 o. N$ [5 ~2 B, D
- "RECTANG" "2200,700" "@15800,2500"
5 e8 `2 s8 _ ~+ y f' r) u# M( Z - ;Ten Ban Ve
( U' z- m2 ]3 @- i( Y$ e - "RECTANG" "18000,700" "@11000,1250"2 u9 l+ `# h. o0 T) o
- "RECTANG" "18000,700" "@11000,2500". W/ ]4 V: W5 `
- ;Khung Ti Le + Ngay Thang Nam
M8 C! C1 o' l( h9 ` - "RECTANG" "22500,700" "@2000,2500"
* ]/ E) q, V q# Y' j; s - ;Khung CHU TRI# t2 @/ Z( Y9 h3 M! @0 Y0 _
- "RECTANG" "8700,700" "@3800,2500") x# m# W# m6 T& ~3 ~7 U
- "ZOOM" "_a" ))" |& F; y/ ~2 _, A! Z! t7 Y& {/ e1 g
0 n/ ?- [. j5 K0 a/ Z- ;;; ============================GHI CHU Khung Ten========================
8 R% Y. R* _" _6 ~6 [. M: K - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========4 T V+ l" H( T& O
- ;;; =======================Thuong Dung Font Romant.vnh===================' l( k! b* m: q) ?3 o" _. p, O2 \: E
) m* r: r: h* `0 E% v* E" c- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
+ d2 v p3 b0 R- A - (setq oer *error* *error* err2)/ X, Q( @% [. Q+ B
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")2 j! J1 Y9 y# F( `. e/ q( c
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
( x" R% A1 X/ y* h - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))5 B- }$ P( V' e% B
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
3 J& L8 ]3 i7 R' h {8 u - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))- j8 y6 @- C+ o8 U$ P
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
9 n3 i4 j# d0 `4 r9 ?6 { - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))! T! C0 J- _3 s+ l9 a& a" L1 X
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
6 a9 k8 q4 C: D1 y: q - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
% a1 I1 Q4 J4 U0 {4 N' a - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))8 o6 B3 ~5 @( O1 G' ]1 t& ^
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))/ f; ^/ e( V% R! N
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))2 d( |# V! M: F* P3 j% Z) W1 C% ]
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))! [9 D; i9 J8 u n
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
7 j6 |: U, u) s/ B4 ~2 O - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))0 j: f" l/ t1 B4 `9 M2 }
- (setq pta (getpoint" ~7 ]- y. ]$ Q' A- B' d0 ?8 B
- "\nPick first corner. : "))' D3 r# G5 u/ J& N( ?3 T3 x
- (setq ptb (getcorner pta
6 K) F1 B- L# U) g- y# F - "\nPick second corner. : "))
) i5 ]* H) ?7 |$ L: [* Y) m - (setq ptc (list (car ptb)(cadr pta))): O$ H$ n7 q/ I- F) ^/ e
- (setq ptd (list (car pta)(cadr ptb)))
. f* v" s q# X* o* X - (setq ang (angle pta ptb)); X7 g. X/ m9 ~4 Y8 b5 T- e- M
- (setq d1 (/(distance pta ptb) 2))
. Y) V' l3 G! _' l1 E - (setq cp (polar pta (- ang (dtr 0)) d1))+ M( e3 T% y; G' z' i. L; z% i/ p
- (setq X (distance pta ptc))
. I5 {6 h$ S) c - (setq Y (distance pta ptd)), [: b5 S1 H f, _- ~
- (setq X1 (rtos x 2 1))$ P/ Q3 {' i2 ?+ T# |$ _
- (setq Y1 (rtos y 2 1))* j3 h% d8 n I! U
- (setq rmsz (strcat "(" X1 " x " Y1 ")")). ]7 ?6 g* l6 l* A+ @: `5 _: T4 F# g
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz)): \0 ^. b+ L9 a4 G% h
- (defun dtr (angg)
3 {/ S$ t1 i( `+ e' Z; l - (* pi (/ angg 180.0)))
: K( h8 e9 A F9 N - z9 R0 J* [9 x; R5 J
- ;=====================================================================# v2 U. s0 t4 @0 F3 K* n k
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================' r# p' J; ^) u o1 w) |: S
- ;=====================================================================% ?4 e4 U* ]/ w& D' M5 f
- 0 d+ A; B) C7 F1 F- n7 U4 r4 k( y
- (Defun c:a6 ()
) v8 ?9 `0 K8 r+ F% ~* i - (setq mv_sc 100);Ti le ban ve3 W) o; m' w4 l3 X
- (setq x4 74.25)
& w7 o. I6 ?( ?6 W- t, y - (setq y4 52.5)* i% V0 p$ S: l. z) k% C$ k% q
- (setq x4 (* mv_sc x4)
: I L* c: F6 f, r; W( O - y4 (* mv_sc y4) )
, H3 [+ F1 O! Z( J - (command " ?; X4 P; i& o
- "LIMITS" "0,0" (list x4 y4)
" B1 p/ Q8 P! U" R - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- I1 B9 j7 a4 Y
- "RECTANG" "125,125" "@7175,5000"* c5 J- y/ `$ W) O
- "RECTANG" "175,175" "@7075,4900"
. n9 }- c9 J2 n7 C& G) N9 e - "ZOOM" "_a" ))
, U, C8 K$ J1 @6 I8 T - ;=====================================================================
D% e* i* a7 S: \% K - (Defun c:a5 ()0 f: |0 K9 J" `
- (setq mv_sc 100);Ti le ban ve
' `+ ~6 M6 b2 E0 t" u. A - (setq x4 147.5)
5 E8 t5 u ^9 L; p* H5 C$ {: v - (setq y4 104)6 \# ?" R% B+ {
- (setq x4 (* mv_sc x4) # B7 q4 G" e$ G+ h
- y4 (* mv_sc y4) )/ i6 O# S: g. u, s3 N
- (command 1 T8 x! `1 P+ t: u2 z4 _3 c* L( f
- "LIMITS" "0,0" (list x4 y4)
7 X4 k9 C$ k$ c r) p8 V. w/ x - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C" w+ b5 z% D5 P; ?) T, A8 v
- "RECTANG" "250,250" "@14350,10000" V+ f! u3 f: t% F
- "RECTANG" "350,350" "@14150,9800"( J' ^% b- g3 n2 r4 ^! k M6 D
- "ZOOM" "_a" ))5 I$ ^$ v# G. n+ P n% Z
- ;=====================================================================
; U/ P! \1 b: O. f2 O - (Defun c:a4 (); ]- J% `1 p, L7 V' [
- (setq mv_sc 100);Ti le ban ve) L( }. F' \+ B: l( l! y9 a( I8 r
- (setq x4 297)
0 @) u! y5 C% {2 l' f - (setq y4 210)! c' q; K$ z8 ~% }
- (setq x4 (* mv_sc x4)
2 R; e" ?1 [* \* ]% _ - y4 (* mv_sc y4) )! ^9 d& v5 f/ a |% F
- (command
# p8 ?3 p+ T; c8 r( s - "LIMITS" "0,0" (list x4 y4)! F9 r) @1 U- D; V% d
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
/ g3 c/ a# J" n8 `; b# _1 Z - "RECTANG" "500,500" "@28700,20000"
$ I3 N/ w t: ]/ `7 `% a; {/ q! s - "RECTANG" "700,700" "@28300,19600"8 Y- I' I! X& F
- "ZOOM" "_a" ))' U: O: a2 v2 ]' R
- ;=====================================================================
% B9 K" d, O8 U( R - (Defun c:a3 ()) P8 W, d% u) E+ `7 ~7 T! C/ w
- (setq mv_sc 100)* s' g0 O$ n6 m7 d1 v6 T
- (setq x3 420)( s! i$ g( `3 I0 Z6 w
- (setq y3 297)
* N4 X. n* p6 Y: A9 o4 W" A% c, e - (setq x3 (* mv_sc x3) ( s6 t2 P+ ~5 e3 g3 b! j% `: `
- y3 (* mv_sc y3) )1 L7 `8 D9 Q, ^4 n3 ^8 q
- (command * b3 b# r! e0 E
- "LIMITS" "0,0" (list x3 y3); L& B1 H( J9 l d& G4 g
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
0 Y! Y& g0 a* g$ L" E3 D& ^ - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
! j1 M+ l% a4 Y9 q - "RECTANG" "990,990" "@40024.28571429,27720"
/ C& N3 Q5 V: \/ T5 D - "ZOOM" "_a" ))
8 |( a! E0 q: j, `: E0 K( Q - ;=====================================================================& I4 l! C3 d- k% E
- (Defun c:a2 (): }( k% \+ _, f! {- x: D* _ ~! V
- (setq mv_sc 100). F# _1 d8 {1 K9 D, A
- (setq x2 594)
, U/ A! ~+ H: t - (setq y2 420); R6 g# n3 l; n8 |/ V
- (setq x2 (* mv_sc x2)
' Y2 h2 P8 q$ s4 x3 Z - y2 (* mv_sc y2) )9 y; c: `1 a5 m/ v* w( ~
- (command ' e! Z2 n# X5 x
- "LIMITS" "0,0" (list x2 y2)- }. z& m6 W W3 j" y! M
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
( c' ~, q2 @3 l4 D - "RECTANG" "1000,1000" "@57400,40000"
" Y3 o; K, R+ ~, F - "RECTANG" "1400,1400" "@56600,39200"
8 _3 j5 m. F) K" ^" B( C - "ZOOM" "_a" ))6 i8 Z7 W' W! k3 I2 p! l
- ;=====================================================================% y% r# P! {8 v' w6 k0 d+ b7 |4 ]
- (Defun c:a1 ()
/ |3 V* ]. a2 |$ c& f6 F3 A# v - (setq mv_sc 100)
0 w9 b# H, u* K# z& p+ z - (setq x1 840)
% M- S# a+ ]6 E; F. c - (setq y1 594)
3 |. Q1 ~0 t8 c# n. J/ r7 d3 F - (setq x1 (* mv_sc x1)
+ t7 z2 ]/ g2 l% ~$ N* r c - y1 (* mv_sc y1) )
: |. N h1 t" h/ J& U7 x- o$ B - (command
$ O: ]8 c! ^: G& \. D - "LIMITS" "0,0" (list x1 y1). S3 S8 r! Y5 w$ c! v! b4 P
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"( v+ Z8 E$ c, T: [
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143") A+ [+ t& U" O0 L3 `$ w
- "RECTANG" "1980,1980" "@80048.57142857,55440"7 R, V) N/ J4 x7 j$ v5 ~3 A
- "ZOOM" "_a" ))
* @& i# P& k% r F - ;=====================================================================
- \4 h- @" Q5 G4 z3 V8 S' c) } - (Defun c:a0 ()
. P# l1 E' d0 p! O - (setq mv_sc 100)
2 u S$ i" j! y# ?1 h" K! b - (setq x0 1188)
3 O" b$ z/ Y4 X$ Z, z! J P - (setq y0 840)2 v! n; o+ U j. ~: r' U6 |
- (setq x0 (* mv_sc x0)
9 Q3 c0 X, T$ |) M# |" Q - y0 (* mv_sc y0) )) Y I. m; ~% H: F5 K* T) z1 c
- (command
( R' g2 U, v' o& Z' X; o - "LIMITS" "0,0" (list x0 y0)% t& w0 ^! \. C* r; d( V, L
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"( j, L3 n4 Y3 O+ _/ P
- "RECTANG" "2000,2000" "@114800,80000"& R" ?9 S& i/ _* e3 t
- "RECTANG" "2800,2800" "@113200,78400"' @% L2 D& J# C" i# n
- "ZOOM" "_a" )); m3 [1 W% P+ }/ O1 Y3 U8 ~1 g: {
- . n+ v; U! ]$ }( E
- ;=====================================================================* |$ J/ y9 L( u! U8 }/ }' p* ^
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================# S3 _. K7 H S6 H! z/ W0 h! ?
- ;=====================================================================
. R$ T" S0 m5 i! T - ' ?, Z% r" w4 ]1 Z! U% ~) Y# i
- (Defun c:6a ()
Y' o; T0 ], {+ J" e: k7 m - (setq mv_sc 100);Ti le ban ve
8 h2 H8 M3 u/ M& i+ H0 W/ F - (setq x4 74.25)9 p I) h; p: T: u
- (setq y4 52.5), ?0 c5 d3 R. ] F& ~& x* W7 s
- (setq x4 (* mv_sc x4)
. ^! M, e( a2 O8 V* q) P' c - y4 (* mv_sc y4) )
' E" }0 ~5 }0 g- N - (command
6 e0 U9 e* ]6 A6 b' H7 K1 ~ b - "LIMITS" "0,0" (list x4 y4)
2 c5 ^9 H/ D( j7 y. \2 a9 Q - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"+ H l9 j9 h' z( ?6 t4 o8 c
- "RECTANG" "505,125" "@6800,5000"
/ r1 B' ]2 N! d4 z9 M) y - "RECTANG" "555,175" "@6700,4900"
# o% }9 A" i5 Q1 q2 E% d+ ] - "ZOOM" "_a" ))
! X2 y5 u' d f - ;=====================================================================
8 [; `+ r i* |6 ^" x- x. d - (Defun c:5a (); h) ?; h5 v1 l/ I1 z( O" J# a
- (setq mv_sc 100);Ti le ban ve
1 q Y6 y1 H, Y - (setq x4 148.5)
2 o L$ K: e- ~ - (setq y4 105)
5 f% J2 Q( n- {- S- v# d3 |1 l - (setq x4 (* mv_sc x4)
?3 Z& H& H# `6 M' W - y4 (* mv_sc y4) )
. P8 O$ O* D( S" P% V A - (command ' l6 Y( X& J* }) a/ X) i0 u& E3 S* A
- "LIMITS" "0,0" (list x4 y4)2 z9 x+ u% w+ n) r& K, }
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
4 T6 C, {; ^7 u3 ?" o7 ` - "RECTANG" "1000,250" "@13600,10000"
) T! U, w8 x/ D, I - "RECTANG" "1100,350" "@13400,9800"
& p3 l1 Z/ b" s) A( M( N: D( l) w - "ZOOM" "_a" ))
1 I' Q3 _9 \; j+ { - ;=====================================================================
3 P; x! Y0 L) }, X+ n - (Defun c:4a ()1 X9 y& a$ ^; R) h6 h# f
- (setq mv_sc 100);Ti le ban ve( o1 L7 z' M1 M7 U9 Z7 ^! ^
- (setq x4 297)5 ]" L' Z: r6 D
- (setq y4 210)' u3 A' {- _! S; y9 d5 [1 t N8 M+ m
- (setq x4 (* mv_sc x4) 6 W4 } w* m F. B6 `
- y4 (* mv_sc y4) )
7 a9 w4 x/ V( s; B5 d; P8 A C - (command
. w3 h9 g) `) d" g" X - "LIMITS" "0,0" (list x4 y4)
H/ n& x0 O; U$ { - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- S2 L' |- g0 X3 O" h. O3 l& H. r
- "RECTANG" "2000,500" "@27200,20000"
! ~1 G4 w/ O% S5 f - "RECTANG" "2200,700" "@26800,19600"! w" C+ n+ b/ ]7 K
- "ZOOM" "_a" ))
8 r7 |$ y$ Y3 w - ;=====================================================================
5 E6 X7 n7 d( g+ e: m - (Defun c:3a ()
+ O Q r4 `! Z* M- r; A& H- ? - (setq mv_sc 100)
/ Y& T6 s/ o+ L9 N8 n/ n - (setq x3 420.0428571429)+ a1 {, c$ |/ D1 a; }; D
- (setq y3 297)- h0 n2 w1 K2 l7 r W
- (setq x3 (* mv_sc x3) $ u' s7 b/ I5 r
- y3 (* mv_sc y3) )
; C) M9 c5 I% m+ X - (command 2 J" U( I: S( [+ `0 v& ?
- "LIMITS" "0,0" (list x3 y3)
$ n: O6 k, D9 r - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
5 W& ~4 ^! U4 ?1 C! \$ h$ q% @9 J - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"- u& H" v+ Q* E6 m; d
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"& ~7 y7 _8 P, M1 A8 v: L& J
- "ZOOM" "_a" ))+ Z3 w1 O' \8 K/ j1 z, Y3 P: P3 K
- ;=====================================================================
# E; ~" N* O1 B - (Defun c:2a ()' k/ u6 Y W- |, s! Y$ B, G2 d- S
- (setq mv_sc 100)
. R, b- l/ e, Z& i - (setq x2 594)7 p% D( `7 y1 X( N1 b, s) Z$ g2 x
- (setq y2 420)
- i, H: s1 E9 z: a- K - (setq x2 (* mv_sc x2) " N) h# w# U2 V# J
- y2 (* mv_sc y2) ): m. t( c* F3 S' Q5 x* s) d) @
- (command
# I0 a( u) j' ?+ Y' l# z - "LIMITS" "0,0" (list x2 y2)* Z* i6 Y* H$ W) Z
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"! X# s4 {2 n6 ~) M7 i' Z' a
- "RECTANG" "4000,1000" "@54400,40000"
0 j' b7 f/ u- m. \% C - "RECTANG" "4400,1400" "@53600,39200"
/ D# e5 [4 I( z7 T7 q( M* Y* K - "ZOOM" "_a" ))0 b0 `# n1 @) f# ?( Q
- ;=====================================================================
: p) [* p7 ^% v4 N; u$ l! ?' B0 `0 c - (Defun c:1a ()
9 f2 Z) b3 p4 y q7 r) l& J - (setq mv_sc 100)
3 f+ k/ Q: c1 T - (setq x1 840.0857142857)* T" f1 p, q5 H) T
- (setq y1 594)
* }: Z# o- o2 `2 A5 F - (setq x1 (* mv_sc x1)
) [; m, {8 x* r7 S3 P( Z# t - y1 (* mv_sc y1) )$ y3 K! O+ c9 T# u, h/ _) r
- (command
0 r6 l5 b) {: X# d; |. {' t - "LIMITS" "0,0" (list x1 y1)
) K) ]3 w2 j* Z' X - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"7 ^1 F0 R* _# I! W
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"; s# U& Z& w4 O. b; m/ D0 M
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440", G; l) Z q6 ^1 Z
- "ZOOM" "_a" ))
1 U. T+ p% e+ L* {+ ?; T. {: Q: Z$ C/ \ - ;=====================================================================6 R T5 D. L: q+ l5 ?
- (Defun c:0a (). l6 K+ W$ ?1 V1 h
- (setq mv_sc 100)
% f$ o* K" [ L6 E9 e* r! x4 ~ - (setq x0 1188)" f( N0 R% _2 q' \5 \9 H# X- D: I
- (setq y0 840). S) }- L' N- C X4 u
- (setq x0 (* mv_sc x0) 7 O/ l4 N' T& T% P+ c( {3 c
- y0 (* mv_sc y0) )& ` A4 a1 K5 |
- (command 9 U1 [" j6 H4 u' {
- "LIMITS" "0,0" (list x0 y0)( U: E4 i# G9 G1 K" i9 {
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"% N; {, i1 v! k4 H* u) i$ o
- "RECTANG" "8000,2000" "@108800,80000"
1 H% S6 c& [7 z9 m! {4 m! p - "RECTANG" "8800,2800" "@107200,78400"8 A8 Z/ o3 I/ V8 \' J* z4 X# p
- "ZOOM" "_a" ))- t& Q- M! p- p
- 5 Y- \4 b/ @! `, _- q! f3 \
- ;=====================================================================
- Y- D) v" d7 b9 w- I - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================. }( n6 h* w& }; U$ z( `6 D8 h
- ;=====================================================================
& ~, t' D4 d- U H% p1 k! t9 ? - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)* c8 d/ P# X7 Z( {# t# {
- (command "undo" "be")
0 @2 e; @/ J% J; C: v5 ^& R3 ^8 z - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))1 }" g; l/ s7 O+ B! n
- (setvar "CMDECHO" 0)
& ?- r$ D# ~6 M; b' Y8 B& ~ - (setq a (getpoint "\n chon diem chen :"))
8 A1 s, H; J4 u8 `# ] - (if (not TL) (setq TL 1.00)) j# C/ o$ j& F7 i$ \2 y2 y2 l
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))+ V$ E$ n4 L9 I; e& F
- (if TL1 (setq TL TL1))2 K4 ?+ g4 e" w, @- k2 |; v$ H
- (setvar "osmode" 0)1 U& `5 M4 L6 I) ^
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" "")), L9 y& D. [! w. o1 f
- (initget "0 1 2 3 4")! Z9 [, r( J6 x& w" g O
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
7 N9 Z& u; k% H% _7 E1 f$ B8 E - (if (= kho "0")* _: ?0 l. m8 y1 z, T+ h
- (progn
% ] f" w) f! `% c9 X7 J! v - (setq b (polar a 0 (* TL 1189)))
$ I$ a' }- N0 z. ^4 E2 Z - (setq c (polar b (/ pi 2) (* TL 841)))
: D* {; c5 W/ b4 W - (setq d (polar a (/ pi 2) (* TL 841)))$ {* p/ F# x; M6 w) G; p1 R
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
$ }: V/ |. k1 R8 j9 h2 T0 ] - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))' D0 I7 Q& M L
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))7 X7 |' [" e$ u: Y1 X
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))& {! Q: x D) ~& ]) g
- (command "Pline" e f g h "c")
+ M) a1 I4 d. F4 K) A- x - (command "change" "last" "" "properties" "layer" "0" "")
- D2 f& X1 a `( J8 O7 h - (setvar "cecolor" "4")/ S5 G4 \% H6 S4 r3 i
- (command "Pline" a b c d "c")
, u% u( H1 H) g5 f: t% W - (command "change" "last" "" "properties" "layer" "defpoints" "")))
4 K! V5 T2 B: u' y% b/ W: a" H - (if (= kho "1")
W: l3 n1 c* @: S# h - (progn; M& n6 F# _2 ^9 o% M
- (setq b (polar a 0 (* TL 841)))
2 p5 _3 S) x1 p - (setq c (polar b (/ pi 2) (* TL 594)))' U! l( Y4 v$ K3 j+ x! G
- (setq d (polar a (/ pi 2) (* TL 594)))+ P( K$ o& C' O) P/ k2 Z
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))1 g1 m* M$ h0 E b) @& ^" t
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))
. \. _* ` U# Q - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))$ k0 \5 K7 D3 H6 ` w" j' I3 [, V
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
7 d% |0 U/ }/ A+ P7 S5 ? - (command "Pline" e f g h "c")
" H# X7 u# Z; F$ d; g$ E - (command "change" "last" "" "properties" "layer" "0" "")& l2 [. o; I3 C' Q' X
- (setvar "cecolor" "4")3 i. u* s, r. S# a) t. m
- (command "Pline" a b c d "c")# `; d+ E$ Z" @- ^
- (command "change" "last" "" "properties" "layer" "defpoints" "")))$ N1 S+ p0 D% H% I1 S( n z
- (if (= kho "2")
2 |8 l5 N" b. q - (progn+ w0 O* s' S7 s
- (setq b (polar a 0 (* TL 594)))
1 x! v( s/ R, v) i. K; X - (setq c (polar b (/ pi 2) (* TL 420)))
& v5 N' M: \2 i7 G5 m# y - (setq d (polar a (/ pi 2) (* TL 420)))
1 V6 R6 e+ O5 p+ a3 Q( A - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
3 c/ \/ ?: E' b# g- N& Y - (setq f (polar e 0 (- (* TL 594) (* TL 20))))
4 S6 o3 s& x+ Q" q& g. a - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
K3 m7 ^9 A; j& [2 `7 t - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))! M* a; z. H H, |7 g6 [# q
- (command "Pline" e f g h "c")
. B5 _0 A/ |* u - (command "change" "last" "" "properties" "layer" "0" "")
! p) b. A0 U- r. p0 K+ ~5 w - (setvar "cecolor" "4")
~& i6 u# T5 b9 E' s - (command "Pline" a b c d "c")
) r" p9 G2 I: C3 O6 B/ {: L4 T7 U2 A - (command "change" "last" "" "properties" "layer" "defpoints" "")))
6 e+ L2 h" s! O1 p" t3 y1 z - (if (= kho "3")
" k& ?* E8 ^" {% w# b+ W. K - (progn
0 h6 H1 J0 h9 R, B- V$ I - (setq b (polar a 0 (* tl 420))), b" b# Q+ |$ @0 q* o
- (setq c (polar b (/ pi 2) (* TL 297)))
3 h2 n; D: Y# ?/ k& a - (setq d (polar a (/ pi 2) (* TL 297)))8 O! _2 S/ d5 [ T, D
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
4 c' K# ?% c K9 }& Q( h g6 s - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
" }* E3 }+ V. Z) F w* ^4 F - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
. z9 P# V3 O" I+ a - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))3 _" ], u$ G. w9 S
- (command "Pline" e f g h "c")( T, J2 p6 r& i' a B
- (command "change" "last" "" "properties" "layer" "0" ""), U" D. a' f( z& j( [4 c
- (setvar "cecolor" "4")) H$ t' w& ^ a
- (command "Pline" a b c d "c")
f, Q5 k3 ]. X) q/ } - (command "change" "last" "" "properties" "layer" "defpoints" "")))7 i$ W; Q; a }3 S9 _: r3 C2 Y
- (if (= kho "4")6 h, c7 A) }7 l9 G# @! h+ Q
- (progn$ o4 ]! v/ y" E) h4 q- M! L( @
- (setq b (polar a 0 (* TL 297)))
' N# W0 U" j( Q5 Y. R0 @: { - (setq c (polar b (/ pi 2) (* TL 210)))
" D& v# \$ R7 \' Y - (setq d (polar a (/ pi 2) (* TL 210)))1 ^: d+ ~0 E# C8 o7 L
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
2 Y& a, u- N2 \7 Z% k - (setq f (polar e 0 (- (* TL 297) (* TL 18)))), k5 ?% H5 J3 H, J
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))3 Q/ ]% F3 g5 B" l6 q8 |7 o
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))2 }- Y8 a1 ]% M
- (command "Pline" e f g h "c") , ]7 z2 {' h" K+ c$ ?9 S2 A
- (command "change" "last" "" "properties" "layer" "0" "")6 b$ T3 U6 w) P' v1 u' O9 V
- (setvar "cecolor" "4")! Y6 g5 \4 U5 {5 y* B
- (command "Pline" a b c d "c")
) T5 a4 _8 q6 J3 ? - (command "change" "last" "" "properties" "layer" "defpoints" "")))
) ~' r F9 W. y/ F& m' _ - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
+ e; D7 Q8 i5 r: C6 j; ~- C - (command "undo" "e"), S1 }( C1 {: Q5 ~
- (princ))+ g8 y, S& D1 r* G
- ;=====================================================================4 d- \( ]$ a! u. z3 z) s& M! L5 A: F
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
% B8 ^9 N8 f! i; {. L+ { - ;=====================================================================8 f" K5 D9 H! M r& M w* z
- s( p" T* ~& h/ ^: ~
- ;=====================================================================
5 V: I& `9 A& a: o - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================% L7 [8 E- Z I+ T
- ;=====================================================================
5 U F8 e4 B- N5 Y: O - 9 G( I, C4 O. N& U$ `; x' a; E
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
) C9 A' j, x# W, {. {. q; W - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
2 a! `5 h1 u; l/ I% K2 V - "M" "MANH" "C" "9" "" "Lw" "0.1" "": N6 n$ b& i( h* j; {
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
0 i B( b- L/ d- d - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
* o* d4 l' O3 ^8 \+ X" R% e* f - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
% S& X4 b) V: {( ~% a) ~$ s - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""3 i l! Z% N* S0 h; m* _
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
! I6 d4 ?7 k7 e/ q - "M" "COT" "C" "1" "" "Lw" "0.3" "") V1 g' e: V* C+ A6 t( X$ E
- "M" "Defpoints" "C" "7" ""/ M/ F M3 l/ d! r
- "M" "0" "C" "3" "" "Lw" "0.12" ""! [2 H- s9 X+ ~' k4 T
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
0 B" n8 u0 h+ r/ @ - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
) [2 ~, d: G9 h* O7 F - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))& E+ C6 }2 M! V" r# M( `( g
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
: R! u9 x) S1 C+ H( Z - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
4 i @5 H% J8 V/ l$ f - "M" "MANH" "C" "9" "" "Lw" "0.12" "", M1 Y. S1 A9 A: e/ F$ `0 C
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
: w: u2 _/ v3 o3 U# w - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
* s2 C. S1 m2 O( h - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
3 c! }; y9 D. G6 i" U' U6 n5 x4 t7 }% P - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
2 K% S: v2 T! m4 X6 G8 B' i$ y - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
1 I, x2 A i, ~: \2 K. y v; i4 T - "M" "COT" "C" "1" "" "Lw" "0.4" ""$ @2 | t+ _/ T w
- "M" "Defpoints" "C" "7" ""
' d8 n, i; z0 a" @$ }$ { - "M" "0" "C" "3" "" "Lw" "0.2" ""& u r- s0 T2 A o- l5 k
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""( I3 y; r5 Z2 Z* R$ F
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""' H P1 P( c& L& b! G: i
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
: X. `' s( s G# l - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
; s- d8 r7 ]7 r& L - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""8 P( X4 H- }' |. t
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""
7 `& b: N, j; g3 a( w+ H - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""+ R O# R$ O1 o
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
: F h- H6 E+ S8 v$ D7 K8 [3 O6 H - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
3 v5 f8 R+ }6 V [' Z - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
. ^, _- [) T* b: ]7 m) t0 F; m1 _ - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
7 \, c2 P. L* Z1 q( \2 D3 B7 a - "M" "COT" "C" "1" "" "Lw" "0.6" ""5 |* O& N4 X8 w' {
- "M" "Defpoints" "C" "7" ""
, J, u8 U7 q) O( Z( G( h9 a8 q - "M" "0" "C" "3" "" "Lw" "0.25" ""
1 P8 d- A7 a2 @0 ~/ \ - "M" "CUA" "C" "6" "" "Lw" "0.25" ""
9 q2 _/ ^8 H3 w! Z& ]2 r - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
5 |+ E& y" q6 l# q - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))8 W2 S( v7 }2 N# U. L
- 6 _& h; |8 g7 F( g0 W) s
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
" c. a4 _; _- e; Z7 `8 K) U - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""0 E" N9 S4 R# l( d3 V
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
6 v0 n; C6 G3 f1 f6 m! K7 B - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
. `; v9 L% |& P Y/ R& N0 { - "M" "DIM" "C" "1" "" "Lw" "0.35" ""' @' T, c3 u# D1 \4 a
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""0 t9 g7 C, q, L5 p
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""' ~9 c. O3 u+ L2 D# z! ]% v
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
9 i4 w4 \0 z8 U* Z* U - "M" "COT" "C" "1" "" "Lw" "0.7" ""0 K! y/ c9 v4 }4 r/ z: I
- "M" "Defpoints" "C" "7" ""
. [2 @7 `6 q y& A - "M" "0" "C" "3" "" "Lw" "0.25" ""
2 ^$ t' r; X/ Z% {) ^( d - "M" "CUA" "C" "6" "" "Lw" "0.35" ""& F1 J; T) U) Z: J1 N0 ?' p
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""7 y) a2 J: J) z5 s7 i! T1 O
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)6 S; B- g! y, D I! z8 F- P
- 8 @' ~, i- v0 p. |
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
4 M8 O! X! S" l8 { - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""3 A+ ~! r0 Y" w
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
# p; P) k) Z8 Y" Z1 }2 ]- W9 t - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
5 E( N% p7 g- O* v) ?! }$ h0 V1 x - "M" "DIM" "C" "1" "" "Lw" "0.3" ""8 ~2 i0 S* ]& ?1 ^1 U2 {: i
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
: Y2 C6 `; ]# _7 K; c$ e' | - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" """ Z2 f' H3 A) u" \
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
% j+ s1 c8 k* o6 S* n - "M" "COT" "C" "1" "" "Lw" "0.7" ""0 k7 f6 ?/ _; A: g! Z8 ^) X2 ]
- "M" "Defpoints" "C" "7" ""6 U h; H6 Z! D
- "M" "0" "C" "3" "" "Lw" "0.35" ""
. t- A3 N$ t4 p - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
2 g) ]9 M1 o! v/ U) q3 {' { - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
8 E2 n/ z, T2 A" W+ o2 n. I - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
, C4 a0 K7 q* t; ]$ @& m$ D - 1 e; R' ^, } p8 D
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""9 o2 S P5 |! U) O d' H
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
# V' N/ h$ D' H) g+ m - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
3 C* e" c( j2 \ w2 y& f1 t - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""/ X. B* }6 Q5 |" @
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""$ ^( n' n% d" |& \% M6 Z( D" Y
- "M" "THAY" "C" "7" "" "Lw" "0.4" "", v5 p: u1 |1 ` B
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
( h' T5 ?' j' i5 x+ t; E) ~ - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
; G9 p; L' u3 b9 ^6 Y. k! X7 l - "M" "COT" "C" "1" "" "Lw" "0.85" ""
2 f3 j8 S( K! |1 e, G$ t* ?% | - "M" "Defpoints" "C" "7" ""
. I4 O7 o% ?! @0 M - "M" "0" "C" "3" "" "Lw" "0.35" ""
; r7 W& b9 ]% U6 q8 y - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
0 `, N9 G% S6 Y1 F2 C - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
2 ~4 {7 E. z8 b. T" ^8 Y7 F0 a* y# W! Y - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
5 G7 @8 o) Z( t0 ~# z - 7 R) d7 M* S- A( ?6 Q
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""& b! m, W0 f) n7 O! D. U2 ]
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" "", p6 m5 t9 t+ s" u, o7 f/ v7 w: v
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
2 [0 O9 l1 M: Q. Z& h5 K - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""- W* x/ s; y0 J r0 p: r
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""1 B4 p0 A+ v" M+ H
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""
% T3 @# ]. y% J, ~2 d - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" "", W2 u: z0 K" N4 |, ~
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""1 H0 m' \! F* Q
- "M" "COT" "C" "1" "" "Lw" "0.1" ""
! `/ \3 I* J6 U+ O* \ - "M" "Defpoints" "C" "7" ""1 b! `/ `/ j8 o" b
- "M" "0" "C" "3" "" "Lw" "0.5" ""
0 W7 O( v1 l' [' f& Q- `3 [ - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
* L Q! D) N* i: i - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
/ k. ?5 {% t* l3 H* u( } - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
( c* j( F% F; I5 O! } - (DEFUN C:O () (COMMAND "OFFSET"))- Y5 D0 B" `) \- w9 A3 o' f* ?
- (defun c:s1 () (command "surftab1"))
5 p" p2 l$ p7 T8 u$ s - (defun c:s2 () (command "surftab2"))- J# P8 ^+ U+ D$ z
- (defun c:ep () (command "explode"))4 O) R& C k' F0 Z2 G9 n) f
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))2 @4 I+ A" }* `0 {" r" \
- (DEFUN C:QV () (COMMAND "QSAVE"))
% H% H" c, m3 h( p" Y - (DEFUN C:S () (COMMAND "STRETCH" "C"))
6 v9 m6 U! Q+ ]6 Y* C+ e$ i6 \ - 3 f4 o8 k9 y# j3 t7 R
- ;************************** CAT DIM **************************
2 t- \9 \& ]4 c( g4 f& E
" V+ C# e- F2 g& P) T, i- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I' A2 x' V4 q: c$ T. o
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)+ q) O; {5 W2 g' ^% k. q
- (SETQ CMD (GETVAR "CMDECHO"))
9 y0 T) u% d! t* |2 X* E - (SETQ OSM (GETVAR "OSMODE")), l# ~$ o( r1 {$ l
- (SETQ OLDERR *error*6 T/ v" G; Z& C6 [. [% B) H2 O
- *error* myerror)
* ~; J: k2 @; t; w3 R/ \9 T# | - (PRINC "Please select dimension object!")5 e& L, G, `7 D6 q. G$ _! W3 m+ I
- (SETQ SS (SSGET))
# ?! J: h/ U4 z" R/ a - (SETVAR "CMDECHO" 0)
1 E- J) [$ `; d+ f, j8 Z - (SETQ PT (GETPOINT "Point to trim or extend:")) ^% N: B; t# M# K# p. \/ U" b& l
- (SETQ PT (TRANS PT 1 0))
0 p2 M7 T0 }3 c& u$ g' [. S( g - (COMMAND "UCS" "W")4 k0 {: ~: }+ T5 N( J
- (SETQ LTH (SSLENGTH SS)) o* ~; l* k5 `0 P% d" a
- (SETQ DEM 0)
; \+ M4 _0 M7 o9 E* i" s - (WHILE (< DEM LTH) e+ r! z5 R$ l, n
- (PROGN
! h% F9 C8 U( e* ~- Q - (SETQ DS (ENTGET (SSNAME SS DEM)))9 P9 |) k& {3 J. D, \( N
- (SETQ KDL (CDR (ASSOC 0 DS)))
4 i8 I& o' s$ Q - (IF (= "DIMENSION" KDL)+ G V5 V! X& A8 L; j, N" J
- (PROGN
7 T& U" K- f% l j8 r' L' c1 k2 Q - (SETQ PT10 (CDR (ASSOC 10 DS)))9 H; I" k x; `
- (SETQ PT11 (CDR (ASSOC 11 DS))), t9 E2 L' W! v6 Q9 R' N
- (SETQ PT13 (CDR (ASSOC 13 DS)))
' h1 G- Y4 _! Q; U - (SETQ PT14 (CDR (ASSOC 14 DS)))
3 ]$ i7 A# P* Z! Q$ O3 c - (SETQ N70 (CDR (ASSOC 70 DS)))
) n: W, m; k: B2 Z, ]9 I1 a! T - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161)): A2 }8 f6 R0 L, a
- (PROGN
6 T) m8 W1 O r3 }# B8 l; Q - (SETQ GOCY (ANGLE PT10 PT14))
# o# Q; ^3 Y8 L1 X - (SETQ GOCX (+ GOCY (/ PI 2)))
& l8 ~7 u" E, V - )' Q0 o$ P+ n3 y$ \9 H, J
- )
. a* u# r- t, S/ Q% z - (SETVAR "OSMODE" 0)5 C; o9 g( w, W! J, e. e
- (SETQ PTI (POLAR PT GOCX 2))- M2 C4 W* _7 O5 ~$ b/ G
- (SETQ PT13I (POLAR PT13 GOCY 2))/ A5 y- F7 c5 l5 {( z
- (SETQ PT14I (POLAR PT14 GOCY 2))# C- h/ \1 [6 d, J: F
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
9 _4 m" [! c( p3 k - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))7 {0 H$ C, u5 w5 p6 c! F; O! S, v
- (SETQ O13 (ASSOC 13 DS))
! ?, V, w6 C2 g; q# T4 j; } - (SETQ O14 (ASSOC 14 DS))2 @: h5 b0 O7 {1 `( t* H( }
- (SETQ N13 (CONS 13 PT13N))
& S% h8 N: O/ O/ `% q1 u - (SETQ N14 (CONS 14 PT14N))
0 S1 f) ~* e9 _. H/ O7 D9 R - (SETQ DS (SUBST N13 O13 DS))
0 O8 {- A6 z7 W/ T8 f. ]+ D - (SETQ DS (SUBST N14 O14 DS))
3 ?9 m% Q7 v8 a6 P% F% I - (ENTMOD DS)
4 i2 R p u/ S3 `+ x - )
1 G& I( p( Z; X' j - ) G" R$ I3 m ?
- (SETQ DEM (+ DEM 1))
$ c1 L! v* Y0 T, ?+ |% C0 I6 ^ - )
* h% R: j/ L, U$ N( Q, `3 A - )) B' j J8 I- o- V% s
- (COMMAND "UCS" "P")& u3 k' Q( M( H5 n9 A% Q
- (SETVAR "CMDECHO" CMD)
% `+ F/ V2 I3 `" @ - (SETVAR "OSMODE" OSM) L- l$ ^" m+ @% H; }
- (setq *error* OLDERR) ; Restore old *error* handler
, |# m( Q0 v4 G% s - (PRINC)
& g Z) t- o/ {4 |: c1 B - )
3 N/ h/ } X* j) X
' D, d3 }( J7 k$ v- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI% B. ]* U6 H+ F9 e" f
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
9 g/ `0 F+ E3 t& R; k3 N - (SETQ CMD (GETVAR "CMDECHO"))
% _( f [' u1 j6 \ - (SETQ OSM (GETVAR "OSMODE"))" n( f, F- y4 a% r6 g; U
- (SETQ OLDERR *error*
& D+ q7 E- N% X/ I: W+ p/ }7 V - *error* myerror)
( p4 I; f, P6 Y5 `0 l- _0 | - (PRINC "Please select dimension object!")
& C. w5 p5 p5 ~0 z; B - (SETQ SS (SSGET))
5 C2 y% }/ K8 Z$ v3 v; [, X7 F! L: L - (SETVAR "CMDECHO" 0)
) b& o$ f% b1 p( A0 ^! z - (SETQ PT (GETPOINT "Point to trim or extend:"))
. g/ M; P& A/ y - (SETQ PT (TRANS PT 1 0))
& p8 L( ]! z2 n# P) [* u6 t& { - (COMMAND "UCS" "W")
* S, q' r9 `6 v% p7 i! A. r8 H/ X - (SETQ LTH (SSLENGTH SS))- ]0 @, T% Q) I0 V5 u! s9 d- m: u8 V' r
- (SETQ DEM 0)
. [2 P- Z: U9 p- J - (WHILE (< DEM LTH)
2 ^3 K# V& q2 G( i5 ?/ X - (PROGN
2 l6 n8 w" P- W; y- U" h - (SETQ DS (ENTGET (SSNAME SS DEM)))) G/ N3 T I9 ]/ E- G* e' H J
- (SETQ KDL (CDR (ASSOC 0 DS))), I6 ^, ~/ {2 V, m: U: l
- (IF (= "DIMENSION" KDL) U" a* f& @" H3 J* V: B
- (PROGN, y0 F" R+ r* @
- (SETQ PT13 (CDR (ASSOC 13 DS)))+ A6 I$ \8 d% B2 T, H0 X$ K
- (SETQ PT14 (CDR (ASSOC 14 DS)))2 S& g1 F% @2 F- U
- (SETQ PT10 (CDR (ASSOC 10 DS)))
& [, ], G4 i/ Z4 W - (SETQ PT11 (CDR (ASSOC 11 DS)))
6 M# v$ S3 O8 D# @/ @; ~ - (SETQ N70 (CDR (ASSOC 70 DS)))
' T& W D: X6 B- d/ o% N - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
: D% e/ ?# }# ^. N* X( x; X- q - (PROGN
& o$ t' U6 H# g, n( i" m$ G - (SETQ GOCY (ANGLE PT10 PT14))
3 u$ X8 N( N- m! ]2 r - (SETQ GOCX (+ GOCY (/ PI 2))): R4 f; } y9 X" {
- )# f( h1 F. k8 k/ \' _6 B
- ): a# ?( `# J# f' d. P
- (SETVAR "OSMODE" 0)+ n7 H; w; `6 z
- (SETQ PTI (POLAR PT GOCX 2))
" v; W7 W/ H3 h; G - (SETQ PT10I (POLAR PT10 GOCY 2))+ P- q6 g$ }/ F. H I% I9 T
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
! u. H f6 @- Y' ^9 @1 x - (SETQ KC (DISTANCE PT10 PT10N))) ]) \6 U9 A, {# U i( D8 B# p* A
- (SETQ O10 (ASSOC 10 DS))
* V E( I; w, N& {& q4 h - (SETQ N10 (CONS 10 PT10N))4 H/ W0 l8 L2 ~% C/ D# k& m6 z" b
- (SETQ DS (SUBST N10 O10 DS))
$ H# X% f6 |. U - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC)): Z% G! T2 n; f# D
- (SETQ O11 (ASSOC 11 DS))3 x/ y# w- F6 ? G: N
- (SETQ N11 (CONS 11 PT11N))
8 F% F9 |% L c5 L9 ~4 t - (SETQ DS (SUBST N11 O11 DS)), s$ z- G( n5 w- m
- (ENTMOD DS)& K \2 r) b3 h3 y9 Y5 |
- )
4 `3 q7 ]) P# Z1 d$ @ - ). k* I" p- f" i2 {4 @8 ]6 L
- (SETQ DEM (+ DEM 1))
7 D% S- j8 [8 `: u - )
T+ ?) o3 G) H7 N) u( X - )
' i7 U, M4 W. j, v - (COMMAND "UCS" "P")
% d- ]# [% v3 Z: `" F - (SETVAR "CMDECHO" CMD)
+ L8 F/ R0 C* A: G* U - (SETVAR "OSMODE" OSM)
' m. y/ _. _( U. W - (setq *error* OLDERR)
3 a2 }& d! b. j/ O - (PRINC)
: Q, k" P5 H# F/ f! j - )
9 z/ v1 l/ n# W - : O2 h, _3 ~# z& l3 R
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
$ Z4 }/ r( [; O+ p7 H) J - , Z# e* O; u+ R, T' V- ^, F0 r: p0 e- ] Z
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
2 i: S0 O& w) f% W0 y - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")4 [6 ]9 d- e$ l1 R0 `# r) a# C
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
7 R# K* X. V% A - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))4 C; L0 c7 t5 P+ a* W
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")1 q8 ~: `" e k! }
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
) \. o0 c% J9 E. l - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
9 T( V' F2 c; i m1 B/ Y4 i - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
2 l r, \# s( i, E, e) y& E - / R0 D. b7 c0 |+ w7 ^2 i; b
- ;;; ================ CHEN COT (TUU) =================
# `% ^" O C5 k
; o+ H! v6 o: X- p- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
D; V3 }+ i# g7 Q- x6 L7 S - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"): d/ ~2 O7 d- _6 l. v
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
% F8 ~8 B% m' P# O - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
9 W1 j( a' ~3 h7 q$ `; x/ Q3 k' H - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
3 m; n: H7 S) N7 a; U$ z - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
+ z3 M3 G& K2 }+ ]6 T/ A - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
/ w+ T, T0 k# D. `/ _1 [/ E+ R - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))+ i f; o' l/ d; U
, g* D9 ?# t: i3 |2 P( P- ;;; ================ CHEN KY HIEU THEP (TP) ================= [5 ?0 U! y8 {0 Q; g( Q. O
& D* H* F6 }9 k- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
7 Q4 `2 L* H. v; I. o/ c% M) ` i - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")4 a* e/ K3 X3 w4 N/ K- o$ o8 i
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
/ ?7 W2 A$ [% b; n - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
+ t4 b) u5 Y/ s9 y - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
9 {/ `7 `! ^6 n9 T - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))! X9 x5 {/ n0 W4 C! L( W
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))# k8 F( M6 b3 f" R6 C R
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
! S7 _& W' l% x+ e6 [ - 4 U/ F" M0 c) A
- ;=========================== TAM TUONG (TAM) =================================
?1 _: {* [3 ?' x- D - 2 u" Y: Z5 p8 m: F
- (defun c:tam(/ data_m)* \/ m F0 B2 f9 x
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
$ d! y- B" Z1 D - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
6 S7 s6 p- U; W - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
. Q( ^, T. l- F! F - (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset; k( N: a0 n2 [8 p, `. l! _
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr e' X% P' \- [8 W- T
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ). B6 c/ t& Z9 S: A5 E& w
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if) h3 b1 T& o: M+ v; I% _# F: L. @
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)# |6 s; g0 J" e0 S+ e
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
' p! ?# ~& [- x' [( m - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
2 r7 b% }1 I# t5 n% M, k4 [ - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<; b9 r8 ]* C* C U/ [1 a
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)0 E' B& p% p# C9 s. b
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))# y0 d( ^6 s. k* c* R
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
3 d$ ^' }0 [: i& R) d6 [1 i - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
6 P1 p6 x% k% o7 n7 Y - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
4 |& w0 ^( y2 i7 n2 \8 T2 s, P - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ)). k" `/ t+ {% A5 g: E- p
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
) U0 ]4 }! g) d( v L - $ S# B( A0 C2 p5 H4 S& r4 }
- ;============ GHI CHU PHI (T1) ================
. @* J' S/ w0 d/ r$ T: h* w1 x - ) k1 c# q3 b( R6 k* y# k; F. c
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
x. t+ R% @! S$ A3 R! b9 g& V* ]4 F - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
# d8 @& P+ D4 F+ K3 C/ m+ Z - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)! R6 A8 k$ s) c/ r# X* L
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)0 D; t# b( n2 q( U' J. X% D
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
' R/ C3 {7 {8 h" k1 S& a - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
0 i' y: k R3 `% q* `# E% U - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1), ]. @/ j' |8 M! Q' Y
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
$ m2 t9 f. W4 E8 O - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
! d9 B' D7 B5 x4 `8 R+ p2 `# m5 h - (command "ddedit" pause))
J& X' @1 R, o# |$ B
2 S$ r" J1 D0 F& V, _- ;;; ========================== Join (J) =================& S5 f ^! _( [8 D
1 a/ y- z& A/ z& A% E- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))" S% {! U" {6 c9 b
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))$ G$ \) y5 l/ C8 {! S& o
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
) J1 U8 h- m+ {! _. E5 V - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")( |" O+ c6 \0 x, {- ~% |8 ^
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
& o& S/ T$ g5 E4 ]. S% W4 Z - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt "")) _' N1 x- U, \+ K
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
* P2 n* e+ X1 L. h$ \4 n7 ]1 N) w' I - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
) L' K" z8 _- U" o2 D: M - (setq *error* m:err m:err nil)(princ))8 o# ^4 X$ H1 v& D7 P( A' R, f, f
- - e6 B+ E" o/ c3 ?# f
- ;=====================================================================+ { O; K* [9 R$ O- w: q" h
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
, X- c& Q$ l! |4 I - ;=====================================================================9 `( v& L; b+ ?$ L4 @" h% k5 N$ M
- ) T0 z) j* u U% J' R& W
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old): o" j7 B/ E$ O8 _6 p
- (setq old (getvar "OSMODE"))
7 \5 Y+ S) O4 Y9 l - 4 c7 X* R- ]5 T, J, f
- (setq p1 (getpoint "\nStart point:"))
0 u( b4 D' `0 {: X+ A - (setq p2 (getpoint p1 "\nEnd point:")) l% e9 {3 p' X0 J
- (setq side (getpoint p2 "\nOpen side"))
, [' p3 @" o- Z' v( i! t+ y' k, [1 h - ; f4 d: g# P: d0 C
- (setq dis (distance p1 p2))
! m1 s2 A* E" s - (setq ang (angle p1 p2))
2 `* M8 b! ~1 ]" N! z0 |/ P: S - (if (< ang (angle p1 side))
4 V; G) V3 ^. o8 s. J+ A4 H% v - (setq angside (/ pi 2) )
8 |* Q$ i2 q# {5 ?3 | - (setq angside (- (/ pi 2)))
( }; O5 C l2 u) H - )
3 @9 c, N$ T0 r9 i, v M - (if (>= (- (angle p1 side) ang) pi)3 \( z2 a! E& F
- (setq angside (- (/ pi 2)))
f, U6 V" ~ ^: I$ H9 A* `( V - ), v; }/ M# o) S( c
- (if (>= (- ANG (angle p1 side) ) pi)
; t8 a# K* [& m" j: [- L - (setq angside (/ pi 2))
4 H+ E9 V# f0 S. _* S+ U - )/ {2 |+ l5 L6 M2 Q9 B6 o# S
0 E( j0 O4 v: o+ y$ O7 X- (setq p3 (polar p2 (+ ang angside) dis) )4 d) t7 d5 X0 |* h+ {7 ]2 h, k
- (setq p4 (polar p1 (+ ang angside) dis) )! x, y0 B2 b0 I4 x! C$ i* g% K# F
- (setq wid (/ dis 15))
+ h' j$ y: O7 @9 `$ W
$ f3 r& |5 p+ i {" Q) `- (setvar "OSMODE" 0)7 y. k- H9 K( _, c+ `7 P
. r( ]6 u: @2 ] A- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
( E4 C/ t7 q3 B, i) F0 K- b- @' q - (polar p2 (+ ang pi) wid) " V7 k! c7 c9 ~: Y$ b
- (polar p3 (+ ang pi) wid)
1 N( E6 X w9 ~$ P$ \ q - "")
, t0 x5 U& {6 {7 d - 0 {6 B# E4 Z1 r& E& V
- (setvar "OSMODE" old); C% L ~ [/ O2 c) N6 f
- (princ)0 X0 E3 E J% R$ i9 g ^
- )) ~1 c; G9 x c+ s* \
" w/ d6 J' L# i7 b3 s3 K% l: n- ;=====================================================================
0 {! w) S2 q5 u7 S( X8 p1 C - ' h! v8 M1 m: p, g8 o1 I
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)" x9 F* a2 s' K- ^' u
- (defun cua1 (pt1 pt2)# {4 c1 n [* h: E2 Q
- (setq p1 pt1
u3 l" S: w# l! e& p - p2 pt2)6 J1 g6 S. g2 m: h$ m
- ) `) E, X% c- x) N; ^8 w
- (setq ang (angle p1 p2))) O2 E. i( v( Z% W& ~& T
- (if (< ang (angle p1 side))
m2 T+ `' }' U1 I. ~( O - (setq angside (/ pi 2) )/ m9 N. v7 C/ } E: o1 K0 m
- (setq angside (- (/ pi 2)))( q1 x# C; e' O, F: d: n4 B
- )
: A% `8 e! }1 S$ j, y - (if (>= (- (angle p1 side) ang) pi)
9 a" M, `- p1 w/ I" g | - (setq angside (- (/ pi 2))). W8 _0 l- v$ V9 N8 R
- )
# O; ?6 `: ]" d7 k - (if (>= (- ANG (angle p1 side) ) pi)
! s x* {5 ^; F0 }# M - (setq angside (/ pi 2))
! D% M& C- I. B) I" U0 G+ ~/ T! i& o - )) k, Y2 T/ s- P
- 9 @1 @# K2 }, t/ F" }% `, E
- (setq p3 (polar p2 (+ ang angside) dis) )$ j8 O* _* k& A r
- (setq p4 (polar p1 (+ ang angside) dis) )
0 q. y. ]6 N- A3 f - (setq wid (/ dis 15))
" H- H. `2 N9 c4 s. ~) P - 5 J$ ]5 y% ?& c' {$ L- D* n# X' d
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
$ x2 F' A/ C) G; Y' e - (polar p2 (+ ang pi) wid)
! r! {0 P9 g: ^: v2 \: O2 s - (polar p3 (+ ang pi) wid) 9 Y+ j0 i" D7 g7 v( m3 A
- "")1 o2 C3 L; [$ F% q" p% c
- )& e+ g5 u7 j9 u8 w- e
- ;=====================================================================+ D8 k7 J) x3 W% ~% f8 \
- (setq old (getvar "OSMODE")) / L% d- r) h" k# T8 s1 T5 Z6 o; ~
- , t4 f1 v: |& ^1 u( ?
- (setq p1 (getpoint "\nStart point:"))9 n0 P7 Y5 V& X5 C, [
- (setq p2 (getpoint p1 "\nEnd point:"))$ i1 ]" F* K3 f+ W6 s5 V' a
- (setq side (getpoint p2 "\nOpen side")): c2 u4 s* ?5 B; g5 b! o+ \* e
; z" {+ _! r% H) J) M$ g- (setq dis (distance p1 p2))
6 B: V7 r( J, r- U0 b - (setq dis (/ dis 2))( A% m" v& i2 c
- / y; b; ]0 u+ w: B( m4 D
- (setvar "OSMODE" 0)+ U0 T7 c' U$ I/ E" H: \
0 X6 S& b+ P' ?: Z# i* _ a- (setq p1 (polar p1 (angle p1 p2) dis))1 D7 q c" {& O h) S# p/ M( ~$ M
- (cua1 p1 p2)
+ }5 R0 g0 l$ S6 v
2 K& s) J# r: y( [- (setq ang (+ ang pi)), T8 ~. R8 q+ v3 Z* a! s' {2 L4 K
- (setq p2 (polar p1 ang dis))( q6 g$ }4 Q/ o$ f
- ; (setq side (polar p1 () dis))/ }, W2 ^" z6 ~$ n l
- (cua1 p1 p2) 4 |* ]) L8 A7 [' t3 Q
6 x, s% s' y* h) h' V: j- (setvar "OSMODE" old)9 b5 |6 [+ T/ i Y* e
- (princ)7 x& O, b. f* {: Q$ W, X3 Z
- )( Y) S8 b5 Q2 }6 }* X. f* j. f8 I- f
% i e" g% y7 T4 w3 S- ;=====================================================================+ E2 z! ~. ^! e7 J3 t
- ;"Glue" text strings. All adopt first's properties.
' [$ O9 g5 q/ @, m, w+ B2 P - ; Author:
% {8 j! B- m, A) m, I; W" z - ; Henry C. Francis8 w. ^. g% y% N7 l# w
- ; 425 N. Ashe St.
: ^! x$ J m8 G) h" d* T: _3 h - ; Southern Pines, NC 28387
5 t) y- b" m0 @: B - ; http://www.pinehurst.net/~pfrancis+ y4 I$ X! c9 Z% T5 ^/ U
- ; e-mail hfrancis@pinehurst.net) [0 ?) W( y. v2 ?
- ; All rights reserved.
2 |2 f" ^* ~- w4 Y! L) [2 \! F - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11): M, B+ |' {! @) d! x
- (while' W, J: j% l. e
- (not
( S7 O3 I% j; N3 e- G2 ^6 d - (and2 \3 D- `/ t% w7 }/ q8 ?! d
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))
( ^9 }9 ^2 g. }6 o& I - (setq ent1 (entget ename1))3 k O4 z$ x E
- (eq(cdr(assoc 0 ent1))"TEXT")
: l6 _) E, U% ]* P+ Q$ e- R: N0 n - );and
# ], Z! k& A+ E- C2 a; {6 f - );not
$ ~1 T% ^ Q! T/ Z - );while
- B: C; L$ o. |) ?; {$ f) { - (setq old1 (cdr(assoc 1 ent1)))
- I* v( e' `& s" P" E4 S1 p - (while8 `$ L9 }- i! l ~, V
- (not
- ?5 b4 t% c3 H4 k7 \ - (and* E3 m1 `( a" j* K) h9 b" f& L9 O
- (setq ename2 (car(entsel "\nSelect second text string to join: "))), L X/ [( u2 L' c" N
- (setq ent2 (entget ename2)). G' U" b5 p9 s& P0 N
- (eq(cdr(assoc 0 ent2))"TEXT")
4 t T) u2 c4 K7 _! K9 E' b0 f - (not(eq ename1 ename2))
9 P: G6 N5 a- ?# L) U' P: O! f& ]& R* ^ - );and
4 J4 U2 {5 c* @ - );not: u8 q3 s+ y, A7 q3 K
- );while
/ a/ O* f! @8 _. Y2 J9 _& a - (setq old2 (cdr(assoc 1 ent2)))
4 n$ B" V5 f$ Z9 j! |0 P4 A5 L - (setq new1 (strcat old1 " " old2)
) h: {2 v, j" z& X - ent1
/ E+ r& P$ n- e8 r4 P - (subst (cons 1 new1)' \# G& {2 K4 `4 C& Z n6 X! u
- (assoc 1 ent1); |/ C* _& D8 b2 E7 h; e
- ent1)
, i5 P/ M6 b3 B& B) g( [! ] - );setq( F4 n3 w+ p; i/ H9 ~, R _
- (entmod ent1)
/ L* v# p6 c1 r- ^ - (entdel ename2)% o1 M$ }7 A( z" p$ d' M( l* g5 q
- (princ)
7 [' V: z) P# H) w3 O9 J; n7 [& E - );defun8 p2 \7 ~5 `, \
$ ?9 s( _/ c5 \" b" ~- ;=====================================================================8 t1 v/ i% y" G5 Z/ z
- * [. o" G$ `) B s
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
7 w$ n- x+ ]" U0 \
5 Q; R C7 k4 M, C0 w$ ~- (defun nterr (s)% W" m9 |( [5 F* F5 V1 D9 }
- (command "_.UCS" "" "_.UNDO" "E")% i- `. b# C; u$ c
- (setvar "cmdecho" 1)
# B/ l/ H, o) B: h x- y - (setvar "blipmode" 0)
. W3 o- E7 m \7 {8 W6 B- p - (setq *error* olderr)( b: B: q# @9 p, O* _2 F, b
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil 6 v$ e+ O& u6 |/ l8 Q: v
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)% h8 S( e/ T* y3 u0 f9 @8 S
- (princ)
2 M7 Z3 t: b$ X* i) F. ~ - ). b9 ~8 [; ?( d3 e4 C
- - o( T% F( |' w- L$ y/ B3 g B
- (defun tim_in (dt / p01 p02 ktra)
4 x% R) P0 h- E* I - (setq p01 (cdr (assoc 10 (entget dt))))
- Y/ V* ?6 a! b3 S. S: \/ m+ G; J/ z - (setq p02 (cdr (assoc 11 (entget dt))))
/ ]* n1 ^8 }+ f0 m" q# g - (setq ktra T)
! c3 \5 H( {" a: h; r2 Z0 j - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
8 D9 k8 f* Z. b# p9 [/ D6 |# V - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
2 `' X- {/ t, |+ J1 H8 f0 I - (setq ktra nil)
% b. z( m% \1 t: |1 i: J! N2 H - )
" {. m/ c$ n& [ K( ] - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) ( S1 B! l$ a: M8 {, f
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))% r3 x6 }3 A# A+ D9 T# X
- (setq ktra nil)" N/ l# D/ P* d) a6 A
- )
& N( }9 Y5 @3 _5 ^4 R - ktra' q/ `0 c9 U% G/ C, O
- )
( O- R9 q+ P s$ @ - 4 K9 h9 l* H6 \; O- E3 t
- (defun timdt (dt1 dt2 / p01 p02) Z+ V. ~. \8 ?! u. t
- (setq p01 (cdr (assoc 10 (entget dt2))))
R; r/ W/ r9 Q$ x - (setq p02 (cdr (assoc 11 (entget dt2))))5 T# [+ e- B! k" |; u! @
- (setvar "ucsicon" 0)/ \& C0 @6 [5 `9 [9 w' X
- (command "_.UCS" "E" dt1)
3 q: N5 j) o# y- Q" q: s) O - (setq p01 (trans p01 0 1))6 Y1 o5 U5 Q. p) ^
- (setq p02 (trans p02 0 1))
% z; _4 h; _; G [9 J6 m) s - (command "_.UCS" "")% s# Z `/ {# D
- (setvar "ucsicon" 1)
. c% j& ? O9 l H% s - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))) L) Q" E- k- t! \2 f$ A
- T
9 x& r) T2 m7 A- ? - nil. M& @, f; {: u+ O0 `
- )7 G. G; E" |2 N4 Q1 V
- )- A2 t ]2 B2 i
: [2 o- Q; D9 E0 p2 c D9 M! O- (defun tim_out (dt / p01 p02 kt)
( T! F$ K3 I4 i' Z - (setq p01 (cdr (assoc 10 (entget dt))))
# T: V0 m' c) N4 h' A# Z; ^ - (setq p02 (cdr (assoc 11 (entget dt))))
: c: U! B- J. @. R& _ - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) ' j/ K, i1 V2 s3 ~$ l4 P
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
0 U# M' B4 w c8 V( m2 I) ], f( z - (setq kt p02)6 e" Z2 R4 T4 c( @ E# u7 b
- )
) s1 K+ F! [. n0 }* U - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
2 H8 }+ ^$ P# l/ r - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
! s1 S+ i3 T8 z( L; k! ] - (setq kt p01)9 d9 N) h. w% f) d# y; r# S
- )
6 a* @$ h2 j: C% ]' R - kt
0 F. [% C/ K: ~8 i2 z - )
/ O6 e8 z% z4 Q - 1 J, S* v, K4 n; y8 B3 \, J0 T" s
- (setvar "cmdecho" 0)9 j: U) K/ N8 y, o0 ^
- (setq olderr *error* *error* nterr). {: `9 ^9 J" V- S( ]
- (command "_.UNDO" "G" "_.UCS" "")
" Y8 i" L9 y. r - (while (null ss1)
8 x; H4 E& q( M* f - (princ "\nChon tuong muon noi...")- F* O) t- {/ z! t q1 G! ~
- (initget 1)+ j$ `7 A6 \4 h6 m, j
- (setq g1 (getpoint "\n>Goc thu nhat:"))
' h6 E: A1 d# F0 C/ T D - (initget (+ 1 32))
$ \0 T! B9 y. A* k- m3 k g - (setq g2 (getcorner g1 "\n>Goc thu hai:"))- U5 q1 j" d1 T' P0 ]
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
8 g3 W! N& I6 i - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))( L9 C2 {5 C" ~6 G# J% o
- )5 i! @2 \* e; Q
- * C& {& @, b( n# g% s8 U
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2))), {6 D" F$ T# g8 B" @& k
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))7 J/ Z4 x: @$ `2 `6 R
- g1 temp)
" G1 A$ P% a' _$ m1 t9 P - (setq ss1 (ssget "w" g1 g2)). K* X4 h; k( o: D; Y8 ?1 D/ p
- (if ss1 (command "_.ERASE" ss1 ""))
# M) B+ Z9 l# { - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
* j( x9 Q- ~8 }0 F8 J! f* S" l1 \ -
! J$ A# A |- R4 y7 @ - (setvar "blipmode" 0); j& z1 m- n( B! J
- (setq i 0 l (sslength ss1))
3 T3 |' s& N2 k# H' c - (while (< i l)
2 B; O6 L; N3 U; `( v - (if (tim_in (ssname ss1 i)), d- N+ J: U% f3 }" S
- (progn
/ {- G# M7 z: A6 |2 J' F - (ssdel (ssname ss1 i) ss1)
$ }/ H @. k* V - (setq i 0 l (1- l))1 U. _* j4 X; M7 y1 p
- )
( f( c% l4 |( L0 f5 q, N - (setq i (1+ i))8 ]9 ]1 ?! B( T! r
- ) E# G7 { F8 k4 V
- )
: h5 U) U3 C% S: b8 n/ t - (setq l (sslength ss1))
/ Z1 M' l% ~7 o% X4 v4 R - (while (>= l 2)$ x" z1 {9 D8 ]; B* n2 L% M$ I
- (setq e1 (ssname ss1 0))" u0 t3 @9 ]# N! K
- (ssdel e1 ss1)/ Z4 A1 y$ [2 B- u
- (setq e2 nil i 0 l (sslength ss1))
* x) t$ A3 b/ l7 T7 U/ p- j - (while (< i l)
) D/ s; U' w" W2 j - (if (timdt e1 (ssname ss1 i))4 m C* X$ b7 g) r
- (progn
, S8 F; h$ Q) W, {# ] - (setq e2 (ssname ss1 i))5 P2 |" v( ?% _0 v
- (setq dd (tim_out e1))7 X# I/ x8 p- y
- (setq dc (tim_out e2))3 ]$ |" b" O6 A# {9 E- m
- )
i3 _1 ~, ^) K9 E) x - )( [! b' C: ?1 u4 |
- (setq i (1+ i))% C- ?+ j+ a& Z, @
- )
8 `3 W5 o: Q1 l/ p. ^' q - (if e2 (progn
# f8 A: r7 s5 F0 D/ ~. X+ E - (ssdel e2 ss1)
! _: m% S* W% z- R5 _ - (command "_.ERASE" e2 "")# ~( H2 ^; G! e0 ]8 k9 A" X/ ^
- (setq temp (entget e1))! f5 t. w/ |8 D+ R1 ^' A
- (setq old (assoc 10 temp))
% r6 X) w$ A! l+ x+ h - (setq new (cons 10 dd)) [7 Q/ ]8 D7 a1 |
- (setq temp (subst new old temp))$ j6 o7 a, k& W. ~
- (entmod temp) ~9 }( h. \) e
- (setq temp (entget e1))
. M* @& z" O: _3 p - (setq old (assoc 11 temp)): n% ^5 Y* p/ Q% _+ J
- (setq new (cons 11 dc))7 x0 b; R& P6 R b. Q' J/ h" e! T
- (setq temp (subst new old temp))' T) m$ U. y! F
- (entmod temp)
9 A. H+ b3 j# C( c) T$ [/ L - (redraw e1)
5 a, W/ s3 c3 I2 S7 n5 q - (setq l (sslength ss1))$ b. S0 y( k& W% A5 V! J
- ), v8 Z3 j4 K! l7 J& O. c* R
- )
5 \3 p8 f2 E- j - )2 a( T% q1 a% {7 s \1 C
- - \0 ~1 H) s- ~; V4 c
- (command "_.UCS" "" "_.UNDO" "E")( m! |9 B9 A, ?0 v1 m
- (setvar "cmdecho" 1)
( ^5 v/ E+ p4 B0 J; [+ ` - (setvar "blipmode" 0)
; l& Q" y% \/ q) c' R7 C1 c - (setq *error* olderr)
1 l. Y, o. Q' T7 D0 B - (princ)
5 t! i0 h- N7 }/ S7 o8 j, f - )
6 P2 C( l, d, Z - ;*********************************************************************/ q" M6 K* k5 L/ w% Y( K1 {
- (defun ketthuc ()$ M/ N& d, i) ?1 \3 U
- (setvar "cmdecho" luuecho)
) \7 Z0 h2 q" ]1 W - (setq *error* luu
! o3 C: B. y _. m6 o1 R0 E - luu nil
& p* y& L0 T; s' b# @7 E - luuecho nil' s. y# I, a* S, V
- );setq
( V: ~' A7 `$ _# x - (princ); @5 `9 @4 \1 T$ j
- )
: n% B) n8 Y9 w3 ^) w - ;*********************************************************************
2 b) r3 a" W/ ^9 P" k2 j6 H - (defun modau ()/ Z$ p; l) m# b# |, G) h! y D! {
- (setq luu *error
# D8 y6 Y) b9 f) v - luuecho (getvar "cmdecho")
7 U8 e. U' T: L+ A' i; T - *error (ketthuc)
+ R6 M) V6 P7 R( Q1 D: c - )1 w1 t2 K, v* _- p- v8 P1 _
- )
/ _1 r8 C# O1 c v3 Z: ^/ w - ;*********************************************************************
. \* v0 p) f2 c* ] - (defun xulytext (text / kytu ma sokt luusokt lui )4 S3 m; S& Y4 a( W7 W0 ]1 c3 W. O
- (setq kytu (substr text (strlen text))
; w4 Y7 i, J, n9 B - ma (ascii kytu)
/ n- k9 k% l' a& {5 J q - sokt (read kytu)
4 v6 R4 |( _) {8 | - lui 1
( @" u3 `7 ~1 k1 d) v/ Z3 ~ - )
! O- n4 E) Z! E# d3 T0 f - (if (numberp sokt)0 I8 @& M* T& Y0 [8 `
- (progn
8 _" x" V) t8 y/ I - (setq luusokt (1+ sokt))
$ ]! c9 z+ ?$ ~3 x* E( [/ U5 @ - (if (and (numberp sokt) % T$ T1 ^- Y7 a. w0 N7 L* u( V
- (> (strlen text) 1)3 Y) g5 U6 M/ c; s" Z2 Z
- ) ' L9 |7 o+ Y& d' A; y) Y
- (progn v v, f8 k$ d& O" Q8 T: @) m2 H" `
- (setq kytu (substr text (1- (strlen text)))
0 r n2 M3 {$ o! l - sokt (read kytu) / h: R; l3 \8 C3 O& X5 A7 H6 A/ R
- )4 R9 w0 C- V; V
- (if (numberp sokt) 0 f4 s- z; f+ s+ L5 E
- (setq luusokt (1+ sokt)
* _! Y) R" f# H/ Y - lui 2( z( {" Z/ \! X
- 5 w j& g# i/ e: l, N- W- c# W
- )
' D% q) e/ X; l - )
* I, {% C2 x. l. X2 z4 [# \% R U - );progn " S$ Z0 k2 @( @6 P+ r& W
- )
9 r/ e5 j( t7 H6 Y8 s - (if (= luusokt 100) (setq luusokt 0))
% B6 H0 _/ b3 ^. b5 Z8 E0 v$ O! l - (setq kytu (rtos luusokt 2 0)0 p& d% \' a7 K% Q- [+ T
- , Y4 o' C S1 k
- text (strcat (substr text 1 (- (strlen text) lui)) kytu). v5 C# e' S% N* y
- ) ^. t& s4 P8 D) T
- );progn 0 M% Y/ `# [. g ?
- (if (or (= kytu "z")
" V3 p1 {4 j$ {1 W% `0 q - (= kytu "Z")9 I5 w9 x! Z; d3 k4 g
- )
. y( ?0 f8 p0 ~8 \1 N - (setq text (strcat text "0")" N0 g M* I' x0 ^. ^
- textxl "0"
6 S$ o, M! S: k4 U1 V$ j9 k - )8 Q/ X, d& m* m' I3 E* z( a
- (setq ma (1+ ma)
' q R: e8 g) N& o. Y - text (strcat (substr text 1 (1- (strlen text))) (chr ma)). R k( R( t: c
- )
* H) \9 k! ]- | - );if
, b# P p: L% f - );if
- d5 Y. x5 W1 N - )3 F. }1 p4 T; p# r9 l* d! v
- ;*********************************************************************3 j# i1 w2 ^2 L5 `7 S
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle). a" g ? U% q& z0 J
- ;Neu doi tuong la text thi tiep tuc* M- f* Q/ D$ ?( k T9 X0 Y$ ?$ L
- (setq doituong (entget tendoituong)
. u1 i& j6 Y# k& S - kieu (cdr (assoc 0 doituong))% H# p5 v0 [+ Z( [) K
- canle (cdr (assoc 72 doituong))
9 v8 i- N- [+ [9 S7 \4 k - )
, Y4 n# r! i" e2 t7 Q( ?( c0 R. F - (if (or (= kieu "TEXT")
0 r9 | }. E: Z - (= kieu "MTEXT") I1 ~3 t! {2 B3 m( L
- ) ( w, P+ k1 ^# j0 q& R6 Y
- (progn
& |; Z9 q Q9 ^4 W0 D9 O - (setq textxl (xulytext textxl)$ v( t- v7 N4 ]& T9 J7 H
- text (cons 1 textxl)
l3 m5 w/ C3 C% ?# N - vitri10 (cdr (assoc 10 doituong))* V5 t9 x) U$ n/ x( j4 c* @
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
3 [' A# E7 \& H5 t) S4 n* [ - vitri10 (cons 10 vitri10)
- T5 [1 p: l/ E8 n0 {( _ - vitri11 (cdr (assoc 11 doituong))
' ~1 R, e- q8 w. p8 ], m7 b; ^ - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
G3 A: c. @1 r& u - vitri11 (cons 11 vitri11)
4 O5 u; Y% r& s* L5 d' B# X - dem 0
- }& o- I3 @& u: y8 j+ M - dsach nil
: ~! h7 h) | v - )+ d2 z- k# z" e! o$ ~: T- K
- (foreach tam doituong5 E5 @, h& O& I
- (cond
# i, a5 L* z! z) m; E' P - ((= (car tam) 1) (setq dsach (append dsach (list text))))
$ T. o) _* k) e; r - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
0 Z1 Z( ?! n% o1 r K/ h0 u7 R }; q - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))2 z: R) G# |1 R( x! D X
- ((setq dsach (append dsach (list tam))))
/ s8 O. [' `. s! h" x# c5 q/ w) _ - )
3 C& J5 I2 a1 K - )
, ]: W$ x7 w. D# g6 { - (entmake dsach)
& m: x4 B: W/ l: V' o - );progn
' a( m! p: P) m. n - );if) M5 B& G: z6 B7 `4 p
- ); H S) J" Z( v7 \; \' g, s
- ;*********************************************************************
9 z5 d# v& Q' e- @9 b+ s4 \ m+ P - ;sao doi tuong cu sang vi tri moi9 m) J4 s: B& \5 n- K5 o
: \. p, i7 z Z# i% M- (defun copy_dt (tendoituong )2 W4 M6 M$ ~1 z c% O) x1 i- ]
- (command "copy" tendoituong "" goc toi )
2 z4 V6 j& p! e6 r y - );defun+ u3 C. E7 s1 T6 \! J& G# n1 q$ i8 i
- 6 l# N+ Q' Z: C8 ^, y- r5 p* T
- ;*********************************************************************
) y/ E7 X' a+ @
6 x; Z# \* P h0 i9 p( ?7 l; K- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
# R2 o! I: I- M) C" a; ]4 J - ; Khoi dau cua chuong trinh0 ]1 P4 i C. F5 M
- (princ "\nCopy Inteligent...\n")$ q7 [/ Q' K& B
- (setq luuecho (getvar "cmdecho")& D! C5 r) H y
- luu *error*) k# n8 Y) i" \
- *error* ketthuc8 O5 C% s" q9 n! Z# U
- cumdt (ssget)/ Y. w$ F0 G: c* E
- dodai (sslength cumdt) J5 j, f4 L8 L: P2 X- _' S
- goc (getpoint "\nSelect base point:")6 j3 _. z( A6 z3 g4 M/ [0 n
- thoat nil; W; M$ {; X+ Z, _6 G
- dem 0' P( Q' f; \/ G# p
- textxl nil
0 [, g M: s0 ]+ T! _ Q! g T: D - );
. p, F/ l" n8 S - (setvar "cmdecho" 0)
+ l* M8 `/ E; z* \0 d9 ~ - ; Loc ra duoc ong text de xu ly$ U1 B3 A1 `5 C9 g+ r0 C
- (while (and (= thoat nil)* N/ Y3 T! A% i( P6 p+ s" Y
- (< dem dodai)
# R- E1 }; U: h' f* t" J( F0 i - )
5 \0 g/ R, g P9 r - (setq ten (ssname cumdt dem)
! n' e; B7 ?$ Z% d0 n7 _+ ] - dem (1+ dem)
8 q, w! K9 @8 w; N: a; c2 a - doituong (entget ten)
; t' S" p/ u3 U! Q$ e2 J - kieu (cdr (assoc 0 doituong)) & S' l& U' W+ p+ S5 V; e
- )
; T' a# E6 ]7 X/ ~1 b! o -
# l1 _+ S9 H; ]2 D+ g5 m5 e( H$ z - (if (or (= kieu "TEXT")
& F( T3 T* n+ W* p; ?0 C - (= kieu "MTEXT") ) R/ f7 k9 [7 `
- )3 P6 N, {3 m# [3 }! P1 l) x
- (setq thoat T
6 x; W5 C9 l v/ m( ~$ j - textxl (cdr (assoc 1 doituong))
& j1 s! k: h9 o, o4 p1 c! `! A/ C - )$ V( G( ^! ]' s- H7 I
- )
9 V* w! F- w( g2 y: K3 Y- M4 j - );, [# x, ?4 g3 k* i+ [4 E
- (while T
3 E5 r6 d2 f" H* V' { - (setq toi (getpoint "\nSelect next point: " goc)
$ Q; t& I- @* q( Z: P" \/ w4 w5 w - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))): x7 J! l5 P5 h! Z
- dem 06 Q7 j9 K# s7 n
- )
( F8 g9 `% }& P2 q- M7 U- F! N - (while (< dem dodai)
5 Q- `& h4 ^2 P v/ m8 C$ C* [: n - (setq ten (ssname cumdt dem), D% @8 N* V M9 k
- dem (1+ dem)& Y e7 h0 |8 B1 D; A: }
- doituong (entget ten); J- g" I( j8 B( W% J
- kieu (cdr (assoc 0 doituong)) 7 U) E5 Z. i6 j5 w' Q/ b8 l1 F
- )
/ T- g9 I+ u& Y* N - 1 D6 N- I) T7 T) V; l
- (if (or (= kieu "TEXT")" D3 N) @! F' o/ Z6 T" x# f
- (= kieu "MTEXT")
' P* W3 v8 {) r @' a7 R - )
( _2 t% @4 z& G, x: X$ e# N - (doitext ten)* j% t7 y8 C- B/ x1 }' C& p
- (copy_dt ten)
- |. B5 J8 `) h1 \, z5 j - 6 Y* m. i( {: V9 ^7 w0 w' @4 u
- );if; p* W$ Q+ F6 z9 |; Z
- )" A) Z# @4 I0 H8 [" O
- );while
" R1 I3 w- ]% F" }1 i - (ketthuc)
d7 a6 j2 o' m; `" @9 B - );defun @3 V1 |% P" k; @8 J( |8 G
- (princ "Type \"DG\" to start")
" d! _" z& ]3 P6 ], g, F( l" G - ;Note: bien toan cuc: textxl vitrilech& y' z, w% k9 d% I
5 t% t1 [% d% E$ g; e! J- ;=====================================================================2 v+ X% @; v5 \; d( d$ `, F4 A
- ;;; PLJOINFUZZ.LSP
% ?$ K0 i$ i( x; }& ]4 u - ;;; Joins lines, arcs and polylines using a fuzz distance7 s0 K% ? x& V* q2 [& @/ |% ~* _
- ;;; If only one object is selected it tries to join to all objects that are possible
. w9 R) E0 W) S+ U5 I/ @ - ;;; By Jimmy Bergmark1 a& N7 _3 v# g* Z
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
6 Z* D( C$ t& P% l4 b8 W# o - ;;; Website: www.jtbworld.com1 Y2 Q( L" {+ W% X n, a" T. q2 D
- ;;; E-mail: info@jtbworld.com3 p- e% y r. L7 E9 u6 n/ [
- ;;; Tested on AutoCAD 2002,2004 and 2005; T/ y/ X5 I- N3 d
- ;;; Latest revision made 2004-11-11+ `. i/ T3 E& s% ~# {
- ;;; Minor code cosmetic change made 2004-11-13
1 \# L! p" X1 c9 V1 ~9 r2 g - ;;; Bug corrected 2004-12-23( g# j) p _' A: l. S5 g3 F& c
7 V0 ` Z- S# s8 t/ X! o- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf0 |6 ~/ x7 q- G1 p
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
* e! n- u* Z/ D* @ - (setq oldcmdecho (getvar "cmdecho"))7 K$ y( I# L. a; _' b, \
- (setq oldpeditaccept (getvar "PEDITACCEPT"))" F/ l5 y% f1 ^
- (setvar "cmdecho" 0)* \/ ~. n. _; ~+ n% e% A
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
1 ]$ E) [: G" _. S - (if A2k4 (setvar "PEDITACCEPT" 0))% n, G( V' b0 g+ V0 @$ X
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))0 H* K' _* ]" Q1 i
- (princ "\nSelect object to join: "), e5 [: N- x- `; R2 }2 j0 f4 v
- (setq ss1 (ssget okObjects))
9 d4 P& Z. M& L3 J! L n - (setq fuzz (getdist "\nFuzz distance <0>: "))
+ u0 U3 K! k( K+ f2 w# F: \/ M - (if (= fuzz nil) (setq fuzz 0))6 l7 {5 j2 i, |- W2 d* I
- (if (/= ss1 nil)
0 C! b+ [- X) [; j( @& K H - (progn- z# {& r% e' X; d! y5 E) c& P
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
, X9 M R, q7 l# _8 T2 j f - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
2 P F/ q) N4 l% b9 Y - (if (member objType '("LINE" "ARC"))( _2 {$ Q+ b1 }/ K( B0 k" H" P
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")) Q- E6 V3 q; ^# K/ D/ x# `1 Z
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
4 i- G) p9 L' S! n8 t& H4 ^ - )1 A0 @) W7 Z3 @ H4 A6 m
- )7 S/ @# t2 L+ |* W" Y' M) z
- )6 e% x% }, @3 V( M5 C
- (setvar "cmdecho" oldcmdecho)3 F. i& j5 p- Z" V8 G% E9 ~( q
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
+ S B" G# s9 j- p1 F _ - (princ)$ @$ O) R. o( d0 |: g
- )
{7 x( R @ S6 ]. |
3 z* B9 [9 O& m$ a! _' d& D: P, I- ;===========================VE CAO TRINH===========================
& W% u6 b z/ F. i* G% v - ; R, e: x8 \- A; y' Y6 y @( O
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL4 ~' l1 `8 q* M2 B3 W& G, }. d
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
4 }2 ]% ~8 e8 ]' q - (SETQ OLDERR *error*- R p q! W. ]0 x+ \/ }3 V1 L
- *error* loisb)4 A7 i. g4 P& M. y8 J7 w
- (command "layer" "m" "dim" "c" "" """")
( Q: z- B5 M. v: T/ ^ - (SETQ CMD (GETVAR "CMDECHO"))
2 w, \# q5 `" b8 D' H - (SETQ NBC (GETVAR "CLAYER"))
' g4 T$ J9 f. b2 R/ r( I - (SETQ OSM (GETVAR "OSMODE"))
7 Y1 y' M$ I, w( h$ M) Q. o - (SETVAR "CMDECHO" 0)
2 s$ z4 O0 P8 B- e - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))) } x8 g# |2 X; u- ]( F
- (SETQ TX (GETSTRING "\nCao trinh:"))
1 u" n8 T4 V0 D5 R. j" P) Q5 Z - (SETQ FCH (SUBSTR TX 1 1))
A; A8 j5 d- ` - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))' E; H3 D, |! M* s4 }2 o; Z
- (SETQ CRST (GETVAR "TEXTSTYLE"))5 b) N3 ^2 k+ h T; v
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
7 }. S9 ?4 z9 U" z& ^! e - (SETQ TSIZE (GETVAR "TEXTSIZE"))
( t/ P3 \6 D4 M9 s8 l8 W9 S - (SETQ STR (RTOS TSIZE 2))5 |- v6 I: N' p
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
( C$ |' E7 ^* v6 e5 m6 z# o p - (IF (= RSIZE 0)3 S" \( g* I. k6 X6 ?
- (PROGN/ [6 C5 `$ V! T7 J1 V& i1 V
- (INITGET 4)3 ]. G7 e$ l! y! C" [# T* O
- (SETQ TSIZE (GETREAL PRMT))
8 m) f$ p' o$ G+ J6 ] - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))& s- c" A0 _& t, d5 u( {6 w3 a
- (SETVAR "TEXTSIZE" TSIZE))! z6 L7 E+ U) T
- )
, n; b7 y6 _( Q+ N: N+ b+ w* i' @9 V0 V - )
' ^) L7 M4 }% M+ a4 H - (PRINC): N. V. G' a1 m% U1 |. v
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))2 t2 y: Z6 X7 D2 O
- (SETVAR "OSMODE" 0)
- U8 M6 Q( I. p6 q0 ? - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
/ _" U' a! y% G1 ^- j4 O! n h - (SETQ NPI (/ PI 2))& q, f& f( R4 q4 y
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
5 j; X; _- e9 u% F - (SETQ PT2 (POLAR PT4 PI (* 2 TL))) w P, h$ T! C/ [8 q. T: v- L* K
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))& \6 e% ^5 S. v3 m
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
# e- m; Q* a" i9 ?" ~+ M( a. U9 n$ Z - (SETQ PT6 (POLAR PT2 NPI TL)) H4 K! B5 |, V! v
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
' X5 l9 U V% H) W& b) x - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))4 r% \: |% }& O( a0 g
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL))); P6 M# Z$ w0 W2 l1 b# e6 c
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
- j7 L6 q6 y5 i) _4 z - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
/ o) L! o* g J - (COMMAND "COLOR" "7" "")
5 _2 t. ~1 S; n9 J. } O: r - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")- J2 g! f+ y$ b. a' v
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
2 L5 }1 K. Q( M! T8 ^: _2 R3 U - (COMMAND "COLOR" "BYLAYER" "")
% |# d! G) J, Z2 e" k4 b' c - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")$ M j k$ ^) h& G( q' U
- (COMMAND "COLOR" "BYLAYER" ""): ?* [# h+ U1 W' O2 w6 J
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
, j2 S. q4 \7 e: t$ y/ k& ]& D) D$ I4 V - (SETVAR "CLAYER" "0")7 }; _$ @) v u3 U) j: Z
- (command "ddedit" pause)
$ k2 T" |) z0 N" W) l1 X: E/ c - (COMMAND "COLOR" "BYLAYER" ""). e+ n1 P6 Z- f. ?0 i
- (SETVAR "CMDECHO" CMD)! e0 P# v; }: _) o
- (SETVAR "CLAYER" NBC)
; X8 y. w! y3 d - (SETVAR "OSMODE" OSM)
# R% K* \3 P, G - (PRINC)
4 \4 _6 A% a+ B: E - )- U- i- b! m& [9 t
- 9 _, @& n, I4 r) k4 T; ?" x4 Q
- ;;; =========================== VE NET CAT CHEO (GC) =============================
4 G- U% |" F1 z. V3 n( G - 9 v& f6 P& n' A% I2 _% r
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
" V, }2 f& V: C0 b/ f" m - (setq x (getvar "osmode"))( z/ i" d7 ~2 X4 e
- (setq p1 (getpoint "First point : ")
. L$ x, g0 X. p K/ X- l - p2 (getpoint p1 "Second point : "))% o. |2 h5 T/ r6 t1 a; R) `
- (setq l (distance p1 p2))
2 P1 F( g) G! S5 X- a! [$ s y - (setq p11 (polar p1 (angle p2 p1) (/ l 5))
7 W6 R: Q7 k# P! ] p, f7 w - p12 (polar p2 (angle p1 p2) (/ l 5))) f o, C7 x- U1 z7 ]) g, Q+ ~% {
- (setq ang (angle p1 p2))& u' V1 O: _6 h! a
- (setq p3 (polar p1 ang (/ l 2.5))
2 w5 P/ Y6 I3 R& h" p7 `! e - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))' z) G- a% I9 ?# o+ t
- p5 (polar p3 ang (/ l 5))
' i$ v& w6 l: U - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))' E# G7 o6 T9 Q& ^
- (setvar "osmode" 0)- z$ V7 n+ R9 _5 ]. L# P1 d9 N, K
- (command "pline" p11 p3 p4 p6 p5 p12 "")
- s1 b3 z# z% ~ - (setvar "osmode" x)
4 [+ [ z9 ]9 {$ ?, l3 \3 B - )
. z( d; z' j* M$ E& u - ;----------------------------------------------------------------------------------
0 y6 g7 i4 V7 c9 M. Y - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf67 {- ^5 q- r+ W# Y# P1 v
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))4 O. L K) V. U
- (setq ps1 (getpoint "\Chon diem thu nhat: ")): [1 B3 }# x' E& |5 Q K
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))4 a' D0 R8 L0 [# D
- (setq sb 50.0 sh 200.0 se 20.0)
) s6 @; h: }2 {5 R# w - (setq ang (angle ps1 ps2))
( ]$ w1 g V+ d! W - (setq pf1 (polar ps1 ang (- 0.0 se)))0 a0 y$ e$ Q& Z( y/ }( |
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
& t4 [( ]) ~; V9 j - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))7 Y/ p, }+ k4 g2 d% \
- (setq pf5 (polar pf2 ang sb))
. U3 x4 L3 u2 n8 e; a - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))' V; S% u/ |, J( Z0 a, l3 G
- (setq pf6 (polar ps2 ang se))
, D: ]: O( P- X- P1 V# [ - (setvar "OSMODE" 0)
# V8 N* f \7 N! z& i - (setvar "BLIPMODE" 0)
3 T2 O7 c" d( Q- D. f, c+ p6 N - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
5 A0 n N; }2 S - (setvar "OSMODE" 703)' W! H3 x, \; p, Z1 i
- (princ) )
+ S& k1 r6 n' N. |2 Z* F - ;----------------------------------------------------------------------------------
6 n" R& M1 V0 ? - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf65 O1 w2 F" ~5 Q" Q: u
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
$ H! o! N {' y; Z" e8 m6 d u; ~ - (setq ps1 (getpoint "\Chon diem thu nhat: "))4 R7 p1 v6 U; C! O& E+ ]% z% Y$ h7 j3 o8 p
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
' Z( I& a8 |) c, Y0 y" `2 Q+ r - (setq sb 100.0 sh 150.0 se 20.0)1 E& W3 m1 M2 q% f( ~
- (setq ang (angle ps1 ps2))
+ Z& T* W+ |9 u5 M4 i4 O - (setq pf1 (polar ps1 ang (- 0.0 se)))
; D; |% x6 @1 }7 }# U) V# ^ - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
. I/ t) R0 p y; m# Z% m4 [. e - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
% z$ C! {7 z7 G* f# W7 F, g4 ^: ] - (setq pf5 (polar pf2 ang sb))
& k! [ f$ \9 o5 k3 Q* E+ w - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
7 a% P! n' B$ g2 C5 _, @ - (setq pf6 (polar ps2 ang se))$ f6 f$ N* p0 S* H
- (setvar "OSMODE" 0); `) j H+ K: d2 G
- (setvar "BLIPMODE" 0)4 j! R1 }! y9 o+ D+ R
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")/ \5 K. j w- ?9 U
- (setvar "OSMODE" 703)
$ e" q8 z6 W* X0 ^* R8 a& V/ w - (princ) )
W- G* A( ?0 a: |/ E - ;----------------------------------------------------------------------------------
4 [- G- o: V6 M - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
y- j6 Q, L( [3 V4 |( W7 {& U, W - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))4 p d$ ] l9 R; o) r" `3 k
- (setq ps1 (getpoint "\Chon diem thu nhat: "))3 {2 {% R ]' \% `) y. ?5 y1 |
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
$ j8 c% r* n* u$ O( w3 Y( Q3 X - (setq sb 100.0 sh 250.0 se 20.0). v& a \; X2 G! \ _4 \
- (setq ang (angle ps1 ps2))) ?- A( Z; z8 r0 X# r
- (setq pf1 (polar ps1 ang (- 0.0 se)))
( P& o8 J* { |# z+ C8 y& | - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
1 c) b# C5 F6 Z' n/ `* M - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))); i- ~3 P0 L/ |# K4 @
- (setq pf5 (polar pf2 ang sb))
; E: j! }/ w% u - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0))) T: l( t5 i9 i0 y
- (setq pf6 (polar ps2 ang se))
, F0 W+ z7 Y% x( t8 Y - (setvar "OSMODE" 0)
2 {! c7 z& X) S0 G! h+ T - (setvar "BLIPMODE" 0)# a* r; ]% ?7 _2 d$ ~
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
9 m* U* j% ^5 o3 B+ k! w; i3 ? - (setvar "OSMODE" 703)7 o2 x m/ s4 p- ~3 k! }
- (princ) )
0 Y. s5 k; y, H* E) o8 r v: M W0 c
+ Y3 j! V& f4 j! o- ;==================================================================================/ ?7 a. v+ {* h, F8 q* j
- (defun c:ang (/ ent pt1 pt2 ang)- P9 q# l3 @9 a3 W6 b5 \
- (setq cmd (getvar "cmdecho"))- V, h% |9 W6 F! L i9 i& @7 w/ w A8 w
- (setvar "cmdecho" 1)1 S! Y$ j% e( G7 r, K
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))+ X# S) ]% t( d* A
- (setq ent (entsel "\nChon duong thang:"))8 q- c( Z/ V: t+ c
- (if ent : f9 R# r6 |- ?
- (progn( W$ N* q# t. `8 \) c: o1 k
- (setq ent (entget (car ent)))
' A& [: B* |7 V6 C* u) S: f - (setq pt1 (cdr (assoc 10 ent)))' O" s [6 I" S! {2 _2 \6 J
- (setq pt2 (cdr (assoc 11 ent)))! ?$ ^7 q9 V% b' f
- (setq ang (angle pt1 pt2)): `; a1 V; ^2 N: b# [3 U# A
- (setq ang (/ (* ang 180.0) pi))
* z v' l$ H; n# J4 l- ? - (setvar "cmdecho" 0)8 o- ] u, A- ^! A$ E
- (command "setvar" "snapang" ang)
; M0 _ v6 K" p' e - (princ "\nGoc cua truc toa do moi : "); ~& x- F! b4 z
- (princ ang)/ c/ f/ t, }) F, q9 y
- )/ e: x/ P/ \. u" `5 W2 Z
- )
4 i. A9 n; G. h# f; d6 L4 S+ `% ^. ] - (setvar "cmdecho" cmd)- x8 u" X- c. Y+ F! h
- (princ); V( s0 N! a, U2 w+ T; n0 G6 l5 I3 k
- )
: |# `8 c2 e, R* U: s# S4 j2 a - ;==================================================================================
+ H$ H0 E9 H6 E$ D! e* T - ;============================== KY HIEU DOI XUNG ==============================
5 K& ~! {4 t( P+ N9 } - ;==================================================================================
" I$ E" I: I g - 9 A- z. u" u+ v" [; i: ~! \
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
3 J @+ K. Q2 k" y - SZ G45 G135 G90 G180 SS loi)
/ T7 [1 n; [5 e0 I, _: D- p0 b - (defun loi (s)0 ~ F" c; E5 p+ Y' u. ^) f
- (if (= s "Function cancelled")3 _2 d+ v0 b+ U
- (princ)
. R$ z/ n; e+ { j0 ?, \ - (princ (strcat "Error:" s))! ]$ l6 M. g: _% z7 t
- )
$ H. D" o, |. Q/ X& S& P) ^7 H1 ? - (SETVAR "CMDECHO" CMD); |& x( Q! t! [7 l7 [
- (SETVAR "OSMODE" OSM)" E; ?" V" _$ L( U% r
- (SETQ *error* OLDERR)
1 O1 `$ v" P2 h' P5 c! H8 R - (PRINC)9 z8 p0 j7 i3 G+ z* _3 N( R
- )" }& [: J( O6 g+ O/ ?
- (SETQ CMD (GETVAR "CMDECHO"))" c0 B a# y& T- s, ?
- (SETQ OSM (GETVAR "OSMODE"))# \0 v4 Q k1 Z$ [, b
- (SETVAR "CMDECHO" 0)3 ?; w5 b( u! |8 Y k7 h7 N$ q! N
- (SETQ OLDERR *error*
% k( m* ?# r! i4 i/ j- Z - *error* loi)
. p1 J- y9 ?+ M0 M5 Y0 A - (SETQ SZ (GETREAL "Size <1>:"))
2 C& [$ _) H( f0 U5 D9 P0 Y4 z - (IF (= SZ nil) (SETQ SZ 100))7 h x5 ?, K6 K' K) i) K( B2 q
- (SETQ G45 (/ PI 4))
+ o" [- C) J( V( N3 X3 m* q - (SETQ G135 (* 3 (/ PI 4)))
: n" s$ ~* U i% T: f+ t$ V - (SETQ G90 (- G45 (/ PI 2)))
: l1 m$ @. v2 H' v- q - (SETQ G180 (+ G135 (/ PI 2)))0 l+ E0 \; r2 H& v
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))8 ?* f! T x4 O# N( [# v) Y1 L
- (SETVAR "OSMODE" 0)
5 [3 ^8 h* y+ c; y% W) p2 | - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
0 ~9 u, b; y( L$ a7 p7 i" a1 ^- b - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))6 {! _; R; r0 b8 z. q. D
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
/ g4 k6 Y5 y) I - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
( ?, q) Q$ i* c j I: Y1 m+ ~ - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
" r. ?) m m3 W% {$ S) E% q+ E - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))! R q6 a* {, O- y* ^5 N
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
4 o3 X( O3 T v9 H5 a, o - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))5 n' q k Q' d* n+ t8 C. a2 _
- (PRINC "\nGoc quay:")
5 D; o* M9 T) P9 |/ S4 ` - (SETQ SS (SSADD))# R+ h W5 [. w/ [) X3 ^; _
- (command "layer" "m" "Dim" "c" "" """")# [: A- L c7 ~ g
- (COMMAND "COLOR" "1" "")
`" \( I. S; _6 ]7 n% i, f - (COMMAND "LINE" PT8 PT2 ""): r4 E* A, |2 H* N r
- (SETQ SS (SSADD (ENTLAST) SS))6 c8 Z3 T$ A* \0 z/ E* {
- (COMMAND "LINE" PT9 PT5 "")
1 V0 i" d2 S+ n. ^6 |0 s/ R5 I - (SETQ SS (SSADD (ENTLAST) SS))8 T$ k( k, H9 W. g8 y3 F/ k
- (COMMAND "COLOR" "1" "")
* m3 c7 N5 S0 c* P/ H2 z I - (COMMAND "SOLID" PT2 PT3 PT4 "" "")3 ?& T ~- }9 w! c
- (SETQ SS (SSADD (ENTLAST) SS))
+ ~8 |' i; j* }' ? - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
+ A( o5 z b$ b; ] - (SETQ SS (SSADD (ENTLAST) SS))& g, U! ~% O O$ m o9 ~
- (COMMAND "ROTATE" SS "" PT1 PAUSE)
* x) P: i) e5 }- s7 H- V - (COMMAND "COLOR" "BYLAYER" "")
+ H' O1 U, [7 O Y - (SETVAR "CMDECHO" CMD)
8 y% w0 E# V! f, K6 d, z, x - (SETVAR "OSMODE" OSM)
7 O4 f/ O1 _' v, Z2 K8 z% u7 z - (SETQ *error* OLDERR)
0 h2 w7 ]* R! K8 S - (PRINC)( u# b! _% m& ]8 X
- )
/ f* z+ E F, U8 j) Y/ }
9 W5 s# a5 K6 |, h- ;==================================================================================* R$ z: a+ [% l: H# R6 D
- ;================================= KY HIEU TRUC ===============================
, y7 m9 {7 \" {3 _3 h/ |$ F% z - ;==================================================================================
; F. _4 X& p7 `2 \) v - ' y6 R7 C6 I: g, @" c8 y
- (defun C:vetruc ()
4 j2 s0 q! w" m# \/ f - (setq bk (getvar "USERR3"))* y. b0 @: \: x: ?6 X# H
- (if (= bk 0)
" C8 h5 f8 y) G - (progn
6 u/ O2 I. O) ?4 b - (setq cont "1")
/ g: v3 V8 T9 M& p: ?, s - (setvar "USERR3" 1)
( H8 J7 W- m3 [ q( V' w1 V$ O* t! J - )
* _8 ]5 J% R# H: [6 I5 W" d/ \1 ~9 Z - (setq cont (rtos bk))
) p. c# V1 K: {; I2 B5 a( V& U - )
8 F0 j7 } O& |" _7 U% w5 A - (setq pt1 (getpoint "\n Nhap diem dat:"))
0 ]! G6 r0 k2 i - (command "layer" "m" "Dim" "c" "" """")
+ _9 r( o$ N. _$ H- ?( o. m - (command "osnap" "")$ M/ _, m4 v' ~& `- H" `* L
- (COMMAND "COLOR" "7" "")
5 E6 ^* x& Z& f+ ^6 n( r! f1 a5 C' {5 v - (command "circle" pt1 150 "")
1 t+ }" w/ G7 {5 A } - (setq pt2 (polar pt1 0 150))* h5 E" I+ f6 w M! y m" \
- (setq pt3 (polar pt1 (/ pi 1) 150))
4 O# ?! C' Y+ [ - (setq pt4 (polar pt1 0 300))
& B( d* `+ k* R4 P6 l. w" K, P - (setq pt5 (polar pt1 (/ pi 1) 300))" A2 Z! O0 t0 j9 k- ^% L2 Y' e; k
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
( G+ c: k$ X! Y( H - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
/ J9 ?: p! x. b+ Z - (setq pt8 (polar pt1 (/ pi 2) 150))
% l9 N7 l5 ?7 v - (setq pt9 (polar pt1 (/ pi 2) 300))9 `4 \/ e) N: [; Z0 ?
- (setq pt10 (polar pt1 0 150))2 t, x# s' N% @
- (setq pt11 (polar pt1 (/ pi 4) 150))
7 p3 r& ], i; F1 c+ O5 [! Y; U+ @ - (COMMAND "COLOR" "BYLAYER" "")9 U l; l) [7 P
- (command "line" pt2 pt4 "")9 o5 y; B9 \4 M9 m* D" E, z K
- (command "line" pt6 pt7 ""): o' J: o0 K' _6 }5 j2 F
- (command "line" pt3 pt5 ""). t0 x5 o* {% A d+ l# X
- (command "line" pt8 pt9 "")
$ i) e7 N( ?$ R$ H* K, J - (setq dk (strcat "\n Size:<"cont">"))
5 w' N: q+ r3 A - (setq bk (getreal dk))
/ Z" h, e1 k% }; u: e - (if (= bk nil)
1 \+ g. v! D A7 y: { - (progn
W! N; _+ ~3 b8 e: Z - (setq bk (getvar "USERR3"))
, U6 k( V: L! {3 w - )
9 c& F* Z1 g( H% L( P/ O$ c/ b - (setvar "USERR3" bk)" V* q$ T* J* y! Q
- )
$ R1 O. O) q0 W8 I - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
: u( x8 v! v {) i - (COMMAND "COLOR" "7" "")6 U& m+ N( A, j$ @& T8 x: q
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
, V5 I8 i' x' X- g2 J" S; V- b; \ - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") " x: k" v( u6 |+ U+ Y5 @! ?$ Q
- (COMMAND "COLOR" "BYLAYER" "")2 P/ ^5 ~- n% S$ ?, q7 h
- )# _/ ?& E2 j [
- * q0 z) ]4 J! F
- ;=====================================================================, T, ^7 Z8 L9 s1 t& w
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)* ~' y5 K; Y/ a4 B6 Q- d
- ;, O7 M2 v7 i/ V$ a8 B
- ;Jeffery P Sanders
( b& n2 k9 J# ` - ;, J, O e! X3 {+ k+ h! R( q
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)* V S( \4 @+ Z! I, c- {
- (setvar "cmdecho" 0)
0 {# ^8 b9 n! t2 x - (if(setq en(entsel))
/ X: R; I! Q+ {' ` - (progn4 e2 H! U4 \! p. Q+ e
- (setq enlist(entget(car en)))9 Y/ m9 Z' T7 V5 }9 c( `
- (if(= "TEXT"(cdr(assoc 0 enlist))), d+ \7 S p- \1 M
- (progn
- k' ^" }+ Y' W$ T& ^. ?8 o - (setq tx(cdr(assoc 1 enlist)); Q0 l( O6 `: c$ [# `
- newtx "" cnt(strlen tx): E" S- t h* T( S5 J: B3 [
- note "\n...CASE Reversed. \n "2 {9 H `2 G9 s
- ). S4 G }# V+ ^7 B2 K6 X+ q
- (while (> cnt 0)
4 q, ~( W3 V" Y" ]% Y4 ] - (setq tp(substr tx cnt 1)) S1 }# x. r2 m8 v7 Q2 t
- (setq asc(ascii tp))% D2 F: H" k! b4 i a3 t
- (if (> asc 96)
. v* C- ?: L8 H, M - (setq tp(strcase tp))
2 `/ E2 J: c; i - (setq tp(strcase tp T))
2 C* Q6 U6 \$ {4 s+ l. m7 f - )
& J" S: d" Q+ W, d! ?. g* X - (setq newtx(strcat tp newtx))" U7 A% G" b6 }! B
- (setq cnt(- cnt 1))% I4 f# l2 q. {( a/ g1 Y1 `7 E
- )
$ w/ A4 ^% f& o, a6 x) Y% ~* C3 V - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
- b# }$ w- t- ]" N7 O( v9 Z+ m/ [ - (entmod enlist)1 V! F9 c" b2 _$ x0 T2 ]9 X
- )( A$ g; l- e% z8 b
- (setq note "\n....Text Only Please. \n ")+ j0 h0 s8 |# G8 O& `7 ]7 t1 j" T% b
- )
4 }) I, d* A: y" M - )' U+ {9 @& P: W* e+ @! ^; Y
- (setq note "\n....Nothing Selected. \n ")
# L1 ]9 L4 M: t. [4 Y6 N - )- h. R" ^' g7 a* u5 g: F& S x
- (setvar "cmdecho" 1)% b3 G( M; }/ e4 D- P
- (princ note)
# v% V/ w+ w) {) C, s$ J/ G2 q - (princ)" _/ n& y# U+ \: l
- )- J) E$ j$ c. H9 N9 Y0 ~' b
* d- l) @1 }" s0 h; P- ;===================================================================== B- o; q9 r) I% d2 |
- ;==================== NEW TEXT STYLE UPDATE ==========================
* r' ~5 P, h% k1 B# w+ R/ e2 V - ;=====================================================================' J6 C! X3 G- O: E9 r! i# N+ x' X, x
- ; d6 ? i/ S: H6 g
- (defun c:nS (/ tdt ssdt sodt index)
9 I8 W; V W, ]3 c( _ - (defun ObjName (ssdt /)) w9 i2 `4 I9 F$ s# n
- (cdr (assoc '0 (entget ssdt)))" o7 p; f6 l. Y! u' ]: \
- )
1 d2 I7 J5 z- [7 n - (defun MoPL (ssdt /)
4 S' M: h3 e* b) W - (= (cdr (assoc '70 (entget ssdt))) 0)
! ]! Z) y) `5 K2 d7 v - )1 i5 ^$ o4 t3 P9 H
- (defun NoiPL (ssdt /)3 Q: ~2 Z0 w% w5 y: N
- (if (MoPL ssdt)
4 R9 s5 C. W' V0 ` - (command ".PEDIT" ssdt "J" "All" "" "X")' y: H- J* J: n1 F; d
- )
* K" E0 ^! `! m! O: K - )3 X- S! U' [5 {; P7 E9 w f
- (defun NoiLC (ssdt /)
0 a/ e0 S0 {) T, [+ q - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
4 _) {! ?1 x# W; N' u# t - )5 L- y6 H& P' w+ N2 } U
- (setq
5 ~$ r R& M! Y" E7 X - tdt (ssget)
6 i- D" o! [7 |" e, e! c - sodt (sslength tdt)
: L. ]. `- k( w, H - index 0
: n ]8 N8 d4 n6 q - )
8 f |: I# e$ a - (repeat sodt9 q/ Z- e5 G3 N& I
- (setq; Z, B# d6 v, O7 ?# ^9 v5 y
- ssdt (ssname tdt index)8 n' C* F- n& a' I4 T
- index (1+ index)
, Q$ h9 u a8 [ - )& M+ x& u' Y R& k
- (if (or (= (Objname ssdt) "LWPOLYLINE")
( _# K; R: G* | - (= (Objname ssdt) "POLYLINE")
# N4 e8 B0 |2 Z, D3 V - )* e& }3 c; @& a' W
- (NoiPL ssdt)" ` W- v0 F. G: w) R
- )& f m4 R/ _+ I! w( ^
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))1 f5 c+ G9 r: ?4 {. J/ v/ V( M1 A9 n
- (NoiLC ssdt)
' u6 b! c& C% m - )4 [) H: b" v; m5 W: a$ O
- )
8 c$ p# z( s, ? - (princ)2 Y6 k. m# q; g6 l/ e
- )
) s) m7 f9 `! P - ( ]7 V- ]- V0 |4 C( `" Q. E
- ;=====================================================================
. X: m1 E# L0 t r! r - ;;; AREAM.LSP" r# { I4 {& n5 F* Z: I: X
- ;;; Function: Calculates the total area of selected objects$ u- ~' z0 |: r! M; |" }3 s0 t) `
- ;;; By Jimmy Bergmark
9 Q# u1 S/ |' g2 M% s" b; l - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved% h7 G. w" F- U1 J* a% h
- ;;; Tested on AutoCAD 2000
1 ?" `4 T) X9 E - ! w- ~" t$ F. l, [
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)- \0 {% w/ f- }$ ^$ \
- (defun errexit (s)/ Q) X) e3 j' r7 I+ ^
- (restore)% p8 E# x$ A0 m0 o; ~
- )+ o, F6 s2 r+ I) \0 P9 E
! G' {( Y$ M" B! E3 L& D7 N4 x0 H; ]- (defun undox ()+ q1 k. c+ D0 s1 t; d1 B' D3 Y
- (command "._undo" "_E")' s3 D( ^: b; E9 R
- (setvar "cmdecho" oldcmdecho)
9 ]6 O7 t( n/ f - (setq *error* olderr): v4 i @, d# {+ g, o; o4 w
- (princ)
- ~/ B' w+ s+ s1 ~ - )- t7 Z& g6 k" g, V/ n2 \8 l
- 8 `2 @& X; {- _( Z
- (setq olderr *error*# i3 N2 F6 v9 @( x; R
- restore undox& z- x2 S$ d+ X& h. ]9 y
- *error* errexit
- y! U( y0 M) b% O8 }9 R - ), n X A( _1 W) D0 m
- (setq oldcmdecho (getvar "cmdecho"))
& e. B8 f6 Z% U9 g% F2 _% W/ i - (setvar "cmdecho" 0)" w& z7 P- m/ K6 x* _1 v
- (command "._UNDO" "_BE")
9 b4 E# f% h- Y+ M! D9 @ - (if (setq ss1 (ssget '((-4 . "<OR")1 o. j: W4 p( \! N) n
- (0 . "POLYLINE")
1 F5 y, g9 d- s0 G - (0 . "LWPOLYLINE")
( @. @1 F$ L3 B" Q# X* k2 Y+ e - (0 . "CIRCLE")
- D5 z6 @( w' |% S& Y5 J G - (0 . "ELLIPSE")4 k( y+ Z# B' m* i' ~
- (0 . "SPLINE")" e" n6 m1 e: I7 O6 H+ K y
- (0 . "REGION")
+ |5 U1 w( }; }/ Y/ W T0 m( q7 {7 j - (-4 . "OR>")6 y' b$ k5 U! G- }8 l
- )
8 m* n* y8 t) g - )
! z8 `: H9 `: D6 q$ {5 \) U - )% _- }; m* j" M2 D
- (progn
- s: J! m* O8 @$ s - (setq nr 0)" R- G: ]0 i& l1 U" B: p: q9 u
- (setq tot_area 0.0)% Y% m: e9 e9 k8 N
- (setq en (ssname ss1 nr))1 s0 N/ R, U) Z' J- V: ]+ \
- (while en
) m; T& ~1 y- U: R3 ` - (command "._area" "_O" en)
]. P5 X- `$ K( K+ X" C% J - (setq tot_area (+ tot_area (getvar "area")))
& N& _+ _) r' O; n) q4 ~+ W! \, I - (setq nr (1+ nr))9 w# A5 v0 i* Y/ m
- (setq en (ssname ss1 nr))) ^. a: v( h/ V* t5 @' X3 L; J
- )5 e3 h- t5 D+ y3 V. K9 i- z) x
- (princ "\nTotal Area = ")$ L' s: j; j6 |2 u, h1 T
- (princ tot_area)
6 l; s7 \, x; G n, O& T% @ - )
' V& |5 i6 h; e9 ^9 I3 U& r+ I3 Q2 ` - )
+ J3 d/ }$ D4 D - (restore)9 A. [4 {4 f5 s! e* o
- )4 C: P( {8 K! m1 i* m6 h
# O" s6 e ^& y( z, T1 N5 q$ S# X) @- ;=====================================================================
& I/ S, F3 c0 o5 Z+ @/ Z: M - ;;; By Jimmy Bergmark4 V3 ]+ }6 R5 K& Y! g
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved" X* I0 h# h* C5 L: m }
- ;;;
% }4 l5 H8 P) b+ d; O# M2 l3 A - ;;; Created: 2008-03-31
/ R5 N- D! f$ u* j- a - ;;;1 Q" f1 L: w( R4 G4 Z( F
- ;;; Convert Attribute definitions to mtext
2 y& k. v) y1 `6 p- h - ;;;
) F9 V: M7 p* \4 Y - ' p5 O- p( |5 f! a
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
2 ?* w& ~/ R* u( p$ O - (setq eset1 (ssget (list (cons 0 "ATTDEF")))) |! A5 R6 {8 A" i6 W
- blkcnt 08 A: a- P5 ?4 F
- )- v `8 y) ~! C1 W2 s$ o
- ) U3 W( J" F. X$ P8 ^+ W
- (if eset1
+ p; j/ t" {' P) g4 @4 G- F! H - (while (<= blkcnt (- (sslength eset1) 1)), a6 G2 t# `& @( X) T
- (setq en (ssname eset1 blkcnt)
+ K4 M( J6 l) i - enlist (entget en); t/ B/ f6 o$ i! V
- ht (cdr (assoc 40 enlist)), f6 {8 s" {/ } C v/ G
- pnt (assoc 10 enlist). g+ z" d" F# M* ~9 C; n2 k
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt): F$ X2 `3 A, R1 K8 D
- space (cdr (assoc 67 enlist))7 E3 F% N: S0 Y* X0 G
- )
# O( ]0 I" d7 @8 | - (setq vl (list. M, R$ E- g, i, h
- (cons 0 "MTEXT")
0 @' w& D2 m1 m8 I - (cons 100 "AcDbEntity")
1 ^7 N% O/ G4 E3 }; U - (cons 100 "AcDbMText")8 W2 f0 ^' A" g6 M. D
- (assoc 7 enlist)
/ c* p7 g% P V5 O% {' B: } - (assoc 8 enlist)
! N" \% v9 |" D) K) [$ f' l' S1 P - pnt
7 `" B! ~: Q/ [0 C$ V - (assoc 40 enlist)
6 t1 D" d& _ B4 D; @! } - (cond ((assoc 62 enlist))- o" n W6 T, P- O8 T& Z! G& ]
- ((cons 62 256))
; B; e% B/ d; f - )/ ^) L3 j2 T4 \% R5 _6 {/ Y
- (cons 1 (cdr (assoc 2 enlist)))
( \: h' q5 Y2 W8 X( W2 Y - (if (= space nil). q3 b/ Q6 ]1 Z! v9 g) k" Q6 _% P
- (cons 67 0)% A! M8 n+ }( p1 e
- (cons 67 space)( U: l5 X, m9 A" \! ?" f$ P: z
- )
: Y! m: u$ `1 r/ h$ }4 K; d - )% V% N6 H. b0 c. Z$ p
- )
+ K6 E( E, K$ w R; ^ - (entdel en)
7 j! J- {- P# u: [$ _! g/ x6 C3 u - (entmake vl)$ D. G% f1 ^$ k0 n
- (setq blkcnt (1+ blkcnt))
4 ]0 ^4 k: }4 w- O - )
. \/ B) r6 Z- `7 i* B - )
[5 h6 F0 t" ?( c* _" g+ R$ D6 I3 W - )8 N# S5 ]! W: \
" P J) {1 b: k* d( T8 K" Y- ;=====================================================================0 l5 M9 P6 m0 F, g8 }. s# E
- [1 k/ r6 n6 Q, a" P
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)' F7 x; C) }& C$ ]. r+ V
- ; Khoi dau cua chuong trinh
2 {/ m& n o1 f0 n6 E Z) j% S - (princ "\nCopy Inteligent...\n")
`9 u+ B5 [" H0 c, q/ B1 D - (setq luuecho (getvar "cmdecho")
& H* \. z. p5 b8 S2 _' t; k7 t - luu *error*
! N x( h1 U3 `) s - *error* ketthuc
6 Q5 }9 [, J: u- G - cumdt (ssget)
# D* B0 S- ~; u2 o- n1 ~ - dodai (sslength cumdt)
& y$ u* x6 [3 D4 @3 K0 P* _& A4 | - goc (getpoint "\nSelect base point:")
! J5 Q* R6 O' }& K - thoat nil! _. k* S7 L/ c0 a- |2 O6 c
- dem 0
1 U0 f2 B& m1 E9 ]5 v - textxl nil
3 Y0 e' v- @0 ` - );' y& O3 t( L0 }0 z( s
- (setvar "cmdecho" 0)+ `" n. k# j4 |4 C/ ^8 y' T3 W
- ; Loc ra duoc ong text de xu ly* ^& P. Z) }9 N2 E
- (while (and (= thoat nil)! H+ n% U) S' s. x
- (< dem dodai)7 k; L0 A, R% s8 P; Y8 y' ]
- )
3 |% O" I. u* [" F# ? - (setq ten (ssname cumdt dem)' t8 {# C- L8 I6 q3 a4 Q
- dem (1+ dem)
; S2 U, {3 a, m7 N' f* P/ F - doituong (entget ten)8 r3 K4 ?7 E. y( |3 C
- kieu (cdr (assoc 0 doituong))
& a1 ?/ Q; P4 N - )
3 @- {. C0 a( X. k" F -
x6 }4 v F' H7 w2 x! i0 k8 Q - (if (or (= kieu "TEXT")1 J \! D; I, _8 T0 U
- (= kieu "MTEXT") \ g) R C4 j
- )5 l/ E9 ]$ L- b
- (setq thoat T8 N0 P6 e9 j$ I* L
- textxl (cdr (assoc 1 doituong))
- `8 P$ Q7 d) [' \$ d! O - )9 r3 W7 j3 Y/ H" g- Z
- )
2 _% y$ K" E7 l+ ^. U - );" y- c' i' n! b/ d6 K, B3 t
- (while T ( D2 |, G" Y" B7 X, m& j9 a! |3 R
- (setq toi (getpoint "\nSelect next point: " goc)
' @7 i( S7 L; g; X1 t. h" H. x5 I - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
[: q3 s; N- \2 }3 V6 s - dem 0
3 s1 K7 k& h6 H4 n+ o" Y - )
; j* }8 C9 E. f3 L - (while (< dem dodai)
* k+ p3 _! z8 i$ v: | - (setq ten (ssname cumdt dem) Z( R3 d& h e7 ~
- dem (1+ dem)
$ T7 G8 m+ h7 c1 Q: C2 N& C+ Q - doituong (entget ten)
9 B+ R% Z. S" Y, H - kieu (cdr (assoc 0 doituong)) # A% T" r5 M4 K
- )
, v$ u6 A# { a0 h - 3 P! B$ ~3 w) t/ N. i) I
- (if (or (= kieu "TEXT")
^/ P+ w# t( A7 _' Z - (= kieu "MTEXT") 1 e& P% l, m6 y6 a
- )" c' e9 J8 q1 O# o1 _
- (doitext ten)
5 g/ r1 x6 u A% K - (copy_dt ten)0 N+ }& w5 ^, l7 R% M9 w! f
$ t4 _; E+ ]8 I, U2 }3 ^! i- );if; L, N, u9 L5 o5 W
- )
: R2 c# ]3 q( m, u4 a, w - );while
5 f" o9 Y" r1 F; Q. k& w! E - (ketthuc)0 N' o. z: o! M# U5 c% y
- );defun
( ]! E' P1 P6 g. W- S - (princ)2 Y: U# o( @! K9 f! o& e
- 5 a2 u5 n1 L* w
- ;=====================================================================
5 |3 s4 \/ U# U# L - ;;; By Jimmy Bergmark
& E: N% M) E+ ?8 z4 z - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
$ k) z5 k9 z+ J - ;;;% V% e& i7 s( h& w4 E8 {. s
- ;;; Created: 2008-03-31
% k5 b4 o2 R0 H! D - ;;;1 I+ E" U. C) d4 \1 R2 a5 B+ z9 S! g
- ;;; Convert Attribute definitions to text- b, y0 _7 ~7 a! j1 l5 Y M
- ;;;
5 n6 V: U R6 `$ }% g7 x& B, ~- @ - ; @; {& t( z: H" u; o( |" o
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)% L8 m# G, H; a- ~3 n. {
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))0 I& I& M* K" D! o. S
- blkcnt 0
& \) Q6 e! b" `' C' n( S! j - )
2 U; C/ e- V C. V# Z/ E* N
; V! H- ~3 D" M$ [. e3 ~$ g& T% Y- (if eset1/ G, Z1 M1 Y. K$ U! G+ r& z7 q* n
- (while (<= blkcnt (- (sslength eset1) 1))" H0 \/ z# ]# f0 [6 p8 {* F
- (setq en (ssname eset1 blkcnt). p5 V9 {$ R3 K! t3 E3 R6 h/ C
- enlist (entget en)$ g8 c3 S7 Z. x/ d9 `( M( [
- space (cdr (assoc 67 enlist))1 V6 M% C6 L2 M5 e5 ]" V' T
- ). ~3 f" x% R$ m1 s% N9 ~0 ?, t8 m
- (setq vl (list
) C% Z3 `. c3 C) ], B6 |% D( g - (cons 0 "TEXT")
" [( {5 g! k" o! ?7 N( X - (cons 100 "AcDbEntity")
& n' d9 t& i, j: O' P/ g- m6 H - (cons 100 "AcDbText") c3 j4 e& U% ~0 c0 j
- (assoc 7 enlist)7 K6 }$ w/ o* v6 ~! h/ ~
- (assoc 8 enlist)% j9 e# T( n* \; }, V5 O( O7 t
- (assoc 10 enlist)
% x- P: Q# {% U8 G) r/ B( ? - (assoc 40 enlist)
2 U0 {1 \3 ?- H) U' x - (cond ((assoc 62 enlist)); P" R5 k1 B, V
- ((cons 62 256)); @7 Q/ a" { v* u, a, [0 n S% U
- )8 I, \- c: d$ Z+ [+ i
- (cons 1 (cdr (assoc 2 enlist))): k9 K- b. i+ K) e3 k/ P3 H
- (if (= space nil)
5 M8 F+ a2 a; v9 |3 p; h9 } - (cons 67 0)$ n% ]: P! m8 Y/ `
- (cons 67 space)
$ ^5 k, I+ a0 k- Y( K# k - )) g* b7 a2 w- v' i/ |9 O) B4 W
- )( r: p. E% M2 e* u
- )
+ B* ?/ w7 U8 k# O+ t - (entdel en)
/ w7 C& l& s) \: P - (entmake vl)
5 W. |, R. D* C# n5 k4 u - (setq blkcnt (1+ blkcnt))
% D! E V7 L" v/ Q p1 f' |1 U - )
% b; o% m% v$ D, G3 a - )
- L* }/ {( B8 m. N. r4 H% `6 r& Q# w0 o' Z - )
! J7 A" h/ u4 D0 X7 S0 W - ;=====================================================================
% `6 _. I5 \! o2 a4 L6 f$ E - ;============================ Doi Truc ===============================. m- S" ?; k: _* G- p- X" m
- ;===================================================================== y6 N/ P G1 C* {. |+ ]# p
5 P- f% W6 N' P7 M& f- ;=====================================================================( w* t4 L# I7 i
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============6 F. Z# w5 ~- Q b, `
- ;=====================================================================, o0 v- _7 S1 m1 |+ e! f4 e
- (defun c:ga1 ()# Q+ v! r" w2 @: i
- (setq a (getpoint "\nChon diem: ")); ~7 h' b# T/ r5 b+ R" V
- (setq b (getpoint a"\nChon diem: "))
) U; F4 N0 ~ U+ k6 L - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 S2 ~7 f7 R# P5 i - (command ".circle" c a)
6 O9 k S+ W& ]: v8 K: y7 e l - (command ".line" a c "")4 G% [! [3 K. l3 M8 j6 @9 G
- (command ".array" "last" "" "p" c "1" "" "")
3 Y' p/ K& v0 w s) H' a) ~9 l - (princ))
2 Q/ w+ Q! e) M( }3 l; H% y - * g) F0 T$ d: k. r" Y
- (defun c:ga3 ()3 D8 ~* K+ E' A3 Y7 \7 ?
- (setq a (getpoint "\nChon diem: "))
! W0 m, n* }* b: C6 { - (setq b (getpoint a"\nChon diem: "))6 m) ^4 y, j) F7 B! m5 c/ Y7 d( x
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ }9 ]% K; A1 W9 n( Z* a$ {' C& @ - (command ".circle" c a) M% ~# X0 s/ O) |& P7 o. W3 ~
- (command ".line" a c "")
6 x5 P: k* T5 a+ d3 G) i; _ - (command ".array" "last" "" "p" c "3" "" "")
8 B# u' x5 U2 p; J& O2 y - (princ))
" i: j. l: W- O; P- }% b7 O
. t l/ [ r) c8 M3 B0 `- (defun c:ga5 ()
& t7 R6 B2 w* l - (setq a (getpoint "\nChon diem: "))1 K4 o. F1 P; H- w3 c% @
- (setq b (getpoint a"\nChon diem: "))
3 d% P) h. [2 y( _% P - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) ^: j: x+ D: |3 }. Q- h - (command ".circle" c a)
0 Q8 A5 s5 L5 c1 G r2 M - (command ".line" a c "")& v; O, z" I/ j Z* O& |7 P; D
- (command ".array" "last" "" "p" c "5" "" "")
5 b. r% s) p3 m4 X B7 ] - (princ))
4 m7 E2 {8 q/ r; }# O
. Z2 K; l. o& B8 g" t& T$ v R- (defun c:ga7 ()3 o0 |5 @& o W; Y+ @9 d
- (setq a (getpoint "\nChon diem: ")) v9 U9 U( `" m
- (setq b (getpoint a"\nChon diem: "))& o/ E3 |, b% v y/ S
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 Q, x0 B* Q; p9 M8 P) f2 S* f' R - (command ".circle" c a)
: ?8 R/ ?- ?! O0 H - (command ".line" a c "")
5 j# f; t2 K9 E, r4 w% v* D6 r( z# U - (command ".array" "last" "" "p" c "7" "" "")
l; K( l( B z+ c: b. V, ` - (princ))$ e. L2 w" m0 `6 J
- T ~9 I" K# ~
- (defun c:ga9 (): o- d( ]: z% c8 C
- (setq a (getpoint "\nChon diem: "))
, d4 o7 o3 T. s+ I: f - (setq b (getpoint a"\nChon diem: "))
" u/ a8 J0 j" u+ \ W0 s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) U2 e6 B9 ~* k5 U: L+ `6 X
- (command ".circle" c a)! P+ l$ ~9 p& Q( A: G
- (command ".line" a c "")" d5 f! M( p* ]7 A
- (command ".array" "last" "" "p" c "9" "" "")
; x, g4 B- d9 ?7 E8 @. d - (princ)). X. t# U J. c3 a, {9 c2 ~9 N
- 6 K* F' T! Q7 V9 ~& ], ]
- (defun c:ga11 ()
- o# C% m3 c' k: l; f8 O - (setq a (getpoint "\nChon diem: ")), [! \" A. c) m/ L, ?
- (setq b (getpoint a"\nChon diem: "))4 \ e: P v) E
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) C4 q/ D3 D% e* y; b* u
- (command ".circle" c a)
; n+ r: F2 ^3 D* b - (command ".line" a c "")* e: j8 Z1 A. u- i) S
- (command ".array" "last" "" "p" c "11" "" "")# n' u0 R4 [5 g* {1 j2 B5 z
- (princ))
; \3 J6 I( W' b+ | - . N ^5 ?1 W/ L a3 _% W7 m
- (defun c:ga13 (); ]! p/ K& H$ T W9 [' ^
- (setq a (getpoint "\nChon diem: "))
- s! Z9 S; E0 v9 k1 i- _5 {3 q - (setq b (getpoint a"\nChon diem: "))
* Z; S0 }1 h. K - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
g" g& M O& m - (command ".circle" c a)- K5 m1 _/ ?1 P6 [, I( b% W
- (command ".line" a c "")
- m( E8 H4 }' ^ - (command ".array" "last" "" "p" c "13" "" "")7 X9 t' V: X. v( Q7 K: t5 V: m
- (princ))7 E8 Z. ~# z/ M1 f0 q- V
- 7 K) z6 J6 v) t8 i* ~1 P
- (defun c:ga15 ()
4 l5 `" d$ O; D" J1 P - (setq a (getpoint "\nChon diem: "))0 g3 _6 S, h# [5 l* s
- (setq b (getpoint a"\nChon diem: "))& F1 K9 i2 Q1 I5 d& ?8 Y G: w
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ ]( Q1 @7 h$ t' J
- (command ".circle" c a)% |% l0 \) ^1 ]1 T
- (command ".line" a c "")" }& L) T6 ]$ a# k7 q1 A
- (command ".array" "last" "" "p" c "15" "" "")0 C& r9 c$ `" A1 k6 |
- (princ))
, }+ v% f$ o& j2 e, x' I; Z' ]8 C [ - , J. T& m9 k+ ]7 q/ }7 U, b3 q
- (defun c:ga17 ()
; B' P6 N- N# D/ R, p - (setq a (getpoint "\nChon diem: "))
% @, i m: U& e$ J - (setq b (getpoint a"\nChon diem: "))
3 J: b3 m* \+ j: _. M( c - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& M9 m& o/ | `
- (command ".circle" c a). d/ p8 a, Z" D. @9 q
- (command ".line" a c "")) H- P; U, ?( ^; A+ j+ }* x6 C
- (command ".array" "last" "" "p" c "17" "" "")
* h* z- _. {7 ^. x) _ - (princ))
3 X( f! p( L# o% [1 B - ! i# f, r |: s# B
- (defun c:ga19 ()- A# M2 B% X* A" ~" S- T" a
- (setq a (getpoint "\nChon diem: ")); ~0 f: A# |$ @' U! v: A
- (setq b (getpoint a"\nChon diem: "))
& g' d: b' ]" C - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 Y! U+ v! C5 d; {. I3 F. ` - (command ".circle" c a)/ Z0 ~+ l$ b; p- L
- (command ".line" a c "")+ n, R @$ A- f9 j% I1 g+ ~0 Y6 d
- (command ".array" "last" "" "p" c "19" "" "")
; x0 @8 ?1 p G! n5 T' H7 O- { - (princ))3 e( M& E+ o$ z
- 5 d8 U6 {# ]$ M: I. R7 t
- ;=====================================================================
% C2 C2 `2 b/ y. c7 D* o) W9 N - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============" L0 v, m7 c! d. Q% G' \
- ;=====================================================================
; Z) U' |: |: m; A- c: n/ X# c - (defun c:ga2 ()* z1 U* N/ C- c% v% ?
- (setq a (getpoint "\nChon diem: ")): _) Z5 {7 P1 O' g' X8 f, b7 r
- (setq b (getpoint a"\nChon diem: ")), b* K+ T. S( A, J3 T
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ U5 g2 H& a9 x( z+ q5 a
- (command ".line" a c "")' T& k4 N! a2 }' ?
- (command ".array" "last" "" "p" c "2" "" ""). R) ]# i+ o1 z' K
- (command ".circle" c a). R1 L: j% R& C; G( e. I$ g
- (princ))( X! a/ F8 u$ f4 m: S) |& j* U
, N, F$ `/ m) Q" S# k- (defun c:ga4 ()
5 n0 b4 p6 v+ Q! q! w9 N+ `/ \ - (setq a (getpoint "\nChon diem: "))5 o2 I' p( }; J# l
- (setq b (getpoint a"\nChon diem: "))5 d5 U0 S" C2 s0 l' [- V' _
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 ^' u/ T, e6 m. ? E) u) }
- (command ".line" a c ""); H/ N' j& J5 D3 ^. R) t. m5 S
- (command ".array" "last" "" "p" c "4" "" "")6 n! a! O7 R4 ] x" ^
- (command ".circle" c a)4 ^6 {, e9 M. m4 O+ m
- (princ))2 ~8 j9 _9 {0 u
& v6 O# d- Y1 Z# j% h$ K0 F! l4 x- (defun c:ga6 ()
" B! ~- {4 ?2 h! a# W3 X - (setq a (getpoint "\nChon diem: "))" G7 I, K& x3 {4 }- m
- (setq b (getpoint a"\nChon diem: "))& {! G4 _& i$ W v1 [
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). n0 N. ]" T6 e. P$ s3 H5 D
- (command ".line" a c "") L, i J' n, @; c4 E; S
- (command ".array" "last" "" "p" c "6" "" "")1 b. h; z* @1 o+ [. C- N
- (command ".circle" c a): Q. ^+ U S/ s5 [/ Z' D& |9 m# _" P
- (princ))8 d5 H4 E' |$ U; u/ f" t& n/ F7 P
- 0 E9 ` j; r, j7 d
- (defun c:ga8 ()
& a" ~* I' E" e - (setq a (getpoint "\nChon diem: "))8 B2 V* E, X- R3 m2 R
- (setq b (getpoint a"\nChon diem: "))3 G$ @% \0 ^- Z$ s4 c2 ?$ y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ [0 n3 @! }; o - (command ".line" a c "")2 p; w* o Y! [
- (command ".array" "last" "" "p" c "8" "" "")( A- c2 n$ N+ v# |1 k" B# u; L
- (command ".circle" c a)
. I* d+ p( Z# ]6 M' g' A' [ - (princ))) X& t. y0 O0 P: ^, M6 [
- ) Q% Z1 v3 V( C
- (defun c:ga10 (). h( j. S3 h& ^5 c) y+ Y2 \ p* W
- (setq a (getpoint "\nChon diem: "))
+ O N, K9 ^- H" }: s8 X. q5 R - (setq b (getpoint a"\nChon diem: "))
& ]! Y3 M, t; q, s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" `2 t) s! S" p. J1 G3 r) ^; D7 ~
- (command ".line" a c "")% m& ]3 Q3 Y& ~5 z- i: W
- (command ".array" "last" "" "p" c "10" "" "")8 I/ O* U+ U; Z' B
- (command ".circle" c a)
& |1 V/ m$ H1 ?, V+ Y3 Q, E! I - (princ)) g1 v7 Y% k- w1 m
- 9 ] y+ }, @6 _0 ]6 ~; G" @4 }9 U; q
- (defun c:ga12 ()9 U t N) C- F/ x
- (setq a (getpoint "\nChon diem: "))
8 q/ {4 j0 \4 P& I - (setq b (getpoint a"\nChon diem: ")), t+ r4 i: T3 A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. H M7 h' y3 k# _7 N2 v1 Z1 O - (command ".line" a c ""), d" I, `: w# t# F) Y( E7 K
- (command ".array" "last" "" "p" c "12" "" "")* s. |* |3 ^3 w
- (command ".circle" c a)9 m4 L6 O7 H& q/ h6 h
- (princ))
6 R" e' E1 w1 C+ R1 o5 _! J
* u2 s& ~# O' d. P- (defun c:ga14 ()
! Z, g9 ^# c8 a: u; ~ - (setq a (getpoint "\nChon diem: "))
, [* A# E, ~/ M8 [0 V+ X& L2 J - (setq b (getpoint a"\nChon diem: "))
: ~. E6 Z; @# M6 P - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 P* r/ z: W) ?1 }( Z - (command ".line" a c "")
% ~& S4 d" w# m4 _3 a2 A% Z - (command ".array" "last" "" "p" c "14" "" "")
/ j. r( G+ X8 V/ _- a% U% P - (command ".circle" c a)
* p5 E6 C- [# W, ]( O - (princ))1 z! l* I) S) X( H( L: D" H
* Q$ u- W x# F: r' f- (defun c:ga16 ()
# ~. Q& ~& l' o, m! |1 q - (setq a (getpoint "\nChon diem: "))
2 E$ H d* M% `2 \7 Z; J' H4 I+ U7 x - (setq b (getpoint a"\nChon diem: "))
. U; I+ [6 E6 I" f - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( p; Q' m% F+ O) d' |; {0 H4 }
- (command ".line" a c "")
& b) O" ]* s8 G6 s3 O. }5 f - (command ".array" "last" "" "p" c "16" "" "")2 Q5 Y( `. f/ F) ?0 Y) V
- (command ".circle" c a), E: |/ |8 d8 [+ M
- (princ))$ |: J; ]% F$ z9 y4 [$ b
7 K7 d3 E, Z- ~4 B) E- (defun c:ga18 ()" C5 [9 H2 T5 k: K
- (setq a (getpoint "\nChon diem: "))
R2 M; \9 Q* e* d& F8 b - (setq b (getpoint a"\nChon diem: "))
$ i# Z" A g X7 ]6 z7 m$ [3 m - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 N( {6 j* R5 v7 l8 x( o: |/ M - (command ".line" a c "")
* Y x0 B8 L6 Q3 x2 d - (command ".array" "last" "" "p" c "18" "" ""), B% ?* u9 Y, h. q# D. U% O( Y H
- (command ".circle" c a) m A: A1 ?' W* c% X& D
- (princ))
7 l/ r1 i+ y) ]) X! i. N' B: H, }
1 n f+ B% D1 J. P9 r$ J* @1 \" x- (defun c:ga20 ()
6 V4 D, }3 V0 Y6 @2 L8 k, _ - (setq a (getpoint "\nChon diem: ")), S, Y$ }- O3 @3 _" y
- (setq b (getpoint a"\nChon diem: "))
p# [! _$ r: F* c/ r& t5 o - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- v4 q5 M/ G% j& c- ?) g
- (command ".line" a c "")2 b- `: [" `6 a" s
- (command ".array" "last" "" "p" c "20" "" "")
3 R/ t' G6 N4 l8 q - (command ".circle" c a)
* i; o- F d) @ \) T1 K - (princ))3 k1 ~/ o0 a9 [6 N) J
5 u. y3 F: z: W7 h$ `8 `2 O- R- ;=====================================================================
# t" l$ J+ P6 U - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============. L; a. ?% r$ M& O% c
- ;========================== 06-11-2016 ~ 18h00 =======================! o% U5 a% i- f
- ;=====================================================================
- A( }9 C9 p+ B. a& y/ y" N - (defun c:ga ()3 Z( n# D% l- s. }# x+ l
- (setq a (getpoint "\nChon diem: "))- n: D/ v- f" t
- (setq b (getpoint a"\nChon diem: "))0 B2 q o0 m ^' p" }1 f
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ ]- m- O+ M+ w - (command ".circle" c a)
% T% ~1 T4 h& p - (command ".line" a c "")
3 ?% ]" k0 i8 Z - (command ".array" "last" "" "p" c "NUM" "" "")
& ]: Y0 R, w" q+ ? - (princ))4 W; J K7 m0 `4 `
- 3 U* t; {" e. i' X6 k% r7 v3 T
- ;=====================================================================2 h, x6 V4 Y. m4 c
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
& P! r! g9 ?3 r1 h - ;========================== 06-11-2016 ~ 18h40 =======================
+ J" w/ q- Q' \! G$ m2 t - ;=====================================================================
- J( `$ s* Q6 |* u& | - $ b |: z+ Y3 b5 n! U) T
- (defun c:hoathi ()
$ ^' ?8 I1 ^. z6 Z5 h# f! g2 }# H - (setq a (getpoint "\nChon diem: "))
, f ^/ V& Z, G9 b& t8 t- D - (setq b (getpoint a"\nChon diem: "))
3 {: T; ~' }4 K" V% U - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% c! ]' Q( b5 n# N2 E
- (command ".line" a c "")# J* A$ {3 v! J4 k. n8 J
- (command ".array" "last" "" "p" c "NUM" "" "")
" G& { a |! R6 k# ]8 |7 j% D' o" y - (princ))+ V- V6 l0 k' \ W6 X3 H
- 9 h( K: W' }* \6 y5 D
- ;=====================================================================# `# F% `5 `# u D8 u7 I
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
* r2 _1 ~& O+ H0 Z: V: Z- w2 V, Y - ;========================== 03-11-2024 ~ 19h33 =======================
4 y* e% i! Z; W% O* _ y! C8 f8 n - ;=====================================================================
. @! h; m! @# y' }( }3 ]& z
0 I1 l; N0 E( K( ^- (defun c:cung ()
# d: n( h6 X9 Y: B - (setq a (getpoint "\nChon diem: "))/ b1 @3 _5 }3 O, O8 e
- (setq b (getpoint a"\nChon diem: "))
! P& z% g- Q- U4 A# b0 J: ^ - (setq c (getpoint a"\nChon diem: "))
5 B/ r- m2 U- N1 z% Z1 D: G+ u - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 q8 \% U9 J7 Z% `% g - (command ".arc" a b c "")
' _8 e$ [! \$ D/ q) t - (command ".array" "last" "" "p" c "NUM" "" "")4 R2 J" o* g8 N6 I! {
- (princ)); [' l. `# E. f# P5 Z" ~
8 b$ ~, W7 i$ ] d- ;=====================================================================& [; H% y% d' ]7 t1 H- p
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
: x9 [9 s# h1 h9 R+ D5 t - ;========================== 03-11-2024 ~ 20h02 =======================# r2 j! K3 K; d
- ;=====================================================================* {" \* e# z& T4 F5 R0 F
3 p6 `& C$ v3 f% g- (defun c:hecloic (): x& H: b; N& u/ F# `: F: L3 a
- (setq a (getpoint "\nChon diem: "))
# d' m# m$ t/ |4 p' o - (setq b (getpoint a"\nChon diem: multi "))( z" ]+ x" s2 b
- (setq c (getpoint a"\nChon diem: "))(princ): I+ _: B: h' z! B2 v* t5 r5 B+ [ o
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, |' m3 V8 [3 u* _8 P - (command ".arc" a b c "")
7 y4 J& Y. L. G/ c) f, k- x - (command ".array" "last" "" "p" c "NUM" "" "")/ r# ~# N4 J* h( C* H6 v A
- (princ))4 `1 |: s: g' u6 w! @
' n% o' j/ N1 O$ c& a. {$ f- ;=====================================================================; K! o# E9 g2 ^3 @
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============: c3 S: ~- L* a, `& ?
- ;========================== 03-11-2024 ~ 19h38 =======================1 ?) `" y/ V+ A2 l( J3 o
- ;=====================================================================
3 N& `& k6 K/ z U' X
" w& ~# {$ P- G: B" o0 k( K- (defun c:gay ()' ~$ j+ ]/ k% `, J: h! G3 n
- (setq a (getpoint "\nChon diem: "))
9 z, w. g9 T4 J8 @ - (setq b (getpoint a"\nChon diem: "))# [( p, P8 {8 ~% x
- (setq c (getpoint a"\nChon diem: "))(princ)$ P+ j4 `; D9 j: t& Y. `% ?0 K
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
H- ?/ W% V; t; X: i. T - (command ".pline" a b c "")
" U6 c5 q& L W6 X5 Y; _ - (command ".array" "last" "" "p" c "NUM" "" "")& T; A- b4 j9 x8 o! [4 _. ]
- (princ))+ i' m6 u* F9 S6 E
7 g9 z# }; z- s* F/ f- ;=====================================================================
8 X5 y. {! Z$ K$ r, c H - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============ K9 a* w9 l0 p& C% i2 O: _
- ;========================== 03-11-2024 ~ 20h02 =======================
1 v/ {; f: a5 h. w - ;=====================================================================
$ S. p1 p' N, g. _5 {- W9 c - $ N: v4 n/ V7 ]0 V
- (defun c:hecloit ()9 {. `) X5 M; L: s! E
- (setq a (getpoint "\nChon diem: "))
1 M e' F2 e& |2 m* A& h |$ ` - (setq b (getpoint a"\nChon diem: multi "))* F4 q7 u4 a4 v: `3 d3 m" q! b
- (setq c (getpoint a"\nChon diem: "))(princ)
. \# E- [( L8 U* ] - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" J5 o: ?& j& l' j
- (command ".pline" a b c "")* N% g$ ^* |8 p4 \( g2 p
- (command ".array" "last" "" "p" c "NUM" "" "")
5 s8 C( C* k; v" }0 Z$ Z- \3 _. c - (princ))6 C& }1 e& v( i% m4 o2 }( C
- ! @1 h/ ?2 \" f% Z6 z
( M$ X, k0 a ?. J b! ^' i- ;;; ============================ Merge Hatch =============================' O2 [) J) g% C2 C
/ D" L. [3 h& y- (defun c:mh (/ ss entht sl i dt dtht)
9 X5 b& X) ~4 _. _6 M% u6 ]7 t# x - 7 U& x5 T/ b: x3 @3 N) F
- (princ "\nMerge Hatch - free lisp from CADViet.com")
# a0 c) p/ q8 C; B
. |) Z9 `' e3 \2 t" _3 }6 M8 @- (setq
) c' p* r& O {4 N& j0 o& s/ x - ss (ssget '((0 . "HATCH")))% U# d7 @$ ~1 J# a& g& ^5 F4 \$ O! J
- sl (if ss! z/ r+ I1 |1 d/ a, h; L4 c6 r
- (sslength ss)
5 K8 X* `, x+ O, i - 0
, o5 ]6 m8 Q7 n - ), _$ K7 _) O7 ^/ w& B6 _. H9 w
- i 0% Y/ d4 H2 K% v- z' {" F
- l 0
; F1 [0 p1 H _3 [4 z- c; R! N$ e - )# m0 [- m% k. k
Z5 [4 e/ S: F- z* N- (repeat sl; B/ j: G- i/ P/ D
- (setq
( r9 Q2 i a# z. @3 d$ M& x - entht (ssname ss i)
) b6 w1 |0 [, p# s7 T* ]2 C - dtht (getbdata entht), W, W* w- I* e! N+ M/ k* L; b
- dt (append dt dtht)( `' X3 S+ z5 p# p6 I. u
- l (+ l (cdr (assoc 91 (entget entht))))' ~8 n( Z( l* A9 @2 j
- i (1+ i)
. |( M/ p' r7 K6 ]8 D6 _! s - )
2 ~+ u/ G4 M" t* k - )9 R4 g: L6 j5 Q" V
6 }8 Y' z, O$ L% O0 K" e( d W- (setq ent (ssname ss 0)7 w0 @4 F- ]6 y0 Y" q
- ss (ssdel ent ss)
& U4 l5 a! t, b. N& C! z9 W - tt (entget ent)
, ^ d Q# z% a# f0 k/ x" D - duoi (member (assoc 75 tt) tt); @0 s$ C1 @$ T
- dau (reverse (member (assoc 91 tt) (reverse tt)))
' ]) @- C# S8 o4 ^5 y: `0 L% i3 r D - tt (append dau dt duoi)4 x, B. E2 }4 ]7 F
- tt (subst (cons 91 l) (assoc 91 tt) tt)
' f" n& Y1 F( F' V- d2 k - )
) b1 i$ H1 I/ I# K. g M9 } - (entmod tt)1 `% R O( b7 I% @" x; T
$ |# V# s2 |% t- (command ".erase" ss "")
# T( ~: T' @% u! b$ ^: d! e - (princ)
4 F& I) F8 p5 P3 {) f: M V - )# R" n+ u0 u Q! _ A3 N1 [
- 7 `! D) o" O3 g1 m- E& ]4 N/ ]* T
- (defun getbdata (ent)# d) \" F7 A, T( ]0 p& N
- (setq tt (entget ent)
& _ t& `" V$ a T! B7 g+ P/ M - tt (cdr (member (assoc 75 tt) (reverse tt)))" ?8 ^, K0 r9 o% G) R+ l
- tt (cdr (member (assoc 91 tt) (reverse tt)))! D3 i$ D' ]' V, J- C g
- )( k1 J7 q( g* V3 U& K% ]3 Q
- )
. l! P, i8 l; V
# y( j6 @! m1 R$ S- n
: D: c5 D% z! ^- (princ)
& S. i: L+ l' B - \( ~& J P/ S! [8 M* t8 s
- ;;; =========================== CAC LENH LAYER ==============================
; e/ `' m0 h& p$ f - ;;; =========================== Layer hien hanh =============================
0 x- @9 A T2 C. N% K. ?/ |* m
5 F3 C8 }, t( j! v# {+ Y. d- t- (defun layset (/ LAY) (setvar "cmdecho" 0)( P7 {- u, t" k: z$ \
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))( t; x+ ]3 y4 U$ q
- (if LAY (progn
, X% N# U4 u- k# m( \ - (setq LAY (cdr (assoc 8 (entget (car LAY)))))1 i5 N9 Z, y9 Y4 d6 c- h
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
; e" h4 b$ |; q; _. n) Z; X' x - (progn
/ Q& l: ^6 e1 Y3 A" h" F2 e - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) * B( v X5 Q3 n
- (progn F, W) K* d/ i8 K
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
2 @' P( a! C1 ~& U( W - (defun c:LLL () (layset))(defun c:LAYSET () (layset))4 E; y4 P+ O0 d: |! P( `
- 9 ?+ F9 H) U$ t
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================$ C! N& x3 R. Y7 u4 ~
- ; M1 j9 s1 j0 m( \' S( S
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
) E6 D: j. r: g. E+ L) N/ Y - (if (not (setq SS (ssget "i")))
. r& g, I5 T6 w, } - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")& d5 n0 i4 ]8 q, t7 i6 Z
- (setq SS (ssget)) ) )9 p9 U% L! Y3 E
- (if SS (progn: E+ x: o$ ^7 _ [( N; _: H
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") ; m, x X& `' E: q4 G
- (if (> (getvar "cmdactive") 0) 3 {/ `! E2 p; l- I
- (progn! D4 W8 P8 |: R9 B1 F
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )4 G; z* z& v% O' @
- (setq SS nil) ) (if (> CNT 0)
. ~$ P2 I" D/ e - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
+ K- l7 [) `9 R* E. [( i* a - (if SS (progn: Q4 {+ N+ s/ H5 x0 \
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")% L* K: Y6 z9 ]% t% U" f
- (if (= (sslength SS) 1)
' P7 S' `6 Y& u! q2 ]" O - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))5 v( m2 h. g" Y' U& m5 H
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end2 u* ^1 q4 V7 C% p
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))* _- A3 q) }3 z
7 {2 v5 I% x* @; N4 M- ;;; =========================== Layer Iso ===================================, c5 Z# j+ g- E" Z
- , W+ F. B% I5 J) b/ V" K
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
2 I6 W) A3 B1 N# v - (if (not (setq SS (ssget "i"))) (progn: f+ m7 ~7 J7 ~0 @2 E2 o. Q$ Z% u
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")* t0 Z2 ^+ m) X2 D
- (setq SS (ssget)) ) )" |, I$ o, E$ X' n% r, }
- (if SS (progn (setq CNT 0)
6 C4 [ T2 u' @7 W: P- | - (while (setq LAY (ssname SS CNT))
" Q/ a4 v0 ]$ ` A+ F0 q - (setq LAY (cdr (assoc 8 (entget LAY))))
" Y& P5 a% n4 X7 E5 |' o6 |" V - (if (not (member LAY LAYLST))' |4 C+ k6 m8 S4 C8 J# W3 I" r
- (setq LAYLST (cons LAY LAYLST)) )% t3 m$ L0 s/ S, F
- (setq CNT (1+ CNT)) )
6 i* m$ V' Z) g/ A. _ - (if (member (getvar "CLAYER") LAYLST)+ n# }4 t" ~( _& C. U& H+ Z
- (setq LAY (getvar "CLAYER"))* t7 C5 K0 c L: K4 H9 _' F
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
4 m1 \3 Q: r5 s1 ]* F. Z, Q - (command "_.LAYER" "_OFF" "*" "_Y")- L& J/ r) ^$ n9 f2 N8 u
- (foreach VAL LAYLST (command "_ON" VAL))
* M+ V7 i& b, d# S. ~9 z+ p - (command "") (if (= (length LAYLST) 1)
! H0 I" j( \5 u1 `3 j! f - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
- F [! U8 M& N" `/ } - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "& I; v* d, w; C; i# P1 G9 G
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
1 R v {9 M3 r$ e) ~" [ - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))
$ r9 d+ {0 `5 w% v x: k2 ~ n$ _. B
6 B7 i, S2 }* A- B- ;;; ========================= Layer Match ==================================! m$ B4 B9 \: ~: G- y
- B, Z2 x5 X+ T) I
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
# H @- m) E) ?7 H, a2 l6 ~ - (setvar "cmdecho" 0)8 L. C- p4 H) i+ a
- (if (not (setq SS (ssget "i"))) (progn! D/ X" \1 _9 V
- (prompt "\nChon doi tuong muon thay doi Layer : ")
# h- p6 s4 n& \5 Y, a - (setq SS (ssget)) ) )
) t3 i$ d; |: b8 j" @0 B - (if SS (progn
6 N% v% r' \3 S* e$ e6 d - (setq CNT (sslength SS))! o8 D3 b0 `5 j9 c- A
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
$ X) j& S i2 B" k - (if (> (getvar "cmdactive") 0) (progn/ M j+ ]! \5 Y: D* i( b* u; j/ P1 S7 w
- (command "0,0" "0,0") (setq SS (ssget "p")
6 |( b' X$ K, }, Z! U5 `" t \1 n( S - CNT (- CNT (sslength SS)) ) )+ T! A* V Z$ r) t' n6 E5 N: \
- (setq SS nil) ) (if (> CNT 0)
6 b, u! I$ ?; B: J+ f5 Y# z - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )6 a$ C- e2 d9 w J
- (if SS (progn6 `9 Y3 B7 R7 b
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
) N3 m1 Y7 [1 L! y - (while LOOP (cond
3 l( {! f% Y0 m5 i2 e - ((not LAY)3 H1 v2 F; h9 o5 b5 ]' N
- (prompt "\nKhong chon doi tuong."), G0 Z* e* x# D% C9 W
- (prompt "\nSu dung layer hien hanh? <Y> ")
; M: v% _+ H* _ - (setq ANS (strcase (getstring)))/ s/ Y* h) I1 g7 o8 _# \- B% j
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
. p2 T6 |- f) ?. g: s - (setq LAY (getvar "clayer") LOOP nil ) ) )* W1 _# C! [* c% c1 G* @' a' B% s
- ((listp LAY) (setq LOOP nil) )0 l1 p8 K2 R0 m% T+ d. s1 _
- ((= LAY "Ten")/ g0 U: u" b8 [8 h! C; ~
- (setq LAY (getstring "\n>Nhap ten layer: "))
* ?0 V! C& ~+ ?" b+ }, y, _( z6 `" D - (cond
' |1 t, E& S+ M) G - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
; o2 _( i8 C/ I: ^& E5 q+ v - ((/= LAY "")
! i. m% E% L2 Y& ^- v1 z - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")# @0 N# o+ w4 Y+ P7 p2 C
- (setq ANS (strcase (getstring)))5 u/ K7 L9 ^# s- S+ S9 g6 F
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES")), f5 `& o/ x4 c0 O; T' \" P J, o
- (progn
/ @/ i9 J* O. f& d - (command "_.LAYER" "NEW" LAY ""): H( N4 j6 q; R2 i4 l* R* V
- (setq LOOP nil) )
4 z ?) M B9 B. N [9 u& m+ i$ C - (prompt "\nLoi ten layer.") ) ) ) ) ). O( `3 c2 K% B; X
- (if LOOP (progn (initget "Ten")/ s$ ^, Y' \+ I
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
2 M0 ]4 v# v* Z' a7 E/ G% o- N# ^ - (if (listp LAY)
& { F% g, \1 t. f - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
( L3 w2 Y0 L" C- J; Z% E - (command "_.chprop" SS "" "_la" LAY "")! ^1 a4 Y; W4 _" e3 E" n+ M' |
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
- w8 Q# A( w7 D - (if (= LAY (getvar "clayer"))- w- g( ^' S9 x- A# J3 Z
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
$ l% B7 A* v$ B+ \5 j& n( O/ d - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
, T* T' A/ G6 C$ A9 L: R' w& v. @ - * w. Q8 }8 S* z- |* L% A- \
- ;;; ============================ Layer OFF =================================
# u, R$ y/ z, K( A! d; [ - ; l& k1 N7 S8 D0 a4 k
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)2 T9 C l0 H4 n/ [' w1 J' U# l/ P1 F
- (SETQ SSET (SSGET)): u( @+ w9 a2 _; y1 M
- (IF (/= NIL SSET) : h0 ]/ e+ T# W% Y8 R5 t( [' ?6 Y* F) H
- (PROGN4 t$ R* e* s1 y+ v7 } d
- (SETQ SSL (SSLENGTH SSET))
8 ]# M- Q0 M* n0 ? - (SETQ LAY "")
5 x* Q z5 \% m4 M0 o4 i - (SETQ I 0)3 K) y# _9 x6 m+ A: n
- (SETQ MODE 0)
) L N6 X- T$ C, D2 Q! P" W- V* z - (WHILE (< I SSL)" q4 M! t! n6 T
- (SETQ ENT (ENTGET (SSNAME SSET I)))
9 c8 m9 x$ L5 Q+ u - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
0 j# L) V+ X1 E3 ], X7 Q* f( E* a - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))- Y2 C/ N; y! I u! [
- (SETQ I (+ I 1))
4 J% h- o2 Y+ V) I5 |( q6 j0 Y - )% F$ z- B5 y3 O
- (COMMAND "LAYER" "OFF" LAY "")
! X; x1 C) P% O, n @! N - (IF (= MODE 1) (COMMAND "") )
' u# g+ H* T7 Q2 g& l - )
* s1 ]7 V, f3 h9 f9 S - )
$ `% v) H! ]. n/ ~ - (PRINC)) B: i! f" Q% C% \$ G
- )
/ C9 {" X- C) N P$ a - - K1 g0 Z" G, y/ `0 A
- ;;; ================================ Layer ON ==============================3 h" l7 z6 s: n! m4 E
- ' v; q1 A# G% Z1 X' W% r- f
- (Defun LAYON () (setvar "cmdecho" 0)
( A/ P* f( i5 z - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")+ g# c, T' } J/ x% G
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
C" Q$ I7 B/ ^0 r+ ^ - (defun c:LAYON () (layon)) (defun c:LOO () (layon))7 K# k& E9 \( S
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
9 i% r% O; J% G* l' X j% U4 v n2 ] - 3 a A. g# W4 M" y' F* O
- ;;; ============================== Layer Freeze ===========================
y3 b! r8 x0 v) L7 K4 k" C
9 j2 e* \2 W8 ^* b" i- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
; i/ X% \; S8 T/ c( s9 Z G: ? - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
& z/ c3 n0 g$ L; z0 x" Q - (IF (/= NIL SSET) (PROGN2 C) K" O1 }7 u, D
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
J& K- F) i0 e) @/ s - (WHILE (< I SSL)
, u _ {! o7 @$ J3 o) q - (SETQ ENT (ENTGET (SSNAME SSET I)))
3 n/ Y% Q! y1 s* {- Z c: j: l - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
/ t" L' J' R% z, U - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))+ I. Q5 G/ `* f0 Z, y
- (COMMAND "LAYER" "FREEZE" LAY "")
6 f+ t9 R7 d2 P* J6 b - (IF (= MODE 1) (COMMAND ""))))6 N, ~0 m9 `4 o% a
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
9 ]4 b. R/ Q" t+ a% \; ` - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
0 L( L- H) P* g' X" j! v - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz)). G' J: C+ S6 ^/ m
- 5 J, S& B, B! \7 i6 N
- ;;; ============================== Layer Thaw ===============================( |+ }1 `8 @- b5 S
- T& T n8 U. x% i+ h7 R- (Defun LAYTHW ()
+ {+ f4 q H! x - (setvar "cmdecho" 0)
+ M4 T" h( V- _ - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
$ G: {4 N; v% V - (Command "_.LAYER" "_THAW" LAY "")5 z/ P9 a: K0 q o; Q6 I
- (princ (strcat "\n Layer : " LAY " da THAW."))
3 ~' c, h* Q" N6 l- X - (princ) )4 M* P N% L- o( N4 W% X
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))4 H v* L H6 y9 B' d! z) Z
% h1 N. V7 e9 h- ;;; ============================== Layer Lock ==============================
; B- u* E: a% K' M0 N5 t - 8 p$ R% e. \& }) i; V! }
- (Defun LAYLCK (/ LAY)
: C( R7 Y+ X5 U2 h2 ? - (setvar "cmdecho" 0)
: I }7 w- {( m4 M; ~+ o/ g D - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
" U5 `6 D( `- Q6 x - (if LAY# X4 o" f. l6 g- { | Z( }
- (progn. T P3 p* u, @4 T1 A, {
- (setq LAY (cdr (assoc 8 (entget (car LAY))))): B: v; a8 Q7 ~
- (Command "_.LAYER" "_LOCK" LAY "")
0 o2 I3 X( H2 `9 Y' v0 q7 K - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
& M8 ^$ n( W* R - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
8 Q" ^% m3 f* t0 Y) \6 U; k - 1 ?& t/ F: w0 J6 Y. F% ]
- ;;; ============================== Layer UnLock ==============================: y) x3 N; l3 G3 V& w4 N
9 y# t( |+ p4 y' j, A- (Defun LAYULK (/ LAY)/ V4 B/ @9 b3 ^2 Q. a0 l
- (setvar "cmdecho" 0)( X# \) ?8 o+ P8 k: G% @* G
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))3 R6 S, F1 w6 a# R1 G
- (if LAY, o: |0 \4 d' M$ g- W
- (progn' e7 P, }" A9 X/ n; `2 w
- (setq LAY (cdr (assoc 8 (entget (car LAY))))): n, { w! R. B* d# e
- (Command "_.LAYER" "_UNLOCK" LAY "")3 Y- t9 @3 @8 c" ]$ G
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )4 r7 B2 \" T; } W1 |& a, T7 r' B
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))4 N/ C: K2 K/ M
- - l. ` q( Y4 w$ K
- ;;;===================== Delete all objects of Layer ======================== s: ]1 h: j% ^
8 D T0 {: P! }+ m0 z* Z& d- (defun DELAYER (/ ocmd L S)
) S7 @1 C8 h/ r - (setq ocmd (getvar "CMDECHO"))6 ~2 z& m7 h( y) k# w
- (setvar "CMDECHO" 0)
9 O3 `6 r' a1 C$ o" j) u( k - (setq L (strcase (getstring "\nLayer(s) to delete: "))), C+ E" A, ^! m
- (setq S (ssget "X" (list (cons 8 L))))
3 I$ V% ?: W5 f7 L( I* Z r( ` - (if S - S" ^/ W" B2 `) Y& T+ K) P
- (command "ERASE" S "")
4 _( _ C+ t( b4 ]# {# w - (princ "Layer empty or not a valid layer name.") ) : L# ^3 g( M+ }! X5 k- p3 m- q
- (setq S nil)
" C7 N* V$ a! W - (setvar "CMDECHO" ocmd) . C( ^: u6 _0 P% m7 p! ?8 i
- (princ) )
- F! P9 z. \+ ~5 ^7 Y( i - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
3 l) M$ t: W; l7 O5 v - $ `/ A Z0 }: ~% Z( d4 j0 C
- ;;; ========================= HET CAC LENH LAYER ===========================
+ Z ]+ n& v, b K8 b, F. M - $ `4 @# |" e( B' h0 V# Y
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
( r5 T$ W, y3 M) ^* B
4 x: p! c. ^/ F# I6 Z- (Defun C:EET (). P5 [4 {& Y( D" M( T, B3 J. Z
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)+ |" G( C0 L+ x: c9 j) ~' k
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))- E. E" Y" `5 Y4 s) o
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))# A' o3 `. Z; C! w
- (Setq I -1)
3 W4 {# H x/ ^ - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")9 a0 x0 p" D, M% T2 j% }5 e7 y
- (Repeat LEN4 V y7 e. E8 D# S! r D; l2 c
- (Setq I (1+ I))
" k% {( ^5 X: h2 z' b% F8 T+ o - (Command (List(SSname SS I) SIDE)) ) (Command "") [( C3 D2 v$ Z5 s+ y0 G* I6 a
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )8 c/ R* J8 M k+ G3 a7 S8 l
- , Q1 {5 D. ?! y3 A
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============! D" A8 t) k# x8 U7 `$ F# H
4 s$ u4 }' X8 M* k& v$ g- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
7 F( h/ V9 @2 ]; B/ e. I ^ - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
9 ^: ^9 D6 U2 P: t; H, f4 }+ J- b - (setvar "osmode" os)- q; e4 X0 p8 b& H" J* k$ [2 ^
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))* f6 ?8 e# I. Q* i
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))* {2 p R+ ~) B+ S2 X* L( ^
! [+ _3 M' P* |; v8 _: H f% Y- ;; ================ Change width of polylines =========================* [" w2 L0 |, U; x% b3 y
- / R$ P8 U1 S- y% @1 j
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)$ D; W% S' X% `* @8 w; U6 C- X8 Q
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
( D7 ^/ k4 C+ @0 W9 G' c( d; r$ } - (setq b (ssget)) 9 @% Z& p- l" ]* u
- (setq sophantu (sslength b)) X* M3 D* O9 l1 q6 o6 C
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))/ R2 S8 b$ j4 v' K9 o+ \4 `
- (princ "\nDo rong polyline <")
& A1 U+ _; z% i ~* `' F v - (princ ha:wid)
9 X/ x7 g( N5 j3 v3 N - (princ ">: ")
. W5 `7 t; ?( v a. {0 B6 o- N0 ]/ Y - (initget 4)
" f$ `) J6 e& c6 f1 e0 N6 A - (setq ha:wid (getdist)) m/ r. F6 d1 k8 A, H4 c: v* P
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))9 x- e/ ]* s+ r& g, B4 j7 K
- (setvar "tracewid" ha:wid)0 l" m# t) P; e+ Z! w
- (setvar "cmdecho" 0)
2 V& |: r& h% a) P - (setq sodem 0) 5 i; Z$ H9 d% \9 a3 t% o
- (repeat sophantu
7 s; h6 [2 J, u* q& C5 T6 e - (setq a (ssname b sodem))
) o% ?4 f! {0 `* D - (setq list1 (assoc 0 (entget a)))
( _" b( g/ `( A4 |- g/ c# m: P - (cond7 v% c% B; Q1 z7 b! S3 M
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
9 H9 \$ _! [# a5 n9 P - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) 7 i7 ?( j" d6 {/ i. P! s" k: x, b
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))$ z1 `4 Y; w; b. x0 l
- (defun c:wp () (wp)) (defun c:pw () (wp))
; M; |/ Q% [! Q4 Q. i$ U! g. x
' A) Z5 q: H, ?+ W9 n% |* n- ;; ================ Change radius of circles ==========================
) |9 V: [: J& X5 f; D6 [3 \1 s$ ~
& l5 I: Y0 F9 D$ O7 M- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
- c; c ~' n% n; p0 h6 T - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
+ m, B+ {9 o/ I% I& o/ Y# k - (IF (/= RD NIL) (PROGN (SETQ I 0)
& H/ Q' H3 B* K9 H q - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )+ o8 \! k* m) D
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
0 g$ j1 n* v+ \. y - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )4 Z, B/ j# K; M; X# d& B
- & M5 r# e0 j4 X" ]3 N7 p1 S: t& Q
- ;;; ============================== TEXT Hight ===============================6 w' I4 m# J2 M' r$ Y
- & i8 v5 q" c. R6 q
- (defun texthght (/ ent hght)2 O' S- ]& q) L" r& p* n4 I/ _
- (setvar "cmdecho" 1)6 E1 o% I: q* U, W4 D" l
- (prompt (strcat"\nSelect text entity with required text height"))# L' R7 T* r: O6 C S! a! f
- (prompt (strcat"\n."))+ e5 n2 O( ^9 H8 {
- (setq ent (entget (car (entsel))))
4 N' K; w$ ~' R - (setq hght (cdr (assoc 40 ent)))
/ B: F4 F+ N+ p0 `# r2 p - (prompt (strcat"\nText height now set at "))(prin1 hght)
& ~( V, ~, p% C - (prompt (strcat"\n."))
1 ]: S; j" g5 Y. {; N+ t - (setvar "cmdecho" 1)
: z% Y* M4 n6 D9 P, t/ i' W& j) { - (command "DTEXT" PAUSE hght "") )6 @# t6 }, k8 o" T; W5 Y8 D
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
+ [, |. E" i0 S5 v
7 w2 b4 f" f, D) `8 g$ e- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
0 @% k- D( E S' h! O" N& k6 z
/ A0 F* Z& A9 n# R* Q- (defun c:tuu () (setvar "cmdecho" 0)
# ]% y, h& D$ y9 Q- z9 E3 |5 i - (prompt "\nHay chon dong TEXT can gach chan ")
8 ~- j9 G, A# U7 s! H - (prompt "\nSelect objects: ")& d7 H4 @& ]7 G
- (command "select" "au" pause)
! o: S o2 F: k8 A% t1 H* ^ - (setq sstxt (ssget "p")
}+ Q; D9 Z N0 I1 K( T \ - sslen (sslength sstxt)% x9 v' F6 Q% `4 q7 |; h" _/ D
- ctr 0 )
2 u3 Z& v; }6 i- D8 i# [ - (command ".undo" "mark")
5 |* w( a6 P" s) U* R - (while (< ctr sslen)
+ A/ g& j) [: p2 z3 c - (setq listxt (entget (ssname sstxt ctr))2 e$ m, C* D# c+ L4 t
- txttxt (cdr (assoc 1 listxt)): B" O) u/ k; q
- enttxt (cdr (assoc 0 listxt)) )
9 m1 S; y8 U, h1 Z0 p1 I - (if (= enttxt "TEXT")
1 \3 b O, \ W9 S. l u3 p - (progn/ B& k' ]0 N2 H
- (setq testxt (substr txttxt 1 3))& t* @& }; e6 I4 b
- (if (or (= testxt "%%u") (= testxt "%%U"))
- d' |" H% D/ B1 y, R6 }% C" B+ } - (setq newtxt (substr txttxt 4))) A& i; E4 _/ C
- (setq newtxt (strcat "%%u" txttxt)) )
4 W- c j* u* X2 s e/ ]6 j - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
9 {0 K# l! j; ~ M0 p" G2 N - (entmod listxt) ) )
8 M3 r0 N6 x; E0 b) G - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
$ U' _6 f: H; @$ C - 2 B0 V; z# a3 u" W8 m
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
- ?8 F% Q1 p8 I9 `7 p! v( i9 X
( I- h3 {, l! ?/ g$ ]- (defun c:tob () (setvar "cmdecho" 0)
2 c" }5 k, ~, c2 [9 m' | - (prompt "\nHay chon dong TEXT can gach tren dau ")
) M$ W" A8 t- B$ ?$ @( P - (prompt "\nSelect objects: ")
. T0 P/ f9 O6 {* |$ z - (command "select" "au" pause)0 Q( w5 L! r9 c, M
- (setq sstxt (ssget "p"): n* S/ O1 J5 t3 p
- sslen (sslength sstxt)5 J3 M0 j: V7 ~& K
- ctr 0 )2 B! u/ x7 P% l% u
- (command ".undo" "mark")1 K5 h6 S; `# ?8 [
- (while (< ctr sslen)- }/ ?% H6 V+ M7 ^+ U+ u1 w& I
- (setq listxt (entget (ssname sstxt ctr))
" B7 m6 s/ {, I8 H - txttxt (cdr (assoc 1 listxt))
: |" y4 {7 `8 u8 Y - enttxt (cdr (assoc 0 listxt)) )
, X; a3 Q4 } w! R, O) Q* b( p - (if (= enttxt "TEXT")
( Q$ z X f1 h2 U - (progn9 G$ s$ f1 w: K' q1 s
- (setq testxt (substr txttxt 1 3))1 ^' `# I3 `# b+ X9 X/ f
- (if (or (= testxt "%%o") (= testxt "%%o"))& G4 T" g" W$ ?. o
- (setq newtxt (substr txttxt 4))
- o, E X6 ~3 N - (setq newtxt (strcat "%%o" txttxt)) )+ P/ \2 K; o: \$ v
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
; x5 c% X6 Q ]" \; {, y - (entmod listxt) ) )/ h" @: z" j: u/ \7 ~
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
6 q1 z- `5 x$ U/ @# M) g8 `# U - ) F: h @# I8 z+ D
- ;;; ========================== Tim & thay the TEXT ==========================
2 m7 P5 p0 D& u O# G; V" Z* H - , S, J' Y8 X9 z7 m( h4 l2 k# h
- (defun frstring (str search replace / str1 str2 index find)7 _2 l+ E3 Y/ q A8 d
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
' A; [ F A4 \3 _/ j - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
, y/ o- v F7 b1 Y* T - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str)). R# `7 c4 G' D. s9 a$ S" p, g% P
- (defun hai (/ dial)' _; f6 S V( }, L2 M
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog
) h0 N2 }! K7 _* A, R8 H - (if (not (new_dialog "find" Dial)) (exit)) ;;; z) r$ E2 C* u- U8 y! E! g2 v
- (mode_tile "find" 2); Tao dau nhac tai hop thoai, T* h; U! q8 K6 c
- (action_tile "find" "(hai1)")' Z k6 k/ H4 n) D: p8 ]: y( A) k
- (action_tile "replace" "(hai2)")# i$ a8 N4 l0 n+ F0 c' l: K
- (action_tile "cancel" "(done_dialog) (exit)")
, N/ g" O% C2 z `: k9 l: h - (start_dialog) 1 k9 ?' b" a( D5 v. M
- (unload_dialog dial))
- {; A( r! N0 Q! `, q - (defun hai1 () (SETQ str1 (get_tile "find")))9 a7 Z- G! }$ H$ X* w0 L. S
- (defun hai2 () (SETQ str2 (get_tile "replace")))- }. i1 E' {' P# S/ O' e: ?
- : H/ ]% c& [* ]4 B5 }
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)7 H& f* Y' ]( r3 X5 l& c
- (hai)
6 `1 T' G( q% L - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le"), [" Z8 g _3 u8 W ?# W
- (progn' l# l4 v9 d+ z- d3 a
- (setq taphop (ssget '((0 . "TEXT"))))
+ I/ z0 x( ~5 s) N' I) Q - (setq sodem 0) m& x( ?; v% U0 ^, R& g
- (if taphop/ U ^- r. r2 F: K- k
- (progn2 z' D1 v+ ?1 c. s0 |# c, b2 h
- (Repeat (sslength taphop)
; w" J5 l/ j0 R - (setq a (entget (ssname taphop sodem)))
4 c7 C! Y X" k! }' x! j: u - (setq str (cdr (assoc 1 a)))
' o7 \1 ^" m* h2 y7 A+ A0 c$ H - (setq newstr (frstring str str1 str2))" V" D) k2 J: w0 a
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))' S5 y4 t7 M5 Y7 ?+ Q2 i' E* t
- (entmod a); H+ h3 S* }3 {3 E& a
- (setq sodem (1+ sodem)) ) )
3 E+ I) u3 g3 n( p4 i% t - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
# }4 L O7 h" q4 a6 o - & a' W) ^9 B- o8 ^% B7 b C+ V
- ;;;============================= CHTEXSTY.LSP =============================% J+ z# L' l* J/ j
3 b# k. T+ s8 a1 ?9 O q1 ]' w- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")# q7 C$ S" b: {5 ^0 j. h v
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
& y0 ?0 p* h( v2 g: O5 F5 Y - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))' n) J( D/ Y6 n m3 `) w" q7 ` Y
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
( j$ Q7 P+ a S* [% U2 u/ g - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))8 E$ A$ P8 g: Z0 M
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))+ N8 K: {. }( \* r
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))( e8 z0 E: M/ D B) a5 C
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))4 {. J6 k- q9 q% t% u' H, D
- (Initget 1) (Setq A (Strcase (Getstring
0 N' s& ?3 \7 E/ _- n - "\nEnter text style to change: "))) (Initget 1)
" h! u" T, _3 ~; @1 ^3 G - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
: ?0 F# L% j `2 `$ e+ H+ { - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
/ M' K9 B ?* d a9 t8 F' g- ? - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))/ s: e! D) O0 y6 o1 R
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
. Q/ ^9 G3 N* X - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))8 C1 U2 N' T+ g( N/ q
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
2 x, d2 P. u" `' ?9 f. w# H - ( w0 [1 c" k6 I3 ?- n) `3 W
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
; i* h, H! s8 U! W( _. f$ @ - (Setq J (Cdr (Assoc 50 A))))
( a6 F- E4 H/ i( k1 x
5 C1 i6 t/ S- c* U% f) |3 C8 C- ;;; ============================ DRAW CLOUD =============================
" X, Q: R j* T l - , j2 W. h e8 \- `- d- E: Q
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
& D6 K3 \- O, N+ B$ g - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!"), Q; O8 p# B+ l! B8 d
- (setq la (getvar "clayer"))0 s2 R) B! m6 n4 w9 ^9 J! S
- (command "layer" "m" "cloud" "c" "5" "" "")4 t+ Y4 z' \4 K7 |* p
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))9 b7 x8 Z5 F0 g% ~' {# i
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction...")). r5 D8 N0 c# l; R. i
- (setq cnt 1 ss (ssadd))+ z. M# R1 n% a3 d$ u$ P
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))5 j( W6 b7 a* h& I6 j& W
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))- Y2 ^* c& }0 T! z+ g3 O7 [
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))& _6 ]% W, t+ D4 n7 h( s6 Q2 |/ B: \! M
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)7 s6 H! Q8 M6 q# j
- (command "pedit" arc1 "y" "j" ss "" "x")& D% M( I8 I3 a0 J% i4 I- o
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
, }1 U& Y3 g6 i/ M& X. J - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) & e7 m! E$ C+ s9 D; {
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
# g3 n$ s* z" ?4 E: ]% V' n! v - 5 u4 [% N. l( N5 t! i
- ;;; ================================ Funtion-Dulieu ========================
! A. s% O4 F: J5 F/ J- s - ;;; ================================ Funtion-Dulieu ========================7 z0 Q2 _; J: Y) i& A, M
- ;;; ================================ Funtion-Dulieu ========================
; P9 X- h. {* h: a" D; M - 2 F# i; D$ C: u- Y% b8 o# U
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
( }) z' C( J: C - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
9 I. i) V* G( i5 A! I! Y/ |; ` - (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)), U4 }# L4 |5 ~# z/ j
- (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) )
* j# e2 W3 F/ c- t5 u- R - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
2 E3 `& m8 o2 i0 }. a - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))8 q: ]/ O8 @1 q+ W4 a0 l1 V
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
5 |. ?* u9 n$ n, I0 P7 Q - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
0 z* |) y P3 a2 x2 r, G# v! ~. D - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong)))), A" b. E5 i4 P. P) V' ?9 j2 X" I% a
- (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)))
- R5 r8 \- L0 l4 i( }5 H/ q - (defun dtr (dtr) (* pi (/ dtr 180.0)))
* B4 d# {4 l6 A$ ^& p6 x: d/ O - (defun rtd (rtd) (* 180.0 (/ rtd pi)))6 @8 i% @7 [" B5 [* b) R- d
1 C5 d. f1 x3 h( D. P- ;;;==============================PROGRAME===============================" P2 o1 g7 I5 m: q! U2 f
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
+ C6 n: D" w2 ]# Z' t7 a* p) w D - ;;;==============================PROGRAME===============================
. t3 T- L* } l+ \# }4 j( v- J9 c
$ n7 V, E+ c4 V- w, _ C$ U- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)' _5 {. ]( T7 T; I
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl8 b5 _: f; l5 @$ C" n
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)/ X4 _* y a* b4 W% M( n% e' ~9 E. L
- (Setq Oldlis (Entget (Car Chon))% k l, @( E, }8 O M0 [
- Pt10 (Cdr (Assoc 10 Oldlis)). D/ g- F0 f* q* G4 a
- Pt13 (Cdr (Assoc 13 Oldlis))
; D9 x N9 z* g* s. k+ P - Pt14 (Cdr (Assoc 14 Oldlis))8 a; B4 m& x5 S( j/ h
- St (Cdr (Assoc 70 Oldlis)). ^/ q6 v. } C w- d5 A
- Dimdefault (Cdr (Assoc 1 Oldlis))' J% P' q5 b/ W4 i
- )/ t$ @# M( y% k' ^) G6 n" B
- (Cond
0 Y% n1 U- V& ~8 r - ((Or (= 32 St)(= 0 St)(= 160 St))
( V! `' A( S) S - (Progn) q$ \ Y: Y# ?" v! A$ F
- (Setq Ang (Cdr (Assoc 50 Oldlis))6 R" t" ?2 E) Z& B0 Q
- Pt (Polar Pt13 Ang 500): `+ y) g3 |; T# ~4 k6 g8 q, c
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
) e* m/ h' I" Z) t - Dis (Rtos (Distance Pt13 Hc))& S- w s1 O3 p# [3 Q
- )7 N) F: U$ S! T* T$ _1 P4 ~5 R
- )
" O/ a- W7 c) H" S" D0 h3 V2 G; J - )
0 q- n! r2 u. u2 ?1 Z G7 D, c1 X# w/ E - ((Or (= 33 St)(= 1 St))
, `) i# d, |4 X& V - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
5 |1 \1 W; Y# Z* f, J- X7 j - );;End Cond
; h3 j6 v4 U) H; c0 H, l* r - (If (= Dimdefault "") (Setq Dimdefault "<>"))
3 g- a0 X4 E! }, }" `3 m - (Setq Dial (Load_Dialog "Hai.Dcl"))
- q" S5 b% C; E) t8 {+ N4 M5 ~ - (If (Not (New_Dialog "eddim" Dial)) (Exit))
* [( W* X6 L) ?! z: q - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St)): \3 L6 c9 e4 ^7 f* s# J: I" g: F
- (Set_Tile "text" Dis))
- Q+ p# h! t# r# h2 s3 r7 ] - (Set_Tile "ha:edim" Dimdefault)1 {% K5 I# y2 G2 C2 Z
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
1 f* I% s: o }/ ? o - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")8 p# `9 q: a! S4 l/ j
- (Setq State (Start_Dialog))(Unload_Dialog Dial)9 C1 V4 u8 I# N* h8 L0 L
- (If (And Str (= 3 State))
$ N* ^ j v; f - (Progn
8 b' M* [- ^7 Y5 i0 T& x - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))" Q8 H6 L% H4 z: V- J1 @6 z
- )
" H! y& H. ~# ?3 X - (Defun C:EH (/ Chon Name )% q+ U! m) }, c6 C5 m) @5 j
- (Defun *Error* (Msg)
/ U! t7 |1 T* ~6 P* ] - (Princ "\nerror: ")(Princ Msg)(Princ " ")% f% Y4 p5 r9 Q* C3 p
- (Start_Dialog)(Unload_Dialog Dial)
. _# P/ Q7 [$ \ E - (Setq *Error* Olderr)(Princ)6 r4 i- v6 D* | M$ j' ^
- )
- W l5 K! n; |, b1 e& Z3 D - (Setq Olderr *Error*)- j9 D, ]% ^1 w( U- R
- (Setq Chon T)" i; B" n4 C4 B3 r
- (While Chon- ?) a# O; U3 i: e. K- L
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
4 T2 v9 k3 S/ } I% ~ - (If Chon
3 h4 p: D( l d+ J - (Progn5 N a& y4 ?/ e* r9 g
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))! f' C" k" F/ B7 n5 i( s6 j
- (Cond
' K4 L! y: e" m( f - ((= Name "INSERT")(Command "Ddatte" Chon))
. v0 z3 L( R, _; r3 o. s - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon "")); H! H" a: G( W8 f% O7 ?
- ((= Name "DIMENSION") (Hai_Edim Chon))
4 [' n7 ~ l5 d r - )
4 k" I3 ~/ `* U( m' N4 [ - );End Cond- _ G7 o% @ Q4 o" h( y! R
- );End Progn
( C4 a' A t" M% x: n. U - );End While
|- ~" U: w+ y! F% o3 f2 M+ f# t - (Setq Olderr *Error*)(Princ)
% i; V8 H! g0 v - );End Program
8 B* N5 k( Q3 z. i; B4 N - 6 O/ H0 F# {( Z2 k. L+ r% L
- ;;;====================DDeditDim=====================
! X$ v7 I* m% f) q - ;;;=====================Hai.DCL======================# V8 c' ?+ S8 j v8 m
- ;;;====================DDeditDim=====================
5 u. l. R% T. w; O' d
( I) H% F2 c: X! \+ `7 e; w* m- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
: Q ?9 g* X- \! W - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl! J. N& H0 q8 ^1 d% B* e
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)% W" h2 Q# [3 j
- (Setq Oldlis (Entget (Car Chon))
- J6 L; _/ Z0 t; E6 U% h1 L( n+ T - Pt10 (Cdr (Assoc 10 Oldlis))( O* o# j7 k2 q7 s+ o
- Pt13 (Cdr (Assoc 13 Oldlis))) k3 _3 e+ m5 y- m! H& [; e% t) }9 v5 Q5 C
- Pt14 (Cdr (Assoc 14 Oldlis))
- ` L* m2 `% X1 K4 t0 ^' | - St (Cdr (Assoc 70 Oldlis))
+ Q, @* k3 \/ M y* h3 y - Dimdefault (Cdr (Assoc 1 Oldlis))
& w z8 X0 T* c u - )
5 c# v8 Y" q6 L% v& b' t V( R+ a/ {6 n - (Cond
, V$ m1 ~' q1 {& a - ((Or (= 32 St)(= 0 St)(= 160 St))
4 ]! {4 f4 c6 x0 g7 a - (Progn) g0 N! l% e& \1 P
- (Setq Ang (Cdr (Assoc 50 Oldlis))9 s8 u% [& M6 b `- K0 ?" {
- Pt (Polar Pt13 Ang 500)$ r! ^& _8 c: E+ X" ^0 @
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
3 i! h3 v( k1 w Z - Dis (Rtos (Distance Pt13 Hc))
. G- e$ { ?* V3 M4 B: t3 g - )
# o) X1 H9 o2 e( k - )
8 q. o8 ]9 a. N# [: x/ v q' [ - )" X7 N$ A! T( L) B7 L7 k
- ((Or (= 33 St)(= 1 St)). A, y4 l1 h8 @& O( y( _
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))8 W& d S. C% _
- );;End Cond
9 ?% |# d8 ]. p' C) C( J - (If (= Dimdefault "") (Setq Dimdefault "<>"))! f! B9 f3 n/ h ^5 m2 b
- (Setq Dial (Load_Dialog "Hai.Dcl"))% y3 U$ Z1 N6 P# J7 {8 b
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
) q1 X* K- n6 B2 p8 c - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
8 V* i. u' _/ l+ w- n4 r) y. s" L0 R - (Set_Tile "text" Dis))3 h* f2 O( T2 k
- (Set_Tile "ha:edim" Dimdefault)
5 k% u7 z& w3 G - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
+ g S( l+ C) L } - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")* D2 ^ ]# n; f4 U
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
- N( i% A% U9 @) I- u/ I0 s5 b4 X. T - (If (And Str (= 3 State))
5 r1 a" Q& Q& F4 H& U* K - (Progn4 U: W1 i ]: [, ?1 p" |9 I9 X
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))2 v/ g; E; C) U
- )
* e& {$ ~: Q8 Q- ^* i4 {/ q" l N - (Defun C:EH (/ Chon Name )6 q; ~. W0 d& f, s5 A+ h5 y7 W
- # s8 f. z1 X9 H9 D/ O) i
- ;;;********************Du Lieu********************
; {) S) Y9 `3 u
/ b! W5 g' V' L6 {6 k- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))- a' x4 G; q, U, N$ B3 F* T8 Q
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
- r1 \& E# s5 P+ y - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
3 k: k! X; d# N3 A - (Progn, f- P+ [9 D6 R9 o6 P1 |! @
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))/ r) M" A: y* s4 u( g
- (Setq Chon (Ssget Hacat3))7 t5 @8 [* E4 }2 h3 a; T
- (Command "Break" Chon Hacat1 Hacat2)
$ t+ D# l) B8 R1 g/ r& W1 i - )
/ Q! I' v0 m$ J5 i I8 D - ). [8 m5 K. y) r* S+ a7 O
- (Princ)
& t T0 {$ e% `+ ^ D' z5 Q! B. M. @ - ): U; Z! r7 A2 ~2 h
- ;;( D: W7 l0 Z6 [, v1 S4 c3 L
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))* ^7 Y9 |# y; l
- ;;
3 j0 K l" T' p% l% G/ @+ F - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
+ _: ]& b5 k; G5 L7 W- R6 ` - ;;' ]/ M# _" X4 V7 G5 w
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
; a$ P! d: {" c9 O' z. J - ;;
r. Z# j7 z: t. Y- ]1 M% | - (Defun Reinit ()(Setvar "Cmdecho" 1)); d% a! _2 P4 {, B
- ;;
D5 ~* i5 @) X8 A0 l/ V - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))$ d7 ~: S4 u" g. z% h4 z |- P
- ;;
7 }) ` r6 V1 ^ G( U/ i - ;;Cho 2 Diem Tinh Ra Vec To Phap
7 Q1 r7 G1 w9 ~ M - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))2 N% x6 }# |6 v( \% o0 b0 l
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang2 y w- D$ L! v. `4 j
- ;;Da Biet 2 Diem Thuoc Duong Thang
( w. T( a/ y: w* U - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2); | ?- e/ F |) @0 C
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)# O) r$ N2 b, G# R1 s1 N5 P3 L
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))$ i/ V. h# h9 \8 c7 H
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang6 t; m! Q' T- r
- ;;Da Biet 2 Diem Thuoc Duong Thang
. [. O, a) n5 P - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
" g2 i- y8 c! g2 _. R7 ^0 B - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
4 v; b5 K& O- }. k. @$ o - Hc (Inters P1 P2 Dc1 Dc2 Nil))
q1 `7 s2 X( S7 u$ X2 j - (Distance Dc1 Hc)6 r; }: [# S. L5 a0 k% d
- )
) h$ D! o" j2 c7 `- a) K8 \) L - (load "nhapcua.lsp")/ Q: i" w% {- Z6 M* J& D3 e
- (Defun *Error* (Msg)
/ {! U: v ?: z - (Princ "\nerror: ")(Princ Msg)(Princ " ")5 e6 t9 U+ E$ e1 l7 t3 d7 n
- (Start_Dialog)(Unload_Dialog Dial)' y9 n. x# d$ @: w
- (Setq *Error* Olderr)(Princ)
3 g( K6 s' X" @3 C5 D - )
d* F& l" h2 X4 x- f' ?1 D$ `2 H! K! L - (Setq Olderr *Error*)2 `* i8 F# {- X- j
- (Setq Chon T)8 s- ~* r) u* Z
- (While Chon
3 ^( a/ {2 X! K# E1 J( }. M - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
3 z6 |7 T- E" W+ z6 Q6 r: | - (If Chon
! f$ `: l3 a/ m - (Progn
/ `6 U8 ~" W8 B - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
6 o0 g6 q) t: b, A: ? - (Cond
m4 g( D8 [0 |* {* {; F- R& h - ((= Name "INSERT")(Command "Ddatte" Chon))( [( U8 U) R$ m' o; P- A9 v l
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
0 b: O# ^: z3 d - ((= Name "DIMENSION") (Hai_Edim Chon))+ z" V& z- e' k1 c3 z4 c( R% v
- )
! Q+ i% U4 `) f" { p% b1 t - );End Cond
O2 J# u1 t, P( ^8 Y - );End Progn* J# f( E, T }0 Q
- );End While
! J1 [+ S6 M0 a) I - (Setq Olderr *Error*)(Princ)9 B6 s+ ?4 _/ C6 e. C* `
- );End Program
! }7 @- C& }, H- K( W! X+ Q) x
6 z3 t# H5 S" w! E' A P+ W- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================/ C+ p' J$ ~0 P( ^
- ;====================================Nhapcua.LSP====================================
/ P3 d8 {' y" x ~ - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================* |0 ^- f. F+ B1 w! K
! j# v0 X( D' Q. o- $ r% v! C7 Z/ \4 o: H* w% L; o
, C% |, X# S& s: v' _6 c- ;*******************;*******************;*******************;*******************) t3 c1 b) q! J1 Y9 n, b+ o
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
/ z% X$ b' r* [4 d+ q - ;*******************;*******************;*******************;*******************# m( x2 d6 h8 n
- " T2 h8 I9 ^$ M% Q* P/ D* u) h
- ;VE HINH BINH HANH$ _3 E7 o1 a5 F; a+ K
3 b1 n( A( ~& ~% w3 f- (defun c:binhhanh (/ p1 p2 p3)
. ?5 S& Y- x1 }/ g0 [/ r - (setq p1 (getpoint "\n Nhap diem thu nhat:")). P X+ R) c2 t6 p" p6 m
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))4 d& R1 Z) i; N2 k2 j8 ~3 X4 S
- (setq om (getvar "osmode"))+ B; N) b: h k& ]* l
- (setvar "osmode" 0)8 q g- h- l1 Q; `# }# h, p% t
- (command "line" p1 p2 "")9 R2 [& r3 h* [$ L
- (setvar "osmode" om)
5 I' G& j6 T5 d! R" d - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))# ?0 K6 j/ [# [6 d- a3 x& o
- (setq a (angle p2 p1))( @1 h( M1 D; Y$ t3 c7 v7 _
- (setq d (distance p1 p2))
* U. k+ ^. b# q( f - (setq p4 (polar p3 a d))
* @/ q5 u: }+ p! {1 k- o - (command "OSNAP" "none")
5 d$ ], h: [3 f+ Q6 l+ V T# F - (command "erase" "l" "")
N/ F* R0 f' E - (command "pline" p1 p2 p3 p4 p1 "")
4 F* S# h ?- Y6 L# l4 k0 U - (setvar "osmode" om)
- b! ?! s% d+ t, t1 l - )
Q* M6 l# {! o; D6 G" D6 d# U - 8 r4 \! w' [: f5 U* Q3 J8 E
- ;VE LUOI COT0 k+ E1 R# O( H A4 }
- ; J1 p6 e1 U9 d& B! i/ {
- (defun c:LuoiCot ()3 p/ m1 m) t$ Y) M. y. i
- (setq om (getvar "osmode"))$ {9 [5 s+ |3 t3 Z/ T$ G$ z
- (setvar "osmode" 0)
/ T/ V/ \; t0 k( D - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
" x' o( V/ V1 c9 L, c - (setq p0 (getpoint "\n Chon Basic Point:"))) b) t4 c; S; K
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))" q) ?: S8 Z; U8 f8 U, y$ f
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))
+ }; ?" T3 \% T* l7 q& | - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
7 v' j* `- V) W9 ] - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
" @# W* j' i& i" Y3 y; a4 L- g - (command "rectang" p1 p2)
0 b5 E( c5 B% ~; ~' ]6 S! n - (command "hatch" "solid" "l" "")7 M* l# n P' V
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
7 P* F( P3 a" U+ s1 a - (setq nn (getint "\n So buoc cot phuong ngang : "))0 z+ ~1 A7 v, `- H: n
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
+ E$ O5 w }+ G3 j( D - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
+ t; W+ s! [+ |2 s9 } U; F - (command "select" "w" w1 w2 "")/ z3 H7 J \0 w; L. R
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )! ]& H& L/ h. [6 i' V$ C
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
3 ?# m- _8 f, P Y: ` s3 a7 `8 N - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
2 i) C5 U+ F9 y" p0 l# U: p - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))" j2 i; i7 }& n4 i& c9 P! ?! C. Z
- (command "zoom" "w" w1 w2)
* G* s0 v. X' z- s: l% A - (command "select" "w" w1 w2 "")" F) h# s9 I( g3 b
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))6 V; z2 b; S- i E5 \% M6 w& u
- (setq nd (getint "\n So buoc cot phuong doc : "))
- y' K- ]/ c& l1 ]' j5 Q3 | - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )2 h, W T: c3 G5 I( J4 s
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")8 o5 O! H3 ~( s% R% m0 ~6 b
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
* Y3 ^4 y- d4 H* i- z* K' F - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
, E- h7 }6 x' k! _3 u - (command "zoom" "w" w1 w2)
) Y9 Y( x% ?9 N - (setvar "osmode" om)1 _) n& p0 m+ c/ |3 y( E0 J
- )
) V9 V+ e+ x$ `/ l3 Y - 6 u# b0 G v1 e5 U. V& F5 O9 V* ?
- ;VE CUA DI- A( A7 d. O+ P/ a% i
1 L5 N% T" c* R8 G' e2 o$ |- (defun c:cuadi ()
& _1 s; U5 A8 \; V; Q# H+ _ - (setq om (getvar "osmode"))3 Z0 @1 \6 ^3 o6 g! l. M' R
- (setvar "osmode" 0)
5 l# g1 y0 ]" N) f. M! e
' A0 k; z/ C/ l& S7 @, B- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
" R% T% L6 P$ }# a" T - (setq b (getreal "\n Nhap be rong cua : "))6 c2 E0 U' T5 G/ P1 w f t0 |' B
- (setvar "osmode" om)
* U* s& Z6 N' j* R - (while (< 0 1)4 c" n6 f9 Q& z6 ^! O
- (progn
9 Q! G; B& \3 e1 c8 s- ?4 p# y" e - (setq p0 (getpoint "\n Chon Basic Point:"))6 } A! y5 s" p6 _' d* G* }1 o
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))1 u% I# `( m" @( b* l$ x
- (command "osnap" "none")* w& y3 a4 p/ f, r
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))+ R+ X7 E& ~3 _6 o. ~8 |
- (setq a1 (angle p0 p1))8 u! T& C: \( i: D5 ~) M
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
2 v0 S5 j7 n7 R# g' Y - (setq a2 (angle p0 p2))
# v. z# z/ \4 ?& H$ \ - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
4 N& a7 o, i- Q ^2 ^ - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
. V) {- u& V) H( a$ a - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
C/ s" H8 B, j- v2 h L3 V c - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) ( z; x) X# T. Z% T
- (setvar "osmode" om)
; L4 Y8 V* u: S - ))
5 t/ F. a# ^! o$ A - )
8 f' h" y9 u$ R
# e" M7 U* y( B6 q9 e; B0 ?- ;VE CUA SO, z' B6 X+ p0 |- |% h# T6 m; T) O
; J3 M9 I/ y: l# r3 O- (defun c:cuaso (); p N# J! g" J( n+ {7 `, Y
- (setq om (getvar "osmode"))* M" w& Q- u: n/ g* i
- (setvar "osmode" 0)
+ C. U8 l% X! _4 u$ ^4 j - 7 u$ t* {5 ]6 Q7 k
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x=")); }/ f3 q+ P2 t/ D1 K+ g$ Q/ K
- (setvar "osmode" om)4 ~/ c" m3 t, b7 `, r0 }$ ^( b- n
- (while (< 0 1)
0 W. H& a' O5 H6 o' | O - (progn* A: S$ z$ e$ S8 R$ b/ w t
- (setq p0 (getpoint "\n Chon Basic Point:"))
2 |0 G; f+ E# v3 A+ H" p' u - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))( m& e3 F) F7 c6 R
- (command "osnap" "none")# |8 z" l+ L7 H% m8 z( s. i2 j
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))$ [5 d! j- U" ~5 Z& I* Y
- (setq b (distance p0 p1))
5 q" Z+ ?8 `. P3 j9 D( v - (if (< b (/ (* hstl 600) tile)) (setq du 50))
" e/ E: Y6 @/ b2 X - (if (> b (/ (* hstl 600) tile)) (setq du 150))
1 w( L% Y+ p7 o9 H# c# n - (if (> b (/ (* hstl 1800) tile)) (setq du 200)). ^. D9 P0 y( I+ b; E0 l0 Z5 u
- (setq a1 (angle p0 p1)). G1 e7 d& r# w& e4 W4 ~0 Z
- (setq a2 (angle p0 p2))
7 A- x# }7 O9 s) p+ | - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )) S; w$ I; p. l8 H) k
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )' g7 c% w2 b0 f0 ^4 T
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )( v; d$ J; E. |/ x! e) ^
- (command "pline" p0 "w" "0" "0" p1 "")
2 c9 @: c8 n/ L5 b8 s j: n - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
1 u$ ~" [: F* m - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
+ F& s+ w, o% C; ~: c6 `) y6 ~ - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
$ Y; }8 m( s6 i( m# h* k - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
1 o5 u W7 B, l) N* H4 e - (setvar "osmode" om)
8 ^0 X) C- C ^# W- h - ))
: L5 q. S3 O) ] - )
$ Q/ i7 ]) r7 ]4 f% b; F7 _! f* V
/ m8 S+ I% ]( q# Y& x- ;;;=== General Utility Functions ===
( _" [. y3 O8 e% g: | - 9 k& ?+ b3 g9 I' d: j1 b& k
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
& A3 g. B. \" m- R3 | - ; ADS function. Now it's a simple AutoLISP function that calls the
( Z5 O0 f3 N) q, o - ; built-in function (help). It's only purpose is R12 compatibility.
" P% P1 Z4 f7 A0 s' y - ; If you are calling it for anything else, you should almost certainly
2 l! D2 H* x X' w0 w- v/ o; r0 U4 k - ; be calling (help) instead. # Z d. Z/ w/ \' X! C" `9 G8 U
-
; s7 O/ ^& ~, g5 z5 C - (defun acad_helpdlg (helpfile topic)
b! I0 {# T3 Q z5 C6 A - (help helpfile topic)7 Z* i0 G5 k4 ~! L0 P
- )7 a/ o) {' V9 C+ D, n" F
7 {4 u; c" N+ O# \8 S
" w9 p0 X# v& P6 h. c! g6 U- (defun *merr* (msg)& L! _1 K; y) [' q$ E' Y5 i
- (setq *error* m:err m:err nil)9 R5 N5 _, P+ [0 j* Y* ^
- (princ)1 \- y& _3 q* t9 D
- )# @* k) X. K8 m
5 U$ e0 X* ?# Q8 c4 ^- (defun *merrmsg* (msg)
$ ^4 N# M1 r% `5 E2 T6 a! P - (princ msg)
0 ]5 g$ Q i3 q0 W - (setq *error* m:err m:err nil)
7 i) Y: i' I; b, K! s/ J5 S3 `- |0 w - (princ). k6 a# n' P4 b" ~
- ), }# R, a* b; I6 V/ p" g; ^& t
- 6 H$ b( ?5 z$ p4 Z9 c2 T
- ;; Loads the indicated ARX app if it isn't already loaded
7 m: x( s& k/ Z5 E! E6 [8 @1 z2 e) | - ;; returns nil if no load was necessary, else returns the
/ o! n* B! }! X: ~ - ;; app name if a load occurred.7 T! @5 c$ R. ?0 q/ c M9 ]
- (defun verify_arxapp_loaded (app) 1 r" D" V N V: L
- (if (not (loadedp app (arx)))( S- \! `$ E/ ]5 G+ G
- (arxload app f): w. e a2 N& r! G
- )) q1 ?& M& v0 {) A( g
- ), v! _! c" H- n) ~0 _ K) G
, K/ |; _- F; N7 M+ `& V- ;; determines if a given application is loaded...: K7 U1 ~$ F* x9 i# r9 Q
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....! F [6 t+ o5 F4 t: _2 X
- ;;
4 a% c$ F1 n" a4 J# |9 v* A - ;; app is the filename of the application to check (extension is required)5 Y" Y4 y. s- g! t# Z y
- ;; appset is a list of applications, (such as (arx) or (ads)
0 G+ ?; P9 U+ _) W7 ]! p - ;; ! [: B; ?- R! a7 l
- ;; returns T or nil, depending on whether app is present in the appset
l. m, n1 v7 E9 g8 `6 E - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"5 D6 T, Q9 W7 ?" p9 D* @9 a7 [5 U
- ;; Also, if appset contains members that contain paths, app will right-match* }2 q0 Q+ A- G0 w4 g3 z: B1 }
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that; M) w2 E/ @5 G- g8 W
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
1 c; o2 d6 A/ P$ E4 `; ~2 j8 X8 E: K& p8 W - (defun loadedp (app appset)
7 W6 o8 @% B+ o3 r8 f+ F - (cond (appset (or - ^5 b% ?6 Y8 [
- ;; exactly equal? (ignoring case)
( S- }7 i' V8 F- {. a) @ - (= (strcase (car appset))
+ H+ Q4 V. ~5 H" Z+ \ - (strcase app)). U6 Q6 b! G, E; B4 P8 V
- ;; right-matching? (ignoring case, but assuming that
9 T3 C+ x/ X! k+ z5 T- m2 e- z1 I - ;; it's a complete filename (with a backslash before it)% x8 m* E8 D* J$ k
- (and
: |/ l) F/ x" |2 H2 I1 [- k - (> (strlen (car appset)) (strlen app))- F+ Q# O8 K; }6 r7 o+ m
- (= (strcase (substr (car appset) ' X/ G! ]$ ?; b$ K% l a( Z8 F
- (- (strlen (car appset))
2 F8 a4 q; p5 F% u) c - (strlen app) " l- @! ^, ^& V# G1 Q, u& {
- ) 4 ?1 K9 L4 u/ s& M, A) g
- )7 x4 Z+ g, f! c" S. ?
- ) % T! q9 Y- t& V# I
- (strcase (strcat "\\" app))/ k8 I* T6 ?& L P9 L
- )1 X3 H( W" g, b5 ]" F$ a
- )! s! f) o+ L- C; F+ m
- ;; no match for this entry in appset, try next one..../ d e& F- I! X/ t8 I, T. |
- (loadedp app (cdr appset)) ))); T7 u* U; _. z+ x/ h
- )
& X0 ^% p D. n' F. ]7 S
0 c7 l3 u/ @1 F' H: U7 c5 P* R7 k
l4 r& W/ x$ \! p- s+ F& i. `- ;;; ===== Single-line MText editor =====
2 t# \* b/ x( }8 ?' j - (defun LispEd (contents / fname dcl state)! z, c( X8 }7 G |8 F" R
- (if (not (setq fname (getvar "program")))
3 Y8 |/ y# P5 Z( R0 K - (setq fname "acad")4 x# B6 j' u; Z$ ~7 k
- )
0 n. T/ @& c% j8 V6 ^8 w+ f0 z - (strcat fname ".dcl"): u }6 L' m& d! p5 A" u
- (setq dcl (load_dialog fname))
0 d* l; y4 v2 ?" U/ i - (if (not (new_dialog "LispEd" dcl)) (exit))5 z" \6 d- g6 N) Q+ k$ p+ @ \
- (set_tile "contents" contents)
4 Q$ C* t2 C* S2 H: O1 V - (mode_tile "contents" 2)
" m3 A7 r1 N! m: r - (action_tile "contents" "(setq contents $value)")1 \, n& S: q0 k6 [" w
- (action_tile "accept" "(done_dialog 1)")0 ^! y/ n6 F! g- ~( L# P1 Z
- (action_tile "mtexted" "(done_dialog 2)" )( {0 E) M k( }- ?1 n
- (setq state (start_dialog))' N4 e: r/ _1 Z; s- t
- (unload_dialog dcl): B5 `' d/ Z0 a8 i- A0 t7 y
- (cond
% g- V7 h8 Z& ^4 x2 N" v. l - ((= state 1) contents)
# ^5 r1 q6 l9 v+ ^4 x0 |0 R - ((= state 2) -1)
; v" |7 u3 K9 |( C - (t 0)
7 D2 F: t0 t4 ~$ H$ v1 ?8 H - )
+ {+ A' p; M! S7 e; @ - )
* B' a/ V5 w. Q4 C9 {( J
& j2 a: I0 t5 k" h- ;;; ===== Discontinued commands =====
! U* c. M! l+ N7 @3 n: } - (defun c:ddselect(/ cmdecho-save)& p( K7 ^* T6 T7 P
- (setq cmdecho-save (getvar "CMDECHO"))9 m1 B6 Z6 D: S& {! a
- (setvar "CMDECHO" 0): J! u, B+ w* V3 ]& y$ u8 E+ L
- (command "._+options" 7)- u* B1 i4 ~5 U4 ~9 R6 f6 B- D
- (setvar "CMDECHO" cmdecho-save)+ B" v/ `9 t& J8 R% e) ~/ L
- (princ)
: r" e% \% C; R6 x1 b4 i - )
/ ^% O- f% R& _; h7 S9 g- F - . a" @4 } E% O1 z2 `3 L f5 N
- (defun c:ddgrips(/ cmdecho-save)# w; Y, v. A* I' v3 {! e3 ?4 @
- (setq cmdecho-save (getvar "CMDECHO"))% P0 Q/ z$ p" o! Z3 V
- (setvar "CMDECHO" 0): O' G6 a9 P5 e
- (command "._+options" 7)
- ]5 ~8 p& ]$ \: S+ a5 s - (setvar "CMDECHO" cmdecho-save)7 b. V& n/ q4 ^8 j$ T! X
- (princ)$ D( o) G/ ]# P
- )
$ ^% {: x- H7 i- n6 U7 H
4 {2 X2 b- q- Q6 C# F- (defun c:gifin ()
; c3 F3 K* ?% H% Y5 z - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")) L* Z) { h# j }) X; v6 w
- (princ)5 m( l( d9 _" Y2 k3 V9 X
- )
. H* j. A% A2 U! p" D' ?
3 x$ I/ u- @; R( Q- L0 E- (defun c:pcxin ()
! D( a" p, t( d. B, E% { - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")3 }' @2 o0 P1 @0 _8 R n0 O
- (princ)
9 v7 r7 S- j# ^' m' b7 `) C - )
! s/ U3 n( c C t0 X: g, f4 c# J
1 ]- m6 L/ c8 F" r- (defun c:tiffin ()
6 H ^, L; }3 d! s7 E7 G - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")! n9 U1 b5 |% C1 ]- d" g$ _4 z. o
- (princ)
, f" d/ ~: C' J z* A: U/ D" ^ - )- P$ b, z/ B$ w
* l* C1 T$ C4 \# K8 T- (defun c:ddemodes()7 f7 D; [" Z. _, M& d2 `
- (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.")
* u3 _. K' ?* I M" y - (princ), s5 c& M# D, L3 j
- )
+ f& Z0 v4 d) r/ g; J! W u - 4 \6 |) [3 M4 G
- (defun c:ddrmodes(/ cmdecho-save)0 t2 L' g) C$ f" U6 ?: d- k
- (setq cmdecho-save (getvar "CMDECHO")) X# V% I. L& v5 q! ]
- (setvar "CMDECHO" 0)
8 P1 b* @: `* f: [+ K - (command "._+dsettings" 0)0 s: x/ Q g; o1 E' W; B
- (setvar "CMDECHO" cmdecho-save)" C3 W1 G2 p9 U- Q7 C0 p" U
- (princ): D% i( E) |* O
- )
$ ^$ m( `* A( V! T3 \4 L
9 r0 k1 h2 |8 y+ k" L' }5 v- ;; HPCONFIG
9 A4 O; Q9 }% y) y2 y6 F6 Z - (defun c:hpconfig (/ hlppath)/ z! V& u6 E" h7 A8 \
- (if (not (setq hlppath (findfile "acad.hlp")))
7 ~5 y& v; Y, A q3 U+ z4 d - (setq hlppath "")); F$ X) H1 C; W. V- j0 L) B
- (help hlppath "hpconfig")
+ B, v L) L# U, V, G2 E9 S - (princ)
8 N9 b/ c3 O" r. C5 E0 J W - )
* L: ]# C, M. @0 e6 d5 P" d - ! n* W! l" V3 z
- ;; OCECONFIG
% j; `5 m& @5 I$ F - (defun c:oceconfig (/ hlppath)
2 R! }5 N! h) d, w - (if (not (setq hlppath (findfile "acad.hlp")))
# V5 C4 Y/ X6 ] - (setq hlppath ""))
. c1 x2 h2 m4 K/ |' b+ i) L7 ?) a - (help hlppath "oceconfig")
0 r) b& c( }4 O - (princ)( W, u$ Y9 y2 W4 \! M
- )
1 g0 y# |8 u) N* g, C1 M - ) y) Z: q; o* X! U5 B
- ;; CCONFIG; x9 L- d& I& t; L$ [; U+ h
- (defun c:cconfig (/ hlppath)7 _! n( \' {. W9 w
- (if (not (setq hlppath (findfile "acad.hlp")))2 e9 I. ]: f7 e. ^
- (setq hlppath ""))* l% v t$ N/ n: R _" Y( E- d
- (help hlppath "cconfig")+ u4 f) B# p2 F0 |4 c3 W
- (princ)( E% r" H: ^0 ^- I b
- )5 N5 b0 ]9 \2 H: ^$ w" m4 _% P/ @
3 _, b4 u$ Z4 c* y- ;;; ===== AutoLoad =====. o% l/ p+ A) R# r) H8 I
- ; \& q6 L, W' V, g* ^$ |' I
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
) A1 k) h6 _6 X ]' k/ M* g - ;;; for the name of a certain appplication <appname>.
6 ^* a" w A; ~# s! _+ C1 n - ;;; Returns T if <appname> is loaded.
; h C* l) l& W8 I
1 w4 G7 d$ s8 D5 `- ^- (defun ai_AppLoaded (appname apptype)6 ~ l- V( A6 A r6 H$ y% o2 k
- (apply 'or
& |& V0 ^- @6 Q/ R - (mapcar 6 I7 X2 A' A2 b: {! t
- '(lambda (j)0 Z2 K" W0 r8 I" ^( m* h
- (wcmatch
+ w8 {2 T0 f8 B( ]) V3 Q - (strcase j T)
2 i7 B' ? }9 `2 c3 d - (strcase (strcat "*" appname "*") T)
, ]$ B6 X% a( L4 c - ) 4 _ K" N$ V; r0 s- H
- )
" {. d4 s: @. ]/ o, E p7 k' [8 S: } - (eval (list (read apptype)))
! f5 u* F: h1 P. _ - )
: b, k- @& B( X) s7 X/ x. K- U) G - )+ V; a7 w' ?$ D1 }& V) ^( V
- )
- k3 L/ b7 _( h6 d: z
8 c( p% i- T) ?! D' Z7 K' y- ;; ; v* y m# l8 q/ s! _* i
- ;; Native Rx commands cannot be called with the "C:" syntax. They must 5 R, t9 s! k3 }, _- X, y, N
- ;; be called via (command). Therefore they require their own autoload
' G4 g! g( A3 x" r! K. M - ;; command.
7 j- f6 V: f9 d F/ H1 Z- o - m. _: O2 N3 x8 z* ^
- (defun autonativeload (app cmdliste / qapp)
5 x, W! V, _% l - (setq qapp (strcat "\"" app "\""))0 S* v( W( _2 s1 J0 n' i) b, ^! I9 p
- (setq initstring "\nInitializing...")
+ A: {3 a+ U" N - (mapcar
* y( D% U/ a% e$ N2 _ - '(lambda (cmd / nom_cmd native_cmd)
- g: J1 ?7 r4 R! H - (progn. s1 I4 ]" d' g/ k& Z% F4 c5 u# J/ a
- (setq nom_cmd (strcat "C:" cmd))
# V7 S+ Z6 {7 S* K0 Q" b - (setq native_cmd (strcat "\"_" cmd "\""))) U8 F |* K2 l7 F; v4 N- k8 c7 n6 w
- (if (not (eval (read nom_cmd)))( E: ?& F W0 S; @0 U
- (eval
3 ~; M t, a1 [ z4 L2 ~! v1 z - (read (strcat! u/ ?8 g, R1 l+ D
- "(defun " nom_cmd "()"
3 N8 V! j1 d. M) ? - "(setq m:err *error* *error* *merrmsg*)", t* A/ ~% S& o1 O' k0 b! X6 S
- "(if (ai_ffile " qapp ")"
4 j5 T$ E$ T7 L% ] - "(progn (princ initstring)"
6 Y: ?2 n: P" Z9 m" ^ - "(_autoarxload " qapp ") (command " native_cmd "))"
* P" N, O+ }2 K7 c& c - "(ai_nofile " qapp "))"
+ c9 t4 d, ~( D - "(setq *error* m:err m:err nil))") _ M3 V: W2 P- u/ ~9 n
- ))))))
# R; o$ q. R7 |" j3 ^ \ - cmdliste)# ?9 {, W: ?/ D" Z9 J
- nil
( q4 C7 H# t9 ~- B - )
7 x2 R( c: l+ D" H
7 C+ ]) P2 A: s* j( _- (defun _autoqload (quoi app cmdliste / qapp symnam)+ f: s$ H4 i$ |! u" n
- (setq qapp (strcat "\"" app "\""))
$ W9 r. { `+ P9 h# M2 l5 Z! n - (setq initstring "\nInitializing...")
7 z- ~ y( t% X+ Y" `; x - (mapcar
& \$ q6 q! k7 K# h - '(lambda (cmd / nom_cmd)
, a) y* \, p9 B y - (progn
" K; ?( V5 B" ?' s, A! h( M - (setq nom_cmd (strcat "C:" cmd))
! w3 G) ]) l4 {6 Y, i - (if (not (eval (read nom_cmd)))
& ]4 R8 _1 ^% P9 S7 v! B- S- M3 ^$ J' C - (eval% m0 ^) m8 y, @0 d+ m% P
- (read (strcat
! Q- F8 c1 K1 i+ ~ - "(defun " nom_cmd "( / rtn)"7 j2 z5 b/ s; L
- "(setq m:err *error* *error* *merrmsg*)"
+ {3 A/ B/ R3 G1 ?9 n V8 p - "(if (ai_ffile " qapp ")"5 V$ S% I3 P! ?0 v, |
- "(progn (princ initstring)"
+ U# O. L* Z0 _- m5 B' t1 i$ q* P - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"' r ~3 u$ B- T- l J& [6 L
- "(ai_nofile " qapp "))"% ]( F+ n; Z3 W, n
- "(setq *error* m:err m:err nil)"
0 N/ A# ?0 w7 p7 x* y+ w - "rtn)"0 T( w/ c2 T, ~. C5 p3 _9 T
- ))))))
4 c) t0 U/ ~$ p - cmdliste)
5 g& e( C W3 X' K2 ]$ Y* R - nil
& a' }+ Q; K1 b- ]% H* n4 Q - )0 e8 ^6 }, C5 ~/ n" e
- + d6 x4 \: K, X% R$ ?
- (defun autoload (app cmdliste)" u8 Y+ _8 ]" N- i/ b
- (_autoqload "" app cmdliste)
# P' a! m2 X6 O `# f2 k$ J - )0 ^' k$ k7 _3 g5 U& `
- ; B9 v% R* C( A5 v# G+ c& k
- (defun autoarxload (app cmdliste)
; o# S u9 v4 |1 l4 m - (_autoqload "arx" app cmdliste)) ~' b X" J( v/ R. \& _& n$ s
- )
; f* U/ K% k! g7 H3 N - 2 v) `5 y& @1 o2 ?3 L- j2 L
- (defun autoarxacedload (app cmdliste / qapp symnam)% L! d3 h/ I4 _" p$ v
- (setq qapp (strcat "\"" app "\""))/ G$ C4 y5 k) T. G3 d( b
- (setq initstring "\nInitializing...")
/ j% ?5 h: M1 b - (mapcar
( A' a0 _/ p9 r6 F3 S& D4 w1 X5 t - '(lambda (cmd / nom_cmd)
5 ]; u4 e; S9 U4 K9 g - (progn9 I+ {: Q0 S) |6 V% e" J
- (setq nom_cmd (strcat "C:" cmd))
- e A- ^: C& _$ T - (if (not (eval (read nom_cmd)))
# q. Y$ e2 y9 \* p+ B - (eval
2 b, i' W' h) F+ \ - (read (strcat
" e5 o$ |7 z9 B) R! ^* w+ Q - "(defun " nom_cmd "( / oldcmdecho)"
2 J- }# H6 [ h - "(setq m:err *error* *error* *merrmsg*)"
5 ]6 w1 a7 C4 X$ f: A - "(if (ai_ffile " qapp ")"! C; S5 A' H* w
- "(progn (princ initstring)"
6 ~4 N. s' D; Y" g2 q& k - "(_autoarxload " qapp ")"
+ j' I5 t8 Q, Z; h. A! a - "(setq oldcmdecho (getvar \"CMDECHO\"))"9 Z' ?$ _ L8 m7 [3 |0 @. L& z: G
- "(setvar \"CMDECHO\" 0)"7 K( ?( ?) R" B( Y( B. L
- "(command " "\"_" cmd "\"" ")"
+ B4 U P/ M; G! h7 B* J1 h, B8 @ - "(setvar \"CMDECHO\" oldcmdecho))"+ G- w x( m! k
- "(ai_nofile " qapp "))"
8 Z$ X8 J% `, D% I" a - "(setq *error* m:err m:err nil)"
4 l- C0 p$ I4 H9 n2 w7 f - "(princ))") A/ ^( F, \. k! d9 U8 a! K! j6 g1 i
- ))))))& [. H! J9 w1 Z* v$ a( x1 D
- cmdliste)7 _: J5 ? e8 w; J- f2 w/ C
- nil
. c0 |/ E( A) H1 B8 D! X - ) g( B( J, x8 C
+ m& x* w5 } @9 o: A, V/ @- (defun _autoload (app)
. w! L3 r6 b! c* E - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
2 r( ~$ l& l2 @# e* k - (load app)
1 @0 Z/ V. M2 s. d/ Y - )
. b6 M& ]" `& j9 i7 O
# e! ~# y9 o/ X* H4 n$ r8 ~# P- (defun _autoarxload (app)
* l4 h% L8 ?+ g - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
5 l1 ]+ s4 M8 A# D; a - (arxload app)# U% Y$ z; E" w! U: l# y
- )3 S" y. y* G6 Z. q
- : b+ X; X( f$ Z, Q; t
- (defun ai_ffile (app)- I. ?5 p5 ~6 J( G
- (or (findfile (strcat app ".lsp"))8 d' x7 g5 d% \
- (findfile (strcat app ".exp"))
5 q! a, U: Y# `1 v: ?) c - (findfile (strcat app ".exe"))
6 N9 u: i" m& N% w8 {" K - (findfile (strcat app ".arx"))
4 c, N3 M l' E0 }" h+ p+ i# x - (findfile app)
7 \' C+ x5 _. |: Z - )/ v. R5 o e6 @$ S) o# b4 U0 u- }
- ) Q& L4 l0 `4 F! {2 ~5 _- N
- ' `- ]; {7 `8 g; h
- (defun ai_nofile (filename)% l& I9 D2 c: M% {7 ]( p
- (princ
3 k/ _& [6 H$ @4 O7 o - (strcat "\nThe file ", j% d5 A8 @- J+ l4 J1 E X
- filename
- x+ x7 l2 m e1 m8 { - "(.lsp/.exe/.arx) was not found in your search path folders." ?& F# n, w/ o: v
- )& O( f& R2 Y! H& o' b
- )+ M. U- H/ r: w$ q/ B5 C
- (princ "\nCheck the installation of the support files and try again.")
1 C2 D+ \; H0 A* h0 P - (princ)& ?7 B' M6 O3 C3 v- k1 @
- )
3 i, o2 V4 S3 l8 R4 L$ v
/ K& ^" z3 w' P' b1 O* T
% L8 d( |4 H' v% g1 Z" ~; v- ;;;===== AutoLoad LISP Applications =====
7 ]6 S' u$ I9 N* r - ; Set help for those apps with a command line interface$ M0 l5 A- E( M% L1 z' a
- # k9 @5 ~. o1 K/ }
- (autoload "edge" '("edge"))
' d; q. @7 z9 b6 O* Z7 u) A - (setfunhelp "C:edge" "" "edge")
9 j0 E5 ^6 J( Q. v! {2 \: \ - ! N! V, c8 S+ F8 z" t' y j z
- (autoload "filter" '("filter " "filter"))) k, z; h& V/ V: A/ {0 T) @
3 A/ X' M) K- {; a7 t" X- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
& d# d7 c% I' x9 C! i, S; H) Q - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
& o) K+ B9 L) Z3 `% D) o - )3 q2 Z ~9 z% x8 p3 X! P: A
- (setfunhelp "C:3d" "" "3d")6 }6 ]" ?' s) g7 ?; M
- (setfunhelp "C:ai_box" "" "3d_box")
& |$ |' |- z) _7 \, t3 }4 F$ m( c; u- t - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
9 g* e! S; O: N0 | - (setfunhelp "C:ai__wedge" "" "3d_wedge")
, J3 v+ f& F0 l. g - (setfunhelp "C:ai_dome" "" "3d_dome")9 m; f. `' }+ z! i a
- (setfunhelp "C:ai_mesh" "" "3d_mesh")' A) D5 f. K* d6 z- C5 G
- (setfunhelp "C:ai_sphere" "" "3d_sphere")
9 j* q' j5 z2 t* {% V! k; P5 C - (setfunhelp "C:ai_cone" "" "3d_cone")
/ X4 E: F" O8 ?9 Y4 s - (setfunhelp "C:ai_torus" "" "3d_torus")" O0 {- \. W. O! X( L: ^
- (setfunhelp "C:ai_dish" "" "3d_dish")* F$ J- ]: ^8 {: z9 Z
, ?! O5 V7 z* U% `$ J! N- (autoload "3darray" '("3darray"))
# `6 z [# G7 Z! h; o) t! @3 O3 R - (setfunhelp "C:3darray" "" "3darray")8 z6 w1 d/ n" N: W
" g/ ]( W* Y/ z: |, U' L/ c- (autoload "ddvpoint" '("ddvpoint"))
2 Z4 w7 D1 D8 S* ?2 y+ v - 5 O! u1 S8 Z8 f7 d4 B! i
- (autoload "mvsetup" '("mvsetup"))
4 B: X5 C. A9 ^5 _" u+ i6 g8 L: q - (setfunhelp "C:mvsetup" "" "mvsetup")
; v5 ]$ v/ w) o+ k9 C+ e3 g - , F3 d, W* c& y2 L
- (autoload "ddptype" '("ddptype"))
+ ]1 k3 \: Q9 K' q7 X+ l$ y - . C3 d$ I$ y4 y, G. Y" n6 p8 ?5 C
- (autoload "attredef" '("attredef"))0 |" m a; F8 k, m, F
- (setfunhelp "C:attredef" "" "attredef")+ t7 w, o3 M% a
: a, k0 H" c* f5 y' D& p- (autoload "xplode" '("xp" "xplode"))
/ o: q( }. |7 [0 e' Y( {7 M - (setfunhelp "C:xplode" "" "xplode")
/ m3 L6 D1 F5 G C& D' P0 g - $ u6 J4 _7 F/ _- ?- U
- (autoload "tutorial" '("tutdemo" "tutclear"
- Q$ H; [& O0 `( }6 o - "tutdemo" 3 x% K7 y! Y& M4 l$ G" G
- "tutclear"))
2 j, P0 Z. D" j9 K - - Y. {; g' t' f0 Y' f% w" ~
- ;;;===== AutoArxLoad Arx Applications =====
+ T2 s- ^& S; p: {# A0 l6 I - ; R5 r) Q8 W2 M# M4 ^+ O
- (autoarxload "geomcal" '("cal" "cal"))3 ]9 w0 s! J. u7 p
- ; q5 v) Q- h4 o/ M8 I- y
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align". C. O+ u# h$ r; T) k1 H9 V
- "mirror3d" "rotate3d" % [+ l5 N" ] x& m4 |
- "align"))* t8 W( e) ] e" p. O9 |* b1 j# C
- 1 s1 |: ~5 Y- w9 C3 S, Z
k# F# k3 h. h; N; j. r- ;;; ===== Double byte character handling functions =====
" ~+ u/ A0 O9 t: y/ C! O
# z9 o: K; Z3 c- S4 M5 I- (defun is_lead_byte(code)# }+ K; Z8 [- q/ t+ W' {9 f! j
- (setq asia_cd (getvar "dwgcodepage"))& R" \9 R/ @$ Q
- (cond
$ w5 \ _+ B: F, _ - ( (or (= asia_cd "dos932")
* L4 f3 i$ G. D% g - (= asia_cd "ANSI_932")7 j- r3 Y9 m! E1 }% k
- )
7 ]$ }) Q: N$ @" ^ - (or (and (<= 129 code) (<= code 159))( L C+ E5 U; f; x1 Y
- (and (<= 224 code) (<= code 252))2 ~( v5 Z, [6 U% z5 N+ s
- )7 Y8 R# g" {) J% i. K- v) h1 p5 {: P
- )8 Q# I" N3 P# A* i% W
- ( (or (= asia_cd "big5") Y' a4 F/ T/ ]
- (= asia_cd "ANSI_950")
2 J0 b% ?" G1 S: a% ?4 s - )6 B( j! k% `( h
- (and (<= 129 code) (<= code 254)) W: N* h* o4 X5 u/ p4 U3 s
- )5 m, T# A% j) d5 G V/ G
- ( (or (= asia_cd "gb2312"); t- i4 U; ]+ [* }: R/ h& x
- (= asia_cd "ANSI_936")" q! Q' T9 ]4 M- v; M
- )3 {: ]# Z x. P c |
- (and (<= 161 code) (<= code 254))
+ p1 d: a( B3 G& D, q2 Z% t - )
. P' U; c4 k3 j) K; P. j - ( (or (= asia_cd "johab")* _3 I2 Q4 q. [/ a
- (= asia_cd "ANSI_1361")5 q* {1 J% h/ a" t* [7 [
- )
+ r% T" n1 R1 m% I* ~ - (and (<= 132 code) (<= code 211))
5 V9 h4 w$ m3 m( ~) U- L, A - )5 B5 C8 l5 R6 ^/ o4 Y H+ d
- ( (or (= asia_cd "ksc5601"); Q D" i3 c# U& G- N
- (= asia_cd "ANSI_949")) N7 H9 D+ C0 B) c# O- t2 X m
- )
# }% ^ U9 m$ ?/ ]+ j - (and (<= 129 code) (<= code 254))
' {9 P- m5 h4 v, f - )
2 B8 J9 _% Y. t9 t: F - )
6 q6 a9 k. G; l# T$ H* ]* f; [2 Q - )7 y: M/ z- K# \
3 [9 v4 G6 l3 G" W5 ]3 F+ T8 Z' }- ;;; ====================================================
$ }% l( A* n- P7 u6 U
9 t& N- F; }5 O0 d) l$ S# j5 @, B& I
4 q5 A: T8 [1 c/ }+ \# c- G- ;;;
9 ]4 h5 a1 Q8 S8 x: u* D" ` - ;;; FITSTR2LEN
4 X" o. p8 a3 T: h - ;;;3 i5 P6 T0 K* C; A: [" \- O
- ;;; Truncates the given string to the given length.
# d! g1 l7 C$ K9 w: Y: Y - ;;; This function should be used to fit symbol table names, that
$ ]" \6 _) B0 K& } - ;;; may turn into \U+ sequences into a given size to be displayed
* v/ n4 A1 R+ E) | - ;;; inside a dialog box.3 e K9 V' m7 D0 y+ B4 @9 Y% W% n( M9 H6 a
- ;;;8 {) r4 |" L$ _
- ;;; Ex: the following string:
3 U5 ]4 W) t7 p2 k0 b7 w0 ` - ;;;
% e: m7 l Q6 n% Q9 n - ;;; "This is a long string that will not fit into a 32 character static text box."
6 `: m% u* R: l+ W! z; y - ;;;) W) K- g+ ^* ?. F1 q1 O0 |
- ;;; would display as a 32 character long string as follows:, @ Q- J% C4 n" W# v6 p& s
- ;;;
* N/ d9 S/ d# k - ;;; "This is a long...tatic text box."
# S) |5 k% o+ T& Y3 t: b# ? - ;;;
( u; S6 _& l6 @9 ~3 E/ E - ) E; f9 G' A2 v0 F2 C! Q
- (defun fitstr2len (str1 maxlen)
. _6 O' b$ U2 Q. P. O - 2 ]& q; x, r) Q3 t0 b
- ;;; initialize internals
8 ^% S& d) t* h/ c - (setq tmpstr str1)2 I- [# L# z! O2 {% F" \, B8 X- l
- (setq len (strlen tmpstr))
5 O& z1 S( |* c b% Z4 A - ' G) ^) C" |/ Z! Y7 l
- (if (> len maxlen)
2 ~/ X7 K: u* \ w: m- f - (progn
9 V) S7 c3 g$ R' v& ] - (setq maxlen2 (/ maxlen 2))
- l# _' B6 k1 m1 k3 m4 ? - (if (> maxlen (* maxlen2 2))
( A. O, E0 T4 E& Z - (setq maxlen2 (- maxlen2 1))
; X e+ r+ d: o - )
& q' l- O! t' }" L' c& p - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
" G5 u5 e7 r% j9 i/ s. k( | - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
, p1 h: e0 U9 d+ O) ~ - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))' Y1 T6 r6 H7 {2 U6 Y/ X9 j. q
- ) ]9 l* z/ [6 z
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
: f' o1 k, u5 D0 W' @/ Z& f! m - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))4 \) l3 c9 Y' }
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))* {/ W0 {9 r% F1 g
- )
. K$ P, y/ y3 c: I3 m - (setq str2 (strcat tmpstr1 "..." tmpstr2))! Q t% Z0 p% L6 M* }
- ) ;;; progn( ^' t7 ]& Q7 z- E4 V/ k/ u
- (setq str2 (strcat tmpstr))
; C1 N- W- z0 @ i" y - ) ;;; if
- m1 @5 |1 i) U5 J H% |& I - ) ;;; defun
% P; T; s1 `6 k! q8 R - ' z% P7 F$ b. _8 [5 W% c- h* l
- + z2 s d! h3 A0 p+ T' l* M
- ;;;2 ~# Y% R8 o. q) ~
- ;;; If the first object in a selection set has an attached URL
( `) A# u: ?" S( e8 l Z& n7 P - ;;; Then launch browser and point to the URL.
1 Q. w. ?1 ^2 i7 l9 u6 I4 k9 u - ;;; Called by the Grips Cursor Menu+ {" N. g7 J& G. W
- ;;;% l4 ]2 O+ a k F4 p
- % l& b x0 T* S* l
- (defun C:gotourl ( / ssurl url i)
1 S* j1 _8 B4 i8 a; M - (setq m:err *error* *error* *merrmsg* i 0)
# C( ~/ A! Q& Y U' \ - . k! k) N0 c `' B, f/ y h
- ; if some objects are not already pickfirst selected, # \2 J5 g! L1 r( v
- ; then allow objects to be selected6 c7 {8 ]6 |. G& `; Y$ q
9 R( b6 } @, C% r8 W: A! u8 j- (if (not (setq ssurl (ssget "_I")))
5 W6 H, K7 @2 | G4 T) B - (setq ssurl (ssget))
3 D* W/ u n. u ]' M7 g- A% c - )$ j" A7 i* x2 U0 y0 m% T( L$ t, ]
* G6 a3 T- O6 S5 n* r* z. k' o6 n- ; if geturl LISP command not found then load arx application' x& w3 P# J1 `' z. u3 C3 r2 ?. t
; [1 a n7 U7 q4 g( q0 [2 P. z/ ~ Q- (if (/= (type geturl) 'EXRXSUBR)
$ _1 j: e+ K0 e, d# H P3 W - (arxload "dwfout")$ C4 p+ R; Q* i' }1 i% _1 _
- )
/ a5 O( b# U5 _ z" e: T -
7 q8 p, {) m& p. ?& i - ; Search list for first object with an URL
' H4 {, P. o+ G+ z. [3 A: P - (while (and (= url nil) (< i (sslength ssurl)))4 t) @8 C1 ]+ B& ^
- (setq url (geturl (ssname ssurl i))
8 `0 a7 _8 W7 z# x# b) N. [& K - i (1+ i))
6 t6 B! e1 }9 ?7 h+ j - )
2 j/ o' s0 n5 n, I3 X7 H" F% M - . m2 C. L% D7 D! U( e
- ; If an URL has be found, open browser and point to URL( ]1 V1 |4 Q `- e9 W( E# _
- (if (= url nil)7 K; h% m1 g; E( d# [' u0 r
- (alert "No Universal Resource Locator associated with the object.")
: W/ d" Z% S) [, Q0 l - (command "_.browser" url)
+ s* K. K5 s! J. ]! l8 B - )
* s7 Q+ V, e! o4 r, M3 T2 h
' R) j" b3 v' K- q3 c: \- (setq *error* m:err m:err nil)0 @& ~, M" F8 J8 r. q' X' L) |% I$ @
- (princ). m# q: d( R; F$ ^- j
- $ r9 y) J2 P2 m0 ]7 l* b7 H4 ~
- )4 p6 {% G0 d' E
( L8 _+ o9 h: {7 [$ ?7 K- ;; Used by the import dialog to silently load a 3ds file
4 J' ~- O( |% \ - (defun import3ds (filename / filedia_old render)0 k8 t( l# G5 @& J2 ?
- ;; Load Render if not loaded4 l) s$ L N+ a
- (setq render (findfile "acRender.arx"))
- ?3 K' _4 b; ~% Z - (if render8 {( t8 f* q, O" n0 F3 E7 @
- (verify_arxapp_loaded render) & F# B! D6 T7 x# `" j- h; o3 _
- (quit)
) w: h; t. o! P0 U( M: s I - )8 N1 N6 H+ ^3 E& y* S- z+ E
6 J2 }; G! a/ H) K6 f- ;; Save current filedia & cmdecho setting.
5 `3 L1 S! v& Y* Z/ D( @ - (setq filedia-save (getvar "FILEDIA")). F5 x' ]8 M; @ n% K- ^) W6 j
- (setq cmdecho-save (getvar "CMDECHO"))
5 N/ J& O9 k3 p' Z - (setvar "FILEDIA" 0)# U3 n. P/ P) V: T) g/ y! H
- (setvar "CMDECHO" 0)9 A1 o+ i0 U$ P' v! N: k' m' ]+ z: l
3 y, {* Y5 _6 S- ;; Call 3DSIN and pass in filename.
; F/ ]. B" p4 @ A q - (c:3dsin 1 filename)
+ z; j/ `6 ?* R" t4 R
9 A( F+ w1 C, ~2 J3 [9 l- ;; Reset filedia & cmdecho0 X* F9 n& k9 e' D0 n5 Y% b% Q
- (setvar "FILEDIA" filedia-save)
* P t0 t0 ] i0 J5 a7 a - (setvar "CMDECHO" cmdecho-save)- |: v. U) `0 M! J
- (princ)+ }2 M; W" B# y; ~% N1 `/ P. d
- )) w1 q6 G S0 H" w. S
4 P" z6 r. @5 x$ |3 Z- ; @) q2 o7 P& r& L3 Z* }7 F
- ;;;=== Menu Functions ======================================& _0 K( w' E5 Y" r/ h4 Q+ h! _& l
0 T3 q/ ^1 L3 Y) E- (defun ai_rootmenus ()
! w9 l7 [, M# w - (setq T_MENU 0)- B+ v1 i2 s* j- g) _9 r) H
- (menucmd "S=S")
/ G' o3 ~# ~1 y! x: m W+ m& b - (menucmd "S=ACAD.S")# O) o7 v# ]( A- J+ M6 O
- (princ)- D& ]4 p/ A( I$ ?+ [" v5 |' e
- )7 M2 R: L2 g) d6 O! i/ U
- 6 b* |. E7 N" n! V$ i
- (defun c:ai_fms ( / fmsa fmsb) Q1 F) \# D! V2 _( B8 J
- (setq m:err *error* *error* *merr*)3 H" v, q) V V" w, j
- (ai_undo_push)6 ]5 L2 c% ]0 }. I' {- H
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))$ t/ A8 M7 n, E+ n5 p* F
- (setq fmsa (vports) fmsb (nth 0 fmsa)) k9 j" `# K' c" N: x; l
- (if (member 1 fmsb)6 W- a7 [9 K+ g) G; e( d/ ]3 m
- (if (> (length fmsa) 1)" W- m: J% e5 L8 L
- (command "_.mspace")# B ]6 f6 q/ O) g( J+ e
- (progn
( ~& ]1 f3 Z1 k R2 k g9 u! R - (ai_sysvar '("cmdecho" . 1))
* X0 f, e8 S8 j - (command "_.mview")4 c0 m% g. S& k4 k- L, d7 {) m
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))1 \8 z' U9 s( K6 v. G% y
- (command pause)
' {1 l' S$ Q3 x3 L/ m, o4 m0 J - )& A; D' g$ g/ W
- (ai_sysvar NIL)
4 i( A8 T8 {! X3 P# d - (command "_.mspace")/ c' W. h1 y# C4 b3 }8 r: z
- )
0 b" j! h N; T$ i3 f& e - )
; t0 B% ]/ T! i" @0 g - )
$ L9 r! a3 I$ S7 U4 L; a5 L - (ai_undo_pop)( c5 @4 O' W$ d
- (setq *error* m:err m:err nil)) Z# [" H- M( k/ g; u1 d
- (princ)
7 G* J M0 u% f! g - )
0 Q* H8 T- G d: z- ] - . i& Y9 q* W8 k7 b! g3 e
- (defun ai_onoff (var)
; |# u9 U% d& g- P4 P' @ - (setvar var (abs (1- (getvar var))))
. k; d o7 s2 M. O1 u - (princ)
$ g7 G0 F. o4 m - )
* i3 B# t+ [, D5 n* } - & O. B. S0 x. j4 A# Y* u
- ;;; go to paper space& v* _7 v0 l; e' n1 T7 q. Q8 i
- (defun c:ai_pspace ()
) ]! C6 {/ f: I; I# n - (ai_undo_push)
$ i% \% a) h( L4 _, S" `& W2 { - (if (/= 0 (getvar "tilemode"))
* u0 s* Q% I+ i1 \" r2 F - (command "_.tilemode" 0)# m6 g% L2 k" n3 K
- )9 Y9 T8 C- V& g% z; o
- (if (/= 1 (getvar "cvport"))' j& _" l2 `- l6 J# _0 Q. {
- (command "_.pspace")
, a9 n2 m, S. W8 j* ~ - ) p$ t& d3 F, f+ V
- (ai_undo_pop)
) B& i4 n0 m) m. r9 [ - (princ)
% f/ P- o% N! D/ C - )
2 w- R' z' I! f5 K8 j
& }: m$ Q3 @* |% ?- v- ;;; go to tilemode 1 y, d$ ?3 @5 s
- (defun c:ai_tilemode1 ()
9 i- ^ }' P& T - (ai_undo_push)6 `5 y% u! k q, [
- (if (/= 1 (getvar "tilemode"))
) w! V' |$ @% B5 g - (command "_.tilemode" 1)7 W( g4 e5 \. K2 a% ~0 Y
- )( E3 y! L1 y R% p8 C9 ]) B
- (ai_undo_pop)
c6 F" \/ M5 g% P2 J! K - (princ)
$ ]7 y$ L' `) Y - )
3 w% i! ]# B2 l: r6 c
# g+ I9 }5 h( x! u' v- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
# n% U: w0 U3 y - ;;; Toolbar Dimensions/ Align Text/ Centered+ I: a; p6 c7 f' V; l
4 M2 G) c% A @7 h4 s: i- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)( ~' _4 d7 ]& n% C0 x2 G3 X/ c5 Y- W% w
- (setq ai_sysvar (getvar "cmdecho"))
/ V9 \& G3 y2 F6 h' W; Z - (setvar "cmdecho" 0)
0 @0 |, `4 O" c - (cond
9 k4 Z$ a5 |$ _2 m2 L: O& N - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))% u# s4 L7 m0 x
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
& @4 E) \; m% g( b! L - "_.dimtedit" ai_dim_ss "_h")
@9 t2 s' v5 f8 Z0 X1 G* k! ? - )
0 m8 s2 x7 G y/ K - (T nil); M) S1 A8 T, E* x& h4 A2 Q& w
- )
8 U2 X% E( n) ]6 Z - (setvar "cmdecho" ai_sysvar)
. e& o6 P+ D/ U; V7 H/ \& F - (princ)
7 ]- V0 r0 \2 d) g - )
/ R. i. j8 W. E" T - & G) g2 Y1 M" c6 h) O! R
- ;;; Shortcut menu for Dimension Text Above % I" z! E( u. s; p4 L9 d! R$ H
, X9 i! k9 G5 o! j6 o, l7 E- (defun c:ai_dim_textabove (/ ss)
2 s/ K; M. r8 ]6 G8 L* R: c - (ai_sysvar '("cmdecho" . 0))
6 k6 u x: M6 z1 Z1 |1 q* \ - (if (setq ss (ssget "_I"))7 L4 @2 Z$ J0 f
- (command "_.dimoverride" "_dimtad" 3 "" ss "") N0 X G8 g. R9 N1 z" C, b
- (if (setq ss (ssget))
7 a b, v2 i5 V - (command "_.dimoverride" "_dimtad" 3 "" ss "") 6 E0 O5 A! O+ C5 r3 B$ O
- )8 v7 O8 P: v4 i8 N1 y
- )
: h/ u% @0 g( Q8 Z+ }1 U1 |' @1 x - (ai_sysvar NIL)4 |) F7 Z% R5 h6 n3 X
- (princ)2 l" |. z0 l' I }, k
- ); w/ U6 x- o E h" o9 L" m
. {* J9 y- S2 V- U9 Q' }/ R- ;;; Shortcut menu for Dimension Text Center
7 W! v8 X5 A2 Z4 ^8 k: ]: Y; l - 3 L- I- y2 e0 ~; V
- (defun c:ai_dim_textcenter (/ ss)
9 q' L; ]7 F( T8 Q- F' G* O - (ai_sysvar '("cmdecho" . 0))
. `( a: q$ B- s# B - (if (setq ss (ssget "_I"))
; y2 u" M% D7 X6 [9 ~, q - (command "_.dimoverride" "_dimtad" 0 "" ss "")
7 u. L$ R& D( e4 J. w+ O( l - (if (setq ss (ssget))& i" e& r' r! g
- (command "_.dimoverride" "_dimtad" 0 "" ss "") 7 U9 A( q6 r- [6 Y5 `; g; B1 a; b/ P# O5 b
- )3 z& [+ s# \3 O
- )* o0 m$ `3 U1 H! q* A
- (ai_sysvar NIL)
" B/ Y$ N" ^% p' u6 {0 t - (princ)% D- q( ~/ |5 b8 [; H F- P. `
- )1 F& O: e# M5 I7 \ q
8 [" a/ J& \1 @% b$ U- ;;; Shortcut menu for Dimension Text Home # U) M! [% M$ ~* E$ I& n( g% t
" F$ g! f% }0 W8 M8 W5 y- (defun c:ai_dim_texthome (/ ss); G2 C- m J/ Y1 s
- (ai_sysvar '("cmdecho" . 0)), t( q& ~6 r% J: @, x* @8 d) ]
- (if (setq ss (ssget "_I")), @3 D9 x: ~$ o& z1 T, b4 Y, L
- (command "_.dimedit" "_h")4 ]- Q5 d3 t) r2 i# J4 u+ Y
- (if (setq ss (ssget))2 O& o2 K+ V% w- f
- (command "_.dimedit" "_h" ss): k& s, N1 X3 S9 e8 D9 O; D) H w3 K
- )4 i- q: G% r3 N7 ?
- )
' g1 o# y$ F( c6 ~) C - (ai_sysvar NIL)6 R; g' h+ v8 C+ V- M4 F$ ?
- (princ)( ?; m _4 N3 ?* J6 F/ i
- )
; M: ]& C: Q; W. i5 \$ a3 L - % ]/ C s; v7 H ^1 Z% q9 K
, H* G) H/ T: x F& Q1 l- ;;; Screen menu item for CIRCLE TaTaTan option.
8 [+ Z5 C8 `( \; h* \: b E! \ - ;;; first, get points on entities
2 e; y; x$ K* Z* A5 {0 F/ b - (defun ai_circtanstart() Y1 _1 T/ R' ^* ^4 Z- G
- (setq m:err *error* *error* *merr*)8 O" W5 E, o. C. }
- (ai_sysvar # B0 v3 l( y/ s/ D# c
- (list '("cmdecho" . 0)$ |8 F; a9 S! @) m
- ;; make sure _tan pick for CIRCLE gets same entity
4 s+ }( C+ f7 m - (cons "aperture" (getvar "pickbox"))' t8 l0 }# y2 x
- )
* @! y& Z* X D0 h! f - )7 f" S/ R; R/ n
- ;; prompts are the same as CIRCLE/TTR command option
. u* t. H- h0 l5 b* x l) K/ R - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))" o; G' |" m' Q9 K- t0 {, z
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))# L# ?8 g$ Y* T+ w- D+ b" t, |! d- ^
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))& |* x+ r; n; w L$ ^
- )
5 a, F; m4 A. r! U; a$ c8 O - ;;; Command-line version
1 B4 F2 ~ S6 W$ u3 c: b$ p4 a' o - (defun c:ai_circtan (/ pt1 pt2 pt3)
; B& k4 `+ t4 W - (ai_circtanstart)9 U2 U& f) [' s
- 0 ^% c% ^! Q' T
- (ai_sysvar '("osmode" . 256))
) w; ]; }$ ~( |8 t0 ?+ S# B- T - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
: T$ h; ?% q/ A% Q2 _5 L4 V - 9 F9 y* ?; y! ~
- (ai_sysvar nil)- {/ v4 l: I/ ]8 w
- (setq *error* m:err m:err nil)
# g* K! u- Y& b% ^4 n, ~ - (princ)
/ A1 X' m: b D6 F - )" y9 Y3 p2 z5 D9 o( e9 m; c
- ;;; Use this if CMDNAMES == CIRCLE# @- b( k( f8 d8 F2 ?1 e
- (defun ai_circtan (/ pt1 pt2 pt3)
$ D' ?$ F* Y E3 V - (ai_circtanstart)9 s: y5 o. N0 y% H
- # o' F. @$ n+ B2 D+ K
- (ai_sysvar '("osmode" . 256)). U, x0 W; H/ Y; Q& c, l) f5 K
- (command "_3p" pt1 pt2 pt3); P, b1 X' l) R4 {' I. }- A+ L
- ; N% I! k- T3 o. r) J+ p5 P
- (ai_sysvar nil)
& D: v( F4 g8 w. j! y - (setq *error* m:err m:err nil)0 F3 |$ Y; y& o5 k9 t1 X8 r
- (princ)
& K, v8 e4 t3 V - )
2 ?: b' L5 O$ u - 1 e0 \9 q# ]. n8 }
" p7 x: h9 }$ c9 J. I+ K+ u7 J, T- - }( p4 W* P, |" ~" @3 e
- ;;; Shortcut menu Deselect All item.
. Y4 {' u+ i0 S) F! D/ G: r
0 h# D' K9 R+ [% O1 B# D1 u' h9 [4 s- (defun ai_deselect ()
1 G1 a! ^( x4 C: Y- j- g - (if (= (getvar "cmdecho") 0) ;start if# I( s ?5 L7 {' K' s) Z% G/ U
- (command "_.select" "_r" "_all" "")* l% Y: ?, Z* z/ j. V1 J4 C
- (progn ;start progn for cmdecho 1; l$ @0 b1 a2 l( \# A
- (setvar "cmdecho" 0)+ b2 ~9 k" O+ ^9 k. z
- (command "_.select" "_r" "_all" "")
0 b! _, ` A& I. j1 O0 G - (setvar "cmdecho" 1)
. E! S8 ?% O, `. o - ) ;end progn for cmdecho 1
8 Y; N' |7 T3 T. f/ \ - ) ;end if, }: a- m7 Q; t) v8 `7 @4 }1 K
- (terpri)0 F+ ~- ?! ?' d
- (prompt "Everything has been deselected")
& v; E& ]( K3 r3 i8 U; Y. c - (princ)
7 q- }$ O+ b. o8 P - )- V; p1 E( l4 A& x" b5 b
- ( u+ ]5 z6 g% l
- ;;; Command version of ai_deselect to be called from the CUI
0 d; S( X1 Y( T! K" w - ;;; so it gets properly recorded by the Action Recorder
' x' b/ n& y0 @( M - ;;;
( F3 g I5 g$ c7 Q0 a+ e( ?# ^ - (defun c:ai_deselect ()' O3 [, }3 Z( y3 Y3 @
- (ai_deselect)! l: r+ w3 X( d Z
- (princ)
, ~" g4 M* l# S3 ^/ v- | - )
: [1 u/ V& k" H9 {- n0 @# S3 T7 a$ F
8 Y2 }/ R. D) u# f& N0 t! w. B. u- ;;;
; g% P0 a' A" w4 d3 u. I& O& I6 }7 | - ;;; Enable Draworder to be called from a menu. X) d( Y0 O, y0 O& n; I) p
- ;;; Checks for Pickfirst selected objects
9 w C* n/ h4 i% s. Q) M - ;;;' n7 _8 o {; g
- & y& R3 C8 R9 H7 t: A. A
- (defun ai_draworder (option / ss )6 |" P! I H! _% G
- 8 ?% ~4 Z+ w H5 o6 u
- (setq m:err *error* *error* *merr*)5 H; V2 S) ?) |; r. _; E% A& @# m
- (ai_sysvar '("cmdecho" . 0))
& o4 M' K4 s& { f - 7 l$ I# V% d7 G& s, m
- (if (setq ss (ssget "_I")); H }. o+ K! [
- (command "_.draworder" option)
5 w0 W# S5 s( E. G4 l - (if (setq ss (ssget)). r7 A0 i' z/ ^. W a
- (command "_.draworder" ss "" option)6 l. F) j0 @# I) C
- )' r% |3 ?! v- @
- )
1 D5 ?/ U, f( O7 ^% m3 d- Y) } - (ai_sysvar NIL)
! w; n" `7 t, Q% J - (setq *error* m:err m:err nil)
0 X* g r2 i2 U f+ x
: d m0 f9 P( U8 s% V- (princ)
+ d3 h3 s. V- ?1 e& h - )- U9 T9 D/ }- I4 [
4 `; V' c7 x% u- ;;; Command version of ai_draworder to be called from the CUI0 p+ d; E* C1 L% O! ?
- ;;; so it gets properly recorded by the Action Recorder
* k8 }/ {7 L$ x T4 \; G; F6 O) t - ;;;
{% Q% a C2 b R - (defun c:ai_draworder ()
7 I4 k6 U% \4 Y! j m: `( y: |! s - (initget "Above Under Front Back")
3 L8 m# z h* \$ W4 D - (ai_draworder (strcat "_" (getkword)))
( N. p" t4 h9 n - (princ)
" J# ~* l! @! F - )9 O9 t- R* s1 S, b7 k( \: q
- 7 H4 W; N) z2 h' E3 v# D
- (defun c:vlisp ()! p8 @4 Y) S0 v( f8 C2 Q$ M- z
- (if (/= nil c:vlide) (c:vlide))! E2 z7 U+ h7 ]9 j& T
- )" O4 a0 B0 y6 B% M
- 2 F. v0 F. F) P2 t/ S$ u
- (princ "loaded.")2 n$ i9 A$ V/ A l0 V
- 6 E: I* @8 ?' }
- ;; Silent load.; F$ M F1 B/ ^( j( i! S* M
- (princ)$ v( y( }7 S+ w& f8 D
- , R8 u" `: x9 N# o
- ;;;---------------------------------------------------------------------------- z3 ^! C& e4 z) K
- ;;;
) ^, O, p+ E2 O2 g; u* v( V+ [8 i - ;;; DDCHPROP.LSP Version 0.5
1 L6 V$ E: F, ~$ H/ L - ;;;* n8 p( r5 C0 o' @( M8 g! D
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.! }7 h& Z6 L c# X, u3 V
- ;;;
6 j% |( a/ k& I; ]4 b - ;;; Permission to use, copy, modify, and distribute this software5 x1 X M& H* s& l# Q3 D
- ;;; for any purpose and without fee is hereby granted, provided$ A" b$ F" ?. t6 J9 B; |
- ;;; that the above copyright notice appears in all copies and that) _* A$ x' e; l
- ;;; both that copyright notice and this permission notice appear in
! B( w9 ~% n% _9 _( g9 x - ;;; all supporting documentation.: n, Z' ?$ m t) H# e8 G
- ;;;. i; R( o7 s1 K$ q) t8 a
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
3 W! W2 [( I* k _' H3 f; e6 e% I) y - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR/ N6 b& b% Y' J
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.$ K; g( k6 e! h2 X) I
- ;;;. T; D: M6 F" }' m; u! \! i
- ;;; 2 February 1992
0 M' T( p! _ x3 Z+ m* ^! d0 a$ x - ;;; 8 O! g, a8 N6 [ e9 o
- ;;;----------------------------------------------------------------------------( e7 N. d6 R1 g) n0 g5 Z
- ;;; DESCRIPTION U. l5 M' h3 a8 E
- ;;;----------------------------------------------------------------------------/ u8 |8 L( b9 L% H7 t+ u' I% z2 R
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command./ f; g' r( w( h. e D. R9 s+ U$ ]
- ;;;
0 W" V7 {* b6 @+ A4 E - ;;; The command looks similar to DDEMODES. The main dialogue has an image 4 O, R& \" y7 l9 l% S, O6 z @
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
- E! C1 s0 q7 u4 d - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. 7 B6 H) w; W3 B+ _
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.) q! O3 r4 d( T( }2 y5 y, g& G! w
- ;;;
6 ]( n* O/ M/ G4 v - ;;;# X/ E4 P7 y+ O% V2 f
- ;;;----------------------------------------------------------------------------$ N. w/ e0 l2 D+ t( d
- ;;;----------------------------------------------------------------------------
" V; ^! v4 m( C! L/ H8 M. h% [ - ;;; Prefixes in command and keyword strings: : e% A: L. I5 f* u) k2 x
- ;;; "." specifies the built-in AutoCAD command in case it has been . n1 ]8 \0 S: ^3 C" A
- ;;; redefined.: K& U+ ~2 N8 U9 S. l: v1 M2 c; l
- ;;; "_" denotes an AutoCAD command or keyword in the native language* V5 ~1 q* f% X& z4 F/ {
- ;;; version, English.
) P9 P6 D8 Q6 f* q - ;;;----------------------------------------------------------------------------
6 a% \) Y5 U. }) v7 j& T; ~2 w - ;;;6 n0 Y% v# N. T% d2 j; |) p i
- ;;;
- t5 N6 k4 R) b: C$ U5 U - ;;; ===========================================================================+ _# R9 b+ M% q: u& Q$ O. _+ E
- ;;; ===================== load-time error checking ============================
1 J9 ]) P' q& W1 r' H - ;;;9 j+ i% | o$ B# t
- ' d9 W; w1 b! t" o( P/ F, C/ ` z1 ]
- (defun ai_abort (app msg)
6 x0 z1 p# t% r9 _ - (defun *error* (s)
1 @8 z0 z( {' ]- v. `6 [' Q; B$ A2 c5 s - (if old_error (setq *error* old_error))
E0 \/ d! G" z0 k - (princ)
1 Y2 B! o, N& H: @5 N1 W+ |8 I - )* m5 A' M% |5 K2 b5 f) Z0 f8 H* S
- (if msg
& U! Y" w! I! w3 z - (alert (strcat " Application error: "2 a8 w6 z& u8 Q4 _3 ?0 B
- app+ m1 w' x% p6 G# E# C6 |% \
- " \n\n "; B7 Y L: d/ ]4 Z X
- msg
9 o" ]: B4 c* a/ ] - " \n"
, `% ~$ F. I0 B. Q - ): z; g8 e: y8 M5 V2 ], f" H) K4 P# A R
- )
* k' z5 _* O8 A, m( f3 K+ r - )0 r- k t$ S C) o% }: Z$ {; T7 k
- (exit)
, a+ Z* u8 Q" G$ T1 H2 G" P - )
: e$ k1 \' b7 O! P
8 w( V' Y3 w ^# q+ A/ V- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
5 V9 P. F# v, J j2 H9 E3 u - ;;; and then try to load it.* f1 `2 r: _' U
- ;;;
( M& H5 f1 a4 S9 Z9 c3 Y - ;;; If it can't be found or it can't be loaded, then abort the8 J& O4 F! m. o
- ;;; loading of this file immediately, preserving the (autoload)4 ]9 r2 G% k, v( s! f) S
- ;;; stub function.
& N2 u- T: x8 N( Q/ {& V& i8 v5 y
( c5 W1 q8 E6 P0 B" w- (cond
7 c9 n# N5 w! k& R) } - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
% c& m; x& J9 h - ( [) \ a. j! N: s& C
- ( (not (findfile "ai_utils.lsp")) ; find it
" _: i0 L6 S3 V! u2 p7 M - (ai_abort "DDCHPROP"
9 x: ?- N6 O8 m# y - (strcat "Can't locate file AI_UTILS.LSP."
9 h5 R3 |) }9 w; J$ T4 o - "\n Check support directory.")))
; r8 i) d! X. h. P# A' R - ! B3 P0 n* ~9 S# m# v+ F b
- ( (eq "failed" (load "ai_utils" "failed")) ; load it, ~" Q) D* K3 O' ]# V5 O
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))8 a" F8 z- ], |
- )
+ H0 l3 y7 Y5 R' n - # l' p4 j7 @% u" y H N& u4 b
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP( P! n- l* {+ B7 P a; s& h
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
7 E# r# l, e* M! K - ) ; ai_abort's alert box dialog., D7 [6 x3 v$ f4 R' l
- . z% w; q4 n2 G8 ^
- ;;; ==================== end load-time operations ===========================
. l7 K4 W4 L. }" L6 E% Q" x
$ q$ N4 r/ p$ N6 Z) ^" D! D C" X- ;;; Initialize program subroutines and variables.3 d! k4 n2 _6 m# \
' I7 [. x8 b# z1 m* O5 G- (defun ddchprop_init ()" | w: c Q( l7 p$ U3 f
- 0 C @" T5 T3 X: A; p
- ;;
9 `: {/ ^! [: A - ;; Define buttons and set values in CHPROP dialogue box % ~3 q; S6 D( d) ~
- ;;5 g3 r" P& ?/ ]' I! G6 {
- (defun call_chp ()
3 X" v! \. d! R8 G% W/ D - (if (not (new_dialog "ch_prop" dcl_id)) (exit))# l' M' Y- r. r- {: m6 m. t
- (set_tile "error" "")% |0 l5 n! `, b% i! f
- ;; Set initial dialogue tile values
# [5 b' O9 ^* o: v+ g2 Z - (set_col_tile)
2 x$ Q/ h9 ~0 o! W% v - (if (= lay-idx nil)
# J6 ?! D8 q+ T- ?8 v - (set_tile "t_layer" "Varies")8 j0 F) `7 Z% y, l5 U: {" I
- (set_tile "t_layer" (nth lay-idx laynmlst))+ `0 ]) Q' Z; O' @7 p" E; N
- )
0 B+ x& o( V% ` - (cond
1 c: x* S" k, d) @# P$ D( G7 T - ((= lt-idx nil)6 M: T, z# w& N7 |- v. Z3 l6 H
- (set_tile "t_ltype" "Varies")7 v+ u: {1 m- f1 `/ f$ m
- )+ m" d a) Z2 d; `
- ((= lt-idx 0) ; set tile "By layer & layer linetype". ~$ \8 o* P, o6 Y
- (set_tile "t_ltype" (bylayer_lt))3 J( U5 `2 y2 e; {% Y9 g
- )
" R2 \- k3 @2 Z' n: T/ Z7 N9 i - (T
0 m& r" N3 Y8 ^% p0 k* h, B - (set_tile "t_ltype" (nth lt-idx ltnmlst))% n3 k# \5 V+ l6 M3 ] E
- )2 @: h8 P7 ~! l! W
- )9 R) y' p* U; q' Z! E8 h% D
- (if (or (= ethickness nil) (= ethickness "Varies"))* Y% d" V: r% z. K
- (set_tile "eb_thickness" "Varies")( q& I9 G& d0 T$ W
- (set_tile "eb_thickness" (rtos ethickness))
1 u" R3 z+ K" [6 A - )5 j2 B! _5 B: b7 [
- ;; Define action for tiles& Q2 s2 L, O7 C: r+ B
- (action_tile "b_color" "(setq ecolor (getcolor))")
! _: t# {( z" I) s - (action_tile "show_image" "(setq ecolor (getcolor))")
6 N" I1 f" A3 R( \# y B9 D - (action_tile "b_name" "(setq elayer (getlayer))"). k# O4 R$ K% w0 x3 T
- (action_tile "b_line" "(setq eltype (getltype))"), V M) \3 `4 ?5 t0 I
- (action_tile "eb_thickness" "(getthickness $value)")
4 |3 S& h0 @( g - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")3 T" ^* T; W$ n
- (action_tile "accept" "(test-ok)")
( R+ R9 I% B1 Y4 N' b - (if (= (start_dialog) 1)) q- z0 r) z( `
- (progn. z( b8 m% h! j! p- s6 ?
- (command "_.chprop" ss "")) ?5 | y+ O2 m9 p# P4 B) Z" L
- (if ecolor
- ?4 B: t1 d. F+ x8 o - (progn* ?, X4 ~) r5 D0 e6 C( B
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))& s8 |/ i2 x: V' U/ U
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))3 T* z. m# [6 m ?- _# q/ z& n
- (command "_c" ecolor)$ D: x; h R5 \* ~+ k
- )
7 i1 l3 f: P# V: u. q# L/ w - ): u; ]: m2 ~( J0 b2 Z- h7 }; W* N
- (if (and (/= eltype "Varies") lt-idx)% r3 A' M% S( ]* c
- (command "_lt" eltype)
$ y+ W2 v) R, R/ p8 {5 C - )
7 c0 L' B1 V# n; _! y" h - (if (and (/= elayer "Varies") lay-idx)) z: G+ _- E$ w X
- (command "_la" elayer)
- k }0 U7 {) N6 v/ t - )
. t; D6 E& B( u7 [* e - (if (and (/= ethickness "Varies") ethickness)
/ y! Q9 R/ F5 D/ H& g: Y. R - (command "_t" ethickness)
' Y: e$ Y7 [8 J0 G1 [: b+ A - )3 S3 _: ^# _" O) A6 l) ^
- (command "")
* @9 y- ]* {3 T- @8 \! B - ) F+ f# f* n) |" _
- (princ "\nProperties unchanged")+ {( k) m3 {4 T+ J/ r
- )
& O7 z6 n! G2 @ O* C8 l - (princ)
* ?; p5 Z! R: Q: j3 P# u4 M2 |3 y - )
' R. ~+ S! _5 _- M' a! x - ;;
2 R- c" _( R' C4 a& _ ? - ;; Function to set the Color text tile and swab to the current color value.
- r: K7 [8 h( y5 X( x7 ~, a - ;;
- R$ b2 l/ f2 V7 ~2 G2 c# z. ] - (defun set_col_tile() Z' L8 R; Q+ @8 F1 D
- (cond
6 ^ N8 u3 {6 R9 |8 i' N9 ?- j - ((= ecolor nil)0 p: F8 ]. z+ G0 T
- (set_tile "t_color" "Varies")3 _& \! z2 C5 ^# v1 v* M K8 b c
- (col_tile "show_image" 0 nil)
! I+ J8 X$ ?4 m' G7 c! U - )
* _6 g; k* F4 p - ((= ecolor 0); o8 Y* U, m$ V- c. U
- (set_tile "t_color" "BYBLOCK")8 o: |( S$ @0 \. v
- (col_tile "show_image" 0 nil)0 @; p6 F% ?6 D* e6 U
- )
2 v, Y! m1 \9 S+ X. N7 f2 w7 U - ((= ecolor 1)
& G' L! J) |6 s7 ]5 S! J! o" U - (set_tile "t_color" "1 red")
2 P1 C5 j, q3 g C$ M' a# I% I - (col_tile "show_image" 1 nil)' M1 r* C1 A* B9 G4 x
- ) P6 B2 {4 w& w! ?0 I
- ((= ecolor 2)6 k$ O% N* M' r2 M0 X' G
- (set_tile "t_color" "2 yellow")
7 m* C6 Y' k% {5 c - (col_tile "show_image" 2 nil)
$ D0 E$ ]6 w* p% L3 c9 ]' f - )0 H+ C2 W9 p+ @; M. B& X6 J5 A
- ((= ecolor 3)
2 e& O* r- f2 `* U - (set_tile "t_color" "3 green")# e k; u) a. z: Z" N/ @+ |6 C
- (col_tile "show_image" 3 nil)6 K3 t8 O) H! j4 k" w9 N
- )! d5 C6 L4 k9 c
- ((= ecolor 4)
3 Q; P2 t5 b. w- ]6 p* e - (set_tile "t_color" "4 cyan")
' G3 q6 l& j; s - (col_tile "show_image" 4 nil) | i& r+ b9 _4 j
- )
$ ~- J3 S8 {( L Z6 t - ((= ecolor 5). @. h5 h- b* {
- (set_tile "t_color" "5 blue")
7 e+ R% D0 R; f; d7 ~) I - (col_tile "show_image" 5 nil)7 a+ G, |+ I" ?
- )1 U7 ]; p, s! n. R2 A! g3 f; }
- ((= ecolor 6)3 D; w+ [# U; W( t; e; ^
- (set_tile "t_color" "6 magenta")
0 Y" {. Q: X7 |2 s - (col_tile "show_image" 6 nil)
" D/ u, a" F3 g4 y% T8 z7 Q - )
7 e- o+ |4 {( |" x+ z - ((= ecolor 7)1 [, P+ a+ ?1 C1 C3 ^+ w( Z- Y
- (set_tile "t_color" "7 white")
3 d$ G+ S1 V& \+ n - (col_tile "show_image" 7 nil)
0 F" ^" y K( G, I - )
5 h9 L z0 C8 K0 q* e/ A4 w - ;; If the color is "BYLAYER", then set the tile to. ~- j! ]# s3 k+ N# j3 T
- ;; show it's set By layer, but also indicate the s* {7 H, M) A$ S ?/ P
- ;; color of the layer - i.e. By layer (red)" g5 B# n/ V( C# ~( e
- ((= ecolor 256)0 N/ n8 q. B( Y' }8 y; W! j; ]
- (set_tile "t_color" (bylayer_col))
s# t2 z" A3 ~+ P; k) K# a9 v - (col_tile "show_image" cn nil)
9 d: @, R+ S* c4 _" e6 S+ e7 v% q - )
1 k: Y, w+ i& d* F. ^5 F2 _5 d/ u - (T 5 H! @5 Z( K9 R
- (set_tile "t_color" (itoa ecolor))/ `/ o# p2 O' i% ]9 ?3 I! y
- (col_tile "show_image" ecolor nil)
0 x) i6 B* h/ g$ H; B. j- ^ - )/ `2 u. K; W/ s, O
- )
7 e+ `) n) T0 ^: D4 t+ E+ L( W - )
$ {. W+ N' d7 w; d6 w* l - ;;
- i0 k( u* w6 W- F* W - ;; Function to put up the standard color dialogue.! n8 r9 Y4 y5 j# ], Z8 u! ~
- ;;
9 l2 b8 d0 C# Z, }$ J4 z# ? - (defun getcolor(/ col_def lay_clr temp_color)# z" y$ J0 k& l) c, r
- ;; col_def is the default color used when rq_color is called. If ecolor : N5 \; ]+ D y8 ~ f
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
$ Z" r7 D: J7 J - (if ecolor
- N/ G/ D- A4 L7 q# M1 u- E - (setq col_def ecolor)
( ]3 u& ?0 y4 V) [$ ]4 b x" }" M# o5 ` - (setq col_def 1); F# E* m6 t9 u+ n: D
- )
% ~- V! i: T% A: u* z9 I, z - " `# s1 g4 G* s( K7 ~) I) E
- ;; If we're working with a single layer, get its color. n# ^: B2 Q0 w% j9 s/ f
- ;; for use in the color swatch if the user selects color BYLAYER.2 q8 r! m' K, b, o
- (if (/= elayer "Varies")
; @% \- Q. c+ Q3 j: B* N* \ - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
( h5 q4 |" [" f4 p! b5 G5 s+ k, n2 J - (setq lay_clr 0)3 S% Q! ]1 n, I
- )2 u5 K0 W3 m3 \1 g
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))8 {5 ?: m/ ^* w& u' ?9 V8 l
- (progn% F, I( E* ~5 R; @4 j
- (setq ecolor temp_color)" s& M+ j0 h7 R5 D$ [) I1 N0 H
- (set_col_tile)
4 d" U2 d6 e2 k+ X - ecolor2 [: R+ }, o, d8 E7 r& h
- )
, f/ a- o3 H) W; B3 \ - ecolor) R( R! n; m# d$ m
- ) ( j2 r; T) o0 A& ~0 t+ T3 D. L% [
- )5 J3 M" l0 M- C' d5 n9 v& U
- ;;
7 N' l! B- k3 t8 T. p - ;; This function pops a dialogue box consisting of a list box, image tile, # w8 e: p9 Z8 C1 {# O- @9 `/ d0 y! F
- ;; and edit box to allow the user to select or type a linetype. It returns
7 C3 C, W* A4 W$ G- M( _$ T - ;; the linetype selected.& U# ~ c% X/ F& m7 X3 `
- ;;+ B+ f7 d' T+ c$ Z" c
- (defun getltype (/ old-idx ltname)
; w3 R9 D3 Q7 _2 Q - ;; Initialize a dialogue from dialogue file% F' _- c3 N% {, t
- (if (not (new_dialog "setltype" dcl_id)) (exit))
5 R# q p7 h4 i1 V7 L9 e - (start_list "list_lt")2 L$ j* c9 m; [3 o
- (mapcar 'add_list ltnmlst) ; initialize list box/ j4 P; G" ~9 V3 S" n+ @
- (end_list)1 `- V" t- j0 L. c! Z0 O
- (setq old-idx lt-idx)) P4 w% s: g& O8 P8 C
- ;; Show initial ltype in image tile, list box, and edit box. E* H9 L3 Z: F- U
- (if (/= lt-idx nil)" m: v0 b+ l7 C* k
- (ltlist_act (itoa lt-idx))% i; j+ u. O6 Z! B; G( @* o2 Y
- (progn( n4 R. f1 m/ ?3 ^! p: d
- (set_tile "edit_lt" "Varies")0 f* R) U* I' e8 r+ S; Q1 D; b
- (col_tile "show_image" 0 nil)& a! W! t+ q& H; {5 A
- )
, g# m9 _# C9 D - )
: I* O8 Y6 B6 F' [0 ` - (action_tile "list_lt" "(ltlist_act $value)")
7 _9 q* |/ P1 N* G: C5 R7 m - (action_tile "edit_lt" "(ltedit_act $value)")/ I: {7 i6 }2 _3 m+ j
- (action_tile "accept" "(test-ok)")
# h% x& g7 [4 e V" k - (action_tile "cancel" "(reset-lt)")
% i" B s9 ?/ o. b! w. N. A - (if (= (start_dialog) 1) ; User pressed OK3 i2 Y; N. T0 `% j* f' \
- (cond
" C6 f6 |; `# n! h8 d - ((= lt-idx nil)
1 |8 L2 F1 ?: `8 C) g& d: } - (set_tile "t_ltype" "Varies")' D5 R( ]/ I. y7 O! r# { w9 L
- "Varies"
( S9 W9 K' h# a2 n1 }5 \; W - )( s6 v: N9 ^8 \
- ((= lt-idx 0)' [) g0 t" I1 l, a, H# j" s: v
- (set_tile "t_ltype" (bylayer_lt)) w1 b, N0 t: F1 h0 R4 n" x$ g
- "BYLAYER". H1 m4 K" a6 b1 `) e
- )
$ ?( x9 t/ S; j" w2 O - ((= lt-idx 1). R6 |+ I; ?4 y# n" Z
- (set_tile "t_ltype" "BYBLOCK")
3 F I8 g# K& }6 z9 l - "BYBLOCK", x: p( Q* ^& d% y
- )
$ w( F# @! C% T8 b. J+ X, k$ O - (T
' b3 m- O9 J" \; B - (set_tile "t_ltype" ltname) - h; [: ]0 k$ w
- ltname
" l$ H6 g& F. y E1 ~ - )
& p# t0 X7 j# I+ h: l! @4 q - )* S% ]2 S: ^# S4 p. ~1 C i6 D
- eltype- L& n H2 q1 c; C6 I+ N
- )" C( F; n0 e3 `. o/ l
- )
4 f9 x, v' }: O# S; G - ;;
$ u2 r8 x$ |* A; H8 h5 U - ;; Edit box entries end up here) k! e: C$ T' Y/ X. y! I. s
- ;;; s! S; X1 G" a4 t! d; g/ s
- (defun ltedit_act (ltvalue)
# s1 |% m0 o! c* D - ;; If linetype name,is valid, then clear error string,
; e" f1 K) H$ @! l - ;; call ltlist_act function, and change focus to list box.
' T2 g! J0 A$ n* @% \ - ;; Else print error message.
, K, ~% U: Z, ~8 R! W8 q+ C - (setq ltvalue (strcase ltvalue))
) h/ j0 q- A- \) [0 x - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
: A- B; J5 I' c - (setq ltvalue "BYLAYER")
$ s, L5 e5 d+ y8 I# H - )
1 F# Q% i" q% ^4 I6 Z - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))* c+ N$ j9 [! S4 W) D
- (setq ltvalue "BYBLOCK")
& T1 B+ x$ y B8 f9 f- x+ X - )3 E$ f2 U2 e8 l8 O
- (if (setq lt-idx (getindex ltvalue ltnmlst))
: f) A2 R, Z" D) \ - (progn, S7 y1 s$ t7 u' J, }# {
- (set_tile "error" "")
# p6 e5 |- B2 u7 ?8 G - (ltlist_act (itoa lt-idx))- A7 M4 r+ U6 k( D8 F; ]
- (mode_tile "list_lt" 2)
- o- J7 P% H0 N - )
$ d# S. u6 o0 U1 |$ L6 S - (progn
a" |7 f; v% p c6 \ - (if (/= ltvalue "VARIES")
" W$ ]2 I1 w3 @) \ - (set_tile "error" "Invalid linetype.")
9 q: h0 D3 K0 d8 [& [+ c- d - )
9 O: R# O8 h3 }7 u - (setq lt-idx old-idx)
z9 Q3 i7 z1 R) @7 K" W0 r - ) 3 R) d d' E' b& a- {5 v
- )$ ?: U; n4 p; l: ?0 Q- m) I
- )3 W6 r0 G1 o8 l1 u
- ;;
# g: n S2 A) [ - ;; List selections end up here% y( l& O0 B& _ b% \# H% a& x
- ;;
' x8 H0 X6 O6 s' @/ d$ i4 I* D - (defun ltlist_act (index / dashdata)2 V/ _# c( ^4 I# l h: @! E
- ;; Update the list box, edit box, and color tile
. g% x" a5 W( T% Z% ~- G i - (set_tile "error" "")
% p) W7 F( M Q2 t - (setq lt-idx (atoi index))
/ E4 Y9 z/ _, ` - (setq ltname (nth lt-idx ltnmlst))0 H+ o) |9 U" P. @
- (setq dashdata (nth lt-idx mdashlist))
1 i6 H( }* q; z2 y+ a& a - (col_tile "show_image" 0 dashdata)9 k) x/ L# f9 J1 D8 ?! o" |
- (set_tile "list_lt" (itoa lt-idx))
_" j$ h+ S8 I: N - (set_tile "edit_lt" ltname)
+ y. i4 d5 q# Q J5 X4 x - )- B" d/ e2 L8 k9 V
- ;;. X$ Z0 _4 O2 @) K& D
- ;; Reset to original linetype when cancel it selected
2 h$ t" Z' I8 I" j/ Y' U - ;;2 Q E9 ~ U1 N& F( g7 s% }5 N
- (defun reset-lt ()$ c4 U0 F* o, _2 L1 q! `
- (setq lt-idx old-idx)! A' R/ O( V! Z- v7 u
- (done_dialog 0)
6 e+ `. j! F6 Q% M M# c - )8 g0 [) v( P' A( N
- ;;8 k9 w* J/ y' U4 B6 d K8 Z" M
- ;; This function pops a dialogue box consisting of a list box and edit box to ) z* d! u2 ^, u; C
- ;; allow the user to select or type a layer name. It returns the layer name ; L, Q7 s/ F! J; w; ]
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the . m* S6 A! i# E! Z" x9 }& T& U
- ;; drawing.
& Q2 y! F1 ]3 r( g$ f) I - ;;
9 R8 x: _3 ]+ e8 j& ?# c; k& L - (defun getlayer (/ old-idx layname on off frozth linetype colname)
- Z1 u ~4 V2 Y: ~$ K$ Z& ] - ;; Load a dialogue from dialogue file
/ H9 n$ A$ \- m. V; J5 k& c - (if (not (new_dialog "setlayer" dcl_id)) (exit))
; N- U% [4 N3 y+ J - (start_list "list_lay")- w) r+ f3 t, |! a6 q
- (mapcar 'add_list longlist) ; initialize list box
: e$ h: \" W% V% I1 }: E7 E4 j - (end_list)
3 V s6 f0 |' \2 g2 `& P9 w - ;; Display current layer, show initial layer name in edit
8 m2 k* e2 z5 d) I5 w& h8 z, r( ] - ;; box, and highlight list box.
2 M( l2 i9 M* y9 {3 s: J# j+ V8 a6 O; R - (setq old-idx lay-idx)
+ D' w% k* _! a/ m. d% g - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))+ U9 x4 M/ D. _+ _0 @# M8 x* M
- (set_tile "cur_layer" (getvar "clayer"))
" B! P% x& b% a% s5 ~6 { - (action_tile "list_lay" "(laylist_act $value)")0 \" d* { h3 _8 U5 H
- (action_tile "edit_lay" "(layedit_act $value)")
1 ^/ p! k/ J" q y) \. U - (action_tile "accept" "(test-ok)")
3 D& t; a- q z& e2 T% M - (action_tile "cancel" "(reset-lay)")
3 v5 M6 c' {4 A - (if (= (start_dialog) 1) ; User pressed OK5 V3 N0 g5 x1 G+ U( ]8 I6 H# r
- (progn
& V& m4 }. X& E! r- H! @ - (if (= lay-idx nil) (setq layname "Varies"))0 E) V* E& X0 F) S' ^
- (set_tile "t_layer" layname)
* D0 ~9 U1 d7 Q4 S+ {- i& y - ; If layer or ltype equals bylayer reset their tiles$ T6 a( B) x0 [3 F' g
- (if (= lt-idx 0)
1 z$ `8 @/ z D6 @2 i$ D - (set_tile "t_ltype" (bylayer_lt))
' r# L' H/ W6 m2 v- Q - )+ Z" x. ?* z9 s! r2 m* C. o5 ]
- (if (= ecolor 256)
# n4 p+ |+ o5 x" C) e' s9 ` - (progn& w5 \7 g8 f- K4 g' |1 m0 Z
- (set_tile "t_color" (bylayer_col))1 x7 U6 I% p+ @4 V2 V3 d7 K
- (col_tile "show_image" cn nil)
% M+ L' @' O& t1 B - )
6 ~: b7 O- P3 x4 S+ Y4 { - )! T# y$ z8 J, w, r' M* p
- layname! \7 d7 p7 @0 _' f1 | A: N
- )8 a% a! n, w7 p6 e Q
- elayer
# N) |, D) Z2 t( ] - )
' U0 y! e' Z5 P3 y1 B1 b5 F - )
& m, ]4 d% k P6 A+ |/ ^ - ;;
, v/ A% b( S- C. p1 K; b - ;; Edit box selections end up here
# `9 a. z4 D" ?9 y5 A - ;;2 h" a6 F8 U1 L) {
- (defun layedit_act (layvalue)8 q" h) C5 ?/ w
- ;; Convert layer entry to upper case. If layer name is
. C3 ]& \1 `0 }5 D1 r - ;; valid, clear error string, call (laylist_act) function,
5 ~0 G3 c3 T3 L$ Q - ;; and change focus to list box. Else print error message.
; G1 M% e1 c g) G- T# i" C' k6 m - (setq layvalue (strcase layvalue))
7 S1 q- D" E6 ~2 O& M - (if (setq lay-idx (getindex layvalue laynmlst))2 I+ |% @4 q1 a7 n j2 D
- (progn
( u5 ]: q6 B+ Y+ L8 w- E2 ` - (set_tile "error" "")/ K, Z0 H. E: E
- (laylist_act (itoa lay-idx)), q: j7 n$ c+ i- F r2 w3 I
- )
' z# i4 b- N5 i - (progn
/ [! O9 X, ]- P$ J - (set_tile "error" "Invalid layer name."); q. h0 ]- }9 A5 a9 x' D8 Z- {
- (setq lay-idx old-idx); m" i; d; A! A3 B: f+ e! T
- )
( C/ b4 E4 G2 S - )
! ?& z' y# z r2 N- x5 { - )
& R( Q! S) O2 R - ;;
# }6 J; P& K4 p4 p% p) y - ;; List entry selections end up here
8 c3 \* z) G% A. [( r - ;;2 ~3 t$ Y* b+ b8 U7 v+ W
- (defun laylist_act (index / layinfo color dashdata)
3 F9 Q# V$ F G9 ]# w - ;; Update the list box, edit box, and color tile
. G+ ]/ m# S# K5 p - (set_tile "error" "")+ |/ R" F' D8 f6 G0 o' R* Z
- (setq lay-idx (atoi index))- }- h% |7 ?2 n$ j) w# Y3 Q! K0 }
- (setq layname (nth lay-idx laynmlst))" P& ]; P( p) A$ j6 ^7 |0 L' d
- (setq layinfo (tblsearch "layer" layname))
9 O* i' h& `" l" Z - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
, @! S$ l0 q* o- F/ ? - (set_tile "error" "Cannot change entity to locked layer.")
7 ^3 K/ R, f* F - (progn1 C. {% w) l" G
- (setq color (cdr (assoc 62 layinfo)))
+ K2 A$ f6 A: x; Y - (setq color (abs color))6 N, O9 X# g! m8 j2 U* J
- (setq colname (colorname color))) R/ S; A" ]2 v2 J2 T! J6 q4 v+ l; @
- (set_tile "list_lay" (itoa lay-idx))
8 c7 M( J: @6 ]8 O( m - (set_tile "edit_lay" layname)% ]6 t" G- q4 D! t$ V
- (mode_tile "list_lay" 2)" Y5 k5 d* a9 a8 K$ e3 k0 L
- )
6 _8 z7 Z" O2 F - ), n6 U1 o4 A( `' d" u9 n; H7 m4 s; ]
- )
; Q% o' `2 w- I3 g% z - ;;
" j% |$ w" |% l; J, r* c - ;; Reset to original layer when cancel is selected6 q- a; U0 X! v" U
- ;;6 Q/ g9 R S6 e$ N
- (defun reset-lay ()
2 ~5 O! c2 W+ y% h - (setq lay-idx old-idx)
2 |+ C, N3 Z+ o8 m. s) t+ D1 i" S - (done_dialog 0)% R5 ]5 X2 j- f, o3 \5 R" Z
- )* X+ `, |/ W8 }" n. Z' X
- ;;/ u/ V: @9 S% `( Q
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a * B3 k! w2 k9 }/ U& q8 u9 q
- ;; string can't be converted to a real, this routine checks if the first * H" W" _& S- B% p" D
- ;; character is "0". It also checks to see if the value equals "Varies".
3 I# J& w2 t0 |9 q" }/ c" D! F5 D) t - ;;* l5 B0 h- E$ h- ?' C9 o
- (defun getthickness (value)
" Q1 n+ F, q* c$ i) J+ R* ^% N - (setq value (strcase value))' F- O0 g9 W- X f8 ]" F0 I+ F
- (if (or (= value "VARIES")& K1 J) U8 F0 u. c; \% \% i4 P
- (distof value)! @$ ^( K7 _$ M& O
- ) G. y5 H" i# t% B6 d" F- e
- (progn
3 k4 q2 V6 e; _" t* y6 V3 d - (set_tile "error" "")+ P3 N* G& y8 P: ` x! n: A) S- Q6 ~
- (if (= value "VARIES")
/ D; ]$ m" m# q, N - (progn; Q [3 z0 R( E1 j) v1 M
- (set_tile "eb_thickness" "Varies")
9 J7 u/ I6 u) l* I. x - (setq ethickness nil)
$ E% ]* ?9 X& {/ _ i. w - )' L' W: u- u7 P' e: G5 H
- (progn( \0 w$ M+ V& @4 z R
- (setq ethickness (distof value))
. R" N7 y. A7 _/ H - (set_tile "eb_thickness" (rtos ethickness))
0 i! F9 S, ~1 S' ^2 o9 d/ D M1 f' Z) C - ethickness
! E& S& H; z+ }9 ]5 u5 x - )
& T2 d# I; c5 i+ O" t! { - )
1 E. U* W& h2 A8 R9 F - )
; k1 R( d& G6 k1 G - (progn9 i! D* O( A& ] Z9 G/ S
- (set_tile "error" "Invalid thickness.")' i! i- U3 I2 {2 B
- nil6 [$ C3 P7 Y; \: g8 L% w2 \; ~ n
- )
; F! T9 c3 L! S I) r! D) N - )) f: D; H7 K4 V* v
- ); N/ z- C$ q; P8 E' Q3 n
- ;;7 P# q6 Y) _( L9 s" T( U
- ;; This function make a list called laynmlst which consists of all the layer ; z1 ]% ?% R. @" s W
- ;; names in the drawing. It also creates a list called longlist which 4 _$ n8 a" z; e0 G; |
- ;; consists of strings which contain the layer name, color, linetype, etc.
; P3 Q1 ~! ]( [ z9 R - ;; Longlist is later mapped into the layer listbox. Both are ordered the & L6 H/ T( J8 E8 I$ Q2 A. N
- ;; same.
+ W* }4 i* x. I" m5 k - ;;
% ?" M# q7 K# l& F1 F8 @( e/ q& U - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname % a/ e% @0 J1 t1 E. d! Q
- xdlist vpldata sortlist name templist bit-70/ u" O) @7 g. e/ o( A
- )
; Y; | y: \5 z; z) V" n- f: m. F- f - (if (= (setq tilemode (getvar "tilemode")) 0)
' l* d' N9 z/ h4 {% w. F - (progn
$ G0 S* {; v6 o. Q - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")4 i N" B4 }& X X4 ^+ y
- (cons 69 (getvar "CVPORT"))2 B& F L6 e# ]% X
- )
" B! Q' ~* i$ s- Q$ G% D - )
: B1 k) ?8 H: j, b0 g+ H( G, Z- c - ) 9 C8 ^+ u# I p, w# m0 T/ i
- (setq cvpname (ssname ss 0))
$ X8 C* n. p5 F" ^ - (setq xdlist (assoc -3 (entget cvpname '("acad"))))+ y9 u" O1 i; N! F; C% H
- (setq vpldata (cdadr xdlist))3 b$ |; x K5 x7 T
- )" ~, w2 k" y; o+ |4 e( P" d/ p
- )
" f6 i# J9 L2 X, v% o' S: v - (setq sortlist nil)7 K7 x4 S1 O9 ~9 T2 P" D
- (setq templist (tblnext "LAYER" T))
2 S: D6 e, q0 J! H: V - (while templist
, i) V+ F6 r6 b1 `" K - (setq name (cdr (assoc 2 templist)))
) F: O' b% _, s4 I, Y - (setq sortlist (cons name sortlist)); e: g* h- k2 H* q0 E8 u: t
- (setq templist (tblnext "LAYER"))
2 e. Q* b T, j l- F* S0 R* x - )
7 v$ F0 f6 \# V1 Y4 |& A3 H! ~ - (if (>= (getvar "maxsort") (length sortlist))
' @: m$ V5 Y. b$ ]1 \" r - (setq sortlist (acad_strlsort sortlist)), |: H5 G" O- Y, o3 o" `; F! G3 R
- (setq sortlist (reverse sortlist))
7 W: H' a9 K/ s - )
8 ?' C R: w; {% B+ f+ D - (setq laynmlst sortlist)' `$ m) n4 e+ z7 @' X. ~& i9 o7 e
- (setq longlist nil)) j. A5 k" c. G( n @
- (setq layname (car sortlist))" r# c4 i4 o6 F$ Q. C8 [
- (while layname% K; O& a0 G* M a
- (setq laylist (tblsearch "LAYER" layname))! H P# S) p0 F% y# f
- (setq color (cdr (assoc 62 laylist)))
k1 K; a+ G# X' {! y1 s" G - (if (minusp color)
# ]% _- w0 c3 n9 ] - (setq onoff "."): ^( ^; d& I; Y: A1 K. [! f7 b1 y
- (setq onoff "On")* _! C& g2 L# C3 c0 N0 X
- )
6 a9 n& l5 p% g/ f0 i# b3 B+ ` - (setq color (abs color))
# L7 ]+ d9 e* Q; a! |: N: z - (setq colname (colorname color))
& \. V% M# I1 x @0 V) M, ] - (setq bit-70 (cdr (assoc 70 laylist)))
; d. _0 ^) q+ o" J - (if (= (logand bit-70 1) 1)
# f7 c: B9 p' _! l1 ` - (setq frozth "F" fchk laylist)
8 F! [0 Z2 s4 G3 d, C - (setq frozth ".")* V7 F" u! Y- w: A
- )) ?$ F. Y$ V) D; z. g6 Z; W
- (if (= (logand bit-70 2) 2)5 z# k; U5 O0 e% ?0 h; S, M
- (setq vpn "N")
$ V$ P( E6 F) ~$ U - (setq vpn ".")
6 u8 i; I" M) d; X - )
* u; ^" D/ f8 L& S - (if (= (logand bit-70 4) 4)
, z: M O1 J6 o$ x9 f7 a% W8 g% e - (setq lock "L")
9 ^& `0 z3 [8 ? - (setq lock "."): e6 F0 Z! |. T. E
- )
# w7 k l; B( H' _; I' P3 a - (setq linetype (cdr (assoc 6 laylist)))
* P: c8 X# {' N$ o8 v4 V! ^ - (setq layname (substr layname 1 31))2 u I% y2 e, G& @
- (if (= tilemode 0): C0 W, G( R5 Y6 _, V, D6 z
- (progn
4 X1 E5 }# e. D) c E* T - (if (member (cons 1003 layname) vpldata)
1 E" p# \; b) t" b* x7 {: h, ^ - (setq vpf "C")- |$ {/ N3 Z, y! b' u; \- R2 q; F! n ~
- (setq vpf ".")
" N p) a0 c; b+ s: W: T2 Q+ z - )7 g& [4 W O# f0 c
- )
& F1 y3 o2 c, O - (setq vpf "."), v4 |+ k$ c! A2 G2 a
- )8 w6 [1 z+ J. ^1 H
- (setq ltabstr (strcat layname "\t"
& V6 g) T. e/ x4 f; L9 u& W - onoff "\t"% R1 R0 j3 Z# b5 x
- frozth "\t"
# |# q' E) |$ X! d4 m - lock "\t"/ B/ ^3 W7 r2 p3 ~, N2 F
- vpf "\t"
. m* i" i/ D2 ~) [4 H: y - vpn "\t"- F" v3 y# m0 ?4 t
- colname "\t"
# B* ^" Y8 ]" D4 H' i& W - linetype3 l* r! f. `. k U" M, a% k
- )
! I, Y' @, Z/ ^/ N. O; B - )$ q9 B. G: [; e0 A
- (setq longlist (append longlist (list ltabstr))); i. Y% c$ ]" P2 z! D& ?3 z6 ^
- (setq sortlist (cdr sortlist))
7 O* C/ i- O1 F - (setq layname (car sortlist))' {3 V; [' t$ r h1 S& S
- )/ U& y& L! F6 h' _' i( M
- )
+ x& h3 Z3 G2 P- U8 ~/ Q - ;;! a6 |( C" x, x! E' ^" }
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of - P4 ]3 z7 O+ T" \* A% o
- ;; linetype names read from the symbol table. Mdashlist is list consisting
# f1 o+ R) E* @ - ;; of lists which define the linetype pattern - numbers that indicate dots, 1 w, y2 r; p. d' f8 r3 W
- ;; dashes, and spaces taken from group code 49. The list corresponds to the ; H7 S+ C! E( f: [- D% m" o
- ;; order of names in ltnmlst.
6 H5 A# Q9 C! w4 d2 C2 O! C - ;;$ n* p) j# v L$ r' H6 O9 v
- (defun makeltlists (/ ltlist ltname) P2 ]1 y$ Z, H1 R# m P! Z$ h3 W5 b
- (setq mdashlist nil)
5 m0 J! p! O( ^$ T+ T- C# R9 O. h' U2 c - (setq ltlist (tblnext "LTYPE" T))1 M, L3 z% G5 y7 _) M
- (setq ltname (cdr (assoc 2 ltlist)))
" r% q( W+ `4 e8 e1 u( i - (setq ltnmlst (list ltname))
2 v2 I0 w j& w( ? P' v; z - ; a) c, b9 t. y. b$ R. O( N
- (if (= ltname "CONTINUOUS")8 Z9 v* j& r6 l9 x5 [0 r
- (setq mdashlist (list "CONT"))
0 }6 T, y$ k3 I: Q& A% \1 V' e, f - (setq mdashlist ' K; ~1 X; |8 I3 h( u
- (append mdashlist (list (add-mdash ltlist))). w8 a! J7 e* M1 |0 I2 T* c) H
- )
# G6 Q, u' W' C8 Z0 ]$ x - )
9 _( Y" p8 S* W+ o% ~. J K1 @ - (while (setq ltlist (tblnext "LTYPE"))8 c+ M+ n! v# W, L9 o
- (setq ltname (cdr (assoc 2 ltlist))), c8 ~2 q9 u) u
- (setq ltnmlst (append ltnmlst (list ltname)))
- I) l- }; j' q! |1 W* @- J! Q - (setq mdashlist , }4 o7 m/ I& N( z' k
- (append mdashlist (list (add-mdash ltlist)))) T# H: n1 k7 E! k( m; _! |! z
- )
9 m ~2 |! J! r7 n& [5 f$ m) V% O - )
0 S) `- N+ H2 k- D, u' c - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
. T- D0 ~& C' j7 ]3 Y - (setq mdashlist (cons nil mdashlist))
3 K: V, s$ Y, Q1 ~8 l - (setq ltnmlst (cons "BYLAYER" ltnmlst))
8 q, X. y3 q# r0 q6 a9 _2 O* n! Q - (setq mdashlist (cons nil mdashlist))
- |8 }; t6 g# h/ A - )
5 F& W f% _& }7 c: ]8 }4 z - ;;: h8 o1 j W7 I. t, R5 W
- ;; Get all the group code 49 values for a linetype and put them in a list
0 M& E1 l( c& r6 c( U% o% Q& J - ;; (pen-up, pen-down info)
y: G+ O5 I) V9 [ - ;;0 Q2 X' t8 \* v
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
, Q% a% J7 u/ p2 p2 Z3 G D - (setq dashlist nil)
: N) g, I+ G7 ]' R; X: z) I - (while (setq assoclist (car ltlist1))2 \2 P8 n8 ^: P
- (if (= (car assoclist) 49); ]( \' @3 q- q
- (progn
y% @% a0 ] P% {. `/ m2 ` C - (setq dashsize (cdr assoclist))* V# j" K/ C C% G9 i
- (setq dashlist (cons dashsize dashlist))
- O" p% E9 r8 Y) y0 V. S$ c7 D - )! d2 h0 s4 O8 O+ t, T
- )
6 i7 `' j G4 v - (setq ltlist1 (cdr ltlist1))
# P3 C7 I5 X2 T( V- O; t! o6 g - )! a- W B7 }2 {- n% n
- (setq dashlist (reverse dashlist))
; o4 {, t6 e+ b ] - )
# i- \1 B, W/ T3 i# a - ;;- U% b2 E) \5 }$ E
- ;; Color a tile, draw linetype, and draw a border around it, }$ K$ _$ r( s- r% a
- ;;3 l/ l) x% L0 ?4 r G
- (defun col_tile (tile color patlist / x y)
0 |0 G0 }8 m+ c - (setq x (dimx_tile tile))$ h$ B7 E/ N& `7 P- [2 i( k
- (setq y (dimy_tile tile))
, ~2 u5 Q6 i! w& ? - (start_image tile)! ~' j5 A! R" ?% ^0 F4 w
- (fill_image 0 0 x y color)0 g; Z3 r) W) @
- (if (= color 7)% c% z" S. v f- z% }& R# w
- (progn
2 J2 e, m ]% Q1 u9 P4 N3 @ { - (if patlist (drawpattern x (/ y 2) patlist 0))
7 {+ {& O* T) v1 w& q0 Q) I4 Q4 s - (tile_rect 0 0 x y 0)3 B" ]3 x+ K z0 R# l! _+ t
- )
$ }3 x F/ p6 F - (progn
$ y& k+ D: }: }* A. {8 i! z# K - (if patlist (drawpattern x (/ y 2) patlist 7))
) b7 z* T. E4 M# ^, k - (tile_rect 0 0 x y 7)
# H" | h. B( B1 \5 L - ): u- g, _* [ e$ p9 f
- )& X8 H+ K8 J: @
- (end_image)
$ K/ d# m3 M# t. w - )
9 x# m/ X, J7 e7 ^% O6 X - ;;
3 h; A" g% u+ [! K; j" l - ;; Draw a border around a tile8 X9 R3 D. \4 s" T( c+ y$ L
- ;;
+ \, S7 F, ?5 k; u: m - (defun tile_rect (x1 y1 x2 y2 color)
1 _. _, N: r, A$ y8 m - (setq x2 (- x2 1))
( {0 b1 l/ C0 a Y - (setq y2 (- y2 1))
{# {5 t) h6 y) [6 | - (vector_image x1 y1 x2 y1 color)
2 n% ~- [- z+ b3 t# O" s - (vector_image x2 y1 x2 y2 color)
( v5 D& E/ v4 n, c - (vector_image x2 y2 x1 y2 color)
' D" r8 U' i2 v4 o - (vector_image x1 y2 x1 y1 color)
+ i4 q! y6 ^* @0 g5 Z7 n: L - ), R. ~- g+ w7 j! j& U% e' C
- ;;
3 m H8 E5 X J4 @ - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
3 U, X3 o& o' v' q* l - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
! x- |9 h4 ]0 h, S6 V4 C! v - ;; list of numbers that define the linetype, and color is the color of the
* T" ~, T, X, ?" m9 j* _ - ;; tile.
) Z/ p; E7 B, d - ;;( p0 R( b* @) [ i: }* h
- (defun drawpattern (boxlength y2 pattern color / x1 x2
. c# s4 M3 P6 m* z* h% F - patlist dash)/ w0 e. C2 @0 ~0 V; ]& @" r8 k0 t. \
- (setq x1 0 x2 0)
# F* I& z z n- N - (setq patlist pattern)' G$ e# E9 Z. X6 ]$ w8 O
- (if (= patlist "CONT")
4 Q/ p' d E- t+ E - (progn
, o5 E8 J) [& e3 H/ p - (setq dash boxlength)
: R" _5 E; n# \7 V8 L - (vi)5 t# k+ {: l7 ]6 j
- (setq x1 boxlength)
. z& |. ~) `. T+ F - )% N4 @. {/ p- L( }. Q1 j
- )
" S. D( ~ A( ~ - (while (< x1 boxlength)
! f9 l( l0 N6 V+ J9 L0 O2 g - (if (setq dash (car patlist))7 b" L, R' Y' m* D/ a
- (progn. S8 a- H( q, ]# H
- (setq dash (fix (* 30 dash)))% V& T* z- t# V8 v9 D
- (cond " ?/ O1 T+ o4 t! ^# [
- ((= dash 0) 5 I! N3 c: o2 e* l! e
- (setq dash 1)
4 ]8 x4 ?2 h' x6 g, ~' [1 T - (vi)' A# @4 c( Z: V, r1 I6 W
- )
% r5 S0 j6 R1 a - ((> dash 0)
, k7 h+ G9 Q/ _+ p7 M# Z& I6 g: o& | - (vi)) I6 d$ M: [1 @# s3 M
- )
* I( {! v" ~ J# v - (T , Y; F2 i. ?& s5 Z) D8 K/ T
- (if (< (abs dash) 2) (setq dash 2))
% w% }3 x' B9 E+ v% u& B4 @4 T - (setq x2 (+ x2 (abs dash)))
; s0 e* I, b! |8 F: u - )& `3 l5 I( M/ w
- )
: B6 `$ M" R( Y2 ` - (setq patlist (cdr patlist))
; m- |+ w7 E4 w - (setq x1 x2)! P: R+ |+ l. I3 S
- )$ m4 u) O# u( z: A- J
- (setq patlist pattern) X; G9 u- p4 m8 b
- )* f# ]4 \# `# r8 {8 x2 j
- )
# j L" {+ {. `5 b - )
( U, t" a1 @; T8 L: G6 c2 m& r - ;;3 E' P" U5 M6 ?
- ;; Draw a dash or dot in image tile5 a$ o6 w# u5 T& |) z
- ;;( Z" a# y0 H$ T+ S. N
- (defun vi (): h- b3 H+ l5 l" B3 Y- e) u2 k! [4 {
- (setq x2 (+ x2 dash))
, V2 ^5 X0 P/ [) o* e - (vector_image x1 y2 x2 y2 color)
7 x4 ?4 z- a; [1 K$ j4 x. p6 F - )1 F5 z) O' l2 H( B0 r* U$ g! o
- ;;( r: I# M4 F; W# N( L
- ;; This function takes a selection and returns a list of the color, linetype,
' H. O6 h% O$ j7 ^! z1 c- [ - ;; layer, and thickness properties that are common to every entities in the- X% @/ l/ N& j' S; F) ~
- ;; selection set - (color linetype layer thickness). If all entities do not 4 L9 \2 Q& _* u: W4 S5 a+ g
- ;; share the same property value it returns "Varies" in place of the
7 z: E- a8 h) y7 V/ [ - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)+ o0 G! C5 k: g: h; v0 h
- ;;
" k9 p2 }5 I; ^9 H0 J - (defun getprops (selset / sslen elist color ltype layer
' w4 G z- t' i: ^6 \ - thickness go chk-col chk-lt chk-lay chk-th ctr)( A7 Q3 Q) L, X
- (setq sslen (sslength selset))& N+ y& H4 L7 ]
- (setq elist (entget (ssname selset 0)))
" p& ?) S" z# g( l1 K - (setq color (cdr (assoc 62 elist)))
7 c7 f; J$ G2 h R8 H1 z; t - (if (not color) (setq color 256))0 K8 u8 V' {+ G* L1 M# |
- (setq ltype (cdr (assoc 6 elist)))$ V4 N* A; n- n0 |, U7 J+ o! A( n
- (if (not ltype) (setq ltype "BYLAYER"))
$ i; O# T' ?9 }! s, x# I" ` L - (setq layer (cdr (assoc 8 elist)))
% ]% ^/ E! A0 o$ C8 H2 t - (setq thickness (cdr (assoc 39 elist)))4 @9 T8 x: s8 j) y! Q: z$ D( h6 V
- (if (not thickness) (setq thickness 0))8 K# ?9 i6 J$ X% H
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
! z5 [- p' {, v7 G* |1 E
% F* w8 d; ~; \% H' p- ;; Page through the selection set. When a property
, ~& @- G* z: j( ]: | - ;; does not match, stop checking for that property.
8 U1 P) B* @5 [' { - ;; If all properties vary, stop paging.) E5 d" @4 A- W6 k" @
2 j/ }. j: n7 E' v6 B4 F- (while (and (> sslen ctr) go)
& Z$ P# S, L. G# @+ a/ D - (setq elist (entget (setq en (ssname selset ctr))))9 \1 ~. \! [+ _/ R; v
- (if chk-col (match-col))
, I+ d; W& [& [, r. M, l( u - (if chk-lt (match-lt))
2 b3 N, H6 v Z0 Q2 x) H - (if chk-lay (match-lay))
. Q+ Y) h+ R" g& V - (if chk-th (match-th))* [1 Z3 a3 L3 r6 s+ s0 ^: [4 o9 q
- (setq ctr (1+ ctr))& V h$ y% c4 A
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th)). l' m) ?- _! A
- (setq go nil)1 [9 M$ s, b* e3 m# p8 D, O- C+ a
- )
4 Z K+ S* Q$ X# ~7 M7 T, G - )
7 t$ e( i5 U' t2 u( u - (list color ltype layer thickness)2 v, j+ j; a& a% w" |
- ) `+ n4 a) o1 s% l! P$ l
4 H* w; v1 a& w' V5 V; f6 J- (defun match-col (/ ncolor)- C1 |2 C w$ Q! v3 z
- (setq ncolor (cdr (assoc 62 elist)))& K, T+ S7 B6 w/ T8 y; K
- (if (not ncolor) (setq ncolor 256)); _9 Z* o6 d7 H, E0 S5 f
- (if (/= color ncolor), `/ x( V# F2 J' o w, E1 N4 x8 H" d
- (progn
8 a8 X. \/ i2 E, ^ - (setq chk-col nil)
: @% L) g8 f& `2 h1 r - (setq color nil)
% o) c5 Q& Y9 R. l0 [# Z. @, l0 ~ - )
8 Y0 N1 a- R4 \. v - )
( Y5 ?/ K6 Y: T# m - )
/ s- T4 W" m+ I$ d - 8 C" ~* R# U7 _5 b0 Z0 ~1 m# I
- (defun match-lt (/ nltype)
* E% h d; R7 _$ y1 F3 R4 x8 s - (setq nltype (cdr (assoc 6 elist)))* l" a0 Z6 v# {6 e4 b) P
- (if (not nltype) (setq nltype "BYLAYER"))
4 V1 u0 \" `2 a, E8 a. B - (if (/= ltype nltype)8 b- Y' `8 J+ ] z j
- (progn6 Z) s8 x9 p% n! b8 v
- (setq chk-lt nil)
) y0 q9 m, k) j- O1 {, S" O - (setq ltype "Varies")
1 T/ r7 S: Q y) i, A. D# n - )
' D- k0 R" L* d - )
# G/ v2 U6 P9 h, f8 ], i - )
$ _% z" v0 o7 @1 T h. M% l6 |
) g- U2 J! Z7 S. I& O* V, b- (defun match-lay (/ nlayer); Q+ X2 f6 D& x& b1 E* H! U: d
- (setq nlayer (cdr (assoc 8 elist)))
. ?. Y9 s' x4 `9 X, u/ } - (if (/= layer nlayer)
6 S m. _1 ~: [8 ^ - (progn
6 P1 i2 `" B- m, q$ z - (setq chk-lay nil)( [* X7 H/ d5 n8 m# x7 l
- (setq layer "Varies")
) Q1 e1 R) ^4 x3 a7 k6 g - )
3 n/ J4 I1 b! C4 @% a: j$ j0 H" [ - )
# ^: x- @8 d% x2 N - )$ o% D7 N4 Z( ^9 p5 \
! v$ K2 }" V' h7 A1 w* T- (defun match-th (/ nthickness)
. W4 C: o% E/ B8 W* P1 R - (setq nthickness (cdr (assoc 39 elist)))1 b" @, |. T7 Q& w
- (if (not nthickness) (setq nthickness 0))
* ~1 ~) h" } ^6 D4 G( E - (if (/= thickness nthickness)& h2 @/ n, c& H W" p3 H
- (progn) M' _9 N$ t4 \
- (setq chk-th nil)
# B! A$ W+ N1 m/ y9 c; `- a - (setq thickness "Varies")
: q: I/ R W/ W! } - )3 ^- e% C" q6 Q0 \- `5 q
- )
# `! K( O) r D& F' V' o# o8 S - )5 y( d- f9 N! E* y0 M# c
( s! }8 u# K, ]& c- ;;0 R$ w4 H# [4 r1 J
- ;; If an item is a member of the list, then return its index number, else ; ]: K% I" H8 L0 D
- ;; return nil.' z3 j5 Q. ~( ]( ~' I: y) W8 C
- ;;: j3 A! a) ?" a0 v# I' F
- (defun getindex (item itemlist / m n)
5 z# [+ W4 r& M! x - (setq n (length itemlist))% E5 l( L, H B* E, W$ m9 Y
- (if (> (setq m (length (member item itemlist))) 0)
2 r& k) _7 k/ G$ L; M& } - (- n m)- o7 T. k- y! B5 w7 L
- nil# y" `, Q6 f6 ` }+ I+ m
- )
) T2 |6 z( G, y& Q6 ~ - )
; X* B0 X$ c Q5 w - ;;
* |- s, k8 {. h1 [ - ;; This function is called if the linetype is set "BYLAYER". It finds the
! o9 G3 b6 M/ t - ;; ltype of the layer so it can be displayed beside the linetype button.
4 o& i" c8 y8 @1 b3 A) O" w) S - ;;
- e8 _9 |% ~+ _3 H5 X: B - (defun bylayer_lt (/ layname layinfo ltype)
% B" n% j) v; X) Q$ e8 q& J - (if lay-idx
* `; K3 y9 H9 K* s7 k - (progn
8 P. p6 M2 G2 r5 K. ` - (setq layname (nth lay-idx laynmlst))% i2 w5 i8 F$ D; v) U) @
- (setq layinfo (tblsearch "layer" layname))( {3 j# d3 n! p. ~
- (setq ltype (cdr (assoc 6 layinfo))); _! ~( t# w) f' Y/ T
- (strcat "BYLAYER (" ltype ")")
2 u+ v: r. \; ?' m6 ]$ o - )
v& A! x" \ r) b6 W - "BYLAYER"' _$ G: d) S7 P( x$ e' Y
- )
' }4 B7 @% C9 S1 g6 d6 `. L - )
7 x5 I8 E3 g1 }! ?5 D: ` - ;;
- ?) E4 s3 Z% W7 s - ;; This function is called if the color is set "BYLAYER". It finds the
" O0 Q& m/ m: a" B1 K: q3 J$ u - ;; color of the layer so it can be displayed beside the color button.
" s- |6 b" [. Y. z7 T - ;;
. ?/ H# J( M! ~8 J6 ~ - (defun bylayer_col (/ layname layinfo color)
1 |* w9 Q6 D Z' |- D7 p1 ? - (if lay-idx
- f0 Y0 @' x) ~5 k; R - (progn1 r: E# x' ~& \# U; K9 F/ _$ V
- (setq layname (nth lay-idx laynmlst))7 N' q* m7 r, v0 k
- (setq layinfo (tblsearch "layer" layname))" h5 h* F" y7 `: i0 N
- (setq color (abs (cdr (assoc 62 layinfo))))$ @$ Y% C; O. u0 t7 {2 m
- (setq cn color)) F& }8 X3 \+ _/ s
- (strcat "BYLAYER (" (colorname color) ")")
: b1 m) \ N: K) l2 E: \ - )
$ T( O( j4 N* u2 n0 Z- ^! v& J - (progn7 g0 ^8 k- P# N# u
- (setq cn 0)# |' a% m) A R# Q+ @
- "BYLAYER"
* y( k9 ]# ^! ~' k+ ]' P - )
& \! p7 g" r) n$ ^( a5 e - )7 y3 @- @& T" i0 u# ^; T( l
- )+ `( W4 A& b' ~7 f' l
- ;;
; w6 p2 F4 H% v( G2 { - ;; If there is no error message, then close the dialogue6 `, W# l$ v% @" ~4 |: J
- ;;
+ z u2 X9 z/ ]# S( M - ;; If there is an error message, then set focus to the tile" a; D3 O. y8 l4 t2 v' G; F* x1 u
- ;; that's associated with the error message." z {! h3 k4 Y- U( Y/ |. E
- ;;
0 V5 m1 R G J- O- x/ X - (defun test-ok ( / errtile)
' }) P/ f; {, }9 @3 I - (setq errtile (get_tile "error"))
+ t. }- Z" B0 Q- m - (cond
9 x* f, Y9 i* e! ^$ ` - ( (= errtile "")
D+ Y( |7 J8 r+ L: H5 ? - (done_dialog 1))
$ A# j8 A% q+ O2 u( d - ( (= errtile "Invalid thickness.")
- b1 Z2 n- g3 \+ A - (mode_tile "eb_thickness" 2))
3 w( B8 R3 O8 a) q6 H& K( o, m - )4 S9 O$ O5 e% ^! d& x/ g3 u
- ); u" _5 v' t% q6 a
- ;;
* H( {9 I5 t: m6 C - ;; A color function used by getlayer.
1 `0 O9 l R. x ?6 Q0 W8 t - ;;% D/ p9 F& C s5 `/ `! H* o
- (defun colorname (colnum)# o4 u* C$ ?( l$ l+ `& m" O3 P; C
- (setq cn (abs colnum))
; l0 r; M7 S& H( ^" [9 X0 r) x+ B - (cond ((= cn 1) "red")* a: b, S/ d+ H/ D, q) P% \6 F
- ((= cn 2) "yellow")/ }& `, }* c: R2 W0 V& r
- ((= cn 3) "green")$ {0 R [ _# {) m
- ((= cn 4) "cyan")' ?0 j. _4 [6 d
- ((= cn 5) "blue")' ?7 J6 Q! z9 J$ Z) r
- ((= cn 6) "magenta")+ v5 Z# X$ N) p( e- e$ Q# R3 m
- ((= cn 7) "white")
- W7 Q1 {0 |, H$ v1 A9 D8 W - (T (itoa cn))
* L I* T3 q. O4 W - )- [( _, N, Q" ~+ c# L j
- )
: j' [5 Q9 F4 A* P; j
0 i0 ~$ C9 d& n( G7 J" a- ;;; Construct layer and ltype lists and initialize all
" K) S7 g+ h. N2 a9 ^; H - ;;; program variables:
( n4 R; a3 e3 ` - 4 \/ s( E# L" W# U; e. V- h+ f e6 b
- (makelaylists) ; layer list - laynmlst
7 k5 R4 g; i# C0 z - (makeltlists) ; linetype lists - ltnmlst, mdashlist
+ D _/ w$ ^9 G. K2 H3 h! ] - ;; Find the property values of the selection set.* P$ ^0 }5 `2 [, X) [3 H' A+ }
- ;; (getprops ss) returns a list of properties from' F. M1 j/ k. }
- ;; a selection set - (color ltype layer thickness).9 G5 n& d( Y+ K9 U
- (setq proplist (getprops ss))- [7 j5 `: ^5 W/ V3 _
- (setq ecolor (car proplist))
, e- m! }$ H$ Q+ O% f - (setq eltype (cadr proplist))! }3 R& ?* w, U$ S. a) Z- X, F
- (setq elayer (caddr proplist))
) @2 w% g9 w. c0 B. j* {7 @. l - (setq ethickness (cadddr proplist))4 l! O* M8 R7 p( k/ a
- ;; Find index of linetype, and layer lists7 L! G* v3 O8 D* A1 o. d, b
- (cond
4 ?; V) _6 X/ S B- g - ((= eltype "Varies") (setq lt-idx nil)): k+ _- j# d$ o3 }/ o+ g
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
9 x3 }- p# a1 Y a% ~- Y - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
: p) @. t) ]- E3 L - (T (setq lt-idx (getindex eltype ltnmlst)))) {$ c M9 Z$ F$ X( S% r: F5 H
- )
0 }! B! \' Y; y1 H4 k* m - (if (= elayer "Varies")/ e% z: d- v4 n0 }( ^
- (setq lay-idx nil)% W0 Z" M7 a8 e2 y4 o6 O% D; g
- (setq lay-idx (getindex elayer laynmlst))
$ X" b6 q8 M8 k" e4 C: _" Q* ^ - )
, P; b& ~3 p' a6 u - (if (= ethickness "Varies")! A3 x' o$ y# p1 Y- c* C- w5 v4 b
- (setq ethickness nil)
) W, l; V& Q. X2 f - )
- @9 o. `7 V6 }8 J1 p7 m
7 z0 u1 V. j4 O" J% T; j- ) ; end (ddchprop_init)
) O6 L! `8 v I1 g# i0 t
' @+ @# R' t# Z- ;;; (ddchprop_select)4 t' Z: T& O1 G& L
- ;;;& |9 s6 @( H/ m
- ;;; Aquires selection set for DDCHPROP, in one of three ways:& ^, I7 B0 {% W# W3 R& |# i& |
- ;;;
& r+ }" ~+ T' G5 [; w1 m - ;;; 1 - Autoselected.5 z- U" c4 M" R
- ;;; 2 - Prompted for.4 @! f7 { F, r7 M) L# J3 O
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
8 [) J2 G$ U- a( [9 E( \ - ;;;7 z/ w8 @8 z" g; J0 T& b2 x
- ;;; The (ddchprop_select) function also sets the value of the
0 t- P( g8 h! c7 {) Q6 E - ;;; global symbol AI_SELTYPE to one of the above three values to
, g( U ~+ E. I - ;;; indicate the method thru which the entity was aquired.3 I$ N4 \1 t& v# ~( q8 l, \* ~2 d
- $ ` a) p) a" w. k3 m! m6 ~
, D5 l) z3 K3 E. c6 g- (defun ddchprop_select ()
- I8 z+ j* N5 Y, b/ `" |0 m/ S - (cond
! W, Q- M; j) t. L - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
. d% _3 K v4 ?# S% _" n3 O - (cond ; (ddchprop) as argument
. d& D& m* Z: Z* s - ( (not (zerop (sslength ss))) ; If not empty, then
7 r/ ~. E3 l+ P$ K5 i - (setq ai_seltype 3) ; then return pickset.
9 m Z; ~. i9 N( G- U( x - (ai_return ss))))
0 D9 e! c, i5 k8 b8 R7 J
. C0 A4 D- E; e2 o7 b @/ q- ( (ai_aselect)) ; Use current selection' U1 a4 W/ {( A* Y
- ; set or prompt for objects+ B- z6 u2 e, k/ T1 [
- ; ^# I8 G0 h- b+ S0 D% ?5 m' ^$ F% d
- (t (princ "\nNothing selected.")! O% y6 Z$ s* Q: ?( k
- (ai_return nil))5 Q3 ~0 ]* [1 P+ H1 X
- )( y, H) n9 k! n: P0 `% R1 U
- )( P G) i5 r h1 ]; O- _. `; d
- + _6 B6 k0 B5 M {5 Q# g
- ;;; Define command function.
) F3 |9 ]5 a. y7 v# C1 Z$ s1 d1 _: o; j
4 b" l: H5 ? r! d, O- (defun C:CH ()
! S4 D5 s" D$ ^ u# j5 { - (ddchprop nil)
* P/ N4 c" @5 v- q7 u - (princ)
$ H- L5 N% b' _" @ L! k4 @ - )
4 j$ s$ N+ a9 j
g( i* {/ f4 |" A3 [1 e0 @$ U) }6 _- 9 L, }8 d9 F" U
- ;;; Main program function - callable as a subroutine.- ?5 J* i1 Y/ S$ x
- ;;;
# ^% C. I. t4 ]3 Z5 { - ;;; (ddchprop <pickset> )
. T% S5 j3 J4 @ - ;;;
+ [/ R! e/ V4 ^, [: n6 L1 K - ;;; <pickset> is the selection set of objects to be changed.. P- l( n# n( u* |9 q: R
- ;;;
6 T0 N! x; e9 X0 Z1 a( B+ B* v9 r - ;;; If <pickset> is nil, then the current selection set is) s0 u% h2 c1 n! z* ?/ \1 B
- ;;; aquired, if one exists. Otherwise, the user is prompted
, W" X i" _0 L$ B6 U! z - ;;; to select the objects to be changed.
$ U5 }5 I0 `3 @ - ;;;# t: J0 e4 K/ S: v$ L5 i1 z
- ;;; Before (ddchprop) can be called as a subroutine, it must
; ?9 Y& N# ]3 M - ;;; be loaded first. It is up to the calling application to
7 `7 ~: z! L1 ~$ M! F# | - ;;; first determine this, and load it if necessary./ a# Y4 h' \- E
9 ^) W# }& l& H- (defun ddchprop (ss /
* z! [/ x8 ?2 F9 u, l- t5 @+ V
: X, A0 T$ S( T- U' N- add-mdash ecolor ltedit_act s
6 G, }6 C0 a+ n8 V1 k, e* E - assoclist elayer ltidx selset
1 w: b0 I r9 ?+ k0 m - bit-70 elist ltlist set_col_tile+ y% U" Q" H. {
- boxlength eltype ltlist1
5 f0 L' O6 t7 y+ f0 F" d5 v - bylayer-lt en ltlist_act sortlist
4 F7 L3 e7 m& J8 X - bylayer_col ethickness ltname
. s9 z/ X% D1 J, j; O; M - bylayer_lt fchk ltnmlst sslen. d K7 r n7 Q$ d; z
- call_chp frozth ltvalue templist8 ~+ ?5 f# U' A4 |2 v: Y. U5 H
- chk-col getcolor ltype temp_color( F5 i, u3 P3 {5 F& H" U
- chk-lay getindex m test-ok
/ `/ `" P; K4 Y0 ]" r* n9 z0 ?$ o - chk-lt getlayer makelaylists testidx' ]9 L" f$ ^/ |1 U- Q3 t7 L Z
- chk-th getltype makeltlists testlay( _6 b E* n7 y
- cmd getprops match-col th-value
' `7 a+ M, p, A( ` - cmdecho getthickness match-in thickness% @5 A( _+ d3 V1 t6 i/ }
- cn globals match-lay tile/ K& ?" h# ~' r) r
- cnum go match-lt tilemode
$ F8 o; F8 S3 R' |& R, N1 R1 F - col-idx index match-th tile_rect& F% a, O5 }: e& d
- colname item match_col vi5 }4 _+ d$ f( K F7 z
- colnum item1 mdashlist vpf
2 n G0 i* b9 c5 q& w5 z - color item2 n vpldata
* _7 h1 n2 g1 P7 i# _, N9 k% S - colorname itemlist name vpn p; J; f3 t+ c( m+ T
- col_def lay-idx ncolor x; U) I% m7 w- w+ W4 e9 @7 b
- col_tile layedit_act nlayer x1* o* s+ d# ^6 Y# t4 Y
- ctr layer nltype x2# Z( T% L/ M& [
- cvpname layinfo nthickness xdlist5 _, U6 T) S- l2 P9 W
- dash laylist off y v- ]7 C# O2 _5 h
- dashdata laylist_act old-idx y1
$ y" f z/ D4 B/ f - dashlist layname olderr y2
2 l) U2 \9 }$ j" {3 H - dashsize laynmlst on undo_init
. [6 F" G# D9 v" ?' V - dcl_id layvalue onoff2 ]- } t2 Z6 T
- linetype patlist
; p3 N2 g: p5 i8 y( t - ddchprop-err list1 pattern7 r7 \( M5 G8 x2 u
- longlist proplist
1 D- D3 g" H b. D - lt-idx reset-lay; }( B6 C6 j# Z$ l9 l
- drawpattern ltabstr reset-lt
0 S, c7 B) }" @! t' p/ a E+ p - )
% J# O0 R h& R, w$ \/ K
- F6 @$ w, T- Y. s/ T& ]' d* F- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho" D, z+ a, k4 \' w7 j6 x& ^" D& P
- old_error *error* ; save current error function0 C3 a% u% l/ N
- *error* ai_error ; new error function
, [3 \" I; E |2 r k! T - )
& j4 X3 R9 j, C1 d - ( _7 \# t2 x) J
- (setvar "cmdecho" 0)8 e/ P# I9 W, g( H
4 p' P3 s! e \6 ^0 @% l' ?& E$ d- (cond
% M" r1 i- k) H3 l) t& [8 ~$ m - ( (not (ai_notrans))) ; Not transparent?
- [) c/ |1 u1 o+ J2 Z& d* d - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
0 ]* G: J9 A1 ?, e - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
8 q* e& ^! b3 z( k# s' x - ( (not (setq ss (ddchprop_select)))) ; objects to modify?
8 P$ F# T) V& }( e$ t9 X& S - & g: \$ m: C, g- \
- (t (ai_undo_push)
: a& v5 z5 N+ T4 Y - (ddchprop_init) ; Everything's cool,- |& e7 S# A9 k6 n7 R
- (call_chp) ; so proceed!
; ]& d, U/ k! C6 Z9 I1 y - (ai_undo_pop)6 d# P4 A/ I/ |
- )
7 \$ I% Z, r+ I1 S/ K - )
) Y4 W, D x% R -
8 W4 W6 v5 D+ j* ~. h! q - (setq *error* old_error) : w, ~% C) U5 v
- (setvar "cmdecho" old_cmd), X+ y/ f# ~4 Q
- (princ)
$ O7 T- w6 _3 F5 E1 _ v0 X - )
6 @" [. j' K; y/ V u
) ^) O7 {+ Y" y8 `( R- ;;;----------------------------------------------------------------------------
4 `1 h. b& [) m4 O. E - 7 @0 T; Q) _7 {% z* v! O$ X9 q
- (princ " DDCHPROP loaded."): j/ V4 U3 m. P1 O) D
- (princ)+ b* b1 A Q0 l- r
- , D7 T2 g: \3 d0 h
- ;;;----------------------------------------------------------------------------6 w% U/ F. ^8 e ?+ Y3 w- d4 x! p# i
7 T+ A8 F& s' M- ;--------------------------------ddmodify.lsp----------------------------------
% W6 K+ G" ~# N" _7 m2 { - ; Next available MSG number is 111
% N$ V- @8 `+ y8 A, _* k - ; MODULE_ID DDMODIFY_LSP_
' p! I6 A# s* b3 }8 {+ g/ o) B - ;;;----------------------------------------------------------------------------
; Y! W) ?( @$ O - ;;; DDMODIFY.LSP7 Z. U7 i# Y7 Q5 m. b, V+ c8 i
- ;;;. a: z% f8 H3 L
- ;;; Copyright 1997 by Autodesk, Inc.& m, K8 `! Z; k) L
- ;;;
: K$ v+ X' u" R - ;;; Permission to use, copy, modify, and distribute this software* O+ p3 {2 O4 q( ]( }
- ;;; for any purpose and without fee is hereby granted, provided
+ b+ F; L5 l6 z. P. A - ;;; that the above copyright notice appears in all copies and
) {# c% i7 q: T7 Y3 O( y$ n7 M - ;;; that both that copyright notice and the limited warranty and2 @* v4 d" l4 Q- Y# K
- ;;; restricted rights notice below appear in all supporting
- D7 [$ I! _3 z& a) v - ;;; documentation./ i) l5 k) m! ~& d( l3 ?8 P
- ;;;9 j( Z9 A$ f0 G9 U
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
* J/ u8 N5 m% i. R2 y* k. K7 o - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
" ~+ K) R2 {; h - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC., l$ J, \" K4 V' f; W
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE( ?6 @) X2 @+ p9 q! Z9 y
- ;;; UNINTERRUPTED OR ERROR FREE.0 c" s$ @5 \% o2 }& u0 M
- ;;;
/ k( e8 l+ L# r# q" a5 i/ ^5 Y - ;;; Use, duplication, or disclosure by the U.S. Government is subject to& E' k L( C; I
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer+ R5 w7 h' C/ [3 b' G% E
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
+ N' b$ b. N1 x1 s) L; b2 K - ;;; (Rights in Technical Data and Computer Software), as applicable.
: w- F/ m2 }0 U6 w5 R - ;;;
/ U. c- |1 G- A! _& B) s8 e - ;;;.
7 G9 w8 t+ w" J {# k* ? - ;;;
0 N$ K; H: J8 z; ^6 L$ `- \) R8 l - ;;;----------------------------------------------------------------------------/ v& e- j: a% c( n3 ]0 r: m
- ;;; DESCRIPTION
' L- S! t6 R. }% D6 d' W& C% | - ;;;: P& ~: W2 T/ J1 @
- ;;; This function allows the user to get a listing comparable to the LIST
) K* D1 H0 W" ]: U - ;;; command for most objects. In addition, most object fields in the
* \6 W* n. e! B - ;;; dialogue box are editable. Points can be specified dynamically by
3 n( T" x4 P) m6 F& l# }! |3 c# A - ;;; temporarily dismissing the dialogue box. Each object has a unique
1 x, U2 S% S I# b0 Y% f - ;;; dialogue.. \& q/ h( A- U8 r7 g; [+ K
- ;;;
: K" N5 r2 m" U2 B9 B) S1 m, i - ;;; Naming conventions
# I* J! i. D' m c3 z' ?8 u - ;;; Long function and widget names may use an underscore "_"( M# T6 f& A& r6 O
- ;;; in their names to make them easier to read, long variable$ s" F1 f8 ~& J V
- ;;; names use a dash "-".% h& s% o- l% |+ e
- ;;;----------------------------------------------------------------------------& A: ?. s' U8 e, W
- ;;;----------------------------------------------------------------------------
( j( ?$ m9 A' h7 W2 B8 P; Z - ;;; Prefixes in command and keyword strings:
6 G: }" a) m( V" W& o8 r$ J - ;;; "." specifies the built-in AutoCAD command in case it has been
% b3 a; E* o: f - ;;; redefined.) l, ?, t* j% P
- ;;; "_" denotes an AutoCAD command or keyword in the native language
& u! ]9 s- n' V3 _ C! m - ;;; version, English.
8 m+ w+ l* S7 O9 _# E/ t$ j G - ;;;----------------------------------------------------------------------------
. `" }! l/ [4 w( ? - ;;;% s& `( M4 I, S. E
- ;;; Avoid (gc)s on load to improve load time.
/ b6 L$ o9 T4 d# e - ;;;
( c* l+ _. r1 o) h" Y1 s6 y - (defun do_alloc (/ old_allod new_alloc)
- A3 ~ f' B& H7 @ - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))1 n% d0 N; f8 f0 B9 @* v
- (expand (1+ (/ 17000 new_alloc)))* _( }! i, R+ l6 G, E5 c& f2 [" s
- (alloc old_alloc)0 h2 k* ]! f3 {& i5 K u
- ), w$ V: } A& g/ Q
- (do_alloc)6 d" `0 q7 l3 V, D
- (setq do_alloc nil)* \+ A! \* }8 w! n: ]5 h+ P9 P
( A1 @3 Q: _9 f( n6 C- ;;;
$ f: W. f8 F& L: V - ;;;
# v2 g" S4 Y- d4 P - ;;; ===========================================================================6 f" n. E% L' S9 W9 _
- ;;; ===================== load-time error checking ============================
* x0 o) I$ G6 T5 U0 J - + k; g! e4 `5 G0 J( L
- (defun ai_abort (app msg). F1 x& g4 f7 n* f7 C2 n
- (defun *error* (s)* g# q9 e# c4 H: I# j) F
- (if old_error (setq *error* old_error))& x6 y9 U8 `7 u2 M" x. o
- (princ)1 } n2 a; D5 \9 g/ h2 @
- )* w \; n5 y0 M1 K3 ^
- (if msg/ w4 P0 u7 H* e" m- ?
- (alert (strcat " Application error: ", R* C+ N; u: a
- app
7 w. d6 H$ f- U2 c( P - " \n\n "9 Z7 d) }' N0 {3 T, ~
- msg
$ u4 S1 w% P) h1 I - " \n"3 ~! C' j& W2 {$ Z3 Z6 ?
- )
; |! O, N! x8 j1 F6 p: o - )
; b5 d: i( D7 }5 q3 ? - )
0 e! A. b3 p8 T* @% d1 z5 M8 W - (exit)% z1 Q8 V Y& M+ }% r' B
- )
u. r; l) _ a8 _' h
- P b0 N0 ~7 E9 e, t2 H- ;;; Check to see if AI_UTILS is loaded, If not, try to find it, s2 t/ T: I% ?! w% S2 h4 C
- ;;; and then try to load it. If it can't be found or can't be
% p& j* @% @% I7 g# a - ;;; loaded, then abort the loading of this file immediately.
) y. _( z- B7 h. U - ( U. d, k! m7 i
- (cond
7 R2 u+ Z- I8 B2 M+ t/ i - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
* F# i$ M6 F. Z5 w% F, ^7 H
# j) O( y* c+ C- ( (not (findfile "ai_utils.lsp")) ; find it
' }7 \# B. C* q( U3 H - (ai_abort "DDMODIFY"
4 G# i" C2 |* h' S" @ - (strcat "Can't locate file AI_UTILS.LSP."
" b" N, e1 E5 L# i - "\n Check support directory.")))
1 V4 q1 b8 R" v$ R$ w/ r$ t - 1 O3 ^! y$ A' A1 f! t9 X
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
0 {5 \0 F5 Y% p+ Z" R1 _ - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
3 q" \, Y6 g% }3 I& {+ d/ L - ): r. o) ~7 b: L" R' m
3 Z. t4 `7 E! }1 l% E0 w- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can# C$ ~4 F. s+ Y6 {, u V
- ;;; be assumed that all functions defined therein are available.
8 }* e8 w; Z# K" ?; y; E - 2 j! s4 M" J4 l. p$ l2 z' B* x; R
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
0 Y& a3 y9 [' z, x! i" Y - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
" k4 P- {/ w# z7 M - ;;; does not abort the running application itself (so that it can
' ]4 O& Z; x6 M- B ^ - ;;; also be called from within the command without also stopping+ f2 n7 {; d0 |( R" d
- ;;; an AutoCAD command currently in progress).. B' [8 c, S( N
k5 g& v. j: t: E+ Q1 X- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP9 }6 \9 K* u! e+ d
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
. R/ V( ]* K/ i/ ~- g3 q$ p - ) ; ai_abort's alert box dialog.3 c' R4 j+ k. `. E
- 2 Y# i2 w W$ e& ?
- ;;; ==================== end load-time operations ===========================9 S, w; g: |- v- J3 D8 G2 z: `5 X, I
- A1 \- `: P% v5 f3 C4 R
- ;;; global variables
, [( ]+ q! o) Q( n1 c
4 Z, J4 A: F8 N" z7 g5 E l: `- (setq hatch-elist nil)
9 r9 f; O# a7 E - / p! x& M6 P' X# J/ b% k
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are* {- y9 q$ S& b. A: ?* a
- ;;; assumed to be available.. T; m& Z( Y& @+ \
- 4 A. F, Z4 V+ a& I! b5 O8 K) Q
- ;;; Define and encapsulate all subroutines that are declared
' [* i& v0 @$ L9 J - ;;; locals of the (ddmodify) function.# Z p9 `. i/ Y: [. `
- , w$ E- f! [/ g# n) E
- (defun ddmodify_init ()
& D/ U0 \6 l$ Q! {, j - ;;. r1 {& V9 T( ]+ X
- ;; These three functions modify the enitity list for common properties. Since
R* O) u9 {# g2 w0 v9 L) s/ ~ - ;; color, ltype, and thickness are absent from the object list when they are) Y/ q( n0 f! b& Y+ N: L3 o% u
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using
: M/ p' D7 h: U Q/ F - ;; SUBST is not possible./ L z; f3 a. b+ s- T* p {
- ;;
& G' n1 p, C1 m- ^5 ?4 N - (defun modify_properties ()
# p' b7 L3 I3 q: h; m - (emod ecolor 62)/ m) S4 b: [) `# |: g2 [6 T
- (emod eltype 6)
/ e i& T# o3 Q2 A3 x) S8 _ - (emod ethickness 39)
( Q4 n. T8 E! k+ Y2 s* D! J- m" \$ Z - (emod eltscale 48): H5 f M. O' z8 C W' B7 Q
- (tempmod elayer 8 nil)" R" R8 K& ~6 Y8 i5 y
- )
0 c* M2 k2 v, b- @& C% `& e - ;;
/ {3 w l& ?3 T1 y0 k" @' X+ l - ;; This function is used for modifying common properties of the ACIS
& A0 Y0 A$ G6 \2 p1 K. b C: q - ;; based geometry objects. Thickness is not valid for these objects
, i9 M. _! N+ Z1 n" L - ;; so it is left out.1 e- o: a% t l2 D- ?) t1 {
- ;;
2 l% M0 o2 u$ Z1 H( a - (defun modify_prop_geom ()
1 x, I5 E5 V% o) [: F' \9 H7 E1 h - (emod ecolor 62)
) x* m+ ~% ?! T5 I) U9 [ g - (emod eltype 6)
! G ?9 d7 W8 |3 M8 d3 o @# v% \ - (emod eltscale 48). A" h/ t E; k# u! P
- (tempmod elayer 8 nil)! i% F- _: T5 ^/ v2 H( S, Z
- )+ U) V! k, x; R8 J9 V! p) ^
* ?% m) @/ G" g* N* M% I; v- (defun emod (value bit)) b, J- B; k) v. X
- (if (= bit 62)6 k$ k0 y8 r* [$ x$ |3 A* Q9 y5 f
- (progn
t) c! e6 r8 L: e3 S# L - (if (or (= value "BYLAYER")
$ ?6 p, P" k' A% x& G. z - (= value "BYLAYER")) (setq value 256))
Z. h, F! w( c/ b - (if (or (= value "BYBLOCK")
9 c' b8 N& W6 a7 m- ` - (= value "BYBLOCK")) (setq value 0))
2 [7 a" n- {% t7 e0 [& j1 e/ }6 Q - )( }$ e5 W% R* o0 x, r' B
- )6 P4 W! e. ^0 u; F- R
- (if (setq oldlist (cdr (assoc bit elist)))
* S5 D; T, M( T& l - (tempmod value bit nil)' ^+ E8 C* R$ R
- (setq elist (append elist (list (cons bit value))))
3 R/ M1 @* ?) @ - )
" A( u6 K3 f% [ - )* u7 T+ ]1 ]* O% L3 d5 B+ P+ S
- ;;8 v H; ^" \3 e/ w2 U
- ;; Resets object list to original values. Called when the dialogue or- E( J, X' U) P- e
- ;; function is cancelled.' H$ t: w0 e% b# c) m3 Z* b; ^- V. \
- ;;! o) k. j2 K% h
- (defun reset ()
: ?- {3 @7 ?6 F - (setq elist old-elist/ C1 p g& ]' l( \2 z! n7 o0 [
- ecolor (cdr (assoc 62 old-elist))
" j* J Z. Z1 n( Q @' \& I - ethickness (cdr (assoc 39 old-elist))
8 ^( ~6 r( O X [# Q - eltype (cdr (assoc 6 old-elist))
6 _& ?8 `% R- b" | - elayer (cdr (assoc 8 old-elist))3 y: u" }: {: c& i+ [3 q. `
- eltscale (cdr (assoc 48 old-elist))
3 ~0 Z& u. w8 M! g0 G - )2 f9 ]# z' h, Q/ F3 Q& G' k
- (if (not ecolor) (setq ecolor "BYLAYER"))
$ B# {/ h( v; r- D/ Z - (if (not eltype) (setq eltype "BYLAYER"))' c* y1 [' I4 O' x3 N" n
- (if (not ethickness) (setq ethickness 0))
+ u$ g& Q. C' S# B3 @ - (if (not eltscale) (setq eltscale 1))
0 X. R6 i) c0 L) B - (modify_properties)1 o# ]9 c0 o: J0 j5 T6 ^' q+ e
- (setq reset_flag t)
! i! d- W$ h- {* g8 M- F - (entmod elist)
2 v, m+ V( J) l/ t4 k9 r+ J - )
6 {+ z1 |) c. t0 F - ;;
8 F7 }- j1 p; U - ;; Modify object when dialogue is temporarily dismissed to reflect latest6 g6 E d9 R. a. ?
- ;; settings of dialogue. It converts the point from current UCS coordinates to
, X4 [6 W0 k7 B8 v# f0 s* T - ;; the proper object coordinates (world or object).
- y" }" g( h N) [ - ;;5 A' j5 A; n. y/ p, [+ }1 v0 I
- ;; Arguments: value - in current UCS coordinates
8 K) i# O C4 |3 d9 u# i - ;; bit - object code (i.e. 10 for start point)
4 Q( y5 t3 S+ ]$ M9 p' ?8 k - ;; ptype - point type 0=world 1=planar* K" \8 `/ C3 F! N, p7 |! `
- ;;, L4 X. Q. z- O, K* F$ ?
- (defun tempmod (value bit ptype / newpoint)
* v7 g% b0 L& R8 H( I( l O$ B - (cond
, j+ G& O) F" O" g2 V- W, i1 G - ((= ptype 1) (setq value (trans value 1 ename)))5 Y! e( s" G( q2 s! I% J0 ~
- ((= ptype 0) (setq value (trans value 1 0)))
* b4 l0 a1 y; v W7 l) w5 _, k - )7 b' F% _8 R6 t1 R* R
- (setq elist (subst (cons bit value)5 Z0 X* l1 s5 B4 i; l9 T: Q
- (assoc bit elist)
' L$ B- `- S/ m+ ~+ K- C' n - elist
- h$ _ Z7 K$ Y% C - )
9 W9 i$ T. B# N - )
3 X7 d- u& D% M+ v - )
! y: W9 S; q$ ~6 V. s# j6 @- r - ;; H, c9 b: ]8 V( t+ I
- ;; The following functions are called after a dialogue has been temporarily
) ?0 G( o- J+ D& [; _ - ;; dismissed and the user is selecting a point. If a point is selected the7 ?7 l* u! S5 o' F. l
- ;; object list is modified and new X,Y,Z values set. If no point is selected
: a9 i, \+ m$ D - ;; (null response), then the point is reset back to its previous values.
% ]8 g# t; v" h! O - ;;
) S6 ] ?1 B6 c' U( R/ [ - (defun ver_pt1 (ptype)+ A" ?& J4 g1 U1 l
- (if pt1
9 J" |6 _6 K$ e) i+ G% S - (progn6 v" N5 y: G$ U+ U. e4 x- o! k" }5 n8 |) ~' k
- (tempmod pt1 10 ptype)
' b% E( i2 h4 ]4 X7 Q - (entmod elist): V9 N3 u2 l Y2 ?. G; M6 h, r. U
- )& M9 M3 i7 r3 {2 F% k
- (setq pt1 (list x1 y1 z1))
c7 Y, p( r( T4 i+ j) f, r; N6 x5 ? - )1 D) _: o: G- ?1 u3 x- o
- )" u: |2 h1 H& o
- 8 C Z+ n1 i+ S8 z& B
- ; (move_pt1 <ptype> )
+ h6 i' V4 _/ [! C: W t - ;
/ h2 N. }- Z/ M6 U6 A9 Q - ; Called in liew of (ver_pt1) to translate block insertions which
, O3 P0 j1 z4 ] - ; might have variable attributes attached to them. If the distance
% K/ m t! P2 t" s - ; the block is to be moved is < 1e-6, the move is deferred.# H1 s0 K( U) b" f ]4 R
- ' \& I4 l6 n$ k- T% B9 f
- (defun move_pt1 (ptype / basept hi)5 Z+ @7 E: Z1 k: O
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
: N5 a4 o5 s- \8 [. ~8 k( O - (cond
# l g. J, B6 n/ c v# o' U$ k - ( (not pt1)9 J+ x- }9 w/ ?; G/ l5 [$ `9 V' b3 e$ P
- (setq pt1 (list x1 y1 z1)))( Q+ o, P3 w' Y8 `7 \
- . Z' y( e! ?9 K9 N2 k, R
- ( (> 1e-6 (distance pt1 basept)))
1 O2 b* h" I, d+ [- w( o( I - 0 b8 M* N' p6 Z0 W# @
- (t (tempmod pt1 10 ptype)7 w! t: i3 @2 V% r/ L5 ~3 E
- (setq hi (getvar "highlight"))8 B; z. j7 a: |3 p! B2 c
- (setvar "highlight" 0)
) L- m0 u# }7 ]/ l- e" L - (command "._move" ename "" basept pt1)
6 e, x/ f- o0 l - (setvar "highlight" hi))* z2 h4 H5 L1 z. k, M' o
- )! f p& P' n0 ]$ r
- )
: E! N1 w/ r9 z- U7 E) P* f6 K - 5 r' ~; G+ A7 V8 X) q2 C) g
- (defun ver_pt2 (ptype)
% d$ G. @. O* c& | - (if pt2
% M1 R3 B: Z3 }1 O - (progn
" I/ i3 D2 V; k8 {& w - (tempmod pt2 11 ptype)3 f/ j F ]) \' U0 s$ W, o
- (entmod elist)
" G& a+ _2 X* x: A. X! V - )
% F3 \8 ?/ d+ {: T. ` - (setq pt2 (list x2 y2 z2))9 J" T- t4 s( c4 H/ S+ m4 z
- )
6 @) N& S' x0 q0 L7 L4 m - ) f9 g/ S+ }1 ]: y% s- L# C* C
- - C- T6 j! f7 V$ B. Z+ J6 P6 }
- (defun ver_pt3 (ptype)
! b$ A5 b7 c/ l# m' f9 K: Y - (if pt3
2 U4 Y5 E3 V, e0 o" I5 E, {" i; f - (progn& D- A) \) u0 W( [# G& v% M
- (tempmod pt3 12 ptype)2 P5 N! O8 q1 w) g
- (entmod elist)
, @& n7 o$ k, Q+ k# X - )
* m7 J) i6 b' a; d5 b4 W! m - (setq pt3 (list x3 y3 z3))# u: @+ \9 N r
- )
( J! z" h9 i' `: N, x9 U - )
' ?! G# d% R; k2 {+ S9 {
( F3 M) U& D1 |9 c. \* h- (defun ver_pt4 (ptype)
9 o' ~$ U( m3 B6 c+ S - (if pt4
: o' t! M$ g" W - (progn
+ c8 o! B, d/ E/ O3 p' q5 t - (tempmod pt4 13 ptype)
0 e# e i/ b$ {) S# b! B - (entmod elist)( p ~) V+ c- V. I, U
- )
! l! n) s8 ]# b5 Q - (setq pt4 (list x4 y4 z4))# C4 p1 s7 j6 K Y- a! r" }
- )
- ?1 i! j& \) { - )
( k) w t0 _7 m& `# u- ~& W- E. ~+ Q - ;; Xline/Ray6 w) Z, L4 a( ~* M
- (defun ver_xline_pt1()7 m4 _6 V% C+ X" O/ ^& ]
- (if xline_pt1
7 Q e& Z4 O6 ]; Y" P, s - (progn4 y' x7 @+ d* _( ~% ]8 W
- ;; convert to WCS.
4 P+ ]0 W" v8 e" R - (setq value (trans xline_pt1 1 0)), G7 u4 B) m" i3 J
- (setq elist (subst (cons 10 value)
2 q& \' h, j: ^7 | - (assoc 10 elist)
C! m1 S. k1 \# y: A r* d - elist
9 m- g \/ R5 o; |; i0 q - )0 a {% x9 B7 J; R# ~2 E
- )8 O9 B1 w% Z4 h: o* p
- )
3 X$ o- W) N% g* G5 R7 E* L+ A$ ` - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
# D8 h1 [0 A+ w$ z - )
# d# F& o+ o- Z6 b - )' l; f3 ~0 y# s) i1 a" D' H+ T3 `
- 2 I, ~- G; g& L1 D, v# t% `9 I
- (defun ver_xline_pt2()
! J) m- M) C* s" R, m" y - (if xline_pt2
}1 e0 a6 e& x8 q! _) P) B ?0 N - (progn
4 @* L! P: P1 l5 m8 g3 N - ;;
& N8 x+ l8 ?3 b$ n4 m, q - ;; Calculate new Direction Vector WCS P1 _8 V& Y( S" ]7 A) u* ?
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
) g _5 Z, C% w2 Q' {. S1 R - (setq temp_dir (trans xline_pt2 1 0)) j+ H, V( G; m' i" l# w
- (setq temp_dir_x (car temp_dir))! _9 i8 R6 C: A* g4 j; i; h) g
- (setq temp_dir_y (cadr temp_dir))
) g8 B. ^9 w0 K( H0 z. R n - (setq temp_dir_z (caddr temp_dir)); }: w& {% \4 C; I4 T& K$ O
! m! @, j( R7 N- (setq temp_xline_pt1 (trans xline_pt1 1 0))
{ Y3 S% u* X - (setq temp_xline_x1 (car temp_xline_pt1))7 p/ j- ^% X% \9 z" C L
- (setq temp_xline_y1 (cadr temp_xline_pt1))3 e9 |! a7 c% `4 b! f6 t R
- (setq temp_xline_z1 (caddr temp_xline_pt1))
1 }& k! y8 M- U8 i. U
0 v, ?3 r7 Y2 g* }6 X+ f- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)/ t) t; Q# F; `# k
- (expt (- temp_dir_y temp_xline_y1) 2)0 f) e. s. M) c6 [0 B+ |5 t9 b
- (expt (- temp_dir_z temp_xline_z1) 2)
8 h0 i6 Y' ~0 z' L% R# `+ { - )))
6 E1 N$ x$ \# n: f+ { - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
! l1 N) ^. }6 X8 d3 [8 S - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))% P" V( w+ ]+ k2 i+ Y) h
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
# s v- g/ K1 j! _% O0 C3 g - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)) ]8 j& o9 K+ S* S
- (assoc 11 elist)
& r/ p* Q5 f) l: Y - elist1 ~7 h) B) z. \9 _* s
- )3 P/ ~! L& T2 `! A8 v
- )* T6 ^4 y0 z6 b
- (entmod elist)9 S3 F- ?4 H) S% _6 w3 R/ \+ z
- (setq xline_x2 (car xline_pt2))
* z9 I3 y6 t: U) ~ - (setq xline_y2 (cadr xline_pt2))
% ]: b4 G2 V2 y- j8 c: R - (setq xline_z2 (caddr xline_pt2))" ]! N7 _1 d, M( y
6 T5 O' Z' G& \5 I. w- 0 @, `- N9 N* |4 k1 _
- ): g, _7 b$ b/ |% h$ I
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)) h# A7 w7 s5 [; C4 u, m
- )4 n/ O+ k# S5 K7 }: c: O
- )
) Q4 J7 d' `: I/ s% m" H
9 w, X+ C+ Y) O: M* s; V7 G: n1 @9 g' F- ;;( `$ S" |4 r5 T
- ;; Common properties for all objects
* L! ~8 q- B3 i; @ - ;;
% ]/ `/ P7 e# e+ }- M" W7 c - (defun set_tile_props ()
* O# b ]: V6 E1 ^1 U - (set_tile "error" "")
+ z5 Q% v' V" L3 `! f - (setcolor)" t- r5 G* U0 j9 V% N6 l
- (cond. [5 M9 N" g$ [0 F
- ((= eltype "BYLAYER"). h2 k( O8 [7 v
- (set_tile "t_ltype" (bylayer_lt)))3 u1 b8 y: w6 U7 ?+ X6 m
- ((= eltype "BYBLOCK")
/ \0 ]$ J& d# B* F. ?( D - (set_tile "t_ltype" "BYBLOCK"))
( K, ?8 U- k! n5 m- L$ {" Y - (T (set_tile "t_ltype" eltype))
9 B1 M# T' v' \* D$ p9 H - )
4 _, e3 `: [% j/ V5 q+ ^ - (set_tile "t_layer" elayer)
* O7 M) w5 ~9 G# F" C - (set_tile "eb_thickness" (ai_rtos ethickness))
5 V" L: N8 x- y- y/ p0 @. ]8 ^ - (set_tile "eb_ltscale" (ai_rtos eltscale))
. K+ ^3 T% m5 o' J7 Y* j - (setq which_tiles (ai_common_state etype))1 @7 J) `2 z9 W$ f0 C( p1 i
- ;; Disable tiles if need be.... m8 u0 j( j1 O9 Y! q q
- % {0 _, s0 @' d+ i6 x9 Q% R
- ;; Layer Button and Text Field6 p1 Z. d- q" @. W
- (if (/= 1 (logand 1 which_tiles))# S& ?9 v7 m; U8 f( [
- (progn
2 i& \4 \" K. S% h9 o3 V3 G - (mode_tile "t_layer" 1)
4 n$ I# l' g4 k1 `+ e - (mode_tile "b_name" 1)9 O- P, R! T. Z/ [8 z
- )& ~; }; ]; K$ t( Z6 W
- )( ?2 m5 V+ \+ L* j3 t: _" N
- ;; Color Button and Text Field
$ |! [* P6 Y+ ~5 g - (if (/= 2 (logand 2 which_tiles))
; I# ]9 N0 `) \* K# r - (progn* p4 d! P3 M( W( m2 `
- (mode_tile "t_color" 1): b" b2 v+ {- X/ P% V: W
- (mode_tile "b_color" 1)$ g' q5 ^. k# M
- (mode_tile "show_image" 1)
2 f* ?' u: f, O- n - )7 b" }1 |" |1 j/ N3 G) s# C* M
- )2 W- U/ D. r, |: o
- ;; Linetype Button and Text Field
% |. v( J- E7 q7 D - (if (/= 4 (logand 4 which_tiles))' ^4 h2 {8 L/ {3 r: j
- (progn
9 a- a" i2 M* b' H/ w - (mode_tile "t_ltype" 1)+ h# n( G; f" f
- (mode_tile "b_line" 1)3 @7 N# t" D' a% `$ h. Y3 @
- )! }; i/ l6 l& p9 ~" f" [3 K4 C8 [! ~
- )2 T# w- B5 F& g, ]$ S
- ;; Linetype Scale Edit Field
, ?6 C( ^8 u9 Y l - (if (/= 8 (logand 8 which_tiles))
0 N6 C2 N! Y* `& M - (progn
5 o2 U6 S2 Z% z; h1 [ - (mode_tile "eb_ltscale" 1)
8 G& h3 q' A4 f% ?/ f - )7 s4 O e* b! O8 w r- t! z% o
- )( ^9 t. `. D$ G6 e& d2 \" o
- ;; Thickness Edit Field.2 H2 k S, L3 Q. F- I9 m9 {( s6 |
- (if (/= 16 (logand 16 which_tiles))
; h) T7 z: J) M V L' c - (progn
7 w5 Z# r7 D3 X8 y( b - (mode_tile "eb_thickness" 1)) e- f* R' T; e; q
- ), X" F3 l# X8 W0 r' M
- )+ d$ @) N$ I: A y8 C
- )4 P9 v O- m+ O6 S0 p3 z1 e
- ;;( f: f, B, |2 Z6 k
- ;; XYZ Point values for all enitites0 R* _/ p ^" f, Q0 {" x7 N- b
- ;;1 o. N4 W2 v# u, h. d
- (defun set_tile_pt1 (ptype)& D% G9 }/ f' n% d
- (if (= ptype 0)
9 i, @' K- A+ {' J9 ^6 G0 t+ L - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))6 U! J; S% Z: p' w5 P. E+ X
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
4 m7 z* d" z+ S/ h - )1 {; E! V# V! G& [' `
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))3 C( }" A: e4 W" F
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
X/ ?3 Z$ q Y( I9 ? - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
! M% {# D9 A. I% x; ? - )7 C% k% m9 _, l' e6 I
- (defun set_tile_pt2 (ptype)( f# O* U; Z" L, l$ x
- (if (= ptype 0)
! `! K, f6 t7 I3 ?' J - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
2 G0 ?9 g9 H- m; y0 k" v - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))& q( D# m' o) c) i! @
- )
$ v6 V& B. z: q, `" p1 A - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
8 z% [4 _9 } r) s - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
2 F: W- M X4 g3 I3 ^2 u - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
: t& m0 `4 P0 T1 e5 h - )/ s; F6 U- a6 I: S( ~4 g
- (defun set_tile_pt3 (ptype)
+ t: j9 s+ |; g1 J! u4 R - (if (= ptype 0)
: F# Z4 ^ J3 H0 V' U# Y - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))' A- U6 c K( y* s: e
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))9 v5 N/ j8 N& c+ Q1 s
- )5 W0 Q9 T" f* z
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))& E+ L$ k) d5 p# O+ F) X% u' q
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3)))); h: Z) U" O) N' u
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
% ]: B: Q. y* Z* u - )
b" d9 `+ W5 G! k0 E# ~2 x+ ] - (defun set_tile_pt4 (ptype)
* }: v$ s/ y! \4 X P - (if (= ptype 0)5 s& ?3 h# k6 s# i) D
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1)) J: L; S, R6 b- s
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1)); k3 Y+ f1 I# M ]
- ), r/ k5 X1 J$ Y: ]3 N
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
! \! T+ M) g( u) J' A' D0 r% u% S - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
1 P# j- I' `# m- n! h - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
, _1 p: t* i0 v$ D7 ^) t - )
3 V+ g9 z5 A2 J q1 b( d7 A - ;;
* A- l+ w' x5 H$ L* B6 R0 c - ;; Xline/Ray; J1 x8 T* ^% {4 d$ _
- ;;
0 V4 d2 z% _* E5 U. Z; U5 E - (defun set_tile_xline_pt1 ()( r/ O9 @) m7 M+ e8 }
- ! @5 ?4 }2 a' ?0 z
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
, b n1 B/ \3 F" N6 D$ G
2 y$ e/ `. R* W. V! T- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
" f, C6 E. r. y; N' h& Z - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
/ U0 w8 D1 u5 N$ b8 W - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
6 G* |1 t8 s# J! m' z - )) W8 H: F$ r$ o% M% ^- }, V0 ?0 B
- (defun set_tile_dirv ()! X- T" h$ P0 f' H
- ;; Convert 11 group to local UCS (displacement)
4 i& e' D( P! q7 k - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))4 w' e5 t- f) Z
( V: v7 s. u# e% l" y# Z% W, u- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))$ r+ O5 E+ N0 j" ^9 A$ y- b
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))- m5 N2 [! J2 M* ]3 o& D
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))3 K% E$ `1 l7 h. j
- )# H6 x7 C# ^1 E) H* J a- @
- (defun set_tile_xline_pt2 ()
6 I3 e" p% X4 ]9 f - (if (not xline_pt2)
' E& n: C6 z5 n% P: \, [: x9 } - ;; Initial second point is Root Point + Direction Vector& t. [4 J6 _, Q2 U
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))* Y( s7 J' @ C4 J0 n( q- Y
- )8 y4 `4 R/ I c4 [5 h: E
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
3 V% p' q( |/ ^/ T f* P+ U - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2)))): m/ H# {; \ e9 D8 ]) U7 f
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))3 _$ M- n+ J7 ~3 t
- )
/ I( _ A7 z5 ^" _
" r2 x3 G4 |) {1 w2 U( \ g# R8 i- ;;
( y9 s5 j" h8 E - ;; Handle for all objects$ p8 a* w. @8 m7 g5 \' m- r
- ;;
) F3 e) F9 f* `' ~/ l - (defun set_tile_handle ()
# a5 j% U; O) ? - (if (setq hand (cdr (assoc 5 elist)))7 w0 ^' @) H: `+ O
- (set_tile "Handle" hand)
- h: o7 B* k3 S; J: A7 |7 m: k - (set_tile "Handle" "None") D% E9 @1 G- Z2 X; Z1 a3 l
- )
1 u6 Z; T( i) Y+ R- U) N - )
" `6 N, c2 `% i4 \& C - ;;
$ U& t- U. l! d" o, |5 q2 T - ;; Radius for ARC and CIRCLE) [: }& s# E, o1 B: g: x: o! ?
- ;;
8 T/ L4 A1 a, j7 r) F7 ?- Y - (defun set_tile_rad ()4 Y+ A4 J% f, |, K! X2 v
- (setq radius (cdr (assoc 40 elist)))# V, b3 M! c' s" T6 I
- (set_tile "radius" (ai_rtos radius))/ W# k( Z$ Z8 W* o
- )) b+ k: }% P1 [8 q. x9 r
- ;;
8 F$ e4 v7 N: F/ \ - ;; Start angle for ARC
C0 Z0 h5 Y6 d5 e ~* _/ J7 w& Z! P( H - ;;9 z4 |/ n) Q' E/ Q
- (defun set_tile_stang ()
1 ^$ @7 L6 R& P6 K/ `" n5 Q - (setq st_ang (cdr (assoc 50 elist)))" ~3 `; w2 M. I- W8 q1 B
- (set_tile "st_ang" (ai_angtos st_ang))
& l& c8 c- M% t. w - )
% o: z7 P, l" `- d# N - ;;' @! O6 p5 }* Z
- ;; End angle for ARC6 ]+ e* u( n. I# j( J O2 B; R
- ;;/ Q/ a8 ?' O" I. g
- (defun set_tile_endang ()
' H: A6 q% t; \! J - (setq end_ang (cdr (assoc 51 elist)))$ c2 s6 e! p$ ~- v
- (set_tile "end_ang" (ai_angtos end_ang))/ S9 T7 B) E0 I- f! ~
- )
L3 Y$ g' T( o; I0 g$ ~9 D - ;;# o$ H1 g1 y' B( c
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes S) f; o3 C( T1 E! \
- ;;% i L: h2 t8 L, e: A6 p
- (defun set_tile_rot ()6 o% |0 r% z, u" G, a6 v$ l
- (setq rot (cdr (assoc 50 elist)))& f) U) u8 @( d* {5 o6 \
- (set_tile "rot" (ai_angtos rot))
- E$ G4 r; E8 o @6 d' O! X6 k - )
; P( D7 F. M" B7 O: Q - ;;
! t& s1 E' S( X; t5 J - ;; Height - Text, Attributes and Shapes$ j) ?: n" n6 C& H2 ?$ t0 G
- ;;
+ [+ U" [4 H" \4 p0 M+ ? - (defun set_tile_hght ()/ }" q8 t/ m5 _# k# E+ w8 F! T
- (setq hght (cdr (assoc 40 elist))) n, u. U1 s @) j5 o- f
- (set_tile "hght" (ai_rtos hght))" Q% C8 [8 M8 n# J, U
- )# Y5 V" D( v/ L" t+ \
- ;;0 Q* x: l, X! u5 x q) ]
- ;; Width Factor - Text, Attributes and Shapes h9 a! R! P6 y( b9 h; _5 T# c
- ;;
' F' n1 A8 f c6 R' { - (defun set_tile_wid ()' I% o# R. U8 M3 Y5 d
- (setq wid (cdr (assoc 41 elist)))2 { O# v" Y3 ~! X$ V: K: }) I
- (set_tile "wid" (ai_rtos wid))
* w+ M$ `$ ?1 ~ - )
0 H% g9 v9 [( l V - ;; d4 F. a4 Q0 B% G& D, Z1 q5 l& H
- ;; Obliquing Angle - Text, Attributes and Shapes
- @" Q5 g% L6 \+ }& k9 Z5 a3 j0 z* F9 e - ;;' H* Z6 _/ \* \9 V1 v Z9 B
- (defun set_tile_obl ()
{2 t3 s- k' m$ U2 G7 \8 b$ h - (setq obl (cdr (assoc 51 elist))) s# v/ r1 ]) }, r
- (set_tile "obl" (ai_angtos obl))
) l+ q% b" P7 ^ X6 T3 X+ [ - )
- Q4 D R* N3 x9 j: `, |( x - ;;6 c0 p ?# y, k5 `8 y. }
- ;; Text string
8 X& H* m& ]3 h2 b4 a9 T - ;;
+ q- x* D) B& _7 j - (defun set_tile_text ()
) V, B J& V4 ` - (setq text (cdr (assoc 1 elist)))
3 e; O- J8 K. h% G) ?6 e - (set_tile "t_string" text)0 \0 V4 {: S7 B( H: j
- )1 x( d9 B4 R( b- f' G5 _
- ;;: B9 t5 e4 q& x' n0 a' ]" ~2 C
- ;; Attribute Tag1 e% F) l6 I! g& p
- ;;
6 T. G9 f) m' h5 ~% @/ D o5 S - (defun set_tile_tag ()$ p: u. g6 W4 C O) p/ }$ R
- (if (= etype "ATTDEF")1 J* z% v, b& t z$ q3 k
- (progn% z4 {# u5 ^! @+ `7 p( g, O
- (setq attag (cdr (assoc 2 elist)))
1 B0 k. t2 L7 Z; L+ e. N4 Y - (set_tile "tag" attag)
f, z0 C, ~4 h9 ?( O - )! z3 ^( i! x5 k" H% `; k( [
- )
. ]. u) M6 h$ o" l - )
) u1 @4 T, @/ _* a6 _1 D4 E1 h, D. v - ;;2 n: C; x( e- w) J4 l" _9 r3 g
- ;; Attribute Definition" y; x4 y- y# H* z
- ;;
4 v6 N: S6 m3 L - (defun set_tile_prompt ()
3 m( m: a# p! z1 S - (if (= etype "ATTDEF")
: \6 Q9 t3 [' Z( X5 O, E/ e - (progn
) P: a" F I: [, u+ V - (setq atprompt (cdr (assoc 3 elist)))
( `; H3 v/ `% n, Q - (set_tile "prompt" atprompt)
' q \3 }" I4 h$ D* S/ R/ V - )0 M% N S, W2 c
- ), y1 C' Y4 s. v0 a2 J
- )
b( ?, w1 N8 _; d - ;;
' b% P% g- G5 B) ~- ]: V9 L - ;; Justification setting for Attributes and Text. Initializes
# `6 F+ g1 h* d5 m% \: r' X - ;; popup list box
, `. M) d& V1 f$ I* `% s ? - ;;! k5 D; `- v0 o6 h8 q' ^
- (defun set_tile_just ()
& i: C% p- t) ? - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
/ h! h" J: Z3 O3 y - (setq va (cdr (assoc 73 elist))) ; vertical alignment5 w' |: p8 U/ s( O; Z
- (setq ha-prev ha)
% X* \1 e% ?* d - (if (= etype "ATTDEF")
# p7 W d [* ~& I1 R- o" L - (setq va (cdr (assoc 74 elist))) ; vertical alignment
: h0 \3 `9 m9 _" P9 _2 T6 [ - )8 R+ m* U; g2 Z; S% k
- (setq jlist0 J5 g( V. i- F
- (list "Left" "Center" "Right"
" o6 w' n" T4 S" {$ v3 m - "Aligned" "Middle" "Fit"
+ x. a: C( \) ~4 ?- O" x - "Top left" "Top center" "Top right"( @' r$ u, J4 Y# b, S: y% r" S
- "Middle left" "Middle center" "Middle right"
# r$ F* S" A& z/ A" ~ - "Bottom left" "Bottom center" "Bottom right"6 w9 D5 q' b( _. X' V
- )
% a; M. v; b# E( g# O - )
" c3 c8 U+ g( u( u( Q3 B& e3 @ - (start_list "popup_just")
+ ]5 U( y: o% ]) \ - (mapcar 'add_list jlist)! b: g) l# |4 Y8 G5 m6 {* I
- (end_list)7 {9 N0 Y& s9 P5 e: P
- (set_just_idx)
4 [1 |* [) W# t - (set_tile "popup_just" (jlist_act just-idx))
- A. K8 A2 V: E8 x; \8 z - )
& X0 r( m9 I7 j! q0 ?& | - ;;, ^5 y+ C- w4 i r4 q$ E: x( e4 c: Y
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
8 W p7 c; M# S+ t - ;; box.6 v0 v/ _, B4 E; ?+ O3 z( Z
- ;;
6 `; v0 D7 ^+ A# ~ K5 J - (defun set_tile_style (/ sname style-idx tlist)
! n9 j& Q& X7 Y2 M& d - (setq tlist (tblnext "STYLE" T)% ]8 @) c' Z6 p+ l
- slist nil): a# r+ z5 U8 t
- (while tlist+ l7 ^- m& N: p) w5 f
- (setq sname (cdr (assoc 2 tlist)))
, I1 m# g, |& r8 D8 U- Q: z - (if (and (/= sname "")
% P/ z1 d' b* Q! l3 Q3 D Z - (/= (logand 16 (cdr (assoc 70 tlist))) 16)); j2 O3 N' q! J4 O/ g
- (setq slist (cons sname slist)))
# ?* z! V: Y" w W# t, { - (setq tlist (tblnext "STYLE")))) F" q5 v: t2 L: c @& c5 i% v
- (if (>= (getvar "maxsort") (length slist))
! y. t/ w6 W9 { - (setq slist (acad_strlsort slist)) ; alphabetize style list+ k, w1 V% V* i! R* p& E$ T: X( A4 H9 G
- (setq slist (reverse slist))) ; or reverse it to put it in DB order0 s' r' m4 L- c- d
- , g" I/ `4 }/ p0 x5 z
- (start_list "style")& C" [; P8 L6 ?7 E% [' Q- }
- (mapcar 'add_list slist)2 n# }3 {' B. b. R/ E( H
- (end_list)
3 ]7 L# v5 _# P5 h - (setq tstyle (cdr (assoc 7 elist)))# N/ y* t4 a2 U, t3 B$ O, t
- (setq style-idx (getindex tstyle slist))
5 v% t! t, k; c: X - (set_tile "style" (itoa style-idx))
- S V7 R' F+ C - )9 w9 e/ }; s5 t# | r
- ;;0 W$ N1 [: p. B$ C
- ;; Text and Attribute setting - upside-down, backwards8 @$ f* _$ S" T9 @; b! ^
- ;;9 {6 e. ?$ [) g
- (defun set_tile_bk-up ()
$ N1 `: T# g4 _- t, h& d. r - (setq bk-up (cdr (assoc 71 elist)))% @4 |8 Z' L0 K
- (if (= (logand bk-up 2) 2)# ]$ l6 d: t+ B- V, E7 V% x) S
- (set_tile "bkwd" (itoa (setq bkwd 1)))2 z8 a( x" @% E6 O3 m
- (set_tile "bkwd" (itoa (setq bkwd 0)))
8 g3 U3 _, v3 `1 b - )
- C. S, H2 ]# ], C- T& k3 h. N5 v - (if (= (logand bk-up 4) 4)* z# R, ? u- R3 W- Y3 `+ y+ f: W5 H
- (set_tile "upsd" (itoa (setq upsd 1)))
9 u1 n/ y- }4 W: F6 c1 q9 S - (set_tile "upsd" (itoa (setq upsd 0)))
4 \- ?! R/ V% x0 E# X! A0 x W% q3 k( k - )
& Y- V2 o2 Y8 \' X# u - )
4 ^4 F. j# v$ {/ ~' ~! m - ;;
+ B: k0 s$ y4 Y4 g- _! l8 R - ;; Attribute setting - invisible, constant, verify, preset
: {. b; l9 d& v D. s' J' a - ;;9 x# u# J! _* Q3 N/ H
- (defun set_tile_icvp (), O2 A& p0 l' h! O; f0 R. h' H0 E
- (if (not (setq icvp (cdr (assoc 70 elist))))
$ g; L' j D! C" e' l; o) ?) r1 [ - (setq icvp 0)6 F& B3 t" x& E9 K# \. ]
- )
" ?. m1 }# N; K0 n5 i$ t$ `; ^ - (if (= (logand icvp 1) 1)
/ K( p! N3 @' I! r - (set_tile "inv" (itoa (setq inv 1)))
2 X. f' z$ m" d# m' @6 w - (set_tile "inv" (itoa (setq inv 0)))4 _( c" R5 S! w
- )7 r+ i2 k0 u" ?/ U0 }: o
- (if (= (logand icvp 2) 2)
8 P3 b) s5 H+ `, ]; ~ - (set_tile "con" (itoa (setq con 1)))/ B" w7 J) |) @# Z' o2 ^
- (set_tile "con" (itoa (setq con 0)))( Z& _! x1 v$ Y$ C% x* H
- )
6 S& u5 F/ I+ ~2 R/ L0 r - (if (= (logand icvp 4) 4)) \) W. b: {8 [; t, o1 o: x- c
- (set_tile "ver" (itoa (setq vfy 1)))
" R, F4 i4 E5 ^& r9 j - (set_tile "ver" (itoa (setq vfy 0)))% g+ v; k/ u7 @' r5 e" Q
- )% R3 X1 G) f$ o
- (if (= (logand icvp 8) 8)
( B7 q/ R# @" R - (set_tile "pre" (itoa (setq pre 1)))
7 q; o$ g& f( t/ [& ~5 C - (set_tile "pre" (itoa (setq pre 0)))& Q; O' T7 C: o
- )9 a) l& W0 ^; c! G) c
- )5 c; ]4 l# W5 z2 H7 J/ k( T, Z* h
- ;;
" {, o. i( I8 @& y) L' V9 l2 x* ~ - ;; Scale factors for block insertions( h/ @! @$ J( G* g7 V9 y
- ;;8 v1 G2 g7 Y* n* k" T( I" r
- (defun set_tile_scale (/ temp)4 P1 F V7 ], r, T$ b
- (setq temp (getvar "LUNITS"))5 o$ {& c: N5 d: i
- (setvar "LUNITS" 2)- T {$ @0 t# Y# H) Q1 Q
- (setq xscale (cdr (assoc 41 elist)))# w9 [ `4 _+ r- t9 L6 k' l
- (set_tile "xscale" (ai_rtos xscale))6 x& \5 X6 }* C; N$ u
- (setq yscale (cdr (assoc 42 elist)))( y8 ~0 C" Q, k+ p) ~4 M
- (set_tile "yscale" (ai_rtos yscale))
+ t4 l3 P; g5 W: k& U, L( S2 P - (setq zscale (cdr (assoc 43 elist)))
' U& \( ^; L- G9 p* F$ V5 @: f0 x" Q - (set_tile "zscale" (ai_rtos zscale))
1 x+ j4 p! m. u! f4 j - (setvar "LUNITS" temp)) A$ q/ k* ~) }; r7 W6 Z" z
- )
9 P" r8 s n; N7 S - ;;1 G3 G, k. ^9 j1 ~$ X2 v! ^
- ;; Rows and columns for block insertions
( T! F& N$ e) e/ M- W. q - ;;0 s! M4 A! a1 |3 `5 ? O
- (defun set_tile_rc ()
% z% Q' p1 s! i% k, Y - (setq columns (cdr (assoc 70 elist)))
" p$ {# @& O% E* ^ - (set_tile "columns" (itoa columns ))! S* h+ L; V( m4 R" s9 T
- (setq rows (cdr (assoc 71 elist)))
# T/ `: L! o% g! l r, b& R - (set_tile "rows" (itoa rows))# B8 e4 e2 v+ ?* m% t }7 @7 d
- (setq col-sp (cdr (assoc 44 elist)))
1 L8 R6 L n0 t$ r7 J2 g - (set_tile "col_sp" (ai_rtos col-sp))
6 t4 }1 W6 G2 t& r" S - (setq row-sp (cdr (assoc 45 elist)))" q) J/ |/ i/ p* k0 p# z
- (set_tile "row_sp" (ai_rtos row-sp)) [- X6 ^' k% d% q% Y }
- (if (/= hasclip T)& c4 v: w. S% v- P
- (mode_tile "xcliponoff" 1)
& U# X/ M0 M8 d3 m1 W - (set_tile "xcliponoff" (itoa xcliponoff))
+ V0 r; ?) V9 Y7 ] - )
) [7 G7 z8 D8 H+ G - )
Z9 {" I% m, T' [ - ;;
# Y7 K, \& t3 |; E6 B+ Q - ;; Invisible edges for 3DFACE8 B u; P& T+ h. C5 ~
- ;;
6 m5 J( J8 l; d9 [ - (defun set_tile_edges ()
9 [8 o! B9 g6 t& q( N9 F - (setq f-vis (cdr (assoc 70 elist)))
" h, z" s( U7 o" w" O/ R - (if (= (logand f-vis 1) 1)
, q- n6 L" L' f7 w+ r - (set_tile "edge_1" (setq edge1 "0"))
7 I% \/ B) `, L - (set_tile "edge_1" (setq edge1 "1"))3 e1 [4 u$ W3 b
- )
: I, b& [- F" p; k' B7 L - (if (= (logand f-vis 2) 2)2 o. d8 d4 H7 ~& Q5 f) }& e
- (set_tile "edge_2" (setq edge2 "0")) m& G+ A% F+ e! O0 h7 q
- (set_tile "edge_2" (setq edge2 "1"))+ O; _- g7 s3 |# \! S
- )
- l# s+ B( V/ U5 I C1 F/ b - (if (= (logand f-vis 4) 4)
; X* P, h; t2 c2 P- _ - (set_tile "edge_3" (setq edge3 "0"))
) z1 {4 u) R, P3 Y: n+ M - (set_tile "edge_3" (setq edge3 "1"))4 \3 \9 @7 I# f1 R* w
- )1 d2 J6 a/ b5 f# ?4 [$ v
- (if (= (logand f-vis 8) 8): F/ ^0 r5 l3 g' k+ t0 B
- (set_tile "edge_4" (setq edge4 "0"))
$ y0 y4 X& ?* c. ^+ ` z3 J0 t - (set_tile "edge_4" (setq edge4 "1")), Q4 S+ i$ ?. U) q! ~3 Y
- )) T5 @( G8 M h- Q$ C5 o2 m
- )
J6 J: J' |' i" o3 `- o - ;;
5 {0 r4 d$ [: } - ;; XYZ Point values for polyline vertex" O X7 R' C A" V a
- ;;
) A; W i1 y# W6 i. n* j0 \ - (defun set_tile_vpt (ptype)
1 _+ j' j% ]" h, q+ N; S - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")( l: z$ q, c/ G
- (progn
6 l7 B5 x# s" X0 O; i2 ^ - ;; ctr is 1 based, vertices are zero based.
7 X v* `( | O5 ^$ g - (setq vpt (cdr (getLwVert (- ctr 1))))
; s4 T; w; e }! h+ `, \ - (set_tile "xtext" (rtos (setq x1 (car vpt))))) F2 h0 X6 j+ w& ?
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
) O2 R" L% o# C( z5 h, N. D+ L" y - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
7 r1 P% a! K8 T9 a8 r - )
4 B; D' f p/ s8 e2 k! |; m - (progn
H& [( s( P0 }2 T - (if (= ptype 0)
, F4 t; A% \' ]8 u- @9 L - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
# |9 Y0 H) a. H7 d, p- L& ~- E c - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
" U$ r/ L' l( h' j - )
" B& p+ p3 D6 y
+ x. L: J( b# [2 K5 z: [/ q- (set_tile "xtext" (rtos (setq x1 (car vpt))))
6 w* ?% `$ S2 U6 e! F - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
: k$ b( U4 C% t0 G) n2 b1 h - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
" \1 M' x5 o1 `3 P/ L3 R - )' p$ |8 a' A( r. ~, H, L
- ): A2 j4 `6 g2 r, D
: ?6 d5 Q* | O C/ @6 r" i- )
T- p: N' [ u D- ] - ;; This is the equivalent to doing an entnext on the heavy weight" L3 p$ U& T k0 r3 F" r5 y& y
- ;; polylines. The hard coded '4' below allow stepping over the
7 t1 v. J7 p- v( S' _& z - ;; 40 41 and 42 group code information. The while loop finds the
$ i7 d$ E+ N* K; R - ;; first vertex which will be used as the starting assoc in the0 ~ k& R1 k: c
- ;; call to nth.( F% V& G+ ~7 s! g. U( P
- ;;
+ u4 _; j7 c# Y, t2 r - (defun getLwVert (tmpctr / count tmp)/ X3 x" C4 z4 v
- (setq count 0)
( y; b, b; F( n( B9 [8 s- b: ^ - (while (/= (car (nth count vlist)) 10)! h, f1 f7 x9 b& l; h2 ^
- (setq count (+ count 1))
. h4 M- O! T: ~ - )
. |) d/ F/ }+ g K - ;; If the counter reaches the number of vertices,6 D9 T" Q4 C) a
- ;; reset ctr and tmpctr to zero again./ W! s7 S6 F% d- S# O" {$ D
- (if (= tmpctr (cdr (assoc 90 vlist)))6 m9 i* w0 @8 |2 I2 c
- (progn
& R( ^; E, r$ E - (setq ctr 0), k: B. |3 L! W$ N$ L& p( I( o
- (setq tmpctr 0)6 d# g, g/ m. |# u" B2 ?7 q1 l+ R
- )
8 ?1 C6 }$ x B& c* s - )
+ }2 |5 Z6 `( M - (setq tmp (nth (+ count (* tmpctr 4)) vlist))1 ~+ j0 d: z3 m% N \' \# z9 @
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
$ U4 h+ \" h7 }+ ]4 U1 S - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))4 {& |& L) }$ I7 B' a
- (setq tmp (cons 10 pt1))
* _3 R- j3 P* }7 }/ ~ - (setq tmp tmp)* I3 E. y/ e( t, [
- )8 e% q0 @% E' E& v- i
- ;;
/ n4 z5 |$ Z# \5 R( k - ;; Set tiles for Spline properties. If the spline is rational then we8 I1 g# x) y& }7 t/ O# n/ c
- ;; need to display the weight values of the control points, so set# P% Y" ?% U* p" `8 q
- ;; flag to 1.3 D( i8 N W3 a. Z/ x# ^) G
- ;; 1 = rational spline* i- D* s& K. {" Q6 O1 O
- ;; 0 = non-rational spline
8 Q" f: P7 R2 H4 d7 v& A( v& r- h - ;;
$ G/ k1 M4 \, F. b( ^$ Z" g - (defun set_tile_spline_props ()
& m D6 s# \- `/ f, f, S - (setq rational_spl_flag 0) ;; initialize rational spline flag7 Y! o2 V' d! s8 x1 F7 l
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))# ~8 c4 a# S0 s4 w; n& ~6 q
- (setq bit70 (cdr (assoc 70 elist))): A# a: Q' q& x: Z6 V
- (if (= (logand bit70 1) 1)
9 @2 `0 n' a* _4 @8 B% ^, J - (set_tile "SpProp4" "Closed")
2 y% d* z8 Y- v; H - (set_tile "SpProp4" " ")" N" r+ z+ P% n2 k
- )
0 T& _$ i" t6 { - (if (= (logand bit70 2) 2)' {2 p* c8 e' \ e8 [ z
- (set_tile "SpProp3" "Periodic")
; q! z' c, C2 h# x4 g* d6 Z) p - (set_tile "SpProp3" "Non-Periodic")
# u; Z9 M( V: y0 M# R$ H - )" C! f" r+ b' i" q9 N& R
- (if (= (logand bit70 4) 4)
& u5 i$ n6 ]" O% g# u - (progn3 M5 f" `5 _4 m+ U% [
- (set_tile "SpProp2" "Rational")
& q0 t. h; l6 E( W - (setq rational_spl_flag 1) ;; this is a rational spline9 c8 ^6 r7 w2 P( Z# M
- )
4 G0 N3 _1 D0 Y% E6 K! Y - (set_tile "SpProp2" "Non-Rational")1 g( K' D( T: e' T0 d# u9 \, b
- )
, R" V+ r: f' _+ u - (if (= (logand bit70 8) 8)
& t8 n: Z+ V) c - (set_tile "SpProp1" "Planar")
* b' u3 c" ?/ V: J" G, y/ a - (set_tile "SpProp1" "Non-Planar")8 e# J( t/ x! o
- )
& X2 J$ o" o* b4 J/ j+ E; }- T - (if (= (logand bit70 16) 16)
" I) \/ \ D* ?/ p i5 z6 P0 k - (set_tile "SpProp5" "Linear")
; Z+ ~. p+ L2 i - (set_tile "SpProp5" " ")
/ Y8 u) r/ A& w: B+ N5 X9 r - ); {& X: @0 r# v1 ~6 ?; y( T
- )/ L& `5 L6 X. N7 l
- ;;8 w" Y- c% p5 ?- a
- ;; XYZ Point values for spline points, D, A e: Z& S& p2 F& H
- ;; Need to account for WCS/UCS& J' N+ C" l( @8 `7 Z7 x
- ;;1 ~4 w% [- z$ R6 J( g+ X! Z9 ~
- (defun set_tile_cntl_pt ()
: O7 w' x b/ a+ |/ |" a - (setq cntl-pt (cdr (assoc 10 elist)))
s, ?) ?0 N+ P5 s- {( v! f - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
, M8 h# _3 t1 k/ D9 ~1 W* V - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))- f( D; ?1 {1 w: n h+ Y8 G0 }$ N
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
% Y5 Z! G$ j" ^ - (if (= rational_spl_flag 1) ;; if rational spline
6 B( d5 U, z! H$ m4 {' ]5 i1 F - (progn ;; show weight9 o, E Q- E$ [" V/ y3 C" v
- (setq weight (cdr (assoc 41 elist)))5 D! x/ I" f3 }- p, H/ C
- (set_tile "weight" (rtos weight))& |* G, u5 R3 n/ b1 \2 ^
- ) ;; else
4 `, h, Q" Q9 f" w' w" c& l - (mode_tile "weight_text" 1) ;; disable weight field b* g, q {* d
- ); Q# S [ X* ~# s" y9 X4 \' Z
- )" h6 v% ?, W7 h0 \& N | O% h
- ;;: `- U$ ?) y O: U
- ;; XYZ Point values for spline points
4 T% |9 b! M" O; ?/ ` - ;; Need to account for WCS/UCS
e0 d! E; C2 ^) m- c& Z5 S - ;;
/ |0 n0 N& g3 Y - (defun set_tile_data_pt ()
1 v) |7 F; ?3 g! B9 @& o! c - (if (not (assoc 11 elist))9 u4 T3 }- _% A" i6 O- I0 {
- (mode_tile "data_pts" 1)
5 k2 z: g$ S1 \$ Z" k4 M w: M: z - (progn8 z- ?, E# ? F% W; P" r8 `
- (setq data-pt (cdr (assoc 11 elist)))
! Q! c% I9 w# r _ K- V6 Y - ;; display points with current precision.
# W$ t6 X( h% \) |( T8 ] - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
! z. ^" D' y& V% L - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
% W! ?! H- k b4 T9 P9 J - (set_tile "dztext" (rtos (setq z1 (caddr data-pt)))): X- b: `6 s7 v; ^( h& w2 h' W$ K9 e
- )+ k, P2 J& c3 `2 M. s
- )
" G2 O7 b3 G; e' V - )9 ~. b c7 k+ |6 M
- ;;% x8 O: p0 w# L# A, z( v6 O' ]
- ;; Fit curve, fit spline, or smooth spline surface setting
2 q- ]# S3 B3 `! Z3 B( O - ;;
7 ^9 `5 Z& I: { - (defun set_tile_fitsmooth ()9 i- m& @) y& W/ E
- (cond
! e! D- r& U% r6 V - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")& _9 Z# M) W0 {5 e1 R* V, Z' Z
- (set_tile "none" "1")
5 C. f6 j, ?/ J$ B, b$ ]7 l - )
1 w ?, ~, x. ~$ ]% M: B - ((= (logand bit70 4) 4)
! u0 y+ O ^, m( S5 Q - (cond. V7 P* m# T M r3 q6 f
- ((= bit75 0)
# ]+ E5 h* `9 \4 e - (set_tile "none" "1")
]8 s3 N; { B% Y/ t2 x - (setq spltype 0)
" X& A; a0 p* L - )+ h9 q8 R8 m2 B8 R# {, Z
- ((= bit75 5)
/ A9 b/ X! W# r. F$ b6 O - (set_tile "quad" "1")6 z* s3 q( E, L, R- |3 T
- (setq spltype 5)
7 A! j. H" o1 @' ~9 p# x* ^. B5 J; N - )" c/ r e6 m1 ?& ~1 Q
- ((= bit75 6)
' U3 s/ d7 D, h - (set_tile "cubic" "1")
5 @' e! Q$ V, q( V5 D: i3 C - (setq spltype 6)
% t2 T+ N2 h' U) h! ` - )5 h& ?1 t+ X: G$ s, Y1 D
- ((= bit75 8)
. V5 G) k1 u4 C0 d b - (set_tile "bezier" "1")
: S! a3 `0 k4 Z, J - (setq spltype 8)
+ h" l; m x- h4 z, v b - )
- x# f4 A/ s( _6 l: X( E. B% l - )
4 R) h+ b. P' X* j5 F { - )
, X) `% }& S7 J0 S - ((= (logand bit70 2) 2)' F- J* S* p8 h8 M6 r6 z2 K; l
- (set_tile "fit" "1")
8 H7 n0 ~/ ^' B2 @ - (setq spltype 1)# ^5 N% f( G, x: j B
- )( w4 F6 w' [! v; }
- (T (set_tile "none" "1"))
! |6 U }" d# F - )' W3 l/ Y& z0 d. `+ R
- )
- [+ f. ~3 ^! ` - ;;
$ X+ N$ J5 r, k6 n. B - ;; Closed or Open mesh and polyline setting7 r7 e( I/ v. R! i/ P) T
- ;;
; H' m4 ]8 [( [7 H+ k! d- } - (defun set_tile_closed ()4 A- A- R# E: @1 A7 |
- (if (= pltype "3D mesh")
- l; }7 V) s; x6 p - (progn
, u" A) i q/ B+ _ l. {$ F - (if (= (logand bit70 32) 32)
/ x3 |3 P- x6 A1 @/ w& { y - (set_tile "closedn" (setq closedn "1")). y3 M5 s, c5 y8 y
- (set_tile "closedn" (setq closedn "0"))) I6 ^/ z) e# r) h, Z0 g
- )6 X" C# B2 ~- J: h
- (if (= (logand bit70 1) 1)7 d: F) Q* A+ g- l8 t
- (set_tile "closedm" (setq closed "1"))$ d4 }. @ X5 }9 }
- (set_tile "closedm" (setq closed "0"))
9 R* j& ^. S" r' f$ i7 ~ - ). m) c4 Y- C3 `8 z1 o; y2 _% F
- (setq old-closedm closedm old-closedn closedn)( a: N4 E" M O4 A" v) x
- )- P7 ^2 Z) P1 Q
- )
9 W9 d" g# q" q - (if (or (= pltype "2D polyline")# N8 q; R, k5 D, F
- (= pltype "3D polyline")0 Q+ V) _" _) ]- M# d% T2 N
- )
: x$ x$ p$ _% p4 _% p% l - (progn& A# b+ b2 H; S
- (if (= (logand bit70 1) 1)
( T( m: \7 V6 j' ]9 T - (set_tile "closed" (setq closed "1"))
* T+ J: A0 b* U2 n- S; p. f' A+ ~3 X - (set_tile "closed" (setq closed "0"))% a& _# q$ v, U
- )
, K, c! q- Q1 e: q5 [ - (setq old-closed closed)
* X+ U9 c/ [& j2 n: I5 w' I7 }# v5 {2 d0 V - )$ r; D) l( ]. Y+ { E
- )
+ q' n5 {, C5 h. A" d9 ^* D0 q5 \1 W - )
6 C3 z& C) q X+ q - ;; Set common action tiles' s- B* X( _: @! N; m& P8 {
- ;;0 y4 N/ H1 O) H
- ;; Defines action to be taken when pressing various widgets. It is called4 x0 W& q. Y3 |( D
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
7 |9 `/ F A1 Q Q/ Y$ _% u3 k - ;; but defining an action for a non-existent widget does no harm.
' _& n4 v6 F4 X, O7 }2 f- j - (defun set_action_tiles ()
* n$ ?/ K6 @# n. I - (action_tile "cancel" "(dismiss_dialog 0)")7 |- w. E. _( F' ~0 w
- (action_tile "accept" "(dismiss_dialog 1)")
) z6 p$ ^( x B( m" | - (action_tile "help" "(help \"\" help_entry)")
5 E7 b7 e4 G. e8 x( y - (action_tile "b_color" "(getcolor)")
' |( p# W3 u, p. E5 Z* A - (action_tile "show_image" "(getcolor)")
5 [) ?. ^# k3 h0 I9 |3 p - (action_tile "b_name" "(setq elayer (getlayer))")' e( q/ j, |% V- ~
- (action_tile "b_line" "(setq eltype (getltype))")% z% _3 u. n/ D7 z! X8 S
- (action_tile "eb_thickness" "(getthickness $value)")
* ^2 m, O. `9 y+ {2 D2 o# P& b - (action_tile "eb_ltscale" "(getltscale $value)") v! k. D# x* Y
- S; d) L8 r% w y. A
- (action_tile "pick_1" "(dismiss_dialog 3)")
& c# w! |7 j2 U1 {+ R+ I - (action_tile "pick_2" "(dismiss_dialog 4)")
! y* j0 J/ _( Q1 ]! Z. ~ - (action_tile "pick_3" "(dismiss_dialog 5)")
0 M" g' X3 h$ K3 |. }; z - (action_tile "pick_4" "(dismiss_dialog 6)")
( v0 r: l: ~7 s- Q' m& {8 ~ - (action_tile "x1_pt" "(ver_x1 $value)")
' n. F& W. @% r4 m6 Q% G - (action_tile "y1_pt" "(ver_y1 $value)")
& ^4 L3 q. U' j, O) p; ~ - (action_tile "z1_pt" "(ver_z1 $value)")
5 h- C- ~% v2 @7 x - (action_tile "x2_pt" "(ver_x2 $value)")
2 F/ ?* i6 S# `0 H5 ~ - (action_tile "y2_pt" "(ver_y2 $value)")) G: T8 j6 J7 q1 U9 e4 r
- (action_tile "z2_pt" "(ver_z2 $value)")2 Z& n# s7 k8 Q8 r, F8 t z
- (action_tile "x3_pt" "(ver_x3 $value)"). E. P& Q$ S$ ^( B
- (action_tile "y3_pt" "(ver_y3 $value)")
& P$ q, ~, c7 H: X - (action_tile "z3_pt" "(ver_z3 $value)")) v) S7 C/ k: m7 m8 |" \
- (action_tile "x4_pt" "(ver_x4 $value)")! R4 y; s. I5 R( B$ H
- (action_tile "y4_pt" "(ver_y4 $value)")9 z8 A; k; n* D; O1 n/ p
- (action_tile "z4_pt" "(ver_4 $value)")
5 r; ?' ?$ F) F" [: ] - & }& t/ i4 e, n6 V* ?) g
- ;; Action tiles for Xline & Ray
! s9 }. L* A9 X2 b - (action_tile "xline_x1" "(ver_xline_x1 $value)")
- B) J( Q4 t/ x3 n4 L7 [9 M - (action_tile "xline_y1" "(ver_xline_y1 $value)")1 i# }; O2 U7 K- P! `$ b( d4 f' W
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
, T K* k, X6 c" N1 S& Z - (action_tile "xline_x2" "(ver_xline_x2 $value)")% T5 Q. Z: d+ ~3 R. l4 w2 }2 B" j
- (action_tile "xline_y2" "(ver_xline_y2 $value)")' D! M* M) W& L# q6 B
- (action_tile "xline_z2" "(ver_xline_z2 $value)"): v/ h2 o9 |3 {3 K% D V
- 9 Z. d) n. |5 Y& I
- (action_tile "edge_1" "(setq edge1 $value)"): d G! C5 J' k0 u/ T5 ?2 D; ~
- (action_tile "edge_2" "(setq edge2 $value)")
" T: E9 s: x3 D* a+ t - (action_tile "edge_3" "(setq edge3 $value)")
7 a$ m) i6 b1 r: ^9 D - (action_tile "edge_4" "(setq edge4 $value)")
; v/ j, S0 f7 A. \& k - 2 i `8 |6 T+ ]/ A) x3 |! {
- (action_tile "radius" "(ver_rad $value)")1 h) R1 X _% P0 h$ y6 e9 W
- (action_tile "st_ang" "(ver_ang1 $value)")
4 H, ` v$ q4 o) J3 | - (action_tile "end_ang" "(ver_ang2 $value)")
5 {7 _4 h+ g/ G7 d8 X# Y - (action_tile "end_eang" "(ver_eang $value)")" `6 c* K0 J) e6 Z. V
- (action_tile "minrad" "(ver_minrad $value)")8 s* t/ o) x' ]- e+ J
- (action_tile "majrad" "(ver_majrad $value)"); N% `8 o# n5 \+ s0 z
' E8 I4 w6 v2 |- `$ e% p* {- (action_tile "xscale" "(ver_xscl $value)")
% m2 [6 k9 b" s* B - (action_tile "yscale" "(ver_yscl $value)")
8 X( T8 |5 Z8 q! V3 d* R, t - (action_tile "zscale" "(ver_zscl $value)")
* H, |+ m1 D( T5 _4 f - (action_tile "rot" "(ver_rot $value)")# T; Z# d5 b% ?* h; J
- (action_tile "columns" "(ver_col $value)")9 ?5 S( k) q- U7 h4 ~
- (action_tile "rows" "(ver_row $value)")
* S* U( R3 W, Z; K; g; n4 ^' V* E0 w w - (action_tile "col_sp" "(ver_colsp $value)")0 x, M$ l% }% z7 ]0 b5 x
- (action_tile "row_sp" "(ver_rowsp $value)")
& A- B! O% g$ V% d# v% ]1 R3 g
: V! @$ R: g; ]& B: Y- (action_tile "hght" "(ver_hght $value)")- w. q6 B' v; s6 ^5 \! Z4 Y
- (action_tile "wid" "(ver_wid $value)")
' c8 S) ^2 n- H - (action_tile "obl" "(ver_obl $value)")% [! K( g0 I- x3 M' n9 u7 k) E/ k
- (action_tile "style" "(style_act $value)")" \/ n8 ~$ c& b- Y; L& P$ w1 f
) Y4 L& c$ L. U" N, ~: E- (action_tile "t_string" "(ddgettext)")) t( R( F$ e4 _: a$ w# V
- (action_tile "tag" "(ver_tag)")# q+ s+ X% z6 u) B- j7 P
- (action_tile "prompt" "(ddgetprompt)")
) l( F, F7 g6 X0 ?2 s# v N9 S - (action_tile "bkwd" "(setq bkwd (atoi $value))")
) m8 V. }' Y- ]& `7 N - (action_tile "upsd" "(setq upsd (atoi $value))")
) `( F9 P V/ i' D+ v - (action_tile "inv" "(setq inv (atoi $value))")
1 `" x8 @. C! w: @6 ~) t - (action_tile "con" "(setq con (atoi $value))")
$ t* r; f3 t1 C4 f - (action_tile "ver" "(setq vfy (atoi $value))")7 _2 S6 Z* K; _* B
- (action_tile "pre" "(setq pre (atoi $value))")
; F. {" y8 k/ _ - (action_tile "popup_just" "(jlist_act $value)")$ x( u, a t0 b. t2 o
* L5 ^) ?9 c: a9 d$ C- (action_tile "closed" "(setq closed $value)")
N' s% L- w8 |* C - (action_tile "ltgen" "(setq ltgen $value)")
/ O: t& Q$ J5 S$ @ - (action_tile "closedm" "(setq closedm $value)")* W7 Q- r( ^9 o7 K
- (action_tile "closedn" "(setq closedn $value)")' T4 Y& F( s- O' V* G% i
- (action_tile "next_v" "(next_vertex)")' h3 j: G' ?2 V" v$ ? x/ n
- (action_tile "xcliponoff" "(setq xcliponoff $value)")$ K6 N" Q; M9 U1 M+ J3 B
- d7 G# u! p: E, R- (action_tile "next_cntlpt" "(next_cntl_pt)")
- c! Z$ G b H1 ^& i- @3 q# v - (action_tile "next_datapt" "(next_data_pt)")- d) b8 l# U. H
- & s% G3 E" |! ?
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")0 s) x9 W* h. M% ?" L v
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
$ z7 I0 ?$ T2 D' S2 h, U+ s/ a2 \ - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")8 D( v8 X& `3 L$ J: e$ s
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")6 b: ?0 ]# v' u1 A
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
6 q, m. f" x, h8 F) z - 1 t( N8 P: J5 D7 W
- (action_tile "u" "(ver_u $value)")
8 F4 Z& g! c/ g, y: X - (action_tile "v" "(ver_v $value)")5 a* S% _' ]5 B+ ?. i
- )
# u+ ?+ K3 H5 y
; L! u- `0 `. z- (defun ddgettext()
9 S) S* @" J8 G- D - (setq text (get_tile "t_string"))
+ V5 g. X# s* N& l - ); C0 Z+ I5 M6 ~- v. ^, o1 M
, S9 j2 R' ]5 u+ ^4 q) }7 p( \8 c* o3 ^) T- (defun ddgetprompt()
% P! V% _4 B/ n" { - (setq atprompt (get_tile "prompt"))( X4 ^$ m$ M2 @
- )0 o# n) |9 @8 k" m" L+ J/ s
g2 d* ^9 }' P4 O4 N- B- ;; As OW doesn't support disabling of individual radio buttons within5 y) i/ e7 l/ j0 v7 d* b
- ;; clusters, a check must be performed as to the legitimacy of the
2 Q, u# k* r& b( v1 Q3 [ - ;; button pushed and reset if necessary.
' K3 M5 h# ^+ e$ k3 M9 N - (defun radio_gaga (pushed)
- D( y4 i! t# U$ I. t0 U9 j - (cond
4 E, T0 H- H" A( z0 F3 x - ((and (= pltype "3D polyline")
/ @0 D& n Z ] - (or (= pushed "fit")
! ^9 J& t6 h O$ Z - (= pushed "bezier")
2 ~( ]! m& F9 `% } w6 Z" C1 v- T - )
: O$ ?$ I( S+ @# g; J - ), m; e0 c' d! g7 t7 e7 O
- (set_tile "none" "1")4 Y, ]! F7 q$ W$ ?4 [; O% x" [
- nil; x- r* q0 w8 X( O8 g
- ): ^! `# I$ y; f. \) X) q
- ((and (= pltype "3D mesh")
. p% R, ^4 p9 @! } - (= "fit" pushed)
( e% J% ]$ i& S, H' X; d+ ~ - )
: R( G: V: s) V5 \1 [ - (set_tile "none" "1")
0 k7 x- v( {/ a8 \2 ~; B7 N - nil
4 C* L# T [$ K- x9 m - )" e* S: \# `; Z5 k" i
- ((= pltype "Polyface mesh")- ?, O. h1 }4 ?' K3 C% m1 V X
- (set_tile "none" "1")4 D! C/ U7 S1 b' {3 p8 o' g
- nil
2 w3 c( q- _. n$ f( {: U# a - )
, p3 a6 d3 _) X# w - ((and (= pltype "2D polyline")
1 f* R0 H; o4 K) F/ U: {& [% z1 ] - (= "bezier" pushed)
* D2 J0 a1 `, l7 N+ M - )
* ^* U6 p8 w( D& o7 ]% K$ ] - (set_tile "none" "1")
) _& u* |( ~* e, A$ z- H - nil6 D# m+ C2 W* ?/ E
- )7 f8 f; B7 e0 u7 D" U9 `+ k9 r
- (T)3 B* K, K w2 {. d) [) M8 Q
- )# K" u( o* \+ S, u; D6 i
- )
3 k. {3 c7 U2 B2 H - ;;
! r6 g! Q: y: O* k - (defun set_uv (type_n)7 R6 X5 X; n- `
- (setq spltype type_n)
4 b# z4 a- ^6 s7 m V! k/ ^+ b8 v - (if (= pltype "3D mesh")0 {4 u6 n) W( }0 a2 [6 r! f9 P
- (if (= spltype 0)$ w4 U* J% f) t5 F
- (progn2 o4 p3 t: M" ]( k6 W
- (set_tile "u" (itoa (setq u 0)))
. m# `9 v* L; P+ q _ A - (set_tile "v" (itoa (setq v 0)))
+ Z/ {$ J, @# r+ c, c - )
1 Y* W! F r% y" V: l - (progn. X3 ` n" |4 a/ @
- (if (= u 0)# g+ Y: k9 Q* v" k9 w7 }3 @, m
- (set_tile "u" (itoa (setq u (getvar "surfu"))))
5 v0 v- }1 T+ y0 T: W8 h - ). P: j/ W$ B! e3 R' R: y
- (if (= v 0)
: F: f: W0 W5 d - (set_tile "v" (itoa (setq v (getvar "surfv"))))
) v& Q' L+ F7 ~0 F" s& o - )) [ ?+ Q/ e- F7 H
- )
2 o$ ^ o, g4 ]) v3 v& b: y! z6 S3 a - )/ T- b8 L' z3 O! l8 d$ K+ t3 u
- ). K' d1 w- W) z. Q8 M# a
- ) Z4 ]9 m2 M6 _2 I) ~
- 1 L5 w& T7 A$ O: _: i7 K6 s7 y
- ( k, D# R5 b- `, m
- ;;0 n$ F x4 d" a) n
- ;; Verification functions
6 I( h" Q4 v4 w; ` L$ H+ y - ;;% |- H" {. [, K' u: k, K( v$ t" ?
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or
t, ^' T" Z# i: D# M& P6 L, ^ - ;; distance value, the tile name, and the previous value as arguments.# W( Y& y" D% H% H' R
- ;; If the distance is valid, it returns the distance and resets the tile.
( F7 ?1 t4 K1 M, h0 X - ;; Otherwise, it returns the previous value, sets the error tile and keeps6 E8 n8 h6 S- c! x* u3 a
- ;; focus on the tile. Shifting focus to the tile with invalid value can; ]6 ]8 ?7 X! i& y& z. ^6 u- t
- ;; trigger a callback from another tile whose value is valid. In order
$ v( i3 k! g+ I& Z; m, L - ;; to keep the error message from being cleared by this secondary callback,
% M7 @" A# i4 r1 d2 k - ;; the variable errchk is set and checked. The last-tile variable is set
! ]) \- `& r6 n" R; a7 R* c: n! R - ;; and checked to ensure the error message is properly cleared when the7 [& `/ {9 G' N+ U* M5 h1 \ ]
- ;; user corrects the value and hits return.
1 t: N, b: c8 m9 w7 h - ;;8 z( N9 \. j' Y" X0 Z; N" h! X
- (defun verify_d (tile value old-value / coord valid errmsg)
8 _7 k8 P1 u, f' F% E - (setq valid nil errmsg "Invalid input value.")
' T; S+ R9 a( L4 g6 E) k - (if (setq coord (distof value)); O, X+ s( ~, ]2 v/ C
- (progn
/ J8 |1 `; D/ \ ^ - (cond
- p4 J9 A" w) \" d3 E5 U( r - ((or (= tile "radius")0 x! e- S/ C" \) c/ D6 Y) B
- (= tile "hght")2 N$ U8 ^6 R v8 L* |" [
- (= tile "wid")/ K# t% ?% g. H$ N; p
- (= tile "majrad")
! S" j; O) ^, ~- f - (= tile "minrad")" ]- _4 N9 I; C( J
- (= tile "eb_ltscale")
1 d. d; u( F0 d, ^/ a - )) J+ ^7 i8 p E" s0 l
- (if (> coord 0)) @3 e" ^$ G3 [
- (setq valid T)0 D& ^. A3 Z0 _4 {8 m
- (setq errmsg "Value must be positive and nonzero.")
9 Z2 I z, Z! B4 I2 K: r - )
8 d9 N( s1 ^7 c% p - ). t {4 z+ u L- [ E; U3 I
- ((or (= tile "xscale")
/ @$ ~' a% ~ g/ }) n - (= tile "yscale") S! s8 D5 T3 S) W' z, b
- (= tile "zscale")
: H4 s* e3 j) d) O - )8 r/ T2 X$ e/ i& J
- (if (/= coord 0)
# B0 e0 t3 a: e; h" X2 Y0 E, v' [# R - (setq valid T)
3 B; K4 G' d0 f8 Q l6 y" i - (setq errmsg "Value must be nonzero.")- `. \2 v% v0 z2 t6 a" v
- )
( x( k4 F- P% u# P - )1 B" `; O6 V5 w8 x: t
- (T (setq valid T))
6 P3 f8 M. |$ ]' u R - )0 b- {# D, }$ c& f x' w, A
- )
' B' o4 `3 P6 f - (setq valid nil)
- d: |0 K! [! g; B. H" a - )4 a- H- a% t7 ~- \0 |
- (if valid4 G+ O4 d5 {! r
- (progn
+ q* G/ L5 R/ h) G% d - (if (or (= errchk 0) (= tile last-tile))! V1 `* s5 ?; O' r3 k% l
- (set_tile "error" "")
; d$ d, Z8 W# x" }9 K - ), h5 s* o- d {8 B% K7 i
- (set_tile tile (ai_rtos coord))
5 `7 I/ h0 S& B& c, U% o9 n' b - (setq errchk 0)
4 w/ B; \* r% N5 e) y - (setq last-tile tile). @* s2 ?2 W' b- A/ F$ }
- coord1 d# s: O# ]) x% h" c8 F7 M
- )) c! t# h; _& Y- g
- (progn# g R+ K* y8 u, O$ @* v
- (mode_tile tile 2) ; Move focus to offending field% M" G9 g! ?, p) a' P
- (mode_tile tile 3) ; Select offending text4 L; ^2 [, E( m
- (set_tile "error" errmsg)
# W3 n$ m$ W5 K; ~- l4 F- ` - (setq errchk 1)
; A6 |5 `+ G+ r* x& t7 t - (setq last-tile tile), C& m. S0 z' _4 h& Y
- old-value, P) f1 U! v" Q: e6 u: Y4 t B
- )
0 C3 A: K7 f$ N) h: R - )
: ~; F( w3 u2 ^8 ?; k1 E - )
: {2 E( a% B8 l9 D! s - ;; Function for Xline coord edit box checking.
+ ]/ P& o% c W - (defun verify_xline (tile value old-value / coord valid errmsg), t* n% g7 G0 ^4 ~* `
- (setq valid nil errmsg "Invalid input value.")
; G. ^' [4 S+ u5 j& {9 m { - (if (setq coord (distof value))
; s9 m) {: Q9 y) [1 x - (setq valid T)1 Q2 h$ Z2 j$ {- i$ O9 ~& l' z9 c
- (setq valid nil)
( n6 _% I; R4 u( T# u' e. @4 M - )
, S9 j: f* f" U, { - (if (and coord1 W/ `; w8 f |% T6 M0 C
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )" Y& e+ \1 T9 s
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
* s5 A% J" ~4 G# G* g! a - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
$ Y: [/ K. Z% m- r; l. g - )
$ Z0 }* ^* @. ]% s G/ b - )
' m. u2 I' ?5 G+ g( I$ V - (progn* Z W; ~% z ?5 a2 X3 e0 U1 X
- (setq errmsg+ V- m) Z% X* W) o( _+ q2 B. l4 n) X
- "The Root point and the Second point cannot be equal.")& a, D' [- j+ Z: ]0 u7 m5 t+ ^
- (setq valid nil)
, t* g2 O- m6 C& G2 X& l& Q) q8 d1 K - )
7 |7 E4 T1 F/ i2 }) ?% O - )
3 K2 v1 N( K9 ~3 q, e. Z) u- ^( v - (if valid) o& B% C1 ?$ e E
- (progn
. q9 D) T9 e7 |4 J. e - (if (or (= errchk 0) (= tile last-tile))0 Q: o+ i) P; v2 S+ a
- (set_tile "error" ""). m& w% `6 }: }8 b% [1 I l' a: q
- )
4 G1 D1 C+ Q% { v; Y - (set_tile tile (ai_rtos coord))
, `6 z+ q- i$ d8 Z$ i5 F) h - (setq errchk 0)
3 i9 _. }* J, F - (setq last-tile tile)
1 u7 t' [% |9 k6 V/ T3 ]8 F - coord2 V* o" f! e/ Y) w8 T. [: u5 v; ?
- )
, _& o1 O1 O& M& S6 r - (progn5 |; @% d3 D* h; d* y" B: j6 B
- (mode_tile tile 2) ; Move focus to offending field7 k6 x; D9 ]- q. A4 F. ]- N( U) [
- (mode_tile tile 3) ; Select offending text, p% s. ]4 o+ ^2 |
- (set_tile "error" errmsg)8 h+ v/ [8 N( b3 U
- (setq errchk 1)3 b) j h K5 c+ j- I. F
- (setq last-tile tile)
% U( ^# D {$ ~4 I# f- d$ S1 ]0 r - old-value
- N8 T* T) E. \& }% c9 D2 x - )
2 V' a5 _1 g0 M# p2 e- [ - )
/ P4 b4 c/ P/ U+ V# b% ? - )
+ e" B& H5 P! I* [
) A8 q0 ~8 T' Q. _7 c3 s9 o, Z0 s7 c- ;;% d* Z) x( D' l; h& N1 T
- ;; Verify angle function. This takes an angle and a tile name as arguments.
6 t1 v" R: L7 a& \ - ;; If the angle is valid, it returns the angle and resets the tile.
6 z1 r5 F1 i. R7 Z; T - ;; Otherwise, it sets the error tile and keeps focus on the tile.; H2 \# u" U8 c8 W
- ;;
) q$ k* ^! h. P - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
: A2 f$ C+ u R: ]9 W - (setq valid nil; ]" F8 @4 F( \! ]- N
- errmsg "Illegal input value."9 z: P0 u2 U, L# u$ ] b
- )2 E5 C# I. z2 \ T9 \, T4 G
- (if (setq ang (angtof value))' i% ^$ N# ~. G6 d! R$ e: W; R$ A
- (cond
' Z/ R. J% o( A2 d+ a, Y - ((= tile "obl") ; Restrict obliquing angle
6 ]% }8 _' m5 O( y2 o - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
( o& C; @) p$ x) _: Z; k - (if (or (<= ang oblqmax)
: A+ T. U1 w) ~# H - (>= ang (- (* 2.0 PI) oblqmax))
l6 e. s& U# s+ v - )
5 H R4 h/ H$ v; W# j; v - (setq valid T)
5 x7 ?& Q6 g1 c1 z# n/ A! [1 M - (setq errmsg
- D* C8 z, Y3 a7 ^" E4 c - "Value must be between -85 and +85 degrees.")6 A) e& K) J( s. ?" u' E6 J* ^! N
- )( r' z2 |& K3 f
- )
8 b& }8 d2 D' b$ r( R8 o5 m) L: S - (T (setq valid T)) ; Other angles not restricted& ]; H/ a2 m/ N0 s
- )8 t. _/ o, l6 U' x8 V
- (setq valid nil) ; Invalid angle input
+ G% @; [' \$ a1 ] - )
, P6 v; m3 x% }% M, w8 z- X - (if valid
. |3 t, a4 q% @& Z% q- a g - (progn) K; P2 C6 w- x9 A3 K
- (if (or (= errchk 0) (= tile last-tile))( d2 u! A- {% w E
- (set_tile "error" "")6 h( R' f2 ^, y/ o) v! ?. `+ q
- )
0 b7 {& t, q' A p - (set_tile tile (ai_angtos ang))
1 X N8 {6 Q; c g - (setq errchk 0)
0 k4 S1 S, @. {; ? - (setq last-tile tile)
8 @' a/ ^8 M# T) ^6 X# `" i, Y2 b - ang
- g5 k+ u: |$ u M) Z - ), H: p( a0 z7 K
- (progn" w. K+ u% N* R; T3 Q4 _0 Q, y
- (mode_tile tile 2) ; Move focus to offending field- S. a0 e6 ?; _
- (mode_tile tile 3) ; Select offending text
+ e3 F9 |8 w7 e - (setq last-tile tile)% @' U1 E. q8 [
- (setq errchk 1)
& S3 b& q/ I( c1 V( k# v# R. a d - (set_tile "error" errmsg)
% r6 G8 \/ w, F/ K - old-value
: U/ P! W5 h7 S0 y: u - )
9 L' y9 u d5 z- W+ [ - )
/ `; X: z# W/ f5 `4 i8 C- C9 ] - )
d, P: e4 x8 b: B' Y - ;;& I: l- k0 O! c0 p
- ;; Verify angle function. This takes an angle and a tile name as arguments.% @$ i9 E' n2 w# q9 |% I; Z
- ;; If the angle is valid, it returns the angle and resets the tile.
8 i: g# f( [) w1 ^8 P3 Z - ;; Otherwise, it sets the error tile and keeps focus on the tile.
0 S" p6 P# _3 l. O1 [3 r - ;; This function is specifically for the end angle of the ellipse object. If
- \: N! h# m' t* b; `7 I3 ] - ;; the end angle resolves to zero then we want to display it as 360.
+ P! Y' Y% |8 u& _2 k3 X. V% x/ f - ;;
# c+ @6 {9 r) g# {6 C. O - (defun verify_ae (tile value old-value / ang tempend)
% W7 M& B# z+ W( l6 V - (if (setq ang (angtof value))# h+ \& d; O$ o( V1 K* U8 _ B3 ]; y7 m
- (progn
6 V4 r% {' ^3 k; e% h2 f0 I7 \ - (if (or (= errchk 0) (= tile last-tile))
# D# ?% l7 D+ h& u4 P - (set_tile "error" "")
1 J3 S8 ~+ }4 A# k8 q9 A' Q - )0 q( F4 F2 e: r8 R
- (setq tempend (ai_angtos ang))" ^5 Z2 H7 J' X
- (if (= tempend "0")
. w( R6 R! h! g& ^. l _ - (set_tile tile "360")* G0 C! \$ q( L, P
- (set_tile tile tempend)
) K2 g% j' _1 `) @( ~* }- l2 H - )8 h, t4 k4 `+ w# D
- (setq errchk 0)
" }, J$ S/ o0 }# B4 k - (setq last-tile tile)
- E5 ~8 {9 }4 ?% O' L - ang
* l$ d S% S. }1 ~ f - )0 `% _4 {- J1 `1 d* j" X
- (progn
0 C @" p- l4 e - (mode_tile tile 2) ; Move focus to offending field+ j3 q1 \& V, u9 h
- (mode_tile tile 3) ; Select offending text
- v/ B5 }; e5 E, ?5 w* K% x - (setq last-tile tile)
. ]4 U! g- Y z8 Z - (setq errchk 1)
; l6 D- {# r2 `4 y - (set_tile "error" "Illegal input value.")
! V) J8 v1 _+ ^: y; E - old-value" A$ V9 `$ S4 J/ a
- )
# j/ Z: b* k0 V& @4 r - )& A2 y. Z9 r5 q
- )% F5 v7 R& c5 J' `5 f. o# Y% ]
- ;;! m7 m# ~. D1 j9 b! P8 i: ?
- ;; Verify integer function. This takes an integer and a tile name as
, |! M% P$ b( U% m1 u4 S; s - ;; arguments. If the integer is valid, it returns the integer and resets the
9 c2 @$ P4 p. {7 A1 S - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile. H) [% ]( y9 K2 J$ O, q2 U
- ;;6 ~5 l+ g+ H1 R+ b) k0 p
- (defun verify_i (tile value old-value / int valid errmsg) n" g" a; E0 m ?# }
- (setq valid nil)
" \; y4 W+ K" L" H( J. I7 Y! Y6 g - (setq errmsg "Value must be an integer.")! F. R7 V2 ]3 _
- (setq int (atoi value))
8 n! o) z/ `2 Y+ q7 x+ P' { - (if (setq intchk (distof value)); A2 Z, D) N: ?
- (cond0 |+ X9 m& {' o
- ((or (= tile "columns") (= tile "rows")): L0 O! \6 D/ V' U' L4 ?# e
- (if (and (= int intchk)% U: n% i3 c- ^8 c/ E9 k J
- (>= int 0)
& {7 U* h+ n& b8 p0 h1 c% G - (<= int 32767)
; W; r9 e# G0 o - )/ i& v; v' s3 X W
- (setq valid T)
! H" C2 ]" F+ X2 _" ~+ ~ - (setq errmsg "Value must be an integer between 0 and 32767.")% u( B3 w0 u, d* Z' L9 z! E
- )
# |" q+ c0 \0 m1 \ - )# y$ j0 `, h1 ^! \' j- T
- ((and (or (= tile "u") (= tile "v")))* b! O0 e" j1 D/ W& I& n+ a
- (if (and (= int intchk)3 c) l. J* m8 a; l
- (>= int 0). G& j7 [% J0 n+ ?" h+ S
- (< int 201)9 s4 a4 `) }/ s& ]% i/ Z
- )/ b& p% w' `' M; S, Z# }# g8 M- a2 q
- (setq valid T)
" f! J; H5 E4 I+ N3 R8 [$ { - (setq errmsg "Value must be an integer between 0 and 200.")
' c$ T- T/ W8 B( t8 F& c$ ~ - ), ~/ I+ e. ], G2 b, x- r( {; A/ R
- ) e. K7 h' W+ y/ e; S0 w3 N
- )
! e; J# J6 q3 d9 H J0 B+ U - )
9 ^/ m2 {- e" O- v - (if valid
8 V6 X5 g2 H: z( H4 u+ K2 U - (progn2 y7 S9 b3 F) B: q5 |, D: Z6 A
- (if (or (= errchk 0) (= tile last-tile))7 r) q5 U2 i1 E7 c( i4 Z0 A8 q
- (set_tile "error" "")
8 }+ Z8 m6 E* h4 @% a) g5 `; `# ? B - )
$ a b+ k+ {4 t* y/ J @ - (set_tile tile (itoa int))( \( [* C# V: I9 x) v: \$ q
- (setq errchk 0)0 ] Q% U' I$ T/ Y" \
- (setq last-tile tile)4 S0 x$ ~) }7 b% p1 p" {8 I
- int
/ I7 q: Y. b5 V. X0 ~& M a) [ - )
6 k3 y9 q( j: E - (progn
) w+ Y* J) m4 L8 S. C2 s - (mode_tile tile 2) ; Move focus to offending field
9 b n0 @; r! B& V$ R6 K/ R - (mode_tile tile 3) ; Select offending text9 m/ i# w- U7 C& I+ s0 p4 `
- (set_tile "error" errmsg) V; q9 k8 d. r0 K
- (setq errchk 1)
" S& Q$ `3 A* A - (setq last-tile tile)
; G7 \# j1 ?$ t, M/ _ - old-value4 L0 X: D/ C1 A3 Z+ h
- )0 J2 H. V: S+ A6 X! n0 Q; x
- )! n9 J! o6 U8 t c/ I! q: R
- )& ] _: e% E* {. T+ u5 l
- ;;( E% A0 V1 X0 Z2 q' b
- ;; Functions that verify tile values for integers
7 Z+ A) R, k0 q3 q2 B' U: r - ;;* b: \8 a5 n5 o" R$ s2 t
- (defun ver_col (value)
& a8 r+ p4 D# w( k- P _ - (setq columns (verify_i "columns" value columns))
: K2 e2 ]0 D9 ~ W( @ - )1 {0 a/ _/ ?- i* o( b4 U
- (defun ver_row (value) I! u9 k) J; D$ r* `
- (setq rows (verify_i "rows" value rows))
7 Z' r. z c4 M( v/ A, @1 Z2 g4 a - )4 T) O/ x" \7 n' I6 P9 u# Y1 A
- (defun ver_u (value)
. z5 |" m# N& J+ W - (setq u (verify_i "u" value u))
& j5 E$ ~, T1 e) u - )2 V U, |4 C2 k2 B( x5 R/ N7 M
- (defun ver_v (value)
3 z; _5 ]1 A4 E' R( w - (setq v (verify_i "v" value v))4 ~4 U# }7 w& E+ o& \9 q+ F# Q: @' ?
- )4 R$ o& k: O, w$ |( y3 V; C8 [
- ;;+ o0 _ S O3 g! Z7 ^$ D
- ;; Functions that verify tile values for reals
* b: x9 Q: U0 }4 ^+ X% { - ;;/ k: X% `/ Q6 T9 x3 U- W
- (defun ver_x1 (value)
3 A& ^4 P7 A% V - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
" j( E' b3 R+ x0 T6 c2 U; p3 H! `# r5 A - )( `- ^' Q' O- m/ N) i/ @, b% a9 I( R
- (defun ver_y1 (value)7 h6 m, i3 C0 V
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))6 _8 Y9 L* a6 G% O2 J* [; W# j4 |1 t
- )" V$ Z( \6 P3 i/ C; T
- (defun ver_z1 (value)9 H6 _9 |4 ~6 z7 U A
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))3 d% t- {. N. s
- )
4 {" I! I5 q, C! w8 }8 P - (defun ver_x2 (value)3 n$ ]4 R3 O0 W0 h
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
1 P! \. Y( y3 U; J - )
$ w2 a0 o2 M: r" t4 E - (defun ver_y2 (value)
5 y& G9 i2 O1 I& Z+ u6 ]. M1 c, { - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))- f6 Y$ o1 Q9 i& E4 H; y" r z
- )$ _ t, F' h! B9 O; Z$ }
- (defun ver_z2 (value). O" E; X! u4 i7 G5 Q2 R& f8 c
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
/ c. W3 ?& Z0 u) E - )2 W& Q: G, R+ D
- (defun ver_x3 (value)
; Q7 T* v1 l: ^2 k* n0 N - (setq x3 (verify_d "x3_pt" value x3))
" a8 r" s: w; Q( A5 x" T# n - )8 \3 ?+ v0 o$ R/ p
- (defun ver_y3 (value)! [! s0 ^3 R* l$ g- }3 d
- (setq y3 (verify_d "y3_pt" value y3))9 @& R0 ]$ W6 {. w/ M4 j
- ); L5 j- Q- m/ {' K
- (defun ver_z3 (value)
) N0 k8 l k* ?* z$ @7 H- C - (setq z3 (verify_d "z3_pt" value z3))
7 [) D, [" g) R- ~ - )
* M( k! x) `0 `' k - (defun ver_x4 (value)' g" e' N- I8 [6 s7 q4 z: t
- (setq x4 (verify_d "x4_pt" value x4))
* n" L& k% y6 D7 {& e - )0 v1 p- m( d3 ?2 N, m+ H
- (defun ver_y4 (value)
# D: ] j4 v5 O# K/ E; K - (setq y4 (verify_d "y4_pt" value y4))
1 }7 x `9 u# w" e - )
( V2 ^" [) m- ~; i# G+ \6 |8 u' y6 [ - (defun ver_4 (value)
& d4 T3 X0 O, S. z% K. ?4 r3 Q, u - (setq z4 (verify_d "z4_pt" value z4))- i* C$ z7 r# n# w4 C3 V7 v- |
- )2 Z+ z- Q) j5 O& a; Z5 u* w9 R$ ?
- (defun ver_xscl (value)% ~& b! w5 s9 s1 Z5 C
- (setq xscale (verify_d "xscale" value xscale))! Z( g g9 {: G* L
- )
6 Q0 A2 T3 N% f2 L- n8 b - (defun ver_yscl (value)3 Y* S. F% o0 y& B' E- p% o: {- z
- (setq yscale (verify_d "yscale" value yscale))$ _$ ?8 d0 h" k- P7 T
- )
. P/ P" s$ a' I& A# m+ _, h - (defun ver_zscl (value)( t8 y2 |" k$ d5 E3 w
- (setq zscale (verify_d "zscale" value zscale))
( }2 i) H/ ?! D - )
' G4 I( }$ J, P - (defun ver_colsp (value)) k# [: t7 W' T
- (setq col-sp (verify_d "col_sp" value col-sp))
; v8 P$ w# n1 c9 h - )4 w- m }0 l" V: ^, `0 l2 s8 X) J
- (defun ver_rowsp (value), g; m3 }& t) o: i5 _5 U; @: z
- (setq row-sp (verify_d "row_sp" value row-sp))
: J/ r7 F! a1 @) d6 ` - )1 J0 U. S% e& g5 Z
- (defun xclip (); E* P7 R; z* J0 S4 d; x3 T' K
- (setq xclipmode t)5 m+ m: i) A$ [; U) r' ?& w
- (if (= xcliponoff "1")+ }0 |+ o' i* ^. l5 i$ q
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")9 O& \9 j3 [, G2 t
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
* C7 j; g& @( a - )" ^0 Z- I# w1 e; q! n. H
- ); D! W- J: x" K& L1 s8 S6 e2 Q Y# {
- (defun ver_rad (value)' w/ a& K j9 \" B
- (if (setq radius (verify_d "radius" value radius))! I+ L* b/ _; d
- (calc); x p. N4 z5 {' N
- )
- |- B+ I8 u+ G8 e - )
* ?* K) R; U! v$ o( T3 B$ F# _( D. q - (defun ver_majrad (value)
9 k4 C" n* v7 \0 p% c9 W# j - (if (setq majrad (verify_d "majrad" value majrad))
; Y4 c# z$ A! _! m# X, c1 Q+ x - (ell_calc_newval "majrad"). ?( r4 o) a+ ^/ w7 M4 x# k
- )1 k1 M/ e7 f! T1 z" j" P6 a1 _
- )2 I6 Q p( T. A' C- I
- (defun ver_minrad (value)
! z6 R, ~, H, l: {3 x3 J- O P4 B8 e8 | - (if (setq minrad (verify_d "minrad" value minrad)) [( a1 R$ N$ z
- (ell_calc_newval "minrad")2 j# Q# F8 Z w' m4 Z" P
- )$ E0 V8 L0 o% P+ H
- )
5 |& z1 `; R f5 P - (defun ver_hght (value): [, O2 i1 Z2 ~4 u7 U
- (setq hght (verify_d "hght" value hght))
8 `( e6 S! [+ s# h- z$ k/ \; @ - )
( X2 f) y6 Z* [ - (defun ver_wid (value)( ? y6 [& I1 G' ^" B
- (setq wid (verify_d "wid" value wid))
( N$ [/ B* L1 R1 o% _: P. M" } - ): e2 U3 O. Z8 r4 X+ V6 P; W
- (defun ver_xline_x1 (value / temp)
+ D% q2 v" U- i, e - (setq temp xline_x1)
/ [$ t3 E& Q! K6 H - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))/ I' U: Y7 T) c: F: J X
- (if (/= temp xline_x1). r: [8 g6 T3 w% u" X: h$ G
- (progn (modify_xline 0) (set_tile_dirv) )5 j( p) X; O5 t" W; Y3 E: ^
- )# w8 p5 |9 _% _9 w0 [
- )
/ {5 j! T' X, a/ d/ U - (defun ver_xline_y1 (value / temp)
; |7 L0 w2 a! B& m! g& `; N - (setq temp xline_y1)
4 \" \* Z' ^" X/ h+ Z% i' M8 u - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))+ t" ?( I; [# R( y# A
- (if (/= temp xline_y1)" g# S! C7 A$ H" b0 |$ T
- (progn (modify_xline 0) (set_tile_dirv) )
# v. z3 P7 m4 [/ x - ); p. ] Y0 ^! q2 j! N
- )
( Z" g9 s7 Q5 R2 c8 E - (defun ver_xline_z1 (value / temp)/ c+ ?+ P3 y( {' b
- (setq temp xline_z1)
" O- Z" [* ?* q# a$ @! A. x8 C+ w - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))$ i" g* s; H# O% I; ^. g w
- (if (/= temp xline_z1)
~; F, O2 N- i# u" ^7 i - (progn (modify_xline 0) (set_tile_dirv) ): ~: s; W9 K, H$ [
- )
, z# X' o$ H$ S, r# j# i - )2 {' d# U( _+ l( q5 \, `! ^
- (defun ver_xline_x2 (value / temp)
9 T2 ?" w5 {' V2 x - (setq temp xline_x2). y4 |3 c0 ^9 [8 `, y
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))9 q/ q4 }1 o4 ]) h- | b% X: b
- (if (/= temp xline_x2)& G! @* J- h! }) \- N% c
- (progn (modify_xline 0) (set_tile_dirv))
# [; m* j c/ q6 e) S1 y - )/ W; J; m* d6 X& j2 b) Y
- )" \+ |2 \/ @$ F# `# z" q4 `8 A
- (defun ver_xline_y2 (value / temp)) p' U7 g) o j7 f! X& R
- (setq temp xline_y2)# L ]: s, |1 [8 p8 N5 [% K
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))/ s9 m2 ?$ _( @8 H! d8 q
- (if (/= temp xline_y2)
7 ?5 p* K0 g2 y8 o; b1 S - (progn (modify_xline 0) (set_tile_dirv) )
3 k" V# s$ i9 b' Q8 e) t9 T - )
/ Y. q: l- p5 `' O - )' U$ O {+ ^3 a8 H, F4 H1 Y) m
- (defun ver_xline_z2 (value / temp)5 _/ L+ D; h" ~- C
- (setq temp xline_z2). @6 z2 V$ R8 o9 ^% X
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
/ C; R3 E! D6 [; N6 x$ H - (if (/= temp xline_z2)
' c5 l& n/ E8 v/ K/ Z4 P, l# ~ R - (progn (modify_xline 0) (set_tile_dirv) )
/ B9 F$ E2 N: w - )
5 v' T& W1 m2 J" e" N: c - )
- ?' b- O9 m* @5 ` - ;;
/ E5 Z4 T9 @* b; o# X$ W3 W& w) c - ;; Functions that verify tile values for angles; e/ C& l) w0 l- r# I: ^
- ;;
* U8 R# a) \8 u# j0 {1 M+ m - (defun ver_ang1 (value). T( v$ n: m- {" [) U# n
- (if (setq st_ang (verify_a "st_ang" value st_ang))
% O$ ]% ~# J4 m& }( k% Z - (calc)! w8 X/ N; L9 _" t/ [
- )
, Y; s% U$ M# }+ V* y6 u6 w7 h - )
! w9 Y: M: ^9 m% r - (defun ver_ang2 (value)
' K! u. J) e& I" E- j# g; L - (if (setq end_ang (verify_a "end_ang" value end_ang))
) |4 J" D5 x0 |! c2 l9 m" _# ` - (calc)
! _/ f0 i6 ?6 K& _ - )5 Z; S1 `2 k# m/ k
- )
) b. o) T H' u' t& y4 V( O - ;;
8 D- Z1 l+ |1 M" C - ;; Verify tile value for ellipse end angle. Handled slightly
5 M1 s5 d3 W4 Q7 }6 Q; l - ;; differently than the other angles.
( `( O! k% p7 j5 D' l5 n - ;;$ n! I0 ?& k) E- J1 j' w& l
- (defun ver_eang (value)
: |! }& Z7 z C/ X6 A - (setq end_eang (verify_ae "end_eang" value end_eang))5 g9 ^* @* s- g6 V/ b
- ): K. G2 h1 Q$ Y4 s! {
- (defun ver_rot (value)
0 Z$ C9 Q8 N2 m* B( ] - (setq rot (verify_a "rot" value rot))
2 V- W5 I0 F5 O/ O H - )) b5 Z8 U, z/ s. H
- (defun ver_obl (value)) u4 |5 Y* }' \! `; s
- (setq obl (verify_a "obl" value obl))" q5 K. p4 c+ }' H/ u/ Y/ j( |
- ); D; o# `: ?- _0 n: Y8 J6 \
- ;;+ Y) _+ c# B0 n! m
- ;; Function that verifies attribute tag field for null string,% X* O+ A2 X5 o, P0 S3 X9 i
- ;; or a string that contains one or more spaces. Tile value
# a0 A" R/ ]2 r5 S5 e - ;; is also converted to upper-case as well.. S: I1 V$ O! w7 ~. a# n
- ;;1 l- n d8 e& N% g% B
- ;;/ q% j* n" y4 i6 g( i/ J
- (defun ver_tag ( / tval)$ h5 u: \7 y) T: ]$ M! X- {7 a
- (setq tagval (get_tile "tag"))
7 [* F) Z" M3 Y( ?9 M& }& G$ y - (set_tile "error" "")
8 ?! _% V7 t# @2 A- T - (cond
2 n, Q8 P, h; z$ I4 k - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))4 o- v* a9 e. f/ B C$ h! g1 B A
- (wcmatch tval "* *"))
( I o7 N- Y/ ]( R) P, w& X; V - (set_tile "error" "Invalid attribute tag.")' X1 a( }: k/ j
- (mode_tile "tag" 2)
, e8 e. ]9 [" F* R7 M( y - (mode_tile "tag" 3))& C3 i. F0 N" j, _) U
- (t (set_tile "error" "")
1 H. z. ?$ x' [9 c9 l: @: J - (set_tile "tag" tval)! a r/ ]0 \: I5 z/ e
- (setq attag tval)))( d4 n, @; ]% E- T: [1 ]
- ). j; f5 o/ ~( k& C% y5 Y
- ;;: {2 o7 D) m1 W5 V0 } B
- ;; Calculation functions
! A1 F4 U9 z: b! u4 g# j4 f/ P - ;;
7 k: A4 ~4 @8 l# m5 c' h - (defun calc ()
, P7 X* D* {1 b) X$ [7 P0 p6 ? - (if (= etype "LINE") (line_calc))
$ U) f4 J4 U) i - (if (= etype "ARC") (arc_calc)): v& e8 R# u9 |9 E: M
- (if (= etype "CIRCLE") (cir_calc))
7 Y! J. E" n6 K) a, l - )
! t* y8 I/ T2 ?1 B+ p( V - ;;
6 _0 Y, b( o7 I% S# a5 H - ;; Calculation functions for lines, arcs, and circles! J$ |4 q* T4 H. T) E/ {! B
- ;; {( V. X& F. |
- (defun line_calc ()
/ u4 w. E @& p4 m" N* a8 ]' } - (setq stpt (list x1 y1 z1))
% d4 W" u+ V$ E9 I% s* i - (setq endpt (list x2 y2 z2))* a. @: x" D! ?0 O4 g
- (set_tile "delta_x" (rtos (- x2 x1)))4 |8 t: k5 i$ }: W0 t4 d
- (set_tile "delta_y" (rtos (- y2 y1)))
2 g: ^4 V! i3 ?# R- Q - (set_tile "delta_z" (rtos (- z2 z1)))
8 F8 W# s& Q4 P' `5 G - (set_tile "l_length" (rtos (distance stpt endpt)))2 z$ o( t& Y: r
- (set_tile "l_angle" (angtos (angle stpt endpt)))2 j- Y' R) F/ N
- )
; r8 ^/ O7 C6 h+ p; g8 v: A - ( C3 |7 P) H6 Z3 k: k3 a
- (defun cir_calc ( / area units)' Z3 f( N1 z6 h. Z/ G N
- (setq radtest radius)
. {8 I( Z9 _) k. h - (set_tile "Dia" (rtos (* 2 radius))) }9 p1 V7 n0 V5 b
- (set_tile "Circum" (rtos (* 2 pi radius)))
; J& w: c+ [# ^4 _ - (setq area (* pi (* radius radius)))7 z% T% L1 D& P' z% v! ?+ k
- (setq units (getvar "LUNITS"))
: Z! ]$ z1 D$ J) o* C - (if (or (= units 3) (= units 4))
, g* M8 d' N$ S( q) y/ Z! f# C/ _: o' ]! b - (progn
. U2 B8 p: s* [+ H+ h$ u0 { - (setq area (/ area 144.0))
& s! S' y2 T; I8 O, V - (set_tile "Area" (strcat (rtos area 2) " square ft")): m. z0 N6 s) l0 m% ^) ^
- )
, s) w# Y" ^' q3 J( E6 @ - (set_tile "Area" (rtos area))
. k$ K& k7 |- s- s. w- N - )9 v5 h+ V1 G0 O
- )
' `- S9 w. o+ v4 W - ; F& u& s& e2 T8 U
- (defun arc_calc ()
1 L a2 W8 c7 o% s) x6 h8 U - (setq totang (- end_ang st_ang))
! k9 U% ]7 `- n - (while (< totang 0)
) s/ N" X# U) N - (setq totang (+ totang (* 2 pi)))- ]& B6 _8 j; V- \ @- P& v( ]
- )
. ~' g. ]9 \4 v* {/ D - (while (> totang (* 2 pi))) b5 k' E5 k( E( \
- (setq totang (- totang (* 2 pi)))
2 f9 p" G1 X" H l4 g i - )
# g2 N" w+ K3 G6 \" C9 g0 R; ^ - (set_tile "tot_angle" (angtos totang))* Z' c6 v& b9 p# S; v
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
& F, A0 r0 v0 d5 x; U - (set_tile "arclen" (rtos arclen))
9 l' m6 a# k" X& T: C - )
& y: {/ O& O2 t$ ~, O/ d2 ^9 h - ;;
, o3 u( O* L+ z$ _) j - ;; Calculate the major radius, minor radius, major axis direction.; [! ?" K# P. H) ]- M- L
- ;; Get radius ratio. Convert Start, end parameters to start and end
6 ?3 y/ M; w2 ] - ;; angles. Save Major Radius value in "old_majrad" in case the user+ a: U s, _3 g, ^" x' f
- ;; chooses to input a new Major Radius value later. It's needed to
" w+ P2 n9 P T0 ?& R - ;; calculate a new Major Axis Vector value.
$ J1 }" l% y" J! X% [' C - ;;" |$ B# z* }" R1 }3 ]6 x
- (defun ell_calc ()9 T3 B# F- c4 }' J# c0 m; I
- ;; Get major radius from the major axis vector.
% L3 P0 ?9 g8 J - (setq majaxis (cdr (assoc 11 elist))) m9 p+ M6 j% Y- W$ ~3 R
- (setq xx (car majaxis))
' j5 ?+ i3 c- ]( ?+ B0 f - (setq yy (cadr majaxis))7 R+ c. x2 w1 @. Z% }
- (setq zz (caddr majaxis))
9 H9 t6 R& `5 { - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
" @6 P/ m5 C" t- K - (set_tile "majrad" (ai_rtos majrad))
( O$ U- i1 T' z$ X - (setq old_majrad majrad)
2 _& z& U3 j. p# I2 E - ;; Get radius ratio' n3 o q1 [9 u0 c+ S
- (setq rrat (cdr (assoc 40 elist)))6 R3 B& y2 w9 i' ~8 X0 f
- (set_tile "rratio" (rtos rrat))& N8 t5 M' F' R B1 y
- ;; Calculate minor radius: ]) \0 n+ c8 h
- (setq minrad (* majrad rrat))
7 s" B4 Y5 R* ]. B5 g$ q% u - (set_tile "minrad" (ai_rtos minrad))
* z9 f5 K6 ?! q% S( x, ^ - ;; display major axis vector5 B5 F3 N9 E' F& ]7 f* g
- (set_tile "Majraddirx" (rtos xx))
9 I7 F* D! A& l1 |* F3 R - (set_tile "Majraddiry" (rtos yy))
3 c; s! H# K( N7 _ - (set_tile "Majraddirz" (rtos zz))
* J Z( d! W) {
/ m$ b- i* e- N7 O, X2 ~) e+ F8 K- ;; Convert start parm to start angle. y3 b- G& n5 S. c' X9 }4 V! `
- (setq stparm (cdr (assoc 41 elist)))
' L; [+ Y3 Z- M- Z2 C% O! N9 d - (setq vecx (cos stparm)); ?1 I6 w- a9 m9 p5 U! h7 T- i
- (setq vecy (sin stparm))
5 ^5 p& n [8 ?$ J' o - (setq st_ang (atan (* rrat vecy) vecx))' ?6 F9 m3 G# |* |/ N2 n
- (setq tempst_ang (ai_angtos st_ang))
7 K& R) v6 y! K6 r+ O. k: @ - (set_tile "st_ang" tempst_ang)
- m: a: A9 ?% T9 g9 b! ?5 [/ B3 t - ;; Convert end parm to end angle. If end angle evaluates to 0
' d! Y. Y. q1 A0 Q, r3 X i - ;; degrees then display it as 360 degrees.9 @, D+ c! q9 K9 s$ Q5 W8 ^6 [
- (setq endparm (cdr (assoc 42 elist)))9 @1 @: q2 @( N! [" [$ @* i# [1 ~
- (setq evecx (cos endparm))
7 f; m) i3 Z( l - (setq evecy (sin endparm))
. m- T7 R4 s1 W5 w$ v - (setq end_eang (atan (* rrat evecy) evecx))
. B5 z: E6 ~# z( h) t - (setq tempend_eang (ai_angtos end_eang))
& d8 N2 d" f8 f0 I o* X% k7 \ - (if (= tempend_eang "0")
- j& x$ u" s/ w; G# v4 F n& G - (set_tile "end_eang" "360")
6 R3 ]! U! ^$ E+ V+ s* A) |5 w- c0 Q8 n - (set_tile "end_eang" tempend_eang)
% p4 s4 f" N4 J4 Y- A1 C1 y( B* [( g - )
/ Q1 o" ~: g# l6 S2 T4 k4 j1 _ - ;; Get area of the ellipse.6 P, w! u6 n- L0 p( p7 Y
- (ell_calc_area) ]: I5 Z) | G, o# o6 r
- )
) W" L6 u. R7 P4 d - ;; Calculate area of ellipse. If it is an arc then: K* R7 ]" ~+ X9 w
- ;; grey out area display.
& a# [& Y% e8 _ - ;;
- g* Y1 O' u8 w7 r% @7 H8 }* Y - (defun ell_calc_area ( / area units)
1 k. u- s) [' W3 y3 g# W - (if (and (= tempst_ang "0") (= tempend_eang "0")): \4 e, p! I+ J9 h
- (progn
& L! D8 q b8 [* }" e - (setq area (* pi majrad minrad))
$ i: W3 f% k) m6 @7 w: U - (setq units (getvar "LUNITS"))* y: S$ a/ W( e3 [$ f
- (if (or (= units 3) (= units 4))4 j1 ^' ~# L y, a0 I# J
- (progn# h5 s, k* T; P9 O/ x- J
- (setq area (/ area 144.0))
2 U. l# `: p. O1 S' i$ U - (set_tile "Area" (strcat (rtos area 2)" square ft"))/ G# c; W6 A0 O9 w* L& o
- )- A3 |: ~8 i/ V) F
- (set_tile "Area" (rtos area))
* X8 k! K6 j/ Z) }! Q - )# L/ O; A r+ j0 u% B- Z" F
- )0 w8 w9 l8 } E
- (mode_tile "Area_text" 1)
& m5 }% r# _! k) T y3 B5 {+ u - )2 |, K& R u* b0 X5 |5 j; F( H
- )
, a B5 U% F' v% g) E3 t$ B - ;;
Q& l) r! F& C1 w4 l# i3 J$ b - ;; Calculate new values for ELLIPSE/ G. z: t7 n# y
- ;; Minor Radius, Area
6 r% j$ x* `5 z _5 M! P+ ?8 B2 X - ;;
9 [ g4 t# l2 C) A5 @3 M/ { - (defun ell_calc_newval (ell_tile)3 y4 w! T; J# s+ `' Z
- (if (= ell_tile "majrad")$ ^. ]7 j5 q* T, Q. F0 R
- (progn# g' m3 }8 v$ E" `# ]0 a+ C
- (setq rrat (/ minrad majrad))( L( E; m+ ~0 a" B( P% K( x
- (set_tile "rratio" (rtos rrat))
- b6 [6 y4 L* r - (ell_calc_area)
. J2 W5 ]5 s% [3 U, r c - )4 G% S( N: ?! Q
- )
+ C( ]; ?. L! a1 ~4 A - (if (= ell_tile "minrad")8 u' H R( {, }0 H( a
- (progn8 J& N4 ?9 z3 o, V; g9 L
- (setq rrat (/ minrad majrad))
7 ?, Q3 \( }1 w - (set_tile "rratio" (rtos rrat))
* E1 q- X. T9 D3 v0 ` - (ell_calc_area)
& D' v7 \# Q3 m) Z3 Z' h: K - )$ i1 T4 F$ ]9 \5 s& }9 D
- )7 h' u! R- T8 r" _) x5 e% C+ @ V
- )
V9 N; ], g. Y# O! V9 O' h
2 F' I$ w+ f9 }; k1 Q n1 p+ Q* C- (defun set_dimen_props (/ loop a stl txstyname)
: }! X+ s3 K5 X+ k0 Q9 v! q9 x
& A4 w0 t5 y" z- (setq stname (cdr (assoc 3 elist)) ; get style name
( H$ Z2 p4 |6 W* B. d/ i6 A - stl (tblnext "DIMSTYLE" T)6 H7 Z3 _8 h' r
- stlist nil)
8 F" c9 r# o' Q4 r$ E) g* y - ;; Get all style names and list them in alphabetical order
& S6 P) U' {+ H6 M9 B8 F' O - (while stl& O9 k( L# ]8 a+ j" G1 w
- (setq sname (cdr (assoc 2 stl)))6 J$ d" ?0 [3 [$ e
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)# J7 F& {+ g' f; R3 |
- (setq stlist (cons sname stlist)))+ P7 M4 ?% {5 h% J1 e
- (setq stl (tblnext "DIMSTYLE")))
, f! ?* P5 t7 I( G7 P/ O - # @! w* s! P7 C
- (setq len (length stlist)
6 L/ m! v! X% O - loop 0, `4 h& ^- w0 B0 a' t
- dimsty stname
7 w' S" f7 z. s6 a - )
( \6 K: D! k4 `3 l4 Z - . U& H7 a, d# E) z( k
- ;; alphabetize style list, depending on maxsort6 P. S) l* o, J3 O
- (if (>= (getvar "maxsort") len)
4 f8 J; W3 m A' P5 u: V. Z. p - (setq stlist (acad_strlsort stlist))4 m4 u; |2 n- `2 V& ^& c
- (setq stlist (reverse stlist)))
5 D" i% w7 S! k0 k1 l3 p. I - ' }5 L; t: k# ^4 [
- ; *UNNAMED style (dimsty = nil at this point) is replaced with5 }. s0 N- y. l6 ]+ V8 a9 A1 l% @: o
- ; the current style. After R13, we require dimensiosn to have a
: F$ b3 U( w9 N! X - ; dimstyle, so we plug any holes where we find them.1 f+ ]5 m% W2 W8 `* h- x( L
- (if (null dimsty)
5 a1 G7 l5 D/ v% o9 V: O - (setq dimsty (getvar "dimstyle"))
u+ Z. }2 g1 e" c) w: p - )0 \* p! `8 e* n
- ; Show the styles in combo box- O ]$ A* v8 @9 [& x3 W5 s
- (start_list "mod_style" 2). W! k0 m! b% q& K m9 T1 l+ f
- (while (< loop len)2 Y$ U8 ^ J8 _7 z6 S0 F% f y
- (add_list (nth loop stlist))2 ~+ l5 ]( k9 K5 L# y
- (setq loop (1+ loop))- M$ T9 q$ y5 o
- )
3 A0 ^, N1 R8 l. \0 {
4 v l" d. I# E2 S2 O1 `9 p/ T- (end_list)
4 o% S. T7 [, I2 t
& g, l7 g- a9 A/ y' q L: \- ; Hilight the style name of the selected entity! g, O7 z) g7 @; l
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))8 t: T) x6 S1 N4 n+ f
- (setq loop (1- loop))
% H" m. S+ |- Y6 f. _! }- x - )5 P+ ]0 N" K3 ~$ C/ Y) v
- (set_tile "mod_style" (itoa loop))
2 C& D2 \$ ?# ?, L8 \+ @6 i |+ {- R - 4 K0 u% c2 E0 o3 p$ X
- ; The following is the list dimvars. It must be sorted in the same
5 V, Q& R T7 n j: n - ; order as the resfub returned from DDIM (ADS module).7 U3 v1 M* r% |, q. z. @7 G
- 9 }# @+ I2 O0 E J. q7 Z
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"6 W5 j4 }( {0 M' i/ V9 d% D& ?
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
, v5 {2 w1 C) A8 x - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
b- t9 |6 l, ^+ \, d1 ^ - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
5 D6 W9 g+ h+ P6 J& O - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
$ Q1 o7 ` r" l# R - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
* ^, r9 \. g. ~; i - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"% {! d9 k7 y+ V- w1 C; a
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
& Q4 W* Q' C. s( u2 {: o6 \2 l - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
. d/ w1 @9 ?# ~/ e5 g; \% } - "dimdec" "dimtdec" "dimaltu" "dimalttd"5 r) i5 h1 o6 h
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"3 ^' O! y* d7 C
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"; r Z4 X9 b/ M H* l
- "dimtxsty"# a% H9 p C' x
- ))
( _/ v9 z1 e( e5 ^ G5 t1 c; q - (progn
/ |$ L1 p& l5 Z - (setq sv_dvlist (ddimen_getostate dimsty)
4 o' Y5 j, K, U0 g, T0 t - txstyname (assoc 340 sv_dvlist)' Z& u- s6 [8 g6 p6 X
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
9 O5 y0 R2 h1 w$ A6 u - txstyname sv_dvlist)
! F, ~) H, y8 x" _ l! C& U - dimlist sv_dvlist
3 q8 ~# D: K: ?+ K8 T - )
7 _& k* [; t8 \" R$ O - )
3 j* A% ^1 A; c9 \% M, t - (if (= dimtype "DDLEADER")
# l. N( D1 }1 d8 E' \) g+ J - (mode_tile "mod_format" 1)0 @! U. g* ^! t- j# a5 ] k9 l
- )- H/ q2 E0 A [8 f- ?3 ?* E
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
. w5 ]& Z5 R; R3 ^ - (action_tile "mod_text" "(done_dialog 4)")* ^4 \' E/ q# V- s, ^+ e0 v" n
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
3 m" i6 S. O+ M- M+ j+ ], _ - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
# n* v9 W/ K2 Y s0 t$ D8 s S$ q - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")' [& z+ z6 O$ K2 \2 d7 c% E
- (action_tile "accept" "(done_dialog 1)")
' O7 j. c" R1 W2 I - )3 f# L: N' A& R1 m C; }
- ;;
: }; [2 d0 }" h. S; }0 A. {* |0 j - ;; Get dimvars that have been restored.
, d, n3 C4 N0 D# H7 k6 x - ;;
+ \( L# t" M/ q) s - (defun ddimen_getvars (/ elm dvlist dv i)' w3 ?0 g% v- T' T# L- y8 v
- (setq i 3, b( Q' x0 N9 W
- dvlist (list (cons 0 "DIMSTYLE"), Q% \' P8 k0 D" x* }2 v
- (cons 2 (getvar "dimstyle")) (cons 70 0))8 q+ `, k* N) z z. s1 a
- ): \9 ?0 C4 t$ U3 L, [* R4 ? a/ {# `# _
- (while (setq dv (nth i dimtbl))
( [* q4 h" u, c# p# @( t" _ - (setq elm (getvar dv)
. ]8 v# O i8 @6 |5 f& P8 J/ F3 ^+ M - dvlist (append dvlist (list (cons dv elm)))* X8 m* R' E- M- U: t
- i (1+ i)* `9 q8 o4 q- _6 b" f
- ); A# ^. o0 x2 m
- )* P, R- E/ e+ X9 {3 x1 T
- dvlist
/ P4 m+ C+ L$ x0 E6 {8 O5 d - )9 R7 {9 I( C- J; [# a# }
- 0 T. D) S5 ~$ O, Y0 C
- ;;0 _$ h* l6 b( U) C6 y8 }# |* v
- ;; Get the original states of dimvars. This is for DIMENSION entities.
$ q5 u9 n/ @: N U - ;;
. s; V' B* \9 x9 h* {1 ^ - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)% \! F5 e. [$ f9 {6 o2 Q) S! J
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
% k% G/ m8 G3 B: b7 z9 U% p, A - dvvars (ddimen_getvars) ; Get dimvars for that entity
! i( I, ~) u8 P) T1 B - i 12 y+ F/ _4 |; ?0 r
- )* U) n* H3 O5 ~( y% K2 K
- 5 e# D0 W0 m! u
- ; Create a list that contains values of the selected entity.8 M s* C8 S" ]" r
5 o' U) D8 Z7 n m- (while (setq elm (nth i dvlist))& [0 ~& O& _- I/ E+ W% o- F
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
5 e1 A6 p+ }0 B$ ? - i (1+ i)
, R1 }7 z! E; f: _, x4 g - )
( P6 c; | ]5 t! L o3 O8 \" `9 F - ). a) j; ^$ x5 U6 u' d( C
- dvlist
4 h& V( \7 E/ Y1 k; X0 Y - )
0 Y1 W2 s8 A/ h' y U - 3 W* H# a1 m% w) z) ]
- ;;
; n! ^/ L1 B& y9 ]- k9 t& V - ;; Restores dimvars of the selected enity.. C0 Q8 S/ U4 H9 ^/ z
- ;;
8 k. M& C* B1 K q1 u4 g - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
/ V/ Q1 ^3 s T. e - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
( M. I- Y+ Y3 w2 s+ c2 m - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"3 s) ?# v! T/ v
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
0 {: |2 `% w" S - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
4 D! w0 _2 T0 p9 Q - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp") t8 a' E5 |* P4 b+ s
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih") z$ q4 T4 p% v2 a
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
1 F( @% X" X* ^# L - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"4 m1 z! t; ]) P! o$ D: V7 S
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
! I k2 g9 \' ~$ U& [ - "dimdec" "dimtdec" "dimaltu" "dimalttd"* q) ~8 n0 O$ }0 J0 h% V
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"( J; z& m' |! i% p) }& I4 o$ p0 E
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"% g# ?7 f) H5 H# r# _, y2 q" T9 w
- "dimtxsty"
' `# b% K0 a$ }8 y7 p) e - ))( n( K+ L' X1 X% l, H: W
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings F. G% _0 D6 x8 A* u3 w
- (progn: r5 K: @6 V3 Y5 ?
- (setq en (cdr (assoc -1 elist)))6 ?& K; E6 g- t$ ~' ~1 n& F; N5 K
- (command "_.dimstyle" "" "" en)
+ T. h8 p% P) r/ u+ q - )$ f5 o& a- ~7 ~6 n
- dimsvcurset1 B- m4 m1 k0 z6 }2 f' J' y
- ): u4 W, A- ~) O2 ~' u" F
- ;;1 K0 h* x9 J6 S. ~
- ;; Modify Leader1 f. {& Z6 p8 [' g' A& u
- ;; Q3 y# s3 A, k0 V
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl4 z: U+ V0 a' Q
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist( E3 P& I/ d% B* }1 b4 o
- dimtype dimsvcurset)
. G. g* v/ \. W1 B5 S - (setq dimtype "DDLEADER"+ M5 \+ n; T$ S
- dimsvcurset (ddimen_dimsty_restore)
" O' N! @1 A$ [% U - )
! k I1 v+ l: U! ` - (if (not (new_dialog "ddleader" dcl_id)) (exit))
0 `, O3 g. R* ?1 P; t4 c8 O - ;; Set initial tile values
, _9 j* A7 S) W, I - (set_tile_props)
5 x4 H; f/ {- j. S' b - (set_dimen_props)
+ S4 f9 N4 D1 `+ X - (set_tile_handle)% O4 |1 K+ K& T7 l
- ;; Define action for tiles' P& }2 u, D" s& f5 N r4 D
- (set_action_tiles)! S* p% b/ l/ z# A7 ~
- (mode_tile "mod_text" 1)) m2 x0 V$ O/ k$ P
- 6 D. }$ \! z# Y. s! C! a) F- U
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
4 t% d! n( @& x1 s8 B - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
( J; a% M: g. {0 b% R - ;; Get ARROW and TYPE.
5 b9 q [1 y! w) J - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
$ J( \6 P+ v5 U8 S - (if (= 1 (logand (cdr (assoc '72 elist))))
2 k2 A8 ~ y% h5 k - (set_tile "s-s" "spline")
: w5 R7 F; H' a - (set_tile "s-s" "straight"); M0 i0 ]! k8 i$ Q
- )% U w* f2 r3 j+ J& i* V" e
- ;; Start the dialogue. m: [. b5 q+ z0 e b ^! {
- (setq dialog-state (start_dialog))1 Q9 M: X% j" a& y
- (if (= dialog-state 1)& S0 M5 W. \) p& h
- (progn$ O" ^8 [5 _' b& L
- ;; update the style
; c' t9 p# X& Y; L - (if (/= dimsty stname)
" f: k+ t* ~4 q9 f/ A9 o, c3 i2 ]/ F - (progn
3 |# O: V2 ?0 |# W8 ~. y8 a! G* K - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
; T& g9 D% l$ m1 H% x - ; doesn't have it.
4 P3 U8 [* y) l5 K2 M7 m - (if (null (assoc 3 elist))7 W6 o/ I; K; y& P7 @( y: \3 C
- (setq elist (append elist (list (cons 3 dimsty))))
! @/ ^* X. M& k - ; else just replace it.7 ?' E% D S0 M( j7 s& M }- h
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
- [" a- ?6 m# H: q# e - )
: w; s+ Y( v7 Z f9 o - ; refresh sv_dvlist with new dimstyle.
9 `: c, Q& o5 M9 h9 a - (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 M9 }% D1 w! \. [7 b7 p' _
- )
: o6 F3 s0 h* l! p ~ - )
: J. Q1 S( M5 v' m a - (if (not (null dimlist)) ; attempted to change dimvars
' M% _3 V$ D) d# T* R8 {, N. k' Q0 v - (ddimen_complist sv_dvlist dimlist dimtbl)9 B& j5 p- k; {8 E$ s, i+ N4 q
- )5 Z" Q3 }4 P& a: o
- ;; update for ARROW.
2 v" F& b# N8 q" ?2 O9 d: n4 I - (if (= "1" arrow)4 x f2 w' t+ F* r6 F/ Y4 b% p: s
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
) ]1 y" f: M. S - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist)): ?/ l3 g H1 z" |
- )
5 O7 F6 v% g) Y - ;; update the TYPE.
" H$ j; E# w5 x+ { - (if (= "spline" leadtype)
5 e) E" A0 \" Y8 k8 y - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
# @- u# _ v0 g; K( n b6 j3 F1 M - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
0 p+ O- K$ J; I( k - )
% v! k' }% o1 l - (modify_prop_geom)
$ H9 p6 e5 l" H - ;; update the Color, ^% A( g) W3 A }4 s) D! P' m* ~4 Z( N
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))9 y$ D& B: ?. v4 a5 X1 U) j' B
- (entmod elist)
! `7 E' l8 I& V u7 y+ E - )9 M, A1 n+ j+ p4 t
- )4 M( h/ v6 P) {* T4 Y' |
- (ddimen_setvars dimsvcurset) ; Prepare to exit! u- ?+ t" ?5 i9 s' X1 M j
- )
% F g& _: |: X5 R8 R9 ?
5 r! |) A( B$ f" i# D) g# E4 t3 E- ;;3 W; D4 _) M W9 F \ Z/ {
- ;; Get dimvars of a dimstyle with overrides.# W" E# Y3 }! B+ s* r- ?2 H' h2 U
- ;;9 K) Z- w3 c1 P5 r3 V/ Y
- 0 K+ c* ^; F' p
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
$ J1 u" H! s( H- o. e# h - ( _ ]+ ?! m, K8 ^# C! C2 p
- ;; Get override information for the specified entity.
2 ], @$ j; g" \4 X - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we' @. y8 H( n& w, A0 m
- ;; must obtain override information through this tedious operation.$ W8 f+ {" c3 x5 t' h0 R
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
$ c; b3 T- A# _, D- y - dvlist (tblsearch "dimstyle" dimsty) O' B+ V3 w- p5 [4 C+ e% a8 t
- i 2
! Q5 e2 i" b9 n - )
& b4 J; J k. s9 J+ Q) \9 b9 K - , d. B& J% I n' Y* ?+ Y
- ; Update the list with overrides if overrides exist.
0 t! H3 l* |, \9 |; I
: P& M8 u" t/ d/ u* [- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
u- H+ m0 p: Y! [ ~ - (progn7 \! v5 ^: M& Z
- (while (setq elm (cdr (nth i dimovr)))( H: u% n" {5 y8 I9 O( R3 i0 C' X
- (progn( E: t1 u: a, b5 P
- (if (or (= elm "{") (= elm "}"))
3 o2 s% b8 M0 B - (setq i (1+ i))
, @7 B6 q. E, f# ~ - (progn( h+ s$ n( j( F& L, S9 k
- (if (or (and (< 180 elm)
: Y) S) X# H& t6 Z+ {6 m0 t - (< elm 190)& k: n& z# t) l) v. T
- )0 Q6 W ]7 o. w3 v; h) y
- (and (< 80 elm)
. |4 X" b2 G. L! C. o - (< elm 90)4 P3 c4 W$ k0 k4 P+ A! ]6 ?, A8 P
- )
0 a% Y/ i9 [) k! X - )6 `% A1 Y1 ], R$ m
- (setq elm (- elm 10))
% x/ c" n9 J% g3 H- o3 M - )" c1 M" {0 h# C
- (setq i (1+ i)3 U( _" v# M. l* ?9 ^' Y7 w
- elm (cons elm (cdr (nth i dimovr)))
" O! J H& ^5 ^0 }% \1 M* N - dvlist (subst elm (assoc (car elm) dvlist) dvlist)" M# z( C5 G! v
- i (1+ i)7 H4 F5 w- O) x6 V
- ) E! P- I. ^8 f$ L) A
- )0 h4 K: F/ F2 a# l8 u M& m0 j
- )
0 k# q6 A% z% G6 g - )
; Z/ K9 c f$ L - )( s8 @1 b; X* D- f" z. M
- )
2 y3 T8 b+ u; _. E8 @2 t - )4 `) I. r2 w+ I( M" v* D+ p
- dvlist% _. Q2 e% I; f. M; }& ~$ l
- )! r- ~7 l& o& n
5 [/ c* t" G% K; e- ;;
% y( f4 |7 b: w8 ~+ `& h - ;; Modify POINT t" |) x8 O4 H9 V, O- w
- ;;$ P6 B, R9 d& m7 @
- (defun modify_point ()
+ |5 U4 w' P9 E( W6 _ - (modify_properties)
" `0 T7 u1 X5 m9 ? - (setq pt1 (list x1 y1 z1))8 O8 y8 [# U3 w4 @. }* F1 I( {; B
- (tempmod pt1 10 0)
) N0 Q! f6 Y( F1 P" G* ^3 e - (entmod elist)+ _( Y5 x- a; _* R3 t/ ^: g& Z1 o
- )0 e+ K" ]5 @* ^. E& B( I
) w& L" Y! J7 x" M) E( V3 }: M- (defun ddpoint ()
9 k& c8 l: b. A - (if (not (new_dialog "ddpoint" dcl_id)) (exit)): n' v. H; n: Y8 Y+ }
- ;; Set initial tile values/ U( | ^% l6 D1 s
- (set_tile_props)
w- h; e5 m% L0 w0 `# ~- E - (set_tile_handle)4 u1 x; Y5 C6 t% ]
- (set_tile_pt1 0)
d' R. c( H1 O" T - ;; Define action for tiles4 E; x- Z6 M+ Q: r
- (set_action_tiles)3 W9 G# g* _# ^7 [ e9 J4 j
- (setq dialog-state (start_dialog))
! f# B+ ^/ T" `1 r+ v - (if (= dialog-state 0)
7 ^# x u, d/ k: V' u# u0 I - (reset)( ~' P5 O; D+ E5 @. x! k
- )
; f$ r8 r* y; E+ M7 { X3 H - (if (= dialog-state 3). w% k5 Z0 n1 L( L7 H/ q5 L
- (progn& ? J, K' ]) C9 }& H
- (modify_point)) ]. U2 U0 G X* R) h9 Z
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))( W) }& j- |( I
- (ver_pt1 0)
# ?4 {5 y6 W8 T; n - (ddpoint)1 X" V. O4 k2 X( _+ w9 i
- )
6 a9 `6 G+ s& H ~" A9 P2 k - ); A) \, h3 ?5 H5 N7 p# ~. q3 o7 I
- (if (= dialog-state 1)
1 k7 M# Q8 J( P* I - (modify_point)& {* E6 v1 E2 V6 [+ J7 P# l3 P' \
- )) e# f$ F7 T7 }% ^) z7 k: e* Y
- )9 b. K( [8 a, k. ^% ^
- ;;0 Q4 \6 d; r" @$ a4 v
- ;; Modify LINE7 Y8 l% i! B# g
- ;;3 X2 f- y h4 r4 G! {5 c+ B1 o
- (defun modify_line ()
: |* }5 a0 i4 q+ u( ]: {2 ]: i* m - (modify_properties)8 J ^- [1 n! n+ G- g T
- (setq pt1 (list x1 y1 z1)); d4 p7 X- s. ?% z0 j. h
- (setq pt2 (list x2 y2 z2))
' [) F$ I q# ]5 U - (tempmod pt1 10 0)
( }0 I# B3 o, v/ a3 ? - (tempmod pt2 11 0)
1 A, @+ {) d9 J1 k7 y - (entmod elist)+ G) r5 } ]0 B( J* T: y9 g# B7 \' K
- )
- _3 v& B' J% ?" p2 Y/ a$ A - (defun ddline ()
3 [( R; ~ T7 l9 Y; e: t m+ ]- ` - (if (not (new_dialog "ddline" dcl_id)) (exit))
* i. ~1 ~' L9 e k- ~ - ;; Set initial tile values. L0 G, `6 v( A3 {
- (set_tile_props)' m6 G- ]1 u5 E: t7 N) O. M
- (set_tile_handle)3 c# r3 B. y. |6 S
- (set_tile_pt1 0)
8 C9 b" t' Q, Y0 M - (set_tile_pt2 0)
) z4 S) \4 I; X6 v3 N - (line_calc)
8 I, P4 U% ^* X4 l' ? - ;; Define action for tiles0 g( h1 D' q' _3 |( V0 q. {
- (set_action_tiles)* p" T# U! G6 ~9 Z
- (setq dialog-state (start_dialog))
7 M4 k: ~, U8 q# k3 G+ q - (if (= dialog-state 0)
! ]9 ~/ D0 c* N9 b9 K, c - (reset)
& ]9 q9 g" c( u5 f4 T- w - )' q, d* y$ ` T' `: M; B
- (if (= dialog-state 3)& @& d2 G: Y, J" N& @
- (progn% Y' t, x5 N* N; S$ Z8 g3 W" a1 l
- (modify_line). Z' c! I m7 y0 c+ _
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))- u b8 A$ I: x8 W+ ^# P
- (ver_pt1 0)4 u9 D. D3 F+ L
- (ddline)
9 k6 K3 R' F1 l! \; ` - ). k8 a/ u$ q- w9 ^
- )( Z0 n9 _) \0 ~& i7 W
- (if (= dialog-state 4)
5 R% U5 y% Y6 O3 w0 J - (progn
5 r# v6 q( u+ b2 N$ v) i - (modify_line): A* D. K$ z% T; m
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))7 }( n. p- j4 h% \' ]
- (ver_pt2 0)4 K% ~% t% H, {4 E2 {4 S
- (ddline)0 e3 A' S3 v9 ~: z; J
- )
* j0 v3 O9 n2 A5 b! ~ - ); w, _4 ^& O. v0 f% f
- (if (= dialog-state 1)
& z1 g. U# h/ x8 V6 [( ~4 [ - (modify_line)
/ g& m' b4 q& U/ J# ^! [- i+ C3 ~- a - )5 R, Z/ e+ ]6 L+ q2 @4 d; g
- )4 w! ], X# V* u9 \' N* C& x/ }
- ;;( ?4 c, p/ y5 F% `9 B# S
- ;; Modify MLine
; f, d0 U2 h4 ]( B8 \( Z5 z - ;;
: |% F2 A8 x2 \ - (defun modify_mline ()( r- J% m& Z, |$ W( c
- (modify_properties)
1 X" T5 j/ O- [! e7 {( ^ - (entmod elist)
1 N) I, w: H: H$ O0 `) F - )3 D7 S9 U. C7 Z0 ~
- (defun ddmline ()
N y/ a6 k, y6 e7 u - (if (not (new_dialog "ddmline" dcl_id)) (exit))
) m5 K6 O. ~+ q - ;; Set initial tile values
! @; x; ]0 i! p4 k - (set_tile_props)
* Z- a/ f/ l# A( U: a - (set_tile_handle)
' E( H1 v J2 u5 ` - ;; Set mline style text field.
8 I& b$ R5 y7 u2 D+ v - (set_tile "ml_style" (cdr (assoc '2 elist)))% i1 n. n" C) T- _7 }+ X5 @- Q7 m
7 o% e* S! R5 ^; ^- a- ;; Define action for tiles- ~) I( c4 T6 W1 V& c$ C
- (set_action_tiles): M1 t" Q5 K" u( M, m7 h) \
- (action_tile "ml_edit" "(done_dialog 3)")# y) e c, z( I- O# _, Z! Y5 _
- (setq dialog-state (start_dialog))
% H" q" _3 @3 w - ;; Dialog cancelled, reset to original values.. k5 i O0 X. o5 E* `% l% |
- (if (= dialog-state 0)
7 z- ~+ J0 z# W. X" j$ b1 M - (reset)
, c! \) {- Z+ B- n; Q - )( a8 c6 K$ i" K# [ o
- ;; Dialog OKed, update the mline.4 D$ Q1 d# H+ U- ]! {
- (if (= dialog-state 1)3 K! B2 Z9 |7 @" D' ]7 ~% ~
- (modify_mline)4 ^ Q4 ]* o; B4 w( M
- )& c. [+ W. v% `5 w8 J& Y& }. R) R
- ;; Edit Mline, call MLEDIT.
( E9 ?+ B; t: e - (if (= dialog-state 3)$ b* G( [- ~: i
- (progn( S5 |0 V( M) ^! \# M O6 z! `
- (modify_mline)
; E z5 O; L8 Y - (command "_mledit")! Z7 ~1 m" K8 o6 E4 W
- (ddmline)
' `7 i. ?2 Y: `. ~: Q/ n - )
7 Q& d) V) R4 @& e - )/ A- ^ T4 o8 H! o
- )
6 t, _! F( v0 s) c$ e a - ;;' {: {% V( D1 h9 i* l: C F6 R8 b
- ;; Modify Xline- m, z' l# y3 Z" i* {5 G; _. X$ z& v3 _" }
- ;;# F( ^# U: Z/ x' B' U3 d1 ^
- (defun modify_xline (flag)
6 h& {9 i1 b% E' G- z - (modify_prop_geom)
& R2 y* P4 e8 \2 p5 v - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
1 {4 Q& F6 X" p4 T3 Q% _ - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
" G4 M: y/ F$ W$ l. U- X, Y+ w - ;; Update the Root point.0 N4 n& U% [* u* {
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))
1 l* V, M! y& v" {# S! [1 _ - (assoc 10 elist)
# L% k* m3 L7 M# V5 I( u) l - elist3 c5 K7 Z M. {* Q# M# `+ D
- )
* M Z2 R, g8 C& ~" u k9 m - )
2 V: ]/ X8 p+ d - ;;* Q6 Y6 l7 Z! u4 P- q
- ;; Calculate new Direction Vector WCS" r. v. S% ~2 `+ Z1 g' u& D/ }
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))& ?1 W& `7 r3 X& t
) P% R$ M/ [' E$ S( N; R7 N4 F+ X- (setq temp_dir (trans xline_pt2 1 0))9 A, s6 i+ V- O9 x9 U8 D. `
- (setq temp_dir_x (car temp_dir))
# X" M! o, ~6 Z - (setq temp_dir_y (cadr temp_dir))
% I' N+ I+ ~+ U0 b. k - (setq temp_dir_z (caddr temp_dir))
b, B+ N( X8 ]7 ` - 3 { d# n$ d) e5 E
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
$ {+ l" A9 i* U' x4 Q3 ]" | - (setq temp_xline_x1 (car temp_xline_pt1))
" C0 q! k) {/ L7 s T5 [! J' U% | - (setq temp_xline_y1 (cadr temp_xline_pt1))
) ]" x& L4 [6 u6 U }$ g- r2 E5 B - (setq temp_xline_z1 (caddr temp_xline_pt1))$ w7 t Z1 T" P* r# [" K
% Z/ d, S, [5 z& ]: t' h: d8 M" \3 ^1 u- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
7 E) @7 C/ t* F: E; W6 h6 S - (expt (- temp_dir_y temp_xline_y1) 2)7 S" f/ Y6 t4 D' J# r
- (expt (- temp_dir_z temp_xline_z1) 2)1 p& ?0 S: ?3 g W
- )))
6 d8 H0 L4 o" W% V - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
; J/ x* J# ^9 y* J7 B3 } - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
( l. X! ?) F/ O* | - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
' A) K% j/ E; e# X - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))1 h4 N. l& Q$ N
- (assoc 11 elist)
2 ]! Z: p$ g8 |2 N; D& @5 s - elist3 F7 g; F: I4 r X5 n" W
- ); r) N- D- Q1 E/ Z. c/ K$ n
- )# @, t% C$ j3 Z+ G( j
- (if (= 1 flag)9 G3 o& g6 [# R0 k4 t3 i% ?& K$ H
- (entmod elist)
5 T0 F3 r: b8 W0 U* n* X; k) v7 o: Y - ), i& }" t& x0 I9 l; i
- )3 s5 m7 g6 _- {8 k4 x. b4 P
8 z) R" I$ i" l9 `9 c- (defun ddxline ()
0 |' E, o* a8 L! k2 V: Z# B$ _1 c - (if (= etype "XLINE")
, I8 J% }7 A$ n- C! r) O( n - (if (not (new_dialog "ddxline" dcl_id)) (exit))
: {* P+ J! e+ D - (if (not (new_dialog "ddray" dcl_id)) (exit))6 _( I& ]+ q" @
- )
# B8 b4 w$ w: ~( X1 f - ;; Set initial tile values
4 Y; K; |) O8 T; G0 }4 z9 U$ S) e6 a - (set_tile_props)- H6 N$ o6 Y2 {3 h8 A
- (set_tile_handle) c. a/ H* u$ M
- (set_tile_xline_pt1)
$ Q B9 w2 _; w/ C- s- D* a - ;; Convert to UCS and post Direction vector.
% p7 \/ B) |( i+ Y; y - (set_tile_dirv), J" d; D- F2 I/ G
- ;; Calculate second point by adding Root Point + Direction Vector.
$ B! r1 l5 ?0 |' @# J& L, Z/ P - (set_tile_xline_pt2)
1 E6 g9 d2 C3 G: |1 c - ;; Define action for tiles* ^, }* P5 P: K. u7 |
- (set_action_tiles)
/ j% J" K3 B* u+ X - (setq dialog-state (start_dialog))1 d; e% a+ a9 @' G9 u' x
- (if (= dialog-state 0)
4 b) K& h! m8 U. [6 Y - (reset) ~6 c7 @5 ]. ~% }$ E2 E1 D$ ]
- )
) y6 `) T4 _6 H' m - (if (= dialog-state 3)
# \1 E) k6 S2 c/ J - (progn+ a4 p# A& Q% y. f! ?7 O) V
- (modify_xline 1). `( h5 S4 W. z; V
- (while (equal xline_pt2; [+ n- n$ D$ }
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
/ Q2 ?* S# {5 j1 E u9 k5 Q. F+ S - (princ "The Root point cannot equal the Second point.")0 W+ i" h0 n7 n" R# D
- )
4 }. G8 H. \' h1 ] - (ver_xline_pt1)
! n0 v; R% k7 p2 ?; x - (ver_xline_pt2)
) M7 J! ~: A- S0 x7 H1 ` - (princ)
. K0 ]& c/ T2 |% _( f - (ddxline)) h: D u* E, I1 F! V
- )
: w2 C+ x. y: V! i! K( \9 Y - )
) o6 W6 }/ {* d1 P7 _ - (if (= dialog-state 4)
" m- f+ ^8 o4 ?8 j9 [3 k" ^! y+ w& k" { - (progn; a, Z. q8 ^! t. S- s6 u9 e
- (modify_xline 1)
4 _$ A- n I. x. Z) z. a% P - (while (equal xline_pt12 `7 _4 l2 l3 Q2 b' ?/ y& D
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
4 l4 F8 K% ~! v7 U+ K4 ^3 e - (princ "The Second point cannot equal the Root point.")
: {+ M* T1 X/ A1 ?! t - )! S6 [5 p& Z" b6 T" O5 \, B- k* ]2 d
- (ver_xline_pt2)' n1 K: w) g+ U2 p9 X1 Z7 F; O
- (princ)
/ x4 l, B7 B/ `' T6 v* O - (ddxline)
/ E9 j3 z: v% S+ i& [ - )' z6 j1 Y- F# B( y$ i8 x/ x6 k
- )! {& u' T. b8 c- E
- (if (= dialog-state 1)
6 P, Y9 v+ C: B5 Q- D - (modify_xline 1)
* O' g$ T1 _% S& N- a. g - )9 s" f- k5 I6 B$ b3 ?
- )9 R1 ]) T8 }8 n) ]
- ;; I2 B, R4 K# S w; O
- ;; Modify ELLIPSE1 E: a: [& q: z$ d- [; v
- ;;' e$ O" ]# e, G9 H1 ~
- (defun modify_ellipse ()
?: J8 v( v3 v8 c3 W) F8 m - (modify_prop_geom)9 R5 M: @- J9 p' T# {9 U: B
- ;; Update Ellipse Center Point value.
; ^0 N% s9 Z+ q4 Y0 W' C4 H4 e9 S M - (setq pt1 (list x1 y1 z1))6 ?! h9 C9 s0 `* \: Z$ c
- (tempmod pt1 10 1)( y3 H1 H& m9 A; ?' f* o) b
- ;; Update Start Parameter value.
6 A, f' |% c) v7 G% T$ J; ~ - (setq y_val (sin st_ang))
/ t5 {+ j" A, O: A - (setq x_val (* rrat (cos st_ang)))
$ f. F7 W7 ^$ Q( r$ E' i2 a1 j7 f/ z9 h' p - (setq stparm (atan y_val x_val))
) ^, d8 y7 ]( c5 P2 b2 w0 ? - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
. ^0 N$ f3 l% ^+ u - ;; Update End Parameter value. Normalize it, if it's less than
# n% C) L; k' I* {6 E - ;; the start parameter.
8 U" N' n) d( |8 O1 Z - (setq y_eval (sin end_eang))
- r6 T. I, p3 F Y; I, a - (setq x_eval (* rrat (cos end_eang)))1 b- b, C { _" {, J- H# L
- (setq endparm (atan y_eval x_eval))
4 h7 ~/ ?# |# o3 O: f; _) J - (setq diffparm (- endparm stparm))4 x& d9 P! j6 \2 C( | m2 A) q# B
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
* t ^) i5 }" Z9 p - ;; Since zero length arcs are not allowed - construct the full
# ?0 p8 R5 U: t - ;; ellipse in this case.
- X3 I. _% _8 E% {+ ^ - (if (<= (* diffparm diffparm) 1.0e-12)
% u, v$ O8 y* P4 Q6 ^ - (setq endparm (+ stparm (* 2 pi)))" a9 }3 u O1 {" f( n
- )
9 w" j! E+ L; o1 ? - (if (<= endparm stparm)
: d- O6 z9 ^# g5 y( W7 F+ \8 P - (setq endparm (+ endparm (* 2 pi)))
& d% u+ B A+ S* s - )) G/ O; t4 }8 u) Q1 ], r4 B% J
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))2 _3 ^0 |3 o5 S& f9 m
- ;; Calculate the Major Axis Vector by first calculating3 f( y. E" B; W; s6 t1 h
- ;; a unit vector using the old Major Radius value. Then
- S5 k q$ A/ O$ E. x8 D% c - ;; Multiplying that by the (possibly) new Major Radius
; U- y- N( w+ y+ { u$ t( o) _0 W - ;; value to get the new Major Axis Vector value.6 p( j$ S( o4 E" G5 w
- (setq unitxx (/ xx old_majrad))8 g5 m; @: `3 ]: ^$ x4 ^; l
- (setq unityy (/ yy old_majrad))
1 j; i5 w7 Z: t" y: g - (setq unitzz (/ zz old_majrad))) y n: B: N. J; R8 d% \
- (setq newvecxx (* unitxx majrad))$ X) o7 I0 k, G
- (setq newvecyy (* unityy majrad))/ x' {4 s9 {- L( o, j
- (setq newveczz (* unitzz majrad))
: Z+ u3 B9 ^' _ - (setq newmajaxis (list newvecxx newvecyy newveczz))
5 b \6 S! e; v! u+ ^* W - ;; Update Major Axis Vector value8 R9 ^) c/ l/ l
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
: ^% P% W& @ V# V2 ` - ;; Update Radius Ratio value+ _! F3 J$ I6 i M
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
, [8 W3 V% s# ]% \/ z - (entmod elist)
1 }2 x/ y* X! w. ^7 f - )
% k. U5 k* r! E; L; V
, P7 Q; `* e& @. m3 d6 k- (defun ddellipse ()* c! H, w- q% u6 z6 A" T( Q
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))
" T# Q2 V. y9 `# C! O - ;; Set initial tile values4 T( k3 A7 V$ _- ~3 }
- (set_tile_props)
& _( E$ i: w: C - (set_tile_handle)$ |: Q' a, [& G/ R7 Q
- (set_tile_pt1 1), ^6 ^* Q N4 H. `: `# c( j
- (ell_calc)
5 v3 [1 s# ]! B C& v# ` - ;; Define action for tiles
$ k2 d4 G6 H2 v9 q1 p - (set_action_tiles)( h1 j$ F) o X: F. z
- (setq dialog-state (start_dialog))6 w/ l1 _) w: {8 h: o
- (if (= dialog-state 0): t4 o, u0 N1 F7 C6 @* J- k
- (reset)
4 o$ Q0 p7 o( b - )
& G# T5 ]; w2 Q4 k9 m - (if (= dialog-state 1)9 q+ m% K7 R8 H- u: h
- (modify_ellipse)
Y/ k( D# V' x$ w - )1 h: c% s& R; N/ R: V
- (if (= dialog-state 3)
6 N" o, _9 k% [4 R8 `$ H( i - (progn! o: R( J* p6 G( ~& s# @8 L4 i
- (modify_ellipse)' c5 d# P. T) A9 R
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))1 f8 g# C5 t6 W D0 L
- (ver_pt1 1)$ |7 Y4 A" I0 b2 c4 T
- (ddellipse)3 v+ Y# l9 h9 z$ s1 @1 r1 L+ z
- )
$ n- {6 p' g9 @! J) {& A - )$ y8 M7 o! v+ c" n7 ^# S* `
- )
0 O; c; ^# ^! D- n& g - ;;3 A2 o/ |" g8 G e; P
- ;; Modify REGION$ Q, W1 ~: U* f- q
- ;;! l5 n' U( K, L/ Y/ X; n0 O) q7 A! ]
- (defun modify_region ()
8 S! @2 K/ _/ p6 j3 W2 \% g - (modify_prop_geom)
- R# e6 m% e* w - (entmod elist)
0 O3 R8 l/ B* `$ O$ Y - )
: B' [, w6 C" F6 I2 G! w - ( `7 g" O9 w/ }$ m/ N3 f
- (defun ddregion ()0 @; K% V" u) c4 D
- (if (not (new_dialog "ddregion" dcl_id)) (exit))
) Z# c% M& s8 T- S - ;; Set initial tile values
1 G7 _5 V7 S! {" ~ - (set_tile_props)
1 ~/ P8 m* w! N* ^+ U& f - (set_tile_handle)
1 p' ?( D- j2 c2 Q - ;; Define action for tiles0 B' U2 b2 a+ L/ M( C
- (set_action_tiles)/ ]+ P) ~5 G$ ~, k/ A- n% i) B
- (setq dialog-state (start_dialog))
& m' g3 \ W6 j: y, S7 u, q" a# h - (if (= dialog-state 0)# i) V! ]0 m$ L1 b3 p$ O1 Q! ^
- (reset)
& X$ \- X( B |( B* g) s# m2 n, O - )
0 o: f8 T8 l: {0 l) n5 B - (if (= dialog-state 1)% ^; L# D2 a6 w! _/ Z
- (modify_region)+ o- v" A. ?, P& C2 w& M
- )( ?+ h; C. o) l" @
- )
3 L. I4 J+ `7 i, F* G" G - ;;
! {6 J' }% w; E/ z" t+ z, @1 C - ;; Modify 3DSOLID
8 }. X, \: |0 a" a5 B% T* C - ;;
8 `8 o3 \& p4 _7 k - (defun modify_3dsolid (); e! K/ G9 W: Z& c' X
- (modify_prop_geom)
6 b, s+ Y1 \* H4 b, ]+ s7 A* S N - (entmod elist)
! e; }1 d9 m" S. ^, m, w - )( R J" n; [& Z, v' i2 Y6 T
: q! r' F/ E* s- (defun dd3dsolid ()
- b2 w2 ?) P' o7 b& R# K - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))1 ^2 X+ |( d' V Y6 e$ l
- ;; Set initial tile values
+ K O& Z% N: ], a) {& ^, F - (set_tile_props)
l$ N2 g9 ?* M$ Y - (set_tile_handle)* a z" W, u$ O/ {1 c) @& Z- ^# {
- ;; Define action for tiles9 U+ @% V- B9 N+ `- P
- (set_action_tiles)
9 W5 }8 t% J* C( q" t V - (setq dialog-state (start_dialog))
3 l+ W% }, t2 x3 [9 s5 Z2 E8 O - (if (= dialog-state 0)9 \( G" ]# t/ ?9 `
- (reset)
Z! a4 ^0 o! F$ w* s - )
5 E* \, b1 v! H* G. R - (if (= dialog-state 1)3 k0 _/ T8 L" }- w7 d9 k
- (modify_3dsolid)* i2 w, N" w# C
- )
5 n5 W3 j: e# x$ d% Q - )# R) N0 p& U0 c8 L7 i! Q2 @
- ;;
" k+ o$ A2 n0 E# ~6 {; C - ;; Modify AcDbHatch* k2 J* ~( v+ {5 j! K# Y
- ;;
9 t! Y" s N0 h X8 {# E" i, V - (defun modify_hatch ()
: S) q* c2 z! Y) Q8 F' W+ y& P - (modify_prop_geom)
( A- K9 @0 Q3 B - (entmod elist)
, `, R- J. Q9 J3 G& x+ P - )
# i, G' R) _* J$ h- V3 }; ?
4 `: R# a$ `# p& w" E8 P; r- (defun ddnewhatch ()- X. `5 n" b& k# E4 R
- (if (equal hatch-elist nil)" s+ T5 k: {3 j- i
- (setq hatch-elist old-elist): g( d% b& d. [+ e2 `# @
- )
5 U, T) ?: r& V5 H, q5 o9 |) A - $ n3 j7 T4 O4 i; q4 o$ V9 z
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
0 k! f! Y; i/ e5 [, a1 n& W% o - ! N% u1 Q* V2 z- n! V8 i X
- ;; disable the thickness tile
* l1 ?. f& Y; U& x' i - (mode_tile "eb_thickness" 1)& ^* [* C- B2 ~( I- T
- (mode_tile "e_thickness" 1)
# u4 S" \- ^( E; v# N2 s: J, f
6 m# a7 q4 h( |# }! O- (setq help_entry "modify_associative_hatch_dialog")6 ]5 y7 H. y- p- z5 }
- (set_tile_props)" K+ P1 ]+ \: |! r' n5 o/ b
- (set_tile_handle)
; ^6 x* n5 L- H! A/ l5 a5 @
. J8 d1 \4 S6 O8 N9 G- ;; Define action for tiles- a' E8 ]/ t/ ~8 V
- (set_action_tiles)
6 q8 x6 \4 X5 q! _# { - (action_tile "b_hatch" "(done_dialog 2)")" j* P0 v: x& h. Q
- (setq dialog-state (start_dialog))0 l8 L& s; I: Q( l
- (cond
d; L6 @! |( _" t; g% t - ( (eq dialog-state 0)
) ?1 S1 x/ V& _6 D& P0 r+ b1 N - (setq old-elist hatch-elist)3 |) L' N3 }6 ?1 v) x$ _% x
- (setq hatch-elist nil). V$ @$ l' R4 K5 a+ N c: U! K, o* z
- (if (= (checkforlockedlayer ename) nil)) B( k. _$ X* v" M; R) h: j0 n6 L( h
- (reset). o( v0 z% a" F4 G/ }
- (progn ;;; special handling for locked layer reset
* @4 G) v$ Z& E: g( w1 e; k3 E - ;; unlock the layer* y+ X1 h) R! s+ j
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
% c" V' ^' T% |7 e - (command "_.-LAYER" "_Unlock" layername "")
+ @" ^/ L* }8 h( K" { - ;; reset modifiction
1 z* B l2 W0 {( x j4 R8 ` - (reset)
3 T _" @) X3 V' l2 H - ;; lock the layer again
" ?, `7 o- F! s; C - (command "_.-LAYER" "_Lock" layername "")
: b9 G- c/ E$ {, y3 Y5 ~ - )
% q% z# u' B! K3 |9 l: \6 ^9 D1 t - )- b O X/ E# W4 x) u0 F
- nil ;;; makes (ddnewhatch) return nil for Cancel- F J) M5 [) L$ r/ Z, E% e
- )
8 Y) u7 m: I7 e7 Y: G. E* F+ y/ c - ( (eq dialog-state 1)* l8 S: l; f! e7 C
- (setq hatch-elist nil)
9 p% C8 b+ U p! y, ? - (modify_hatch)% Z# \) g8 Y, W* ?: o1 D
- T ;;; makes (ddnewhatch) return T for Ok
( C0 M, y) q( m# K - )
}% X& l6 h. R+ F2 B4 @% x# l4 O - ( (eq dialog-state 2)2 y6 @3 W. E* \0 K
- : u* j& C7 f" t. W; r. ?$ w
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))9 {% U& J4 {4 v
- 4( b* |/ r9 W2 l! G4 o
- )
; r2 l- D* B* Q& e8 l1 v$ n - ;;; new selected layer is on a locked layer
7 w2 g0 N& L+ Q7 w9 }& j6 M - ;;; we can simply modify the hatch properties; G1 e7 M+ n: F* k
- (modify_hatch)
- o: ]4 Y$ O7 M& b3 Y ? - (progn" ^6 H2 s" b! i
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
& D- D( }/ m& }/ Y - 4
w. }3 _! n4 e) m H' u - )
+ z, r U% a! W1 \; P - ;;; We changed the layer previously and now the hatch lies on a locked layer.% X# B8 O3 {+ ]' l7 X
- ;;; We have to unlock the layer forethat we can update the hatch properties.
; e% n/ ]0 _1 b, N0 c( ] - ;;; If we don't do that (entmod) fails to update to the new layer.
) J( w: v8 X8 ^+ ?0 i9 Q - (progn" h9 n% ^& r- L7 r% s4 G0 l
- (setq layername (cdr (assoc 8 (cdr elist)))) G" j, N! i$ C# [/ c
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
6 P& }7 L: ?: ~' j( h x - (modify_hatch) ;;; update the properties/ s* r6 G& Y, l) g7 w
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again/ g. m9 t; y4 a5 g3 @
- )9 E# ~$ J4 x# c2 J# D
- ;;; All other cases we simply update the properties0 S/ N S1 S1 q* M% |# p
- (modify_hatch)
- u" z3 f7 b3 N2 Z - )
- }3 f; ]5 h0 B. X& D# j" [! K - )2 i# Y( X& |9 j4 J
- ) . q6 e& X& q' J D8 _- t
- (if (= (checkforlockedlayer ename) nil)% @! N, M- a0 r' B' b& S
- (command "_hatchedit" ename)% S; b/ O/ m* J3 Y" k$ J2 P, Y
- (alert ;|MSG111|;"The hatch object is on a locked layer.")$ @+ q1 D( v6 @0 ?
- )
6 m I0 a1 z+ u* l1 j: f - (ddmodify ename)
- e+ F+ T+ o4 e8 a9 O. q/ ` - )7 R- i8 L( Z+ r$ F1 U- k- u: o
- )
% l2 a# q8 {: X2 i - )7 G6 Z: U, G0 W
- ;;7 v9 y9 s0 ?7 r& c |9 s
- ;; Modify BODY
7 }5 c# H" N2 H" Y% H% F# Z - ;;
9 Z/ \. I* Q' i5 z7 J" X. ~+ O% g, d - (defun modify_body ()
. N; Y+ ?! H+ C2 _+ o6 a6 A - (modify_prop_geom)
% z4 k# X9 G% f - (entmod elist)6 A4 W" h8 j$ U8 Q* P9 h
- )- ^5 p0 `1 k* M8 j0 r- {& R
- % H5 P+ z7 G' e( c6 o3 {3 o/ E- g
- (defun ddbody (); o8 \7 k! C3 p' n% t# A; Y
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
+ g# B. t5 N6 l8 n, b - ;; Set initial tile values, p' p) ~ T0 e% t% {8 U! m
- (set_tile_props)
( W% ]7 P3 C V! }$ [; S2 z - (set_tile_handle)
% {/ @% M5 E7 x/ d - ;; Define action for tiles' o7 b( A0 y& J& Y' P$ @ u X
- (set_action_tiles)/ d, ~% C4 J L
- (setq dialog-state (start_dialog)): }' [- r. q) H) ^' t" ]8 z9 w
- (if (= dialog-state 0)
7 ] N8 o* \$ D7 p$ V - (reset)5 [! p+ E, L0 G( J7 v6 x& X
- )
# Z, c- z- b% W. B# X x/ l - (if (= dialog-state 1)
8 z4 y4 L" k- d$ a5 a( Y - (modify_body)
% F4 v8 K0 |" I8 d$ l; H3 r - )
. u' y4 C: t2 ^+ o. G ~; n* `( Y - ); C6 j3 P2 t7 r" k- x8 c/ m) h
- ;;
& s; e/ [: N- _* _4 W. B" i - ;; Modify CIRCLE
; A2 Y/ I! r. x5 q" L - ;;9 O! A. n! n4 u* e
- (defun modify_circle ()
% r1 J2 _, D! `& U1 ]( _7 M - (modify_properties)
7 ` s1 T7 I# ~0 J1 M* W/ M' H - (setq pt1 (list x1 y1 z1))7 e) ~) W0 S! T" L0 n' S/ e
- (tempmod pt1 10 1)" m$ Q# \' T$ f9 C
- (tempmod radius 40 nil)
( u0 v& o. _/ F2 y/ t& K - (entmod elist). g2 F! y) ?- L D5 `
- ) M: p9 m/ L3 \9 _# h
- 4 |. ^: ?; l1 C" a. P: G2 l- [
- (defun ddcircle ()% X1 e" q5 t* J W$ a& r
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
! z; `& G" q4 }3 H) R/ k3 ] - ;; Set initial tile values
" L) O+ _1 L0 j- {9 z, v& [& ? - (set_tile_props)6 p% {4 H# M( x+ W3 R
- (set_tile_handle)
) c( V4 N; g& U5 X. ~, | - (set_tile_pt1 1), V; z4 L5 V! v Z, W$ H0 `
- (set_tile_rad)& J1 I, T; }3 q) G
- (cir_calc)# n+ | \# q% x. ?
- ;; Define action for tiles
! c4 u+ m1 F) a - (set_action_tiles)& G! x; t- Q$ \+ i
- (set_tile_pt1 1) N) i- |9 n7 L# N, |: V
- (setq dialog-state (start_dialog))
2 m; @3 h$ A6 u3 v" ~/ N - (if (= dialog-state 0)1 v# C# K* Q5 R" `; i/ ?9 R A0 d
- (reset)
( P/ F% R7 Q8 u5 O7 f/ Q0 | - )
& S- |. E& w4 W+ ~+ n4 Y. [( P - (if (= dialog-state 1)# P0 w5 z2 X1 }% J Y& R' b: k
- (modify_circle)
! j; A) ^ @+ f- a - ). Y1 d L0 K6 R, `& n
- (if (= dialog-state 3)8 F L7 U( h! ~
- (progn
7 C z1 } n: m$ p' P- b v - (modify_circle)4 l* s$ d# W( o9 U' o) {) [& R
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))" y* z* a/ P6 ?& u
- (ver_pt1 1)
. K q a& h2 p7 R) k( c9 G - (ddcircle) r3 V/ D0 q$ U& I
- )7 c& a8 Y9 _" `# g* |
- )5 n: i+ X8 M0 J
- ): ^3 h+ Q" ~. a4 Z0 B
- ;;
" g$ _* ?" {& m- I/ l - ;; Modify ARC; G) A8 G) G" m. v4 l! L
- ;;
1 p6 E) ` x4 u5 l; l: z+ a1 [ - (defun modify_arc ()3 r, B5 F5 w, {3 O* l
- (modify_properties)$ F+ w2 J, F, k8 J; Q: Z- A
- (setq pt1 (list x1 y1 z1)): Q/ t5 g; R) @, I! R! o
- (tempmod pt1 10 1)3 s6 @/ w& |( f5 J/ j
- (tempmod radius 40 nil)
) _/ @8 [: K' X$ G - (tempmod st_ang 50 nil)
9 Y1 s+ J" h6 R+ V) j! e - (tempmod end_ang 51 nil)
+ i, L4 ?7 S8 k B% i; V7 B - (entmod elist)
% B+ w7 ]6 W0 }4 l - )" O; v7 a6 X9 E
- (defun ddarc ()
( d8 v: b: F& O! O, y - (if (not (new_dialog "ddarc" dcl_id)) (exit))
& b3 z7 D; y& b8 r d: L/ f - ;; Set initial tile values
- [' `/ W& N5 F& S( z - (set_tile_props)$ L( ]5 K& \7 H
- (set_tile_handle)) h# P) C. O6 g6 H5 e" M
- (set_tile_pt1 1)
{- j- k! D. A - (set_tile_rad)) d# c1 @4 w- X( W0 J; I
- (set_tile_stang)
$ H5 s0 }* c! q. b. b - (set_tile_endang)
3 j! j' q8 X0 N7 Z - (arc_calc)
9 y$ ^8 Z7 I# M# L* ] - ;; Define action for tiles5 f6 R# ?7 ~! ]: ~
- (set_action_tiles)
2 C# z+ u) B& q; m - (setq dialog-state (start_dialog))( J2 V$ ~; o6 m# b& J
- (if (= dialog-state 0)
+ M1 i! t6 X- y. M: g$ A0 q - (reset)
7 q- F( l/ C% ^ - )
+ |) i& R" G0 v& ^1 }, P - (if (= dialog-state 1)
( u! B$ B& n5 @6 p" C - (modify_arc)6 c/ k9 W2 F# v( ^- i/ o8 }
- )" |# o) o! W% |/ W& i: L
- (if (= dialog-state 3)* q1 G9 F0 T4 F+ Z( r* f/ y2 l$ C
- (progn( p T, e* O" `# T0 i5 d
- (modify_arc)
8 q9 a8 y" j2 y" l8 a; S - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
- J/ R& ^* ]% y3 t, T9 y - (ver_pt1 1)" I' v" p9 @6 k# ]
- (ddarc)1 v$ L6 @ Y2 ~. l
- )" M1 Y4 B8 a; \) e
- )7 i! V' i, K t- T# G+ O" v: B
- )
. [+ k- u, h% G9 R- M" Q: q - ;;9 n9 U/ }% x) @4 H" ^* z0 G& P* k
- ;; Modify SOLID or TRACE3 ` L! V m! d9 H o3 U0 F
- ;; Note the Z value of the object is determined by the Z value of the fourth& Y/ Y- A. \& K: ?; V. k
- ;; point - code 13. Changing the point values of a solid or trace from a UCS7 j- H7 l2 f3 S S0 U: ~
- ;; that is nonplanar to the UCS the object was created may confuse the user.
0 O! p1 W# M% o' N H# r/ l - (defun modify_solid ()
% g- k) f5 T- Q( b- E* e - (modify_properties)
4 P9 J( ]* q* {8 b8 U - (setq pt1 (list x1 y1 z4))
* Y! A: A& Y8 u2 R4 Y - (setq pt2 (list x2 y2 z4))9 B' v8 E) j u& P) Z+ W" B2 c
- (setq pt3 (list x3 y3 z4))) J! g! {& F- a5 p" @) O }
- (setq pt4 (list x4 y4 z4))* ~; a1 U0 _* E3 n' Q8 z
- (tempmod pt1 10 1)
. H. r7 ^2 }! G- F" M7 y. c - (tempmod pt2 11 1)( e' ]7 S. n; u8 P7 o
- (tempmod pt3 12 1)
4 N( I4 P) t4 Y. [" ` - (tempmod pt4 13 1)
; \, f3 o3 G+ s+ F4 P - (entmod elist)
+ l1 `* T+ ?/ B- V7 i! V - )
x1 w* k! N; |9 O
/ ]8 f; s0 T4 B# _6 l, Y3 b8 E: m- (defun ddsolid ()2 e! R' G) [! t0 U1 P
- (if (= etype "SOLID")
5 K. \' P7 _2 b - (if (not (new_dialog "ddsolid" dcl_id)) (exit))
$ l! N+ N# R: w% c$ j - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
! m- u' [& c C5 d - )' z8 Z& V" o" o" x3 G4 G8 D" G
- ;; Set initial tile values; c. v! u3 \, g* M
- (set_tile_props)
, u9 J) Z! `! L: a2 z* f - (set_tile_handle)) E) [3 h1 `- n _+ i+ _, m* o
- (set_tile_pt1 1)
9 ^3 T* L- c7 U2 B3 B - (set_tile_pt2 1)
1 [5 O$ S. @7 z) N" ^- j - (set_tile_pt3 1)( r v* c% J1 g8 M( a1 y
- (set_tile_pt4 1)
6 z1 q; z/ J/ m6 ?; G0 {. m" P1 R - ;; Define action for tiles
5 W3 T& R# D z% F - (set_action_tiles)
~6 e( ]; X/ q- R9 M, V3 g. i, R! X - (setq dialog-state (start_dialog))
5 h- Z& @: d% [0 k. w3 e' j5 l - (if (= dialog-state 0)1 o6 S: D5 `6 e8 I; f8 k. E
- (reset); ]2 _: O0 L/ ?
- )5 `$ o" X; u1 E7 Q) A; v1 h1 B8 i
- (if (= dialog-state 1)7 u8 k3 g! z) }/ U
- (modify_solid)
- H a, }0 w. q. N9 T - )
! Q! Y! c9 i1 n0 x - (if (= dialog-state 3)
/ K: ?5 Z# t7 a. h0 x, E - (progn
: y3 k$ `* n( ?, T) K% [4 Y - (modify_solid)5 G. G' ]3 m5 s0 u1 R" W3 v& W
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
, W6 i6 a8 d0 |; R8 z6 |! C - (ver_pt1 1)
2 H% H4 {' o' U% \! J! e - (ddsolid)
7 i) B# X d# H, b: @( | - )
) O0 g$ A% k2 a |2 P. ` - )
T- D4 q: h8 w: M - (if (= dialog-state 4)% i: E o. Q- s9 E
- (progn
1 W# w' W1 z! S1 u/ S - (modify_solid)2 W1 ~* b [5 o N# H0 I2 F! ~
- (entmod elist)
' b. @1 p- h/ D3 H) C - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))7 b5 R* H+ w4 z
- (ver_pt2 1)( ]9 {+ O/ M( H; x. Q6 r) b
- (ddsolid)2 i; L; G# r# V& _8 b- I6 G3 l
- )9 r( b+ \' C5 q
- )( t, q7 O8 Z0 g0 }) C* w$ c
- (if (= dialog-state 5)6 C8 G; N2 z( D: T8 x, m$ g+ U
- (progn; p# O( e* e9 H# s( I) W
- (modify_solid)( W1 Y8 H8 v# o7 \
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: ")) H9 j9 p) B% \& S) O7 r, j" N) z
- (ver_pt3 1)
1 z( J W x! G - (ddsolid)( [/ [' u, V+ I8 C! t" a9 n' V
- )
$ h' I* f3 I* K) K, m6 T - ). a6 q( I! U5 L7 S
- (if (= dialog-state 6)' C) N& s& M; H2 b" K7 h# X
- (progn& `& h) y! D; `1 V7 a; b7 \2 t0 s
- (modify_solid); B' S/ }3 r `( T
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
- P5 N$ M' G3 N - (ver_pt4 1)( j/ Y2 d- [8 ^! E
- (ddsolid)& |5 j+ w3 x0 T
- )+ i/ ^- o% r1 I2 i
- )
- K( H5 s& q4 ^- N - ) E( H* O' x5 R0 d
- ;;8 ^$ G' x8 N1 X9 o: A
- ;; Modify 3DFACE
( ?1 ]5 q( ?7 _) ?+ p - ;;
. T1 _ r/ f& Q- _& ]/ N* C - ;; Check visibility of edges1 B. y0 B4 k2 [9 u) Y% e( |
- ;;( x" f& ~: v& x, O, \1 F( }
- (defun edgetest (/ bit1 bit2 bit3 bit4)
1 w- j0 @" Z( M - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))9 _6 g0 ^4 W* m& Q y
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))! P' S8 h* f% E/ P4 W. Z# H' _2 H
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
6 w: ~" a/ h5 B9 n* `9 \ - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))( ~3 _1 K6 C$ m/ g6 O
- (+ bit1 bit2 bit3 bit4)& k C( |: r& {; v1 i8 U
- )0 F* ^2 v$ R4 F
$ r9 Y' ~2 | J" D- S' @' {# U% \- (defun modify_3dface ()
3 ~: p3 C9 c- Q0 o7 r - (modify_properties)9 K( @1 j' I, E/ I% C
- (setq pt1 (list x1 y1 z1))
4 R0 d% ^6 [) \7 C - (setq pt2 (list x2 y2 z2))" ^2 L/ k4 [2 n# L* ~
- (setq pt3 (list x3 y3 z3))
2 A* u8 n- ~# x5 }4 i; r C& V - (setq pt4 (list x4 y4 z4))0 s: |7 t$ z9 t
- (tempmod pt1 10 0)* B( A. p2 `8 \6 y. W
- (tempmod pt2 11 0)
& _2 S" U, L1 z" x$ M - (tempmod pt3 12 0)( k/ {) E+ D2 J6 S# p, q
- (tempmod pt4 13 0)6 n# ~& t; a& ^$ @1 d4 G: P
- (tempmod (edgetest) 70 nil)% q! Q; l: f% J% K/ A5 v
- (entmod elist)
, Q, D* Q9 K1 O( G# q% Y; }, F% O - )
, t/ \, Y5 v7 h- z9 r8 y( i' @ - 6 X- z* P; K/ o* ]) t( N# m
- (defun dd3dface ()6 w3 O! s0 [6 u( g. f
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))/ k9 ~" t$ l" x X/ [3 V
- (set_tile_props), i( ]; ?. I- s& S* F4 |
- (set_tile_handle)
; E. o% [% s. k' t6 r - (set_tile_pt1 0)
) a) Q3 J ^ B - (set_tile_pt2 0)$ r7 |/ X& L- ?/ v
- (set_tile_pt3 0)0 X7 \& a5 ~; I
- (set_tile_pt4 0)9 V3 J: v9 ^3 s6 _
- (set_tile_edges)/ j# X. S) r7 Q+ H7 ]
- ;; Define action for tiles. B% Z/ }. }* ^* R" ~! Q
- (set_action_tiles)& k, z$ `$ \) q/ `& B: L! m b$ \
- (setq dialog-state (start_dialog))" t* `" r2 ]5 T ]# H( k) A
- (if (= dialog-state 0)
; w. r2 H! X6 n9 D5 z+ a" I - (reset)
5 _2 f6 Z1 y* S7 u( S0 X - )
; Z _& ^: f. r. w! i9 z7 ~6 N - (if (= dialog-state 1)8 n/ r0 N! j# E/ F8 ?* `2 Q( _
- (modify_3dface)
! q# l& e7 m8 B: Z - )
! X( L1 h$ l/ I9 \$ J7 H8 a; P ]& f - (if (= dialog-state 3); h/ O5 w5 }& [: n+ v
- (progn' t' E7 @9 E! r+ Z8 a- Z0 }" m1 z
- (modify_3dface)# D; Q# a4 A( t5 ? t
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
2 p: [9 i- C# f3 e5 ~. `$ z - (ver_pt1 0)( C% z3 B, g$ \6 {
- (dd3dface)
, {; }2 x; s4 Y: i - )9 w0 F0 R B- t, b6 r4 F+ l' p
- )
3 Q% x6 v$ \' p9 N3 B2 F - (if (= dialog-state 4)
! Z4 D! i7 v5 m8 X @, k3 A, e3 _ - (progn
2 S O4 o8 g2 n - (modify_3dface)% g$ _6 } s5 C: a$ L h
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
8 ^# [+ `) ?, r/ \; e - (ver_pt2 0)' ^* b9 ?: |% D% `( ?
- (dd3dface)) G- w, h" P9 ]" K
- ) R4 v" j' {+ g( U6 }9 x' @% t; U/ V
- )# d: `/ K, ~* q
- (if (= dialog-state 5)
9 R/ b4 X# i0 x) g. s! W2 G - (progn
, l4 X4 W- T( e Z k - (modify_3dface)1 v% j* ^$ q+ ^ D B& b# O! z
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
. B! _) x0 P) q2 k/ X4 m4 k - (ver_pt3 0)- ^. I. I5 g3 |% s
- (dd3dface)
5 \+ J9 N5 h; b' d2 M4 m* R# l0 {7 r - )
3 N2 [$ f% A9 j" n8 i3 |9 U h - )0 C/ V0 k( \: l3 t+ A, H& v( {
- (if (= dialog-state 6)' H, Z4 ?1 W# A7 @ v( H9 F
- (progn) z. q$ [) F h# v# n
- (modify_3dface)
( M" B/ } Y! W E6 p - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
. p* v8 o* a. @4 F9 ? - (ver_pt4 0)
6 l7 u, T' s$ V, y. f2 y - (dd3dface)
1 h2 V: |0 C5 A% y8 D' n - )
8 H2 y) E* c& |6 u+ P1 D - )
5 q, e6 \/ B3 M. L* F1 X4 l, E! _. l - ) S; c( z% m% w! u
' h% v8 H; I2 \) A* u7 t- ;;7 z* O" ]& q; L7 L+ }
- ;; Image functions8 @9 m- M$ `+ ?1 G) p$ n# W
- ;;
% T! I- u" R6 I& C+ b - (defun image_scale (/ upixel en n userscale temp)! K# p( J$ n. S* q
- ;; Calculate the size of an image pixel in AutoCAD units
" l+ V/ o/ A8 h - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))9 u- n# g2 I; Z& C7 K
1 @# }) z. Q1 A0 [0 a2 _ [- ;; Retrieve the user scale
1 \+ T* @" \% j2 M& G2 F% d o9 ] - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
) X, Q" p) C) ]1 ]6 `$ E
6 d: {8 d. X* I: a- ;; Next, extract the image units and pixel resolution( q' j, n; z, B3 V, f0 X8 P. l
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
( \ N/ g5 G: m - (setq image:scale (* (cadr (assoc 13 elist)) upixel))' N+ P2 @* Z# z% Y4 R8 b
- (progn+ }+ x8 N& d8 `# u' B
- ;; Convert the user scale to the proper word
% M* L0 D0 e, P" B/ e - (setq n (cdr (assoc 72 en)))0 Y$ o/ } x$ S0 B& O
- (setq temp (getvar "LUNITS"))) m2 I D* g; @# [
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
: w, h9 X+ E3 | - (if (= n 1) (setq userscale "Millimeter"))
7 y4 m4 t9 _' b, Q" N - (if (= n 2) (setq userscale "Centimeter"))
% Q8 w; I5 L* {* N9 i - (if (= n 3) (setq userscale "Meter"))* f/ X7 h2 _" z/ U% F# \% z8 n
- (if (= n 4) (setq userscale "Kilometer"))* X& {6 _5 R# w' c" M
- (if (= n 5) (setq userscale "Inch"))
: \ i7 h; H: G" H( f - (if (= n 6) (setq userscale "Foot"))" w% }0 D5 X: \. Q- o! O
- (if (= n 7) (setq userscale "Yard"))* O* t6 l$ L: f: n, f6 O! c; I
- (if (= n 8) (setq userscale "Mile"))9 s1 P7 v$ X7 A# X1 O3 @
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
1 n' e5 U% m7 x7 @+ r, S9 q - )9 P. V& @6 E$ H# E: l# |
- )
- {# ^/ p! c- {( }- w! i - )
" G. @- q1 d; C& p: G
~, y7 _5 @7 e" s& U, v; B- ;;% g. x8 r1 o% S$ ]
- ;; Scale factors for block insertions
, p* o% |9 N- W' X2 }# ^ - ;;( G9 j: O6 y! X) D2 b, {
- (defun image_set_tile_scale (/ temp)
; B" Y- ?* ]# D0 X# _* L$ J - (setq temp (getvar "LUNITS"))
. g& T1 c" a" \/ `% p; W- S - (setvar "LUNITS" 2)( v$ c& s6 v" W1 p& f3 A `
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))) |% J ~9 w0 q
- (set_tile "wid" (ai_rtos (* image:width image:mult)))
# F6 {" w: @+ i9 a - (set_tile "hght" (ai_rtos (* image:height image:mult)))
6 G' d1 N3 e) y2 V# I- ^ - (setvar "LUNITS" temp)
) t6 a* u4 X# ` - )
* E" k2 j+ {3 I8 {$ A - 4 m3 z1 Z" s9 \; g2 D
- ;;& y# \+ D8 l6 y0 [9 G
- ;; Set the scale, width and height values appropriately./ X1 p0 S9 J1 x$ k# B! p
- ;;
9 g; K2 o+ X9 y( M - (defun image_update (field value / orig_value new_value mult)3 p( V$ U, l9 P1 Q
- (if (= field "xscale")
0 R, C) T" }1 j( i - (setq orig_value image:scale)
7 @, ]6 D. v0 r - )
* V9 u5 l3 v$ D3 c" n# D2 `! j - (if (= field "wid"), ]' ?+ C, x% a/ F
- (setq orig_value image:width)
! Q) E# u! k, F* h9 O: C) `8 \6 O - )- w2 Y/ k: R# r) r4 M, E% N
- (if (= field "hght")% h7 L- }% `) {7 u d( g
- (setq orig_value image:height)2 t. B4 Y9 ~ [; T) }, U/ D
- )
2 P$ V% A( d' V7 R0 ?0 \ - (setq new_value (verify_d field value (* image:mult orig_value)))* q) ~0 I0 T6 J& s+ S
- (if (/= new_value old_value)
) e2 S" U# i( b - ;; Make sure the user has entered a sufficiently large value
. }1 g7 f* n: j - (if new_value
' c6 C. O5 O9 c3 d3 X7 O2 ^7 ? - (progn& P. m P' j, l
- (if (< new_value 1e-8)
8 P4 G3 I& j/ Q# \ - (setq mult image:mult)7 A( H# d4 t2 c; _. |- g/ U* O
- (setq mult (/ new_value orig_value))* i7 N3 y E; W3 G2 _/ X* n, \
- )
" h+ q5 P' `6 J9 }7 z1 @, G - (setq image:mult mult)
0 G! B7 S7 O; [# | Q" H - (image_set_tile_scale)
# E( K1 H# k+ I! b* h/ W2 e - )
1 f t" D% `6 w% A - )/ }+ o$ q- ]# W2 G3 G! g
- )
5 P D! P7 B/ r" n! i - )
1 s; ]( M5 C3 U - , {' R1 o. ?6 R* S* }" v
- (defun image_disp_opt (bit)
6 @ s) ~" [& B( e - (setq image:options (Boole 6 image:options bit))0 q6 F! k- z& r2 w
- )$ W @& H( s8 D
; D* c p8 i2 {! O$ f- (defun image_modify ()
- |2 f7 P9 n- p! d) G$ g6 E4 s - (modify_properties), v, U" \: \9 g! y5 |
- (setq pt1 (list x1 y1 z1))2 |# }' [; w/ L3 V
- (tempmod pt1 10 0)
" W3 z# B# t6 T6 ~0 y# p* ? - (entmod elist)* p% T) h( ^; ^- s. _; i& @! ~
- )3 m8 N& d) \! b' y4 ?" s
) v9 {* [; E+ \+ l9 {& T7 p- (defun image_clean_variables ()
* K( w3 E0 @: @1 B6 g% }% b) h - ;; Clean up global variables used here
0 ~! v+ \) ~0 M% I J- T - (setq image:scale nil)" ^% y6 s U5 e/ ]- X! {! a
- (setq image:angle nil)
! T6 d+ y+ H+ M) G - (setq image:width nil)
3 Q5 g6 v7 y+ l8 f; F/ x1 o - (setq image:height nil)+ ~2 j4 i# H U5 u7 q2 S
- (setq image:options nil). t, S) U: B0 r
- (setq image:oname nil)/ R n, U* t6 d0 K
- (setq image:olist nil)
5 N5 d: |8 y+ \# S4 B2 \; t - (setq image:mult nil)% A# e7 e) B: F$ X! A" {- ?
- (setq st_ang nil)
" R' J4 w" ~# K* V3 c, w# S - )
1 ?( _ o: ^! w. Y% H- u - / F! O: ]1 u ?/ X8 ~( o: d! S1 l; v
- (defun image_scale_vector (v1 value)" e1 Y' l0 k- e. G1 i
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
- q/ N2 Z! a6 M& z3 Z U8 p - )7 X0 w) x. J8 a( S" S
- + I [5 k3 ~) h7 m
- (defun image_cross_product (v1 v2 / vx vy vz), o& E1 e" b c
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
- P1 T6 O; W8 F [$ d( `& I - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2)))): d( T- M+ u3 @2 Z7 Q2 `& f
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
/ t# ~, K7 B9 x( V - (list vx vy vz)
, ?7 S8 X) F) L2 y8 J - )3 L9 U7 g& l" Q& x
' k- I( u4 }$ t" i R- (defun image_dot_product (v1 v2): _5 Z7 u% g5 S+ X1 n- P$ s5 z
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
! `% C; C) l! w( k! T- N: C4 Q - )# X& e& E# q4 n, g' x- O9 {' S
( o& p" ^* T1 S3 p. I, e- (defun image_add_vector (v1 v2)
8 w! W M3 o( v) l - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))$ G4 x4 w2 @' I: e
- )$ ^3 n% V+ n1 _' t3 C" I
) l2 D7 m6 r( g) O% w- (defun image_subtract_vector (v1 v2)
7 n- A* h' N1 i4 N - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))# F- R! D; W2 p8 C; Q
- )
2 `; J8 _1 Z1 A$ V6 ` - * Z/ H: l& v9 h# W" j* h7 o
- (defun image_normalize_vector (v1)8 }/ a0 `- { Q3 G7 W5 \
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
5 ?. v- b6 L% d5 m: S, q - )
$ U: _0 K9 P6 c+ q) u" I* F; i
2 y \4 J. s. J5 L% I7 d- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)2 i7 T5 Z9 o, p: t
- ;; Normalize the axis
3 G7 z2 C1 f$ b o1 e6 E; T - (setq axis (image_normalize_vector axis))
& h0 o1 A) {0 o/ X# F - (setq along_axis (image_scale_vector axis (image_dot_product vector axis))): \! G5 ]# ]9 D4 ]
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))/ x3 U4 ^1 U) u6 ^3 i9 ~+ Y) Y
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
/ n" a3 e3 b5 W3 R* q1 | - (setq in_rot_plane9 v% W! L& p1 [: @
- (image_add_vector# k9 q- H& n2 q8 F7 E8 B0 U' {
- (image_scale_vector axis_x_in_rot_plane (cos angle))
( o$ P- O, |: e* V s8 O/ X0 | - (image_scale_vector axis_y_in_rot_plane (sin angle)); Z! L# \# J5 C" W
- )+ I4 l, t4 m* P7 J! [9 J1 _7 R
- )" v* i) r* ~* _* U
- (image_add_vector along_axis in_rot_plane)" W; o$ V- W$ N5 r. L5 V8 x
- ) |0 S, p9 e' A I
- " k5 K- b9 Z" D
- ;;
8 A2 Q- J; p% ~ - ;; Calculate current rotation angle if appropriate.0 u" Q& D$ R. V0 N; ~# @0 h3 g
- ;; If not, grey out the rotation field.
7 x7 c6 z3 Q" B - ;;
* {4 w- v) l+ L) [ - (defun image_rotation (/ normal rlength zlength sqrt_tolerance) u2 T7 D4 |6 V- _
- ;; Determine if image normal is codirectional with' e% ^1 h/ P8 d$ t5 K n1 R
- ;; the current UCS Z-vector.' c, T4 h2 k0 T
- ;;0 H' h- H6 u/ \- W: Y) i2 Y8 Z
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))7 h7 U+ h; B6 l8 j
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))- _0 ]) Y* r) _
- (setq zlength (* (last normal) (last normal)))
8 \, f" _% O, x7 Q: [$ @- {! c& m- q - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.+ }; F p7 M) \* E4 t' L. ~6 q( }9 F) ?
- ;;
# x5 M+ y' A3 D: K% L' \ - ;; cos(.0001)^2* @0 p: |8 F7 G
- ;; Tolerance = --------------8 D. C# P3 H* C8 }! m
- ;; sin(.0001)^2. L# q" p( v. d" s5 l3 g
- ;;
6 k- ?' G* C: c& X7 `" c1 _" F* ~ - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
0 V) q l Q9 l" M" N) r2 v9 o5 R - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
, ~& j9 e( X" k - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1))); j4 k9 c3 x; o7 n7 h- p6 _8 [# b
- (progn
: P. ?0 v+ e7 c. }- X# t - (mode_tile "st_ang" 1)
9 f f7 E6 L+ d - (setq image:angle 0)
3 v5 j6 @! g* h* N/ K: u' X& ~1 I, w7 a - ): O3 t: F% J- y7 Z
- ); E7 Y; E$ ~0 W3 ?8 W
- )! y" p) ]) f1 v3 V
- 8 y7 G8 O3 i& B, `; b
- ;;
3 i( A# ]" G: N% V - ;; Modify Image
x; b% l+ p: h7 G - ;;
! L% O, `5 j" F$ G- \/ E - (defun modify_image (/ u_vector v_vector z_vector)
2 M+ t$ r/ x( f - (modify_properties)
" N9 P" O4 O9 Q& F1 O$ U- | - (setq pt1 (list x1 y1 z1))
/ [" t* M, W/ V" Y: n7 D7 n* J - (tempmod pt1 10 0): C+ }2 u& E* B7 Q% ]
- ;; Make display option changes to image
; `+ ?! p7 r: p3 \% U7 O - (emod image:options 70)
; Q- e' J r0 _" v/ u! H) [& _# q - ;; Get the u and v vectors
2 m1 e' M; ?6 F. ^ - (setq u_vector (cdr (assoc 11 elist)))
/ k4 [ N$ K! X( p: s - (setq v_vector (cdr (assoc 12 elist)))7 m6 k5 e( z1 g" ~9 U
# j4 \; K. M+ Z' O4 v4 m- ;; Make scale changes to the vectors
, s+ G; ^ U. z1 @* k6 f - (if (/= image:mult 1)/ U1 j: G/ g! K; U5 v: ^- z) y
- (progn7 n* z$ L/ a4 G
- (setq u_vector (image_scale_vector u_vector image:mult))
# P K. F1 L* J8 u - (setq v_vector (image_scale_vector v_vector image:mult))+ D3 W9 y: ^8 z1 c( T
- )
& k+ R& Z2 d' |% Q - )
0 h {8 o2 w5 \: }4 e* u5 @ - ;; Rotate the vectors& t1 p+ U* {6 p9 N9 \
- (setq st_ang (- st_ang image:angle))
: H8 F7 V6 v" r* k7 W6 o1 P - (if (/= st_ang 0) A3 ? F: h, n8 R
- (progn
' q' u3 P8 h6 ] b6 Z - (setq z_vector
$ ]6 Z. x0 i" \3 v( v - (image_cross_product# p$ Q! l7 A; C2 p6 h' c
- (image_normalize_vector u_vector)/ z- j' f6 [9 N& k* U; d
- (image_normalize_vector v_vector)0 L9 l# i4 L6 K0 \% E/ c
- )" R) x5 ^* T! i5 |
- )
, q, N' v" X( h: O* P" `. X - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))# m1 ~6 W+ s% X, c
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
7 |4 ~& z1 e E - ) P0 F k* C9 o% u* ~
- )2 k% \: m$ H8 g% \
- (emod u_vector 11)
1 y$ J" A% j7 R0 }8 t- t- n/ Y - (emod v_vector 12): @3 k* k: ?( R) G' O) q% p
- (entmod elist)
( S9 z8 z! |" }& Z7 E - )# g* |% f& x/ S
- # F; b4 Y( A; o" C+ c9 D) e- e2 m
- ;;
, ~- t4 A7 y4 j* q - ;; Run imageadjust on given entity, working around possible- ^ n" S% c' ^
- ;; re-entrancy problems) L- \) T2 Q3 E' L7 j
- ;;# M) k% i/ p1 _+ t: f
- (defun image_adjust (ename)
# r( }7 Q% F$ Y$ F' S4 @ - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...! U$ F9 y2 A! R8 W& |
- (imageadjust ename)& M5 Y% G, [9 V8 I" p
- )
: u2 b6 s% e9 w: I) V. G6 H- K6 \ - % A0 E, Z- \ L* V, g$ [/ X
- (defun ddimage ()
1 T3 b! _2 W( q& M+ }0 G - (if (not (new_dialog "ddimage" dcl_id)) (exit))
( S" s: \5 p: e- S - ; O7 L% v% n. s- n0 f! x# u
- ;; Grey out the thickness field.
2 W3 ~8 o& a! _1 b% E& w - (mode_tile "b_thickness" 1)
3 J% m5 T* Y( `, Z/ e) H - (mode_tile "eb_thickness" 1)
6 |% l0 z* x# Y8 q" I+ m - : ]0 D# Q9 F4 @ f# a8 F
- ;; Get the associated def object.8 p. M! D* v8 D
- (setq image:oname (cdr (assoc 340 elist)))
* ]7 G% e0 M6 c2 y5 l7 U - (setq image:olist (entget image:oname))
' C5 _" T& g' ^: ~) E0 X% O - ) {/ L. b7 H: m- ?( D( g
- ;; Set initial tile values
. b1 O7 f5 w) _+ \/ l r - (set_tile_props)+ ^! o. G: J8 s: [( @/ O8 c: t
- (set_tile_handle)
) D/ F6 T X* @ - (set_tile_pt1 0)
2 _ P" d1 B: I8 K1 E( V0 u* M- O - (setq image:scale (image_scale))
. v v5 Z0 V! [ - (setq st_ang (image_rotation))8 I" H2 K. {) w* M/ ~, u/ o
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))4 b( S: A+ |2 A! I8 v
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist)))): a7 ~9 A/ o/ P6 J& p+ @& Q
- (setq image:options (cdr (assoc 70 elist))), [$ y/ _; l- A. \7 d, v: I# e9 \! |
R) {7 w* S8 J$ c) E2 X- `- ;; Record the last multiplier for use in image_update function
% w( _( k, O) G- X* h1 Q1 s - (setq image:mult 1)7 f( U a2 z7 e' k
- . i& e( S: X( ^
- ;; Retrieve the image name1 p, H4 N# V1 @1 S! h' r
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))% _8 \% K7 O5 t6 I2 r3 w8 j
- (setq flag 0)$ g- e* F+ k* o9 D7 Z
- (foreach n fn# n: N! B8 W/ f+ |9 _4 b8 r
- (if (= flag 1), q z4 Y/ k: W* K1 B @ w
- (progn
; s; r% U9 R3 ^) g - ;; Display the image name
1 T0 E7 s$ B: Q$ l - (set_tile "image_name" (cdr n)): w- x- {5 K& ~" D
- (setq flag 2)0 d& j o/ I& S
- )7 R2 ]9 I- S0 q
- )
* u# v" Z) }# L8 }2 B1 O$ F - (if (= flag 0)
5 B1 o) P0 v1 N% {; K! u - (if (equal (cdr n) image:oname) (setq flag 1))* N% a9 E$ ~! \+ H! g* V0 @$ l* l
- )
+ U/ Y6 a- e" O! y* O - )
5 m+ ?/ U8 f" E# y7 Q; P5 M - 7 z/ |3 @- N. g! I) S, R( J8 {
- (set_tile "image_path" (cdr (assoc 1 image:olist)))3 l; { x: F; N6 }5 m
- (set_tile "st_ang" (ai_angtos image:angle))
, X) g: s4 x3 h/ j7 i - (image_set_tile_scale)
; y# h. B8 o' A4 e5 W% v/ B4 O
9 V: `* ~+ [3 d7 E* U- ;; Check the appropriate boxes4 Y' [" v1 s# c4 _+ F D! k
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
6 _4 l f3 E. I6 y7 s8 k# \' v- U - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1")). e% D: J+ ?$ S: y- m" S1 R4 a
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))3 P6 a# F; q* U: p) P
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))! D( a# `5 t4 ^8 O
) R: w2 @2 d' _. d7 F% T9 A6 u- ;; Define action for tiles9 u4 U( S# g* `
- (set_action_tiles)
0 A# R& S0 i9 L# j" t5 D - (action_tile "xscale" "(image_update \"xscale\" $value)")/ U- {! _9 x* C2 S$ Z2 [
- (action_tile "st_ang" "(ver_ang1 $value)")' j. z% X, w7 b! \
- (action_tile "wid" "(image_update \"wid\" $value)")
$ I% j7 Z8 f9 {' J - (action_tile "hght" "(image_update \"hght\" $value)")7 K2 u: e+ i2 ]
- (action_tile "image_show" "(image_disp_opt 1)")' j0 h' e- r/ M3 d
- (action_tile "image_non_ortho" "(image_disp_opt 2)")
" P. |* c" M' @/ \6 j - (action_tile "image_clipped" "(image_disp_opt 4)")
u% q9 ?# h, K - (action_tile "image_transparency" "(image_disp_opt 8)")
) k. }* V5 T9 p0 q - (action_tile "image_adjust" "(done_dialog 4)")7 t; z. Z1 ?+ j* A0 }1 Q
- ( ~6 j; N a. D/ C5 e
- (setq dialog-state (start_dialog))* [9 j1 y# M% N
- (if (= dialog-state 0)1 c) I; G- r: o) A
- (progn. w% h3 ^" G v2 p% [) N; |
- (reset)! z5 |$ t8 `4 y6 U/ B$ @) I% _' x9 b
- (image_clean_variables)
3 B& d N7 I: U/ _; N - )( O4 {# Y4 |5 l7 b/ l. P/ U( @
- )
" K$ ]2 G; R, l/ }/ g1 i' z - (if (= dialog-state 1)8 L& a6 C; `$ c% a1 m
- (progn: L5 o# z9 I0 q) C. Z$ l' ^
- (modify_image)9 B8 s' q8 O9 S3 Z5 _. ]( P2 ]8 I
- (image_clean_variables)- H. P# B1 ~' s
- )# ?' k D W% |$ H; @0 }
- )& M* p Q ^2 }, V! u3 }& A* g
- (if (= dialog-state 3)
) e$ f/ J A' R Y" O - (progn- c2 l9 b! i: C7 j+ p8 ^
- (modify_image); ]! k# j! y$ D3 B/ n( X1 [7 U
- (image_clean_variables)
. V% u6 L* E: I - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
! f2 C, S2 S* X- K. w - (ver_pt1 0). w; ~; ]3 J; e# x: q3 x) X
- (ddimage)
# N4 Q) c3 }8 n8 G) i - )
, w4 C9 {3 R. ]+ h% C - )
4 e2 Y2 `* U4 r/ S% B - (if (= dialog-state 4)
9 Y$ u- Y' \$ P$ p - (progn
+ E' H5 Q3 T" M X& t+ q3 S I - (modify_image)6 @: U+ D1 ]0 t
- (image_adjust ename); I7 |. j8 k1 U
- (setq elist (entget ename))
1 ]9 A& ]2 a1 `9 a- k5 J! U: E* T0 U" }- h - (ddimage)
4 a6 u" W! e& I7 N. n; \! } - )
, J, I8 f0 o, _3 s/ D& a - )+ V1 g; @2 J, a! L6 N
- )6 V, N3 U" A7 A' B& W
, x- l( X( F/ w6 l& \- ;;, `7 x; n- n8 w3 n/ s
- ;; Modify BLOCK (and its Attributes, if any)
& G# T; g2 Z; l1 A" g - ;;. @: z) l/ E% }! p& A
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
3 L- \2 B: M0 L) s; |/ x+ K+ Y, J - new_wid old_wid old_rot scaling old_scale
3 a: v, {- f, c6 k% g' H, w* P - xdelta ydelta zdelta xbase ybase zbase ipos)
, M$ d4 v- ~$ q0 H8 W4 ? o! Q3 M - (modify_properties)
0 {; S; g' G0 m- X! ~ - 1 ?0 |2 z) |5 W5 @4 s
- ;; First, translate and scale the Attributes, if there are any.. m5 }2 ]% Q+ p" z6 Y, h
- (setq old_rot (cdr (assoc 50 elist)). I) _9 V' G' c- K
- old_scale (list (cdr (assoc 41 elist))
% K/ }& S1 W1 | ~; A5 d" s - (cdr (assoc 42 elist))
8 O6 R: f5 P; l! ]& j9 Q - (cdr (assoc 43 elist))1 S4 h( e3 t3 P ~; V1 D6 R
- )
, e( w& _6 R; k - scaling (or (/= xscale (car old_scale))
! S& [' A: g) y5 S' k1 d4 s - (/= yscale (cadr old_scale)) n+ _1 t- J8 L+ r S* n) L) z
- (/= zscale (caddr old_scale))% b L" x% H, D. e& Y6 c
- ) F, H& U6 {/ _0 J% T3 E
- attr nil ; No Attributes modified yet J9 n( D) n* b, r" M+ q+ Q: m, ^
- )
& c' O( R9 c" e* M6 I" T - (if scaling
2 T ~& {7 q5 N, [( M - (progn
g6 W) z2 `# X/ Q8 w - (setq xdelta (/ xscale (car old_scale))
; z) C/ [' ~( q - ydelta (/ yscale (cadr old_scale))4 G& V9 z" ^8 L& z5 |! Q
- zdelta (/ zscale (caddr old_scale))
9 }+ a6 N5 H8 A, E8 f E% i" X - ipos (cdr (assoc 10 elist))$ L$ }: x7 _5 r v' v- ~. ]
- xbase (car ipos)* _( W1 _& U+ G1 f& f/ N
- ybase (cadr ipos)
$ D8 [# [% E9 m0 p: D( @2 G - zbase (caddr ipos)
4 L- w3 ^( g- ? - en2 (entnext ename) ; First Attribute
9 Y1 E/ W9 e( s4 e. e1 k9 y - )) ]/ D; J$ W3 x; W0 k* |
- ( L" f4 v- t7 }6 n* `
- ; If the Block is rotated, temporarily un-rotate it, along
7 W% i/ z) T& I - ; with all its Attributes, so the scaling/translation of the
$ Y+ |1 F T7 N0 N7 C - ; Attributes won't have to take the Block rotation into account.
6 i. R( Z: {/ X# p* @& a - (if (/= old_rot 0.0)
: e/ K* f" ?1 n; L6 l# x" T - (progn
5 l9 I9 {' O. P$ H& U - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
4 R% o: S+ K6 k/ ?; w u/ A7 U( E' E - (setq old_rot 0.0
$ y+ T+ M9 V. M7 d2 l( g - elist (subst (cons 50 0.0) (assoc 50 elist) elist)
% K) l3 W1 y% Z: d9 Q" W, J - )0 X' X/ O% Q/ a" I3 h$ v: ?9 |- K
- )9 {% O7 g0 {% Q6 _
- ): T+ I1 G& \# l0 d# x
1 H- f0 T. ^1 N2 `0 d+ \- (while en2
6 B0 w/ H, ?" X4 ]6 ?& U - (setq el (entget en2))0 f+ B( S" l3 O- f. s% R
- (if (= (cdr (assoc 0 el)) "ATTRIB")
4 D0 c, i3 q7 }) C" o! i9 Y) c - (progn# M, p0 E: z' F8 w0 i1 X# [
- (setq old_hgt (cdr (assoc 40 el)) ; Height6 f$ l6 z$ v' V5 Z ]
- old_wid (cdr (assoc 41 el)) ; Width-factor
; m% D1 I& B6 [6 H: T/ w1 ~ - oldp1 (cdr (assoc 10 el)) ; Generation start point
5 h+ ?$ S' B/ ^1 s" N - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
. c/ p/ ?" u( C: d - ha (cdr (assoc 72 el)) ; Horizontal alignment5 Z, B+ Y2 ~ n! o( Z8 J
- va (cdr (assoc 74 el)) ; Vertical alignment
* T5 b" i5 s0 k# f: t - . U3 O. {) F3 A% I- {- x
- ; Translate gen. start point u4 h5 V0 k& x) P# @0 s
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))8 N! @4 [( W% b( @
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))
+ E7 B+ N, v% ~8 _8 Y' g - (+ zbase (* zdelta (- (caddr oldp1) zbase)))
( a( r# N" ]% E% h6 I - )
( U& s' W8 |/ T7 {+ `4 [+ b - el (subst (cons 10 p1) (assoc 10 el) el)
3 P5 E# W6 j- ^ ]% M$ ? - )( m3 G5 F! [9 C( m1 ?
' _' R* [9 O! u+ l, _# V: C+ R# v& L- ; Translate alignment pt similarly, if present and applicable, ?* B7 e) G* W
- (if (and oldp2 (or (/= ha 0)' ]5 ]4 |' m) b& d1 L) _
- (/= va 0)1 e+ a- }9 `* x* j2 u
- )
! ~. G6 ~; S- n% | - )- O8 F8 k6 }/ t o1 }5 p
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))7 T2 ~& A, ?0 P
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))1 U$ V9 H1 G) {+ T
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))7 s% E4 ]& g) C t# n
- )% T4 X0 \3 v- \% j0 ?
- el (subst (cons 11 p2) (assoc 11 el) el)
' D6 x: w& H+ x4 W* A1 q2 v - )
2 R7 [& S3 x$ x0 N8 F5 U - )4 B& c. ^+ g7 t
3 @+ N8 e- Y2 n) M/ E/ W- Y, d' n- ; Each Attribute's height and width-factor were computed" M0 I( _, _' o9 V; Q
- ; based on the Block's scale factors. Adjust them now,
1 H3 q8 E2 c" N2 t! J& [* s$ o - ; by first reducing to values for 1x1 scale...
7 P2 B3 R& _- D9 V0 p! y9 L - (setq new_hgt (/ old_hgt (cadr old_scale))( E& H0 T% x4 Y
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
0 M, c5 \" J( m( i* S - )5 j- r6 o ?& @8 Q
- ; ...and then rescaling.
" l5 W. L1 j$ m5 r' R - (setq new_hgt (* new_hgt yscale) M2 A+ Y! H J8 k: d/ [
- new_wid (* new_wid (/ xscale yscale))2 i0 U7 c; G+ b( h1 p/ I* W6 i
- )
+ q9 \5 G+ C R W( c6 C' U' r - (if (/= new_hgt old_hgt)$ T. g/ f, |' @2 t X7 X
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
0 g: w3 F, J1 O/ I4 L: X - )& [+ a& x6 P; i
- (if (/= new_wid old_wid)
' C( v) r& l1 F - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))/ ?4 G& N1 |. R0 r' ~
- )
, y4 T) @% p0 m& W2 e+ r - (entmod el)/ Q. R6 o/ `+ T, Q/ r& @& ~; h
- (setq attr T ; At least one Attribute modified
. I$ Z V4 X: n* M! I - en2 (entnext en2) ; Next Attribute
+ R. g1 b* e. {8 `- t- n, t! w/ J0 D - )
% O4 D7 k- x# o8 E& ^6 l: q' L - )+ l( M7 g/ `+ y9 m# K
- (setq en2 nil) ; No more attributes$ F$ |9 C6 R- w! j3 f
- )) R; p2 k5 h) m) v! q
- )8 u& C5 N0 t6 I9 w- Y$ Y: Y, Y; v
- )1 R, P+ M' @+ ]4 t* W O! f1 G
- )
/ m; ^* {# K% L" S( K& f. I - ) t/ K& t# _, y2 K; ~6 Y- p
- (setq pt1 (list x1 y1 z1))
$ l8 j1 w2 H) u+ p2 C$ Y i, v - (tempmod xscale 41 nil)
2 x( s. y' I4 X' ] - (tempmod yscale 42 nil)5 M3 P' {# H' e* w8 }
- (tempmod zscale 43 nil) I' h( P2 g+ N8 @& M
- (tempmod col-sp 44 nil)3 _; Y V5 c: h6 t; z
- (tempmod row-sp 45 nil)8 v9 M; z( ]6 Q
- (tempmod columns 70 nil)
1 `9 k, h2 I, C2 O) T5 ]1 W& I7 ?0 h - (tempmod rows 71 nil)+ Q7 l/ M* p8 b& b) Q* ~
- (if (= xclipmode nil)
: G* N: @2 o1 D R" Q' f, c" F - (entmod elist)& U: ]$ y& F2 z
- (setq xclipmode nil)
' Y9 {# v d8 J - )
$ ~0 N4 @" \* {( F0 W5 `# z - (move_pt1 1)
- R4 F$ R% z9 C# e) Q - ) a( b* _( t: `7 S
- ;; Now do the rotation with the ROTATE command.: y& ^3 R( D5 E* e
- (if (/= old_rot rot), i% K; F8 ?# w2 f
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
" [7 F4 P, K8 F% M8 Y, e" I8 M6 ]: I - (if attr ; Else, if attributes were modified,
# Y& f# y7 {# H6 G" v - (entupd ename) ; just regen to force attrib display
. R7 L; W0 t% | v2 U# S$ c2 X' t - )
8 q, v1 M( A& p) Y* t - )8 I/ Z! O6 p2 E! K7 w
- (setq elist (entget ename))1 M8 {; t) e) `2 O' C
- )3 O; w+ J" B& C1 ~, n3 F4 j
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)2 s0 U/ v" L. A, x0 w9 E' ^/ P
- (setq newhatch 0)
9 f' ?# Y2 Z1 e* Z2 w _2 H - (setq blkname (cdr (assoc 2 elist)))
, r. X( H, \1 N8 m - (setq blklist (tblsearch "block" blkname))
( q9 @# K% t0 F) y& l - (setq blktype (cdr (assoc 70 blklist)))% ]8 \ \" r ?+ X! A3 } Z/ u
- (setq xcliponoff 0)
5 N; R1 X/ v' w) B6 t6 L - (if (or (= blktype 0)(= blktype 36))
/ y' ^" O( f, e4 d! ? - (progn
/ X* B; R2 H( A5 U% G - (setq xcliponoff (xclipon elist))
5 ~% ?2 [4 l* G6 D% K7 w - (setq temp_xclip xcliponoff)/ H4 I5 r. [5 K5 c* o' I F; k
- )
) z* a9 P7 G$ v - )/ F& x4 }6 X* B% C8 F. m
- (if (= (logand blktype 4) 4)
2 e0 s3 R o Z% |9 d1 p# b - (progn
& Q( C0 v" \- t. z1 L - (setq xrefpath (cdr (assoc 1 blklist)))
+ _: }+ ?) \* q8 e8 [. ? j; O - (setq help_entry "modify_External_Reference_dialog")3 W) P" z! Y: S8 W7 y6 m) G
- (if (not (new_dialog "ddxref" dcl_id)) (exit)): @. w* ]$ q4 U3 M, w. J
- (set_tile "Bl_name" blkname)9 |5 ^! p3 O) c
- (set_tile "path" xrefpath)& x$ R) C, U; u: q% t
- )+ J# L* K+ d# {: d7 W% X
- (progn1 g2 Z& A) E$ W
- ;; Get program name for use as Xdata app name, {. B2 a2 R: W* E: r1 \
- (if (not (setq program (getvar "program")))
0 l' w& _! t+ J' k4 F - (setq program "acad")/ A' M$ [6 k( z/ W% l
- ) e& U1 {) }- W4 S
- (if (and (setq temp (assoc -3 (entget ename (list program))))
3 q" ~$ u- w9 \. g - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")$ ~9 t! F4 H$ ?/ Q7 d
- (assoc 1005 (cdadr temp))! _- G3 B3 `7 E
- )
7 b* T0 N4 _5 ^4 _, K* D - (progn
/ _5 i3 l( G8 ~3 t$ @, f - (setq newhatch 1)
2 [. W5 K( P0 s8 N: J6 m( m, ~: ` - (setq help_entry "modify_Hatch_dialog"); b+ m2 ]' _, @
- ;;; convert the object into a new hatch
1 P. S+ ]% a: y. Y d9 F - (ai_undo_on) ;; enable undo" D( v5 j+ Z9 H7 L* w' I( M/ S% s
- (COMMAND "_.UNDO" "_Mark")2 W: M2 Z/ |$ B$ V5 o2 l4 Q
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")) l8 n" f/ p' [. ^0 L- J: O& a% H
- ;;; suppress nasty message from convert command8 \: c! J" r4 p! u2 W+ ]& u T4 G$ \
- (princ "\r \r")
h6 i/ W( ]+ G5 }2 m, q - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))- S j$ _. E1 D1 ?7 E* s
- (setq old-elist elist)
7 n9 ^& i8 u! ^) _ - ;;; If we have cancelled ddmodify
. v% E: V) ^; g$ a6 D2 T - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok0 o- w/ ~5 i& B* C; O
- (command "_.UNDO" "_Back")* L3 G4 Y! j# m% |4 P
- )
6 x; {' y- b ?9 E$ a - (ai_undo_off) ;; restore undo state
7 X& S! h# n3 n6 @6 Z' l6 g: ` - )
2 S; s8 i$ i- u5 C9 C; v - (progn
# q3 Z6 x4 N# A2 Q- e* K* z - (if (not (new_dialog "ddblock" dcl_id)) (exit))2 q" f1 [1 Q: K+ _% A7 P2 `
- (if ( = "*" (substr blkname 1 1))
, U. i3 g! t3 D" I5 c1 h4 ~ - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
" m% }4 @5 h, ` S - (set_tile "Bl_name" blkname)+ a) k5 r7 o+ H% [5 o
- )
3 b* d9 O. p9 r) j. H F - (setq help_entry "modify_Block_Insertion_dialog")
; p; ^! s1 l* G3 M - )
A! a1 E! H5 x2 r - ) K4 l+ D1 y& k- P1 K
- )' R& f" d8 G- l9 K
- )
. F# c! o% r* j7 c- S+ z: t/ P - (if (= newhatch 0)% \+ k N- n0 o+ [* I1 `$ J* [
- (progn
* H9 v! \1 I& T% D - (set_tile_props)
4 c4 ~! r) \+ Z/ f8 A - (set_tile_handle)
- [7 P# h9 \, G( k: U7 { - (set_tile_pt1 1) E4 ~! c1 f3 Z3 C
- (set_tile_rot)
! X+ v3 Y& I! |) s* f - (set_tile_scale)
% E) T1 ~& `8 U- l6 q0 W6 ~ - (set_tile_rc)
0 a; x, i2 A, w - (if (= (logand blktype 1) 1)
$ f1 S$ x G; ?% K# F - (progn
9 Q/ p" [ t j) k6 _$ r$ _; _ - (mode_tile "xscale" 1)
( S A) [ _, }/ e - (mode_tile "yscale" 1)* w. |- ?; \/ @" ?4 K0 k* j% o
- (mode_tile "zscale" 1)* D, F! a2 R: g! O
- (mode_tile "rot" 1)( K( X$ t5 ]: i* B
- (mode_tile "columns" 1)& ~: b" r' A1 r6 N' t
- (mode_tile "rows" 1)
1 A& z3 q* X- e* g; G - (mode_tile "col_sp" 1)- H8 K: j. q2 W8 W
- (mode_tile "row_sp" 1)
9 S [" a4 C. U2 T8 ` - )
' t: S( j; j+ s( L% E) L: r+ m - )
b% p% M# p0 b8 S) x1 t - ;; Define action for tiles( K9 e, R4 t9 U* u/ W% E
- (set_action_tiles), T1 d% [+ { Q, D6 u" G" E7 ^
- (setq dialog-state (start_dialog))
V+ Z& g' ~! |6 G; \ - (cond
8 R7 ]6 z) e. a7 z; C$ X - ( (eq dialog-state 0)* k7 L, B1 `: X2 P! @) k1 M
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
% _2 E! f4 u; v+ z5 Y - (move_pt1 1)( V" c6 S. c5 W& Q9 A5 }0 M
- (reset))
; U- o% ]. V" E, i) X2 g i* z - ( (eq dialog-state 1)
1 @$ d* k H+ }+ ]' B - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))6 ^% c* n) U# J f; _
- (xclip)3 U, L$ \7 \, e W" q' ^4 o- f
- )5 a: B9 @6 J/ r
- (modify_block))
+ j! J) O2 W2 t - ( (eq dialog-state 3)0 ~0 U; M# ? ^1 }* l1 |0 e0 N8 L7 e
- (modify_block)
w) s+ h% Z2 M0 B - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
: e# v- ^5 z+ z# z* G$ R - (move_pt1 1)
( V# g9 m C0 _+ ?' Y/ b- o m - (ddblock))
# [4 R' `8 J1 W1 p5 u - ( (eq dialog-state 4)
$ L" l$ T9 g; s6 U$ [ - (modify_block)! @/ C. Y2 I+ a% S% Z ?: u( ^
- ;; Get current handle.
; \# @+ x0 w- F4 U+ m5 i - (setq hand (cdr (assoc 5 elist)))6 h, p& f$ V. v; q) J! T7 R W8 I
- (command "_hatchedit" ename)
, Z& J3 @5 N! e: x1 S - ;; If OK in hatchedit, a *new* entity is created and the old one
- ^! u. L f8 O* {5 s - ;; is deleted. So if the old one exists, it must have been a" W# R" C9 ]/ h% k3 i
- ;; so rest the entity.! G" [0 S' u9 A @. j
- (if (entget (handent hand)) (reset))9 u; Y s3 _9 E* B( o
- )
- V$ M8 V; S5 N8 o - )# v% W- B0 |& Z1 e/ d# o( v" X
- )
9 E' o6 ]) b- a - )
( d5 X3 [: N! T# d$ {# b# [2 [ - )6 ]8 h9 N: {2 {- u
- ;;9 C2 _1 q" f+ A, k5 z7 J
- ;; Modify SHAPE
6 L! Z( U5 p9 A, l - ;;% p% T8 [3 n- I8 \4 W8 n
- (defun modify_shape ()
8 J) e9 W8 F& r - (modify_properties)
1 q' B) i0 @ z5 D/ ~- N, ` [ - (setq pt1 (list x1 y1 z1))" Y6 K& @* Y* x2 e7 I) S5 L
- (tempmod pt1 10 1)
" J6 I: T/ V0 d. S: b; X - (tempmod hght 40 nil)
# p. P; U. R1 M: s - (tempmod wid 41 nil); z4 {" p; S$ ^# C" b# d* f
- (tempmod rot 50 nil)
{- f9 {6 P( T% q+ z S2 ~4 } - (tempmod obl 51 nil)1 K" M1 X# j( @/ o: w
- (entmod elist). A0 V2 D( U$ i. c0 t# y0 V
- )5 j% H b0 |9 D% }$ ] u/ v0 s
- 0 ^: z" [! k! c/ B# k
- (defun ddshape ()0 K8 ~! F: h8 [+ [
- (if (not (new_dialog "ddshape" dcl_id)) (exit))
+ W1 E8 [' o- O - (set_tile_props)# _+ [, _3 u+ J( ?. i" \7 K% Z1 t
- (set_tile_handle)! ]0 n, N7 v' t( U. f' z. Z6 t
- (set_tile_pt1 1)9 r4 J8 h1 Y' F
- (set_tile_rot)9 `! `" n- r' K, i m
- (set_tile_hght)% f% p$ P- V/ @5 A$ c
- (set_tile_wid): x0 y% s& Q' [; C( a
- (set_tile_obl)
2 m/ l9 C" I( w7 R - (set_tile "sh_name" (cdr (assoc 2 elist)))0 g) r1 o' b& z+ A- m6 @. c
- ;; Define action for tiles
( ?2 e* O4 X9 u9 n. D2 O# L - (set_action_tiles)
! d& g2 [" n D( x! Y - (setq dialog-state (start_dialog))% [) d3 y! n7 ]5 a8 F1 a! P- L
- (if (= dialog-state 0)7 \! h# E- }: k6 D9 y9 A" u
- (reset)
5 {0 R5 G+ W* i/ I! ~: U - )
6 A4 m; Q6 P! b3 \7 ] - (if (= dialog-state 1), ~: Q% y& X3 R
- (modify_shape)
. ^' w% y2 s& q - )8 _8 b/ q0 H' o# y8 E# E
- (if (= dialog-state 3)4 v6 R. S# }/ }6 ~
- (progn
) \2 l$ |9 E, [7 ^; P6 s - (modify_shape)
( d" x3 j$ {5 x4 N" Q! V - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
/ J" T) F# L3 ?" v- B8 c$ J - (ver_pt1 1)# d, C3 r, q8 x) N& T0 ?: `
- (ddshape)' {' \6 Z) d7 Q6 \8 X
- )$ Y8 W1 N2 d! w s. c
- )( w7 D4 l$ H# Y! g
- )
! @* E1 G1 |4 w, F$ d# ~& P - ;;& q! W! [) A0 k, ^
- ;; Modify TEXT or ATTDEF$ s5 O" z( w9 ], r" o0 L5 s
- ;;
2 \# h& F3 q/ b% z# S& ]) Q - ;; Set bit code for upside-down and backwards setting) c- ?, _/ E+ P* g& ?" r" l3 D5 V& x
- ;;# Z" \# b' c( z" f* D
- (defun code_71 ()1 F1 q3 o( q Q; H' O; L9 u. ~2 ~
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
. ]: t% N) v+ ?+ e - ((and (= bkwd "1") (= upsd "0")) 2)
3 R; Z4 F6 I# S' [ - ((and (= bkwd "0") (= upsd "1")) 4)
% d/ P" }4 \9 j ^ - ((and (= bkwd "1") (= upsd "1")) 6)- X& ]* K2 A! W5 }4 |6 l( S5 c
- )
: f S6 P b& E5 ]/ O2 [9 @ - )! a+ ~: ]% M* t
- ;;
, Z% O( w, ?: q0 \% P+ e - ;; Style action. Reset widget values to style defaults: I7 _& E. d3 [. m, B( \: _' s, l) K
- ;;9 f. y' s0 B z! K) c4 m3 t
- (defun style_act (index / style-list)# T6 y: f. R! \6 j: w( X& ~
- (setq style-idx (atoi index))
% e. k; v, L* ~. |9 h0 d - (setq tstyle (nth style-idx slist))
4 h' N/ X% X' ^3 }0 m+ L. i/ j' M - (setq style-idx (itoa style-idx))
5 e; F! l+ r' T2 Q - (set_tile "style" style-idx)6 g$ ^# b3 d7 @# \" [: f
- (setq style-list (tblsearch "style" tstyle))
1 \) g6 n0 t2 ?: _& c1 l( w3 |! A+ V - (setq shght (cdr (assoc 40 style-list)))
& K1 m2 r, d1 ~ k& C& y/ h - (if (/= shght 0)
9 m# L" I! |+ u! [; u - (progn' e! L$ u+ `2 _5 E4 W
- (setq hght shght)
; V1 V5 w8 [' X- K8 H - (set_tile "hght" (ai_rtos hght))
, l* b j" \# I$ V2 t! R- U - )9 h) A6 g, U# E. U) o
- )
8 L7 t& t1 @7 }+ X, B! w- G1 X; ~ - (setq wid (cdr (assoc 41 style-list)))* a9 m8 D# \$ B6 C* Z
- (set_tile "wid" (ai_rtos wid)). ]' w; A, O; A, u# ~% i7 Y
- (setq obl (cdr (assoc 50 style-list)))
+ R# r2 Y E$ e5 ^ - (set_tile "obl" (ai_angtos obl))
3 O' T) f R' C# y- [' r( U: S - (setq bk-up (cdr (assoc 71 style-list)))1 G4 p: K' ^! @4 r: Z! V( c3 d. f7 }7 m
- (if (= (logand bk-up 2) 2)
& r: v4 `8 ]1 t/ S, [- D8 v - (set_tile "bkwd" (itoa (setq bkwd 1))), \( c- d/ \- a5 R
- (set_tile "bkwd" (itoa (setq bkwd 0)))) n) V4 _8 X' }/ ^
- )
, U' k* n2 c0 } - (if (= (logand bk-up 4) 4)& h {% J7 x4 |7 S m5 X4 o/ v3 l
- (set_tile "upsd" (itoa (setq upsd 1)))
- L2 V3 k, s) @7 L; I - (set_tile "upsd" (itoa (setq upsd 0)))$ D5 ]3 r2 U" M5 i8 f
- )
( s x( r6 o/ W - )
( p8 ~8 I2 y' A8 G4 ?! K - ;;) {+ d; ]- _# ?
- ;; Justification action. Set vertical and horizontal alignment variables,4 p% l* n" F- [ f, z! d- ^
- ;; grey out rotation and height if alignment = "aligned", grey out rotation* {6 H, G$ j& L& j) K/ P- h; J
- ;; if alignment = "fit".
( B" F. n9 g8 L _' J - ;;
n/ c0 g1 @* n9 d/ r4 m, W* ] - (defun jlist_act (index / templist)9 l7 f' x2 P; s E8 L) y5 Y
- (setq just-idx (atoi index))6 G2 V: l M" A; n
- (cond+ W0 S: ?7 S8 S: i7 z
- ((= just-idx 0) (setq va 0 ha 0))2 X8 {) P: Y7 Z7 s+ @+ d4 ^
- ((= just-idx 1) (setq va 0 ha 1))
2 ]9 @2 \+ r3 {- X! V - ((= just-idx 2) (setq va 0 ha 2))3 T; B. s7 z9 Q$ X& e# |$ c9 s X
- ((= just-idx 3) (setq va 0 ha 3))3 O, S5 |3 Z; M, {$ D7 M
- ((= just-idx 4) (setq va 0 ha 4))9 h+ N% _$ u; |
- ((= just-idx 5) (setq va 0 ha 5))
5 X& K/ s, G( s' f4 _; F( C - ((= just-idx 6) (setq va 3 ha 0))- J; ?) S8 Z2 T
- ((= just-idx 7) (setq va 3 ha 1))/ J" }( P( J# ^3 {, q
- ((= just-idx 8) (setq va 3 ha 2))
# `: @/ v) _( {' A2 a5 ]& d% s - ((= just-idx 9) (setq va 2 ha 0)), ~8 p5 q3 ]5 N, k
- ((= just-idx 10) (setq va 2 ha 1))
( B( n; J( Q o - ((= just-idx 11) (setq va 2 ha 2)): G- `& A! |" B3 Z& X/ U% T
- ((= just-idx 12) (setq va 1 ha 0))
/ T: A' U3 v8 L6 P8 p - ((= just-idx 13) (setq va 1 ha 1))" \0 C, c6 h9 ~3 [( f
- ((= just-idx 14) (setq va 1 ha 2))
! P# x& u: }3 o4 c- y8 K$ C6 c - )
! |( a0 J! o$ V- Q - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
8 U2 s7 f' |, p2 {. r' l5 o% G, I, j - (mode_tile "rot" 1)
. _6 [' P; z8 D7 N S' |1 t - (mode_tile "rot" 0)$ C! l, S! E ?$ a% s! J) c: D C1 x
- )5 J* c2 \$ O% @8 h/ U' }& \
- (if (= ha 3) ; If Aligned text
: [! D% t% }7 c% c; \! Q1 T - (mode_tile "hght" 1)2 W" W) J" |9 D9 E9 T
- (mode_tile "hght" 0)
& c% m7 B3 n; X) R: O9 r7 Y - ): u/ Y/ a% X+ {
- (if (= ha 5) ; If Fit text
/ v$ d3 E; N+ A5 B - (mode_tile "wid" 1): i1 `: u' H" w, a- f& U1 |
- (mode_tile "wid" 0)
( g! ~, K3 b& B* ? - )
* }+ z: o6 @3 B# _; B- l - ;; Reset rotation and height if changing from aligned.
4 W& `+ G8 V$ A" o' o; f! o4 f' f - (if (and (= ha-prev 3) (/= ha 3))
3 r! N; B( J, l3 h9 Y - (progn
& [- Q3 a M' \6 l - (set_tile "rot" (ai_angtos (setq rot 0.0)))) d7 D( P7 ^6 }1 O- r9 _$ U0 R; ?
- (set_tile "hght" (ai_rtos (setq hght 1.0))). ? P- |/ d& J7 n, @
- )& @3 ]( [5 C* p6 u- {- M$ b
- )7 C/ J7 W4 n) F/ s1 @
4 ?9 E; `0 @; U6 p) M7 L/ O- ;; Reset rotation and width if changing from fit.# h; W' n" E, d* l
- (if (and (= ha-prev 5) (/= ha 5))
+ y) J- l" h# B5 A# M4 v - (progn( r4 s( M5 Q3 y: w
- (set_tile "rot" (ai_angtos (setq rot 0.0)))+ |) X' C( f, V' [
- (set_tile "wid" (ai_rtos (setq wid 1.0)))
( B5 K0 z# _( N( g - )( _# N- R, o$ d
- )/ @, f, y r: A6 s
- & x2 D5 N# u P9 W! a% j
- (setq ha-prev ha) ; update ha-prev for next time
8 y+ [4 u1 y5 p% P - (setq just-idx (itoa just-idx))' o" l+ ?6 Q# N- o7 X- A
- )$ r9 ~& E) l4 J' A% Q9 I/ w
- ;;
9 K e3 B C$ c4 R7 R2 o' @' k - ;; Set intitial alignment setting based on vertical and horizontal alignment
4 m# T$ G" |" K% w4 [9 p2 n! A7 ^ - ;; bit codes.
/ l' g* N6 G- l( q. m9 Z. N - ;;
& z7 i; J1 ^- O. V3 P: c - (defun set_just_idx ()$ M! [: f/ X7 n$ {
- (cond
, z) o# }. o/ t0 z7 e9 W& q - ((= ha 0) ; Horiz alignment = Left# S, L% O$ Y% N+ `
- (cond- i: R6 J6 }* x; K. A0 d. u
- ((= va 0) (setq just-idx "0"))
( \5 i! _# z1 Q ~( D - ((= va 1) (setq just-idx "12"))
& w! b- i$ U' V; {& ~) K - ((= va 2) (setq just-idx "9"))+ ]9 L: [: r& p* o5 ]4 s
- ((= va 3) (setq just-idx "6"))
8 v3 S& ]5 r$ c3 W* E; z8 y1 t7 C - )' S/ ~9 Q0 \) F3 W5 I
- )
- d' f& L |7 [9 G+ z( p - ((= ha 1) ; Horiz alignment = Center; O1 E; J0 _0 Z) j4 v4 ]
- (cond# A8 R( S' K4 H7 u5 y/ w
- ((= va 0) (setq just-idx "1"))
) V3 v2 {4 K/ e- G - ((= va 1) (setq just-idx "13"))0 F9 M+ l; a! F$ ] l! B7 c3 x
- ((= va 2) (setq just-idx "10"))& d8 B8 z0 [# ^4 W. F
- ((= va 3) (setq just-idx "7"))) ^1 W; a! b, R1 b, p- P6 t0 i/ [$ O
- ); {2 ^ z: K. a% n7 M6 l
- )
3 q8 ^0 U5 C8 s# | - ((= ha 2) ; Horiz alignment = Right
^. R3 O% F" o - (cond
6 o- K+ J" [0 Y - ((= va 0) (setq just-idx "2"))
1 W2 z- R P6 k1 A, U - ((= va 1) (setq just-idx "14"))
/ U" |: O3 H6 A( g5 J1 b, p4 L+ C - ((= va 2) (setq just-idx "11"))
. x. L- P2 M! y8 |5 a2 L6 J - ((= va 3) (setq just-idx "8"))
5 O' a- c) B$ h; K: C - )
# L; b$ C8 O" d8 w - )% r! @9 z: x2 V/ p0 H" h5 J8 M, x6 f
- ((= ha 3) (setq just-idx "3")) ; Aligned9 ?) m; n8 z9 H" d- x
- ((= ha 4) (setq just-idx "4")) ; Middle2 s% Y# w7 b0 l2 _! V1 q: d
- ((= ha 5) (setq just-idx "5")) ; Fit! O' r0 n4 f) s) h" ?- y
- (T (setq just-idx "0"))
' a% @7 `5 y! x$ Z' _0 b - )
5 i+ l" O) ]4 s2 x4 T) P7 J - just-idx* r4 E! y5 ^# S' u' I+ `
- ): u! P$ @' p" R9 m
/ T2 {+ O1 E: s, r- (defun modify_text ()9 }" I" O6 P3 O2 ~; E2 |
- ;; insertion point. v5 E+ u$ @7 |% J9 P Y- }
- (setq showpt (list x1 y1 z1))' d* l" O( m. [
- (setq bit-10 (trans showpt 1 ename))
3 O/ @; J) n4 Z3 c1 n3 u7 T - ;; alignment point+ W7 R' a1 g! H' ~* a3 M
- ;; for 'Aligned' or 'Fit', alignment point must be different- P2 |' u' N) ]8 G0 |
- ;; for all others, use insertion point
9 o' b F$ o& |$ S% \ - ;; (ACAD will recompute insertion point)
1 u* w: s9 ^3 g5 q( | - (if (or (= ha 3) (= ha 5)), ]$ T7 z. `# [2 W0 Z( }! X$ k( s
- (progn
' s; o+ b+ v/ j+ _* n3 I - ;; if no alignment point, fabricate one$ U! F$ c k* d2 ^+ R8 q! Y
- (if (not alipt)+ N# x# `% S* Q6 }3 K
- ;; add text width to insertion point- d& J8 U9 u( ^# z
- (setq alipt) C. |2 c. v" Q
- (list (+ (car showpt) (car (cadr (textbox elist))))
' h/ t# m+ k; N9 v! ?+ n - (cadr showpt)
2 s0 G. u, g5 l+ D - (caddr showpt)7 x% `# q- o- P7 ~
- )0 `0 z5 j& Q4 i( S: @, l: \; N
- ) _5 E+ @0 _# I, N. l* R
- )
) R9 e' J: f$ Z+ x2 F - (setq bit-11 (trans alipt 1 ename))4 S) ?! K. ]" z
- )$ w( o0 P9 {8 f
- (setq bit-11 bit-10)* i6 K9 |* W. f5 c; P s* ]& i
- )
$ W a, B' ~# ?6 O2 t4 V# Z* v - (modify_properties)8 b; \' L3 o; T9 \, T$ r) y$ D
- (tempmod tstyle 7 nil)" W# X% z& s7 N3 R
- (tempmod bit-10 10 nil)7 j+ z' T) u+ k. y, M1 I# |6 w
- (tempmod bit-11 11 nil)
5 G8 w2 J, t$ `# l$ d, c+ E* z - (tempmod text 1 nil)8 F" |0 F. K$ ]# o
- (tempmod hght 40 nil)
6 T0 R2 s/ t6 \$ j! L! R - (tempmod wid 41 nil)+ K4 C# v# j8 C6 o
- (tempmod rot 50 nil)
* w! ^. o, N6 L/ G3 F6 Q - (tempmod obl 51 nil)
1 R/ x. y3 U" ^$ S; J! t - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
8 g/ V5 A" ?( v) m1 \( k( L0 X - (tempmod bk-up 71 nil)
& z2 J: R( x0 L) m: |3 q6 V - (tempmod ha 72 nil)
; K3 ?/ k ], M! E1 X( H - ;; Attdefs use 74, text 73
9 @: n$ J9 S# H* n - (if (= etype "ATTDEF")
2 ~2 M; W# X: \: z$ L: E - (progn
4 ?; {$ x! M3 ]! }* K - (tempmod attag 2 nil)
0 @5 \2 j3 n' ?! K- }- C0 C- @+ q% ` - (tempmod atprompt 3 nil)
! I. T" L8 _8 U# H1 \ - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
+ g) e9 ~* y" w8 ? - (tempmod icvp 70 nil)6 z! U1 J0 P& k+ d1 g
- (tempmod va 74 nil)$ ~1 D5 t5 |/ m b) }5 Y7 r5 r
- )5 |/ H4 V% {% W1 V8 [
- (tempmod va 73 nil)
* @ U0 A3 M" D+ v" d( G - )7 g7 o7 i0 R: D
- (entmod elist)
9 w7 X* z; Q5 b# H$ \$ W3 { - ). k( z; X V6 ` _
' q" W' l! N7 b* w0 d& I- V; a5 C- (defun ddtext (/ 2ndpt slist i)
" m) H, o- H7 j2 ? - (if (= etype "TEXT")
2 T% X& q! |) J5 x- \% \ - (if (not (new_dialog "ddtext" dcl_id)) (exit)); z7 b n( B' L# C& z% L
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))
8 G! R9 z- {% V5 Y9 b) m, z: z2 J3 U - )% d6 O! P. S. K! e; a
- (set_tile_props)0 S% l) X! }: \
- (set_tile_handle)
4 r* C, A$ a }) h: R - (set_tile_text)6 u* ~# B2 C. U4 @( M E
- (set_tile_tag)9 Q" P/ o5 N- w. w/ v% j
- (set_tile_prompt), u8 c0 \7 d/ p+ o9 \/ V
- (set_tile_hght)" _& m. D0 o1 s# H5 R8 O% ~+ }
- (set_tile_wid)
}( V2 t C4 C5 o) s% m - (set_tile_rot)5 d G2 Q4 v7 Q% |2 M. b! N
- (set_tile_obl)6 B% x7 ]! H3 ^: M9 ?' m) u$ |( H* p
- (set_tile_bk-up)' C: A6 J% T0 m$ K T
- (set_tile_icvp)4 c# L' ^1 u1 O1 I* x: x. q7 h
- (set_tile_style)$ u) B* ?+ Q4 J$ {3 j7 P/ s
- (set_tile_just)
0 {3 f) j8 F4 e% o - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
8 `- H. d# ~5 U# w6 e0 h" k8 l- b - (if (not (assoc 11 elist))
+ e' U$ u0 r6 J( ~6 G - (progn (setq pt2 pt1)
4 h7 N8 L$ A7 ~8 S. Q$ X - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))9 ^+ ?6 @& h, o6 H/ ~6 e7 B5 y
- )
0 [* Y# ]' T! F% g, M3 p( d; t5 ~% } - ;;(trans '(0.0 0.0 0.0) ename 1))' D' X7 p" g. [; @# D
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1)); {0 x. t9 R8 c5 v* w/ c9 G
- )
2 Z [5 }+ ?( ~0 ]2 I9 a$ \ - (if (or (and (= ha 0) (= va 0)). i0 `) t6 |; ^
- (= ha 3)
: N$ f0 Q& ?9 D - (= ha 5)
1 c; L! n$ e" S7 X+ f) V' x - )
" q. t& j; ]% H) o3 ?8 C h - (setq showpt pt1)
7 s/ v. u( ^! [( S, T1 H - (setq showpt pt2)7 G4 s8 P* W1 a- i
- )3 z8 G; ~/ t2 F; Q
- (if (or (= ha 3) (= ha 5))
7 U, B# e5 X4 z/ n - (setq alipt pt2)6 p( r5 b' g! [, V: V Q5 B
- (setq alipt nil)% n8 @0 e% B: c
- )
) o, \5 `( X) E4 W% Z1 z - . o% H+ c( o+ D, U
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
$ Z$ i8 E; U6 h2 g, @& b( o% p - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))$ t. Q- I, u3 I: e
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
" Y. m7 {1 C2 o - 1 a* u; L6 U$ q- U. X2 K9 D" _
- ;; Define action for tiles
7 ]+ f; o; k: V* r6 f Q' h& O - (set_action_tiles), t2 h5 k: b" l3 ]; j
- ;; Set focus initially to the text edit box.9 j, _+ @- _- l% \! b; A& G0 R
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
' V ?' i8 C7 d& [0 q* N: P ?# r0 M - (setq dialog-state (start_dialog))
" ^. w" W- {, A - (if (= dialog-state 0)$ N9 h; i9 F& B9 w: d4 X8 R) o
- (reset)
& D5 f8 {) w6 R0 ? - )
1 }6 F/ f& K5 {3 a - (if (= dialog-state 1)
$ h9 ^% P3 S# p - (modify_text)
4 l" _5 @) V( e, X, L - )
% L. O) \9 y% U2 h5 u% ] - (if (= dialog-state 3)) a- U2 k' F* [3 V) E: _9 q
- (progn
. A: a8 I7 O2 X! G% P( g- ^ - (modify_text)
( y% M6 @8 R4 m - (if (or (= ha 3) (= ha 5))
0 i8 F, n4 Z5 s - (progn
1 F1 P/ |" i6 G- M - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))) z7 r. m" n9 Y# x4 L: _7 ]9 L8 T; b
- (if (not showpt)
5 f& c. K" v/ _' z5 t% H" { - (setq showpt (list x1 y1 z1))
2 g& [. B& O) y - )+ V$ M. K- _+ S7 e/ N
- (setq 2ndpt (getpoint showpt "\nSecond point: "))
& `8 j: d0 n" v) I$ H( p - (if 2ndpt/ @8 j/ p; n( M8 o
- (progn
) _! W0 q: _& o; A0 D - (setq alipt 2ndpt)
9 k3 ?: J8 z s4 @$ H7 u - (tempmod showpt 10 1)
) L6 K# F, a% k R! ` - (tempmod alipt 11 1)3 v/ I$ h- B; a- ?6 E; {: J, f
- (entmod elist)' [& A% C8 q+ B$ K2 K% C
- )
+ l+ Z7 d+ a4 H- t2 G) V! n: G% F1 b - )4 [( X, w4 h* L* E" v
- (setq elist (entget ename))
! _) J% C9 a& K% u - )* U6 u2 @# ~9 A
- (progn2 u% | x9 {5 o6 u2 C3 |
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))8 L) [) V- X0 V5 J; n) [
- (if showpt0 l% |2 W0 ]; u* A T' `
- (progn$ s1 \) [* t4 t! i: U
- (if (and (= ha 0) (= va 0))
1 }: V! J1 O$ V! ~ - (tempmod showpt 10 1). e9 I1 r( a( D+ [$ g. B7 J7 W
- (tempmod showpt 11 1)
9 z; ]- x8 y$ e O7 l' a1 J y& x - )" \; x% q$ L6 b( Q% G
- (entmod elist) b! p, w/ }4 J( {0 E5 Y' ^7 H
- )
, Y+ @, ?( ]" G. F - (setq showpt (list x1 y1 z1))
" \1 N0 j" _: ?$ _: w - ), h/ a4 S& f8 F4 ~+ L) E" T' g
- )+ E- [$ T& t$ c* D; `& G( ^3 J# n
- )
, a$ m5 X! [! k* ]$ ` - (ddtext)
4 \' y! Z4 L& e6 F% Z% T+ C# S7 n X - )
; X" Q5 ^1 ]+ y* F: `* { - )
7 n: W2 t" ~8 s6 H - )
3 H, t3 i$ f/ E" t" T - - o5 R- H& e) ?0 U' m
- ;;
0 ?9 U6 N Z2 }( P& h - ;; Modify MTEXT' w, W6 {! \- ^( S0 a4 `7 l
- ;;
9 X! }* {4 g0 l& Y, ?0 g - (defun modify_mtext ()- z- D% ?1 ?9 G
- (modify_properties); P; |6 @' }; K. {7 O; \
- (setq pt1 (list x1 y1 z1))1 o4 g! Q. T& U" o! }* \; L2 i
- (tempmod pt1 10 0)$ z. H P4 G% f* S
- (tempmod text 1 nil)
& p+ ]& b' a& t: [ - (tempmod tstyle 7 nil)
9 W% ?7 O) d7 G - (tempmod just-idx 71 nil)
: x4 H' K) b1 h0 }3 M; n: C1 U8 o! }7 w - (cond
2 B' K1 M/ i2 o( X) ]# r- m - ((= dir-idx 0) (setq dir-idx 1))
6 S( q1 E2 N0 e9 ^+ o - ((= dir-idx 1) (setq dir-idx 3))& J! y5 J; |! z- E& g% B; |
- ((= dir-idx 2) (setq dir-idx 5))
& \* I! i7 A2 g - (T (setq dir-idx 1))
8 k. W( J; C" `; X4 N; M - )
- W* E* c8 j5 ~+ }# h - (tempmod dir-idx 72 nil)8 y! w& z3 @9 j6 ~, o G( O
- (tempmod hght 40 nil)
3 ]# D! f7 y" ~) T; _6 u! t( ?1 R# G P - (tempmod wid 41 nil)
2 g- M+ b8 h2 D% _3 M( w$ J4 q& _ - (tempmod rot 50 nil)2 i+ C, r2 n3 e9 X* V @
- (entmod elist)
2 g$ k- a1 |% z' h w - )) [' Z. B/ M4 s& C6 @- l
* x' |. y) W6 N0 V- ;; Set MText text style
# \4 n* w0 v0 z% w - (defun MText_style (index / style-list)8 t7 A1 P! H8 v- R& Q \- o
- (setq style-idx (atoi index)). p( C! I& a7 o% N9 X4 j
- (setq tstyle (nth style-idx slist))
3 D: e/ H, P; g6 X - (setq style-idx (itoa style-idx)). S/ k1 T/ i& ~0 q y! ]7 a6 Y3 O
- (set_tile "style" style-idx)
Y4 K f' n( j6 Z x - (setq style-list (tblsearch "style" tstyle))
6 A' S) G. x+ ?0 E$ H8 s - (setq shght (cdr (assoc 40 style-list)))
. h( D" @) V# I- a/ |8 N - (if (/= shght 0)) @9 Z& L: ~5 r" W& ?- Q1 D
- (progn7 C, Q- C o, J( P+ a
- (setq hght shght)
5 a; ]9 h) Y+ c1 x6 q! | - (set_tile "hght" (ai_rtos hght))
5 [& h. E3 A6 J' F; A7 ~ - ) w) A' j( k, t- {* M
- )
8 j6 ?% U, |7 X- X9 q; ] - )
; K. q* W8 K$ t - ; ^$ T; x" k$ H% k/ d1 c- G9 W8 W- f+ n, ]
- ;; Run DDEDIT on given entity, working around possible re-entrancy% |2 P8 }+ U% Z' c# n/ }+ f
- ;; problems with MTEXTED
* p0 i I. D5 p6 s8 p3 a" S - (defun safe_ddedit (ename / orgMTextEd work)! H: x9 e% Z; n V
- (setq orgMTextEd (getvar "MTEXTED"))8 r! ]6 R& g' P9 c c# Z) S
- (setq work orgMTextEd)- P8 v) ^3 ^ L9 j; z
- (if (= ":" (substr work 1 1))* z5 j% b/ M2 A2 _: D5 d: l7 p' d
- (progn
2 q+ b7 `2 U: w! S* a* z6 n - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
7 E8 V |# b7 a! v - (setq work (substr work 2))
% G+ x E8 ?: }- }, M3 C - )* h" d+ t- e& @! q( R1 D# L
- (if (= "#" (substr work 1 1))# r: U i; B9 B9 k
- (setq work (substr work 2))$ O8 f% f; D" T1 i
- )
- Z6 l$ G' S1 d& b/ P. F. u: e B# F - (setvar "MTEXTED" work)
) t8 `2 }9 t( o2 @ - )/ B1 {; B- `3 G6 B% a# E9 L
- )
1 c5 y% T+ z$ ~0 ] - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...# w5 z5 H; O0 h$ `! {) z& j* k
- (command "_DDEDIT" ename "")
7 G8 n/ C) V& t+ P k4 b3 K# W2 U - (setvar "MTEXTED" orgMTextEd)% f- r/ j3 S8 V: a
- )
1 f# U0 ^% G& o7 J" W) t/ Q) g - 7 p4 Y$ c% e' r K- t* n! ^; L
- ;; Verify MText object width
! r9 U8 D1 M$ q. e - (defun ver_MtextWidth (value); z# x4 \: j& j9 N0 k
- (setq value (distof value))+ V$ d( c, R: L# H- r" A6 Y
- (set_tile "MTextWidth" (ai_rtos value))
" M5 V5 Y) } w. z - (set_tile "error" "")
2 B$ F n$ k1 H" S7 T. J - (if (< value 0.0); w% N% `: |( v @2 ?
- (set_tile "error" "Value must be zero or positive.")" k8 @; z% y+ J) l) b
- (setq wid value)
% _* z: L1 M0 S) S+ ] @$ r - )7 c* m7 ?+ U3 K2 f$ x
- )
* w5 A6 H' R- ~( | G
4 ~3 g! A( C: _, m$ \1 I4 \- (defun ddmtext ( / gc3)% ~3 h1 o U7 k
- ;; Get dialog/ w4 f: h! x) I. N+ q: i
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))" V' K8 G$ q6 |
- : i9 O3 V/ ~, ^* j
- ;; Load list boxes& P4 T" U; _! l3 X+ P
- (start_list "MTextJustify")
9 x+ @; g; k3 b6 O3 H - (mapcar 'add_list '(
Y9 E8 d1 v: Y& P - "Top Left"% f6 A) o9 v9 ^
- "Top Center"
H I# A$ A! n* p$ m! C5 a - "Top Right"
1 P+ g" O. D# |- k V1 A - "Middle Left"4 m1 o2 i0 \6 g& _" w+ O; s7 D
- "Middle Center"
2 O/ h. t* i/ E - "Middle Right"9 O2 i/ T0 \5 s
- "Bottom Left"/ {( _/ `$ y4 m9 z: q2 R
- "Bottom Center"
0 k6 Q- q( U! F - "Bottom Right"
% N+ w4 k; V: `. H. ? - )
3 w( m2 M1 u7 D+ y+ { - )& d& M e' t1 q8 l
- (end_list)" [" `4 U+ W2 L+ Q" [
5 G( ~, w8 ~6 Q; m6 U, ~. b- (start_list "MTextDirection")
* j3 a. j, z/ p7 P5 \& D - (mapcar 'add_list '(
( U( p0 q7 `( S) w - "Horizontal"
" [0 I7 `1 e5 {% {$ R - "Vertical"
( _. U. p* P( S0 ]: n# ^* W n - "By Style"
. a1 D8 \' S; y4 r3 Y( { - )3 Q3 O3 j5 I4 M7 x' D) _
- )* R: e. Z9 U7 Q! @' E
- (end_list)
8 I% Y6 m- o$ ?4 ^9 ~
/ s' l" y6 ~0 M7 Z; j- ;; Set initial tile values- G" H ]. S5 v6 L. m% F
- (set_tile_props)
& C \1 s$ e. b5 | I9 g% a% u2 [9 ^/ r - (set_tile_handle)" F& I/ Y2 ^! [9 d& r& S8 ]
- (set_tile_pt1 0)
) [/ c! L+ P0 _# \+ s/ c - (set_tile_style)
E9 d' ?! ^; @& K - (setq just-idx (cdr (assoc 71 elist)))
3 b/ ]4 M T( [3 }& W2 }' ~ - (set_tile "MTextJustify" (itoa (1- just-idx)))
3 Y2 K* S, L5 ~2 s/ e2 n8 Q - (setq dir-idx (cdr (assoc 72 elist)))4 m# M4 F {8 F5 u$ w# P {' C
- (cond/ n; F- O' @& I8 J) x% r5 ^
- ((= dir-idx 1) (setq dir-idx 0))
7 @/ P& l$ z2 o1 {$ _" E; B$ C - ((= dir-idx 2) (setq dir-idx 0)), t5 Z! g t8 D p
- ((= dir-idx 3) (setq dir-idx 1))2 E9 w8 d8 r8 O k# L
- ((= dir-idx 4) (setq dir-idx 1))
" m. B b C! o( T# { - ((= dir-idx 5) (setq dir-idx 2)), J- X4 L8 {: W& w6 W
- (T (setq dir-idx 0)); X8 {( J) X5 B- {, b6 X
- )+ c0 q" ?" {2 x& C# M0 D
- (set_tile "MTextDirection" (itoa dir-idx))
' F; x, H" x0 r, v9 q& m/ Q7 f - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))& T7 T" i A! W* }8 f6 y
- (set_tile_hght)
% K/ m1 w, t: Y% U% A2 A9 h8 |* Z9 K - (set_tile_rot); |7 u+ d- F& U9 l' f6 L
- U# {( H7 F% u: f
- ;; Set edit box, disable if too long
6 u& `3 M6 s9 S" ]# C+ X/ q - (setq gc3 (cdr (assoc 3 elist))
! _$ n0 b. \ u0 H* b - text (cdr (assoc 1 elist)))9 F1 M: J' @5 \' X8 K( G/ y: q
- (if gc3
* N! r) r3 [$ O! ^& Z' F T - (progn ;; Text is over 250 chars, disable edit tile! M( C% v5 z6 F9 q" l1 p4 M3 T5 {
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
8 P4 b6 T$ @8 E8 a2 E2 k- `1 Z i - (mode_tile "t_string" 1)$ r0 T `4 o: u
- )
4 ?8 m- t; V8 q9 n4 ] - (if (> (strlen text) 80)* Y( L9 V6 b. [; L* V4 \9 u v
- (progn ;; Still too big
$ f. d. b6 T8 l7 d0 o - (set_tile "t_string" (strcat (substr text 1 25) " ..."))& D8 U8 X; k; K- h7 N% y8 v4 ^
- (mode_tile "t_string" 1)
) v$ K# e! ~' f9 ~& _ - )
' ]/ M' D' _9 N: M' n( A5 D5 M - (set_tile "t_string" text), z# ?- L4 P4 Z Y9 {4 Z
- )! x& r& i* r9 ~0 a5 ?( c
- )
5 d) J" r k; ?
4 {5 N z1 S0 @8 a# D' ~$ i/ K- ;; Define action for tiles
* h& D" n5 T; h; H7 ^1 ~ - (set_action_tiles)
; ?, c8 Y& A( {0 s2 F# r% T - (action_tile "style" "(MText_style $value)"); C! X, J4 K% a: ~( P
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")# R' u4 w7 s3 W4 b$ _2 I
- (action_tile "MTextEdit" "(done_dialog 4)")
. h1 w- G0 o) o" [. r8 W$ V$ P - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")* X# W) a* w. L2 z
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")" Q5 p4 ]% U" ^( o9 B! E
- ; P. d( E: p m& e
- ;; Set initial focus to text edit box.# M- M( t* o5 {0 t
- (mode_tile "t_string" 2)
) [5 v; a) W, [4 Z2 Q! e
2 P9 W" e7 C" M4 o# b5 }: H$ y- ;; Run the dialog
/ Q; J5 U+ M+ b) u - (setq dialog-state (start_dialog))
% Q4 h% v' t' d9 G - (cond& d8 X) V, |3 C* g0 X7 `
- ;; Cancelled - restore saved data
# M& ?6 l. I6 s8 w+ z2 n; D - ((= dialog-state 0) (reset))
$ _; q1 Q4 a4 T5 e6 f! _ - ;; OK - save new data
( y( i+ u: L4 E8 a - ((= dialog-state 1) (modify_mtext))2 ], G: g( s1 D& B
- ;; Pick new insertion point
6 Z9 `4 M) |& S9 S& H+ ] - ((= dialog-state 3)
- y8 U5 b" Y' Y - (modify_mtext)
, t/ B8 k7 e' @+ | - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: ")), Q/ h; d7 W0 |) b. K2 c
- (ver_pt1 0)
, S. n. R5 `, Z, C& w! D - (ddmtext), E6 D3 f' E+ q" c: K4 S4 K5 T" ]
- )
" v# O2 V4 n/ I5 e- O8 g - ;; Run full editor. n/ D6 e( F% a$ C, K
- ((= dialog-state 4)% _; t+ }; H9 L* \# ~; o
- (modify_mtext)
6 C8 X( g+ v, Y: R - (safe_ddedit ename)
& N$ K6 `. [+ M - (setq elist (entget ename))/ g* Y5 Q2 w+ z1 r! H
- (ddmtext)# k- \7 t: F3 Z
- )% B+ I1 W' p! |4 Q
- (T nil)
( M) C2 l9 ~8 y- \1 _" I' W" T+ R/ k - )4 d+ E" U3 b% j- [! g
- )
, o1 @4 t( D8 N8 O" N! D
2 C7 Q$ N0 s7 d' e# f/ d/ I- ;;
6 x$ G& ?) q, \( W- t+ }# e - ;; Modify VIEWPORT5 w4 [1 b2 [( I& c4 r
- ;;
9 w) R# C" t, D2 p$ o' X
n! m V7 D) t- (defun ddvport ()5 {$ y. [5 O2 w( \4 u8 ^2 b
- (if (not (new_dialog "ddvport" dcl_id)) (exit))$ Q) w- [/ |# y1 M- f9 C
- (set_tile_props)
; W; o5 W0 {0 O, V - (set_tile_handle)
% H8 z" ?- F. W% {$ D+ X - (setq vpt (cdr (assoc 10 elist)))5 D+ ^) I: ]" c! l: p' G
- (set_tile "xtext" (rtos (setq x1 (car vpt))))* N4 i, r5 U4 U; r5 e
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
) N) n+ ~ R$ V6 ~ p! q! C& y - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
- H( x0 {" I4 n* p5 m+ ? - (setq wid (cdr (assoc 40 elist)))
3 `/ [0 ]& U& w3 @. q' g% {. w9 C - (set_tile "wid" (rtos wid))
! x3 e& I3 L: |/ [+ e' {9 q - (setq hght (cdr (assoc 41 elist)))
- u! b, p0 z+ Q/ _7 U1 J# n - (set_tile "hght" (rtos hght))
/ }9 N& Z& t7 r" e" g/ v2 \7 F( z - (setq vpid (cdr (assoc 69 elist)))
9 ^) i; ^; R/ `! f$ }3 _ - (set_tile "vpid" (itoa vpid))! b0 c3 D7 u1 L$ ?
- (setq on-off (cdr (assoc 68 elist)))
& |7 M& a9 M0 m1 y - (cond/ h6 q9 C d5 M. d8 O, R
- ((= on-off 0) (set_tile "on-off" "OFF")), e6 @: _( u9 ~. G
- ((> on-off 0) (set_tile "on-off" "ON and Active")), g4 L5 A- V+ Z( g2 O# S
- (T (set_tile "on-off" "ON and Inactive"))
) T2 [! v: Y' s: P1 X- a5 {) i - )+ c0 p" G/ n1 }9 j4 Q4 |
( v3 a* g0 v8 p6 z( x- ;; Define action for tiles! i& a, W9 P4 N m8 f
- (set_action_tiles)7 t9 Y5 c# ^; W0 P4 s
- 2 N( K7 I9 S2 c9 G) W
- (setq dialog-state (start_dialog))
5 A0 J/ t; L3 M$ w6 V - (if (= dialog-state 0): d! `5 o$ Q- g7 c! F
- (reset): |0 V# b; [0 Q/ G
- )6 M# K A! A& e6 p0 D
- (if (= dialog-state 1)
) Q; C. B) o, G' b1 c' r, T8 } - (progn3 n- @5 X, w. k
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
5 h8 Z2 {5 r- m& ^ - (if (= ecolor 256) (setq ecolor "BYLAYER"))
6 C7 c5 u2 p% T9 S - (command "_.chprop" ename ""( d0 Y" X9 m% C5 z/ W" | K
- "_la" elayer x9 {% |+ ` ~/ g& I
- "_c" ecolor ""
/ g- p9 q- l! p8 W - )2 R3 b! i, h: c4 C
- )
; l7 H7 |9 y4 o7 _ - )
9 \: u5 f+ v" i9 G# M6 ]# T! U - )7 r4 T) e" k9 m3 D! b/ y
- ;;7 |& x5 G0 ]) |3 V+ M
- ;; Modify POLYLINE1 l+ f d( q2 \- H; j" S% c+ j
- ;;$ J: ~. V7 ]: r" h, x
- (defun modify_polyline ()
9 Y6 e2 v, g+ _ a" y5 z9 z - (modify_properties)8 L4 p$ v6 z {% N" T
- (if (= ltgen "1")
6 p0 H# _4 d8 Z: z - (if (/= (logand bit70 128) 128)7 h- S% _# H/ [1 n' z7 P
- (setq bit70 (+ bit70 128))8 n7 w) |* s$ X( u6 h
- )
3 u4 L( i% I0 D - )
; Y/ c0 h& A" k6 n2 { - (if (= ltgen "0")4 N$ [- y* B9 D: x
- (if (= (logand bit70 128) 128)& w' K! T2 @9 h+ i9 S. c
- (setq bit70 (- bit70 128))
8 x( p9 ?1 q( V1 Z" W _ - )% a+ ]" B1 Y+ l" A8 l. L
- )$ [! B, ]; h3 z$ N0 h- E7 Z5 E
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
0 e+ \, x S! z2 {2 L% Z - (entmod elist) v# H. x$ z7 n) G5 B
- ;; Added to take care of updating Vertex information for color9 V0 `& h; D9 @2 n& R. k. z: Z
- ;; and linetype.$ ~- h/ z+ l+ m1 D
- (setq save-ename ename save-elist elist)
8 R2 n3 Y8 ~7 C) y, o" K% X - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")5 k4 f7 a% U X) o
- (progn
" I( V/ B) u M, v& ~& j" k - (emod ecolor 62)
4 y u9 _( ~3 F' t - (emod eltype 6)3 v0 L: g2 F. S" i3 t) V9 D p t
- (emod eltscale 48)
, H, Z. O4 m- v) U4 h - (entmod elist)+ z# H5 b8 L7 v( y" d2 [0 f
- )
: `7 F! K7 G# H7 u - (progn
/ T3 V6 W) F, E0 J7 ^, J% q& k" e& @, x7 g - (setq ename (entnext save-ename))% S" k% T! V" {* ?5 v
- (setq elist (entget ename))3 j7 k, }: m2 s- e; S( R2 n, `
- $ Y. I7 s: O; D
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
6 D( C6 E5 T& ?/ r- X) {3 k- g9 A - (emod ecolor 62)- x: f6 x Z8 r
- (emod eltype 6)
0 v- Q6 y6 [7 i: ]0 X& Y8 `# } - (emod eltscale 48)& F4 j+ C3 m1 M7 f6 q+ K7 z! ^; ^8 Y
- (entmod elist)
0 l% d4 B7 D4 V - (setq ename (entnext ename))* H+ r+ q1 t& X3 e, V# a8 F
- (setq elist (entget ename))
5 \) L* ~7 ?0 z: S2 a! J3 H - )
. b& p; R0 N l4 b( G$ h - )- ^$ | C* e: M& K( o5 A6 ^
- )
* E& X E; d x4 ~% @+ A/ R7 x - ;; Update the SEQEND( Y2 K. f R1 k( w$ g1 h3 p: p/ Y
- (if (= (cdr (assoc 0 elist)) "SEQEND")/ N' |3 j; W: d* s% F+ N1 h; F' c
- (progn* q" f3 X( q; ]6 U" T) @# G
- (emod ecolor 62)
9 z% P$ G4 ~7 o+ ~9 Y - (emod eltype 6)
* g, }0 \0 ~: P2 {3 g% ~# y - (emod eltscale 48)
0 ]1 V k& T& v! \' k; ? - (entmod elist)
" g. B7 P7 m; u8 N8 \4 I0 q8 m% \ - )
. U" p/ I) i3 }( f1 r0 k - )+ T) ~1 I) n. K/ V: V: B
- ;; Go back to header.
0 P" q" z0 i7 U4 V- ~( W - (setq ename save-ename elist save-elist). S; y# k+ P3 _4 h% k5 y, A
1 ?! R; e ?' S- (entupd ename)
7 a E3 J% U+ e9 r - )' y: J. D a* J& m) h
: q# H: v3 N. ?8 ~- d- ;; Increment vertex. Set tile values to next vertex
8 M' V: _+ {: K- i - ;;
$ h) {0 z- P3 C6 M& ] - (defun next_vertex ()/ h4 K- F$ b* M) z
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
' V$ i1 r5 W' T q& B9 @& u1 q8 I0 t - (progn
( @, L% |/ ^% n9 F8 t4 q - ;; If the counter reaches the number of vertices,3 q' \5 x) J2 \6 U" p( ?
- ;; roll it over to zero again.
1 U |4 J- c3 t. o) d" _ - (if (= ctr (cdr (assoc 90 vlist))); J G5 V' \" q. g
- (setq ctr 0)% }! ?, ~% y6 t5 Q+ l
- )
# J+ Q: _2 w+ ^ - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))+ s; i3 W8 ]7 {( F% `
- (set_tile_vpt pointype); D* ?# F* |/ @8 _) U. k3 F* L
- )7 d4 n) }# C$ a! g; ]" r; r$ H, N
- (progn
4 X2 g: C2 h& ?0 G - (setq vname (entnext vname))5 q1 ]$ A4 r6 ], I& n! [4 y9 q9 t
- (setq vlist (entget vname))
+ N0 t4 ? i- A - (if (= (cdr (assoc 0 vlist)) "VERTEX")/ E0 Z/ y, a. ?
- (progn' |3 K6 D# B6 s* @- \, i# i% t
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))- I$ v$ Q% |1 x% D2 v4 d/ @, f
- (set_tile_vpt pointype)
9 S7 q4 f Z+ W9 p$ y) p7 D3 F - )
! T; L- k6 b- i( C% P - (progn; o# N+ N$ H4 `/ o5 q7 z8 o
- (setq vname (entnext ename))* s! G# s+ F) o+ N$ D. O
- (setq vlist (entget vname))
+ F5 y) [, I5 d$ ?& d6 X7 q, i - (set_tile_vpt pointype). Q! u& k+ N7 X7 m' M$ e
- (set_tile "ctr" (itoa (setq ctr 1)))5 ?* Z5 W! K6 P4 g( W9 A
- )7 B8 [: }4 j& W, O( W* P$ ^+ R9 s, x
- )
0 w. L T2 U! P$ D - )0 b5 S* \) E* h
- )
% e9 o9 s3 C2 Z \1 h) k, n2 H - )
% L; J' n1 s' ^) R1 @- [
0 _/ C6 x) ` R/ }2 T5 J- (defun ddpline (/ oldecho)
. q5 V' w" M0 G6 k& o) b - (if (not (new_dialog "ddpline" dcl_id)) (exit))6 v5 V* |/ M$ _* r% V. a
- (set_tile_props)1 t. u4 B8 p- b$ V! z1 u0 l4 y
- (set_tile_handle)
! Y+ j ?2 g" u4 w u& s; t: s - (setq bit70 (cdr (assoc 70 elist))) o9 q0 }1 P( x6 A3 ]
- (setq bit75 (cdr (assoc 75 elist)))
* A1 \# x& B9 J1 S( V y - (cond
; |, G0 g; c6 c. t - ((= (logand bit70 8) 8) ; 3DPOLY- }, ]; S: H4 t
- (set_tile "ptype" (setq pltype "3D polyline"))7 Y- ^7 R/ d, c9 w! W, _
- (setq pointype 0) ; WCS or ECS point values
, a+ h2 u" V& K- s - (mode_tile "fit" 1)4 D* i/ Q3 i3 z( o) V+ p
- (mode_tile "mesh" 1)) N0 Y Z7 ]* [# z2 ~
- (mode_tile "bezier" 1)1 e( ~1 [' C8 I, e0 d
- (mode_tile "ltgen" 1)* m7 G8 i+ z; J8 ]4 I
- (set_tile "none" "1"): j7 k j( x' J, z
- (set_tile_closed)9 {0 g" s' q2 F( ^; O
- (set_tile_fitsmooth)
/ }- {+ v, a2 R0 K3 `6 h - )
1 C: H8 N2 K V5 E' s - ((= (logand bit70 16) 16) ; 3DMESH
& o" Q( Q0 ^' {. D - (set_tile "ptype" (setq pltype "3D mesh"))
+ W# d8 O# W, F5 q: }% Z, e/ f& J - (setq pointype 0)
e# n5 x% } }- M' N9 H - (mode_tile "pline" 1)
/ n) I! R9 \& |# u3 q. c4 Y2 z; `8 g% e - (mode_tile "fit" 1)3 `6 ?6 C$ C! o0 b G
- (mode_tile "ltgen" 1)! \1 O9 i' p# K/ f; P* y
- (setq m (1- (cdr (assoc 71 elist))))
; K1 F, N; n4 }* ]* N. {$ T - (setq n (1-(cdr (assoc 72 elist))))$ h H7 [6 g8 O; d
- (setq u (1- (cdr (assoc 73 elist)))); ~3 Q& N# D# i& H6 d3 z
- (if (< u 0) (setq u 0))
0 k+ ?) Y) O! u' z4 c - (setq v (1- (cdr (assoc 74 elist))))
! x) ?7 G2 H2 W) ? - (if (< v 0) (setq v 0))7 v- j- ?2 r# d( v, |1 ^5 D
- (set_tile "m" (itoa m))
& N" D$ H6 ^' Q, U d - (set_tile "n" (itoa n))
7 Y& E0 |; G h - (set_tile "u" (itoa u))
" b1 E F( z! J - (set_tile "v" (itoa v))
; f. q; r4 g1 ^$ P3 r! e - (set_tile_closed)
9 w/ P2 `- d; r9 ~+ Z$ R9 U - (set_tile_fitsmooth)
& e P: h6 k& N% t! u" o& B$ D - )
5 T! h/ S# b9 ^! y' k" J0 G - ((= (logand bit70 64) 64) ; POLYFACE MESH
" r- W7 u0 r+ B* I' S. G - (set_tile "ptype" (setq pltype "Polyface mesh"))
3 |* n# m" A, ]( \$ R) h - (setq pointype 0)
* w: P6 U- F" z) q. e) B - (mode_tile "f-s" 1)
9 c0 A9 X/ s: l$ A# m" e - (mode_tile "mesh" 1)" T* U7 c0 l" I
- (mode_tile "pline" 1)
a' L8 x/ M! G' d/ q7 |, g - )3 \+ k, J V1 g# e$ o; g3 f
- (T ; 2D POLYLINE' D" P6 u5 v; U5 o* R. D
- (set_tile "ptype" (setq pltype "2D polyline"))
7 S7 p( d% U. s3 ^ t1 ` - (setq pointype 1)$ v( ~. X' x7 y
- (mode_tile "bezier" 1)
' E* d- g& o: u - (mode_tile "mesh" 1)/ ?; y# \ c0 x
- (if (= (logand bit70 128) 128)
" u! i) N3 g* _& k& v" {+ e2 j1 Q p - (set_tile "ltgen" (setq ltgen "1"))
( G* b' h6 [8 C - )4 T! \% h( c+ T
- (set_tile_closed)0 H. @( e0 q' C5 S# v6 ^9 x
- (set_tile_fitsmooth), y. G0 a0 O# i" I$ O
- ) X: t9 R* B, ]7 _
- )
7 l I( a4 e! |, a! \ - & z/ g, u& R& ] K, n, d! K3 j
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
6 f4 H }8 ^- `8 H6 p6 e+ S% k - (progn: t6 d' h5 I" d" C: u
- (if (not next) (setq vname ename))
1 n& c( U! S7 `2 \" \1 u( d - (setq next T)2 T2 E0 k" D, E# a q0 d' x
- (set_tile "ctr" (itoa (setq ctr 1)))
0 K' J Z3 b* X+ t - (setq vlist (entget ename))7 H# R1 I8 y \, e! n/ k
- )
3 Q3 H3 r$ U6 b3 B: D - (progn0 L) G) b6 V6 }7 z
- (if (not next) (setq vname (entnext ename)))
9 R$ n y* G- A Q9 h - (setq next T)
3 c' |0 v' T* l0 F - (set_tile "ctr" (itoa (setq ctr 1)))
$ m6 p: _$ D. r: E! S - (setq vlist (entget vname))0 c' ^5 `# ^5 b! u0 X) i6 Q+ c! S' w
- )
( Q5 m6 W3 | Z# Q+ p - )1 d& P# C( G8 N9 _: S8 W
- (set_tile_vpt pointype)& w. j# v% J. u" d1 `* S
- ;; Define action for tiles+ @ P( p( M: ]8 F. _' d+ f
- (set_action_tiles)
H9 m4 @) n( P& @* Q - (setq dialog-state (start_dialog))9 c, z9 f4 f1 J% ]) h+ i% U; F
7 s1 {4 L! Y! X6 \: ^- (if (= dialog-state 0)0 m& C3 |! t/ U+ |5 L
- (reset)8 Q" h1 R& F9 j5 N/ {6 d
- )
d1 {0 A' [5 e0 r - (if (= dialog-state 1)
6 F" T& l+ n0 }) } r; h - (progn
, e% Z9 d& ~6 D. x - (modify_polyline)0 j, z- A. I3 G2 @5 y, Z* ?7 t
- (if (or (= pltype "2D polyline")9 L' t6 y J5 f$ w' R6 E6 m" ~5 Q& c
- (= pltype "3D polyline")
( W+ u T. z, p9 a - )9 }/ T0 k9 b j2 p/ r: L
- (progn
5 i& e: t6 q8 e% i* s - (command "_.pedit" ename)
) d) ^+ B" m3 ~% H& X* s - (if (= spltype 0) (command "_d"))8 E2 @& I& o3 ]0 y* n. g) m
- (if (= spltype 1) (command "_f"))9 B/ a; }6 s* \6 \! u
- (if (or (= spltype 5)# H6 u6 W! Z. R7 h' g$ C
- (= spltype 6)+ e# {! v, b) z
- )- f! [1 o+ ^3 C) p! W; D
- (progn
7 d6 q! L- B% P# h: ~; { - (setvar "splinetype" spltype)# Y7 H* e& k' O& _- }: ]7 ]; r
- (command "_s"), B( l- c% T8 X: v h
- )
r. q2 z# V9 G9 ~" H+ B# a - ). r% o8 j7 z1 M
- (if (= closed "0")
; d4 x. [( U3 e - (command "_o")+ ^- c8 b# z, f$ s6 f
- (command "_c"). V. m( t7 g/ ~; j R
- )# C4 t0 q. R$ n( V" W
- (command "")
% }& R) S8 F8 i) ` b - 8 v1 o7 W4 } a/ R: e" f4 I
- (if (= spltype 0)5 Q+ z5 b1 w0 S' ]9 Q9 [
- (progn0 J2 w2 B; f, I2 U$ E6 p. \: P& c& E
- (setq oldecho (getvar "cmdecho"))
/ T/ I* E) n7 j - (command "_cmdecho" 0)9 u9 O! Y8 S, @
- (command "_convertpoly" "_light" ename "")
U0 i8 |, M3 d! h - (command "_cmdecho" oldecho)$ o8 S; o8 J5 _
- )
; M' N0 m3 M/ x- M- B6 C0 | - )
; Z& Q' _9 ?3 S) @6 J0 U7 t - )
. n% }5 b o: ?) Z# R5 @ - )
; H' |, u0 c- \/ B% h2 g$ U& D - (if (= pltype "3D mesh")
# L) Q7 @# H& t - (progn
b. E* e4 r2 U- H- E) z$ Q3 I, ]1 H& y - (command "_.pedit" ename)
' l9 n( m- J/ q" R - (if (= spltype 0) (command "_d"))
( Q7 ~+ U2 e; V - (if (or (= spltype 5)
* t/ L9 e/ P7 [/ O0 p3 u - (= spltype 6)% S8 }3 F. a! L7 R! ~$ v
- (= spltype 8)1 I0 d6 O7 ]0 o+ z( t" C
- )
3 C6 y5 }0 |2 A; t3 P5 [7 \ - (progn) s) X1 L9 U- [) \
- (setvar "surftype" spltype)* c/ k5 h6 u1 P) n9 ]" D
- (setvar "surfu" u)
8 j! l$ j9 K7 h: a - (setvar "surfv" v)3 g8 N, P! { o& ~1 m
- (command "_s")
3 b& h: N5 b; G5 t* M9 U1 a8 e4 h6 p" v! k - )% g+ h" }# E3 d4 K5 {) a+ ]
- )/ h( F7 J" `$ f- L. o- ]
- (if (/= closedm old-closedm)
% L/ D( j: W( ~0 d: n7 @2 q) i - (command "_m")
7 [( x2 F/ ^8 S( S4 j C - )
; l% \- p6 ]. p - (if (/= closedn old-closedn)
% C3 j+ r/ ~% K& a - (command "_n")
% G. v% E% L. V+ a9 a+ L1 d& j - )" B' n! K3 z3 E+ d
- (command ""): ?. L# z3 V2 Z t% K. S
- ) m# O, X3 i6 W1 J" h) [
- )
J5 j" o8 e) }" W! [9 a - )
% j% `# L% D+ |! j/ V - )1 e7 a, M" ]$ }% O1 P' A
- )
% N( R! G; ~+ U2 ?% R$ ^( w) b - ;;
8 M7 d, c3 s3 p n3 `$ w - ;; All the spline data is contained in a single elist. We must do some
) H1 E* r8 `0 K5 f( b4 N8 K - ;; tricky list processing to loop through the elist in order to display7 j: h* j2 M1 C1 \2 S
- ;; all of the control points., H# q1 Q, Y! R9 J4 ^- _
- ;;
/ z+ A7 U$ j, ]! @4 p5 z - ;; The structure of the elist is different for rational and non-rational
4 a3 t6 o7 E! E1 ^$ D - ;; splines. Therefore, we check the rational spline flag.3 S- j. X6 m. u J, G
- ;;
% H7 M0 H" f: L% \ - (defun next_cntl_pt ()/ h9 Z2 E& l, f, p# M( {
- (setq elem-no 0) ;; elem-no = element counter
3 q5 I1 t% T) ^ - (if (= first-10-time 1) ;; If first time, find location of first. j, g' g; T+ v7 p2 [* ~. ]
- (foreach list_item elist ;; cntl point element in elist' k( t& G/ p2 r* ]
- (progn
0 N' j' G6 Z( Z+ j/ F - (setq elem-no (+ 1 elem-no))! f$ J/ Y o; \' W3 T; I
- (if (= (car list_item) 10)
$ J2 Y2 W2 j! b5 |$ R% S2 k' w - (progn7 x3 f, h& A& ] k H5 D5 b3 y
- (if (= first-10-time 1); x9 [6 z w4 W! u
- (progn# a6 W+ l x" w! y: N1 p- z
- (setq first-10-rec (- elem-no 1))+ x5 `7 r2 w3 A4 z
- (setq first-10-time 0)
0 {( Y% G, H9 q$ D. r0 Q: ~ - (if (= rational_spl_flag 1) ;; if rational
4 p3 {& u% r" Z* ?8 y2 U - (setq cur-10-rec (+ elem-no 1))
9 i7 a& c5 _! d: S$ E+ F - (setq cur-10-rec elem-no)
1 e1 w0 F: k, k0 [8 e5 E. H - )& R% s' y& j# e1 ?% Y, |
- )0 L4 r4 C1 @; U! I4 N
- )
% C" f% f3 W; F - )
7 H- y; N2 x9 C - )0 A9 C5 f& c _: L4 b( u1 Y
- )2 F3 _, X1 b4 r' a- y
- )
+ r% W3 E! z1 }4 |( u - )
- Z% M# A# m) ]. @ - ;; Now we know the location of the first "10" record; it's stored
; S2 m- t& Q4 T( Z& n+ q - ;; in first-10-rec. The first 10 record was already displayed when
$ l6 |, A5 H: N# T% r - ;; the dialog first came up so let's display the second one when
0 m$ A! H6 J e& r - ;; the user presses the "next" button (the first time through).
0 y0 V' h7 u2 D5 ] - ;;
) S; L3 Z% P" g9 G: v4 } - (setq temprec (nth cur-10-rec elist))6 _- h* t% s% x1 H s O6 B! `, Y
- ;;
/ [% I( |" `0 j- y3 R; ]0 P - (if (= (car temprec) 10) ;; if 10 record
+ p! E+ r3 y) q1 M. {9 O; } - (progn
% N7 ~7 h( H% ]1 s - (if (= rational_spl_flag 1) ;; if rational spline
# w4 y( x! e3 r; G - (progn
- P- _2 r- E- E+ j" b - (setq tempweight (nth (+ cur-10-rec 1) elist))- J% s8 [& m5 g- W9 c# C% k, @
- (setq cur-10-rec (+ 2 cur-10-rec))
$ Q w6 w" D; q+ W. L - ): J7 ~4 x% |, p2 |9 N6 T' J0 j
- (progn ;; else. W1 Z/ a' {4 {9 f5 {( u: Z
- (setq cur-10-rec (+ 1 cur-10-rec))
- N- J, z8 g& z2 G - )
( }/ L9 H! K6 W& G( |3 w - ) p+ ^% a3 D2 F' ]# F- z" {
- ) ;; end if rational spline
, M, R# I& w# ?. q6 U - (progn ;; else reset counters
2 h" {# | r1 Q% h' T - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
) k$ T& y3 X" K7 y6 U - (setq tempweight (nth (+ first-10-rec 1) elist))
9 C, F% C# h5 ?3 q - (setq cntl-pt-indicator 0), X( w6 j5 f' w* I7 f
- (if (= rational_spl_flag 1) ;; if rational
8 q. Y! k# Q' p4 H: M; e - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
! t% c% y; _: y4 X" R8 G1 O - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec: E* X. V+ z- b5 d( [" A
- )8 @, T* o% W, ]
- ); X8 f" I3 c* N" d0 W% L
- ) ;; end if 10 record) {' A1 w9 C7 N
9 z* q3 V, N$ M7 I6 i1 x- ;; Display cntl point, weight and ctr. Increment ctr.
8 u" Z; i% V1 }8 ?$ H* T, i - (setq cntl-pt (cdr temprec))
/ j( L& ?. q* G8 c$ I P - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
1 A! W) M z: e9 `# `$ g0 q) ?" ~% S - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
( M2 ?, [! n' d1 L# H - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))5 Y1 ~8 u3 N3 g$ @8 c3 H' ]0 C- A5 y
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
5 x, [8 T3 J* ^) |% x- v$ Z3 @ - (set_tile "cntl_ctr" (itoa cntl-pt-indicator)): Q5 h% O4 `8 d! p& E1 [
- (if (= rational_spl_flag 1) ;; if rational3 d4 G1 _3 T7 w" e! _; W2 ?, O7 H
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght$ ?' t6 d+ P8 H1 a! L
- (mode_tile "weight_text" 1) ;; disable wght+ m$ g+ f3 V; N7 C7 h! q7 l
- )
. B$ T2 D! G' T q - )2 A; C v: t# z5 S- g
- ;;
7 v2 s( { b0 c( K+ w9 ? - ;; All the spline info is contained in a single elist. We must do some" v! q* O5 i6 C) ~1 |& {
- ;; tricky list processing to loop through the elist in order to display
- d0 W$ b% [, \0 ~% F - ;; all of the user data points.
- ]2 f6 e( H9 Y5 G; |) W* c - ;;
( K' t: l6 k& D( @# ] - (defun next_data_pt ()7 V& ?: y2 F) h9 }- c, e$ R. J
- (setq elem-no 0) ;; elem-no = element counter0 G* M7 m; r; A# D& }/ T' w
- (if (= first-11-time 1) ;; If first time, find location of first0 d1 W. ^. {* r ]7 R( |
- (foreach list_item elist ;; data point element in elist
: U, M+ C( {* e; a - (progn
- n8 Q2 L' S0 _& y$ z0 P - (setq elem-no (+ 1 elem-no))
1 v: V2 `- _, i) F - (if (= (car list_item) 11)
5 `+ J; b4 B8 d9 Q2 |. R - (progn ~, }& ^ j. o3 |
- (if (= first-11-time 1)
, P) K! x& J! {0 x8 R% w* I - (progn. e2 [3 U) {' ~& d
- (setq first-11-rec (- elem-no 1))
" D' C2 L/ w3 P. D0 f+ O: e/ L - (setq cur-11-rec elem-no)7 |3 Y* O2 @$ ~, \- |
- (setq first-11-time 0)
1 p4 }, e/ \2 d$ [" J! h - )0 r/ e4 A4 R5 h b" A
- ) |* @8 J' }. u: B' n* A& [
- )
$ A5 J$ O- L9 w. | - )
" x* C8 o: [8 E3 ?7 W5 V. k - ): q; Q r4 z5 Q/ F6 r2 ]/ a+ x: l
- )
0 ~- ]% ]* ^/ x& W* T+ ?1 l8 u: s - )4 ? b1 U- E7 y2 i3 z& ?
- (setq temprec (nth cur-11-rec elist))
7 J5 d: w X# I7 O* { - ;; If it's not a DXF "11" element then we've gone past the last
5 D" T3 p9 t+ @ - ;; "11" element. Go back to first "11" element. Reset counters.
, V$ b8 \. U! ^! E' S& L - (if (= (car temprec) 11) u4 X2 g) ]0 o( d3 D6 U+ P. D p5 E. H
- (setq data-pt (cdr temprec)). W ?8 q! K( j
- (progn ;; else1 r" L: [0 L" Q& w! z2 O
- (setq data-pt (cdr (nth first-11-rec elist)))
2 P7 j: c$ `- d6 q - (setq cur-11-rec first-11-rec)0 R6 p O3 Q: Q4 L/ G& l
- (setq data-pt-indicator 0)% A& i: m5 {8 e+ Y/ _: F
- )( |, [1 o/ T6 H ^
- ), o# A( E9 E2 B' x8 E
- ;; Display data point and ctr. Increment counters.# U1 B9 U0 g+ K" c1 Q
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))8 R* o" H7 f4 h& H1 V1 Q
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
$ z$ O# K3 C$ B" j: n- u - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
' r) a" T2 K8 e% R! \( P+ A - (setq data-pt-indicator (+ 1 data-pt-indicator))1 M6 z( Y9 j2 [" w( c8 A- X" Q9 p
- (set_tile "data_ctr" (itoa data-pt-indicator))
& z; s6 G+ u; u3 |' i - (setq cur-11-rec (+ 1 cur-11-rec))/ Q* I6 S/ n5 _: m! b3 C
- )
( Y3 i* {# Y- a - ;;$ W( g2 D0 q) f/ V6 d
- ;; Modify SPLINE, m, g7 W- U, A5 Y0 }
- ;; w& M$ O8 u/ {* `
- (defun modify_spline ()
2 ~; A; v7 y/ R9 b9 C - (modify_prop_geom)8 B) F, w! L. h1 T
- (entmod elist)! B$ L! @1 d8 p# c4 {& U( V1 J
- )
# S: x8 t( w+ W4 m" a
l- `8 D; P6 V8 e$ @- (defun ddspline ()
' x$ I r4 O* _ - (if (not (new_dialog "ddspline" dcl_id)) (exit))
- |, F1 l8 [ b - (set_tile_props)
0 D J# Z* G, Z& c9 Z - (set_tile_handle)/ K0 p2 }& C$ K( o& r) Y
- (set_tile_spline_props)
0 T$ v5 i: r0 `1 x* e9 A - ;; Display first control point
* H% I' A, v% Y" |' l) ^- _0 T* @8 p - (set_tile_cntl_pt)
- P+ |9 Y/ V, K - ;; Display first data point
6 ~+ c1 G% j% f, n% C! R6 | - (set_tile_data_pt)# W& S9 ^/ H0 [# v
, e; y( V, O' ], q) w- ;; Initialize flags to indicate first time through the dialog.1 p. j: N `4 E% m7 w$ x
- ;; For control points and user data points the "next" buttons
1 R$ t! W- i/ @$ j6 S: N, } - ;; in the dialog call the appropriate functions.4 W; b( T2 A/ ?3 G% o5 `
- (setq first-10-time 1)
8 T# R0 p9 L4 H0 b - (setq first-11-time 1)+ F4 R4 a5 P0 H3 G' W' G
- ;; initialize control point number counter/ ]- ~9 s- M( w4 Q6 ^
- (setq cntl-pt-indicator 1)# f- \6 z0 X+ J0 G( N- H
- (setq data-pt-indicator 1). a4 s: M: r/ @* E$ R( }
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))9 V+ C7 b% k) x+ B4 i0 |) |, k+ S
- (set_tile "data_ctr" (itoa data-pt-indicator))5 V: T' g% O2 m+ V$ l7 H
- (set_action_tiles)
3 K! \8 C8 e9 r - (setq dialog-state (start_dialog))/ B/ O4 \) S5 a! R$ a& x, A
! }0 f' v% O+ g4 J# J% x- (if (= dialog-state 0)
~# o5 {6 \; D2 D% n - (reset)
" I3 ~" K U9 R' a, M - )
( N* w' ^ Y9 v+ } - (if (= dialog-state 1)
- W+ c0 x/ t8 P! `0 S! x - (modify_spline)
% v- Z+ h* Z7 H% |! y# i4 D - )
3 g; p7 o# n, `. [8 \8 {7 I - )7 Q3 E& l0 X/ }; A
- : _: l/ U, S# ?5 z
- ;;
, |3 y' Q' N3 J% M; Z" T - ;; Modify DIMENSION$ Y1 Q2 n4 ?, q* q
- ;;
. c: f* V" d/ j3 s1 [ - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
/ t( [# D' R/ y; V - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
" P) ^; r* i& J5 O2 _6 M - dimtype dimsvcurset)
e! G Z' |: w& u. k1 q - (setq dimtype "DDIMEN"5 @5 y$ m# Z6 ?$ m o
- dimsvcurset (ddimen_dimsty_restore)7 V7 n0 `' N. [; X% d; x
- )
$ k8 H- D, e* Q7 f6 s, B - (if (not (new_dialog "ddimen" dcl_id)) (exit)) }% D) B) l% j
- (set_tile_props)
$ \ ?$ [: E; @" m5 p0 R - (set_dimen_props)
+ L, p% {# E1 I" t - (setq dimtext (cdr (assoc 1 elist)))+ q% T: B* I; R5 Z4 s
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))1 Y; i O9 ]7 @2 n
- (set_tile_handle)& Z. B( @$ ?2 t* M
- ;; Define action for tiles
5 s) B3 N: b5 G. m4 { - (set_action_tiles)0 o5 s+ R: z+ M* p
- ; H- Y; L; h! J( E0 X& e
- ;; Set initial focus to text edit box.
7 m- G4 E) f/ T - (mode_tile "t_string" 2)1 ^2 m5 S: j4 |0 _" N
- . d' J2 M2 @- p, F0 m1 u
- (setq dialog-state (start_dialog))- L( d% ?" P) H
- (if (= dialog-state 0)
# `( k* X9 v, O/ n( g, t/ g - (if (= ddimmt 1)% B- a c* U" A K! S
- (reset)
" | n) T* s5 `, `7 ? - )
" [2 ?0 `2 p* i9 P" v - )3 W" G w' H0 D8 ~( h! A
- (if (= dialog-state 1)& A. k1 S8 I* j) J! `" P* W! `% U, G
- (progn I6 J' T) u, \; S, J% }& E: v
- (if (/= dimsty stname)1 O) H4 G0 Z6 ?! c& K5 m" Y
- (progn6 c& W h8 N) q, z
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
2 B& n- u8 Q! _4 ^. y9 Y& T - ; doesn't have it.
' g: v, l" b1 L: o- z4 I - (if (null (assoc 3 elist))
9 `" t7 A F* X$ i% x0 [ - (setq elist (append elist (list (cons 3 dimsty))))
+ g2 s; v" B) b$ \ - ; else just replace it.$ H8 A) x4 Y: T* g; P3 s" ^
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))' S2 b/ r7 o* L+ P" r
- )
( T6 j% y7 v; Z2 B- I+ | - ; refresh sv_dvlist with new dimstyle.* I [% g) }& J% E/ S/ {1 o
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))4 |. s) H$ }" `
- )
) H9 `. j% {- H F$ T( D% i - ); L1 D7 n$ M7 ~* G6 r# l5 n
- (if (not (null dimlist)) ; attempted to change dimvars
2 @- h" a5 o) p9 M: t& ~ - (ddimen_complist sv_dvlist dimlist dimtbl)
, j U) k) o9 y ~- c e - )
* ^9 Y, N$ P( u! A+ `8 Q B* A - ; Modify dimension text
' Y2 a" c& x+ Q$ y' h - (if (/= dimtext text): P! }% w- S1 V _' u: E
- (progn
/ y5 m9 R$ X" G8 e% r - (setq dimtext (if (= text "<>") "" text))0 V" T, J% G- r: ^; c+ Q
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
+ G, J7 Q' Y9 @1 ^6 O) h/ Y( _' m - )$ o8 T: }/ t$ g
- )2 e5 H, `* N; T. b5 o! X4 B
- (modify_properties)
# p; P: E8 d9 C# J - (entmod elist)/ m6 t0 a. b. j+ y. h
- )
* J/ \: f. O; E& Z$ j, J - )5 n& w+ S" h( [" [) y' e
- (if (= dialog-state 4)
- o' {& N2 ]9 I1 k6 X, _' }/ y - (progn& l& [- l1 u! }* [$ B/ m5 O
- (setq ddimmt 1)
$ K' }/ X' m- b9 e - (if (/= dimsty stname)( x* ]5 R6 S" l
- (progn
9 N2 D/ J6 L% K# M" N# H! ` - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case) r; V/ ]0 m" @# R* _$ O' S" l! I: V
- ; doesn't have it.) B8 `8 C8 \, O; @" f* P
- (if (null (assoc 3 elist))' @. X1 i0 x. `" z- z0 K. a
- (setq elist (append elist (list (cons 3 dimsty))))
8 l5 Y1 f* H0 \1 W, J% g - ; else just replace it.
% ^6 w% L' s R5 ] - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))5 a( F, t$ }- H- W
- )9 X& ^+ E. d4 h. h0 X% j% r
- ; refresh sv_dvlist with new dimstyle.
; ?/ {3 `0 V4 L1 q4 n0 B - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
5 g! R* Z% C+ L6 L$ q( G. ` - )$ @. @, B. j: n7 Q6 b
- )
6 K2 z' [1 o+ Y1 T% o" K2 y( T - (if (not (null dimlist)) ; attempted to change dimvars
3 |5 `) S" A O! p) a - (ddimen_complist sv_dvlist dimlist dimtbl)/ t# \, d4 u) \$ r+ t
- )
8 z5 e. u0 `( |8 `- r - ; Modify dimension text! j. E, A- h3 S" D' r. ^2 [
- (if (/= dimtext text)
8 Q% e$ x; F# R7 C% w - (progn2 N8 X& b; G' K& C4 z
- (setq dimtext (if (= text "<>") "" text))
4 r8 {2 o- s) o6 u M2 m6 P& x4 [$ ? - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
. h# D- o: C. s& I$ P1 r - )
- h$ D6 i0 u* N4 U - )4 u; v9 s1 o( C8 m# f
- (modify_properties)
1 P4 x- n8 w7 S; l4 n - (entmod elist)
% b4 P( Z0 E) ] - (safe_ddedit ename)
9 k7 I; D6 U7 l - (setq elist (entget ename))0 r/ d3 D/ |& w9 J* O& U& {
- (ddimen)
8 h* q: T& J. Z( t) ^ A9 S C - )
/ X, }# d6 B: u" w - )! m- ~ P( p- i+ F" Y5 ?
- (ddimen_setvars dimsvcurset) ; Prepare to exit+ C& C9 g# e, |
- )9 G5 G0 Q1 ]# Y! h
" r, L( r+ r( \+ g: `2 `; u- q- ;;
* w! r) P0 I7 O' R0 ?1 U m - ;; Modify TOLERANCE
: S9 o4 [/ ^' f& Q% j9 Z - ;;
( G( V- T* R& L+ n$ V+ H! A6 t1 W - (defun ddtolerance (/ a stname n dimtbl ~9 \7 t t7 @! C& u. B J1 Z
- dimsty dimlist dimovr sv_dvlist stlist dimtype6 F3 z+ x; ], c; J
- dimsvcurset)
1 Y. s7 R, }+ z: N- V; c/ ^7 o - (setq dimtype "DDTOLERANCE"
! c. k- L {: z& T - dimsvcurset (ddimen_dimsty_restore)
5 r+ A1 L$ _; w) A1 `; X - )
$ i* u O y/ D) ~) f5 h2 _ - (if (not (new_dialog "ddtolerance" dcl_id)) (exit)); J$ r) F( ?4 u! P# Z! P6 t
- (set_tile_props)
7 k' w: F) G% D3 Z/ c8 G9 O - (set_dimen_props)
# A4 x3 Q. Z6 v - (set_tile_handle)7 ]) l% i# E- E1 Y, m
- (set_action_tiles)
9 f, h7 P. [0 b9 D+ R - (setq dialog-state (start_dialog))* r Y5 u! H) z$ M; A
- (if (= dialog-state 0)* M G; z) C! ^- T" j0 |
- (if (= ddimmt 1)! `2 R3 V4 C' S: `% h
- (reset)" s! A. x% K# q2 I/ | c) Z
- )
8 e3 }7 ?4 p+ I/ a - )5 \' D/ G" X+ @. Z
- (if (= dialog-state 1)2 `- k0 y5 e8 z
- (progn
$ @$ {" v9 s2 S- t5 I$ T% q - (if (/= dimsty stname)
2 z* y: k9 }% G1 ~8 j4 p" Q5 R/ Z8 J5 G - (progn5 L9 }! G1 l! x9 D, X+ L
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case* ?) |- ^$ h( Q
- ; doesn't have it.; C$ U/ a+ t/ x. y9 D! F
- (if (null (assoc 3 elist))- y- |0 ?1 W5 }6 @) H9 x; S9 c
- (setq elist (append elist (list (cons 3 dimsty))))8 x& K5 w% D1 A" p4 e: x# x* _
- ; else just replace it.
7 A/ j, r) v0 r, q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
8 o1 c i+ L8 F: U. b; z- ] - )
3 G4 W# d6 M; @ - ; refresh sv_dvlist with new dimstyle.: ]( {% C: d L4 ?' o
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
4 A* o j0 ]! G @4 [1 C/ d! f: J - )4 H9 s: q) Q8 |- s+ }' u# {8 e
- )! S# P6 X4 r A+ V& m
- (if (not (null dimlist)) ; attempted to change dimvars+ }- s3 `: A2 T+ k* P% ~
- (ddimen_complist sv_dvlist dimlist dimtbl)
- H1 q6 o7 q! w. f# s- u1 L - ) K& p& X! s% L5 C' D2 r( O% q
- (modify_prop_geom)$ V" X8 ~$ M- V$ ?% g6 j- k+ F
- (entmod elist)1 H+ g; f- n1 M2 F
- )
& B( l1 L L# N S3 ^& H7 y' s. U( u5 h - )
2 w2 T5 M* t% F, Q' L - (if (= dialog-state 4)
" A) O/ l3 N$ |1 K - (progn, G) ^. S9 c. j1 L( i2 k
- (setq ddimmt 1)
3 x; I. G( u- [6 U1 R! P - (if (/= dimsty stname)3 K, q. t% W( Z! n0 k
- (progn6 n G. k7 c- F$ o, B; v7 U
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
! Q% p9 f3 K. E - ; doesn't have it.1 h4 t+ {7 t' \* H
- (if (null (assoc 3 elist))
, f$ ^ f; Z1 X% Y# m4 q - (setq elist (append elist (list (cons 3 dimsty)))): q1 q+ Z' N3 g% w
- ; else just replace it.
: Z3 l: B, H: T% [ G9 r' l# d - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))8 s- H/ n* v7 ~' F0 x! r/ H( ]! d
- )
/ @% k7 T% S& K4 m. q( S/ t - ; refresh sv_dvlist with new dimstyle.: o# p& p3 Q( G! ?# n
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
6 `& ], R, [( }) T - )" Y4 @, ~) [7 ~$ U: T0 |8 B
- )3 U# }. m0 ^5 t
- (if (not (null dimlist)) ; attempted to change dimvars
' w$ t9 K5 x8 B. i6 b% I; d - (ddimen_complist sv_dvlist dimlist dimtbl): N, Q9 ? e; |- e9 U3 [, l
- )9 M1 |/ L* s( ^; {8 j
- (modify_properties)
# B+ F: K7 I) }; g- K - (entmod elist)
$ s! R/ ^( Y! u$ b% @5 s |) V Z - (safe_ddedit ename)
7 j6 ]4 l- V9 t - (setq elist (entget ename))
9 O: P$ z& h7 M - (ddtolerance)2 v; c) {7 F7 u1 L, V N0 e
- )& {# I0 |# D M7 b) X. F) I
- ), Z7 P/ E" I! i; J! B1 @ B6 A
- (ddimen_setvars dimsvcurset) ; Prepare to exit
$ h: u* G, W& P$ j - )5 z! S) {$ h1 t; {" M! s
- 5 P. v. g; F! \3 x
- ;;
/ G! g' D# f+ Z+ V3 s - ;; ddimen_dlg - jump to ADS ddim module
! l1 M7 h O' I3 N9 v- G - ;;
/ x$ R4 J* g! s1 z1 o
+ o% `' L* H$ t- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
8 L, w* y) Y( w+ U/ U: Z: L% p1 @
# o8 |8 O- h* `* L( j. G- ; Jump to DDIM with overrides if any.
2 U9 s# V8 \' G8 h* @$ R - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
! b/ o" D. O( E - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format( g& q6 ]! Z% h6 K; v& i2 [ R$ ?
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
' B' ~- j; m8 g. ` - )
1 y$ u; r. e; [! R- O4 Z# r4 y" ^ - )
& {% L& Q9 s& ^) U! ?$ {
4 H" b* C# P0 I8 ^1 H/ i) ]- [7 ^- ;;) V2 [9 G" [! W% U! D
- ;; Dimension variables updated are stored as overrides.% j5 c V' N( \5 i
- ;;/ G: a% C5 [5 H
?0 c+ @1 f6 p- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar1 G/ A+ ?! M: i
- dv dime commandIssued)1 e8 |9 ?9 a3 W1 ]# p% Y
- ; G7 A" k# k( f Y
- ; Here we skip the following first three items:- a3 ^+ T7 c2 q+ M- R0 j
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0); q& ^5 e* G5 o9 X) D) L1 S1 }( X
- ;
n1 W$ V3 o' X/ b/ [/ x2 T - ; The list comparison immediately begins with dimvar.
+ P1 b1 S5 o% x - ; V% h6 p M1 ?8 L: t' P
- ; dimolist - original states of dimvars2 C5 {; F; W4 ?, h& `
- ; dimnlist - new dimvar list which is of the resbuf's
' N8 ^1 f! W& l! i! D, J - ; dime - entity name for the dimension1 D; N; _5 i3 v
- ; odvar - value of dimvar for the dimolist% p5 l9 R }% T
- ; ndvar - value of dimvar for the dimnlist7 x2 i8 D; ]; P& S( n" {( a
- 3 b7 M+ {4 n& W6 N; c
- (setq i 3- }0 m. _7 M% L4 j: k* q5 L
- dime (cdr (assoc -1 elist))
$ T+ X# k7 X# p& M( h - )
; L7 }: t, a% n; M - (while (setq odvar (cdr (nth i dimolist))) Z# f* M6 m! G1 Y, ?9 ~
- (progn, O% j* b% i0 t; M% i8 R- N
- (setq ndvar (cdr (nth i dimnlist)))" t; l# ]# P. J% m( q* b! I
- (setq dv (nth i dimtbl))
6 `! s5 E M2 h/ W8 | - (if (eq dv "dimtxsty")
: f; V! d4 _+ @+ S - (setq odvar (cdr (assoc 2 (entget odvar)))
6 m, w$ ` [( ]- H' n& ~ q0 T* M - ndvar (cdr (assoc 2 (entget ndvar)))
6 j7 M/ q! I; @9 I- L5 c3 k - )
6 p/ ?) p4 a% Y# E1 A8 b3 h - )
: P. ?1 D& n1 _: p- h9 R
% M# _4 e- k0 ~3 G8 f- ;2 M _! l& q/ C, i' X
- ; In order for DIMOVERRRIDE to operate correctly with string5 c" F2 M0 q1 d+ C, j6 I* `% W' E
- ; based dimvars, we must pass "." versus NULL strings.
5 C/ E2 }( Z+ Z) q5 M0 P0 { - ; In this case ndvar is the new dimvar value the user wishes
. J7 C+ Z. m. G) a; u! S. b - ; to update on selected dimensions.5 T" t8 E2 A2 g
- ;$ R3 v$ w, v7 S' a
- (if (/= ndvar odvar)
* w7 P$ G Y" [- a - (if (= 'STR (type ndvar))' Y1 m* R0 k0 v" ^. x
- (if (= ndvar "")
9 ?0 p& e. E; t" ]0 l ?9 w - (setq ndvar "."))))" E% K" f% u! ?2 n9 K: t- [
- ' }7 t3 k1 ^3 U" R/ O) P$ C8 \
- (if (/= ndvar odvar). G8 d; y! _/ m+ h' r
- (progn
" y* M5 Q, Y G [1 l0 ?8 z - (setq dv (strcat "_" dv))
* S1 o5 w2 n7 W2 L3 o" L# j - ;
5 @2 P7 v2 V5 L- A* g& @ - ; Start the dimoverride command5 d- A! E) J7 V5 a! Y2 m0 p
- ;; x6 ~) b# o$ I% A$ _0 V- ]) D
- (if (not commandIssued)/ d+ n, g3 `9 s/ X) z$ R
- (progn
% ]% K+ x- a# U7 e - (command "_.dimoverride"); Y6 p& R4 I5 I" k% S2 H
- (setq commandIssued "T")
, P+ u6 U/ Q* ^$ w; j2 {. r, m - )+ y- K1 u- H v6 J
- )5 t8 s" j2 Y9 E% g* M; v8 x
- ;
* p. ^. T4 f* C - ; Issue dim overrides
/ f& s* S. U5 T1 z; U% m7 \ - ;# E! `& [4 f5 L' Z
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))/ A8 f, B0 h2 R7 k
- (or (= ndvar 0) (= ndvar 256))
% T6 z9 g: q/ T3 u - )2 M6 ]- R& m$ `& L$ y. W. N: m
- (progn
' l. Y6 U0 I" i% W" a- N - (if (= 0 ndvar) (command dv "BYBLOCK")). m# l4 l1 {$ [# Q; S8 O+ V
- (if (= 256 ndvar) (command dv "BYLAYER"))
& ^2 s2 B9 i( X# i6 @7 D7 [/ v% ] - )9 w& b( k C5 L0 Y/ O% K; p! [
- (command dv ndvar)0 l1 @* s0 l8 \- y4 n
- )5 |7 I6 z/ [- @8 k2 r R# X' _! T
- )8 k6 h4 L5 i2 K" B! Q
- ): M Q! z( l4 e3 Y
- (setq i (1+ i)): t; m U; ~) t% S c
- )/ {+ ~- ]: ~2 l) Q
- )
8 a3 [4 y1 E+ `5 h - ;7 h2 ~0 U& p3 u" p
- ; Select Entity and terminate command
+ V( b: B+ w& e - ;3 w; O% t! }+ H4 H8 R. \: e; Z
- (if commandIssued3 i# r9 ^5 m, a5 K% C8 W% l! e
- (command "" dime "")1 { M: N e! I7 y7 C5 H8 F
- )! o& `/ \; @$ h( u1 Q) P
- )
9 J) Y! A$ }' N# i7 e i- p! a8 \
) d1 j+ d& } A0 G# \) R- ;;
. Z9 q' a) M, e! j - ;; Get style name currently selected style name.
/ D' p# r9 _. b" [2 t. X5 A - ;;
! L; D7 W0 W. e4 u2 N3 t# \& g
& y9 u% B0 Y8 c! O: f7 b- (defun ddimen_style (/ dimsty)+ E7 k1 v& ]. A* a
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
' C. C1 r: l( ~- A, L - dimlist (ddimen_getdimvars dimsty), Q1 c7 ^5 l, \2 {- k9 x
- )
/ D3 ?; z) \1 |. q2 v- t - dimsty
$ L/ ?! V M1 Z$ ^: n - )
% R& c8 |4 o% u& j5 p9 y/ C) c4 |4 v3 O
* L1 h' H3 @/ R7 `3 l- ;;
" {1 `, Q( z2 K8 L: x - ;; Set dimvars
$ X- {# d9 F/ J+ M - ;;) B0 V- _+ M1 I, ]: R4 _( [; k
- (defun ddimen_setvars (dimsvcurset / dv i)
7 I9 W. P$ }* ^; p - (setq dv (cdr (nth 1 dimsvcurset)))
% Z, b, X- ^2 ^ - (command "_.dimstyle" "" dv)! S# o3 _8 V* g
- (setq i 3)
& ^4 `; U; h- A# X6 }4 w - (while (setq dv (nth i dimsvcurset))- o( L! H- v( F
- (progn
5 G* a+ J' { x# B, d - (setvar (car dv) (cdr dv))
6 `- S' q2 Z- y4 C) X8 {% c0 p - (setq i (1+ i))1 L' S p' u: }5 z- b7 N3 D
- )
- p0 A5 v# }; k2 F - )
4 w( m# l; R* z1 O/ n' p% m - )# @5 B6 u1 O9 f, W6 [
- ;;
( \& u3 C. Y! b+ P9 r( I - ;; End-of-dimension
* T4 Q8 _0 G L, y, p - ;; ==================* [8 u( Q: i$ e
6 G2 |9 |7 d; y: j; g6 I- J- ;;
1 S4 P4 f% y W+ H - ;; Sub-dialogues for properties. Common to all object dialogues) W: G! T* y) c! ~
- ;;7 }; k0 ]& s/ D
- ;; This function pops a dialogue box consisting of a list box,image tile, and
5 i0 G4 E. q. [2 \" ~2 c8 u$ b - ;; edit box to allow the user to select or type a color number. It returns0 J2 @5 j7 V# k1 Y. \3 d
- ;; the color number selected.+ M0 j7 S- |) v |
- (defun getcolor (/ old-idx colorno cname lay_clr)
0 A6 J4 g3 q M7 X7 j$ [# c - (if (= (get_tile "error") "")
2 r5 Q3 [5 S; m* l - (progn+ g) ^& F6 |- P% B1 i: E+ o' b Y
- ;; Get the color associated with this object's layer, for use5 r4 p9 ~8 D! j2 {6 S1 k
- ;; in the color swatch if the user selects color BYLAYER.
]5 O( ?1 H: _3 [( C) _- m5 g% Z - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
* V5 G$ f- n6 R G8 ? - (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr))), i) @6 k4 Q& Q% _
- (progn2 i8 X$ V/ S, U2 }
- (setq ecolor temp_color) C: v$ W6 p2 T5 ?
- (setcolor)( x7 ^5 H. ?, C$ o; |
- )5 [3 X1 V4 Z, D: w5 h9 z1 l' O
- (setq testcolor temp_color)6 z) y: y. h* `; v5 f9 a% K
- )5 y, M4 G, D; R9 E3 D
- )
& C* m/ L4 h) ^. d2 m - )* z- t3 U# q0 n& W* v
- ecolor
% h" [0 e# W3 i2 ]) q - )
+ x3 l" y' S W5 g N" v - ;;
: C1 Q& v/ y/ n- G9 ] - ;; Function to set the color tiles.
- |6 q) @$ z8 O; i0 ? - (defun setcolor()7 E7 D6 j8 H, \: W, A, f2 k# @4 G
- (cond/ h" H, i2 _5 ^/ W7 K8 ~ L3 v$ n
- ((= 0 ecolor)
4 s8 f) H: `/ U2 B8 }& E3 l - (set_tile "t_color" "BYBLOCK")& i# |0 a6 {1 A1 P9 U/ o9 M- d
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white, H: D& G! `( ]
- ). E0 K6 u/ u. P* `& [5 ~
- ((= 1 ecolor)9 z d! e7 V% \
- (set_tile "t_color" "1 red")3 b$ U4 q* N4 u9 Z( ~+ V9 j+ f: I
- (col_tile "show_image" 1 nil)
: G _5 q6 V. c. a: e - )
; W0 X: r" s- g& l9 C - ((= 2 ecolor)2 X; a5 {1 y- w; o5 W4 M9 \, j
- (set_tile "t_color" "2 yellow")
% d% R6 Q% R! Q; {. h0 \) B - (col_tile "show_image" 2 nil)# D+ \) p5 G; Y6 P0 g# K7 D
- )5 D, K' h$ d- G- {2 l* q. p
- ((= 3 ecolor)8 q* i; A; X" c
- (set_tile "t_color" "3 green")- J8 O1 @% T! n% V
- (col_tile "show_image" 3 nil)+ K) s) y+ I# q0 Y$ X2 S0 k8 i
- )
8 T, S0 y: s5 d. w7 O+ N - ((= 4 ecolor)
. s; Z' ~: K5 @+ _& S5 j& W# f5 k1 n - (set_tile "t_color" "4 cyan")
& z: m7 v( [. s( p# {& [; D% v - (col_tile "show_image" 4 nil)
* ~2 N8 J7 j7 ?8 O: G - )
: Z, f/ ?7 w0 ^3 N8 b, r - ((= 5 ecolor)* |+ R& I! A. D
- (set_tile "t_color" "5 blue"), C+ @' _3 r/ h D: Q. q
- (col_tile "show_image" 5 nil)! H, D( N' k7 s' y
- )
0 k; a. S% q2 k7 e - ((= 6 ecolor)* C! ^" a; }4 c* ]: f2 ?' i4 m
- (set_tile "t_color" "6 magenta")
1 Q$ t# w! Y3 K% U" y9 r2 r - (col_tile "show_image" 6 nil)8 J/ H4 T! p+ y5 z ^
- )
1 x; p) f5 x% `3 S0 X% w, f+ f: e - ((= 7 ecolor)
: O( ~* d% F9 [% R, f - (set_tile "t_color" "7 white")
6 h8 ^* _& p$ d. v6 q9 } - (col_tile "show_image" 7 nil)' h9 X ^9 v7 U5 N1 i$ m8 |
- )/ ~. [6 h2 J1 u) P/ Z
- ((= 256 ecolor)
3 j) b: M( i8 x4 O3 K* B - (set_tile "t_color" "BYLAYER")
9 n" C- m! C2 l: j - (col_tile "show_image" (bylayer_col) nil)% F7 F* i8 C C6 z0 w/ z) m
- )9 w4 T5 l4 S, H9 d R6 v; t9 L
- (T' T+ O4 O4 ?8 i- F& D
- (set_tile "t_color" (itoa ecolor))
7 Y7 u+ u0 y# ^% t/ F' W5 B$ E5 a - (col_tile "show_image" ecolor nil)( P6 P6 O x* |8 f3 m
- )# }, K1 f/ j" w: ?! A
- )1 J5 _: K% L' k
- )
4 M/ I' u0 x" C1 w! ^1 D - ;;2 G* ^8 i" H+ c, K0 Q7 ~
- ;; This function pops a dialogue box consisting of a list box, image tile, and1 T+ @( ?; [" n5 [& `: D7 s
- ;; edit box to allow the user to select or type a linetype. It returns the5 ^# D9 o* t9 e6 d/ N
- ;; linetype selected.
1 s' C- u! x3 e5 n2 A - ;;
' q5 L7 V4 W+ {. I$ H - (defun getltype (/ old-idx ltname)
8 D8 B- t% |/ V- I0 ~/ F - (if (not lt-idx)
: Y- Y Z+ g5 q0 y/ M - (progn$ u# X! b5 q% n1 \1 l
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
5 ^2 e0 a4 f2 ]0 d - (cond1 ]+ i1 O' N$ Q$ |
- ((= eltype "BYLAYER")
2 d$ _+ J) ?( O7 C* w4 p7 ~ - (setq lt-idx (getindex "BYLAYER" ltnmlst)))5 u7 a5 K9 S( S- [
- ((= eltype "BYBLOCK")
& e: s- E8 K' r6 `! t0 U8 E - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
) h: H* C) A O - (T (setq lt-idx (getindex eltype ltnmlst)))
7 W9 ?8 \+ `' y$ ^, o# a1 L- o - )
# ^, p, l3 ]1 T4 m& N# f2 y& N - )
7 [0 v4 Q6 b+ W& H3 b: g - )
/ L5 G8 g1 U6 Y$ k4 C2 W- m+ |( B
1 i2 G1 j9 C) w3 ? P- (if (= (get_tile "error") "")- o+ n' E7 y& c ?# F: Y9 K. D5 h
- (progn
! i- X. L3 p# s1 b5 j - (if (not (new_dialog "setltype" dcl_id)) (exit))- {: b; z* y! j$ M N
- (start_list "list_lt")
1 S' {) s4 q: U. l, U - (mapcar 'add_list ltnmlst) ; initialize list box
7 k! h! P" A4 M l) i) _9 _$ f - (end_list)
* A. ]5 {$ c- C& m1 v. z* d7 P9 T - (setq old-idx lt-idx)
" l% n% a, M" K" k# m5 F - (ltlist_act (itoa lt-idx))
" \1 @ Z" X6 K; C+ Q6 d% Y) U - " k4 E Q4 y2 X
- (action_tile "list_lt" "(ltlist_act $value)")& Q$ D% u4 N" ~% E. `
- (action_tile "edit_lt" "(ltedit_act $value)")
* f) A, ^' {0 n - (action_tile "accept" "(test_ok)")/ V6 T4 ^; n6 M8 G
- (action_tile "cancel" "(reset_lt)")
" T- C1 w1 u# W - + H$ u/ j3 z. N
- (if (= (start_dialog) 1) ; User pressed OK
9 o& b% C) n- j2 T - (cond& o6 ?* U* m8 e) f, `9 M
- ((= lt-idx 0)
6 n9 m+ g9 b( u+ l @ a - (set_tile "t_ltype" (bylayer_lt))
7 ~+ Y# V3 O3 ~* L6 C" c* j" t - "BYLAYER"
& ^7 S% m5 i' V, S& s3 ? - )" S* v) c1 [3 `$ }3 w& M
- ((= lt-idx 1)3 m" [/ I4 A5 R) g7 r2 h5 D8 w
- (set_tile "t_ltype" "BYBLOCK")2 g) W" O' K( }" S/ X8 a+ v8 k
- "BYBLOCK"
3 q9 }# G7 V; r - )% p6 `( c, ^, X/ m
- (T (set_tile "t_ltype" ltname) ltname)* k0 Q3 U8 R( W
- )7 M3 e; R0 P' u4 k- Q
- eltype& h; w4 g/ l# E0 F2 |/ }5 @
- )* G' J$ P, l; ~2 M6 m( N
- )
( }4 }# s6 u& |4 j, | - eltype3 ?- Q# H+ n: l5 y7 N( V8 `
- )
/ m# J ^" k# x3 T# Y4 G. d - )
9 I( d9 ?8 V# N8 b2 T% M3 q4 ~# A/ o - ;;
0 C5 d2 C0 N/ v' P* h) ]; _ - ;; Edit box entries end up here
* P, o* C# m' | - (defun ltedit_act (ltvalue)
) [2 C- Z/ ~1 Y. G' V0 l% V - (setq ltvalue (xstrcase ltvalue))
5 [8 ?4 {2 M5 J( H - (if (or (= ltvalue "BYLAYER")" C7 X8 P) g) L4 H2 _
- (= ltvalue "BY LAYER"))
9 S! _% K3 y' j2 I5 R - (setq ltvalue "BYLAYER")1 }. [ }3 H% `7 n: B* R1 A
- )7 I8 }" V# S, W# E
- (if (or (= ltvalue "BYBLOCK")
, S/ w1 [, C# c7 \7 { - (= ltvalue "BY BLOCK"))
& H z$ L& O- C) W8 y) _ - (setq ltvalue "BYBLOCK")8 G) l m/ s5 P6 g0 }6 P& o
- )4 s. D5 u: Q1 z! `, ^! b; c: n
- (if (setq lt-idx (getindex ltvalue ltnmlst))
( r- }& x# n0 N. S( {3 i - (progn& Q: d6 @, J: r% L2 ?1 x% t N
- (set_tile "error" "")# K# J% G6 |) X
- (ltlist_act (itoa lt-idx))( Z% }$ q1 W1 |5 }! G/ [
- )( z; O A I& ^
- (progn
# L1 i: o! r4 C7 B4 j* t8 } k* N4 ]& D - (set_tile "error" "Invalid linetype.")" @1 U" z3 @- a: E! _% R
- (setq lt-idx old-idx)1 W, _* I& M+ u
- ;; (mode_tile "edit_lt" 2)# W1 F# o7 ?# \
- ;; (mode_tile "edit_lt" 3)& S2 }! J) t/ x8 E* L2 J
- ): M( C" B b+ s9 L* |: F7 y
- )
6 u/ z/ ^. T I, m - )# Y* O1 k+ C7 D2 P
- ;;
/ y( s( A1 u/ @ - ;; List selections end up here. Update the list box, edit box, and color
0 T# @" S4 |8 J) J. m+ K/ d, r - ;; tile.
' H$ r* [, b6 }( |9 X8 I" ^ - ;;
6 Y( I0 b( h& ?# K* J* e - (defun ltlist_act (index / dashdata)2 V7 M3 o7 e6 X8 Z/ p2 O* J: E- t
- (set_tile "error" "")) Y. d' g/ Y3 |- r
- (setq lt-idx (atoi index)); [6 E8 N# X8 a# ?, |
- (setq ltname (nth lt-idx ltnmlst))
$ a6 @ l* K! d9 T) K6 y - (setq dashdata (nth lt-idx mdashlist))
1 f* d( N* R' \0 p5 O8 W# q - (col_tile "show_image" 0 dashdata)
6 o5 o; h$ F# g! Z' ]1 J! z - (set_tile "list_lt" (itoa lt-idx))$ c/ c! Q) s6 ] k
- (set_tile "edit_lt" ltname)
7 n" R: m$ b* v0 P: ^- P - ): b+ L" M' ~% m& M
- ;;
; n$ ?4 f$ T9 ` - ;; Reset to original linetype when cancel it selected
2 t/ \- q+ }3 B0 u" t/ H* C - ;;
, b! z0 j, z7 h$ a1 n/ L4 x - (defun reset_lt ()
& c& [2 H0 g" [2 l! N& K. t0 M% P3 P - (setq lt-idx old-idx)' M: [, w- ?% h; m8 w
- (done_dialog 0)$ I) C) O/ V, E: Q& _4 U
- ); {/ c3 E% q+ ~4 S
- ;;/ Z- p' r4 ~& E' U' I2 H
- ;; This function pops a dialogue box consisting of a list box,image tile, and
0 x* V& w _1 d9 ], y3 `3 f - ;; edit box to allow the user to select or type a layer name. It returns the5 g' `5 Y4 c1 K8 l" Y
- ;; layer name selected. It also has a button to find the status (On, Off,
4 e5 A2 S- K) @ - ;; Frozen, etc.) of any layer selected.. Z/ V! h3 e8 f* {0 _
- ;;
- P9 S/ p- d* ^& i2 V - (defun getlayer (/ old-idx layname on off frozth linetype)* r# F. `) p' ?
- ;; Create layer list the first time the layer7 j0 y5 n/ g: _
- ;; dialogue is called.6 x, ~& ?* c ^* M6 p0 z m
- (if (not lay-idx) C! g' ]; h9 K; g2 z# `' v; e
- (progn1 Q- C5 g; h1 r& i
- (make_lay_lists)
) c+ o' j& {& B, R n A - (setq lay-idx (getindex elayer laynmlst))
i# q, Y/ T! x - )
# d" E6 c, u! p5 |4 W& `# v - )
$ d/ Q H6 N6 o
7 N3 V3 `. _( G! ?7 p7 g" }. K- (if (= (get_tile "error") "")( h& d @0 l8 c7 q3 ~- W# l
- (progn ?# z) d: K3 r$ ~' f' X( Q2 Z i+ H7 X
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
, \! t0 o( |* D$ T9 | - (set_tile "cur_layer" (getvar "clayer"))7 S* e8 n3 ]! x. X7 g, b8 `& M8 z/ _
- (start_list "list_lay")) A5 t E% @1 a3 {4 d$ K1 r( Y
- (mapcar 'add_list laynmlst) ; initialize list box
9 z( d, b6 |# c - (end_list)- @" O) c+ D& C. L# H) \+ [ w1 s& j
- (setq old-idx lay-idx)
% P& J( S3 r3 k - (laylist_act (itoa lay-idx)). r' d- L/ P& U" c/ B2 { V+ j+ o
- (action_tile "list_lay" "(laylist_act $value)")
5 u$ [! `+ N- `0 t& [+ C% N - (action_tile "edit_lay" "(layedit_act $value)")
0 u7 d" D5 e3 P0 b - (action_tile "accept" "(test_ok)")
/ |7 @& ^: {3 z9 M3 V - (action_tile "cancel" "(reset_lay)"): H' M- c' j+ S" h' Q0 V* t
- (if (= (start_dialog) 1) ; User pressed OK
0 G6 L: j3 S. T( v9 {! t7 r - (progn5 ~) M7 \( a, J" ` t% R; Z
- (set_tile "t_layer" layname)
- I; u; D. S" K - (setq elayer layname)
( a% I2 y4 ?$ J# ?! u/ B - ;; If layer equals bylayer reset color tile
1 K- x. N: j2 P+ G6 Y - (if (= ecolor 256)8 u3 b1 v: i' }/ t! P, }& l
- (col_tile "show_image" (bylayer_col) nil)
8 _, k: q1 X: e. W- v2 u1 G f - )* l1 g' } M" C) ]
- layname
2 K8 a" Q! |5 e/ q! H6 d4 b - ); g7 s E* K% p& F r
- elayer5 [( r: Q O- ?1 R6 a% v
- )3 I: `' f/ B: Q
- )1 z0 a$ i' D- a
- elayer- U T/ y3 f$ |# A9 q4 a4 S$ a4 a
- ), K# |4 u6 v, v8 Z2 o/ h
- )% h( ?5 N) v0 u' I; y: X1 z
- ;; s9 a) [% x) X% N) A
- ;; Edit box selections end up here. Convert layer entry to upper case. If
6 g% ]7 J+ d0 o3 I* e+ M - ;; layer name is valid, clear error string, call (laylist_act) function.
- |0 \7 _& n/ V9 [* a# ] - ;; Else print error message.
0 z" n7 b( q, | g0 m) Z3 h - ;;
1 ?0 b* g# k8 q7 O - (defun layedit_act (layvalue)
* P8 j) t" Q$ K- {! I: i - (setq layvalue (xstrcase layvalue))
$ f% X H' P+ p1 j* ]% t. b - (if (setq lay-idx (getindex layvalue laynmlst))2 X P% _4 ?& ]; ~# b1 u
- (progn
- w7 s& m. D9 K/ N4 z - (set_tile "error" "")
) F3 h4 ^+ `9 ]3 h$ Q3 X - (laylist_act (itoa lay-idx))
9 s. ~ @/ \5 V - )
$ z3 P+ y9 B% l2 v- O- a2 V - (progn4 g& |- y. m( K4 g+ c
- (set_tile "error" "Invalid layer name.")( U( O* ^( _. b, U: j) Y
- ;; (mode_tile "edit_lay" 2)4 }% x T0 b i: A! t1 ~5 d0 d
- ;; (mode_tile "edit_lay" 3)
( o( ^8 Z1 ^( \! A K7 y+ x& q - (setq lay-idx old-idx): x9 T# T# D% M1 e. Z
- )
6 i+ {) q1 h7 X* @ - )8 r5 t2 ]2 ]3 g9 u' L! T7 n
- )( P' K4 S' W/ j& n2 ]3 n% F
- ;;) K0 k, Y1 m4 C7 s2 x/ \
- ;; List entry selections end up here.* D7 s: Z3 i+ }- q! P' d6 y
- ;;
! L% f6 g" O a c8 B0 B - (defun laylist_act (index / layinfo color dashdata)" J! B# u2 L% I2 n8 U
- ;; Update the list box, edit box, and color tile., m% }/ q/ y) ^4 d6 R7 E
- (set_tile "error" "")
* Z- ^5 O; |, G; g% ^ - (setq lay-idx (atoi index))4 E, B) j9 ^5 w1 U
- (setq layname (nth lay-idx laynmlst))1 h' t; c* k+ F( V( D& {* V% {
- (setq layinfo (tblsearch "layer" layname))
# U: j) W% i$ C5 Y - (setq color (cdr (assoc 62 layinfo)))
* z' v, D+ t7 y! l' j- o P- K+ A - (setq color (abs color))- Z) H8 I" m) t8 t: N I n# }
- (setq colname (colorname color))% {7 b4 V( D2 V3 ?
- (set_tile "list_lay" (itoa lay-idx))) o% ~) o/ F# o" _3 E
- (set_tile "edit_lay" layname)
$ e0 A! @- c8 a/ P+ P6 {7 W3 h- b' w - )( r- E% Y& T( M- Z3 G; Z
- ;;
6 F; n: ^6 c5 Q1 a! d$ `% b& z - ;; Reset to original layer when cancel is selected.
- r, x1 Q: W( ? - ;;
' S# t/ |1 Z$ u4 g - (defun reset_lay (), V4 J- U% a- ^8 l- k
- (setq lay-idx old-idx), [1 t+ u2 X- s ]
- (done_dialog 0)
! M, b' S% h# g+ A: w9 f - )0 b+ \ |( J5 e# q' O1 [) U
- ;;" {3 x% K' C6 K2 ^) v
- ;; Checks validity of thickness from edit box.
$ X. `5 S1 |2 I+ Z8 G - (defun getthickness (value)
3 T: V# p( b, t+ u4 \) T - (setq ethickness (verify_d "eb_thickness" value ethickness))' t2 Y+ l( H0 j5 ~0 e- O! E4 |5 r
- )
" N$ H( E9 j( r# `3 E. l - ;;' ?5 u9 ^# Z9 |. w
- ;; Copy of (getthickness) for ltscale. If more, make this function1 T$ t, [: k" [0 q: ?+ L* F4 l0 G( {
- ;; generic.
n5 H' |5 _$ G9 Q0 O - (defun getltscale (value)* H! \4 C+ u! Z* f7 i0 x
- (setq eltscale (verify_d "eb_ltscale" value eltscale))9 [ p; t+ Y5 g j" p V$ w
- )$ `* @* P0 _- }% c
- ;;9 Q: R, r$ F/ N# a6 u3 i
- ;; This function makes a list called laynmlst which consists of all the layer
* z3 E# Q, g5 O/ J) w( e8 Y8 X - ;; names in the drawing. It also creates a list called longlist which8 r( z, s& u$ E- Q* @8 ~, k6 g
- ;; consists of strings which contain the layer name, color, linetype, etc.
$ P" n1 D1 I" \4 c3 h2 y1 T' } - ;; Longlist is later mapped into the layer listbox. Both are ordered the
2 y: O" ?& q0 L# v4 d0 S3 f/ ] - ;; same.
% S7 c$ W+ d7 c! Y- d - ;;/ K1 @; _3 r. k
- (defun make_lay_lists (/ layname sortlist name templist layer_number)
7 ]4 A7 F( F7 |% l: { - (setq sortlist nil)
; A3 _- t& f2 R( F8 X - (setq templist (tblnext "LAYER" T))& m2 z+ v& x3 N. t8 `. t
- (setq layer_number 1)" w* E4 I6 z4 b* {# K( d
- (while templist
) P% C) x9 M7 j! H' ?5 F - ;; No xref dependent layers, please.2 w* L2 W8 z7 B8 L( q1 n& c, }
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)6 |6 A. S5 k( b5 B5 b
- (progn
) \# o" {8 \3 _7 G$ n - (setq name (cdr (assoc 2 templist)))$ H2 l0 W0 {; T: g+ i% m
- (setq sortlist (cons name sortlist))
6 R# Q* Z$ Z, f: n" h5 G2 s! v; G* e2 r - )
. y! p S. n' j3 l, _ - )
$ [& F5 x; c8 a) U* k% a0 o0 h - ; Get the next layer.: Y& @& r2 U* [- `+ `
- (setq templist (tblnext "LAYER"))
' Q Y5 r( u8 z5 X7 \0 T4 q4 ? - ;; Not dead message...
/ |$ x8 F$ Q2 F6 V: G8 t5 ?/ d - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0))). y" x0 e$ b4 h8 U4 @, a! G
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
8 l# n1 @* \5 R+ f" J; Z - )
: D" r3 K' c# p( _- ^7 d - (setq layer_number (1+ layer_number))
$ m0 j8 a; {0 T1 Q% x - )$ P) K# I- [8 G2 B3 J
- (set_tile "error" "")- r& @' B+ O$ A" ^. {
- (if (>= (getvar "maxsort") (length sortlist))
, b- u9 p5 I _7 U - (progn% Z `- R" n3 p u( {9 n0 a
- (if (> layer_number 50)7 |5 h! c4 u- ?# h- i
- (set_tile "error" "Sorting...")5 }# ]$ V5 T! r+ Z5 l2 M6 U
- )
. T/ D; k: j' V! d. B - (setq sortlist (acad_strlsort sortlist))
+ q! H, |$ ~' _/ Y - )
$ J2 @1 l6 U' i* w: I - (setq sortlist (reverse sortlist))
8 N0 }7 l K4 M3 H1 ]) t# X8 [ - )
& b/ p: L: i$ T# [8 n2 a, k - (set_tile "error" ""). _6 z% g! Y W; {! J7 k
- (setq laynmlst sortlist)
6 Y& Y9 x7 Q& n8 O( z% w - ), s# {1 S% g5 F9 P3 z3 Z/ Q5 m4 b @
- ;;3 Q# k h; O4 f! t# o7 H
- ;; This function makes 2 list - ltnmlst & mdashlist.' [" O$ S7 T3 x8 l6 \/ B; W
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist* B$ R9 T+ w S% y n1 ` f
- ;; is list consisting of lists which define the linetype pattern - numbers/ i! K$ u" G/ R, e% R, U% k; }' d$ D
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list; V- k9 [& f" `* J$ l7 {' q3 [; H* [
- ;; corresponds to the order of names in ltnmlst.$ I6 E& I, h1 p
- ;;
: n3 q" r6 t# W$ Y+ P2 Z# z - (defun make_lt_lists (/ ltlist ltname); r. F; a5 ^' ]
- (setq mdashlist nil)
! n- t4 c+ |( W: v: w: \! o' O7 J - (setq sortlist nil). Z4 t M! ]5 Y/ N. i; [. f
- (setq ltype_number 1)
5 ]; P* Z1 x+ I, ?) l1 q1 v2 X4 y - (setq ltlist (tblnext "LTYPE" T))2 O- u$ _- q; a
- ;;(setq ltname (cdr (assoc 2 ltlist)))& |4 }+ K; w- p- t+ l2 }
- ;;(setq ltnmlst (list ltname))
+ A6 v8 F' n, f! W, `9 x; M - (while ltlist" v. U5 m7 F- b9 v o4 v5 V
- ;; No xref dependent linetypes, please.! @! I. b& S! \9 R1 s# s$ o8 n
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16). A9 P$ @# A2 g0 X9 o1 C
- (progn
2 L5 o; U# y w* K* b: i6 @ - (setq ltname (cdr (assoc 2 ltlist)))9 s$ n- K: D% ~
- (setq sortlist (cons ltname sortlist))4 z! ?% w* q B+ A4 _! x- A% X
- )- j3 s. E/ m% H4 h
- )
$ I8 Q/ C2 k2 Z F2 @. g( X - ;; Get the next linetype.) h k1 \; Z' [; a5 P0 K
- (setq ltlist (tblnext "LTYPE"))( O3 o" Q& k* N2 P' d$ H
* S' s' z- \. `3 u3 S7 Q- ;; Not dead message...0 v# p$ C h4 N! N! @! t1 W
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))' _, W/ V0 w# ^, K. S; _
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
) s5 W( E+ ~- h( x+ {. b" } - )
: I" ^: k, i! ?* u3 Y4 I3 e - (setq ltype_number (1+ ltype_number))
& E! Y) |4 ]4 Q. F7 w7 q5 n; P% p - 0 _& B5 K( c/ N, x5 |
- )% u8 Q$ _: J. d" i' k6 O, ?0 Y7 y
- 7 K0 S- ?$ N. B
- ;; Remove Collecting message.
+ V# m m0 f0 L4 T9 Z% q- Y - (set_tile "error" "") u- @9 @+ [% H( | w8 z# w8 r
- ; I( j2 F3 y1 S4 e \: E
- ;; Sort based on maxsort./ N, G' ~7 ~, G9 @
- (if (>= (getvar "maxsort") (length sortlist))
* m' k; I: _$ y# G - (progn% M6 \9 s: M* b# O! W
- (if (> ltype_number 50)0 k. P9 E* A$ r; g# G
- (set_tile "error" "Sorting...")
2 g2 e! c* ] h* z - )
) p7 {4 R! K4 R. C H& Z - (setq sortlist (acad_strlsort sortlist))
. [/ [5 D, G3 x2 `. b - )" w/ n4 s8 I5 S/ Y8 B9 k
- (setq sortlist (reverse sortlist))
% \; o, O; J# g' h; V - )' h( T2 f8 s( E! S
- (set_tile "error" "")
; G$ P+ u1 J" P% S8 [ D" T - (setq ltnmlst sortlist)
' H% r) P+ O: U2 o* b8 i+ ^
% y+ G P* @0 u, M- (foreach ltname ltnmlst
/ o$ i {: g6 Y6 o - (setq ltlist (tblsearch "LTYPE" ltname))
1 V: n1 M& y/ [3 r - (if (= ltname "CONTINUOUS")3 r- L1 O; z& @) h
- (setq mdashlist (append mdashlist (list "CONT")))
0 a% { m$ b y6 R! h: g - (setq mdashlist/ L9 J; {4 |& Q
- (append mdashlist (list (add_mdash ltlist)))
- T# P* g3 N: z: U# V4 r6 }% n - )
. u& g* l1 D2 B" _ - )
" q/ ~+ P8 E) d8 F5 F" F - )
" P/ ?" h* m5 p$ n" d7 w, Z - (setq ltnmlst (cons "BYBLOCK" ltnmlst))$ S( d. f( m8 E0 M( y
- (setq mdashlist (cons nil mdashlist))# R2 P( X8 b3 y% V$ \7 F" m
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
1 G9 d( u- c9 t z/ y - (setq mdashlist (cons nil mdashlist))
9 Q7 F1 f3 u5 _3 ^ F' D - )
+ E+ t! r& V! N3 K4 e. I6 d - ;;& M0 |+ f' z" V6 w% U' j
- ;; Get all the group code 49 values for a linetype and put them in a list
- {7 t; m' f1 {4 ] - ;; (pen-up, pen-down info)., ~+ o5 O M! I$ a% n5 J8 G4 q
- ;;1 H) w1 h9 G8 D1 n
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)- ]4 k. g7 f) _8 v
- (setq dashlist nil)) [( P4 l8 d) P6 W
- (while (setq assoclist (car ltlist1))5 E2 N$ H- n. D2 w2 q8 k! ~) w) D
- (if (= (car assoclist) 49)3 G6 j$ t1 f9 Y4 s
- (progn
! P/ V v& \. n9 z! z1 B - (setq dashsize (cdr assoclist))
/ s& c* N) \2 d$ {/ p+ U - (setq dashlist (cons dashsize dashlist))
2 V) W n) W8 ?. v' U4 R - )
6 \% w: N, `6 z9 B# m - )
5 y3 @ P# I& b4 M; x - (setq ltlist1 (cdr ltlist1))
$ V7 D& |7 i' b* i7 I9 H5 ~ - )
' o) h) y2 ]! ]5 P3 b3 [ - (setq dashlist (reverse dashlist))5 i$ O5 u, |7 |7 O- i' h! @& _
- )
% |" t ]5 w& Z& i8 y/ H - ;;
5 g- x8 s# Z: Q) r% T8 S) F8 r) \ - ;; Color a tile, draw linetype, and draw a border around it$ S' g4 F! V3 D# j
- ;;/ w; n3 @# f3 |7 N5 ^! N5 f9 I) Y
- (defun col_tile (tile color patlist / x y)
/ j, C8 U& B( O1 u" H2 v' Y: S - (setq x (dimx_tile tile))3 @* ?9 i6 o! c2 f+ y
- (setq y (dimy_tile tile))
% j0 z8 l+ s/ i7 k - (start_image tile) A% u! |+ N5 |+ g
- (fill_image 0 0 x y color)
( l0 w6 D! }/ k2 e8 w; r g - (if (= color 7)% m/ Z) O+ @+ W6 g8 \9 o% G
- (progn
5 @! J! E! L. T) C - (if patlist (drawpattern x (/ y 2) patlist 0))( [- s( e( x& f, S
- (tile_rect 0 0 x y 0). `# }; |9 U2 Z, O, Z9 }+ T; }
- )9 z4 f# n; k y. S1 q0 g( T2 l0 k( P
- (progn+ N, Q/ Y0 R7 p
- (if patlist (drawpattern x (/ y 2) patlist 7))# o2 r3 M" o! t1 C; l
- (tile_rect 0 0 x y 7)
# z$ P, o/ H8 i; ] - )
- m& J6 u7 R9 k - ): w$ J; F( `, b4 b d
- (end_image)
+ m; [2 t2 _* P" g9 I - )
; a1 l/ b1 \6 D9 E# w/ T - ;;
8 n, q- A5 d: R, S% M: r+ Q - ;; Draw a border around a tile+ h$ H' d/ y/ c4 t% Z4 V
- ;;5 E1 w3 e- w+ t1 U& P; A- x
- (defun tile_rect (x1 y1 x2 y2 color)
3 n: j. H1 @* Y - (setq x2 (- x2 1))* H# _" o' l" b
- (setq y2 (- y2 1))
8 j8 `5 Q4 _6 H9 b* k - (vector_image x1 y1 x2 y1 color)
0 g& z+ R& |$ v3 n6 }/ Z+ o - (vector_image x2 y1 x2 y2 color)8 [- ]& F( T. O
- (vector_image x2 y2 x1 y2 color)! _7 \" x$ l( P4 f) w
- (vector_image x1 y2 x1 y1 color)
5 n7 i% ^0 C) M' N9 E8 r% B# X B - )
) d9 O3 f+ n/ T: B$ x: P* p j; i - ;;: N* t/ u1 A7 a& L) ?
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image* e/ E+ Q7 J4 ~9 f9 q, s
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a' [0 N! ]. n1 k8 _# e- W8 a
- ;; list of numbers that define the linetype, and color is the color of the) n& J; t$ C$ J+ g" A ]
- ;; tile.
n3 G, N) ]' U5 j6 p) Z l" j* d - ;;
) I- {/ U* k4 X+ ]) h$ [, M4 S - (defun drawpattern (boxlength y2 pattern color / x1 x2
7 y y9 |" b0 P8 v. ^9 _$ ` - patlist dash)
, s5 v2 |8 _- X# H8 X9 M- s) E - (setq x1 0 x2 0)) }4 s+ N( ?! s
- (setq patlist pattern)4 ^7 ]5 J J$ L2 Y# s
- (setq fx 30)
% Z/ P0 H5 a* O3 B9 C. R - (if (= patlist "CONT")9 ]* }9 Z# h3 }9 w2 Q6 G
- (progn (setq dash boxlength): M/ ^" y4 u, r! a/ H* [7 R
- (vi)
. M, ^( m- J* ]7 _! o- j+ L - (setq x1 boxlength)
& p) ?6 K: G4 z& ] - )
/ F9 i3 Z5 f& h3 V* u - (foreach dash patlist
& [/ ^/ z7 d% e8 n - (if (> (abs dash) 2.5)
3 i$ O' g# m) @ n - (setq fx 2)
5 j" U8 n8 o; Q+ U0 v - )
, ]& A( A: D7 V& X5 q - )% O S+ s; P* C+ e5 N
- )
: o8 }1 w! @+ ?2 H1 X: i# W+ c - (while (< x1 boxlength)! A! F! ^- ^. {* g! W1 Z
- (if (setq dash (car patlist))) Z. ?3 \9 w. H8 T5 U0 e g8 ~
- (progn( e8 V2 k! M% R
- (setq dash (fix (* fx dash)))
# |, F1 r3 j j8 _- @7 x) w, w - (cond# U. T2 q0 ~" q
- ((= dash 0) (setq dash 1) (vi))# G/ W6 _2 V" }. C ^. L7 O4 ]
- ((> dash 0) (vi))
+ T* g) }9 s; a* y' m - (T
& N" P& B0 f+ M4 D, y" B' S. f - (if (< (abs dash) 2). M0 z* X0 P5 s( [4 L# W, A
- (setq dash 2)! w3 f1 E1 Z- W G% s( l. ~# K8 a
- )( I+ L2 M" I4 r a R* N/ |4 u# q
- (setq x2 (+ x2 (abs dash)))7 t% Q6 u1 v. S
- )
$ H9 r4 k9 R$ \- g" W# X" G - )
7 k( }; ]) X6 y- z - (setq patlist (cdr patlist))
. @# a) m+ u1 h9 H4 z - (setq x1 x2)# k( V& x, b$ R$ t6 }
- )% z" w; u5 h% I) k3 b: E
- (setq patlist pattern)0 P% f) r& t& d! U3 B$ R- a( a
- )
- _8 I( u+ |) K+ a( ^ - )1 m1 l; v5 Q( g& v
- )
4 s0 Q' {% I7 B$ J0 o( z) G: C* g - ;;6 M3 K& L2 J1 Z# K
- ;; Determain state of xclip) X- @0 ~- h! n
- ;; Returns the group 71 value of the spacial filter dictionary.
7 q8 r. O! }: E) v - ;; If the entity doesn't have a spacial filter dictionary, this
5 j2 q. D3 p" q' E/ F. `' R - ;; returns 0. If it does it will return 0 or 1 depending on the
1 g( Q2 o; H4 B9 P" B8 r/ e - ;; current setting of the state of the clipping visibility.
- T @7 X' h$ Q7 ~8 {8 V - ;;
4 y/ k: X _# }) Z [ - (defun xclipon(elist)
6 z; R5 y# A6 r1 { - (setq hasclip T)- b. H8 W! U! S% B `
- (if (/= (assoc 360 elist) nil)
" X: }# h" ~9 X4 g3 U - (progn5 [, ~) x7 m1 G" ^% ^
- (setq tmp (entget(cdr(assoc 360 elist))))0 W+ ?1 v2 q- [5 W% Y# ?' F/ h
- (if (/= nil (assoc 360 tmp))
. T, g+ G% d) u+ [8 J- G L* _ - (progn
+ ~# r, s, x5 x/ o - (setq tmp (entget(cdr(assoc 360 tmp))))+ P1 P+ C% o, ~4 ^
- (if (/= nil (assoc 360 tmp)) p; N8 |+ H- c/ w9 w
- (progn- h; m6 O6 m$ B
- (setq tmp (entget(cdr(assoc 360 tmp))))
! Y8 S0 M; j7 C+ z1 W, c - (if (/= nil (assoc 71 tmp))
8 ?1 N/ @) \" z( _$ m - (cdr(assoc 71 tmp))/ u& j: y4 ~3 }' O1 y+ s2 A$ N
- (progn
. W6 [+ c e+ A6 S8 T - (setq hasclip nil)7 G5 B+ i( \( x: ^$ b# K. S9 N
- (eval 0)2 w8 t& `+ D" p5 A7 m
- )
- @4 H# A& ]7 N% ]9 v - )
% P* |* ^( _2 c- F) ` D2 [, G - )/ E1 J6 m6 |5 ~4 i3 u
- (progn 2 v* U/ E" l& @. ?1 t- ~$ `" M
- (setq hasclip nil); N6 U6 [: K- u( \
- (eval 0)
: H8 q$ Y* u$ M' K- H1 Z - )) O1 I* _ X w" X/ M
- )
: }$ f, E6 E- `% b- s7 Z - )
5 M+ X* |1 N$ C$ y1 l7 _ - (progn
7 [# g! W% x( A2 z/ } - (setq hasclip nil)
2 X2 H+ }$ `; m1 g& c' e - (eval 0)4 Y8 ^' n, P d& h, i: K( q0 ^
- )
8 x5 X( K# F) L' j, D - )
( N9 a$ Q7 P [) U - )
7 t0 r K% X# i. R - (progn
- r9 X. [$ s, k- |8 A3 J - (setq hasclip nil)1 F; h' R H8 \' w( P/ z. `
- (eval 0)
3 {' c8 w+ k6 J$ `! B& t - )
M0 E/ |# F$ L. ]& s) j# t - )
: v* {' Y5 G+ x8 K - )
1 f3 z+ z) A9 x7 v1 N0 I - ;;2 D8 [& r+ F& Z4 }
- ;; Draw a dash or dot in image tile
6 C* n; g4 Z4 \9 l# l - ;;6 g2 u# u4 F" `! J# B/ I
- (defun vi (), q' s$ e3 ~8 D& q) ~7 P( J
- (setq x2 (+ x2 dash))& @/ f( m& a" l% \
- (vector_image x1 y2 x2 y2 color)4 r4 U5 E) w8 U
- )
/ ?; K1 G! x+ L4 v' @3 a/ k# l - ;; D/ O' q7 ]2 j e
- ;; If an item is a member of the list, then return its index number, else
# \1 Z* w+ s! y+ o- ~# z - ;; return nil.
) T7 H: z' u! w8 R - ;;
6 `* q- @: u) ^ - (defun getindex (item itemlist / m n)4 o& t# n' K/ D: a' c
- (setq n (length itemlist))$ A) Y5 p5 p! f) u
- (if (> (setq m (length (member item itemlist))) 0). G, H3 G' Z, q" W2 L5 U: N- Z
- (- n m)4 [- a0 x% o8 _; q: N8 d- _2 u
- nil
' [% Y+ F5 `+ }$ v0 M0 t- S - )
3 O. ~% z# ^" y# S - )1 W) p; V& s0 O# E! X
- ;;" R" J- h. g: e8 w* \4 u( G* P
- ;; This function is called if the linetype is set "BYLAYER". It finds the
. T V6 |* H) O$ Q" s2 U - ;; ltype of the layer so it can be displayed beside the linetype button.
+ b: i3 l; l& c! f/ G, i3 V V - ;;
8 r; I9 B9 @0 H. w$ ` - (defun bylayer_lt (/ layname layinfo ltype)
' d& Z; L; r1 I - (if lay-idx' U. F: s @1 ?' I m
- (progn) u; i2 G) E8 t# a% r e$ V
- (setq layname (nth lay-idx laynmlst))) s; o2 H% l5 X& Z/ t0 K, T
- (setq layinfo (tblsearch "layer" layname))
0 I" i+ e+ \ K3 o' | v - (setq ltype (cdr (assoc 6 layinfo)))8 C$ `. T6 ^% x4 v
- "BYLAYER"
7 w, I# ^! \" @7 d- A4 k, n - )! i: P3 ~4 ~0 u; F
- "BYLAYER" K% q& b. j# x0 \% Z# H% @3 I
- )
! k* V0 Y$ ^- O ] - )6 p7 @& P4 U6 l0 [
- ;;6 A1 s2 p- h' C: ?4 r% |/ r4 R0 E
- ;; This function is called if the color is set "BYLAYER". It finds the color I N. I" @5 A: k, j ]8 p; c
- ;; of the layer so it can be displayed beside the color button.! I; m* J' H. u; V9 v% k O
- ;;" E3 m8 C1 W7 X/ s, L0 [3 {
- (defun bylayer_col (/ layname layinfo color)
, d- Z, f a* G - (setq layinfo (tblsearch "layer" elayer))
+ I% P5 o2 p# D6 v8 i+ `: G - (setq color (abs (cdr (assoc 62 layinfo))))
: C8 v; B# d" V2 y+ a2 T- _7 f3 K - )
! I: L+ M/ r) r: a$ T - ;;
5 v6 k$ M1 y" _1 z1 A3 P+ g( \ - ;; Used to set the color name in layer subdialogue.+ N: j" W8 i4 L4 c( m2 }5 W
- ;;% Z6 Z& N4 o7 g6 A* l
- (defun colorname (colnum / cn). ~& c& c" F& A/ B% M9 K
- (setq cn (abs colnum))
$ j9 w$ z) _; c" e' C/ { - (cond ((= cn 1) "red")1 `1 H7 \' x/ I3 b
- ((= cn 2) "yellow")( Y F: o. E: @ S* }
- ((= cn 3) "green")) h; o6 o$ F3 l: g" I' s# Q
- ((= cn 4) "cyan")+ W* {0 W9 r% D$ I. w
- ((= cn 5) "blue")* Z0 J' R5 n5 u; U" M
- ((= cn 6) "magenta")& M" R2 ]0 w7 w' b D# H/ C: z% d
- ((= cn 7) "white")
7 W; @: q: \6 B: f8 t& c - (T (itoa cn))6 p$ u6 V" j- B6 F; X1 f
- )4 ?; G, M' G! u3 P
- )
1 S( d- N% ^( {+ k! b2 G - ;;
' q; j2 }1 ?: @) D - ;; If their is no error message, then close the dialogue.
( Y7 T! x- y) |* @ - ;;/ ^! D7 @" A* E3 ^
- (defun dismiss_dialog (action)
- v2 E9 S I( Z. G* d. p ^ - (if (= action 0) }: D' Z; l$ x
- (done_dialog 0)2 ~4 g8 T$ p+ h8 M* H
- (if (= (get_tile "error") "")9 C" ^6 E9 b0 t$ _2 D
- (done_dialog action)
! @, h2 ]3 ?0 Y4 T4 k# A! f( E* T - )
) v' e7 ]6 O7 }+ |% {& Z - )
0 E' V& C( G+ u7 t' ?4 R- M1 o4 O! a - )# V. }+ y8 G! \% M
6 g3 R( i& y5 q/ j6 D+ }- (defun test_ok ()
1 v" N M: ^" E/ ~ - (if (= (get_tile "error") "")" I9 C4 T, G5 P! _
- (done_dialog 1)' }! ?9 T- H' m8 K* h! x1 i+ i
- )
$ ^( y- [% k& a; f - )$ b1 s4 Y3 x1 s% O2 j% e. M! Q
- & g; o7 u+ p+ G. b _ {
- (defun cancel (), D* ^% Z- c o% x9 N2 m/ b
- (done_dialog 0)
5 ^" I8 y* f% a, J C - )
{ H- n3 s1 h& H7 u- p - ) Z1 o4 X! l* Y! [
- ;;; =======================================================================# \! {% t. _& w* B4 L+ {" ]' C) s
- ;;; SETUP layer and linetype lists for application, and initialize all) ^: u/ Z& }8 Y2 t5 f9 r5 I
- ;;; program variables.
4 F% D* t6 {& }& H8 F
) I+ \$ O0 m" } Y/ I" C- (setq elist (entget ename)
7 ^8 v9 M& \. ] - old-elist elist
& Y0 s6 y! j! \$ |& p - modlist elist
Z/ H' w8 S/ O, d9 Y* F+ C4 ]6 v0 j - etype (strcase (cdr (assoc 0 elist))), W0 E' x% D' }; F& A; S% W
- ecolor (cdr (assoc 62 elist))$ T( X3 ]2 I( E$ ]9 c4 ~: s I. H
- elayer (cdr (assoc 8 elist))
# L: I( ?' Q4 K- u4 m V - eltscale (cdr (assoc 48 elist))
% M) [1 l9 V0 M7 X; p - ethickness (cdr (assoc 39 elist))# w' b8 i( C6 o+ s$ x3 [
- eltype (cdr (assoc 6 elist))# q- V Q9 W3 `0 q$ _
- )
$ D; U2 ]; t1 u" r% W: | - (if (= (assoc 210 elist) nil)
) R) t7 f: W8 V0 v - (setq extru (list 0.0 0.0 1.0))
: f1 C3 p2 q0 d+ @( z - (setq extru (cdr (assoc 210 elist)))0 `9 F, r% K) M1 _ l. L
- )
9 \6 N6 y( y( a6 x - 9 `( r% u u3 E/ F
- (if (not ecolor) (setq ecolor 256))/ g8 l# `$ q, a2 T
- (if (not eltype) (setq eltype "BYLAYER"))
( O! N8 \6 P H G/ t: S9 X - (if (not ethickness) (setq ethickness 0))" k+ ]+ F1 S& G4 ?" [3 `: F0 O. k
- (if (not eltscale) (setq eltscale 1))) m A1 t1 K/ r( E% v( c
- ) ; end ddmodify_init t2 ~+ u/ N9 A$ @
. a6 v! ~4 h- C3 b& {- r2 ~- ;;; --------------------------------------------------------------------------
" N V2 u0 w+ k$ z4 | - ;;; Function: DDMODIFY_SELECT9 n5 k B/ L7 J1 L0 g1 [
- ;;;
L4 l. V6 o1 }7 q L - ;;; Object aquisition function.
' `+ l% i7 K+ F+ ?, A - ;;;
% E& K0 y3 j3 _2 y( S/ W - ;;; (ddmodify_select)
% N1 U9 f6 E( p3 x ^! Q - ;;;
* w5 ?' ?$ I! a: ]3 d B( A - ;;; Obtains object to be modified, in one of three ways:
9 D% }' Z9 ? E) Z4 Y* g2 e) j - ;;;
$ r8 ]. P; N, s - ;;; 1 - Autoselected.
2 R W7 ]# r% |' e - ;;; 2 - Prompted for.6 P+ ?; ^5 {1 q; a
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
3 X# J( G2 [- i$ V! E - ;;;
8 d8 `+ b" v) b- p - ;;; The (ddmodify_select) function also sets the value of the
& w& |( S3 p$ T - ;;; global symbol AI_SELTYPE to one of the above three values to
; C7 C+ G6 | G - ;;; indicate the method thru which the object was aquired.
: E: _2 c1 v# N5 i6 U- p$ ` - ;;;$ w% s+ ^/ S. V# e7 b4 }( t. A1 g
- ;;; This value can be useful to applications that want to RESTORE
- p5 x- c/ k8 \; o - ;;; an object that was autoselected to its previous selected state5 U' _2 S2 c7 u, h/ {+ i7 g
- ;;; when they terminate, although there doesn't appear to be any
+ A# a0 b, G* H2 k7 k) g$ i - ;;; way to do this right now.0 v7 b' X% y) S3 f+ R, V8 |, @' M
# i- A: X% y! I2 B- (defun ddmodify_select ()9 L5 S6 o E5 _" y( V
- (cond" s6 }+ p! U4 c4 N o1 J- k
- ( ename ; (ddmodify) was called5 b; ~$ h" `1 v
- (cond ; with an <ename> argument
4 W; M0 R% `6 K+ W- a- D( d - ( (entget ename) ; If object is non-deleted
) C, _( K' H5 S9 D( E - (setq ai_seltype 3) ; then return its ename.
7 ]0 x/ A8 A+ q3 V) h. C2 g5 B1 M - (ai_return ename))))
8 P) X+ O8 u5 T
) Y& q3 B5 C0 a7 V! j- ;; return auto-selected , see ai_utils.lsp; s0 U* Z( ~& Y- U8 m
- ( (ai_autossget1 "\nSelect one object to modify: "))7 v; a& R& G3 c; l# p9 L3 f
U6 J, ^- y" f# B& d' ^- (t (princ "\nNothing selected.")6 |$ K3 F* w* G1 k: d
- (ai_return nil))
2 _! x9 P& s" ]8 @& P0 o - )3 N1 Y& j3 L; _ e! g
- )
! t4 {% R. b1 M5 L+ ` - 7 x) `: ^" w; K4 B% }7 a- m$ h' \
- ;;; ============= Command line interface function =======================! H. B% m+ [0 k7 t: Z' @7 K
5 f3 r ]" Y) V, G2 p k- (defun C:MMO ()# \ _( B9 [3 |" R) Z- F
- (ddmodify nil)+ n) I+ T4 m2 U$ B9 N
- (princ)6 O8 w- N' J/ C* H! Y
- ): C* I b8 g% [. f. B
- 6 D+ I5 t; [4 [. b8 T
- ;;; ================== (ddmodify) - Main program ========================6 O* [$ H8 U8 g8 u. I2 W s. S
- ;;;" ~ x' [2 D( l5 r
- ;;; (ddmodify <ename> )
! A" u7 a0 ^; ~' k- D" H; k - ;;;2 y( }, c) C) ^; a) |$ g$ p
- ;;; Main program function, callable as a subroutine.
1 L+ n1 X# E, n0 ^ ]) | - ;;;6 {7 w9 [4 M9 j7 e. L& y7 M- I
- ;;; <ename> = object name of the object to modify.7 [; Y, n) ?, _2 ^
- ;;;
$ y" R5 B' t, ~ - ;;; If <ename> is nil, then user is prompted to select1 d& Z& T. i2 }$ g
- ;;; the object interactively.+ A: _5 W3 K+ [# V/ J7 O0 d
- ;;;
) K5 v4 @. B: l( R! @$ Y - ;;; Before (ddmodify) can be called as a subroutine, it must( {. s" S' _) s2 _
- ;;; be loaded first. It is up to the calling application to
- ^! G* l4 ~* c7 m2 Y I8 T - ;;; first determine this, and load it if necessary.
+ T$ D0 {3 ^" V# J- C
0 ?! |3 X' K/ G! K- 3 K' o8 w4 |. @
- (defun ddmodify (ename /8 Z. E- S9 I$ `6 |& [5 U
- 2ndpt ell_calc_area move_pt1 templist7 Q% d: ~. f, s2 [' }8 f
- add_mdash ell_tile n tempmod
8 q, e: b% U( ^! P - alipt eltscale name tempst_ang
/ [& \; P# I9 l - ang eltype newpoint test_ok( _' T; A, z' q; l
- arc_calc emod next text
$ t$ z M; S- B0 O( \ - arclen end_ang next_vertex th-value
% ^( p) L: I; E0 ` - assoclist endpt obl tile
- R! z& V5 e e. S# B. J - atprompt errchk off tile_rect. A4 [. R$ `* o+ v5 b" v6 J+ p
- attag ethickness old_majrad tilemode5 T) {: n- E. l7 E3 ?7 ?* T
- attprompt etype old-closed totang _* \! @: r; H' Y) A8 f
- bit extru old-closedm tstyle4 [8 y8 w/ p" Z% s
- bit1 fchk old-closedn u
( d) C. h0 n; [# |* t - bit-10 first-10-rec old-elist undo_init
O" Q/ Z: i* a- ?' R% | - bit-11 first-10-time olderr upsd5 Z0 }8 x" c! a; m1 L9 T
- bit2 first-11-rec old-fit v9 w( T9 j" _, ?
- bit3 first-11-time old-idx va$ g3 a' C' e# _5 v! _* y* A
- bit4 fit oldlist value
3 J( |6 [& x$ j: e6 p# W - bit70 frozth old-spltype ver_4
/ E) B+ n% [9 @% Q9 M I* k - bit-70 f-vis old-u ver_ang1
0 H* b/ o5 J- w+ E: b; Q - bit75 fx old-v ver_ang2- ^ E/ y' v8 Z
- bk-up get_color on ver_col
+ P# V$ m% [" J" n6 K) j - bkwd getcolor onoff ver_colsp: Y0 i; d& G/ N: L- ?0 n
- boxlength getindex on-off ver_eangle* P) |2 |! J. f9 G
- bylayer_col getlayer patlist ver_hght
3 t% e, P) K2 l - bylayer_lt getltype pattern ver_majrad! h ] N( ^7 o# }$ ? x4 U
- calc getthickness pltype ver_obl8 S% P# @$ x6 f2 e! h9 B0 l
- cancel globals polytype ver_pt16 `6 m* b- p. \& a( r5 o2 y
- cir_calc ha pre ver_pt22 J# c4 R* }1 y+ U9 S
- closed ha-prev proplist ver_pt3
( f9 i3 e Z* G4 h" c - closedm help_entry pt ver_pt4- m8 N2 x) u- V# J, y- a
- closedn hght pt1 ver_rad2 M3 K$ ]! l) g1 U3 ]' U
- cmd icvp pt1_eq_pt2 ver_rot1 c6 N5 E8 m' z& o/ S1 ~
- cn image_add_vector pt2 ver_row7 A! G2 N7 B/ H0 Z. ^& z6 C
- cname image_clean_variables pt3 ver_rowsp
8 t% K9 ]6 e4 E* ]9 ?" H( a - cntl-pt-indicator image_cross_product pt4 ver_tag
, m5 R, H5 n- E2 s# U - code_71 image_disp_opt ptype ver_u
; @9 P' z; K, z4 L/ X - col_tile image_dot_product radius ver_v
5 F- h; E8 ?' r% x1 m( C2 t$ O - col-idx image_normalize_vector rational_spl_flag ver_wid( Z* m7 Y4 m6 t# s& H5 z
- colname image_rotate_vector reset ver_x1
4 t* a. `; t" U% c/ U - colnmlst image_scale reset_flag ver_x2
/ j6 }) m3 z4 ^2 { - colnolst image_scale_vector reset_lay ver_x32 a, l; u! r3 Q
- colnum image_update reset_lt ver_x41 J! k( A7 z& [' p* j6 j
- color index reset_uv ver_xline_pt1' e1 H( h1 S0 J/ B, @( a6 X
- colorname inv rot ver_xline_pt2
1 ?1 R. p! e3 v, w- v/ u - colorno item rows ver_xline_x1; c3 `; s4 @8 D9 G
- col-sp item1 row-sp ver_xline_x2
4 B' _% ]+ J; _% m9 ?9 s - columns item2 rrat ver_xline_y1
8 a V( ?: @4 q2 C0 p - con itemlist s ver_xline_y2
" o& z. K0 w. ^* _ - coord jlist set_action_tiles ver_xline_z1
- ?2 Z+ h" G) Y) F2 H - ctr jlist_act set_just_idx ver_xline_z2
6 Y' f: r) `8 T/ A i7 r - cur-10-rec just-idx set_tile_bk-up ver_xscl
* A/ k. C" k* E$ X - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
9 O" x% c6 [7 |5 `4 ~8 [8 M - cvpname lay-idx set_tile_data_pt ver_y25 ?" j1 t! H6 _! q" Q
- dash layinfo set_tile_dirv ver_y3
% p! R) |3 k. P4 Z - dashdata laylist set_tile_edges ver_y4 `' j- S0 |* ^/ ]9 S/ s
- dashlist laylist_act set_tile_endang ver_yscl
* q/ ]" S ?1 ?" w( U! p$ A1 N - dashsize layname set_tile_hght ver_z15 h8 K n( s0 b! e" ~
- data-pt-indicator laynmlst set_tile_icvp ver_z2
3 n; Q! _2 o2 t1 e& v i: r$ i - dcl_id layvalue set_tile_just ver_z3
~3 @) `' {! E+ z - dd3dface line_calc set_tile_obl ver_zscl& u4 l8 B: Y0 e0 O/ |; \
- dd3dsolid linetype set_tile_prompt verify_a
; m6 |' Q9 H! V8 V4 n$ ] - ddarc list1 set_tile_props verify_d7 X5 R; [% K* x( x% |0 ~
- ddblock longlist set_tile_pt1 verify_i
5 p% w2 L5 M$ o3 u6 e - ddbody ltabstr set_tile_pt2 verify_xline
# I5 s! |, X! E/ H# R - ddcircle ltedit_act set_tile_pt3 vfy
& V2 `0 S( s) D: S - ddellipse ltidx set_tile_pt4 vi/ ?; d1 A/ D7 R7 \& o% S
- ddgetprompt lt-idx set_tile_rad vlist0 K6 Z/ S9 B- T5 f" E7 c
- ddgettext ltlist set_tile_rc vname1 i6 |2 M; [- P+ M
- ddimage ltlist_act set_tile_rot vpf
* I9 y& Z) I9 M% |4 v1 J - ddimen ltlist1 set_tile_scale vpid1 |: L2 L6 z+ K
- ddleader ltname set_tile_spline_props vpldata
$ l9 w; `% s7 }. f/ | - ddline ltnmlst set_tile_stang vpn
* f7 c1 k O" d* {! N7 E" J) Q$ U - ddlist ltvalue set_tile_style vpt$ c Y% M+ ~3 X1 p. `1 D
- ddmline ltype set_tile_tag which_tiles
, A7 `0 K3 n& H! X2 S - ddmodify_err m set_tile_text wid
- F# L) j" v7 X8 q - ddmtext majrad set_tile_vpt x1 ~: b3 ^- A' n: A# f
- ddpline make_lay_lists set_tile_wid x14 B* {2 H' ]2 M' j8 w8 O' Z
- ddpoint make_lt_lists set_tile_xline_pt1 x2! S1 y& | k$ C' i k
- ddray mdashlist set_tile_xline_pt2 x3
; R# ~' L8 r- \7 `% x7 E! [ A - ddregion minrad setcolor x4
# H4 _. C0 V4 A' n/ A% m - ddshape modify_3dface shght xdlist
8 \' f, M4 m1 n" a | - ddsolid modify_3dsolid showpt xline_pt1
! l- N% g. p" \4 t/ Z- e4 {' S - ddspline modify_arc size xline_pt2
3 J$ x) r. @* n- {6 T8 H8 X6 Z8 w- Z - ddtext modify_block slist xline_x1
4 ~3 B' Y0 R6 F9 k6 a3 t - ddvport modify_body sname xline_x20 L% a! ]1 b" w: v0 T
- ddxline modify_circle sortlist xline_y1; o r, |. [! ^
- denom modify_ellipse spltype xline_y2
. c: x6 j, Q( Q! p8 w- k - dialog-state modify_image ss xline_z1! b8 b1 k! }& P4 M* [ z
- dir_pt modify_line st_ang xline_z21 k& N( ?0 x9 V% E, c
- dir_ptx modify_mline stpt xscale
3 ?0 v: B8 W# @- D8 J2 D - dir_pty modify_mtext style_act xx
% S4 P3 Y1 T/ C$ S1 O3 ` - dir_ptz modify_point style-idx y
/ G4 L4 {1 L7 P - dismiss_dialog modify_polyline style-list y1% K- H5 H3 `, T2 ~8 Y% z2 c
- drawpattern modify_prop_geom tagval y2
* B& o$ j1 s9 O- F- @( }( k - echo modify_properties temp y37 s4 }7 T. n, a" A' S+ _) G
- ecolor modify_ray temp_color y4) L2 I; h2 M4 L1 q; |
- edge1 modify_region temp_dir_x yscale9 p+ Q3 S8 q0 j0 b
- edge2 modify_shape temp_dir_y yy
3 r+ U! ]2 @5 V* d - edge3 modify_solid temp_dir_z z1
. f+ ^: j+ L7 w) U& \6 r1 } - edge4 modify_spline temp_xline_pt1 z2
v3 z. A& t3 o - edgetest modify_text temp_xline_x1 z3+ I( \! G, [) g! I; `% W
- elayer modify_vport temp_xline_y1 z4. U! d( @- [) S8 ~* q
- elist modify_xline temp_xline_z1 zscale, l Q" {5 C; i5 S
- ell_calc modlist tempend_eang zz
6 v* `! W0 n3 }& j3 Q - dir-idx safe_ddedit ver_MtextWidth xcliponoff% `5 @( g5 R* _4 F) Y8 E
- MText_style8 e+ u; D* s! W# q8 t! x
- )4 ~ N# W) l8 H Q7 H; o3 y
% t/ k" u# n0 U- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
, r8 X+ U+ k4 r3 i& Y7 ~% k1 W - old_error *error* ; save current error function
8 i) t* M' n: L! {6 Z* [2 T - *error* ai_error ; new error function
+ u3 W: s' v# S; O0 H; M1 A - )
1 @2 n$ K% {8 m+ V2 C - + j, r$ h! a1 m' T; ]
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle5 H; _9 _5 ~- B) m
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
& `- M1 g5 B9 A5 q- ~ - (setvar "pickstyle" new_pickstyle) ; bit and set to new value& g5 B7 m. R) x( u8 N! V
0 n9 G4 g: l0 V p5 V- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0), |! U' h/ k6 @2 C8 D( ^
- (t 1))): J+ P. P# N% a0 |
- (cond4 b5 G8 l$ @$ e/ C5 G
- ( (not (ai_notrans))) ; Not transparent?
& O6 n$ R4 t6 q( d - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
) `# o) Q* h, ^& y) z4 l7 p3 o - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
, T8 m9 m- I2 z; u3 m - ( (not (setq ename (ddmodify_select)))) ; object to modify?: W/ l% F# @8 J' t# z; m
- 9 _$ u9 q2 t/ D! [( p+ E- A
- (t (ai_undo_push)
1 O/ w+ v' w J - (ddmodify_init) ; everything okay, proceed.1 S4 p3 B }9 x9 k# {: i
- (cond
# M0 W) Q+ A2 N, ~. u$ ?0 X - ((= etype "LEADER")
9 [! E& w f; {7 Y5 n& l0 w7 g4 G( o - (setq help_entry "modify_Leader_dialog") B4 n/ Z$ t+ X3 R; d
- (ddleader)
[! L6 X+ A' x# z - )
& J+ Z' t0 }. E Q# { - ((= etype "ARC")6 k0 Z# m/ n& d- r. V A3 H
- (setq help_entry "modify_Arc_dialog")- L0 p' b1 L' O( _
- (ddarc)
d2 ?. O2 \6 f* A4 A - ): k6 @( T8 J- l
- ((= etype "ATTDEF"). E5 r( ^* d+ Z; P, q5 ?: }
- (setq help_entry "modify_Attribute_Definition_dialog")
: A% S# ^% M7 ^2 A3 c8 S. Y - (ddtext)
- B) p7 _/ Q6 _3 f4 o! p& q- Q - )
8 M. M2 C8 G; P! N1 v% c0 P9 { - ((= etype "CIRCLE")
/ ^! |' r# n: } M1 J - (setq help_entry "modify_Circle_dialog")0 R1 w7 j9 M3 x& b( e' r: z% U
- (ddcircle)/ a* p4 B* P9 H3 d
- )- E3 D4 h8 u& ~
- ((= etype "ELLIPSE")
0 v9 V+ t0 V( a1 k; y - (setq help_entry "modify_Ellipse_dialog") j0 z4 h5 L' n+ H) S
- (ddellipse). h5 s$ w! O0 N3 W# E
- )
# F3 u) R6 e9 N. l - ((= etype "3DSOLID")
3 Z6 [* [) P6 o% e. P& b! @) } - (setq help_entry "modify_3d_Solid_dialog")
+ m. `7 @8 I; j" m7 Y - (dd3dsolid)
$ \) W$ Z X! a- ? N - )5 u' p# A+ f9 K& r8 E* k* C1 m! }7 D1 @
- ((= etype "BODY")
; l- ]$ v9 t- ~! K( I+ f7 ]0 p - (setq help_entry "modify_Body_dialog")) M; g9 W" V$ O; [
- (ddbody)
1 @7 I1 a$ s+ f+ y$ X# x - )8 C- J. T% g2 n8 U. W
- ((= etype "REGION"). N" H9 u+ U4 P( G+ B7 X
- (setq help_entry "modify_Region_dialog")
7 Z$ t! @1 D& f* o4 G - (ddregion)
! C- ^/ H% z4 P( l4 V3 C - ): A9 d7 ?3 g% @
- ((= etype "HATCH")
1 Y+ a* q) w. @, B% ?' S! r& A - (setq help_entry "modify_Hatch_dialog")+ @1 K$ {$ N+ l# h6 Y0 V
- (ddnewhatch)
/ L6 i2 K8 o1 b j2 ^5 n$ G% w - )
: }( S+ ~3 X, O - ((= etype "SPLINE")
) u( \. i; L; h" M3 e( _3 _ - (setq help_entry "modify_Spline_dialog")
$ q. O- V- t! T8 H) x5 P - (ddspline)! }( @- J& Q0 X; k1 J. E2 Q" z O
- )
" [) `# K! x( ?4 N) H - ((= etype "INSERT") ; see ddblock for help_entry" _$ ]6 z2 W3 D
- (ddblock)5 P/ h( I* l) S
- )
! h2 D% W. u5 Z! H* q - ((= etype "LINE")
5 \% O, B/ u! u# e; S, T2 Z - (setq help_entry "modify_Line_dialog")- m I, ~0 ~) u" ^) p3 |) l
- (ddline)
2 {- A: m5 @9 K+ T g# o0 S" C2 e/ T) ^ - )3 t' [' U8 S% w8 T
- ((= etype "MLINE"): D: y: d0 p3 S! f- X9 s8 |/ S
- (setq help_entry "modify_multiLine_dialog")
4 Z# U- h {, Z5 v/ k7 X6 J - (ddmline): c% Y- K" V9 a- n
- )" ]7 F2 Q/ u8 a, I* B# t! J8 q
- ((= etype "RAY")6 b6 K7 I" X- v7 m
- (setq help_entry "modify_Ray_dialog")
/ r+ o& u) H& o8 m# c8 X - (ddxline)
" A' Z/ J6 R+ M! K$ u8 \ - )
/ U7 `8 Q4 ?( U8 `$ c - ((= etype "XLINE")" W0 P( J+ \0 i9 J v `
- (setq help_entry "modify_Xline_dialog")
% l0 e# {) P5 t8 O0 s - (ddxline)& Z# D( u% Y4 ^; D6 b; e6 p
- )
: v( f. ?& r4 n+ o. B, j - ((= etype "POINT")9 X2 `1 B. M1 J* u" y- w
- (setq help_entry "modify_Point_dialog")$ X) u1 B! H7 S
- (ddpoint)
# P/ R4 G6 U+ l+ ~+ D - )
0 X2 @2 v& H6 B - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
; [7 i- u- A' e, m$ @3 w - (setq help_entry "modify_Polyline_dialog")0 M/ A; \9 @- N+ ?* y% G/ P/ b
- ;; If a 2D pline, check to see if it is planar to the current
+ l Z9 P# k( ]3 O - ;; UCS, reject if not. To see if the pline is parallel,) R9 X8 S5 S" |% i8 ]
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)$ \% G3 U, t' m: w, a
- ;; and then converted to the current UCS and checked to see if; X c0 x& `* ]) d; g! A, Y7 H# C
- ;; it is equal to (0,0,1).
; X* k: R% C, A2 _2 t4 Y- I
) |2 O# c8 Y8 x0 W- ;; Incase the 210 is default and not in the dxf list.5 U6 C& m* A: n- c$ c/ n( o& C. ^
- (if (= (assoc 210 (entget ename)) nil)
: [8 Y7 p G0 y4 X+ _ - (ddpline)
& K; D- E2 d9 G* e - (progn2 A* H8 H7 Z/ p$ F$ ~6 x% {4 _% P& y1 Y# B
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
4 p% R) z7 p) ]+ I, T) L* {5 Q - (not (equal '(0.0 0.0 1.0): `* v) A' M z
- (trans (mapcar '+8 n/ h9 Y8 T1 C7 K. E, l2 H
- (cdr (assoc 210 (entget ename)))
7 T; f: }% \) _1 `1 o3 G - (trans '(0.0 0.0 0.0) 1 0)
, q1 W. v; @5 M' R - )
) h* A% ]0 @, i* e: G% ]0 p - 0 1
0 l2 r9 e/ h) i8 u - )) Q7 F( s: E! K( [. M2 o# B
- 0.0000000001 ; fuzz# N7 I' ~$ r( a
- )
. i+ x; c" E. T' M V5 w) _% D9 m - )
; C p$ N' W$ G! b! g' x - )# b4 r6 H& c3 o# U2 s9 r
- (princ "\nThe 2D Polyline is not parallel to the current UCS."): j2 ?1 _7 b4 s" T; `
- (ddpline)
6 g1 f3 l8 V" C$ k7 d - ): C; @# ^/ ?/ O* ^, }2 g
- )+ u1 B& J: t/ p
- )
% f! o* Q# {6 e+ W* H - )
9 Y9 |/ U. K8 @+ f- S. U - 5 T% ^4 L% [6 U* S1 d! \
- ((= etype "SHAPE")
) b( f. h4 V) ^ - (setq help_entry "modify_Shape_dialog")
7 }; H- ?- _: x - (ddshape)4 g; [; G& m" A) b. q! N5 Y
- )9 H( Y+ d3 |5 g; N4 E
- ((= etype "SOLID")
$ Q: J& R* M+ ~ - (setq help_entry "modify_Solid_dialog")
& v+ r8 S. s6 n$ T- E! l - (ddsolid): h* S* L% w% V" I1 c7 E
- )' e7 \0 m! w: y2 i- R/ X
- ((= etype "TEXT"): D+ S- I7 f2 ?, `" r$ T7 F' J9 @
- (setq help_entry "modify_Text_dialog")8 R/ I3 C' ~2 T2 E; V$ g9 F% R
- (ddtext)* R# |3 B" L6 ?& n; z- L
- )
! q& E. M8 n$ L4 v* L e$ y1 } - ((= etype "MTEXT")
/ P; \% X5 b2 X' O - (setq help_entry "modify_MText_dialog")
G- N. H W0 @3 L; k( J - (ddmtext)5 I+ x0 P) g r" y# {
- )
. e3 n7 E( X6 a7 Z _5 l, N2 Y - ((= etype "TRACE"): b- [ o3 y. F. L/ e0 m
- (setq help_entry "modify_Trace_dialog")
: @3 [% U1 o& h, W' i4 Z - (ddsolid)
6 M) ^% ~* s2 {& {1 B9 b$ I - )
9 D0 M# P; R6 d) b! y# d$ S - ((= etype "VIEWPORT")2 u# O0 V' E! v4 e: n8 s8 A) d
- (setq help_entry "modify_Viewport_dialog"), a% f$ S6 y( _6 c! T1 O% Y# w
- (ddvport). Q; [/ }; U) _0 J) Z: s2 K
- )% L z' O1 ^! G/ i1 a
- ((= etype "IMAGE")
, h' U5 L1 a3 @ b3 ^* m( j% G - (setq help_entry "modify_Image_dialog")
+ R% E4 G( {% T - (ddimage)
, c( i% j/ P) V" X% C - )2 ^ n0 S* t( r8 ^$ `
- ((= etype "3DFACE")
# O$ k& w) N- C) Q% H1 K5 c - (setq help_entry "modify_3D_Face_dialog")
' J7 ~+ o$ l) z) v, V. N - (dd3dface)% t! \- Y% c( p, A A
- )
2 F+ N% i8 M; K9 |' f* G1 r - ((= etype "DIMENSION")3 N: M7 Y7 S8 R7 E8 ~
- (setq help_entry "modify_Dimension_dialog")! L! n# {- w' Y# a
- (ddimen)9 l8 S+ V* C5 }) A, `2 N
- )
6 Y1 G$ _7 n7 C6 P& j1 b; ^! ^ - ((= etype "TOLERANCE")4 |2 Q0 s$ n P4 k i) n
- (setq help_entry "modify_Tolerance_dialog")7 r9 b# r9 M" g- D/ f1 S a8 n
- (ddtolerance)2 W1 E$ S# O" D3 L* U8 ?
- )! H# e' I' |& n5 m) e
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.
, H0 p% Y$ Z4 u6 S& B' J/ x& J' } - ;; This allows DDMODIFY to work on any custom object or any new object type
6 ~( c) q. m0 n8 \5 _% |% l - ;; that isn't specifically handled above by calling the more generic DDCHPROP.! k5 l: q, b) V. {+ W }8 v
- (t
* u; a9 z. O7 ^ - (if (and (not ddchprop) (not (load "ddchprop" nil)))
- e+ n1 l Y, A8 t. Y# w6 K/ c - (princ (strcat "No dialog support for object type: " etype ".")))/ u( _1 z3 s+ M1 q; g
- (progn
" J. ?' x8 ?5 ~! \0 L - (setq tempss (ssadd ename))
9 D2 {2 u7 P+ A0 |. R, T% ` - (ddchprop tempss)
) [0 r6 N1 C1 v2 p2 y - (setq tempss nil) @" J1 a" C# ?5 W
- )0 L" p' Y, |; k" w, ^) k
- )! ]) j& Y0 i: y
- )& Q* ]9 g1 e7 [$ g$ d
- ;; Previous fall-through condition.
$ V3 J+ U+ a+ }. m' a) P# S8 l X% i - ;; (t (princ (strcat "No dialog support for object type: " l+ w4 ]/ k. l# U6 a# B
- ;; etype "."" f1 @1 m3 v3 t3 s1 q3 I
- ;; )
/ a/ B! W% T# }4 d* G" C. q' S - ;; )* L. @- ~# ?' a4 n/ h
- ;; )! A8 z0 j/ i6 D2 C7 |. `, r# w
- ;; )
$ [& I# i9 ~( _ - (ai_undo_pop)
. U1 t9 u' n0 t, e: d - )& a) |5 c' l% ^, t
- )
6 |% a Z7 x( f0 j6 n6 j" \8 Q) u1 f
4 i! a) G) @2 F$ z- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
! x1 N( R. x& Y( j$ O' _ - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back3 F6 z7 p W( A) s
- ) ; to what we started with" F" e& Q1 W/ Z3 L6 g p$ |9 H
- ) m/ W7 ~4 _, c7 e4 h, C+ k+ D P% a
- (setq *error* old_error)2 h$ ]0 S) J' V+ H- S0 I, K; l% P
- (setvar "cmdecho" old_cmd)8 p# D* ]6 `! [
- (if (not reset_flag) ; if object was modified, then
9 ?" b3 x% I9 |1 h3 f, _4 \( O - (ai_return ename) ; return it's ename to caller
1 G/ B% q2 w& } D2 ]$ {, [! d% L - ): @) K$ u. t+ w% G1 ?9 g/ {( R
- )
/ [, r' k' ^+ t$ R! `$ t1 D - " \( W5 U+ N# Z" z" r
- (defun checkForLockedLayer (ename)
/ Y9 P; _. J' ~( B" h - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
* W! R8 N7 B5 I# N+ _/ m9 m# n - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
! f+ ~- Z6 S8 H" d" C - (if (= layerflag 4)
, r+ l) d* k( z/ S3 N - T
1 a u0 o: ?0 X/ Q4 s1 c - nil9 F$ E) a3 _( {$ O: S* C$ m
- )) a: e) e' j$ S) b
- )
/ O7 F, j# R( f' B/ r
. Z. I9 e2 D2 N$ d% @- (princ " DDMODIFY loaded. ")9 Z8 O/ s: j/ q4 n' W$ ~
- (princ)
( y3 X' B5 c8 V, J+ y# ]$ _/ q5 s - ;;;???;;;---------------------------------------------------------------------------------------7 I' M, `$ S6 r- U* b
- 1 r7 L7 i# P% b) A
- ; Next available MSG number is 8 6 ?' b& n; V+ x) {7 |% {$ ~
- ; MODULE_ID DDUCSP_LSP_1 W" N, d; e; |% h
- ;;;* H1 a" {5 Q# G* f8 N& V
- ;;; dducsp.lsp! U, z$ B7 m6 V* N: a0 u
- ;;;
- |/ q/ ]2 L, r! F3 V, _& ]4 H! h - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.0 O2 M Y2 B3 { I7 E. j
- ;;;
5 l2 m5 `% M# }. R4 B4 E& L W - ;;; Permission to use, copy, modify, and distribute this software
, b5 K2 }1 ^8 A, g- h - ;;; for any purpose and without fee is hereby granted, provided
! a1 r- u8 V; x$ J - ;;; that the above copyright notice appears in all copies and
+ G! v3 y' g2 Y2 ? - ;;; that both that copyright notice and the limited warranty and
5 a( Q/ v9 W; X9 i6 R1 ?, Z! q - ;;; restricted rights notice below appear in all supporting! s! ~* ]& E, g: B5 J% W" o
- ;;; documentation.
% [) W) S9 H+ k! Y) w - ;;;
" b: M+ ] J- O$ ~ - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
' d. ^% }6 [5 v. r) t - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
! U6 V; q# c- E- |0 i - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
+ x. K, U( `/ y. w7 ~ - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
: R( i* v3 A4 G2 _/ ~, V% ~ - ;;; UNINTERRUPTED OR ERROR FREE.
2 R* S+ H9 g! P: u7 u ? - ;;;
8 C T- E" _% E - ;;; Use, duplication, or disclosure by the U.S. Government is subject to) B! w/ u# P k2 f! M* W+ e& K' w7 D
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
1 L& ~4 g s; y+ }2 X- P7 ~ - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
g' R6 V0 F, H2 `1 @ D& @ - ;;; (Rights in Technical Data and Computer Software), as applicable.
. a2 b5 p% F9 {5 ?5 e/ L; m: S, e, D+ F/ P - ;;;$ z* Q! s* Y( J1 d* F' H8 S# z, x
- ;;;.8 `8 Q) v8 S! X( q) p
- ;;; C:DDUCSP - User Coordinate System presets dialogue.' x& p9 c( w8 T. w/ T% G+ @
- ;;;
3 o) M0 i$ _( u/ G - ;;; Uses DDUCSP.DCL for the dialogue definition. The9 T6 c6 H, }8 s5 q. u$ Z
- ;;; slide images are in ACAD.SLB.4 ~9 H, |8 d3 p; p
- ;;;& R, c& y7 L6 z
- ;;; ===========================================================================
4 t C5 U1 r$ i5 N& i$ s - ;;; ===================== load-time error checking ============================# _# ~5 q& H% z" ]+ O/ ^
- ;;;
6 m9 e# H4 z8 w5 d7 Z9 y0 \. l2 p2 Y
# p: [" U, |6 ?$ v ^+ p- (defun ai_abort (app msg)/ i: k, N6 o) D" s! q/ L
- (defun *error* (s)
2 R" V- r! J9 B: A6 p% [/ U - (if old_error (setq *error* old_error))
' |+ G0 Y+ F9 l. Y! Q: B M - (princ)0 E1 } a, M4 W; W4 C
- )0 t7 X# ~* d0 y6 \3 a
- (if msg! @6 W2 q- w. t! e( x
- (alert (strcat " Application error: ": s0 |8 ~$ [1 C/ c4 R
- app
' v1 P: f c+ |& g) L - " \n\n "
# c7 w6 x: c; D5 B; l - msg7 R9 n, S+ S: c" i3 I7 E8 k$ y
- " \n"1 x( q$ i% u+ B; q! ~
- )
) N( U% t8 f, y. s1 v; t - )
) q6 f# |- A6 g5 M" ~ - ) j9 B/ A, c! A% f
- (exit)
, A; c3 b/ W9 T! c% l - )" y1 r* b/ T/ F7 c8 A
v0 L9 w' b! w- b& W# ^- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
% o& m( P& ?9 q/ Z( b - ;;; and then try to load it.8 i$ k$ _ m& U7 s4 A; _
- ;;;
F% ]( q! U1 O9 ] - ;;; If it can't be found or it can't be loaded, then abort the+ v/ q, a) j1 t5 B* f2 b: j# V( u
- ;;; loading of this file immediately, preserving the (autoload)9 E" _7 s( b+ b. z9 W( E. H
- ;;; stub function.
$ d ~( x0 V2 F! _ s0 @$ w - $ c/ x" J+ @6 z
- (cond
9 ?6 A! _3 B( M% x! r - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
& @+ C2 {$ O( S, a% r7 z
* x: r& M, F2 |) b9 s$ i- ( (not (findfile "ai_utils.lsp")) ; find it
! w; `4 \- M5 E, ^4 p: u' o% H - (ai_abort "DDUCSP"
, ~$ X2 R) u' D; ~# m - (strcat "Can't locate file AI_UTILS.LSP."
, w6 c D/ g$ ~6 }5 g( b8 ^: B% i. [1 R - "\n Check support directory."))); J1 U* V/ C" C) d# z. x
- ; w9 {* D7 a% s+ v; r
- ( (eq "failed" (load "ai_utils" "failed")) ; load it: I8 _/ x8 T% P: y5 b
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP")). Y7 H) B# l- [5 B: N o }9 p
- )
2 ]9 E' @1 {" ^" N8 b' z
0 c6 s0 k9 O8 W( x- G- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
& f8 v2 r6 R* ^* Y6 d( q9 W8 I - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses4 q* G( q* w/ Q U
- ) ; ai_abort's alert box dialog.
2 _9 z& h# G2 x, M
" S1 {7 Y/ k7 r* ]- ;;; ==================== end load-time operations ===========================
5 Y2 C& Z; R3 @2 ^1 f9 {' R
9 i( l) t: Q; X- (defun ai_ucsp_start ( / program)" ?/ x7 P! j/ [6 _5 R( `
- ;; Get program name7 f2 U! G" K; I) s* n
- (if (not (setq program (getvar "program")))
5 i$ E- [: V3 X - (setq program "acad"); Q) ]: y: p! v! \% n! }# f% a
- )
, y, d9 _& d5 I+ c& P - (foreach v0 '("world" "left" "cview" "top" "front" 0 M+ t, c& T4 f0 j5 K- D: Y' a% v
- "bottom" "back" "right" "prev")* u; Z$ n$ n- i$ S3 _' Y Z- [& R7 Y
- (start_image (strcat "ucsp_" v0))+ m6 T5 T: B; M9 k% v0 K
- (slide_image' g. N, O0 I/ Z* H4 l7 u) d
- 0 0; |" A L9 c) M7 @) \/ I
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)& @) p0 @8 l# y% n% K+ a V
- (strcat program "(u-" v0 ")")
; Z0 A" V z4 N% B; ? - )
: G( \- h E4 b! E1 m* e - (end_image)
D5 i: s* D3 D& w1 `2 u - )
( Y- R3 w* T! m3 Z, k/ ?2 o' h7 } - )
O# a; `5 V0 K+ ]: }9 N
9 ^: k# o' h) ?- (defun ai_ucsp_set ()' e. O$ h' g! n" ?& f, x
- (if ai_ucsp_sv5 e# j9 K' D" Z' n+ X d
- (command "_.UCS" "_V")! _+ ?9 R; [ r
- (if ai_ucsp_prevs: r6 }5 u' d9 Y$ B
- (command "_.UCS" "_P")
% g& F* M% c6 t9 b* O6 h - (if ai_ucsp_chg
4 ` B7 v: q# g( V8 @1 V c - (progn
7 r7 H5 Z" u0 e9 G) V9 f& X - (if (/= ai_ucsp_a "*")/ a1 [ u- p9 y8 C- q
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
, U l# L: @: w - )
1 b9 k' E" ^5 s# p6 ]! y - (if (< ai_ucsp_pick 6)
4 v6 t% h. v5 w - (setq ai_ucsp_set0 "@")1 h9 a$ }/ U! ]$ u0 x
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
! n8 i8 |% h" u; l; O - ) v) I% f) y9 {
- (cond ((= ai_ucsp_pick 0)8 [5 p* O/ y& g0 T+ p6 [; d) P5 S
- (setq ai_ucsp_set1 "0,-1,0"
1 J" ^8 I5 |; e5 a - ai_ucsp_set2 "0,0,1"% T1 p0 V2 ?3 c [
- )
: f5 F4 r! Y$ l9 n* I5 w; e2 i" C0 g - )! v3 q2 J- C/ N+ i$ Y- W- q7 i" }
- ((= ai_ucsp_pick 2)5 U8 @ q, C: |0 H
- (setq ai_ucsp_set1 "1,0,0"8 w6 W1 Y, k: X1 f
- ai_ucsp_set2 "0,0,1"
9 A; N) t; J$ C( B7 \( O% O$ |1 s - )4 ~ k5 Y" c! p N; |/ b7 Z
- )
5 w4 p O4 Q# r& K& X - ((= ai_ucsp_pick 3)& b K" B% K5 @+ E8 m& f
- (setq ai_ucsp_set1 "1,0,0". ?' g; x! q; G$ Q3 s; [. v
- ai_ucsp_set2 "0,-1,0"4 X6 d9 L; b& ], z
- )
' U) j& Y' l4 ~$ S6 d4 H+ Y* B( i - ), J4 k! ~0 u# d- R, b9 e G6 y& x& B
- ((= ai_ucsp_pick 4)
' U4 K1 a. Y* d3 X6 ]! k# k8 w - (setq ai_ucsp_set1 "-1,0,0"& J9 y! v" B% G! j, B
- ai_ucsp_set2 "0,0,1"
; A0 {1 m& b# B, j0 v- u4 E - )
1 V2 P8 w: T2 ^ - )
& W" D" g$ w0 y - ((= ai_ucsp_pick 5)
. d7 I' T; I+ D3 g - (setq ai_ucsp_set1 "0,1,0"
F: G: a, W- p - ai_ucsp_set2 "0,0,1"
0 g" M9 v4 v( J; B( U( [- A6 L/ y - ): H! {; ~- a8 ^* P; [ o- t6 V
- )
0 Z5 {$ `5 P! \' m" ^8 A - (T
0 [0 Y9 F5 I! ? - (setq ai_ucsp_set1 "1,0,0"$ T* E$ {2 I8 T0 x5 |
- ai_ucsp_set2 "0,1,0"
! G$ g/ g- I' @, |: ?% d - )
: ^( E2 U. C6 R5 e - )3 @' C2 Z+ `8 q: e; a9 ]; Z2 _
- ). b; m: q* q' ^& M W
- (command "_.UCS" "_3P" ai_ucsp_set0 & F; X1 s6 o5 m8 t7 |: T
- (strcat ai_ucsp_a ai_ucsp_set1)
- Q2 s' F% g" l% i' O* J& M - (strcat ai_ucsp_a ai_ucsp_set2)
. T$ H2 _6 B, r8 B, K6 B - ) 7 r. U* A! Q: C" U! `
- )0 w, A+ K A- X3 Q$ U0 }
- )4 l8 E+ l' D% b" A! ^- K& e7 e4 m
- )
: v4 D9 r' k# o7 W& j: U6 R# y - )( [' P2 e3 R$ C. `2 W" m
- )
5 M0 F, _( [! q8 v$ s8 W/ E, @/ r0 j- z - ( x. z( \1 a% x: o
- (defun ai_ucsp_p (val currtile)
8 d6 X7 g# _8 ?4 L7 h( F - (mode_tile ai_ucsp_currtile 4)3 {* d# `% S9 F( G
- (setq ai_ucsp_pick val
x# Q( B3 S3 V j - ai_ucsp_sv nil" j3 S7 h) X9 ?3 L4 O
- ai_ucsp_currtile currtile
% ~* q2 U( W0 a- T - )
, m5 J7 K4 ~) r1 z - (if (/= val 1)
5 V; F! W4 Z% [2 x - (setq ai_ucsp_chg T)* h( ^: v& N, B# f G2 Q" Q. J
- )9 B, g2 Q- a; K" [
- (mode_tile ai_ucsp_currtile 4)
# |7 r) X: v( Q, e7 F - )* }9 ?+ q+ k; }; w5 T
0 p4 F7 a# Q1 t, [/ _- (defun ai_ucsp_swcs ()4 V Z3 J) J$ {; P7 w( B; \
- (mode_tile ai_ucsp_currtile 4)
! I; I4 j, A% u( H- ^. i - (set_tile "ucsp_a_wcs" "1")
2 T. M0 y: U0 @- j/ a, d - (setq ai_ucsp_pick 6
% B& H% I) A% z- I2 o: } - ai_ucsp_sv nil+ ~$ G$ |9 T* Q; N! c$ Q
- ai_ucsp_currtile "ucsp_world") Y' F6 j/ }2 S9 k" P
- )% c( ]% b; o; g1 V/ z* t9 w
- (if (/= 1 (getvar "WORLDUCS"))
r9 _% A" O- b# ?* |1 g+ U - (setq ai_ucsp_chg T)
B$ h" l. c9 Y! }0 N3 c5 @' H$ w - (setq ai_ucsp_chg nil)
0 @, T1 |: w' B% J - )
) i1 w' H! @# p6 e2 l - (mode_tile ai_ucsp_currtile 4)% \- F' \, {# \' s4 P
- )
6 C: q8 G7 }3 p2 N) V, r - f O- `' }) l( W T% ~) v
- (defun ai_ucsp_cview ()6 i; A3 G' ?. m7 A9 Y) J
- (mode_tile ai_ucsp_currtile 4)
7 h4 n# O$ K! H0 H/ W( ]# J - (setq ai_ucsp_sv T
2 J7 o/ W! e8 b8 E, t1 ~ - ai_ucsp_chg nil) Q2 Z7 T+ u8 c) o& M1 k/ b0 ]
- ai_ucsp_currtile "ucsp_cview"1 |% x7 }; j4 b; M
- )
9 `5 D% ]. Q. S - (set_tile "ucsp_a_wcs" "1")
" U( j* ?& O6 h - (mode_tile ai_ucsp_currtile 4) c9 x% T5 m+ w h+ f
- )
1 Q" k7 y# n. t - / T# b4 l0 t/ j3 a. M. M5 G
- (defun ai_ucsp_rucs (typ)
+ ~$ {0 R2 i9 y; } - (setq ai_ucsp_a typ)
. p- h1 a8 M) V" J8 | - (mode_tile ai_ucsp_currtile 2)
+ ]+ C* w0 c. ^5 F7 s - )
$ V j9 j# z1 O5 Y' w4 s# g
) }! W) [7 |$ P, E0 e- (defun ai_ucsp_prev ()* J5 g$ E0 B) X
- (mode_tile ai_ucsp_currtile 4)
) M% ?- W; p/ O, v, A9 D* i3 E' Y - (setq ai_ucsp_prevs T
5 I3 }5 {$ `" U6 q* J5 H - ai_ucsp_currtile "ucsp_prev"
~+ o$ ]( t2 i. p7 {$ M2 V0 @ - )
6 G8 ^" ]0 I' \8 ^: c - (mode_tile ai_ucsp_currtile 4)' ?; c' Z; x# O* F0 P2 e* S" @! D
- )
! u6 a( V# W" H
% |! _: }7 @1 G% W% h$ q# X& }- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
8 u m$ j0 A, m - (if (not (new_dialog "dducsp" dcl_id))
: M* n4 U# E; |5 A) }% }& O( m( E - (exit)
% J5 E5 I/ y7 _ v! x8 ^9 G) V8 b! V5 N - )5 ]9 Q, d6 I$ O. k B W0 Y4 h
O1 i& B5 E" v4 C% \- (ai_ucsp_start)- q5 [3 l+ A. w6 Z
- (setq ai_ucsp_a "@" 7 T) d, ? K- A6 m6 x
- ai_ucsp_pick 2+ V# U3 V0 k9 J) c. q
- ai_ucsp_currtile "ucsp_top"
1 n/ @+ ^9 ~. l4 o) e* y$ R- ~. I. b - ). c% t7 o+ u/ }7 I4 x
- (if (= 1 (getvar "WORLDUCS"))5 ]8 V! k# L8 U$ ~2 p: }6 N
- (progn
1 D7 o/ i3 O9 w. a& r# y" m - (set_tile "ucsp_a_wcs" "1")# D. H2 H) g( P* C! J
- (setq ai_ucsp_currtile "ucsp_world")
$ z4 |/ R# M0 e& V+ ]( | - ). A3 x! ]0 U0 c) i: c( f
- (set_tile "ucsp_r_ucs" "1")
]( l4 E8 |' F; [: g - )0 d) p1 i: ]+ j2 K' A* {! t
- (mode_tile ai_ucsp_currtile 2)5 h. [9 d2 }* h
- (mode_tile ai_ucsp_currtile 4)& q) W' g% b R% ?! G
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")
% H, r( C& m0 k3 | - (action_tile "ucsp_cview" "(ai_ucsp_cview)")" x( P$ G7 D7 ?( w, Z1 R
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
7 C9 j3 V4 K/ P - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
$ h6 _8 j8 g" O) f# I5 @& v4 ] - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
' |8 Q. m! Y* _ - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)"), y$ f1 c& m& l$ x+ \7 Z
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")8 o$ |* H5 d# |; n( \9 w! U9 Q
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")1 c& P/ M" W' v: _2 O( Z0 W
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")9 a0 O- M- k; [; U9 f% g. E
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
O* q1 Q% l1 ]' W - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")9 U+ _( B$ \( i8 t3 y2 e$ h( `6 i
- (action_tile "accept" "(done_dialog 1)")6 |8 K1 v' [6 G) U7 o9 ?& A7 x
- (action_tile "cancel" "(done_dialog 0)")
2 J' Z5 f4 k6 ~3 Y$ W1 H - (action_tile "help" "(help \"\" \"DDUCSP\")")
( r: i* q* d/ U# O - (if (= (start_dialog) 1)8 n, D: p6 N- k1 y, u
- (ai_ucsp_set)2 e7 {' c8 H* G2 z5 B6 L' y
- )" S/ p, u F# g* q
- ); R1 q s. G( w6 K" H
! K0 r+ X6 z. L" j5 L O- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs + e+ b' b% p+ c4 J" X8 b T
- ai_ucsp_sw undo_init)* I# ?+ J- [" e
- 5 Y- x$ z3 x6 Y7 ~% H2 @
- ;; Set up error function.2 B; n r9 y q/ `) H; W7 D
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho1 V: K& y% E& u
- old_error *error* ; save current error function8 i3 R/ @0 \9 S0 X
- *error* ai_error ; new error function
3 `; l+ w0 |# x, O9 `7 Z' m - old_osmode (getvar "OSMODE") ; disable OSNAP for duration: ]( L! G3 q% A" X
- )) P7 c4 B, ]$ |% S: O& t+ F5 r7 a1 W
- 8 s4 R4 C; d& `4 _
- (setvar "CMDECHO" 0)" e& @' ?( S+ q. g! i$ E% W
- ' F6 D8 e1 E( q) U
- (cond$ M& Z: l2 v A4 F
- ( (not (ai_notrans))) ; transparent not OK
) x) b: ?% F( }0 `% E - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
: \9 |6 d8 T, {, u5 d - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
& N1 Y4 U3 H4 |/ ?; V7 G - (T (ai_undo_push)0 ]; f" F) r4 {" I2 K
- (setvar "OSMODE" 0)2 B9 k& p0 U4 c/ l, I3 _
- (ai_ucsp_main)
& ]- Q+ l; g6 x$ }4 g, U, S6 t - (setvar "OSMODE" old_osmode)5 H9 B0 c) `8 U) @
- (ai_undo_pop). c& v4 F7 e! s
- )& e1 E. ~9 i4 `1 l( f9 w, t
- )- ~% S( b" [4 G- r3 L
- 7 e$ w9 ~$ V; n. }! [
- (setq *error* old_error) ( W0 K, r' w1 J
- (setvar "cmdecho" old_cmd)
% k. j7 {& b, ]% B( ~ - & h6 M+ H! _0 k4 c3 o3 {) ~
- (princ)4 ?! S* e3 O3 p+ Q0 y9 P
- )2 F8 r+ O N( |
' n; |, \; v9 S- (princ " DDUCSP loaded. ")
+ i4 ~( \; A7 N& k3 x8 x7 H - (princ)& ~! O% [4 s9 B5 W" f+ ^
; I7 w, t6 h# P$ s' W. [- ;;;???;;;---------------------------------------------------------------------------------------
" g R2 a* F, D/ Q
4 P* Y% q8 j6 F- ;;;----------------------------------------------------------------------------$ n% k" b( a/ s
- ;;;
/ `* a6 C5 f0 ^* q6 n5 d7 [5 Q, L& o - ;;; EXCHPROP.LSP . a4 T# K' D! v5 \, l8 {
- ;;; Polyline and text modification capabilities added by
V8 Z6 m0 g; _2 a* X) e - ;;; Randy Kintzley 5 N% G. g3 K& H m" M' B8 d& p
- ;;;
! E: C/ U0 Q3 ? - ;;; Copyright (C) 1997 by Autodesk, Inc.
t6 b4 D" f% P1 }' O; V - ;;;
' q" W7 B3 ^ l2 e' N( J% _ - ;;; Permission to use, copy, modify, and distribute this software
5 B% s% k: V& T, A( x S - ;;; for any purpose and without fee is hereby granted, provided
& j, a6 Y* K5 H1 M! N/ A+ c8 G4 y - ;;; that the above copyright notice appears in all copies and0 V( p, b+ Q5 n& a1 C& C
- ;;; that both that copyright notice and the limited warranty and' h) K* T+ Q! a
- ;;; restricted rights notice below appear in all supporting
+ n6 O% Y9 t( Z$ N: \7 _ - ;;; documentation.
$ ?; k5 ]* C5 ^ - ;;;: D; s' @7 S( j/ \ O
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.' e$ Q' w/ X( v+ C! B( T$ N* h, h
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF2 |6 T- j) Z' ^: {/ y
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC." J8 |& n L( A+ H
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE4 X) O! J6 g& B2 u, a
- ;;; UNINTERRUPTED OR ERROR FREE.
9 X2 w& P( e# p' @ a* R+ c8 @ - ;;;
$ u) w0 y& S& K8 h - ;;; Use, duplication, or disclosure by the U.S. Government is subject to- |. U$ r- f& C4 S
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer4 d1 A! X; ]8 f5 ~, C+ v4 {! y5 w; q
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
0 {8 E! h8 O7 Q6 D6 i+ g% K) f - ;;; (Rights in Technical Data and Computer Software), as applicable.
( \# P, g3 u z+ [, q - ;;;
/ c5 c* J; g) T3 n. E - ;;;.
1 t7 p& ?4 K+ R( Z q0 X, I9 { - ;;; 28 February 1997
9 B& z, h) n. V5 b - ;;;
/ z) f1 K! p$ S - ;;;
6 C7 Y9 p$ C; H8 r8 V+ d - ;;;----------------------------------------------------------------------------
8 D/ f' h! t& Z' v7 B; ~$ B7 u - ;;; DESCRIPTION: H$ Q6 ~: h: Q4 l
- ;;;----------------------------------------------------------------------------
) X; C3 k$ d1 o" I - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
, o6 R, t1 }) o' Y V2 w) ? - ;;; command gives the user the abilitie to change several characteristics
% D u4 | g5 z# Z0 D - ;;; of selected polyline and text objects. 9 M6 \& k8 G' |( I" B) @/ ^$ h
- ;;; The style and height of selectected text objects can be modified 0 M9 a1 H, p. j& q1 B
- ;;; (including text, mtext and attribute definitions) as well as, width and $ p3 _$ M6 t$ _* d2 A
- ;;; elevation characteristics of selected polylines (includes lightweight and
7 q. [% x7 c$ B - ;;; traditional polylines.)2 i2 m; H% X* y F- I5 H) e
- ;;;----------------------------------------------------------------------------
0 b! e- Y R- u. T* P" g - ;;;----------------------------------------------------------------------------
4 r1 Y* {2 \' E0 z. f1 [8 A1 ` - ;;; Prefixes in command and keyword strings:
1 ~# ]3 }- I. ~& b; M- ^ - ;;; "." specifies the built-in AutoCAD command in case it has been( L/ S9 ~5 r* w% }
- ;;; redefined.' r* c& @- A. v3 Y
- ;;; "_" denotes an AutoCAD command or keyword in the native language
+ a& ]# B" @5 e! M( @0 W( @: W - ;;; version, English.
! ]* L1 ?/ K: C7 P: l* } - ;;;----------------------------------------------------------------------------
0 [2 Y) B3 C4 f& X - ;;;
2 x+ G( T$ B, r$ } - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" d: O) I: _* s# f5 ~+ ?4 E
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: c Y; M; n" P3 r2 z' s - ;Functions created as result of loading file: exchprop.lsp
h) G: g% y9 ]) q V6 } - ; DDCHPROP2( I6 S* p7 Y$ m% \2 g) q. z) D5 K- Q
- ; DDCHPROP2_INIT
6 H6 z1 p$ P& `( h% h& P& h* y3 v - ; DDCHPROP2_SELECT) ~+ @% G1 p; F: ?" {
- ;7 ]! H W" j7 z3 W! ]- [
- ;Variables created as result of loading file: exchprop.lsp5 T$ k. ?0 y$ R1 n# ]: w, C$ G
- ; OLD_ALLOC
/ t! z+ e( q2 m4 {1 g' k - ;) ]% g, f/ K0 v& A! }! p2 Q- c' W. ~
- ;Functions created as a result of executing the commands in: exchprop.lsp( @1 G/ p# ^' H8 I) h/ z# o& l
- ;
) b4 n4 ?$ m4 [$ c" l+ o3 \ - ;Variables created as a result of executing the commands in: exchprop.lsp. @6 f1 F6 e7 U0 b; h! J
- ; AI_SELTYPE4 S4 `7 M9 M. J2 Q s3 S
- ; BONUS_ALIVE
6 c* ]& _, f# I1 O% b% V - ; BONUS_OLD_ERROR n$ g* n$ i) T+ k) A: }
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
. t5 M! R+ b) L) _8 {: i - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
) L [! x6 e) s1 i! J, v$ R
# F4 w c+ V8 a+ p- ;;;! o3 P/ J* ?# b1 v
- ;;; Avoid (gc)s on load to improve load time.: k7 k# h. z/ S R" c
- ;;;
0 A& K/ E& H/ X H& X5 r+ j - (defun do_alloc (/ old_allod new_alloc)% O* M/ o4 |& k5 w% H: ?% M3 w
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))5 r& q7 t% _5 `. Z& |
- (expand (1+ (/ 4750 new_alloc)))
# w& s" @( m2 J- F9 ` - (alloc old_alloc)( j! |8 ~4 K0 F
- );defun1 T2 `! N0 T* W$ r& e( a& s
! t6 H: p4 N8 v& Q6 ~# d7 b- ;runs at load time - rk
. x$ t0 r0 \5 X. J; g8 w - (do_alloc)
. l& @2 t1 B; L8 x8 W7 G* Z1 e - (setq do_alloc nil)
# f: j% e' @& Y# U; L - ;;;5 G% n6 I8 [, S- s! l
- ;;; ===========================================================================
; ~6 b& Q, }% C6 I- `& ^ - ;;; ===================== load-time error checking ============================
7 R" g# n+ q1 A; Z% n5 Z; M6 T9 u& J - ;;;3 C2 J2 f' s+ a2 _" U% k. }- n$ j% \
) E- _1 k0 l% ]% v/ u- (defun ai_abort (app msg)
7 `8 p! _8 g' p3 O. ], O" G) n - (defun *error* (s) N5 O' c- l. Z U$ E* n, Q
- (if old_error (setq *error* old_error))# Q; m( E9 N# L& G2 ~
- (princ)
8 A* l" W4 D+ i# _ - );defun
) z+ ~7 h- H5 e0 e! ^+ v' Z - (if msg
7 i" p6 N9 E: W1 M6 | - (alert (strcat " Application error: "
% @: i+ ], P- l7 h3 U - app
# [2 a1 }: U: ^" F - " \n\n "
( y8 M# U& Z' @# `! A9 f5 Y - msg& j! O5 z* D9 r5 U
- " \n"4 ~ p B" ]" }; l0 h
- )
6 Z: P* D, L& Y2 X g( J - );alert; L1 x; ]. D+ a9 J, R2 j! u
- );if
! H3 s* U& r4 `/ |4 d' i - ;(*error* msg)# c& a# e& r0 m' V( u
- (exit)
% z6 L1 n1 O4 {5 B- v% b. v3 g - );defun ai_abort) ^9 \' l& ]' [0 s1 b7 H' r1 w' s
- - T4 ~. `6 o7 }3 T
- ;runs at load time - rk
) a1 F4 C3 _6 p9 F, G5 |$ L: e a - ;(if (and *error* ;added the if wrapper around this - rk.
) I: G) N2 g4 `* g$ _5 ? - ; (not old_error) ) L7 F% Y9 v" n3 T0 X( O
- ; );and 7 M B+ `: s6 \3 N! G$ I
- ; (setq old_error *error*);setq
- y: X# V; o4 ]/ V5 _ - ;);if
; M4 ~* h6 G0 S; V! Y1 ~3 ?' t8 W: o5 t
" D% Q2 L; e4 r+ V! d0 `% O
$ h8 h4 w4 E H( h! s) [- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,! O/ Y5 D( Q# b; P' f3 U
- ;;; and then try to load it. ~7 z+ j. m% l* d, ~4 O
- ;;;4 C9 v% W7 S! C* n0 Q
- ;;; If it can't be found or it can't be loaded, then abort the A0 |+ B0 d. J( D8 c5 r
- ;;; loading of this file immediately, preserving the (autoload)
$ d( J2 o6 h2 H9 H4 ^# _ - ;;; stub function.. n9 R: f7 A& R" F. s d+ i* g
- 9 P! N# W4 W4 t7 ?6 u2 X+ \
- ;runs at load time - rk.0 h3 f; t! t/ x- K# R
- (cond
0 s1 y7 K7 @4 A. T- W& v T - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
* O3 F# ?$ Z% ~; \' i/ x8 c - ( (not (findfile "ai_utils.lsp")) ; find it! n# [$ w9 V# ?4 P; B' l
- (ai_abort "EXCHPROP"7 ` a, r+ y; `# Z: G6 m
- (strcat "Can't locate file AI_UTILS.LSP."
# g; e) O$ F8 ]6 T% T7 p6 G; _+ Z - "\n Check support directory.")
; q- U, P# t& t2 P$ ~; G - );ai_abort% t" N, b4 S- o$ j+ r
- )- ~$ S+ P" Z1 Q+ e& [1 @) I
- ( (eq "failed" (load "ai_utils" "failed")) ; load it) Y5 _ I. @3 t! u# w# P- n, u
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")' g* y6 l( Z3 D9 m7 X4 K
- )7 D( @) x2 [! M9 t" w
- );cond close" @ D+ P8 a* A4 \; a) }) |9 D
8 Z3 M7 `) _/ s' t1 \4 d7 h. k- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP* t i1 g5 U9 C; `* \& J: E
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
# l4 P o. h; m/ ~8 V7 D - );if ; ai_abort's alert box dialog.2 U2 e/ s, H x' w! V0 U/ r8 S
* x% k6 C% \2 ~" P5 I( q8 ?- ;;; ==================== end load-time operations ===========================
1 g, s- u3 {. w8 E - 3 H% ]9 L2 F. ^( t8 ]3 D3 {8 I$ d" ]
- ;;; Initialize program subroutines and variables.' S' H7 f) M8 z; [" C
- / E" v" U" z* R- q8 c
- (defun ddchprop2_init()
2 C3 y- d4 `# v2 a) e. j
- t7 ~, n* q' G
! l6 g: r& B# s# t& @' l: E% J- ' X$ f& W& l) u- u7 K. H o" B
- ;;
5 q9 w. ~& f( g! B3 F( V - ;; Define buttons and set values in CHPROP dialogue box
4 Z, f, \5 C$ u) B6 V: m8 v - ;;# C7 L8 u' I( b/ b
- (defun call_chp2 (/ cmdact p1 p2)
( ]+ @3 p9 w9 p4 }3 K) e
; Z6 K. ]" w; |7 [! d* d; E- (if (not (new_dialog "ch_prop" dcl_id))
* H, ^6 e2 j3 `$ L7 X, X - (exit)0 W* m+ v9 n; e8 a- a
- )
4 Q3 r% U& k, q1 m u - * q2 i# r/ D1 |. a/ n8 ]0 V: e- P% O
- (set_tile "error" "")
# C1 | q& k5 L( h. u - ;; Set initial dialogue tile values
9 M6 f2 I+ }7 ]8 c% c" t - (set_col_tile), m9 h* F5 i2 z4 s0 u3 i
- (set_tile "t_layer" elayer), K/ K: Z" M+ R4 b
- - n% f+ B$ A& p; B; }. s( F
- (cond9 P% H `; C1 J B9 v
- ((= lt-idx nil)
" m0 R1 N# z8 k2 C3 v3 C! } - (set_tile "t_ltype" "Varies")
% O/ N$ O5 o( F! d' Z - )
$ U3 K: l# a& x0 z5 n - ((= lt-idx 0) ; set tile "By layer & layer linetype"
8 T5 ^. l- @$ o5 A0 {2 j+ T* H - (set_tile "t_ltype" (bylayer_lt))8 U. a. W5 k, L2 J% c0 @: p" I
- ). q( }# [9 e4 ?6 V6 O
- (T
0 {9 K. U T6 ~$ C0 |1 A - (set_tile "t_ltype" (nth lt-idx ltnmlst))
( X6 {; T. S, T( D; D. i/ W - )
) w _3 E/ T8 ~8 I) A) W - )
+ @$ `% Z1 Z2 x7 j4 k
" L3 Z1 t! v* a% A- (if (or (= ethickness nil)
' C* B! L* O/ B5 o3 I7 x - (= ethickness ""): i( ~3 ?0 {3 F4 z- f" K
- (= ethickness "Varies")
' Q @& u; o& i+ f* W - );or
) a! \6 N9 h( D/ H4 R - (set_tile "eb_thickness" "")" C' E0 L/ F7 {( B5 W3 G6 p
- (set_tile "eb_thickness" (ai_rtos ethickness))
1 z1 K6 O6 A: b: K, l - );if7 ^5 [% j, O/ U1 V9 j# o& i- V
- (if (or (= eltscale nil)7 X) ]6 ~+ B ^ ]5 f. p' F' B
- (= eltscale "")9 S K! Z' A4 p, ?* s) E8 l
- (= eltscale "Varies")
2 ^% b9 p6 w4 S( i3 ? -
# x8 _3 z# k: L6 _+ G - )3 K( \( p5 S6 `3 F
- (set_tile "eb_ltscale" "")4 q# U4 \6 J8 J! l/ f) i
- (set_tile "eb_ltscale" (ai_rtos eltscale))
* e- z& Q* S5 l0 m1 J - )
! U4 P/ l9 H1 E6 m - (if- a4 y: a4 B5 V
- (numberp ewidth)7 @" `+ l b: Q6 Q
- (set_tile "poly_wid" (ai_rtos ewidth))! G# @; k6 h& d# d$ N2 F
- (set_tile "poly_wid" ewidth)0 j% x" S9 R g L+ p( U% B* ~
- )
, ^2 u5 r6 ?4 G1 O' H - (if
7 k; z* x& [4 N7 J B: B - (numberp eelevation)
- F2 ^2 l$ M- ~3 }; V - (set_tile "poly_elev" (ai_rtos eelevation))
1 J* O3 \, m& O5 {' f3 m - (set_tile "poly_elev" eelevation)
! E8 H# N5 O2 t5 }) c - )
6 v$ e) L8 ], ~ - (if( _- h' G2 T$ b9 @
- (numberp eheight)0 l6 j; y* u! M2 m( }2 E0 _4 q" C
- (set_tile "text_hgt" (ai_rtos eheight))9 t4 k' ~) }' U8 ]6 x
- (set_tile "text_hgt" eheight)% Q! l3 X- ^ `( Q
- )
0 ]6 p5 I0 e. E - (if (not estyle)
; r. S; ~0 L8 Q; y - (setq estyle "")) z) a ?3 U5 r2 ^0 e0 d
- );if 5 }' ~+ c7 p6 c
- (setq hair_style_list (tnlist '("style" 16)));setq4 E8 Z" Y3 j) ]( n* k( }$ d5 Y
- (if (not (member estyle hair_style_list))
4 H; J2 \: O* g* a - (setq hair_style_list (append hair_style_list (list estyle)));setq
! |% V9 m! z: `( ]4 b% P - );if ) G/ Z; A2 I. H$ r8 |; f) B
% T: X; {" Y% G+ E0 Y5 H- (setq hair_style_list (acad_strlsort hair_style_list));setq5 O; o5 e( S1 S- [8 G
- (mpoplst "text_style" hair_style_list)
C2 l) i) f( ]& | - (set_tile "text_style" + b4 ^2 }4 f: X
- (itoa (position estyle hair_style_list))
+ K* s A/ B. D - );set_tile $ t0 d q& j* Y' o5 X! [
( x; `" P& @0 z0 a% s1 s$ ] P- ;; Disable tiles if need be... ;@RK
1 }( s; x7 }) P4 O3 i: z, {6 W - (setq a 0)5 y! F T# i& O9 R" f2 D; a0 e, a
- (while ( < a (sslength ss))! A5 r/ q2 i4 o3 @3 e$ P
- (setq which_tiles" z- Y8 f, A Q8 e" o7 X# Y) c
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))% B' z+ z- Y* a' S Y: i }
-
+ C0 D# n# w* q6 o. x! Q w - ;; If all fields are enabled, don't bother checking anymore.( [2 S& q& _6 S, q6 `: e
- (if (/= which_tiles (logior 1 2 4 8 16))5 \/ w4 F. y+ Y* c
- (setq a (1+ a))
. d9 q9 X' ^+ t# ]7 D, A - (setq a (sslength ss))
+ ~6 K4 d" ?9 `* B7 `- [6 F - )( |0 }) n5 ?9 t8 i/ K; `/ ?' H+ }* J
- )
& a4 p L5 j; s$ I - ;; Layer Button and Text Field1 h2 W( ^# J$ w( O
- " f; n0 I( v; U
- (if (/= 1 (logand 1 which_tiles))% I# M- R+ h% N/ Q& w3 D
- (progn. r7 d* y0 X# a9 a
- (mode_tile "t_layer" 1)$ x o4 G* F3 \+ `
- (mode_tile "b_name" 1)
" g+ a/ E; d! ?3 B1 y - )
/ Z& n2 f+ h7 o' e2 a( \4 v - )
& ^* e$ G0 y7 I - , b5 t7 N* z9 I( ]) L
- ;; Color Button and Text Field
6 ?3 X: a( _ X$ z0 \- N, I - (if (/= 2 (logand 2 which_tiles)), m; W& f! b( U- P" O% q) n) \' k8 q
- (progn
# ~6 K( |$ q( y- Y9 F7 l0 W - (mode_tile "t_color" 1)9 A+ [& p: U8 |) y- u# ?( ? h7 K% b
- (mode_tile "b_color" 1)* z+ z. y. C. g6 n d) A, H& L8 q
- (mode_tile "show_image" 1)
7 c0 O& u0 T* T6 V* J - )
0 _# Y7 b% P9 k+ P6 c2 @# K - )" ]. O4 ?+ U9 A' K
- ;; Linetype Button and Text Field3 Q" o8 E" T' C
- (if (/= 4 (logand 4 which_tiles))1 p9 ]7 O. G K. m+ l# G9 `9 g
- (progn: v7 {/ N/ @' ]" C3 Y I h, I G
- (mode_tile "t_ltype" 1)' t0 }) d4 b' k0 B* j
- (mode_tile "b_line" 1)2 j1 m, @7 _; u6 o ?) f
- )! R3 F1 q9 Z; j4 P( Y# ]
- )
; e+ f5 u' }8 V3 K1 |& g - ;; Linetype Scale Edit Field5 g1 V% T- |* ~; _' Y7 i( c% R9 R
- (if (/= 8 (logand 8 which_tiles))
' n3 U) n- j0 ?0 g4 A* L. A& ? - (progn% n% T3 V" h- c% h+ D; T' a
- (mode_tile "eb_ltscale" 1). \4 ]6 m% m4 v) C4 ^1 c
- )! b$ U$ y0 P+ ~2 y# P: N
- )" B0 J; N! S T4 _- I7 D
- ;; Thickness Edit Field.
! W: D1 b6 n2 @0 n8 P - (if (/= 16 (logand 16 which_tiles))# U. ]2 `+ Y# l& q% h" v# ~2 P- O
- (progn4 @) A; D4 ~, S* v( K: V
- (mode_tile "eb_thickness" 1)9 B8 f! s. z& o9 \* `4 ^
- )
) Y# q; l- G5 o - ) V7 B* e* e" ~5 B& R
- 8 x9 S Q6 O- c$ b2 ~8 c, {$ `
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
* w' |3 N, N9 P( N9 z - (if (not (= 2 (logand 2 eflag)))( X+ ~% Y" d2 W0 g& \
- (progn: g0 ^- T* H! k
- (mode_tile "text_hgt" 1)6 R8 V% \, b4 `1 }5 Z+ p( ^
- (mode_tile "text_style" 1)) H @! x9 c2 q) R
- );progn. A3 s5 R2 z# r) C& X! g0 p+ j
- );if* Q% Z) M# X7 ?; g
- (if (not (= 1 (logand 1 eflag)))
d: l, i5 X& T$ p8 D& x$ w - (progn - q% G$ n4 @# X( L0 a9 o2 t
- (mode_tile "poly_wid" 1)
: j3 @+ a% z' O' o - (mode_tile "poly_elev" 1)
# A% M# w' B0 Q* L# g - );progn then disable polyline fields
, u9 a, a4 i* `! E( R* m3 M& y - );if1 e# q2 Y& c- |2 t- d6 [
- : _2 t& d8 F$ `8 j$ o# O
- ;; Define action for tiles
( K: x! `. s" O - (action_tile "b_color" "(setq ecolor (getcolor))")
n. w1 i) Y& [! Q: j - (action_tile "show_image" "(setq ecolor (getcolor))")
- M. Z7 D3 s0 }$ }8 C+ ~& s2 s - (action_tile "b_name" "(setq elayer (getlayer))")
5 x0 P6 h$ Q. y( C, I* d5 o - (action_tile "b_line" "(setq eltype (getltype))")3 H; e1 {9 V6 w& S
- (action_tile "eb_ltscale" "(getscale $value)")* G& J$ F/ f& \7 ?( c7 j
- (action_tile "eb_thickness" "(getthickness $value)")" } s: A, u9 ?
- (action_tile "poly_wid" "(getwidth $value)")
+ ^; t. d; |7 g/ q - (action_tile "poly_elev" "(getelevation $value)")" X, ^8 r; d( H" U( m" k( B4 C
- (action_tile "text_hgt" "(getheight $value)")1 d3 y3 B2 x) W, s, d
- (action_tile "text_style" "(getstyle $value hair_style_list)") " ~% l! E5 b% j7 q( ^2 B
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")8 l$ [" P" c# u* o! K2 j0 L- C
- (action_tile "accept" "(test-main-ok)"). M# ?1 h: U5 I; ]
- * y' B7 {9 N* w# \2 }# o
- (if (= (start_dialog) 1)
& X1 P8 x: S5 U& ~ - (progn( |! M/ S6 l4 i8 Q
- ; Update special properties for polyline and text selection-sets.
1 l5 ?, u: [4 T* M$ _ @ - ' @3 j5 S' q4 r& U+ j
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop' F% M: u) {! c$ u+ w4 D& e: X
- (or ewidth
w! m! J4 H+ \, R - eelevation, c% D8 Z' _/ d3 q
- );or5 P& n L1 J' ^- n, r: v
- );and2 o) t* x! B2 ]( s
- (progn/ g8 }# `/ u2 [" l
- (setq ss-index 0
8 Z8 G) F$ T ^6 r, Y - ss-length (sslength poly_ss)
; k: n" F! n" Z7 L) q0 M @ - );setq
+ \1 x8 @# F' M( b% h - (while (< ss-index ss-length)9 u' ]3 n0 I& p0 W, g
- (setq ename (ssname poly_ss ss-index)
4 ?$ |$ `4 Q$ F - elist (entget ename)" ~% ~: @1 H" S
- );setq C8 H3 N* v# t5 m$ V
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp5 C' T0 s7 g e+ s- w8 o
- (if ewidth
2 B' f0 {1 d1 n+ G* `* |; }2 @ - (command "_.pedit" ename "_W" ewidth "_x"): S2 n2 ?4 {) ^
- );if 9 S4 A( g) @. p$ y
- (if eelevation % [1 i+ U a9 z
- (progn6 w( T. Y$ d/ B/ l) t
- (setq p2 (list 0.0 0.0 eelevation));setq
& |: w: I* Y V! |0 ^! j$ ~ - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
2 Y: r8 X8 @) z+ @! ?9 U - (setq p1 (list 0.0 0.0
2 {+ J5 u+ t( S, h9 P4 f+ U9 X - (caddr (cdr (assoc 10 elist)))6 k2 s9 {. ? K
- );list
; H, y3 A d2 x8 v& ]8 q - );setq5 w8 A4 s0 v! w% E& G& Y# i
- (progn
4 T3 ~( m7 p1 F1 z1 ^ - (if (assoc 38 elist)
3 |; p! r% ], }# {( X: C - (setq p1 (list 0.0 0.06 W% U9 K( B6 L9 L* a$ ^
- (cdr (assoc 38 elist))
5 K1 v/ j+ q3 ]/ r9 O' @5 o - );list
! L. G+ w7 W' \( [7 M- i$ j. u* r4 } - );setq
- {4 V3 n) p6 {8 {% g! |' y - (setq p1 '(0.0 0.0 0.0))% g1 W, ]# j: [! H, @# n6 I
- );if
( x% A9 U0 x! Y' |- ~+ E - );progn ) K) L: W& ?) k
- );if( o( T; U+ h8 C0 e2 P6 Q
- (command "_.move" ename "" p1 p2)
' l2 b! j; h5 R) D4 p1 a - );progn then change the elevation of the polyline8 f' b# Q7 L& I+ u1 a% \+ M @ s
- );if0 f2 [+ ?# j4 m
- (command "_.ucs" "_p")
+ u7 {* L* u5 K" G+ l1 i - (setq ss-index (1+ ss-index))5 S' S5 n. c- N9 }& b/ q1 X: i! x
- );while: J% D% L7 ^" q% t% @$ k
- );progn then polylines are in the selset
5 o4 l! a& T, P. r" R+ O - );if
3 c$ r2 O. ]# p) P2 I0 b! |# C - (if (and (= 2 (logand 2 eflag)) ; text7 W. c! K$ G7 b
- (or eheight 1 j! t1 K' j3 f* F2 D
- estyle) X4 y3 B, [8 { R, g, w
- );or
X6 F. o7 X% r# d9 ?0 { - );and$ X: X2 p% C4 M Y8 y" r2 ~ g
- (progn p$ A! H; h; e N ]
- (setq ss-index 0 ss-length (sslength txt_ss))" P" u# T5 O9 g; U2 Z5 b2 c
- (while( l: k {% P$ ^& |
- (< ss-index ss-length): K; P3 h1 D$ e8 v* Z
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))
7 ^5 l2 f7 P7 r* x - (if (numberp eheight)) ?. z% i/ a6 S
- (setq elist (subst (cons 40 eheight); s( K5 M0 ?( G f1 p/ c; n
- (assoc 40 elist)$ R6 I2 ]" g" W$ d% X1 o
- elist
5 z; r! M6 U' f$ a. L$ C - );subst$ c1 W. ], _5 l) d6 B
- );setq7 B. y1 M+ G* U8 S0 m
- );if
* n: }8 S# X$ ~; e0 c - (if (and estyle ;(not (equal estyle "")); F0 x! ^- |: z% b- M- C
- (not (equal estyle (cdr (assoc 7 elist))))5 ]# q- T3 g$ x
- );and( O# P `+ r0 L4 u
- (progn
% x% K0 `& t3 b4 J - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
, k$ X& R. i, w, `: v8 H5 C. @ - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
& V5 D/ `" Q9 W3 X c7 n, w - ; (setq elist (fix_mtext_fonts estyle ' K. | U2 s) u' V: D0 \ J
- ; elist
$ O2 e* Q. k+ {6 U - ; )
# n$ p" i2 v0 U; d1 N9 e1 H - ; );setq then
- J' K4 `# J7 l X w - (setq elist (subst (cons 7 estyle)% E6 ]8 n# ~9 V' D
- (assoc 7 elist)9 e8 O/ W- o* V4 j& I# o
- elist
/ M D% l3 @- L9 D# t( N - );subst! k8 m# G9 z: M* ~' C- D
- );setq else
( i. W& W2 K' }" n0 i. W5 n - ;);if
- s) X) v9 l5 b; ^ - );progn. I5 f7 P1 C- E/ }3 H% }
- );if
F% x& B. {6 o - (entmod elist)
9 O+ {1 w5 s3 L$ S) o - (setq ss-index (1+ ss-index)) K! X; p. k! G# P4 _7 c
- );while6 m$ x3 g6 H9 V8 m4 ]' B
- );progn then& F* L8 S( O4 ~* x. t
- );if% t1 w0 j6 y9 z; }
" R) s* O L7 d" f) ^, L, c- (setq cmdact (getvar "cmdactive"))
! i1 X% ~; I' [& Y - (command "_.chprop" ss "")# W2 G" M- g% R* u @ X a
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
6 K M. G+ w( {. ?2 ?/ A - (progn
5 P2 n1 |( f y$ G - (if ecolor- ?1 q9 {5 g" _
- (progn; w, |) e3 j* m' s+ d8 L6 Y+ T
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))3 e0 O4 s4 @2 f# D; j8 O Q- A# Y- V) y
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
5 {: k6 K I1 [8 A U5 r6 X - (command "_c" ecolor)& C4 m7 Y: C) V
- );progn then
7 h @8 N: y1 h& k% z - )! f4 p5 S3 V6 e: o7 |+ U
- (if (and lt-idx
6 M% c+ A5 B6 }$ p/ m - (/= eltype ;|MSG0|;"Varies")' d5 H* r1 t. y" v; g3 y8 k
- )
; C: F4 `* w( {+ h z - (command "_lt" eltype)$ L& S6 L# d& }0 k
- )
* @& s t9 a: Z* i/ B6 R# P1 D - (if (and lay-idx
3 }" T, t( t$ o7 q" h - (/= elayer ;|MSG0|;"Varies")
I; h X2 r/ X" d3 w% J7 Z - )
, Z3 G b& s9 }- E& v5 G - (command "_la" elayer)- d4 C r3 k G& U" ^3 U
- )4 `! n! ?0 X+ ]3 p( w
- (if (and ethickness ; T! H; P ~* R c, P# F7 v2 X1 P
- (/= ethickness "")
+ T, e% }1 {' M) w - (/= ethickness "Varies") " x( h. G& [7 ]- C4 r ^
- ): @' R* r5 }' ]1 \3 z
- (command "_t" ethickness)
1 m( M3 M' ^1 q - )
0 {: I$ p+ P8 B) A - (if (and eltscale (/= eltscale ""))9 e5 B6 l6 e2 P5 `% j: e. \
- (command "_lts" eltscale)
; M0 z S; l- ~$ i2 _9 q - );if
3 w5 r& R& i$ _1 P9 l# f/ u - (command "")
- p+ R0 {/ @ Q: C) m+ n! K - )
' F0 S0 G: `# N- E ~8 L4 Q0 m - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set" u8 o# Z! ^! j: T" M) A _
- )
1 g/ O' Y1 E1 X- Z
! Z& {/ `, F( n/ @- );progn then OK was picked in the dialog.
' V, `# p" B( ^% e" k; u - - v% ^1 n2 P; y* r
- ;; Fred GERBER - 25-AUG-94' V* ^+ @; j# }( C7 J( q* Q
- ;; Don't print the "Properties unchanged" message when the user cancels0 [. y, m4 K" u# U% z+ T( y
- ;; the dialog because he knows that already (otherwise he would have
: e7 u( i' A. P$ X3 t( j - ;; hit the "OK" button). Display the message only if CHPROP fails for
1 \, C) n" o6 c - ;; some reason, because it is not the expected behavior of the command., |; a3 L2 V$ g) a' {
- ;;) `( D! d w1 N9 i
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")1 b0 P' A( q& _- H
- );if
6 r0 v# L1 \* O J. Z2 J W - (princ)
, {0 ~8 r+ D( M8 [/ K2 [2 C - );defun call_chp21 l) n$ Q, e9 M3 A* d+ I
- ;;: [' |' u( `% k( d8 B6 D
- ;; Function to set the Color text tile and swab to the current color value./ M8 u, P& n Z) P
- ;;
- m F: v M9 K% ]& J - (defun set_col_tile()4 C% _; t/ F: v3 T! ^/ b
- (cond
8 O) _( A8 h: F* l, q0 X' k! K - ((= ecolor nil)
- U! X: l, @# r& W) l: { - (set_tile "t_color" "Varies")
# Z. ~5 J, i) ~ - (col_tile "show_image" 0 nil)
% v( ` R d c: g7 b: K' W - )) Y) t: G/ D8 b
- ((= ecolor 0)
/ x* e2 a' C4 T' G - (set_tile "t_color" "BYBLOCK")
7 d D; E; N: ? - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
: R0 K+ F5 f, H0 u0 e' {' v+ Z& ~ - )' |: Z+ Q+ A6 ?; f3 `! a
- ((= ecolor 1)
( A- r6 P3 Y8 {/ U- m$ V P8 H3 m - (set_tile "t_color" "1 red")" ^8 T0 _. q' p2 W! R- M+ E# M' L9 `
- (col_tile "show_image" 1 nil)1 w' w: V3 P* Z' X! a
- )
" R9 M( p( u. @* {9 g' ` - ((= ecolor 2)" R1 I% E, G, }! \, _/ F
- (set_tile "t_color" "2 yellow"); \& @4 w5 P" Q
- (col_tile "show_image" 2 nil)
j6 x6 {) y) e' {! \$ a) m - )
) U- c4 G5 V; B; d - ((= ecolor 3)
# u8 D2 b& U2 R% m V) X - (set_tile "t_color" "3 green")
3 a0 D8 c" u3 q5 I - (col_tile "show_image" 3 nil), B2 z( u, K0 ~, R7 ]* }
- )/ n% c3 M# A! s2 I' m, U
- ((= ecolor 4)6 Z/ |+ W; l! N" _: W' i4 `
- (set_tile "t_color" "4 cyan")
# D! _5 X( Z9 }8 ^ - (col_tile "show_image" 4 nil)
7 A$ u! X9 ^) D& T; d6 p ]( z* E - )1 \- s# `# V- v; y! c9 B8 u8 `
- ((= ecolor 5)) g) ^; S5 j# a% M6 W+ V
- (set_tile "t_color" "5 blue")$ ^9 G7 S2 E4 N% G3 w
- (col_tile "show_image" 5 nil)8 E/ q! ?+ x# d8 G, C8 O5 m9 @
- )
; ?7 b! ^- T& S' z L - ((= ecolor 6)
7 }2 {4 _6 a( J: A0 y* a - (set_tile "t_color" "6 magenta")
9 R3 I( u5 P% I$ S) j! F4 V - (col_tile "show_image" 6 nil)
& m* ]8 u: d S, K - )& Q% L& U) O! _4 D) \
- ((= ecolor 7)
- h( _0 M7 M$ I0 ^; Z/ h5 W' q - (set_tile "t_color" "7 white")
/ X$ o% w: j% D0 [+ ? - (col_tile "show_image" 7 nil)/ O9 Z2 [: W& h. g) G) M9 g
- )
6 @+ b4 T; J- ]: m* p( @/ H - ;; If the color is "BYLAYER", then set the tile to
: j; v8 M& w8 ^: J" ^9 D - ;; show it's set By layer, but also indicate the$ P3 O; s. Z% w# M
- ;; color of the layer - i.e. By layer (red)
3 t- f9 `5 a6 k' O' N/ ? - ((= ecolor 256)7 G0 e* W' Z( ^$ j' X, U) s9 T( ]6 |$ Z
- (set_tile "t_color" (bylayer_col))
! o9 \9 ^( R6 ~ - (col_tile "show_image" cn nil)
?6 N9 Z: Y8 w; h# j - )
' X% g2 Q D; t6 r! g - (T
* K& b" A$ \# [ - (set_tile "t_color" (itoa ecolor))
2 Y" n: f5 ~8 B, b - (col_tile "show_image" ecolor nil)
" ]- T. X1 d' X) A3 U# l7 T - )
- m6 H/ B5 W4 H- n5 u - )/ y/ O5 A9 `$ b: T
- )5 z( l$ J$ t- E0 a, N" n
- ;;
' o+ ]5 U& l8 K2 }: I. K! g - ;; Function to put up the standard color dialogue.
$ o9 W4 m+ d4 n2 o - ;;" Y2 q( j; b5 b& J3 J
- (defun getcolor(/ col_def lay_clr temp_color)
# r* `% R/ U' d j5 e/ J - ;; col_def is the default color used when rq_color is called. If ecolor
1 J5 S4 A' W/ }- a% E - ;; is nil (varies) then set it to 1, else use the value of ecolor.
+ U* E/ ^* R/ }1 L% Z - (if ecolor
: M9 }% O n' G; F/ R+ ^* O - (setq col_def ecolor)
6 f0 _- h# T! g9 s - (setq col_def 1)
$ N2 f* Y0 R; ~# t - )
$ a3 I# h+ Y0 a9 k7 I2 N6 ~ - / j! L. J7 b( W7 w0 j
- ;; If we're working with a single layer, get its color
8 N, v" P9 ]" g P. ? - ;; for use in the color swatch if the user selects color BYLAYER.
6 b5 N& i; i8 n& l1 B. y l8 r - (if (/= elayer ;|MSG0|;"Varies"). l( k2 [! `4 J! z3 @' G. {0 p5 J4 _
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))! W2 Q" S* o& w5 {9 s# ~/ v/ ]
- (setq lay_clr 0)
, _+ b2 v4 y+ l( ?& l8 ] - )- y, E# }2 i* c. x' z+ ]
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))( ~5 `8 I$ H* q8 r
- (progn
; F X8 E5 X1 m7 u; k - (setq ecolor temp_color)1 f! Y- s2 A" v4 S2 m
- (set_col_tile). q6 v/ G W4 Q+ D7 E8 v! [
- ecolor
# Y) f8 h2 X; h I ^0 ? - ), h1 m& i6 C# \, j
- ecolor
1 s6 Z2 h$ R- Z4 t. a& O - )# z) h. A! c/ c
- )- v$ `% l4 [6 h6 Z
- ;;( P( }0 X" r9 C& t) M; J; s/ r
- ;; This function pops a dialogue box consisting of a list box, image tile,8 c2 I+ y; \+ |7 U6 p& [, r! u
- ;; and edit box to allow the user to select or type a linetype. It returns
3 f; N* z7 u1 ]. M; ] ^ - ;; the linetype selected.* i2 |6 {5 _4 ]: i, F+ H
- ;;
8 M# C- k) S! A - (defun getltype (/ old-idx ltname)
( ^( ^ S, w c3 A3 `* n" l1 w4 U+ N4 x - ;; Initialize a dialogue from dialogue file
5 q. K2 [1 s9 L( v - (if (not (new_dialog "setltype" dcl_id)) (exit))
& K& E# R' `& ^" z4 V; I7 ? - (start_list "list_lt")
) @+ a$ C0 z" {# L1 N - (mapcar 'add_list ltnmlst) ; initialize list box: T; M. `. u4 E/ Y1 F7 x
- (end_list)
9 d9 W# D9 Z0 }/ s M4 o) L, O% v# p- B - (setq old-idx lt-idx)
$ W, h% o7 }- E) Q% |# ]% ~ - ;; Show initial ltype in image tile, list box, and edit box: D8 f$ F9 L l f& x" k
- (if (/= lt-idx nil)
& b" ~' B6 s3 ~0 |( ] - (ltlist_act (itoa lt-idx))
" z9 z2 L+ ^) f% X+ `3 A# k - (progn5 g* V. b, _$ j
- (set_tile "edit_lt" "")
8 l. Q/ A6 t5 `. z" N - (col_tile "show_image" 0 nil)3 e1 | ^& u( l1 i
- );progn else
5 B3 ?4 @: l; N' ] - );if
. B o% Y3 Y% [& o) \8 H) F: n, s - (action_tile "list_lt" "(ltlist_act $value)")$ ~& ?6 u4 ^( B9 H# i5 e$ q
- (action_tile "edit_lt" "(ltedit_act)")
. p4 J7 t( |2 P! z: D; o+ e - (action_tile "accept" "(test-ok)") Q3 {& A$ ?- ^/ X8 g! Y
- (action_tile "cancel" "(reset-lt)"). s6 ~7 Q8 C- T' h! J( ~
- (if (= (start_dialog) 1) ; User pressed OK+ Q' L2 z% u. j, P" q
- (cond
, A. S" @) J0 R# K' ?" o+ _- ~ - ((or (= lt-idx nil)% l J+ K3 ^8 k9 T Z- m& H. d$ M
- (= lt-idx (1- (length ltnmlst)))
d- }( b! k1 S2 j: g0 m - );or7 V, f: _' Z# k' D
- (set_tile "t_ltype" "Varies")
3 [% U0 t1 v. W# r0 ~5 v) z3 u9 ? - ;|MSG0|;"Varies"
; ^6 C |6 f# D: h* |; j8 R! J - )9 \* d3 D, E/ e- K/ q3 _( J4 o
- ((= lt-idx 0)5 K( [* d5 o# ], p& o
- (set_tile "t_ltype" (bylayer_lt))0 t$ @4 u. V( Q4 T5 ~6 b; F
- ;|MSG0|;"BYLAYER"0 \5 [# I4 o9 D# }
- )3 j( t# r3 S7 A6 l
- ((= lt-idx 1)# J2 \0 J/ e1 h. l8 b, m3 C
- (set_tile "t_ltype" "BYBLOCK")9 r9 S/ U1 k0 S( Z
- ;|MSG0|;"BYBLOCK". E) v. ~; o! h1 q8 @# |4 f1 e6 F
- )0 C3 i& T! N& R" j& @6 [: z- F. M
- (T
1 C+ l; V, U; O+ o, V. d0 {8 B& J - (set_tile "t_ltype" ltname)7 z' X$ X X" T2 `' p1 H
- ltname+ p/ W/ q. n5 `( r
- )
" R& ~: M$ H# d+ I - );cond then
( @% s( h# w5 n0 Z4 S - eltype
9 G4 v9 }( L2 w' [2 m2 J+ A - );if8 [9 O2 P! G7 n9 S8 c& e
- );defun
1 D+ N6 Y- h; h2 O- d: J; O - ;;
, c: h% f* r- N$ b% t - ;; Edit box entries end up here z1 N* H, j0 D+ k3 T; X2 O
- ;; x* t) D7 E# Q: q
- (defun ltedit_act ( / flag)
8 {1 g+ G. V. r - ;; If linetype name,is valid, then clear error string,
' Y1 B* z. k2 @. t - ;; call ltlist_act function, and change focus to list box.$ J& D- Y9 r; j; B
- ;; Else print error message.
& n6 d5 H( j5 h# @* _ - : ~3 m f9 ?8 q) u1 C
- (setq ltvalue (xstrcase (get_tile "edit_lt")))
2 d) `4 m: i% L8 |' V! B4 W! L - (if (or (= ltvalue ;|MSG0|;"BYLAYER")
5 U v+ }, }3 l - (= ltvalue "BY LAYER")
5 w1 E" ^% T! S# @ - )
5 j1 Y" d1 I4 `5 z6 _8 B9 A - (setq ltvalue "BYLAYER")
8 c7 H9 R4 V3 t/ \ - )
% a1 |- a9 N& X. Z: q/ D! @' A - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")) G' R# k. b/ G: q' e6 x
- (= ltvalue "BY BLOCK"): X: B9 g8 z2 a e) o- ]
- )8 k+ Q6 E$ M9 z- R% @
- (setq ltvalue "BYBLOCK")$ X+ d& B# j6 S/ ^$ f' x
- )+ f) z& P9 N& r1 T
- (if (setq lt-idx (getindex ltvalue ltnmlst))! H2 T7 @5 E. i, ^2 A
- (progn K ^4 u# Y7 z3 X
- (set_tile "error" "")+ {$ b7 c7 u2 i* {. v' V
- (ltlist_act (itoa lt-idx))6 N: v L3 M$ M) T9 ?3 R
- ;(mode_tile "list_lt" 2)8 t$ L% @4 y- V8 T( t
- );progn then
% V( V# G; {: g( m8 ?! y; Z5 p* i# F' D - (progn
* f) N: D( n: R* \5 g - (if (/= ltvalue "")
/ B, R0 b/ _& r1 b/ `' c$ O! {) N - (progn& L( l& z0 {! W
- (set_tile "error" "Invalid linetype.")
3 `6 w( ]2 a' E - (setq flag T)
6 W( K% X' d' W& N - );progn
( P6 e6 o, o) q; e - ): [( A+ \+ `% \3 \% C2 ^; i' s
- (setq lt-idx old-idx)
% Q2 i: Y$ L5 Z% E4 k( z1 s+ U5 F - );progn else
$ i4 }6 {& @( h: {6 x - );if
/ z5 M. h3 Y& T8 G6 j9 U - (if (and (not flag) ;added so a return will take you out of the dialog.# X) }6 d- h) e- s6 ~$ x" h. f2 V
- (= $reason 1)
* q& O# e! D( X3 |3 V8 E - );and
5 A4 E9 D3 S4 f" s - (done_dialog 1) . h" U. M) E! Y* n- b# H$ h5 a
- );if
& i5 F: y; L! F- h( y/ n - );defun ltedit_act
T: F8 _+ n' S) W% q6 e - ;;
1 R( G; w( T9 l% ]- ^! J - ;; List selections end up here! E3 K$ h+ O2 E6 x4 v( V& O8 W
- ;;
' P$ P/ ^* U, b. g' q - (defun ltlist_act (index / dashdata)
% V& G% I* ?! n$ {* | - ;; Update the list box, edit box, and color tile
, f& m) N4 j7 g( w - (set_tile "error" ""), B. r$ ~' P9 l
- (setq lt-idx (atoi index))
5 }% T! x0 z: V, V - (setq ltname (nth lt-idx ltnmlst))( Q- V& U" M' x3 P7 F, g/ e7 S
- (setq dashdata (nth lt-idx mdashlist))
$ S" i; d* V3 o- w/ c - (col_tile "show_image" 0 dashdata)" F; c1 U( h% }# S* {
- (set_tile "list_lt" (itoa lt-idx))+ d5 Q; v% ]: f, Q+ n: U# y
- (set_tile "edit_lt" ltname)! e1 `3 N/ F4 G8 i0 h3 f. D* u
- )
/ P' [) D4 M" Q - ;;/ T& l) l- o1 Z( f; j+ ~' ~
- ;; Reset to original linetype when cancel it selected2 C9 g/ l, v. J W+ F
- ;;
1 a r1 } Y9 Z- X9 B! Q - (defun reset-lt ()7 I0 o1 {7 z" \ H& E* x
- (setq lt-idx old-idx)- \0 a. C: `# G. n9 f
- (done_dialog 0)
$ t2 F3 x* `+ @ - )
! ] ] l' w# [! c - ;;! Y N, {( M( ~; Q1 @9 U. L# U( w
- ;; This function pops a dialogue box consisting of a list box and edit box to
) V6 i+ V: \7 p' M+ Z: z - ;; allow the user to select or type a layer name. It returns the layer name5 |" U$ \' } p; }4 X _# r
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the& x+ h" h! N, n, _
- ;; drawing." S5 ]7 z$ z8 H# _' N
- ;;
9 z7 c6 Q: N# s, w) p - (defun getlayer (/ old-idx layname on off frozth linetype colname)( j6 O1 F% R7 r8 d/ T! `: ?
- ;; Create layer list the first time the layer
3 y: }3 A' A7 s' x }0 r - ;; dialogue is called.
6 P6 U* G/ D3 D" ?0 T$ n - (if (not lay-idx)
6 ~& {% o' P; _- C - (progn
- U, j! h& S$ ^) E - (makelaylists) ; layer list - laynmlst
+ V4 S6 ~; T; X3 U+ Z& d3 n6 e7 n - ;rk
# \- m% X: M7 o2 i9 U - (setq lay-idx (getindex elayer laynmlst)). B& _" T. r/ y, L. D
- );progn0 r$ _& N* B4 W* _# o
- );if, }% b+ D6 U/ r! k
- $ \- C. \1 W" T0 G! F6 G
- ;; Load a dialogue from dialogue file
6 j( {' a7 h) Y8 n+ s7 N8 n - (if (not (new_dialog "setlayer" dcl_id)) (exit))# I& _% s( @3 p1 V
- (start_list "list_lay")
' X3 p5 |! ?& p% `$ ^/ m - (mapcar 'add_list longlist) ; initialize list box* ]; T8 [/ F' |9 J: x) n6 \* ~. @
- (end_list)) ^4 c- X2 `+ }, D( g* U
- ;; Display current layer, show initial layer name in edit5 ?1 @) A+ y2 {, k% [* x
- ;; box, and highlight list box.
+ |0 u! d8 h, H; q y* r3 T4 I - (setq old-idx lay-idx)
2 Q C# F% a b. \* y: V# ^, q" C - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))4 x3 M$ S% y+ |8 P! p ^
- (set_tile "cur_layer" (getvar "clayer"))
# h# h: F- l3 L/ X H - (action_tile "list_lay" "(laylist_act $value)")7 L' Q: ^* K( X7 J( t
- (action_tile "edit_lay" "(layedit_act)")
V& r }7 Q" n7 \/ ^0 m; g) u) t, H8 {/ z4 H - (action_tile "accept" "(test-ok)")- V+ [! n; s4 ^) _
- (action_tile "cancel" "(reset-lay)")6 S8 h, k i- x, [
- (if (= (start_dialog) 1) ; User pressed OK
4 ~/ o5 X* f" X4 ^+ x% s - (progn
' C9 c2 }' ~. w, t2 P! v - (if (or (= lay-idx nil)) j0 r, a8 \% e4 N; r2 b! e
- (= lay-idx (1- (length laynmlst)))
/ k Z% i# G; d - );or
& `% w; e6 m6 Q2 H5 J3 N! v' L% Q - (progn! D; y' D. Y! A3 g
- (setq lay-idx nil) ' m" }+ H0 n3 E1 w. @+ G
- (setq layname ;|MSG0|;"VARIES")
$ }/ U G" a4 F# Q: V7 t - (set_tile "t_layer" "Varies")# N8 f% n+ b, k) r
- (setq layname "")7 D# ^; M y$ `. @6 \) A
- );progn
: @0 I Q# X# W) m9 F - (set_tile "t_layer" layname)
% J( k3 l" f8 D2 ]' @, l9 g( b( n - );if
3 A! E/ f! Y2 o - ; If layer or ltype equals bylayer reset their tiles
, V4 o! b2 R/ z) j5 s - (if (= lt-idx 0)
8 q- n! r3 I" x - (set_tile "t_ltype" (bylayer_lt))
) c1 |4 G( A% V/ Y* E - );if9 W9 [; p1 V( u F% R
- (if (= ecolor 256)/ f% K/ l' g" l" X
- (progn
3 p0 b; n" X0 n* c5 M2 R - (set_tile "t_color" (bylayer_col))( l) Q2 g: i4 G1 }
- (col_tile "show_image" cn nil)
+ P! @" l" c$ ] - )' P9 O% x' w2 G/ N6 A+ W* z
- );if
0 A7 n7 V) Q, ~' ]3 ?( y% A - layname
5 w, X& X. X! |: W( y* t - );progn
, \; T: L- L2 R+ Q6 p - elayer4 c1 Q" ?: F$ k( u3 r6 V* ? I& _8 V
- );if
" X7 g# w( v! Q( i2 i. c - )3 s, w q6 c( M' F# S* _
- ;; {- p1 L. K5 N
- ;; Edit box selections end up here
6 q, V4 x3 f) D f; a" p0 W8 `/ z - ;;, Y9 P0 o: x9 \! V# [9 i4 x1 j8 a
- (defun layedit_act()$ X; C7 p0 ]# N0 q T
- ;; Convert layer entry to upper case. If layer name is# J3 \& e7 I1 R5 z
- ;; valid, clear error string, call (laylist_act) function,
0 |4 P$ ^6 \6 x0 E3 z5 A- E, e - ;; and change focus to list box. Else print error message.
! [7 H" X# }% U. z4 W - (setq layvalue (xstrcase (get_tile "edit_lay")))
. q! U: E4 _1 m! [& y - (if (setq lay-idx (getindex layvalue laynmlst))* K) @& W) F# }7 p" t
- (progn Y1 J4 K% m# P7 k& E/ J9 w
- (set_tile "error" "")
; h- {7 l% y; [3 j8 M3 x; _) n% F9 ` - (laylist_act (itoa lay-idx))# [. u' \" l% z' a' [
- )
+ [3 `0 j$ W2 @6 Z7 z8 B, U9 m - (progn
6 w" d2 N: i' l* t3 L2 l - (set_tile "error" "Invalid layer name.")/ \7 S4 }# u: m, {) b; f
- (mode_tile "edit_lay" 2)8 e- Z; r7 X& g, K( ^& _6 D; G& m
- (setq lay-idx old-idx)8 V2 C! y. }: ]; H
- )% K: }, [2 D7 W' F
- );if4 E1 I: n! v7 y# b7 o
- );defun
1 |7 T/ ]* S5 G+ V, m$ n) c - ;;
1 K) i3 g! @% A7 k* z9 Q7 K - ;; List entry selections end up here
. J0 A& w0 c6 A3 k* a - ;;3 {; H& ], y; D9 r! Q. i
- (defun laylist_act (index / layinfo color dashdata)
; Y# y, j+ F, C } - ;; Update the list box, edit box, and color tile
; c0 G' X' p$ J+ s- Y; h, V- w - (set_tile "error" "")
# Y! T% f6 c; S$ f# Y - (setq lay-idx (atoi index))4 E* `+ |! O9 b( h
- (if (not (equal lay-idx (1- (length laynmlst))))
* W& |9 s. F! t - (progn
- H- A+ O: L1 O# _; ^9 T* R - (setq layname (nth lay-idx laynmlst))( B9 L9 Z) d' G
- (setq layinfo (tblsearch "layer" layname))
! u' X4 | \, U7 q - (setq color (cdr (assoc 62 layinfo)))9 r5 o' t+ h" e2 C
- (setq color (abs color))
* E h0 @; r4 { - (setq colname (colorname color))
# G/ M. y9 Y7 y - (set_tile "list_lay" (itoa lay-idx))
" r5 \+ `9 `2 A" ?* w+ p - (set_tile "edit_lay" layname). F8 ?) ]# r6 A' j& w/ @: { |
- ;(mode_tile "list_lay" 2)* ^* a4 @3 W0 s v$ c
- );progn then
7 k2 x \* v' A: Q: e8 S! H - (set_tile "edit_lay" "")
) w, K1 r: @" D% d - );if
* V) a9 ^" a' \ q# b. B, H3 }7 o7 m - );defun laylist_act; J: t# a1 N2 ^2 |. a
- ;;/ ~8 V! N q; @8 z' r
- ;; Reset to original layer when cancel is selected
/ V- N5 C6 c$ H2 Q+ s, E - ;;% n) f& H9 i5 i) y& p$ N" \$ f
- (defun reset-lay (): X: h: v1 f# b; V+ ]
- (setq lay-idx old-idx)% k: H, m4 y$ Q v( R, C' |
- (done_dialog 0)
2 [8 u9 y0 H& o7 O - )% K' f3 T9 S+ c8 u# v
; r) v7 m/ J) u4 w( }- ;; Checks validity of linetype scale from edit box. It checks to) \; _, l% U3 u: E
- ;; see if the value equals "Varies".
* q9 k3 v- i/ i- Y& x: R7 |3 k - , d- ?4 b- @& H+ r" k9 S
- (defun getscale (value / rval)
1 {' k5 e" d% A% X2 W# T; ^1 v - (setq value (strcase value)- j# X# u" U, m9 L" |" K5 M0 F, j
- rval (distof value)
6 X- I! J; c' J( _ - );setq5 e& Y2 R# E9 g; H9 k
- (if (or (= value "")
3 m) F* M) C0 u' w - (> rval 0.0)
& x: j9 F. }! h* I# z8 P. y. h - )- x, ^8 S4 y/ V; D# Y4 n
- (progn3 o* h; Y* V* P' P; g+ L
- (set_tile "error" "")
( S _8 L" ?# H# y/ B7 z7 ^4 J - (if (= value "")
& L1 l9 U3 z! R$ b b. j1 r - (progn5 e7 r, Z Z: n4 W
- (set_tile "eb_ltscale" ""), r- @: B3 S' l: k
- (setq eltscale nil)
, I9 n* E$ v9 W. Z; a& b8 B - );progn then& t: f4 {- m9 T( g7 x& `5 {
- (progn
: a: e* M6 k2 }$ {- m( h - (setq eltscale (distof value))
, y! b! e, B( h1 H$ m0 [/ f0 l! b- e - (set_tile "eb_ltscale" (ai_rtos eltscale))
9 T* G) D* F" y% T3 F& z5 l - eltscale
/ {( X. q+ H/ [8 h+ {) k - );progn else
1 o" P% R& ~3 T+ ?+ c - );if! d2 O+ o/ @7 m* P+ I) q1 A
- );progn8 _2 I6 w* P+ Z
- (progn. S+ G _- t) b; M0 L; ?: ?2 ~9 f. p- e
- (set_tile "error" "Invalid ltscale.")& T7 [! N2 p9 b, A
- nil
7 X+ W; D, y0 ^ V - );progn else
' G/ L8 T i% @ U9 H - );if+ |9 R$ w) }. T
- );defun$ o; I$ i) M7 O8 C6 q' |- W
- ;;' I5 o8 g; n5 J( U
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
6 }4 l% ~( U: M9 z4 T& G l - ;; string can't be converted to a real, this routine checks if the first' v3 [1 G \. N. b
- ;; character is "0". It also checks to see if the value equals "Varies".
8 s: \) b" } k - ;;
0 ^7 P' {7 k$ [2 c' m; K - (defun getthickness (value): [0 {! i9 D7 T0 [' e/ R
- (setq value (strcase value))
- v% y6 Y8 c# n& b C; Q - (if (or (= value "")% d& S/ V3 F! Z: |
- (distof value)
) D- V C+ ]4 I) K - );or) ?: L3 ?& q# Y, u6 ~
- (progn
8 ?$ r) W `* `( H; u: x - (set_tile "error" "")
5 T4 u( |: n# @9 A2 ~3 b - (if (= value "")
+ Q0 E& b( f6 O - (progn* K2 w0 c* i2 i& |% M
- (set_tile "eb_thickness" "")
% ^/ X$ K. L2 r4 X8 X - (setq ethickness nil)
) h3 ~4 ~7 @ ?( `2 ]3 F - );progn
/ W3 p" `0 l! `& @# ]9 N - (progn
& p* ?: J0 b8 t% M0 [6 r - (setq ethickness (distof value))
* w! k+ ~$ t6 s6 w3 b% F, @ e - (set_tile "eb_thickness" (ai_rtos ethickness))# _$ q5 r( f( z V m1 I& G- L: N( Y; V
- ethickness
5 B! c+ D+ s" R/ E2 Z - );progn$ i! z7 @: v' D1 W! k0 s
- );if
1 b; e1 ~. E, a) |' S - );progn
1 \) Y3 L4 O2 ]: G6 X& g - (progn* w3 Y9 O) w# F$ Q! ^
- (set_tile "error" "Invalid thickness.")
$ e& v! a2 J0 \" X4 h0 V% G - nil
- ]1 r$ }" G5 [0 ~+ Z4 ~ - );progn" o5 D; E9 F8 ]) ]# F
- );if
0 ^5 m9 W4 O2 ^% M2 v - );defun 5 h; e" i7 b+ M) _- d6 O
- ;;
3 i, C( l1 p% E: y' w9 | - ;; Checks validity of polyline elevation from edit box.: Q6 H; B9 Q3 P% \. m. {
- ;;
( L- ]2 }% H0 @ - (defun getelevation (value)
% w6 ?4 @+ f& i4 e$ D - (setq value (strcase value))1 `& _4 K2 ^- i5 r
- (if (or (= value "")
5 v, l, o3 H& _8 |! r; d - (distof value)$ Y3 M# \6 a" [/ E
- )
* D( o9 r+ |- i% W$ Z) p' ^ - (progn
# g+ g7 W' h' x7 W. a - (set_tile "error" "")% y. v, S2 J) k: u( z$ d0 Q5 k" P& ]7 j. J
- (if (= value "")) w: Y- k1 P6 d; l/ g# p
- (progn
5 ^! ]1 q ]! }) n - (set_tile "poly_elev" "")
" j" e7 r- ^1 _2 U - (setq eelevation nil)
' o r% E, t' x7 P5 b# O$ L5 y - );progn
! q% C9 V& ?1 h - (progn4 G% J+ E( w" ^! y: y) M2 d
- (setq eelevation (distof value))
6 w& z# Z% V% W# H - (set_tile "poly_elev" (ai_rtos eelevation))
1 R4 @( U5 x( W+ `8 Q5 ]3 w3 h - eelevation, ]: y2 ?+ D" v% W
- );progn% {& t' u" D6 e+ k: Y+ _4 D" c! u9 K
- );if
' n" }; w- D# o; B) \ - );progn% L# X) H/ Z8 S/ K
- (progn
+ n1 J6 z9 z" N* `' q7 z - (set_tile "error" "Invalid elevation.")
7 P% \$ y- D% Y3 ] - nil l6 v% d% c7 }( A/ H
- );progn
$ ]! k+ e6 G9 S" y' s2 N5 p8 |6 P - );if7 p, y( a( S2 I& z6 N7 k
- );defun7 V4 h+ p$ l& f; n
- ;;. s% X4 h3 J- o6 u, _
- ;; Checks validity of polyline width from edit box.# m7 D* _# x% R" |6 k+ h
- ;;& @% |2 X; Y9 F( o3 r
- (defun getwidth (value / rval)
- N0 d& ]7 {& n - (setq value (strcase value)
% \, }+ C/ Q+ c Q/ b4 p C- _ - rval (distof value)
6 M/ U" t: k' ^1 N3 t, I5 G, Q - )/ b' \. T: U J
- (if (or (= value ""). v& b, }0 p1 p: y* c' w f
- (>= rval 0.0)
; e4 M4 r7 ~9 A5 E - )
% \/ W( B2 x% }. ^9 J) W) p - (progn, W' y( u/ i4 M
- (set_tile "error" "")
6 r% Y3 X3 S4 V& F o8 i - (if (= value "")# L( q6 a \2 o3 ?9 \. V. ^
- (progn
4 e- I- M, g1 H. T- [: G; R9 p- F - (set_tile "poly_wid" "")
. S5 z* c. H+ L7 G3 |6 M - (setq ewidth nil)# F4 w4 R' |+ K( Y4 x' C
- );progn) B% }% a% m8 C+ b3 y
- (progn
2 J$ \1 a0 R& r+ n - (setq ewidth (distof value)), K+ i) ~& _+ W: P1 a! V m
- (set_tile "poly_wid" (ai_rtos ewidth))" y& \) V; t$ _$ a( c7 \9 ^
- ;width
+ A6 ~7 t1 i5 ?8 A! R - );progn. r0 M+ w: |8 X( a
- );if6 r% V2 D# c8 e9 I ?
- );progn! c. e$ |8 ]0 ?) o. ?% { j: ^1 F) m
- (progn- V: x/ [! B6 e
- (set_tile "error" "Invalid width.")
+ _- ]" x' Z( T1 C7 v" o$ f - ;(setq ewidth nil)9 m+ f4 Q, G1 |1 }$ R
- nil , p8 i# h" d7 T4 i1 }6 T# j; q
- );progn1 Z& m4 n+ c, s+ S* q3 T9 m
- );if
6 ?4 h$ g+ q8 [5 q - );defun
7 H; ?) }8 `! o) p, I9 q. i% x - ;;1 f2 @" e6 |6 t+ r. o# y1 G, I% R
- ;; Checks validity of text height from edit box.
$ U2 y, y7 z5 G9 ?3 J) t) X4 |0 z - ;;3 e4 g( z( c' Y4 l' I
- (defun getheight (value / rval)
& d+ B3 @2 X0 r( J G - (setq value (strcase value)* X( |% Y% r5 v2 F* b# L8 E
- rval (distof value)2 T4 Y6 ^& O. T$ W1 Z5 C
- )
; f* ~# |/ m( `/ T4 m+ j; z - (if (or (= value "")
. x% p' E( }, S" o6 _ - (> rval 0.0) a$ V8 H M% p8 Y# B/ Z
- )
4 g& |" A# `! B - (progn5 I1 s6 i+ j1 n( r$ v z( s
- (set_tile "error" "")
/ w- z. a; E: z0 F. x: A - (if (= value "")( ]' m! {% A7 t
- (progn
* C" Q6 J5 Z2 K' R, a - (set_tile "text_hgt" ""), U: C3 i/ b" J3 z: g# y: K3 e
- (setq eheight nil)) z! c; A* D$ u. g# B$ _1 c0 V) p
- );progn
: Z9 r( c2 ^+ Q3 ?, M) q1 S; ]1 b - (progn8 r0 `3 g% A$ m n' ]
- (setq eheight (distof value))5 X& h' g( K7 d, F) b9 j
- (set_tile "text_hgt" (ai_rtos eheight))! d8 j9 x, W/ [* k9 U
- eheight
' g- o# b, G. G8 F* k1 e+ Y - );progn
5 W6 e* B) P' }& J - );if
0 x% ]4 _* S3 t& |1 M - );progn
! X3 o" l @1 L; A! V4 s - (progn
) h! d, z% l; q/ p, y - (set_tile "error" "Invalid height.") F# n$ J9 ?7 z5 o
- nil' F; F7 e% j5 Q* N% l
- );progn" t4 [' O: x5 x' E, K9 l! \
- );if) l& n: K t. s( \: f% W5 a6 d
- );defun. h4 }" N$ r+ M E" D" `3 O2 f% b
1 n# |- x! A, T, \2 E- (defun getstyle (value lst / rval)7 c* ^' `, x9 q" ?, _4 m" X/ w6 M
- ;(setq value (strcase value))
9 U( q( U; F% |5 K+ p$ g9 Q( | - (set_tile "error" "")' X' S. V6 e: B) f; o; l3 W0 n
- (setq estyle (nth (atoi value) lst))
/ H) S. A( n- j# \, v2 |2 V - (if (equal estyle ""), p# v- [$ h; E% ^) {
- (setq estyle nil)7 q7 Z; I! w, r9 y; X
- );if
! F1 C6 V2 v3 R3 I -
6 ~/ L+ h. ~3 N - );defun getstyle5 k) Y8 ]/ h& r: f* P7 n
# z5 \. |6 @( b- ;;
( T; F7 k" h) Z& L H& j - ;; This function make a list called laynmlst which consists of all the layer: A3 N* w; q0 M2 B! Y2 U
- ;; names in the drawing. It also creates a list called longlist which5 g3 L3 q: p* ?$ J/ G; L
- ;; consists of strings which contain the layer name, color, linetype, etc.
* r4 G$ S6 t! P5 D t - ;; Longlist is later mapped into the layer listbox. Both are ordered the6 b4 F! ^& p+ Y' _% \0 T
- ;; same.
; K+ x8 j* k* `& d" E8 j+ ^ - ;;! r) ]. y1 J x
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname& e! q9 F3 ?: Z6 X
- xdlist vpldata sortlist name templist bit-70
) x# i& g, a5 h - layer_number9 `4 f- G4 c3 B; n" Y* K- E
- )9 o; b6 ^- c: T1 M: F# S) ^$ e0 j
- (if (= (setq tilemode (getvar "tilemode")) 0)
! |+ [1 n" J% ^$ t# N) h - (progn* b3 o3 u8 I6 J* h; Z7 f6 v3 B# ]
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
2 c4 K( r9 J8 L: {; U/ r - (cons 69 (getvar "CVPORT")) @. G! H+ Q$ E N
- )
7 e0 L9 R) E+ _8 l2 @" w7 u - )
( H" g4 i* w6 T/ A3 s# b - )
4 C' {, M" P1 L3 E - (setq cvpname (ssname ss 0))5 C+ V2 ~0 F# J
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
/ |: p* Z' ~" d) k - (setq vpldata (cdadr xdlist))4 C4 J, F& X1 B
- )! h% o9 j* s0 }0 y2 z+ S7 m6 G
- )8 \8 C" N- n9 Q. v
- (setq sortlist nil)
, c1 g4 A9 C1 s7 Z. ^( U. C( E - (setq templist (tblnext "LAYER" T))& G0 |: E, H# p# m& M& v
- (setq layer_number 1)
% I' ]+ F* ^) ` - (while templist
k) [; k% k2 h - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
7 e; y% o5 P- }0 P; F) I - (progn " `+ ~# L% `/ C& B
- (setq name (cdr (assoc 2 templist)))5 `$ A( B u7 k
- (setq sortlist (cons name sortlist))& M- {0 N& T6 o( t
- ;; Not dead message...0 A$ M3 w) k$ X! _! `5 v! Q% n
- (setq layer_number (1+ layer_number)): y6 S# I# |9 C$ f# J( `
- );progn
% z' P4 L1 ]4 ?$ b3 r/ m - );if
]7 O: X# ~5 B: `) y1 f2 u - (setq templist (tblnext "LAYER"))
) ]" I. t. \& M/ r- W* K6 z2 w$ T - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))! J% |; v1 A( u& d. N& z' \3 y: e
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
8 v t' A* ^3 g4 I2 X - );if
; L5 ^ L; x- {' [8 c+ p4 m1 b - )
; e; _1 p& D% g4 _# L6 S - (set_tile "error" "")) X( B. w- Q& u
- (if (>= (getvar "maxsort") (length sortlist))# y8 M/ d# d1 M
- (progn. w7 i1 r2 Q" R6 v
- (if (> layer_number 50)) \7 _) u, u1 H8 X
- (set_tile "error" "Sorting...")/ d8 O" \ g Q1 f3 \" D
- )# x; n0 G; {+ _) O. l, b
- (setq sortlist (acad_strlsort sortlist))
' ~! r: c0 ]" t/ i: y2 ? - )
8 ^1 L- f( V; F. O% p) `7 i - (setq sortlist (reverse sortlist))* P6 N* n: {2 x8 X- K& w
- )
8 U) p3 \( q& |* W0 j$ N - (set_tile "error" "")
! ^# G/ M& b. r: \; `1 e - (setq laynmlst sortlist)
) o; o7 C/ v( U% X1 W! _ - ;rk
4 W. P$ A1 O( _( V2 ^3 a; b* b - (setq laynmlst (append laynmlst (list ""))) # _/ m. I' ~" o& ^ I
' q" _. ]( V7 }5 X$ n) i- (setq longlist nil)
7 j* R5 E$ M# o' s) V$ p6 D8 [% o3 M/ U - (setq layname (car sortlist))
8 x7 ]! q5 D) [8 }9 l - (setq layer_number 1)
. Y1 e& i4 ^% P& U; Z, f" K - (while layname
) M3 ]; k% V; K% v8 H - (if (= (/ layer_number 50.0)
( \* H1 O, c+ d! R! C: V$ i - (fix (/ layer_number 50.0))8 y2 y1 n* W3 S, ?' B/ ]
- )
/ v) u; ~8 r& p: K8 ?6 s+ e - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))4 }$ W% r! N5 {, n
- );if/ B& z, E T' ]/ i/ f% d
- (setq layer_number (1+ layer_number))/ N, Q! {, t- q$ R
- (setq laylist (tblsearch "LAYER" layname))
5 l1 d S! l$ u3 m4 X, V6 n: ] - (setq color (cdr (assoc 62 laylist)))
' |$ p/ W {, \4 b - (if (minusp color)
% T9 |, Q4 M/ K" g: Q; Q - (setq onoff ".")
" N! r8 _# e3 ^- L - (setq onoff "On")* L* j/ H/ J' v/ F
- )
0 J- \) ~! N& W, H - (setq color (abs color))
4 G( x9 i, H3 n$ _) } - (setq colname (colorname color))
2 I6 K9 r( ^- ~' j4 X) y- W - (setq bit-70 (cdr (assoc 70 laylist)))
: p- }; d r/ s) \: u" p, M: H1 i' r - (if (= (logand bit-70 1) 1)
- J6 ?% j3 r4 g# ]* o - (setq frozth "F" fchk laylist)1 t9 @5 t) ?8 w, {7 I( X
- (setq frozth ".")- \" v6 n! T1 A: A
- )/ o; ?' p$ Z: V4 `2 p& p3 `# z
- (if (= (logand bit-70 2) 2)
5 F' i( @, M$ m4 j* S - (setq vpn "N")
" F2 u: F) n( V6 I; l - (setq vpn ".")" X1 P, ?6 j! c9 w% x
- )
, `7 C7 m" y. {9 A: L0 O* Z* p - (if (= (logand bit-70 4) 4): M) s, Z0 x4 d. K( H' B) {
- (setq lock "L")
- [; R$ V9 m! @: t' C) H - (setq lock ".")
8 @1 K) s; e( E; W7 U2 g( C, J. d4 r7 z8 { - )* E/ n; |( y# O; S6 J. ~
- (setq linetype (cdr (assoc 6 laylist)))$ V e( u) o. D; S; u
- (setq layname (substr layname 1 31))9 N& B, K' s! `1 D
- (if (= tilemode 0)
! r4 f, T# w- h( \; K# v - (progn
3 ?! o9 R# H, Q - (if (member (cons 1003 layname) vpldata)
2 p) D, d( {- k8 G/ P" |1 p - (setq vpf "C")
" {0 H; r8 R, t% E1 o - (setq vpf ".")$ g! M/ u! {. M# K6 M
- )
0 o m3 w$ ^5 o Q: N2 y - ) {0 j3 M7 @+ k2 x. e2 t4 V
- (setq vpf ".")2 j1 z" }, T: u$ E6 [7 j) @
- )
& T$ v8 D5 f9 q Z6 s. ~ - (setq ltabstr (strcat layname "\t"3 _/ q, p, t( m2 K
- onoff "\t"
) c: v/ c$ J' x. ] - frozth "\t"
: g& A, j5 ~, G- f- ]9 s - lock "\t"6 T* g6 w& s- k, q O
- vpf "\t"% v0 y2 p: N+ E7 G
- vpn "\t"
. f; R! e) d T! ]7 W - colname "\t"
" |5 ? m) b f+ Z9 x - linetype, S6 N; g+ D \" J- E T' N
- )6 u. h* k* I+ _5 f
- )6 U* z+ y4 P! u$ ^* Q
- (setq longlist (append longlist (list ltabstr)))
p( o2 G2 N; b0 S! Z - (setq sortlist (cdr sortlist))
; H/ b; \! d0 W - (setq layname (car sortlist)), F' C% M l# t# s# n3 k' Q+ t) g4 Y
- );while m# q3 p+ [; V/ `8 F
- (setq longlist (append longlist (list "")))
: u& } v, p* X3 p: d" x - (set_tile "error" "")
" @) S+ U' [* u; a4 A H+ J - )
- D9 E# I, [$ S' n; E$ v - ;;
2 ]9 ?7 j [; j8 s1 U - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
9 I& `. g9 z% q) j. V" S" x0 H - ;; linetype names read from the symbol table. Mdashlist is list consisting8 ~, e* Q5 A# O8 U& c) j% |/ u
- ;; of lists which define the linetype pattern - numbers that indicate dots,
& i3 O' [8 ^" ?, [( k ^* J - ;; dashes, and spaces taken from group code 49. The list corresponds to the
) c% q1 U: T3 W9 P# p3 Q) ` - ;; order of names in ltnmlst., R: B& T# s8 A! s6 i
- ;;
+ E8 G7 r3 p) M, c% E5 X; k0 l - (defun makeltlists (/ ltlist ltname)" h [1 s1 Y9 j1 X
- (setq mdashlist nil)+ M' }8 o9 d9 S- _
- (setq ltlist (tblnext "LTYPE" T))
+ N0 Z6 B7 Q2 b - (setq ltname (cdr (assoc 2 ltlist))): \4 g- h w2 s7 Y* b$ S+ z* A! p
- (setq ltnmlst (list ltname))
2 r3 [2 G" c3 k/ H9 f - (while (setq ltlist (tblnext "LTYPE"))
: b% A' h" Y2 V+ w6 e - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist))))) d! W2 Z# s$ v2 I
- (progn
" X! p* y% p4 x F% n8 j4 ^ - (setq ltname (cdr (assoc 2 ltlist)))% z& U/ c/ B" W# I+ P$ n0 t
- (setq ltnmlst (append ltnmlst (list ltname)))" |- l6 s1 X2 R
- );progn1 J1 B8 e/ ^3 L8 B! v
- );if ' @8 F; j( g. W% N
- );while
0 a3 n) e4 J, M! V. E - (setq ltnmlst (acad_strlsort ltnmlst))
V; R& g6 k" ?9 S5 N+ e. A4 m - (setq ltnmlst (append ltnmlst (list "")));add by rk
3 C9 G3 \) L6 D4 C( O9 ] - (foreach ltname ltnmlst; r# k* k# `1 [) T$ f9 n1 S2 C u
- (setq ltlist (tblsearch "LTYPE" ltname))5 d/ X% n2 A3 X1 @' Z) B
- (if (= ltname "CONTINUOUS")
4 `6 ^% I$ }7 w/ {! x& x - (setq mdashlist (append mdashlist (list "CONT"))), Z- o2 X4 C' |! K3 S
- (setq mdashlist V% k2 q% [+ J4 x5 L
- (append mdashlist (list (add-mdash ltlist)))' z$ L6 L! `# j. Y) Q
- )
6 a6 b5 f+ e5 \! l0 \ ]& q. o' Y - )
+ p" }. ^& C0 i7 g! M+ D, E( }0 e - )
^ k- }# v9 \' k4 Z( y - (setq ltnmlst (cons "BYBLOCK" ltnmlst))! q# g- L% G2 a% U) i
- (setq mdashlist (cons nil mdashlist))
7 t; J) v& c! j6 N* g - (setq ltnmlst (cons "BYLAYER" ltnmlst))
0 T# e: H; p# h% I- {4 V - (setq mdashlist (cons nil mdashlist))
/ k* O% { `* Z - )
u4 u* `& v2 b; u- j - ;;, E& f$ f6 r0 W' k
- ;; Get all the group code 49 values for a linetype and put them in a list- Z, I/ e6 Q) k. [7 d4 [* B
- ;; (pen-up, pen-down info)3 e% _3 ~9 N8 M0 I1 @8 l
- ;;
" L' Y2 I# m. L2 f$ _2 x - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
V' P/ |7 h8 t7 u4 ^; r$ \ - (setq dashlist nil)
# E" K* c0 C6 ]: b$ y, R - (while (setq assoclist (car ltlist1)). |( q+ Y6 l& c2 C2 `( b8 h
- (if (= (car assoclist) 49): w) j5 D+ M; }: h
- (progn% b0 S0 H# S0 Q% G
- (setq dashsize (cdr assoclist))/ W7 p6 h* a- \5 p
- (setq dashlist (cons dashsize dashlist))
' c$ D6 I5 o" r - )
) {6 O8 B1 U# U - )) _4 n* g7 \! v
- (setq ltlist1 (cdr ltlist1))
. q: I* N" k3 m! i5 ?3 E$ C - )( Z9 L8 V1 {- j- }0 `. j! H9 `
- (setq dashlist (reverse dashlist))2 _+ P7 Q) o5 ^: O% }* u" N
- )% _( D* y9 J, _: V3 ]3 @0 a8 X
- ;;5 Q% g' j8 o3 X1 B4 X# y! Z. n& h
- ;; Color a tile, draw linetype, and draw a border around it
@6 ^+ C2 x5 M0 ]$ q( Q - ;;
9 g: h. ~* G% I+ M$ v) a1 l8 M - (defun col_tile (tile color patlist / x y)
' I0 ]4 j V' n5 b7 b* z* Z - (setq x (dimx_tile tile))
# @3 F5 f `' Y( g- n+ _ - (setq y (dimy_tile tile))# C1 J& r/ D7 c7 G9 F" r
- (start_image tile) e- i% s% g E! b
- (fill_image 0 0 x y color)
2 c. a h7 h0 h" U5 f - (if (= color 7)+ }, S1 ]6 t/ u
- (progn, y. h4 V# d/ Y" E
- (if patlist (drawpattern x (/ y 2) patlist 0))6 S8 P Z3 C2 J, x7 |% R
- (tile_rect 0 0 x y 0)8 Q& G' e0 P9 g5 |
- ), u; k$ E3 o: w" K, {8 Y/ j
- (progn( k/ M* h, D2 v" W2 t
- (if patlist (drawpattern x (/ y 2) patlist 7))+ t6 C% m/ G- Z/ V
- (tile_rect 0 0 x y 7)
, W) _3 }1 x+ [" n - )
; m6 Q4 t; X' h1 s& @ f - )
$ d' z- x- x, ~5 C6 R - (end_image)
4 O$ R( H2 Z, Z$ w, m! y$ P - )
* R+ E! j3 E+ w - ;;9 L7 _9 h W! S0 _
- ;; Draw a border around a tile* h; c& q4 s* G( R, d- I
- ;;
. o5 @* J6 `/ H+ P1 f* f4 y - (defun tile_rect (x1 y1 x2 y2 color)9 @6 M& {4 U4 g U4 W# p) c
- (setq x2 (- x2 1))- N2 o) K1 {% J: }- K! ?) L$ z
- (setq y2 (- y2 1))
9 E: u& L. v. H: i! Y" g - (vector_image x1 y1 x2 y1 color)
j2 B5 L( C- k& ?/ p; g5 H4 g - (vector_image x2 y1 x2 y2 color)+ ?, ]3 K0 S3 ?6 t- k* h9 c
- (vector_image x2 y2 x1 y2 color)
) w9 V, z: c6 d# a K0 ] - (vector_image x1 y2 x1 y1 color)+ N2 O" B* B' g/ k
- )' ]; r2 A# x1 k% e6 P
- ;;
9 j+ T0 O8 o# r, \# _; H - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image% |/ p1 J* t, L N, A$ r1 B7 V; i
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
* C1 k E/ J% A$ t; L2 u - ;; list of numbers that define the linetype, and color is the color of the% F/ g/ b5 S3 w: s1 y1 x1 M8 }9 [
- ;; tile.
$ X& S) A% w% M4 j$ m5 _8 l/ K - ;;4 s* O% ]1 h' r7 ~" o
- (defun drawpattern (boxlength y2 pattern color / x1 x2
4 p! B. R( D' c! g4 A$ G: M5 Y - patlist dash); V2 S1 w6 E6 g8 n/ J
- (setq x1 0 x2 0)! H) T& R" t5 Q5 W
- (setq patlist pattern)
. v- @% B" ]6 z0 x% b) F8 o, k - (setq fx 30)
+ f$ _9 _* M6 T - (if (= patlist "CONT")0 o) A2 N9 d Y
- (progn( }9 j6 @& P- i% j: f9 @: D& p ]
- (setq dash boxlength). {6 h7 t6 B8 `6 `3 v
- (vi)' [8 V3 K+ H6 W U
- (setq x1 boxlength)
* w+ v3 V4 M, }( f+ p9 @! O: T - ): O) H0 n% A2 J( O
- (foreach dash patlist
( ^$ P X6 O4 t# n - (if (> (abs dash) 2.5)
8 ^* a2 e q) z3 C) Y3 A" K2 T. L - (setq fx 2)
% `2 R3 W! H6 x6 _ O& [ - )! A! @* ]& U0 ?+ I5 |
- )
) |* U5 G j; ]0 X o* d - )% ~' F" U r! C0 l: L; p3 h
- (while (< x1 boxlength)
, c, V: v' [( a: S( i! y6 o, a& U - (if (setq dash (car patlist))) ~" P" \ @- O2 b7 S
- (progn1 R8 p9 m- {, N( s8 V
- (setq dash (fix (* fx dash)))
0 d5 ^3 k {) R( e0 M1 U1 ^5 C - (cond
2 ]0 l9 [" v; O( \! A0 N - ((= dash 0)
2 x. y* [( w7 S6 F% ]+ F5 Y& E2 |6 \ - (setq dash 1) m* Y6 Y$ p4 N l
- (vi)
6 ]4 t. M" M1 s7 ~* K, P5 v - ). n- Z9 o) u0 C3 B1 S
- ((> dash 0)6 o+ {7 X8 D! N! F& U. @
- (vi)/ B4 ]+ F/ W; E8 i9 a
- )' V8 E/ y7 G1 D3 x6 {
- (T
7 Y9 A7 m, u. b1 B3 Y - (if (< (abs dash) 2) (setq dash 2))2 t" F2 m J* j S" V- S, J, u
- (setq x2 (+ x2 (abs dash)))
* E+ P/ \" j, B8 l' f l( l6 w - ) Q. |. {. H {" h. y* v, O
- )
7 r% ^' D/ j |$ ^3 e. f - (setq patlist (cdr patlist)). D3 L6 d9 ?" B6 q. W
- (setq x1 x2)" g# ]. A: |% `. G
- )3 m u5 @! i. u: K
- (setq patlist pattern)& H W# i/ m1 G1 }3 H B
- )
8 C6 j' Y/ `; g1 t: V# z/ V - )0 ?: r; b; R f
- )9 d6 R" F4 c& ?+ v. N5 d" C
- ;;) }. R3 p$ s& C. T
- ;; Draw a dash or dot in image tile
8 d, l$ @4 p0 _ G8 k$ c - ;;4 H' @$ ~' p+ @7 _& w- P% e
- (defun vi ()
' D3 Y' r) k% Z- g7 J6 t5 S$ s - (setq x2 (+ x2 dash))
) i8 ^4 y1 t/ F2 S3 f0 M3 |, Z7 W - (vector_image x1 y2 x2 y2 color)
" f; p& Q# w$ V: ?" z( U - ): Q/ b0 p8 ?3 q0 T9 S/ q
+ ~- q/ Q3 U* _& H" t* C+ B- ;; This function takes a selection and returns a list of the color,
/ [8 o/ U/ V. K! o8 X* [( | - ;; linetype, layer, linetype scale, and thickness properties that; q8 s# x7 V! o* j; ^, N+ U0 S
- ;; are common to every entities in the selection set - (color
( g( O- d/ q4 ^/ G3 O - ;; linetype layer thickness). If all entities do not share the same
2 c0 D3 n, E. M( H6 j - ;; property value it returns "Varies" in place of the property
4 A5 x" l5 w' L$ n- i - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
8 o" E3 o$ A) G0 E$ H" x" ? - ;; The last item in the return list is an integer flag for the$ f3 K: z; V. u$ u" S4 x$ Z
- ;; homegenity of the selection-set object types.7 p7 F# y" b" }
- ;; 1 = All polylines
7 y w1 L' A/ X; j5 G5 p; v1 t$ M - ;; 2 = All text or mtext or attdef, or a combination of the three
+ V; e' i2 w# R/ h - ;; -1 = Any other mix of objects3 l( P& I: g. A8 P1 _" Z" M
+ \0 R' ]& c. ^- (defun getprops (selset / sslen elist color ltype layer ltscale thickness4 ] k+ y/ b7 y8 K+ h
- width elevation height go ctr
9 R ~& [% B# W o j' z: ^ - eflag 6 O" b8 z1 k$ Q/ j6 Q+ a3 f
- etype temp
8 `9 W6 n1 x' v" k* g; W% u! v& p - txt_ss ;;;;rk 11:24 AM 1/30/97
. p8 k6 y( f' V6 b# l8 l - tmp $ b2 t8 ]$ d5 C8 `
- poly_ss ( P! @! e8 e+ G: W* C0 m P- d
- style
% d M0 e0 A& z - )# j$ |5 F& H" K }0 w8 t" `
- / k+ P% S/ B; Y! [" i# `$ g# s
6 }6 K* D& u! G3 C' D( ]- (setq sslen (sslength selset)
* m6 q' ]! M) I8 z) H - elist (entget (ssname selset 0))% V; h! A3 j3 [& S% m1 {7 X* k
- etype (strcase (cdr (assoc 0 elist))): \. b' q# a3 w* B8 E" C3 c7 l2 F
- color (cdr (assoc 62 elist))- y/ g, q* e6 }
- ltype (cdr (assoc 6 elist))
' [6 O# |$ i5 e" Z - layer (cdr (assoc 8 elist))
3 u+ C9 i2 \5 m8 b; n* R - thickness (cdr (assoc 39 elist))
; U6 V a) g! ?3 D' L - ltscale (cdr (assoc 48 elist))
2 Z( x$ i. ^9 }# E4 {* R - );setq
( x' D1 s# j% Q7 x0 J: y - ) B; N5 _3 A( @0 Q8 X6 z( Q
- (if (not color) (setq color 256))
0 b- y( |9 ]9 i - (if (not ltype) (setq ltype "BYLAYER")), Q2 s Y1 ~ _. e. d' Q) x5 }0 B& A
- (if (not thickness) (setq thickness 0))3 J. e6 @. D) @, v3 P
- (if (not ltscale) (setq ltscale 1))
% E( Z* q0 k; {0 Q1 p. L7 Y: N - 7 m* M. ]# D& Y/ E8 r
- (if (not width) (setq width ""))
; n# n% O2 Y" I2 U4 [7 ?' j - (if (not elevation) (setq elevation ""))
5 r7 o3 s9 ^+ f- A+ [4 p ` - (if (not height) (setq height ""))
/ G. }# F! A1 f8 w5 U; D
: c( y, Q8 {6 \: R* c- (setq go T
6 b6 L) F9 ]" {$ \% j - chk-col T
% N4 x* \6 {# y/ S4 }/ h# u! k# s - chk-lt T
" M, s3 o) e. S8 r& P# w/ H* t - chk-lay T
0 }# o! J0 k+ P) N' w - chk-lts T
" @' M r% L8 _6 ^ - chk-th T
5 g* g, z5 ` D( T# Y' a) g - ctr 0
7 M* J& V6 P9 B( L1 V o - );setq
2 d' r: d3 k, \/ G* ?, O
1 h6 s3 [* v$ k) u) J4 q- o& `- ;; Page through the selection set. When a property
" t+ u$ x, A( V1 [ - ;; does not match, stop checking for that property.) c/ p+ b D* J: e
- ;; When the selection set is not homogenous, stop checking.. o% \" s4 ^1 R3 {8 t. i
- ;; If all properties vary and the set is not a type 1
+ @2 M; ~1 P' Y( j. z* t0 \ - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.$ h! h+ j3 o. w0 R+ H* q: v: D
; z, u3 \% z& P; l- ;Lets set the eflag so we know if the selection set includes any
4 C9 | l, D: E5 f; j4 i! F+ t - ;combination of polylines, lwpolylines, text, mtext or attdefs.5 ~( U# q) L: U. v7 d8 {0 ]
) _4 t u& k. N- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97' C! |" h4 H- s5 o; E7 ]
- (setq eflag 0)
2 ^+ ^3 H* }3 r* T t - (if (setq poly_ss
K- J m3 H- K- j! I% I/ Z( C - (ssget "P" (list '(0 . "*POLYLINE")
4 s" K) z2 }3 k; d& N6 | - '(-4 . "<AND") / I. ?4 Z- e, I* i
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
; A3 l5 N% ^* {' U - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")7 Q. B3 Y9 x6 N2 @7 {6 T6 a3 p" C3 e- i
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>"); f- n$ F, G1 {6 P
- '(-4 . "AND>")
+ p J7 A% ?5 M4 } - );list5 D, n/ C( k' T p# }
- );ssget get 2d polylines (legacy and lw)6 W+ {3 X, b* k) f1 y
- );setq
6 }% H9 y& G- h8 I& c9 e2 i5 a7 y& l - (progn
( Y/ E. b, h$ f( J - (setq eflag (+ eflag 1))
5 d# u. l& y9 V! i, B - 5 ~ f2 o9 u0 v3 Y$ Q
- (setq tmp (entget (ssname poly_ss 0)));setq
9 [4 b9 G# D, ~
& G3 O _2 Z" }- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))( B' w' n1 L; l6 ]
- (setq elevation (last (cdr (assoc 10 tmp))))
) `8 u1 b! X2 V% S - (setq elevation (cdr (assoc 38 tmp)))0 n2 }5 b8 k. q1 p
- );if
0 C5 `5 r& z8 I, H* ^( S7 S& V. M - (if (not elevation)
( {8 o& v* Q; _" @ - (setq elevation 0.0);setq
( D: y% m: {1 }) Q - );if
& G, ]1 s. }: a! G1 t
+ i. R) R7 A& G- E2 }6 c- D& k- (setq tmp (ssget "P"
' p1 S4 M, |3 }4 n0 Z! _ - (list
- N% |' n6 L/ E+ C4 o# i. G - '(-4 . "<OR")0 n$ g4 _8 C2 ^/ I
- '(-4 . "<AND") 1 q# e e* a# K
- '(0 . "LWPOLYLINE")
% S# m, v9 E* @$ M. i - (cons 38 elevation)) S' K+ s! I' j
- '(-4 . "AND>")
2 ?9 O q1 V! \8 G; x - '(-4 . "<AND")
+ j& n: Y% j9 Z+ i0 `- D9 u - '(0 . "POLYLINE")
# R) _1 d5 e2 u! ?+ O" A - '(-4 . "*,*,=")
, z$ F: N- r; \ - (cons 10 (list 1.0 1.0 elevation))
' w x. |: |" Y, K$ l# P( I - '(-4 . "AND>")
( [: Y1 h( K/ G+ f/ g - '(-4 . "OR>")( ]/ }% K, R6 C
- );list
/ S+ l+ T2 f- J" [; _8 Y. ` - );ssget
3 }2 o1 i0 h9 X- x - );setq
/ n3 U+ o5 z8 X8 o: P
/ T0 I8 r, f( R0 f! {7 f- (if (and tmp
R) f6 Y( M# O7 A - (equal (sslength tmp) (sslength poly_ss))& z) H4 U9 P. `# O1 T- O
- );and# f. ?0 V& l& ^9 X
- (setq elevation (ai_rtos elevation));setq
2 {; n! q6 i2 `& A1 P - (setq elevation "")
1 u7 E4 _) o8 j - );if
" c* w7 u: T. `* g6 |; |/ J -
5 O. w7 k" X6 Y# V - (setq width (pl_width_getter poly_ss));setq- Y: l5 W T# s0 I# @
- 8 X4 D1 P5 C9 }" a
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
, L1 Y5 ~" M. l# J% _7 j. [ - );if
% }( X/ i( c) D @ - (command "_.select" selset "")6 _% Q9 ?9 @, }) ~
- 3 q8 {0 `; q% q* n- P, T h
- (if (setq txt_ss Y7 M& q" ]+ y3 Y. h
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
; Y0 {. [( C- I: W | - (0 . "ATTDEF") (-4 . "OR>"))2 f7 D/ W% f& ~* e! n0 n4 _2 N
- ) , c) w3 }0 h+ ]- w
- );setq9 [0 k3 t( k" [1 [0 V: ?1 o
- (progn# j" H$ y% {- W9 [6 n: ~: I+ M
- (setq eflag (+ eflag 2))
( Y: t5 F. |; [7 q) P - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
' S/ ~9 _# R8 A/ ~" P( f - tmp (ssget "P" (list (cons 40 height))) 5 z1 n0 ^" \: R& V' \1 e/ ^
- );setq
0 _" R, H5 H5 N, t - (if (and tmp
7 l& j8 p4 O4 g - (equal (sslength txt_ss) (sslength tmp))
( [2 N$ E3 J% W% c. `. G, j# A - );and$ O( S; C& d% m1 l% ^1 a4 A3 t
- (setq height (ai_rtos height));setq ;@rk need to translate from float , t$ s6 y1 `, [: W. B* ^" [- W9 Q
- ;to string and back again easily
* N0 L. u- n. B% Y' L9 O - (setq height "");setq else the height varies
% R" l: I% g1 f - );if
+ x' W$ Q& s; P2 R - (command "_.select" txt_ss "")
- g4 L8 ?: `* r+ d# v3 T$ H; Y - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
5 k+ ^1 p# s7 Q( U - tmp (ssget "P" (list (cons 7 style)))
- N0 X2 G3 e. ~) P0 L; J& j - );setq
* P" J/ n8 T5 e2 a - (if (not (and tmp2 Y+ B! T; L8 k0 g- `8 u: j; x( @1 B
- (equal (sslength txt_ss) (sslength tmp)) ; t$ i) r7 Z, K
- );and: u5 f6 L$ T; m
- );not: }6 }9 V2 w2 n- }+ \! F$ u
- (setq style "");setq then the style varies 2 G, ]- ~% y7 `/ p5 D8 ?- k
- );if
/ H2 @' Q, d( ]% s1 k) @2 l# e - );progn the text type objects are in the selection set
0 I/ F2 J7 l5 W" G" h# A - );if
- N. l$ B9 h. L9 j" ?3 f* v - (command "_.select" selset "")% i! u2 L; W5 \4 G/ \' D# w" ?
- / g+ e( y/ {) p4 ~9 C( a
- (while (and (> sslen ctr) 2 P6 ^) ^% I' M
- go# o2 w; `' s4 C( m
- );and; ~! {" z1 H T$ y! F7 f( m7 ^
- (setq elist (entget (setq en (ssname selset ctr)))). f/ J1 j r1 E
0 ~( c/ _; j$ K7 d9 O4 R: `- (if chk-col (match-col)): l$ h( W, K- v9 V
- (if chk-lt (match-lt))
; Z5 i2 I* `; B7 @5 Q2 w - (if chk-lay (match-lay))2 @( L' ]1 T* e
- (if chk-lts (match-lts))* P4 M6 v) e( p/ c4 L. g8 g
- (if chk-th (match-th))- Y: s& H U# [9 S7 o6 Y8 ^
: ~, C' i3 z6 M" \: T, M- ;(if chk-etype (match-etype))
. D) g, E8 R7 ^6 l0 X; a/ g
0 i" e% ~& O/ E0 d% z1 Z- (setq ctr (1+ ctr))
; v5 c& K) m* j& ^# } - (if (and (not chk-col)
0 C `( V$ H/ o' g4 Q7 f - (not chk-lt)" S5 _' `, x. q: @
- (not chk-lay)9 U+ i6 d- E- }: H6 B
- (not chk-lts)
y% o- N* x; x) E/ b; y" C - (not chk-th)
. f6 W) {* b' c - ;(not chk-etype)
7 \ V# }1 U4 J4 K - );and$ j- f* l+ Y( m( B+ i9 d& w
- (setq go nil)0 y7 P1 c) U9 a
- );if
) B8 p5 Y9 `/ J8 u0 K/ B! T - );while
& T: u9 a7 k" G1 Z' A% T - 1 o- w6 S! {1 ]7 D" j2 Q
- (list color ltype layer thickness ltscale, F) ]3 L5 C- u0 o, _/ Z
- width elevation height eflag 6 ^9 n/ Y* O' s" [( V( R f
- style poly_ss txt_ss; U! B" _: X- G3 j9 V
- )
5 d* z) E1 i% a' r$ T/ F5 i - );defun getprops
# ^$ j ~# f7 L5 S9 u! ?& d - 4 A! s7 R# h* I/ _" ]
- ; This is a speedy little routine to tell whether the polylines in i6 c' d6 Z1 g& U: q- E; ^ A
- ;the selection set argument are of varying width or a constant value. d* m' G. d1 D9 @4 e
- ;Looping through the vertex's has to be done for old polylines when / v* Q/ u2 v! j
- ;the polyline header has width values of 0.0. Basically, in this case,
! t. i" G9 }2 j, l' [7 y/ L' ~ - ;information in the polyline entity header is abmiguous. Width values
/ G( {2 }+ I- E - ;of 0.0 in the header entity could mean the polyline has a constant 4 S# ]) m4 t- K8 y
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
6 k5 R8 \' ^" g! a9 a5 P - ;width.
a! {& C) m: O) H - ;
' v' ?2 k* f# g, |0 d4 F: y( [: b* `$ S - ; It's all in wrist. Err a.., I mean it's all in the 'if'. L5 a! T" l x7 a; G, l3 ?
- ;;4 j7 I6 b' k# }3 [- D9 T
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
8 H& f6 s$ V5 o7 V7 @# J" l' [
- G& W7 s5 B' H% X5 [- (if ss 4 m w9 T( h2 U5 n! {( C* N9 t
- (command "_.select" ss "")
* C: A G N3 g - );if$ I6 M W+ |- d8 }7 ~/ N) _! g
- (setq width ""$ e: B% Q; K" `3 H
- flag nil
7 F8 C. W& [* G6 `8 h w9 i - flag2 nil, I. v p. Y* C0 J8 i, F! b
- );setq2 g& v0 V( N% G" E+ p! f% ]
- (if (not
: U8 b" e# P8 ~" O3 ` - (and ss# L7 v. q) U0 Y% |" Z) R
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
( E, R- _- I0 u - (setq na (ssname ss2 0)
( h( a; e2 B$ Y% C: |* c - width (cdr (assoc 43 (entget na)))
, c' C4 w( c0 t8 K- }) j - );setq
4 X# X/ b! K+ e - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE"), o. o6 F2 C! a
- (cons 43 width)9 e2 S+ ]$ \( ^ [' S& f* d
- );list
# B+ r* V4 u; j1 V/ I& y - );ssget$ a, x- P# l! ~, l( M. @3 u
- );setq
8 l+ c! x6 h( s' w; [$ W& o* o5 | - (setq flag T)
5 W, y; O9 {) B2 G - (equal (sslength ss2) (sslength ss3))
0 G! t( |$ _# q% J) |) T% } - );and
6 s6 a# Q2 f0 { - );not2 Z B2 P, R' A
- (progn
( c% z' g1 d; p1 H - (if flag' r( I4 s' |3 j$ g% Y' V
- (setq width nil)
; ]& I2 v$ w: l8 N }, ~! Q/ x' u2 }+ D - );if
$ @, V! {. u! Z9 }8 I# e: H - );progn
7 C/ n2 a p- W. `2 c4 p1 r( c - );if
. N- K" P* P! U2 J; Q! j -
9 a9 F* }+ |6 t! B* ^ - (if (not
& @% q0 z/ W+ i0 G( Q - (and
0 S. w5 ?3 x6 S8 c w - ss
; J' @) P! B$ p% ~5 p* L' U: W @' o - (progn (command "_.select" ss "") ' M' M# n; R. A2 b* J
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
" y3 P `; i* j% V1 K; P1 [/ _ - )
' Q% \3 @# k5 ?" Q) C - (setq na (ssname ss2 0)! `6 L9 @. ^! @9 X
- e1 (entget na)$ d9 ]8 m0 @( N6 ?7 T9 r
- width_a (cdr (assoc 40 e1))) T8 F) d) V$ t+ a
- width_b (cdr (assoc 41 e1))
9 c( {/ O4 S/ o5 A - );setq2 n+ Y( Y* R' o; Z/ N/ {$ T5 ~
- (equal width_a width_b): D5 n' H$ q' a
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")8 U0 q m( o' {# \2 m1 ]4 j' ?+ \0 m
- (cons 40 width_a)
% n' t2 W- L( j8 Z, M8 Y - (cons 41 width_b)
. t! W6 W) \2 h8 } - );list
" x) M: A1 O$ b ^( } - );ssget7 O2 O' d) D, f& m) S' B4 G
- );setq1 W/ W/ B- k1 Y; X
- (setq flag2 T)
- ?. y7 t( ?3 _ - (equal (sslength ss2) (sslength ss3))
/ ?, }, M' W- G) } - );and
) T% r- h3 q( Z8 M+ i - );not
) k1 ]4 X, s; X- Z- D - (progn
9 \* f5 b/ S7 e3 B0 [ - (if flag2
1 K" u" s, V. i, t( v/ I: x0 l - (setq width nil);setq S5 n R, r2 ~0 O, l* r" g
- );if
/ j( u- J& `4 E0 I - );progn then9 v, o1 ]/ j3 W# ?$ l7 F) M( t0 z$ `% A& W
- (progn
1 i/ a( d' n9 G3 |( Y( u - (if (or (equal width "")4 R1 y$ i+ l4 L! F+ J
- (not flag)6 N6 b+ b1 |; X3 r: L, C+ ?0 j0 K
- );or
?# R# l6 Q, h7 T {& \* k4 p3 `/ f - (setq width width_a)
) k I# C4 f* B7 r! v5 h - (progn8 ]# ~ G" \2 M2 ?9 V% E
- (if (not (equal width width_a))
: Z+ v) ^+ c+ h/ t5 d: ]$ D - (setq width "")4 g) a! \2 c8 e2 W
- );if 3 U& K. V8 p0 h, z; ~- _' [9 ~+ \/ D
- );progn
$ }% |" x( V. V0 _# ? - );if
+ L% h" P V4 c7 v2 y7 W: ` - );progn
]6 E! I7 O7 p+ g' | - );if1 R9 `/ Y% I% G
- 0 S$ X: q5 ?( b/ e+ @: j R: K
- 4 s* k0 B: q: _, |! ^+ }
- ;now for the special handling for old polylines
! l0 N+ |6 Q x- X& J: h4 _ _) I - (if (and width 9 V% w; D' X5 q# [- |9 B5 A
- (equal width 0.0)7 P# }* J& D! ~! r4 d k
- flag2: J& n2 q- k& U' [: T; c
- );and
9 E! J: E6 e0 ^9 q" L J - (progn6 k) z6 d; f0 z D+ E! {
- # t) i1 A, X2 o# `' t
- (setq n 0);setq3 V+ S" r3 d/ M# l( E" F
- (while (and (equal width 0.0); x) o* V% i# F% f* \' z
- (< n (sslength ss3)), A' O- V' m, W2 ^! Q
- );and N9 j* L4 Q6 W* w
- (setq flag nil8 k) i8 o) L8 N/ k3 v7 M8 L
- na (ssname ss3 n)
* k7 b0 @- {1 `/ c8 I1 N - na (entnext na), ~5 Q) f, y$ \( h' w8 D) B
- e1 (entget na)& m$ b9 H! p1 O% q! u0 O2 @
- );setq- i, _! ?- C! s8 D" O8 ~
- (while (not flag)+ [5 o, t: P' p/ R" k; S
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")# I1 q, [$ Y* V$ o; \" U& S
- (not (equal (cdr (assoc 40 e1)) 0.0))
S+ {. e' _1 A) v& @# c6 \ - (not (equal (cdr (assoc 41 e1)) 0.0))" E( {8 }; p$ ?$ ^+ J
- );or% e$ k- ^! |1 {9 C5 g
- (progn
3 x! D' M# G" { X' b! v* S - (setq flag T);; X% E% o* Y, T- S+ W+ W
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
8 B0 }, g- g8 l - (setq width nil)
_* P+ j& P( N5 W - );if& \$ w1 q7 b- v1 ]3 \) B/ ^0 O
- );progn then jump out of the loop
* \2 p1 n+ U) y3 F% I* t - (setq na (entnext na)
2 |* R4 n% p! f: Z+ w2 m, z - e1 (entget na)
s& T" }' C. `5 l! L; r$ \ - );setq . Q8 H8 p6 q# e, |4 L2 h8 x
- );if
) A- ^/ g) i/ F - );while
$ F9 \! P) b1 f7 E5 K4 W - (setq n (+ n 1));setq 1 F9 o$ @' Y/ q+ G: j. f# G
- );while ' V. E0 D5 `! R0 ]- `
-
) C% ^6 _2 ^- }$ O" ^! r - );progn then it's a legacy
4 d- d& p0 D( C - );if ;legacy polylines that may have varying widths
; T% V5 k+ T. G7 E7 w - ' T# x* c; S$ j: {5 L2 g
- (if (not width)2 [! ~, r& ?1 ^& ]5 m6 e
- (setq width "");setq) Q0 N0 j. b5 a
- );if
! P9 G8 n/ Y6 a8 R - (if (not (equal 'STR (type width)))1 X% A1 ?0 A4 ]* J. E6 }1 M
- (setq width (ai_rtos width));setq 8 V7 A9 P) J6 @1 g7 O. q U8 h
- );if
$ ]) n% K1 S, S1 R$ H5 s. A% i1 G" x - ! J# D' x& D, a/ q: T' s' r( J
- width 7 K2 s. s' d, m5 c
- );defun pl_width_getter6 M2 t) ?* n4 O0 g5 b) M
! H, Z) a3 v3 `& j2 S-
, s7 Q/ u' _ M$ l - (defun match-col (/ ncolor)
$ G! s" L5 u$ _) N! J& t, \& ? - (setq ncolor (cdr (assoc 62 elist)))
z6 X9 z* f' A6 a; z - (if (not ncolor) (setq ncolor 256))' r5 r1 k: K5 t4 n
- (if (/= color ncolor)
7 P% X$ \5 ?' e% D& M* P: ~/ R - (progn
$ N4 t) e/ ^& o5 M! n# V/ Z& T - (setq chk-col nil)! ~7 R/ b/ L6 ~
- (setq color nil)
0 ?3 d, r3 w7 l, g - )
2 w8 k1 w9 M3 ^& e. i. G" _ - ); [ m1 j! s& t! I3 o" `0 R, Q
- )
( f8 a1 z* K& I. q! P - + {9 y& S$ b6 C
- (defun match-lt (/ nltype) L, W5 w8 ]* v6 m7 r2 M; j; f% x. y
- (setq nltype (cdr (assoc 6 elist)))
0 f9 a! H% ~5 E - (if (not nltype) (setq nltype "BYLAYER"))
a3 n6 ^3 g/ I/ u - (if (/= ltype nltype)
/ l+ O7 [6 d8 }2 ]1 E - (progn9 u y+ r2 l# i+ x) ]2 u
- (setq chk-lt nil)
$ @5 n$ T, F; T* U, z - (setq ltype ;|MSG0|;"Varies")- R4 l6 j5 [; P2 o9 X
- )
, j0 v+ }* {% f/ I, L% D - )
' k( J. J: S7 E* Y" E' N, a - )( X- w# z3 D. s: i1 X
- 9 s# ~1 E/ R7 {; Z& b
- (defun match-lay (/ nlayer)
/ u9 O2 W2 h7 f4 L6 a. X - (setq nlayer (cdr (assoc 8 elist)))3 n& J- ?3 J7 X+ ]
- (if (/= layer nlayer)
2 l& t. h1 P3 X. A& W/ M( Z - (progn! a+ N8 H1 b. X
- (setq chk-lay nil)% g9 O6 w& c: t) O, p+ l5 R" {
- (setq layer ;|MSG0|;"Varies")2 a7 j7 A; D0 p: v6 D y. L
- )7 r" v3 ?4 d! g0 M; ]
- )
I: j! z, e3 A6 j - )
/ s1 J! ^6 P5 l, l% _9 x5 H - 7 ~8 p% j# ?: E! p3 e2 y0 i- e$ o: g
- (defun match-th (/ nthickness)
5 v' ?. s7 b8 c( a# L$ I - (setq nthickness (cdr (assoc 39 elist)))
5 i% W) l. D# o - (if (not nthickness) (setq nthickness 0))
) ^# M/ x( L3 V - (if (/= thickness nthickness)7 x# e4 P% v2 ^% A8 M) v1 Y
- (progn% I" I: h2 J* C3 ]2 K
- (setq chk-th nil)
5 H0 j6 G% }4 u( Q3 c( N S6 W& R$ B1 ? - (setq thickness ;|MSG0|;"Varies")& o8 w1 l( m+ ?- k) N
- ) O" \2 {. u$ `- W8 y- ^! _
- )
% a5 M) M$ a) q* \+ z - )
4 I! Y7 I7 ~! U+ p
/ C$ n; Y0 G) z- (defun match-lts (/ nltscale)6 Z4 C% U; v, U' O' o9 k; `$ s
- (setq nltscale (cdr (assoc 48 elist)))
# C4 g1 k) T1 h2 I! w - (if (not nltscale) (setq nltscale 1))
! X8 s3 s& A$ a% | - (if (/= ltscale nltscale)* }4 @! V. i7 }' j. ?+ i
- (progn4 N6 l {% J* I/ V/ R3 `8 J
- (setq chk-lts nil)5 h: g: M: }- D/ R Q/ |0 O1 F
- (setq ltscale ;|MSG0|;"Varies")
: r8 ]( E V1 J$ ^6 a - )
. g4 }3 h- d0 E' M8 \! ]1 n% Y - )
" J/ i2 z: k: f6 Y - )
4 O A( S1 `# K% z - ( V5 n) {- v$ A' n) D6 e0 ~
- ;;6 ~! C! x+ P8 s. z% G7 z0 Z
- ;; If an item is a member of the list, then return its index number, else
! [- J' i8 ~' C1 I! e; @! t% a - ;; return nil." C1 p& M" d% ~& D5 T5 \- Q5 ]! D
- ;;) P4 m3 `( L R9 ?
- (defun getindex (item itemlist / m n)+ Y% u. R$ C( D& f6 n
- (setq n (length itemlist))
4 d0 h2 p' F& F& z$ U - (if (> (setq m (length (member item itemlist))) 0)/ T5 x2 s2 N/ t( \; A+ {: Q
- (- n m)
0 O% P( K* U* @3 h5 ~3 [6 t - nil/ w n& b+ l( V- f! }) n, @
- )) ]' K5 w0 D4 J
- )5 Z3 G; b) O( A5 c# I) i
- ;;
( V- ]) B. z. i* W - ;; This function is called if the linetype is set "BYLAYER". It finds the
4 y. l+ k6 P1 Y7 h' |: _' n - ;; ltype of the layer so it can be displayed beside the linetype button.2 c" _6 z1 {# ]/ L
- ;;
& S5 s5 _% h& m/ ]% a - (defun bylayer_lt (/ layname layinfo ltype)/ A6 I& d1 q9 D5 c! {7 ~
- (if lay-idx" ~- s4 v8 a9 m0 J- R5 T
- (progn& C& Y0 C8 c' m, J
- (setq layname (nth lay-idx laynmlst))5 d+ P) t. p/ N- H/ Q
- (setq layinfo (tblsearch "layer" layname)). K4 R' i3 ~% @5 q* L9 r
- (setq ltype (cdr (assoc 6 layinfo)))
( ^9 X4 Y5 N/ H% ]( O; D# @0 V1 x; Q - (strcat "BYLAYER" " (" ltype ")")
" S3 y/ U. r N$ {( x& D2 S - )/ R9 q$ F8 F: V- R
- "BYLAYER": t" ?5 e8 f. T: I+ E% ~
- )8 o' Q1 s+ d- M( k) a
- )
0 f: \7 {) J" x1 T9 _' H - ;;
9 ?3 m# n5 x* t2 N+ y6 b' Y - ;; This function is called if the color is set "BYLAYER". It finds the
" f; M+ u! g9 t& u- s3 n - ;; color of the layer so it can be displayed beside the color button.
7 h6 m: U0 {2 N; c* K4 P - ;;; c% |3 O7 f4 o8 J& w( M+ C5 h& f
- (defun bylayer_col (/ layname layinfo color)6 V# P3 Q, I" e
- (if lay-idx" r$ m& P) v i5 ~: s+ C
- (progn
1 O2 Y6 f1 z# R/ k7 D - (setq layname (nth lay-idx laynmlst))
6 a2 H; Q2 G) J4 A5 {* Q; j# h - (setq layinfo (tblsearch "layer" layname)): ~- P$ k% n: Y6 h9 ]: `7 n X, j% |
- (setq color (abs (cdr (assoc 62 layinfo))))
7 E. N+ t% c' J! ?7 h7 K - (setq cn color)
( l ?' r: A" ? - (strcat "BYLAYER" " (" (colorname color) ")")% O/ E1 a3 j8 K; Z! |8 T
- )
& p% ? ?2 N* ~' E6 W# W' A. q - (progn
( ~$ L. O( K4 v, |" ]) I - (setq layname elayer)
& R: S+ Z& x! X3 T0 A: D - (if (and (/= elayer "")
8 q1 q4 \# ~9 s% f1 C - (/= elayer "Varies")8 W1 ?: f9 ]1 O4 G. h9 s' U
- );and
# G+ Y" K3 l7 P2 y9 O% { - (progn
5 h: c. r$ d4 C - (setq layinfo (tblsearch "layer" elayer))
0 I: p) Q& M' N/ ? - (setq color (abs (cdr (assoc 62 layinfo))))
5 h& p( A# u1 Y9 x& T) O - (setq cn color)/ d) ~5 r8 C( g. d/ B& [
- (strcat "BYLAYER" " (" (colorname color) ")")
$ \5 X: T$ Y6 s! ]% g" x - ); {% e: x% J; ]6 t# A+ N/ e* c
- (progn1 K7 a7 O& P- U$ O; u# }
- (setq cn 0)
" ?: r8 P6 L/ u, P( B' _; m - "BYLAYER"' ?9 E3 g7 L1 A: j9 k4 Y& h8 f, }% C
- )& {& ^, U5 L) F( m- P( I
- );if
+ i5 l# y L( D+ p - );progn$ l8 U, n' I* z4 _3 H! I
- );if5 p5 ~! w8 M" S" }+ f Q
- ). h9 B2 {3 U8 ]( y& ~8 t
- ;;! y* A, N1 J4 u7 O4 H L; \8 u; ~
- ;; If there is no error message, then close the dialogue. u& o, B3 L) K4 c# K7 a
- ;;
/ a, n/ R5 f% t# F u0 ] - ;; If there is an error message, then set focus to the tile6 {* x/ O& s) i4 I$ {. W* p
- ;; that's associated with the error message.
. _+ U6 D" Y2 v) P6 M% x- ~: B - ;;7 L- f; ?) R2 G# H6 ]; L
- (defun test-ok ( / errtile)
0 c1 P, S$ E5 W y1 h/ T$ Y - (setq errtile (get_tile "error"))
7 f! K) I2 x% ^) s* z- M# @& E/ W" i - (cond
- J/ g$ R e0 f- I) z* _ - ( (= errtile "")
* L t* e1 y0 N+ J4 t/ E" J( @5 A' v - (done_dialog 1))
# l, e9 p' j U - ( (= errtile "Invalid thickness."); t: n( V5 j, w6 C0 E- p" o* i7 p
- (mode_tile "eb_thickness" 2))$ e9 B" {$ n' B- p
- )" @0 X+ I" v# `/ i- s* Z; F# Q( S* k
- )& ~; }# p& |# n8 ~3 X8 @9 O8 X
- ;;3 } d0 S u7 q1 B9 d/ b3 u2 V
- ;; OK in main dialogue., C8 T2 Q; n8 ]. \! g6 t# v
- ;;/ Z6 {' i* P$ E' B4 n2 h/ h
- (defun test-main-ok ( / flag)
* @( d0 ~7 \- s2 ]1 O - (setq flag T)
. l( P$ T- B+ n* y) M& s4 f - (if (not (or (distof (get_tile "eb_thickness"))
' G8 f1 N4 @- ?8 R& }1 V- c" f - (= "" (get_tile "eb_thickness"))
0 w, L1 Y$ [+ e5 J - );or
M" R7 z) g% J# B. Y2 Z6 l - );not
+ h5 [' P& i1 q) C# g; Z" ^ - (progn& T4 m" e9 h% S# z9 N- F
- (set_tile "error" "Invalid thickness.")3 l( n) B6 y% y$ z
- (mode_tile "eb_thickness" 2)4 l' |5 \' h$ j8 _8 k) j3 a
- (setq flag nil);setq
: ~. X2 R$ y' I - );progn5 H7 o! T9 p. c- H5 w8 Q
- );if
z" b2 w, c- R* ^4 H - (if (and flag
2 x7 {9 S. y5 a; ~: r! G - (not (or (< 0 (distof (get_tile "eb_ltscale")))" D0 Q _& Q$ s6 x1 p; u' t6 a& I- B
- (= "" (get_tile "eb_ltscale"))7 A; w) N4 [9 x/ d& M( A- g& }
- );or
8 c( j( [0 W$ z Z/ R/ A2 X - );not1 L# U3 e7 I1 \" X. M' }; x
- );and
, i* e2 y+ j6 |" w - (progn
) n# l f& k6 O; |: n9 B - (set_tile "error" "Invalid ltscale."); B0 Q7 i5 j/ Z9 ^/ u
- (mode_tile "eb_ltscale" 2)
3 T" N9 F/ G) a - (setq flag nil);
, g7 g5 D% n E9 v K - );progn then9 ^1 k6 a+ Y* z* N0 L) l
- );if
7 X6 {3 F; K! a& V; W2 x' O6 Y - (if (and flag( S. S J0 f, s7 O6 k* C" I
- ; Don't test the tile's value unless it's enabled.- M$ F6 V- B- Q8 A
- ; We're not set up for the display-only value' @* B5 \* H: m1 y, f8 q# A) L
- ; of "" here in the error handler.
, x6 @; l7 |4 W - (= 2 (logand 2 eflag))9 Y& o, g8 m+ y: _+ i1 g8 Q
- (not (or (< 0 (distof (get_tile "text_hgt")))
3 x+ m: J: o! ? q! l8 U9 [ - (= "" (get_tile "text_hgt"))3 D' D3 n; J( E- ~' Y9 D
- );or
7 a0 L; C& P- o6 x1 c! H2 O* Q: K - );not
( W; {! w9 d: S6 h$ Q - );and
; M2 N3 K# }: _6 `, Y# z - (progn; }& o6 H* g+ v! e; C S" g0 V$ ~
- (set_tile "error" "Invalid height."), ~" @0 g3 }' a; x/ r5 L0 D
- (mode_tile "text_hgt" 2)6 c8 L9 J- h/ @. N8 k8 s
- (setq flag nil);6 b2 L) }9 ^0 J- E2 h7 a1 T
- );progn then2 q, J L/ @/ a: Q% E# O
- );if* n, q7 k2 W8 _( a! N& }0 T
- (if (and flag% S, q3 X% P' ^! _3 S
- (= 1 (logand 1 eflag))( P) P3 J# E' s3 D2 Z, s
- (not (or (<= 0 (distof (get_tile "poly_wid")))$ O- @ U& E3 v$ O
- (= "" (get_tile "poly_wid"))& q Z2 V# j1 D
- );or7 e( O" G1 O; ~# w
- );not& u3 v0 D8 V- r0 y
- );and
+ d" ]* N! Y9 S - (progn7 W7 d/ M j4 M* y2 q
- (set_tile "error" "Invalid width.")
3 H: P5 I- r" H! d0 F - (mode_tile "poly_wid" 2)) Z7 g# J$ L$ b/ F
- (setq flag nil); m3 Y" O* e' A. {4 N( h) p$ b
- );progn then* J# E' T2 y6 Q6 G4 E$ u, ?
- );if
7 s) o8 ^8 }1 x; i# X' h' } - (if (and flag: U7 J; q @' V
- (= 1 (logand 1 eflag))
8 ^6 z5 X# t3 P# ~5 [/ F - (not (or (distof (get_tile "poly_elev"))6 E4 I! g- o% F4 e9 W$ \
- (= "" (get_tile "poly_elev"))
" I1 ?# [( U$ N+ D4 T2 q - );or6 z. q- M, W b' ~. U
- );not
$ ~" y8 _ X1 @, I - );and
]2 x- T* q" ^# U& F - (progn
8 I5 _" w! B3 C) h9 |1 T - (set_tile "error" "Invalid elevation.")
- _+ V9 a5 U2 t4 o. J* Z' v - (mode_tile "poly_elev" 2)
; |6 i; F. e7 T - (setq flag nil)
1 N& d0 H2 z9 c' t - );progn then
( \9 f8 p) ~( \1 X) [ - );if
' h3 C3 p/ u/ d9 v) D0 n( j - (if flag
8 r9 D( L! z6 F+ a) g+ D$ W - (done_dialog 1)8 G6 G3 O+ i5 t) d3 W: s4 D
- );if0 \7 w9 Y2 @; L6 w/ `& @0 c0 t
- );defun test-main-ok4 r) c! q1 s+ F9 v
/ y' L+ A* W) X- ;;
8 {) V* ^ H$ _2 O, s - ;; A color function used by getlayer.
0 b ^4 j5 ]- U) g - ;;0 K) B$ D) c# w& R% k
- (defun colorname (colnum)
i s3 n# x* |6 f3 o - (setq cn (abs colnum))
" `( r: X! }% N0 S - (cond ((= cn 1) "red")
- p' V* B; S L( ^( F - ((= cn 2) "yellow"): |9 M* w3 x2 a4 D; T
- ((= cn 3) "green")
+ U8 G4 r8 O% {: N E4 P1 ` - ((= cn 4) "cyan")
$ @! G% d6 v- U2 \6 } - ((= cn 5) "blue")
- v, z- T8 L9 f. s9 D2 T/ h - ((= cn 6) "magenta")
* x4 ]+ f% B# S- a/ g - ((= cn 7) "white")
9 Z$ r! ~5 O) G4 v( s! Y% E8 K0 f - (T (itoa cn))
: C0 g( O! h# ]- ?, Q/ \5 S( f8 u/ j( U - )/ W* r/ c0 h6 e* `$ ], H! L2 \8 ]
- );defun6 f% l/ ?* r i4 A/ \6 ^
1 D9 z% J$ d. b: q2 n: D4 P( G- ;;; Construct layer and ltype lists and initialize all
; G! W* y7 e. q# O - ;;; program variables:" E' P- p) |; m+ K6 m) ]5 i- H
( L! D4 J1 E+ q1 r/ h# i% k- ; (makelaylists) ; layer list - laynmlst/ Y O. F$ @0 Q1 }; @
1 k+ ?8 G: [7 j4 P% m' ?+ N/ k8 A
# G/ \" E" ~- X- A# X7 R- (makeltlists) ; linetype lists - ltnmlst, mdashlist
1 T4 g& | I2 O! ?5 I
4 T+ _7 @8 S7 e6 {% M: C I- w/ H' A. j- ;; Find the property values of the selection set.
( W: W; g/ ? k/ J, c& i - ;; (getprops ss) returns a list of properties from. ~" X. l0 G) B/ F: ]- H, E, c( }$ d
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).5 w+ v! ?2 }+ O. B+ d+ U* w& y
- z' ~& z! f3 L/ x
- (setq proplist (getprops ss));@rk interesting things happen here N8 g: c! X. T: n6 ~' w
v" w0 H! H1 a# Y6 O- (setq
9 v& O0 j( h0 v/ h - ecolor (car proplist)! P$ [- y# b3 O( x' U) F
- eltype (nth 1 proplist)* B, Q$ F; U7 p# b, a' J: x% x
- elayer (nth 2 proplist) H- o1 k: O$ _& c3 @7 ]
- ethickness (nth 3 proplist)
, ?( k. v$ X6 O3 P" J Q* m - eltscale (nth 4 proplist)
8 L! m/ ?# q' z - ewidth (nth 5 proplist)
7 P8 p$ f9 @3 N( I" q) z( j% n) W" T. z - eelevation (nth 6 proplist)) P; ~. w9 g" I# j/ d3 X9 [8 ]) ^
- eheight (nth 7 proplist)1 f5 U/ F2 j0 s8 ]7 _
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.3 S# B0 p/ i" h7 F, W7 F" I7 n
- eflag (nth 8 proplist)
2 R+ R4 j* S) Z: t- y - estyle (nth 9 proplist)
3 Y# h- l) p. J) L$ C: P$ u, ]8 f/ P* r - poly_ss (nth 10 proplist)3 ?2 a; E' f1 |
- txt_ss (nth 11 proplist)
( ?7 l! V& D# N/ R/ D# A6 D. Y - );setq* r P( s: ^1 D+ |8 U
6 Y: |. V" N( F9 m6 @0 d7 A- ;; Find index of linetype, and layer lists
- S% Q* D N% h' O3 U - (cond9 K7 x7 _. V/ o4 Q9 k4 _- g
- ((= eltype "Varies") (setq lt-idx nil))7 t- {5 ], A( g5 ? l" d
- ((= eltype "BYLAYER")% o. |& p3 G4 Z
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))* m8 |$ \" e2 G' W" p4 S
- ((= eltype "BYBLOCK") z' r9 z! O$ p ~9 I
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
^9 I) n% u0 k6 d - (T (setq lt-idx (getindex eltype ltnmlst)))
+ E: |$ ]2 B5 _! b1 P) C! X3 ` - )4 d% w" u8 q& i$ m2 R
- (if (= elayer "Varies")
$ U5 e$ l2 k2 }: i - (setq lay-idx nil)0 Q) e0 O9 d. w/ L- _' Z6 p+ }* W
- (setq lay-idx (getindex elayer laynmlst)) {; l9 l, I y. r$ ?
- );if
* t+ p" K9 Z$ f! {" F - (if (= ethickness "")
" p- r+ ?5 \0 k# B - (setq ethickness nil)
6 u! g* ~7 y% @4 d2 t6 p; y# c - );if( ^4 s5 m. R7 z+ _: Y2 y
- (if (= eltscale "")3 W0 ]( I" {( P' T
- (setq eltscale nil)
+ w- p0 m$ C7 v6 y, z! r3 S1 @ - );if1 K. c# m* v) _; O
* u: J& D& p, i N' Y" @- );defun ddchprop2_init ; end (ddchprop2_init)
' C6 r3 z9 `0 L3 {0 c* e
1 X/ _3 x2 v2 E+ j2 ]- ;;; (ddchprop2_select)! ^ C' ?- v6 F/ G5 j
- ;;;
% r. |$ Y/ n; z( j - ;;; Aquires selection set for DDCHPROP2, in one of three ways:
2 o* D& V; A$ m, O, l1 v, R - ;;;
L4 Z2 d* \* t5 U4 e, d. ]/ l$ } - ;;; 1 - Autoselected.9 f: h- c! M K9 l6 n8 O3 S& p
- ;;; 2 - Prompted for.& I# e3 @9 M2 v
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )# H" c5 A7 z' J+ F& d6 L0 V
- ;;;
+ ~+ F( ?4 _7 c, z4 N - ;;; The (ddchprop2_select) function also sets the value of the! Q: l0 f* P; q! D% n
- ;;; global symbol AI_SELTYPE to one of the above three values to4 y3 g+ e4 g0 i0 f' O, Q
- ;;; indicate the method thru which the entity was aquired.3 f. z Z j3 @; Y6 C, |7 _
- 3 N" @, o5 {8 y% b$ M$ c
- 5 H( t) T# o2 @% |' }2 I
- (defun ddchprop2_select ( / )
2 D' L q- D" E& B3 A
7 F3 I% e% G3 E- , i9 v0 e# R, V( G% M) u' D
- ;returns only entities in ss that are in the current space.
7 v. L1 M6 p r" Z) A - (defun ss_in_current_space ( ss / a cur_space ss2)+ |$ S' w9 p/ J/ H3 [
$ S" e* T* ~' i# o- (if ss: _& L1 Q! U7 [
- (progn
0 n/ B8 w+ \2 a+ s6 M - (if (and (equal (getvar "tilemode") 0): T# K$ o* A) t$ l
- (equal (getvar "cvport") 1)
% Z, J7 Y& r' J" X$ G6 u - );and " e0 F) V8 X3 ?1 Q) N) k6 r: y
- (setq cur_space 1);then paper space is where we are.- _. e D9 i( ]3 U/ J' G1 l$ I
- (setq cur_space 0);else model space.- _4 \* s( P7 {) F+ B9 m3 \# T# d
- );if
- {: W4 F9 z# f! \ - (command "_.select" ss "")
9 a# C& e% w, Z1 T7 r, R/ A& U0 d - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
& b$ F, L4 j' m7 M - (cond ;;;;;tell the user what's going on.- a2 m$ d( b- K- E6 y8 C9 R2 p1 c; ] j
- ((not ss2) (princ "\nNo objects found in current space."))
( Y2 J4 d2 ~& z7 b) J4 | - ((not (equal (sslength ss) (sslength ss2)))" i, H$ e$ R# x
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2))); U0 I: S1 v4 U# T0 i: [/ i+ H4 t
- " object(s) were not in current space."
3 k! N; G# h) X$ F2 R - )
$ v, K9 h- L3 ?) _" h& A' z - )# X; e. m' Z# K
- )
1 Z" [9 v9 ], r* ` - );cond
. F7 k) d6 `& j6 l+ B( e - );progn then
7 f2 o" m* m9 c1 k7 @% s: d - );if % J$ N" ?4 j' d$ F( R" f9 o
- ss2
% C4 P5 ]9 J; f+ ?8 E3 [ - );defun ss_in_current_space
" V1 [, I' s% r - 4 ^8 Z; @; ?/ d7 O0 r
- 8 R) n, ^7 f( Z; D1 a8 r" m
- ;;;begin the work of ddchprop2_select
' r; N- x. [! j2 l/ J9 e - 2 l% V/ Q% l' S# M# c) t& F
- ;; temporarily restore original highlight setting.
# P7 {0 R e. x/ H9 s - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
$ R3 X/ U, ^" L' z1 Z8 ]5 H - (cond( q& l" q2 K6 \7 c# C) C
- ((and ss
) x2 H" Y$ d" H. z - (eq (type ss) 'pickset)
+ m, T4 A7 y+ ~& K# B8 J - ) ; selection set passed to
4 L* ]' q9 i* O. [, ^# {( Y% b - (cond ; (ddchprop2) as argument
0 O2 I; X8 ]1 F& ~ - ((not (zerop (sslength ss))) ; If not empty, then
8 A) _( {! p$ d# B4 X - (setq ai_seltype 3) ; then return pickset.
: _9 V% O" l3 ]8 E$ X9 k6 l' D1 Z - (ai_return ss)0 ~% A: ?6 D& X F* {# l9 C
- )3 v( S4 `) g d* \
- );cond close8 @8 ^! g8 ?4 W, a _) t
- );cond #1
; ]8 K: y% R8 j2 A- t - ((setq ss (ai_aselect))) ; Use current selection+ ~1 O( V h( m: ^& R2 g
- ; set or prompt for objects
! _# I4 n5 _. A - (T (princ "\nNothing selected.")- U5 r6 x& J1 p6 ] T7 H5 @/ O
- (ai_return nil)* k! p0 ^" A* r9 n/ _5 B
- )
' u# K4 v% V, d& ]6 B - );cond close! q1 q# Q; Z/ b% v4 f% z
- (b_restore_sysvars)$ n. y6 u2 X; Y. y9 }
5 {$ c8 i9 p! p6 S$ W8 c. a, d7 k% _- ;(if ss) F, \8 Z u0 a8 g9 s& T
- ; (setq ss (ss_remove_locked ss))
9 U$ ^$ b; Y/ m _# l7 [ - ;);if
1 X7 w1 P8 X6 X8 M3 W: o - (if ss. g+ P5 ?9 Y+ D% i8 r; y0 g. v* e
- (setq ss (ss_in_current_space ss))
- @/ S6 K/ S+ H1 F0 i5 ~ - );if
+ M8 p3 N8 N4 p! p+ j0 V6 z Y
/ X, y1 G; d* G1 w- ss
6 h+ m3 c3 h# R3 |: Q8 P - );defun ddchprop2_select& u8 p4 G& p! P. y7 T
9 X0 k) X3 D7 I" |$ F- " u3 q, _- r( o) i) H
- ;;; Define command function.' V1 d6 |* g3 E5 Z
- (defun C:CCH ()
' A( A$ C1 ]3 a/ m$ J - (ddchprop2 nil)
' s; g+ J+ @& m6 D$ O - (princ)( h: a9 G8 E& ^, }. d( c( }
- );defun/ a% e) N! G/ f/ e
- 0 x5 Z R) u4 ~. D% J% T
/ p' x3 L0 ^0 C5 r3 y" L- ;;; Main program function - callable as a subroutine.1 V* i5 F, G- u2 s& r% m6 [
- ;;;7 K7 l: n$ s" m
- ;;; (ddchprop2 <pickset> )
. b$ D% M- d/ n) b - ;;;
$ v4 G3 M" E0 x5 G6 d, f - ;;; <pickset> is the selection set of objects to be changed.
; A# ^) T! j0 Y0 Q8 z1 W - ;;;1 [' I3 q0 l- D3 S5 s
- ;;; If <pickset> is nil, then the current selection set is3 a. P. x7 A7 L( ?, E* l, Q5 I7 Q5 v
- ;;; aquired, if one exists. Otherwise, the user is prompted
4 s( v; M3 `- U6 {# B - ;;; to select the objects to be changed.
X0 j4 s) I o, t- Y' v$ N - ;;;
2 r9 g- u7 |- S0 O( D - ;;; Before (ddchprop2) can be called as a subroutine, it must! B& `4 Q; [' I0 `- E+ d8 s# @
- ;;; be loaded first. It is up to the calling application to
1 t+ Y4 }! V' r, @/ [5 ? - ;;; first determine this, and load it if necessary.
3 D% ]' R) c! Z4 v' W" K$ {( V1 N7 E# w
$ ]( s$ h$ \0 i& r, Y$ P& U- (defun ddchprop2 (ss /
5 K8 N3 `* N: k# D
. b- ` s+ ^7 v# `3 u3 @1 j: v- a
2 Z9 Z0 Y, {- n( `) V4 x - add-mdash
9 n$ v" e& i7 x/ v - assoclist2 { H# A/ Z% u+ _4 k4 m) V, M3 k
- bit-70
8 D1 k6 X+ L" `6 E - boxlength
) U: O0 |6 O2 ^: j6 ? - bylayer-lt- ^# u/ Y2 o# T0 T& {
- bylayer_col
p' e |/ n' i. z3 I - bylayer_lt* o6 g+ a+ M9 n+ h& F# Z* [8 g3 A
- call_chp2! R2 H1 c1 t4 X* U! |
- chk-col/ r+ i) R' y/ X- H& s* E, f. N% N
- ;chk-etype ;var removed by rk
+ Z% v: B0 n! W# r - chk-lay 3 Q6 ~. w5 `: H3 G+ t$ H4 i
- chk-lt
T8 p$ Z! T5 X4 d7 a - chk-lts ;var added by rk
5 ]+ @6 Q0 J! B/ D: c0 G u - chk-th( D3 q5 |5 [( r" g [' Q
- cmd! S! R1 D2 h9 }2 I+ H- O
- cmdecho) |, X6 i8 F6 a4 P4 U! p3 o2 I3 r
- cn
$ i/ Y4 }% v" s H$ r2 y - cnum
" [. m2 ?0 ^2 Y7 T, v4 L) X( z7 L; F5 J - col-idx
# Q& h: B# I. r3 ? - col_def
' x/ Z6 G2 _7 s+ q/ \1 U0 i6 w - col_tile* k; C4 d6 O/ s/ g
- colname
2 q; d& Y w' q3 S+ [ - colnum
& u6 `. j6 b0 P) R h - color6 j" B8 i9 P6 s2 [- q n3 b& L7 |
- colorname# E$ p2 h0 n1 Y+ B1 c
- cvpname
' ~1 l6 _9 a/ _& x - dash' ], [* |5 L. ]( d' @
- dashdata
6 W) L/ w( a+ z6 N - dashlist3 g# `; Q( w/ C' C
- dashsize0 c3 a, R, }) P9 k) G) i& B
- dcl_id4 B: f0 Y1 b b) Z( r0 m& z
- ddchprop-err. b2 p+ N U: \( U3 Q" L u/ x
- drawpattern2 g1 V# F. _5 K
- ecolor
x; F5 Z7 X/ H3 Y; \; y - eelevation) _) X' c! U/ A, Q
- eflag
$ |; h' H+ y6 Q$ X. l4 k - eheight. E/ T+ A* t; g7 Y
- elayer- C2 V! L- O; n0 P/ g5 P0 b
- elevation& }/ _% H1 f; H' C! }8 h
- elist
' W H. m8 N0 V - eltscale
7 w! b5 M$ V( @) Z* Z) d& U, h6 k$ e - eltype- ~/ F, C5 ^+ W$ e: T5 }1 p
- en, f* E n; R' V! P0 g6 q) y' s; F
- ename* Y7 I1 M4 r8 u2 y
- ESTYLE ;var added by rk t6 C1 s- d3 z% ?$ q$ D- p) B
- ethickness s& F8 A3 \" N
- ;etype ;var removed by rk
; x8 R* ?2 e9 i& ~" Y+ h6 R - ewidth
6 B; f( Q7 W$ q - fchk
' |* d W+ z5 g - frozth
' ?/ n- w. R4 |/ g- J; A( a7 C - fx" L4 e0 @0 `& y3 C. R) Y2 r7 q
- getcolor
( B( o1 m5 L+ e# U' S% h6 t - GETELEVATION ;function added by rk( M6 D$ y( e* {& L
- GETHEIGHT ;function added by rk" a. I9 }. [+ B! F/ j4 W. e6 e* p
- getindex
# q) M# i' ~7 V3 t. ]. M( w - getlayer6 ^, E; @+ p& g& p5 g1 d% a
- ;get_locked_layers ;function added and then removed by rk
8 g" ]! F" K n$ r! ^% I8 N" O- \ - getltype
& i* w. B' T: L5 R* h8 _6 H4 A6 x - getprops
- @6 N+ K' j7 e: W - getscale ;function added by rk; H& X/ i# W# C, `' \" ^8 y9 S
- GETSTYLE ;function added by rk# r3 R9 ]! E ?2 ?
- getthickness1 `( d x9 B: v' C, j
- GETWIDTH ;function added by rk) ~' j0 K( v1 i" Q
- globals
* q+ R6 t; ^' i1 Z - HAIR_STYLE_LIST ;var added by rk% G% x5 O6 H9 ^8 C& A4 ^# D; {8 N+ v
- height
4 I' ?, f5 T8 N - index
! W$ n- G: Q! S% P - item
9 R8 R \- U1 c- ^0 A - item1
! P! b. ^! S3 s7 c, E9 {2 S/ f - item2
1 l- {; S @% E - itemlist* j, F: ]0 x' e' h- T, B6 T/ K% _
- lay-idx" p2 [% Q0 [3 c3 U* w5 C. `2 |4 ~
- layedit_act0 e% y5 `) N) U( o
- layer$ r9 j, Q" G e) h
- layinfo' U9 w, {& ~+ i* B" s, K0 j3 |2 ?7 l
- laylist" O# `. Q. o1 e6 o+ F: T/ T) L
- laylist_act
) Y9 I+ i2 T* x0 ]- J" Q - layname9 F' A! k6 B8 O5 G5 T# p" T! B, `
- laynmlst
; x# ]2 ]8 K) f0 b. d3 f8 h* g - layvalue
. M: W5 h9 O; S# d0 V4 W+ s - linetype
3 v5 \0 O1 |2 [0 ?/ ?* k( i - list14 v' W" d5 w$ P; d
- longlist
\0 P# P& G( V2 r* R) V* Y7 f - lt-idx
2 X7 ^) G6 F- E7 o - ltabstr% |. D- f W$ T
- ltedit_act2 d7 J. n+ b6 h# E N& {
- ltidx
5 N s) j, n7 c- o0 y8 g - ltlist- Y6 ]2 A% ]- x8 S3 s
- ltlist1" a/ Y% k k4 W0 c |9 X
- ltlist_act1 |2 {( e+ ?& M* I7 H3 X
- ltname5 D0 Q9 s( l& a3 n1 `. s: Y/ m0 n
- ltnmlst
: B. X8 p% q8 A2 }- v - ltvalue" X. ^) G, E4 I6 r) b6 d
- ltype( L7 w# b: a6 m: [3 f
- m( N' G Q1 }" B& I8 M7 u
- makelaylists6 a0 Z1 B2 w+ M9 f5 A5 e+ q& |- X0 K; f
- makeltlists
# b; R: a# A9 B* H - match-col
( V) I- j' Q' n u# e - ;match-etype ;function removed by rk1 b4 B& L1 N+ N$ N3 k
- match-in: a5 E& d X: j0 \
- match-lay) e2 ?5 S& W1 E5 A% m
- match-lt* k9 X7 ?- H; o8 _8 G
- match-lts9 D3 t) f3 v- R% l! l5 h9 ^
- match-th0 g7 I+ ^9 Y1 r1 M: U9 p5 D* q! H
- match_col/ U3 O z- K6 o; L7 S6 @8 t& b# h3 v
- mdashlist }3 g( ~0 ~9 q+ h8 P' |
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
( c1 A: G! t7 a$ ?( @: L k. O - n
: Z& X. u. O% p5 k3 G8 `8 z - name
. V+ F) q2 E8 t- ?. x - ncolor
7 I2 N9 T/ _$ g5 Z8 r. ?! { N - nlayer( \. e! G! m/ M2 P" j* R6 |. ~
- nltype
5 @1 F* O9 W1 j - nthickness
7 ^ e+ |* G* E# q& A9 U - off
. O8 G: j: W4 B- [/ Z - old-idx+ l8 @* Z9 Y" z% n/ L- _3 n3 q
- olderr
; P9 h5 ] @1 W3 J+ C* x - on/ d: n8 u; {% B+ J
- onoff5 W9 g" s( f1 V* [% H) n5 W
- patlist! }0 _. Z+ M: X' n. F
- pattern
' g7 z& c% N { - PL_WIDTH_GETTER ;function added by rk& ~0 B0 [( o( i( e
- POLY_SS ;var added by rk* P# f) `7 n' f. \) h& |% ~
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp
' a4 P$ m% F- H! W1 Y" l& A - proplist
3 V' s+ ?4 A G9 r* w% { - reset-lay
+ e. R$ q4 R. x8 e3 D - reset-lt+ Q" X& T. S( M% J: B4 j- _
- s
; f9 K: _1 E- u0 N" m2 P: \; b - selset2 o. D3 c7 S( p+ M! ?* _, j( N
- set_col_tile
* M/ Z% X' ^( W0 {! S - sortlist8 U- R7 g6 L; B: x9 {* |
- ss; S/ Q5 _8 b- q8 r+ m( I+ i
- ss_in_current_space ;function add by rk.' m, w* I# n H. |1 a
- ss-index
. p1 y9 R* F$ z - ss-length9 D8 w9 [: v" m5 C% B) ~
- ;ss_remove_locked ;function added and then removed by rk.
8 o* r/ D2 f& J, ]# E, T7 B: `3 X% H - sslen
) K: O- F2 h! v% g8 H: \# \- a0 r - temp_color. O9 _# r+ M' @
- templist
2 @0 i& s5 T# i, \# r- q - test-main-ok6 }- a4 I0 \# d+ `& e7 O
- test-ok) n9 t0 f0 S! A0 _7 a. @
- testidx. h3 I& D2 H# U/ y( o% h2 L
- testlay
; e$ Y$ p# t: J4 G" ]3 w - th-value
% H4 _5 V% D- r4 I/ S( ` - thickness
5 @+ o; T* N+ g& Z - tile
/ _6 e+ D8 d' M& K% \$ W8 U - tile_rect) R& Z" P. W; e" }$ \
- tilemode
3 w4 T9 o8 o. A; e3 J! Y" c3 B0 N - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk: |; @+ v6 ]* C
- TXT_SS ;var added by rk
! v+ j) W+ J+ j1 a# E" N - ;undo_init ;removed by rk." G6 B, L0 a# ~7 C, }: z+ a
- vi! t3 ?4 k2 O4 l' [8 d5 [0 v
- vpf/ D4 {1 y1 b; r6 s, \; B; j
- vpldata6 t0 |) v) \3 s! y M% y
- vpn
V6 r; ~7 N W2 I, T. x - which_tiles) t' T/ l% Z6 y7 p$ @; \: o$ Q
- width5 f& R2 w0 s7 ^$ m
- x; W: y2 A3 V: ^
- x1. Q" N. F, H" }3 J
- x2
?; \# O/ Y0 ]8 {, V. ` - xdlist
7 r( C9 v x# f/ e! F7 s# u5 o - y c& U7 |* J0 S+ d
- y1) {0 `$ b$ t# @; ^# c! W1 t+ h
- y2
+ f+ l* J! C" R$ S - )! Z$ c) c3 q0 m6 K5 ]( ~6 X. t
- & {3 F" _3 h& F( k
- (if (and (not init_bonus_error) " q0 N' X7 t" R0 A* o
- (equal -1 (load "ac_bonus.lsp" -1)) - T6 G: s+ T4 F. x" m
- );and
. B" k$ n: c/ d/ L5 q - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
* O: |3 ^4 j) A8 g+ c) z - );if
2 }% ^8 O' t% C; k5 T, \ - (init_bonus_error (list! s1 Z5 F g. \5 k( }
- (list "cmdecho" 0
! e7 X( m& z9 o1 ^* S f - "highlight" 0
* Q8 z. p% F- L5 i - "regenmode" 18 P$ I) o# ~2 R, O
- "ucsicon" 0
9 W% n1 K- T- U9 [2 { - )
' x% | d. S$ E4 k/ N- a' K" o" y - T ;flag. True means use undo for error clean up.
( n5 {8 p, v9 c* v* r5 R% k- o( d - );list , ]% N7 C" H/ g0 T. X; J2 i# T
- );init_bonus_error
( S9 I2 h t e# H7 b4 a( a - G* e( U- Z, X: G& a
- (cond$ W* J7 L6 K) c$ r; }* R$ H
- ( (not (ai_notrans))) ; Not transparent?, Y' i( _& \5 v8 b
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?! H! i; h. d" P# Y( g _/ k
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
p) V; q" z0 a* } - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
) l3 A( F6 H. v* B* N! {- [ - (t , h. k. D/ j8 g4 ?( s( g% E
- ;(ai_undo_push)1 B2 \$ K! i. [' w2 W
- (ddchprop2_init) ; Everything's cool,
5 M9 H' T: V3 v: G - (call_chp2) ; so proceed!
9 X# {' W) t+ Q" E7 ~ - ;(ai_undo_pop)
: t5 N: j5 L3 E, j - )4 c0 p1 J! @4 x8 x% k. A0 J
- );cond close/ I. W. ?! a! ?' u6 w0 U! t+ c. p2 `
4 A6 F; {; Z2 m" O* P2 S$ f, Y- (restore_old_error)
: d9 k! e, }$ H$ W( @+ \' E - ! i2 D. Y+ p8 \) z
- (princ)
% P& K% p. a4 V8 W' q/ t - );defun ddchprop2
- I9 q3 ]# Q8 u) G, T- T - 3 w. H/ L/ ~+ X( h
- ;;;----------------------------------------------------------------------------
8 y& U! [8 D$ E( f& e. c/ f
" ^5 y% Z$ ^) ?- (princ " EXCHPROP loaded.")* @5 l! E% Y5 W' b3 x `: u
- (princ)
9 ^& D1 Z$ k; o) L8 ` - + _! ?% w3 X0 D# y7 B
- ;;;----------------------------------------------------------------------------* p5 Q( Y! n ~! p" r7 X
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
1 Q9 {: h2 v# l - ;;;----------------------------------------------------------------------------
3 }) q& \/ o# O! M0 F4 i* j - ; t6 |! ^) L5 T. [. g$ c
- ; Next available MSG number is 24
( F& G/ i7 u [$ d1 \ - ; MODULE_ID DDCOLOR_LSP_: E) c- R2 b4 g4 }
- ;;;
+ O$ |$ }& h F% a/ c2 R5 K* j# i - ;;; ddcolor.lsp
+ `9 f9 T0 S: i6 Y# I: ] - ;;;
0 E z( u8 M- O [. @& }' E# }( S - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.' m, E* Q- z- r
- ;;;: i, p8 B) M! {
- ;;; Permission to use, copy, modify, and distribute this software; \! U: I6 I. F$ l! w g
- ;;; for any purpose and without fee is hereby granted, provided
% O3 J, G; p& c - ;;; that the above copyright notice appears in all copies and& k0 R9 s# W0 u$ {' Y0 w
- ;;; that both that copyright notice and the limited warranty and
: V- Z# `& D( g - ;;; restricted rights notice below appear in all supporting
% A/ q( N& m) C9 e/ ~. m* _ - ;;; documentation.( c# E, ?8 w) D; L
- ;;;5 N! Z! g5 N" |; R+ Q" m
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.$ K1 u/ f3 r7 w1 o- O& U9 o
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
+ ?9 X9 c! b$ U- z - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
. M0 U. m' R" q) @ S - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
: {3 p' H, i8 C& o - ;;; UNINTERRUPTED OR ERROR FREE.
" j, g( S6 e$ D4 } - ;;;
: A4 i4 s9 W+ o5 y1 H# a - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
+ E. X: v" \$ ?' ^3 o1 P - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer4 O6 K% ~8 L |: J
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
8 ~& k8 q7 t) r+ A! u - ;;; (Rights in Technical Data and Computer Software), as applicable.2 U1 {2 p/ ~# |' e
- ;;;6 ~6 W3 j* {& I5 @; W7 n
- ;;;.
+ ?' Q3 P: E9 s - ;;;
/ j) c( @7 y: |- L" x+ p! @; i - ;;;----------------------------------------------------------------------------
?9 `3 p+ o9 T - ;;; DESCRIPTION0 x, ^9 |, F+ u0 V' `( Q
- ;;;
) r# Y6 v. q- h$ C - ;;; Chromatic Pallete style color selection dialog.& f1 Y7 s& O% _, v, c
- ;;; 4 ?" a: X' O1 K* x8 F
- ;;; Globals:
6 m3 E2 P. I, M2 s - ;;; 7 o& ?+ |& z5 \% L0 b3 B' z0 w
- ;;; chroma_color - Integer color index. The last value selected/ h3 B( S/ T* e8 W% Z/ q
- ;;; by the user in chroma dialog. It is not cleared or reset. w' B5 z0 H m! Q2 [7 }: V
- ;;; by a cancel. Only used for communication between callback
1 t! `1 i+ _- s3 ^ - ;;; functions and the (chroma) funciton.6 c2 c8 D8 d" ~* ? O
- ;;;
$ Q" N. L( p. }$ i* t - ;;; Depends on the definitions for the dialog provided in chroma.dcl.: ^8 T7 H3 {( G; b* r( i( f& ?
- ;;; / z4 q; [" w% [( y& }# M
- ;;;8 h8 P$ b: ~5 R$ ?# p1 D3 X
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma 6 @. n5 n9 e& |4 ]# W
- ;;; pallete style color selector.
% i; T x! q9 k3 }% a - ;;;
9 n# g9 d4 G" X" [& o4 @ - ;;; ===========================================================================
4 g2 Q" @% i0 r. F+ Y" e+ U& [ - ;;; ===================== load-time error checking ============================6 ]+ Z! }% r, N( N+ P. r2 \2 O
- ;;;7 f& J3 Q" o* @1 ~3 l7 l
- : F; Y# x/ @! g- N4 Z0 v
- (defun ai_abort (app msg): n- f) T: [3 A8 d( X
- (defun *error* (s)0 m2 D' e/ C2 T! `
- (if old_error (setq *error* old_error))
7 ~: I0 v, c' F4 D7 J! N" y# z - (princ)
* @$ _; W8 H& z; k. n7 q, n! w - )& E; L4 D1 i, x2 @
- (if msg* b2 c6 L7 s7 w, Q) A
- (alert (strcat " Application error: "
: q2 R+ I8 T& S5 A- F% x4 H& t5 B - app: y( W% C1 K" e
- " \n\n "3 G x$ s& R8 N6 s- K. K
- msg" L# q& d& I+ U3 y* y# u# k
- " \n": ?/ @* V* x- X4 y
- )
& p& e8 i( ]3 u( F& ^/ |) G1 a - )+ a: m8 o5 M. I( }! }/ ~' z
- )8 F" q+ U$ Y2 }; K% J) X8 \9 `
- (exit), H% {, o' L- h2 I
- )+ E p0 O6 g+ e7 V% ~0 |- U
- 0 M) g- t H2 d& Y
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,5 M+ J) ^0 I- R' f0 G- \+ G
- ;;; and then try to load it.; o ], |* t7 {+ j# A& J4 I
- ;;;' \# @/ x j5 U: K' y
- ;;; If it can't be found or it can't be loaded, then abort the+ _( ~1 W& y* X2 J7 U
- ;;; loading of this file immediately, preserving the (autoload)$ l% B6 n) {' t" i$ Y
- ;;; stub function.
9 m4 @0 {! o$ o
0 w) Q' M& U1 `4 g; d- (cond# }6 W! L; j1 f/ ^' }- d+ I
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
) T5 M G4 C+ d2 w! q
" @9 ^8 R( s: t! g- ( (not (findfile "ai_utils.lsp")) ; find it: @1 ]. V r9 i, U
- (ai_abort "DDCOLOR"" ~- M# ^" c' [' T3 `
- (strcat "Can't locate file AI_UTILS.LSP."
0 L/ {7 F; K" F - "\n Check support directory.")))5 S4 E& W- h2 B6 Y
- % \2 o2 V( T" c+ c: g7 ?* @
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
- V9 \4 B! v5 ~. M ] - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))2 u0 M. \7 L: I) J* w+ C1 z
- ). H: X' C6 K- e1 F& n+ v/ x
* Z. E6 e$ L7 G" P1 M t' V8 R- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
; A# F6 \+ k# J& P [ - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
, q6 U7 m: P' G/ U - ) ; ai_abort's alert box dialog.
# d. y6 R) b& _, @2 Q4 W - ' _# E7 f) s& P# F. k
- ;;; ==================== end load-time operations ===========================
) T) A- z% ]' {, b: m5 o( O - ' b' {6 g( ^0 g1 p0 p
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
4 c( O/ V t3 W) i, ? -
. M' f1 J, W' D3 j1 a - ;; Main Color function, called by setup code.
$ p% M8 r* J; L2 P& i - (defun ddcolor_main()8 |% { g: v9 U4 N7 e
2 }/ D) Y3 I6 x: u- (graphscr)9 u' ^) i. z1 F0 f
-
' d. h: l y |' H6 O - ;; Get the color of the current layer, for possible BYLAYER color swatch.6 `, _- T* \& @: E( H$ G) T
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
/ b0 y" F0 R$ z1 _8 } - ) B; V7 R( h& x( z
- ;; Call the dialog here... y# i+ N5 A' F: H6 t
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
) g% Q4 f- y( A) |
* m# ?4 i% G+ P/ q! h5 c5 e- (if clr
9 q/ b4 P& @4 M6 [. y8 q$ B - (setvar "CECOLOR" (citocs clr)))
6 l5 k; z1 `0 @0 G, y( R: u- E9 c. h - )( h$ L- V# b0 q' ~
: E1 K2 G3 l# a& C/ `, l2 X+ O- ;;;
% V. j8 H6 ?5 j* P% ^1 U - ;;; CSTOCI -- Color string to color index- k/ D: |2 Z+ Q! m) A
- ;;; Convert an arbitrary case string into a color index.
% |0 I! [: [8 |% @ - ;;; Returns nil if string is not a valid color.
% S7 d1 s, g: O+ ~' J - ;;;
5 i! v. e0 {( E' Q4 d, j6 d4 V - (defun cstoci (str)
& D5 M& H. K& L: |+ w0 t - (setq str (strcase str))
! H( p `* I; x0 h, @ - (cond. s, s0 M, o) W M( y3 z6 ?
- ((= str "RED") 1)
' g( T9 c% {5 Q% W" F7 O - ((= str "YELLOW") 2)- t( D: a, A0 x
- ((= str "GREEN") 3)
3 _. k6 z( L( }1 I8 Y- u4 g" P8 H- E - ((= str "CYAN") 4)6 I3 L9 E: f' D8 B8 f1 o5 I- \4 k
- ((= str "BLUE") 5)
! t. w9 X3 ]# T- x - ((= str "MAGENTA") 6)$ G/ p" y) D/ m& Q E2 k
- ((= str "WHITE") 7)4 B" J9 v" M0 B
- ((= str "BYLAYER") 256)
1 j+ M( d) h$ y; M. d - ((= str "BYBLOCK") 0)
$ v! Q- w/ k) ~0 f - ((= str "BY LAYER") 256)0 T+ j( E" _8 k
- ((= str "BY BLOCK") 0)
/ v4 P Q! M4 r: s. J% Q# Y - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))0 H# P- C- R1 z' o
- (nil))
2 ]: g! h7 r& c) j - )" ?1 \, j' F& f! y! P4 I% c
- 7 o `' V& t* N# z
% o% H* D$ z" b+ n4 ~. f3 C) q) s- ;;;3 S& `* i- B& U
- ;;; CITOCS -- Convert color index into standard color name.
K4 A- L$ |" z9 K6 T: W - ;;; Will return the standard and logical color names as text& ~% t9 D( I' R% A& D
- ;;; strings. Returns nil for out-of-range color indicies.* m$ @4 \0 F& H& b
- ;;;" o7 B# e3 I4 P o. ]2 m5 e
- (defun citocs(i)1 }. h6 q6 ]8 `, ?" C* C
- (cond
# F5 v8 {2 R$ o5 D+ c o( | - ((= i 0) "BYBLOCK")8 U9 N3 s q2 `9 r. \! f
- ((= i 1) "red")! A# J. L/ W8 k7 i9 |7 l% z' t# }
- ((= i 2) "yellow")
# |, J1 P; f) Z; r( S( q( {; ^ - ((= i 3) "green")0 N5 r" A7 o3 q# Q4 c. [
- ((= i 4) "cyan")' T- Y9 i7 p/ z3 K. b0 E
- ((= i 5) "blue")% ^) @1 Z4 V3 _8 @2 m
- ((= i 6) "magenta")
% T% O& e6 |! O' S2 U. k) @) D - ((= i 7) "white")
I# Q& f+ ~, E/ X# r - ((= i 256) "BYLAYER")
- Y9 w! l P: C W - ((and (< 0 i) (> 256 i)) (itoa i))5 M& \1 \* O' c: l1 l5 n
- (nil))3 [. N6 m/ n2 I) Y/ X7 p5 J
- )# q& a2 ?* Z, \: }* V) P' C
- : V* [& p4 n" ]1 Y& E- a. [
- ;; Start of ddcolor& T* X( c9 T# s
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
3 {# T, @& V% h# y0 k - old_error *error* ; save current error function7 y# a$ y [" C8 g) G @
- *error* ai_error ; new error function. U$ y2 D" Z* a7 G# B
- )
' ~; ^5 t$ w3 I
) B( ]) K, |! n6 t3 }- (setvar "cmdecho" 0)8 p9 M. y" V% z3 w1 l F/ }
- 8 \9 Q# T' h+ p. f5 d4 j) N
- (cond
. I7 B' d# }) x) V; j, _9 W - ( (not (ai_trans))) ; transparent OK2 I) a) E v8 c# P& y0 }8 ]
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
$ t, j$ |* n' t( T( ]9 i6 T- g
* h, b% K) ~5 z- {# y. d- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
2 \; m. L. W; U9 P( j& c - (/= 8 (logand 8 (getvar "cmdactive")))2 Q' e0 Q! U' m9 ]2 y
- )
* h: Y+ D* n! r d. l7 S N3 Z - (ai_undo_push)% [4 a0 s; [4 z+ x- w
- )
! J, P2 [! d" C- b9 i" `
0 }# W$ J) R6 @$ w- (ddcolor_main) ; proceed!
2 I! J) {* I' H - # U) F' O( I" v0 w8 }
- (if (and (/= 1 (logand 1 (getvar "cmdactive"))), n& B! ~2 R2 ], t# |
- (/= 8 (logand 8 (getvar "cmdactive")))
$ e3 ]+ f2 k2 M ] R% f6 O - )- U3 R0 h* W" W* ?1 h5 o. `5 n
- (ai_undo_pop)4 f$ R/ l" q4 L) h+ b8 ?
- )
/ p: h0 H8 b f! j3 z/ K! I1 @ - )) ~% o- D. Z! v8 Y8 S! k
- )
# m0 P6 m \ i/ l5 g8 I3 F - 2 A4 ^5 f$ S: ?$ A b( B6 \8 z1 z
- (setq *error* old_error) ) L' R6 f# w: [* W Q0 U
- (setvar "cmdecho" old_cmd)2 C- b2 Y0 w" R u& S4 X
- (princ)& r s: y% Z6 p0 m5 b+ K4 W
' G; w2 i; W3 w: s- )8 H G* [9 J/ O
' e' X# @8 r0 I- ;;;----------------------------------------------------------------------------7 T+ d% [( P: e' l9 `
& I6 K# S+ M$ {8 U0 x- ?- J- (princ " DDCOLOR loaded. ")+ X' v+ p$ p; n, L$ _5 @
- (princ)
) u0 |# N/ r4 T3 b1 }/ n
0 I3 o/ d+ Y {; D3 H4 e5 _7 q& g- ;;;--------------------------------------------------------------------------;' G. T; s7 ~6 D/ P- ?2 y1 d m
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
+ \1 N8 \9 k& C8 \6 B - ;;;--------------------------------------------------------------------------;1 e8 R' p6 |% q$ `
- ;;; ssx.lsp
$ }7 q4 W" g! j6 Q2 s - ;;; Copyright (C) 1990 by Autodesk, Inc.
" {& I( I4 |, r - ;;; Copyright (C) 1991 by Control Systems, Inc.
{$ ?3 t/ e }# x, p- B- u7 x - ;;;" S: }: G* Y R! y: _( N
- ;;; Permission to use, copy, modify, and distribute this software and its
. j" K! B X* W4 @* _3 c- U - ;;; documentation for any purpose and without fee is hereby granted.4 U3 U2 Y. U8 [9 z \
- ;;;; B; X0 K( X! L8 n. L+ b. B; z
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.% x% B- d* H# P' W. y% I
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
! L: p7 n6 p& N) e9 f& w: j6 Q1 I' i - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
7 O: a2 z4 V& G4 f! s - ;;;, x1 c& ~0 v2 S1 ?; b0 f0 i* [: y
- ;;; Larry Knott Version 2.0 7/18/88
9 ]+ S$ a$ [0 s. b - ;;; Carl Bethea & Jan S. Yoder Version 3.0
) O4 B6 K: D$ t8 B7 G/ ~& Q K) R. F - ;;; Enhancements to (ssx).3 u/ v% ]% p* M1 i
- ;;; 15 March 1990 8 a# a3 T$ p1 i. t' B' U( ]
- ;;;
l" R6 R9 i, s - ;;; ARTIST Software, Inc Version 4.0 December 1991
6 ]) L+ W' E$ B* K - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
. k1 B6 P+ i" X* `5 ?2 P - ;;; use Flexicon menus% t. M; E B+ |, W! _
- ;;;' Y8 T6 h/ o" i G9 G. f5 R
- ;;;--------------------------------------------------------------------------;
" h% P: I( j2 n" G) h! g& S8 g - ;;; DESCRIPTION. A8 E& K2 h4 X4 G/ ]) M! U
- ;;; SSX.LSP
8 m1 N i, [% {/ g; v" `! q - ;;;
1 q4 ?: G4 G+ v5 E t- \$ ] - ;;; "(SSX)" - Easy SSGET filter routine. ' t6 N! z$ d" _! W1 e% E
- ;;; 0 F/ }/ |: a! y! h/ W# i! E# N
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt $ |+ ~% }' B d. P
- ;;; to create a "previous" selection set or type "(SSX)" in response to 0 g, B4 P$ j( V. e" ]' j
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add ) q5 M! L- v. n
- ;;; entities and "(R)" to remove entities from a selection set during
. w; X+ Y4 f& O6 \& Y5 \ - ;;; object selection. More than one filter criteria can be used at a
& e& \# ~: F0 x4 S4 S Y - ;;; time.
! A3 i$ n5 H& }+ [4 v: r' F - ;;; : }* _% {. U& V0 H) {8 Y
- ;;; SSX returns a selection set either exactly like a selected
% E1 `5 K8 s. G: m - ;;; entity or, by adjusting the filter list, similar to it.4 C! R) A/ Y" p: o i4 ?
- ;;;+ l7 T/ o5 z3 f& c, U. p% H- x: J8 @
- ;;; The initial prompt is this:
Z6 j" w% h, [+ e$ c" V b7 r - ;;; 8 m# ^7 n+ `$ K: ^* p) C
- ;;; Command: ssx. w5 s" j* T. d' O" w- P, Q) D2 _0 ?
- ;;; Select object/<None>: (RETURN)
4 r# z3 @1 m, _. u - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: b2 ?2 w1 k3 A- o; I# j) ^
- ;;;
' Q& x! S& E+ `9 _, g - ;;; Pressing RETURN at the initial prompt gives you a null selection
7 p+ V- `' \ b$ T/ ]! i3 I, i - ;;; mechanism just as (ssx) did in Release 10, but you may select an . q, w7 ~& {$ k, }3 ?
- ;;; entity if you desire. If you do so, then the list of valid types 2 ^5 x8 \- B; g
- ;;; allowed by (ssget "x") are presented on the command line.
+ y& u) T8 L# {/ K - ;;; 0 B6 W. f# y0 Q+ H
- ;;; Select object/<None>: (a LINE selected)
) X* u& z" m, c - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 0 M P0 M$ z$ `3 T' c6 ^3 s# R3 k/ i
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
2 Q; D5 d9 L2 e; X6 S @( ~* w - ;;;
, p" [# v- |: m: ?; X+ r; a1 }& [ - ;;; At this point any of these filters may be removed by selecting the ( h; o3 _; m8 l1 Q. \1 V
- ;;; option keyword, then pressing RETURN.2 m' ?1 f3 q4 e, L! D8 r* U- e8 v
- ;;; 6 @, _; ?# T6 b7 \2 y
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
- v/ z! @- G u- n - ;;; * [; V; j$ ^3 e+ I r% I
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))0 b' z5 J2 @8 @9 T0 l0 w4 X H
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
! N: t% \( J2 f0 n1 \ - ;;; 0 @1 O& U t+ l2 \
- ;;; If an item exists in the filter list and you elect to add a new item,
5 l$ z5 L- x5 P$ f - ;;; the old value is overwritten by the new value, as you can have only 2 F$ U4 n" u. g! ~3 [- _
- ;;; one of each type in a single (ssget "x") call.$ {. r: Q+ M0 V# [4 O7 N' k
- ;;;
) m4 I+ C. G3 m - ;;;--------------------------------------------------------------------------;
7 ^ q4 _) n* R. u5 |+ a5 v - ;;;
3 s2 d4 p) m5 M8 \ - ;;; Find the dotted pairs that are valid filters for ssget$ s8 J- ]. e. g. W5 I# Z
- ;;; in entity named "ent".
- t+ W+ y: I6 p! T" S* k - ;;;
- M6 `2 |0 J* ?9 y - ;;; ssx_fe == SSX_Find_Entity0 \" u, m$ Z& {; }
- ;;;
+ n2 I# O% M; V& g2 b! _ O - (defun ssx_fe (/ x data fltr ent)1 B( ~, N% N% s ]3 D0 }5 a0 y
- (if (and (= flexvar 1)(/= t2 "Pick"))
; m9 U1 ^, a0 x0 m: d - (setq ent nil)
2 p2 V- b4 F( g) W8 }7 {, x4 n - (setq ent (car (entsel "\nSelect object/<None>: ")))3 Q3 I( _7 H4 A5 Q
- )5 ?+ X8 N1 D- c0 Z3 F) T7 k
- (if ent
, E/ c( N* B/ H$ K# d8 @7 x* J - (progn
5 _0 J7 { _" R$ v, y) \% Z - (setq data (entget ent))0 Q1 x- ^7 o4 D8 t+ k0 C3 _7 \
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
& r% a8 o3 k8 _3 `; z - (if (assoc x data)
" M+ k: _# q; K* B5 q, f/ } - (setq fltr
) y& ~! f! u3 k3 f% F# K - (cons (assoc x data) fltr)
6 w1 E0 Q P4 f+ f4 D/ R% p - )
* Q; u" @# x# ]) H# ^ - )3 j2 M" p) H; H2 V1 j: k
- ) * j5 L0 [5 d; l2 ^, ~1 J
- (reverse fltr)
2 N" m$ ?8 d; ~3 G - )
- d. m& ]; A9 V - )
$ F- f/ z2 t5 l' ]8 z - )
* K$ s: V( \- Z6 @! [4 ]0 t4 |/ q - ;;;
- c _. U8 }* q0 W* C2 c- c7 ^ - ;;; Remove "element" from "alist".+ P' C# F$ \9 s# @
- ;;;5 G' i6 @5 s$ v) x# m) V. }9 a( z
- ;;; ssx_re == SSX_Remove_Element
2 A7 J7 P# N9 E. c - ;;;+ p- _- m9 @* r+ i+ w, U
- (defun ssx_re (element alist)
# D+ l2 H. l2 G - (append# }; u$ g( C$ T" z7 A) H+ X) p
- (reverse (cdr (member element (reverse alist)))) A2 l8 Q$ t6 Y% H" e# g6 A
- (cdr (member element alist)) ) ~) }3 s5 [% C6 i& ~: u
- )6 e7 j4 S( @# w. L# T: F
- )
* w+ O4 e# }: p9 U& j% Z r# d - ;;;3 v- c( X; k# N6 L1 _" F3 s
- ;;; INTERNAL ERROR HANDLER 7 E% S' v3 I% g5 J' {9 [1 q
- ;;;9 [2 H. [" y/ q; ~; i% }" x! x
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs' J8 t. O# V* z' j
- ; while this command is active...
- I; D. {1 A4 D$ q - (if (/= s "Function cancelled")( ~' x8 Z% Q: @ R
- (princ (strcat "\nError: " s))
0 W/ s) b6 n. M5 T2 S2 N - )
6 W* C: @ f j- O1 P - (if olderr (setq *error* olderr)) ; Restore old *error* handler
2 i, j9 m: b$ ^% f - (setq flexvar 0)
4 {8 |! U. @# {3 s - (princ)
% r+ Z9 f, h+ u O3 J' T - )
9 ?, ?& a% ]5 B' s5 ?! S - ;;; t: D, m8 I$ {& e7 `
- ;;; Flexicon call routine* K" |$ G9 g. F, V! Z8 \ z
- ;;;/ H1 h5 C: _# K
- (defun flexmnu (a)
( h) ~0 y6 r' m8 {1 l - (if (= flexvar 1)
$ r1 d) D# X0 h5 u6 m - (command "FLEXICON" (strcat "FLEX" a))) P4 k, e: k+ H5 X9 c
- )
' R0 q; f4 w: ? x( r/ m - )
& {8 [ h8 K! r6 G* Z5 g - . b' ~/ d+ H/ y7 l* g) V
- ;;;
' j1 Q1 F( g1 J3 ~' C0 ^4 r3 ]" g3 A - ;;; Get the filtered sel-set.2 [. p8 h: \* \" b
- ;;;
4 W9 `7 E/ J- k4 b/ l- \ - ;;;! r' A& ^9 Y% K+ j, p
- (defun ssx (/ olderr)7 C$ P! _. ~0 p1 ~9 o- q
- (gc) ; close any sel-sets
( N0 Y2 L; f& C6 c+ A4 \. \ - (setq olderr *error* 0 {7 h F+ H; _
- *error* ssx_er
0 z j6 X4 t8 ? L; j7 k - )
. ]6 y! M) i) L - (setq fltr (ssx_fe))
. Y; X, h1 w" }1 h+ I% ^- y - (ssx_gf fltr) 8 ~8 `/ v/ w3 }9 v4 b% k5 P
- (if (= flexvar 1)7 u; E% Z @) ~: H
- (progn
' ~* N( g, I7 v& ^2 o - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")* \1 ?7 ?4 J1 Q- |
- (flexmnu "EDIT"): {% \( H' G9 Q2 s3 A: y ~% }, @* S
- )
/ u6 l4 X4 |9 ]9 F - (command "p")
+ w3 H1 m2 M6 W7 B" g/ k - )0 R0 ^4 h: o8 _4 `% d8 {
- (princ)1 C9 C2 r5 [$ ]0 Y
- )* o2 N& I5 \, V z4 o) H; g
- ;;;& n6 ]6 g* t t* j- G1 ~
- ;;; Build the filter list up by picking, selecting an item to add,7 K- _* @; v2 z# W
- ;;; or remove an item from the list by selecting it and pressing RETURN.
2 M# D' N" ?6 i! u - ;;;
9 T0 o5 x( X4 f% a, C5 \5 C - ;;; ssx_gf == SSX_Get_Filters, {! g' u) Q6 I8 o8 j
- ;;;2 K; R7 @5 ?3 N) t( T
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)# K v* H+ c% D- T8 W
- (while / N, o- q/ l4 L9 k/ m" C( Q
- (progn+ y! k; p! Y6 v# C" Y
- (flexmnu "SSX")
% @: @8 H, M0 N$ d; M) X - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))$ U2 P, X% p6 o1 j
- (initget + m9 ]1 R% @1 E- _
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")2 f5 _4 Q1 E0 j7 n
- (setq t1 (getkword (strcat" a* u* e/ ?7 Q( W
- "\n>>Block name/Color/Entity/Flag/"
: l$ Y7 [! R$ K% ~ - "LAyer/LType/Pick/Style/Thickness/Vector: "))) & X2 z4 R2 R: S' z, O2 x
- )
9 E1 J& A( {0 l$ j) S - (setq t2, c2 g* Q0 Q' C! t
- (cond
' \' r' X% G" |7 b - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
, q# k6 a6 k M. i/ E - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
+ I2 ~- j3 ]2 |5 | - ((eq t1 "LType") 6) ((eq t1 "Style") 7)
0 ] X, i8 \! ^ - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)2 V1 v- H o, |
- ((eq t1 "Vector") 210)
. K. |+ C, I8 n& E# S - (T t1)
5 [5 I9 @4 Q( `! b - )
" U9 t+ v: M+ Q - )
1 V- a V8 }2 z; m# } - (setq t38 M% L8 I: r. y# k- n( J& r1 H$ g
- (cond
% X* g/ ^$ t6 g; t$ s1 b9 J$ h) \8 B - ((= t2 2)
6 T0 A. U! c' T4 @* a4 H - (if (= flexvar gtads 1)' l, `1 o9 Y: `! C+ K. j
- (progn6 n2 i6 O W+ `5 Y/ K" D
- (prompt "\n>>Block name to add/<RETURN to remove>: ")
. i2 d4 ~% D" `7 q( ?+ X - (gttable "BLOCK"): u( J# U. T7 k
- )% Y7 p) B$ F& j ~
- (getstring "\n>>Block name to add/<RETURN to remove>: ")
- x. y9 Q) V- ]; q - ). k; l1 m5 e2 \1 ~( E8 ^6 y" y8 i
- )
9 [: g; m, g& W4 u5 o - ((= t2 62) (initget 4 "?"); A3 J; s0 z% a$ ]
- (cond; X3 I) c8 ^) i$ J
- ((or (eq (setq t3 (getint * S+ b* @- ?6 I' w$ H
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
4 H: s$ B1 o" m: B+ d/ n- _ - (> t3 256))
6 W. I; G% `4 z& ^ - (ssx_pc) ; Print color values.
8 U; w3 c z' @* E - nil4 C3 }. }' _2 {2 O7 m' y% \6 I( ?
- )
4 f4 c7 o' p; V i - (T
( ]3 ?- e) d6 q ^ - t3 ; Return t3.
q' k7 ~1 N/ `+ f - )4 ?% h, h. k' _+ R4 q
- )' J# d3 \- O. R ]* f
- )
' e0 ~, N- H/ `* n1 q$ |* \ - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: ")) ^$ {- i7 O# }- i! Y
- ((= t2 8)2 ?7 K7 {( `1 d
- (if (= flexvar gtads 1)
% q1 y5 n2 n" b8 i% \( E' V n - (progn
5 c1 Z; C2 F6 Z# ~' Q5 }) k( Z - (prompt "\n>>Layer name to add/<RETURN to remove>: ")" d/ p) {0 ]) Y7 E6 f9 W
- (gttable "LAYER")
% e* b8 A6 K/ ~7 E+ | - )
. b! X6 z. b1 Z& @) ~% X1 w( c - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
& d3 @9 x+ q8 H' E0 x5 U7 Y - )
4 I* {1 Z, p+ s/ D# N( d1 d - )
9 ?2 ~4 y! ]' C3 R1 x9 j# y - ((= t2 6) 0 v% Y9 F/ e% o1 V9 ^$ v
- (if (= flexvar gtads 1)1 H; d$ n n; G3 ?! W
- (progn9 Q9 m+ O0 N3 d- C9 |& C5 X. B+ V9 z
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
* f& C( p# @9 i& Q7 f - (gttable "LTYPE")
+ }& t% [$ \# z# u2 }. z - )5 g: \: D6 `! Q+ z! R
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
0 w7 u" G2 r) T2 z' h3 x - )4 N/ v. _$ U c- l$ j
- )
) S$ K7 R( L( a# `* s: h/ t - ((= t2 7)
4 |; D. n0 A: c& |2 ~$ `$ q8 } - (if (= flexvar gtads 1)$ X" X& o9 V# [- l5 c; i
- (progn( \+ n; |+ G, {: ?1 Q4 E
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
7 W+ @7 Y; v5 R+ U3 I& Y - (gttable "STYLE")
( m, Q7 w0 f5 H# [( u) ~ - )2 P# G5 N0 }4 q8 X2 T. E
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
1 }4 \% M) D0 r% Z - )( i9 z& A/ i, M' i* @
- )
* J2 e7 I! m J2 Y1 [# N - ((= t2 39)" U3 M# y5 T+ T2 M. o+ Q) X' D
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
2 s5 G5 Q: G4 s4 S/ Z - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
9 [% v3 c E$ U: X6 A* R6 ^ - )" S, m; y1 b& l _2 Q8 {
- ((= t2 66) (if (assoc 66 f1) nil 1))! Q0 ~9 M! K" y" y/ |/ z
- ((= t2 210) 7 f8 I4 e/ P9 G8 I
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
# Y3 O( j% d& H! C/ I/ W( x - ), G" ?7 m3 k3 p( `! c( r
- (T nil)
/ N+ n# ^8 @9 o6 ? - )& {6 [9 u' ~2 c( ?# f1 v
- )& v& J' N+ U) q5 O0 p
- (cond
0 [; U0 o: c$ D% q - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
: c: U6 @5 V+ `5 I( G8 c \ - ((and f1 (assoc t2 f1)) ; already in the list& t& y6 k4 b S( w$ o5 P3 K
- (if (and t3 (/= t3 ""))! d& _6 t! @5 t. C% |* u
- ;; Replace with a new value...
% M3 s$ s: P# S! K3 V - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
0 T* `' e- v ?- h - ;; Remove it from filter list...
% u& D& O5 v0 p. r: Q+ `) g/ }/ @/ I+ [ - (setq f1 (ssx_re (assoc t2 f1) f1)) 8 [; p* D' q/ P" b3 Z
- ) 9 L/ C$ n! T+ Y& c/ h
- )( z5 ^8 o' x2 O0 }8 b
- ((and t3 (/= t3 ""))
% F6 R" f! W: O$ }% q/ ^1 P" b - (setq f1 (cons (cons t2 t3) f1)). u0 ~: J! r6 r& E: t7 b
- )
5 |, v/ B, R8 @ c6 w; X$ |+ g - (T nil)
; A: z- C8 Z! i% v - ). ~# l4 U8 o+ d) ~2 x; ` m/ m
- )* N- E* y @. I
- (if f1 (setq f2 (ssget "x" f1)))
6 O+ b9 R. c$ {8 B. P: W' x - (setq *error* olderr)& {. d7 R' ]' _8 Z6 Q( p9 T) Q
- (if (and f1 f2)
* d; ~1 p) {/ w# ^' A' | - (progn; T/ t8 G5 g$ C2 `: }) @% y! @
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
8 |" f D! X) [8 e! a9 R - f2 3 m7 `9 Y2 U9 G6 U) i8 f
- )
3 k. ]1 m1 O5 g3 V; b. F u - (progn (princ "\n0 found.") (prin1))7 F- E9 g, k5 u& ^& v0 b
- )
- z: o. Z( {# R. J K - )9 V' U/ G/ O: F! C9 d
- ;;;* x; o# A B* m0 x: Y7 Z( z8 Q
- ;;; Print the standard color assignments.
9 l' M. s, \5 c) {, Y - ;;;9 Y& O3 [ B7 l+ J- S& f# C
- ;;;3 n0 S P- b6 k* E/ W
- (defun ssx_pc ()
, N7 c# ?8 g; [) U1 |- K - (if textpage (textpage) (textscr))
. Y# C" p9 z! l1 \ - (princ "\n ")
7 w) R6 _9 [0 a1 v - (princ "\n Color number | Standard meaning ")
* q' ~0 b9 \1 e$ T3 j' R - (princ "\n ________________|____________________")
" p& i$ R2 V8 b7 n% W - (princ "\n | ")6 P. [7 a z2 K( I/ U, s8 Q' Z
- (princ "\n 0 | <BYBLOCK> "); q* l, u. T! D
- (princ "\n 1 | Red ")5 @7 v, [5 j0 \; O6 d( }
- (princ "\n 2 | Yellow ")# i f$ q) A5 i0 W$ A+ @
- (princ "\n 3 | Green ")0 u( S1 K1 ~9 H; f3 q* J0 U
- (princ "\n 4 | Cyan ")
" h4 n _1 o' N( r - (princ "\n 5 | Blue ")
7 l1 { I5 m, q: ]& E3 @* Q - (princ "\n 6 | Magenta ")
; r, y3 _ c: p% H - (princ "\n 7 | White "), G+ ? s9 f( ?. h9 k2 U
- (princ "\n 8...255 | -Varies- ")' P) z' g( F0 l" D& @+ U0 b
- (princ "\n 256 | <BYLAYER> ")) }( y; T5 N s
- (princ "\n \n\n\n")
2 c& T! B7 L% F* K3 f/ h" w - ), d1 |/ I/ Z- J$ o
- ;;;2 ~% y% d3 E! k5 n+ N# Q4 {: n! @
- ;;; C: function definition.
+ p$ _. [/ D i - ;;;
- K5 u* V6 k( e - (defun c:ssx () (ssx)(princ))' B; x$ S7 o7 U
- (princ "\n\tType \"ssx\" at a Command: prompt or ")
, N2 |$ n& G: q& l1 _' e - (princ "\n\t(ssx) at any object selection prompt. ")! _. i$ s' y B
- (princ)1 X i' }& x& h1 N: _/ U
- 8 A# C/ L6 x' q+ A0 |8 Q
- ;;;--------------------------------------------------------------------------;- d# l# q+ U% j( v4 R& a2 }
- ;;;--------------------------------------------------------------------------;/ x8 F# f ~# \- N, o
- ;;;--------------------------------------------------------------------------;
5 [' w7 }( \8 f! q" b6 Z - (defun S::STARTUP ()9 e5 a8 u. R$ ~# G3 y x' O
- (setvar "cmdecho" 0)6 m$ n- P- ^6 S, \/ i* ^
- (setvar "cmdecho" 1)9 ?+ r. G3 N' [# N# Z
- (setvar "LTSCALE" 10)
+ n9 p8 {, g4 T, f; x; Z- L - & Y2 F3 q9 q Q6 b, j) J4 y5 W
- ;(command "_load" "chenKH.fas"). N0 q0 X( O$ K# W1 X
- ;(command "_load" "ctcot.fas")3 i1 B) v, a @6 k: m
- ;(command "_load" "damdoc.fas")2 ]) ^1 ^- C% k; j0 Z$ M8 i9 g `# r6 Y
- ;(command "_load" "ghichu.fas"), f# X( l8 i# N$ {! V) g* t
- ;(command "_load" "hamtutao.lsp")
; |) H# Q* U- H# O - ;(command "_load" "KHOITAO.fas")
7 J/ K5 W0 m- V3 } - ;(command "_load" "KHthep.fas")
# w" k$ Z: A0 C1 ` - ;(command "_load" "mbmong.dcl")5 @* N& k5 \" Q! O3 T+ Q7 Q2 p
- ;(command "_load" "mbmong.fas")4 R9 t+ E0 H% t8 J# I/ ]1 u( K4 J" m
- ;(command "_load" "mccot.fas")' c" y4 j, t, z# V5 {6 O
- ;(command "_load" "mcdam.fas")9 v. ], h5 N) b( N& O# c' d5 D
- ;(command "_load" "mcmong1.dcl")
' C5 Z* h$ A0 n7 _. j8 {" j+ S8 x0 P' V - ;(command "_load" "mcmong1.fas")4 M: f# Z! [, g7 P7 i" l3 o
- ;(command "_load" "mcmong2.dcl")
, q( @( @; R- E) L5 ~ - ;(command "_load" "mcmong2.fas")$ W, ^( L9 S) A8 O& v; L7 x
- ;(command "_load" "mcmong3.dcl")7 _" K/ W! W. G+ }
- ;(command "_load" "mcmong3.fas") N$ F v& P5 e
- ;(command "_load" "mcsan.fas")
, N/ y( E4 p$ ?6 y, A) }+ F' s0 _' I - ;(command "_load" "thepdai.fas")
7 D E8 A, b, y- ~5 g8 l$ d - ;(command "_load" "thepdoc.fas")
7 j: [% _ ^* H% V - ;(command "_load" "thepmb.fas")
2 Y" U% r9 T1 c, S, I+ f, A - ;(command "_load" "thepphbo.fas")
- x$ j$ H5 o" Y2 W0 p* T$ _, Z9 f - (command "_script" "thongso.scr")! f: y$ j ]# z% ^7 p; Q: u
- ;(command "_load" "thongso1.dcl")
* }* P( H* {1 N$ X; p - ;(command "_load" "thongso1.fas")
% X8 Q! ?8 h3 G7 c1 y& e, v; [( | - ;(command "_load" "thongso2.dcl")0 u- L& o9 w) r: d3 q1 D- W) M8 v5 p
- ;(command "_load" "thongso2.fas")# C8 L4 _2 V) q$ K! g" ?" C
- ;(command "_load" "tietdien.fas")
. X: V; R5 c: Q: ]2 c% q0 v3 q- a1 R - ;(command "_load" "vehan.fas")# y9 G7 e& ?0 I' H r+ L
- (command "_load" "phamDuy782006_TKT.lsp")
, D- q0 t2 H: } - (command "_load" "phamduy782006ganhtd.lsp"); I/ Y0 G6 C2 C& J# ?0 P
- (command "_load" "phamduy782006ganhtds.lsp")
2 m. ?; m. E- @ - (command "_load" "phamduy782006htd.dcl")) E$ e+ @6 u9 `0 O
- (princ)
) A5 ?% G7 C( \/ M6 [ - )+ l5 U$ N. u. p
- * z0 q/ _$ y3 F4 Q8 r
- ;; Silent load.& o& l+ L2 c6 F# K X5 n( ^
- (princ)
0 h) X- L* k W5 e - . ?& P. U# X" w: i( e( v
! i: J1 N! N- g) n- ;; Silent load for the Express Tools.0 d* {# A( C4 B) n" c" k
- ;; Altering this line will affect Express Tools functionality
5 y4 C' T: s9 i! d0 J/ H, K6 t - (load "acettest.fas" (princ))
5 p4 X1 R6 d6 n" v' w - �32
Sao chép mã
1 E/ \" |$ G, v; a, i4 A# I% L00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
+ p+ d4 @. T% A% G |
|