|
|
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 |
- ********************************************************************************
/ N ]; ^: w" {, L0 e - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
5 }0 _5 K5 N Z. G1 T - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *7 N/ P0 a0 d- p! c! W5 |
- * Suu tam & Soan *
7 k( I' w8 ^' ~9 y5 I% w9 M9 a - ********************************************************************************
( B# H3 w9 P2 ~! F/ E* o' t' r+ ]' h - : k7 f; T- m! O0 @- W+ ^
- ; Next available MSG number is 104' i& |8 y/ g; y g0 A1 O
- ; MODULE_ID ACAD2000doc_LSP_
- V* F6 ^- k n4 H2 u+ f - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
" \4 q, t" {/ g' O' d - ;;;. F7 n% D7 S" b s
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc. K7 c2 n. y2 P# J- y- n1 X5 K
- ;;;
5 m7 z8 L5 V3 Z' i" \9 Q - ;;; Permission to use, copy, modify, and distribute this software
4 r/ _( v" s8 l5 M - ;;; for any purpose and without fee is hereby granted, provided5 k+ |, t) d/ ]4 V) T' }6 l( f$ p
- ;;; that the above copyright notice appears in all copies and
" Z) m7 z( `) b( p4 l4 N! E! | - ;;; that both that copyright notice and the limited warranty and% @8 z- @$ n# F
- ;;; restricted rights notice below appear in all supporting: U9 x& U2 [8 \( |7 J
- ;;; documentation.: R' q- q+ T) w$ g5 }
- ;;;8 _& w3 D0 [! n$ j1 ?% _. Q
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
/ i$ b9 C0 u3 A f3 b7 \ l, B - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
9 o- m3 u; Z1 f D- d3 C/ F' D, W3 `2 O - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.+ O8 u) K! Q* p7 q( j3 S2 F
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE: i2 B$ m! w3 H3 j: J
- ;;; UNINTERRUPTED OR ERROR FREE.; J/ f( c4 S* r9 D
- ;;;3 G4 c7 `4 N' b* D( O, z# s
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
' |; f* m# F( ?, z - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
8 c9 O, Y3 o) R6 { - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
3 {* Y7 {/ r+ D, U& W. H2 j - ;;; (Rights in Technical Data and Computer Software), as applicable.: L) v6 R, N4 S2 F! @9 y6 n# ?
- ;;;( \9 ]8 s& E/ O, a
- ;;;.; T: S, V) H) I7 p% D3 }7 f
- ;;;! e- s! G9 B! V y
- ;;; Note:" K$ ^% I0 n+ _5 L1 L
- ;;; This file is loaded automatically by AutoCAD every time
5 ]9 d4 E" `8 b( B; h6 g2 V, ~: { - ;;; a drawing is opened. It establishes an autoloader and f6 X. n: {6 J7 j( O
- ;;; other utility functions.
, X! R( O4 f j! _" n. g2 i$ s( T - ;;;% ?; `: ]7 ^5 e' n3 W
- ;;; Globalization Note:
0 ?0 o5 w- {$ ?6 k% b i. e4 W4 o - ;;; We do not support autoloading applications by the native " l! r, ~: F8 P
- ;;; language command call (e.g. with the leading underscore
& o8 @8 f9 k8 g" Y. F - ;;; mechanism.). }/ @" k3 c' R4 M g- L2 t7 q
- ; j2 `- H6 m; q. \
- & x8 V }$ Z8 C$ f& {' X
- ;;;===== Raster Image Support for Clipboard Paste Special =====
& l2 L# u2 r. x" X - ;;# i. z. H4 M; ^- _% z6 Y
- ;; IMAGEFILE0 u/ `6 m n" c
- ;;
% k. L% e( M7 {! ]7 b* y z8 |# u - ;; Allow the IMAGE command to accept an image file name without
! m3 J& I; _/ O% N, C W - ;; presenting the file dialog, even if filedia is on.% ?9 d4 N9 ~4 Y+ z: ~
- ;; Example: (imagefile "c:/images/house.bmp")$ K! _' [* }$ q) w+ D3 T5 ]
- ;;
4 j4 ?* J- R. e& A% ] - (defun imagefile (filename / filedia-save cmdecho-save)
% Y% d$ j7 n5 {- R7 f7 M - (setq filedia-save (getvar "FILEDIA"))
- F7 T9 j6 B0 x7 z* F5 T - (setq cmdecho-save (getvar "CMDECHO"))$ |* Q6 N9 n% n+ p; m7 e" B
- (setvar "FILEDIA" 0)5 z% U( |0 L9 k) c7 d/ G7 S, u: I Q
- (setvar "CMDECHO" 0)$ b' d) d( B1 a% b- W' i
- (command "_.-image" "_attach" filename)
+ R' N( x3 o& B$ c5 L" x& X @! a - (setvar "FILEDIA" filedia-save)0 t+ B) c- i# E# `. j: g- v4 {
- (setvar "CMDECHO" cmdecho-save)
1 |$ r% Y2 A, z - (princ)
9 \9 T( z# J3 \/ t9 u - )2 N2 B. r6 B/ K: Q4 y# X' R# Z* r
- U+ h. M9 L( |4 Z' [ G7 C- (defun c:zx () (command "zoom" ".5x"))7 v m. B( c' p- ~
- (defun c:zz () (command "zoom" "p"))
3 f$ ]' W k# Z. h0 ~ - (defun c:za () (command "zoom" "a"))! j: V: L* ^% z. G$ P
- (defun c:zd () (command "zoom" "d"))) {% U: W6 _: X" i1 ]+ m$ s& b
- (defun c:ze () (command "zoom" "e"))
( Z) u3 n* {$ k; X8 `/ U' i - (defun c:zr () (command "zoom" "" ""))' l( Y- q/ e3 N
- (defun c:vv () (command "ucs" "v"))
5 l6 n5 O' ]. G! e& n - (defun c:co () (ssget) (command "copy" "p" "" "m")); n: f E# Z6 g- u7 z+ z
- (defun c:c () (command "circle"))
5 f! Q1 z, Q! }5 t- K7 R - (defun c:rt () (command "rotate"))
7 H6 @$ X- y2 I4 i) z - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))- T5 U- \0 |/ [5 [
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30")), f7 K) T3 \; o
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))0 I1 @% U" ?! R% f+ R ?, t
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))1 \5 w# t8 i& {0 ~
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
& c( R- t7 l/ x9 _ y( c+ V) f/ a - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
4 J3 n! Y! ^1 G, n2 Z; I* S7 \ - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
+ h! W4 Q+ q; U: [ - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))) Z5 J& `3 h0 J# ^$ B% ~) z- Z
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
% Q, ^- h* w# @4 g - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45")), b' t8 Y# G- u' F: @
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))- T `3 E% S) ^ b5 K& H
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y")): j3 s- i. d( a6 A) O! P8 V
- (defun c:fd () (command "find" "p" "" )(princ))(princ)& {( \0 i3 L* Y1 V+ m+ h6 U, s/ v8 d
- , b5 S: N/ h6 A' K/ T
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ) u' Q$ b# F* e2 `4 U1 I# |. `7 B! R
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
m7 Y$ |# y( o. ~ Y - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
- }% O, R$ c" L7 F" k/ U! r- n - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
# I7 c* ^. v0 p& R! z$ } - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))" w m4 _ M& J( |, I
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))# k' }& i! F5 Q5 E
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n")) c' W" C$ }, l" i7 W9 h) z6 }
- # E9 G; _) C7 m5 Y* K
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))) h8 W) K; ]+ x& @/ U( u1 u
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))9 W% G, r5 ]+ H, O* M3 a
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))3 ?: g' [: \% j- N7 G
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
9 w0 W0 |' w3 @9 C - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
1 p( @) r1 J6 o - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
e3 n6 a6 a* t( v. m, j0 _ - & Y) O$ v, ^1 p6 {8 P
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
4 i" O$ d; T/ r3 E: V - / \1 J" V" z+ @4 _# V3 R
- ;free lisp by cadviet,cd2k44
# C- j4 ~. ^# e* o* |. m2 T T - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830! C4 h4 D8 Y/ i; G: o
- (defun c:FTEXT (/ ent tstyle )
8 }6 J9 L* m# q/ u+ s2 ], L: M - (command "undo" "be")
9 _0 J) E1 C0 n; a) |$ i+ P6 V& J - (setq ent (entsel "\n Pick text :"))
/ Y6 Y. [& u2 _" p9 F1 O5 @+ I - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))1 r* i: ]( F+ X- w7 B# f
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
8 ~* n; L- y7 \3 _' k7 E4 Y; j - (setvar "TEXTSTYLE" Tstyle)4 n! d y6 }$ K# Z( R9 l
- (command "undo" "end")
! p3 z1 {2 M( Y& T0 p2 \4 c - ), q" Y) j% W- Y
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
+ j5 {: T. w3 B. b8 B- l: X- | - - y" S( u# u* ]6 }3 h& F3 N3 I% f
- ;free lisp by cadviet,cd2k44
/ h, z3 V C* v3 N& O - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
3 h" m; n$ s! ^: D& V - (defun c:Fvnh (/ ent tstyle )9 i" K2 k) K% i( L) e+ j* I* L/ Y
- (command "undo" "be")
3 g2 V( ~' i0 D5 u& V - (setq ent (entsel "\n Pick text :"))
' ~' ^( c4 D! o+ O - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))7 c& Q1 ^) M# g& T4 ^
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
: I& }6 q1 X* M `) i$ M/ E: x \ - (setvar "TEXTSTYLE" Tstyle)
) A6 I$ I) j8 H, u0 u$ g/ F - (command "undo" "end")$ i: e( w3 k, q3 p, @
- )
7 }8 Y0 u: F: ]* `9 y i! l) g - 5 O5 _' G. D+ E4 C8 K
- ;free lisp by cadviet,cd2k44+ x0 ]( k8 P! u t9 Q4 S! _4 ?
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830 x1 i5 w' ]+ M, i, `: C- w. E
- (defun c:Chbg (/ ent tstyle )
- o" i# `' N* ^9 f" R - (command "undo" "be")
* e( I* U) s. {1 U - (setq ent (entsel "\n Pick text :"))1 B! |/ X% U+ \+ r: l, g& B
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
b: i4 Q" i u9 }+ T& W - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
3 f. ^4 w, Y7 d9 |+ u' G - (setvar "TEXTSTYLE" Tstyle): |, h/ s, ^7 ]: i
- (command "undo" "end")
3 r8 [1 [" K3 l+ E - )) r# p4 U7 r6 u3 _
" q6 e9 d4 u1 i0 k4 E3 y1 N) M- ;free lisp by cadviet,cd2k441 U# Z& S {, \, A- \/ t
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
% ]& \# R& e* ?5 ~% B - (defun c:Chsm (/ ent tstyle )! F3 @/ X, V2 x3 D1 {$ [- R
- (command "undo" "be")
' n9 W/ L" H7 u# d$ ] - (setq ent (entsel "\n Pick text :"))8 w: K# G( \1 W. q
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
|/ X0 H& S2 \: }; v( H - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")* \' Z5 j2 n, h$ N
- (setvar "TEXTSTYLE" Tstyle)/ z3 l3 S4 z5 ?0 I, o
- (command "undo" "end")
; G a: W. V! {& \% v- h0 a: B - )
1 T% ^1 i* t1 R; Z( G. W+ @
: H! E7 X# m0 ?" {( j- ;free lisp by cadviet,cd2k444 g* O! \% t7 Q' H7 c0 D; O# O
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
3 A. o0 v0 _6 G. C$ Q' E. ? - (defun c:Fttf (/ ent tstyle )
' J! D& [0 G2 S3 d: o5 \- S - (command "undo" "be")
- C7 ]1 }0 q( x- E4 l - (setq ent (entsel "\n Pick text :"))6 s3 M5 U3 l9 j( f5 |4 a
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
5 I7 G1 z- D' p' D# t9 X - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
Y; ?' `. b( c x - (setvar "TEXTSTYLE" Tstyle)
5 M3 ~0 H4 b: V4 A - (command "undo" "end")
3 C8 x) W1 r8 e" ~- U - )% c1 I9 A0 L2 q& \ P |* A
- D! b" ^* k/ b
- ;;; ============================================9 ?+ T( ~! t: a' g+ c- Z$ I3 _
- ;;;1 h; h, p0 d6 e( b& G
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000# d, |0 ~/ }5 [: r
- ;;;
) Z# b6 S+ I" P - ;;; ============================================
+ H( {# G9 v: i' q. k; b6 k# e - 6 P- ~# ?6 \% ~8 |2 F) p/ I0 s
- ;;; ============================================' u/ a3 y$ a0 c, t2 Z
- ;;; T- ~- K3 W2 N. k3 o* ]4 `) {/ u9 C
- ;;; CREATING FROM AUTOCAD2000
P& r7 u. x& j# _8 [+ j) s - ;;;9 }" ]4 o: D: T A9 N. }5 x$ z, T
- ;;; ============================================+ }$ H& u9 i5 S7 Z+ S
/ Q( h6 S% S& k- t1 l& ?% J- (setvar "INSUNITS"4)5 ]# h& T+ j8 }/ d2 {0 m+ o; m
- (setvar "ANGBASE"0)/ ^+ d3 _2 y) f/ M/ w. Y& k- q
- (setvar "ANGDIR"0)
: c8 i: @' {9 x, u- l1 T - (setvar "AUNITS"0)4 @9 L5 [7 S, }6 D4 ?
- (setvar "AUPREC"8)( P0 E# n+ i, A+ a# j% O
- (setvar "LUNITS"2)/ A) | i: A! c% f
- (setvar "LUPREC"8): W, D& ^- W) s _
- (setvar "ACADLSPASDOC"1) & m% e/ s9 Y: q _) h+ Y
- (setvar "pickbox"5)/ B' v% Y* e3 g: q2 D7 Z: n
- (setvar "blipmode"0)) R' P. r0 l; q8 ^& K2 H& ^6 P
- (setvar "mirrtext"0)6 P- c% m. q) y. u; I
- (setvar "cursorsize"100)
6 z/ N9 R7 Y$ { - (setvar "ZOOMFACTOR"75)
2 G+ z" ~- b+ ]- r - (setvar "LTSCALE" 10)) r+ Y6 b6 Z3 X) M @3 M! V6 k( v" _
- (setvar "lwunits"1)
$ a/ I( d! j5 z' {: q* M: B( R( g3 d - (setvar "DIMBLK" "Closed")+ C7 J6 { V4 K8 P$ z) _
- (setvar "DIMGAP"0.0693)
1 E8 `% a8 W0 w0 ?. q/ |3 U - (setvar "DIMASZ"0.20)
/ q* e9 V9 c# H( p. ^" `* m5 D& J - (setvar "DIMCEN"0.2) _1 ]3 [. \& M$ x
- (setvar "DIMDLI"0.1)! H7 h! q" C. G$ g, B
- (setvar "DIMEXE"0.0693)2 ~" L8 [8 [4 S: G3 y5 W0 Q( A& i
- (setvar "DIMEXO"0.25)( m! d: `" J+ ?3 V
- (setvar "DIMDEC"0)$ J/ s7 c$ v9 ~1 N) _2 B" U2 B
- (setvar "DIMTIX" 1)
* w+ N8 ~$ \2 `! x { - (setvar "DIMTXT" 0.099)
2 \9 Y& N2 t$ j% r3 M$ \ - (setvar "DIMCLRT" 7)' C( X; r+ K* a9 Y/ Q$ z5 F
- (setvar "DIMTVP" 1)
- }; {8 `1 j6 c4 D7 ` - (setvar "DIMJUST" 0)+ T0 l6 l) \8 q9 B8 t
- (setvar "DIMTIH" 0)
; V1 M; U* \% {* K4 z( X - (setvar "DIMTOFL" 1)
6 s6 [- u/ B) c( c4 r, Z& E$ c4 N - (setvar "DIMSCALE" 1111.1111)
0 {1 [/ y& _- K) g+ H& t - 7 O4 `( }: w; H* M7 Q
- ) Y6 y$ G* ]% t6 m7 l7 Y( x
0 ?, ~# G- h/ }0 v" W- (defun c:zp () (command "'.zoom" "p"))
7 m/ c! o9 I2 b6 ? - (defun c:zz () (command "'.zoom" "p"))
% }' |- K0 r) j - (defun c:ze () (command "'.zoom" "e"))6 O6 ^% `8 o, |, U' O) N& e$ N2 F6 {
- (defun c:za () (command "'.zoom" "a")) i3 {' t3 V0 b! } P9 |
- (defun c:zd () (command "'.zoom" "d"))$ C3 S4 S* {9 z; g3 \2 ^3 x' j! U& i
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
, F- I6 R7 ]6 o, S+ X - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
) \7 o$ D3 y/ G- u1 e+ W+ b - (defun c:de () (command "ddedit")(princ))7 U: O3 \7 l& Q) B6 s; A3 ]
- (defun c:dda () (command "Dimaligned"))
& y" D' ~, ^( Q5 l* [$ k8 S - (defun c:ddb () (command "Dimabaseline"))
' Q% v" N5 w& p6 Q, [' k- f8 o - (defun c:ddc () (command "Dimcontinue"))
$ u( O f5 ^% A4 T+ c4 e - (defun c:dde () (command "Dimtedit"))2 ~/ L% n K1 g4 M* G
- (defun c:ddf () (command "Ddattdef"))5 Y6 U+ k* E% ], w) Z
- (defun c:ddi () (command "Dimdiameter"))5 w! _; c. Q3 ]0 \4 T+ v" V
- (defun c:ddl () (command "Dimlinear")). M, z( F, w% m. d& k" u U
- (defun c:ddn () (command "Dimangular"))
0 t4 p* }. A3 Y - (defun c:ddo () (command "Dimordinate"))+ n( Q* i0 e3 k
- (defun c:ddr () (command "Dimradius"))
+ }$ d& ?$ x8 P" N4 q Q2 W3 f* q - (defun c:dds () (command "Dimstyle"))4 H( O+ M5 P7 `
- 7 L9 c, V5 N H/ e }/ c
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
- \% r2 N+ x3 V# e - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)' g# S' V& K' M8 q0 I
- (defun c:UU () (command "dim1""update""all"))$ Q2 q+ b, j, w2 V% V
- (defun c:ded() (command "dim1""tedit"))
3 Q2 ]9 Q4 K% m - (defun c:da () (command "dim1""ali"))( ]) ^+ W. E4 Q% `9 w3 e
- (defun c:dll() (command "dim1""l"))
3 j- @# R5 O i6 o4 b; J: ~ - (defun c:dan() (command "dim1""an"))6 R5 A& l. k' {* r6 q
- (defun c:d1 () (command "dim1""ra"))
# X$ H4 y8 q7 r - (defun c:n () (command "dim1""new"))
2 j+ S, o; l0 G9 R
$ @6 p- n* I1 l3 ~1 v( S- (DEFUN C:PE () (COMMAND "PEDIT"))
8 z. K% n" j( ~; I - (DEFUN C:PL () (COMMAND "PLINE"))
* M' k) O) E6 s/ J; ` - (defun c:dd () (command "dist")(princ))
% {6 A( c( u" i$ d. E; K( I - (defun c:w () (command "pedit" pause "w" "au")(princ))2 I% s8 }: w. O2 d: y
- (defun c:pg () (command "polygon" "polygon"))
+ B% r9 e* m" O- H - (defun c:el () (command "ellipse"))& s$ Q* o2 Z) p; a/ H
- (defun c:xe () (command "explode"))
: H% i4 R$ w' @- T - (defun c:eex () (command "extrude"))# L% O% ^- ?5 X7 X. ~, z
- (defun c:xg () (command "xline""a")) Q: t" m, q+ G
- (defun c:xh () (command "xline""h"))6 d3 v w* K' a5 R
- (defun c:xv () (command "xline""v"))0 h: s8 u1 `" I* \4 A" {, `- T" ]- n
4 x2 ^; ?1 E+ ^, v" _; j- (defun c:oc () (command "osnap""cen"))
' i6 E! I/ j, Z0 t5 n# g - (defun c:od () (command "osnap""nod"))/ f; C$ B( S" o
- (defun c:oe () (command "osnap""end"))1 B8 l7 o: e6 F8 ^
- (defun c:oi () (command "osnap""int"))6 v' E! U4 y7 X# M9 s; P
- (defun c:or () (command "osnap""per"))3 O2 `/ V; e4 j5 A1 J* c+ t
- (defun c:on () (command "osnap""none"))
4 d. X" ?/ F0 G1 i4 s+ }- Y - (defun c:oq () (command "osnap""qua"))% e' ^. X1 @" i/ \, C- q- f
- (defun c:om () (command "osnap""mid"))$ P& e( n& B5 O
- (defun c:ot () (command "osnap""tan"))
/ M) W: _* O5 i) V" k9 p L - (defun c:oin () (command "osnap""ins"))
& Y) }( ?5 q; B, ~ - (defun c:oa () (command "osnap""nea"))
/ }% G$ b* f7 A( r9 h% z - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
1 W8 H* ^7 G+ r4 m - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
/ V ]; v! ?8 d) ?/ S3 B. c - ;(defun c:nn () (command "new" "y" ))
F& ^ f2 }3 b+ m4 \2 J - + x1 D9 K1 ^$ b4 R# L
- (defun c:/ () (command "limits"))
3 ]9 r' T9 s! J. ~* N - (defun c:`1 () (command "region"))
- B% T9 T: s$ [# N6 c - (defun c:`2 () (command "subtract"))' a& q6 }+ c# s6 T
- (defun c:`3 () (command "union"))
: p* |: a: H ]9 X/ G' Y - (defun c:`4 () (command "intersect")), R: Q% M: t* ?* X
- (defun c:`c () (command "cal"))" b. ?3 e& g5 G/ h% U
- (defun c:`g () (command "Polygon")) j+ {! f* |4 v) }0 m
- p @- K# V7 U g; X# X
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))6 k' ` r! R! Y% D
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))! q6 a) K; U8 x8 s3 Q
- (defun c:ip () (ssget) (command "print,_plot" ))(princ) k4 Y: p; A6 t6 X
- 7 U6 E+ ~- l& ^: C8 s
- (defun c:ddm () (command "ddlmodes" pause))
/ k, e+ n" B J* ?4 w! p
* r- s7 K# }4 A7 x- O* Y- (defun c:sha () (command "shade" pause))+ W' M, p2 B0 i. [; A
- 1 w4 o4 ~- i% u3 X/ C
- (defun c:sr1 () (command "surftab1" "p" "" pause))0 m, f( x: B F
- (defun c:sr2 () (command "surftab2" "p" "" pause)); p8 U8 J8 p5 v( @; z
( r0 m0 m" L+ T& U' _; Q- (defun c:ad () (command "audit""y"))
8 @! I. ]1 d3 k6 d- {* w& i; x - (defun c:q () (command "quit"))
0 }+ q# D: m+ w8 @9 B5 c# u
7 ~1 w; o4 a( T. Z- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
1 g) h; ~; y- i2 l - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))- l1 u3 d9 c: G0 n I- n
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))' U4 c4 k, y; o0 g
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))) H" S4 f' M+ u7 j4 @% G1 d
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))8 n) P8 F7 _+ d, O3 i5 W2 Y5 _
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
2 ~& f/ o, r, d& E- C' h9 v - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))3 Y# `# S0 Z! u# O4 _
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))& t- h) C' v4 Y9 D- Z
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))7 G# L$ e5 X% h0 i# u4 ~$ R
/ g' P6 `5 B$ l9 o6 ?/ V- (defun c:u3 () (command "ucs""3"))8 H: N( X# m# h; C" f
- (defun c:ue () (command "ucs""o""end"))
* k/ A8 D! s' _: l; t* D+ D+ Y - (defun c:ui () (command "ucs""o""int"))
: G4 |1 Z' c! F: N. Z6 c - (defun c:um () (command "ucs""o""mid"))
6 F. [1 M- b, H+ E& @# t1 ^4 a& @ - (defun c:uc () (command "ucs""o""cen"))" i& Z- ~; _" T, w0 S. g/ r P
- (defun c:uq () (command "ucs""o""qua"))+ H S/ O+ H- Q$ S/ \( a2 ?
- (defun c:3s () (command "ucs""3"))
( t. e# a; g1 n! F - (defun c:sx () (command "ucs""s"))
# a: @! K' `. t/ l# C - (defun c:sf () (command "ucs""o")). `) g; [% \. O/ @: {3 }. w
- (defun c:sz () (command "ucs""p"))
+ z8 _7 L( d$ [. P% T - (defun c:sr () (command "ucs""r"))
! [8 c* ]$ r% d+ T: } - (defun c:sw () (command "ucs""w")); B/ y0 |) k. x9 T/ U% F
- (defun c:fv () (command "ucs""v"))
, X& }0 ?# X& }9 t - (defun c:ux () (command "ucs""x"))7 ?. V/ o# u# E: c/ B
- (defun c:uux () (command "ucs""x""90"))
0 T: t7 F$ T) s" y! c - (defun c:xxu () (command "ucs""x""-90"))
' X' F" f) ~$ h s; I. l - (defun c:uy () (command "ucs""y"))
( G! B2 O$ b) X - (defun c:uuy () (command "ucs""y""90"))" Z$ } |3 r7 u- d" h
- (defun c:yyu () (command "ucs""y""-90"))
5 `4 b" P, ?' V/ b3 ` - (defun c:uz () (command "ucs""z"))/ s: [) p: ?# N( y& b% l
- (defun c:uuz () (command "ucs""z""90"))' @. u3 p. O- P. q2 T
- (defun c:zzu () (command "ucs""z""-90"))
+ K0 g! z# I" B# T- o - (defun c:uci () (command "ucsicon" "Properties" ))(princ)
9 q6 A$ S# q% c - (defun c:ucm () (command "ucsman" ))(princ)
( \8 {7 D+ \ K4 v; G1 _9 q" J - 5 T! j, f8 C e7 r( q
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))) f' x3 o- L' l) W6 s
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
8 c" r) ^; [& _ - (defun c:se () (command "vpoint""_non""1,1,1"))
2 e5 r. M+ ?6 u: O8 T' Z/ c - (defun c:sq () (command "vpoint""_non""-1,1,1"))5 h5 ~* `4 g" F) t1 w
- (defun c:vc () (command "plan"""))
) p8 n' r4 e9 t - (defun c:vd () (command "dview""all"))! p, b1 l9 P# R. I2 p
0 k( H- B7 b L1 @ A( o2 V- |- (defun c:TT0 () (command "tilemode""0"))) C; F" c0 x) Q& t4 n
- (defun c:TT1 () (command "tilemode""1"))' n& v9 \% I" i. J$ V
- 9 a; h% m3 ?( Z4 I, V/ r8 l
- (defun c:vt () (command "vpoint""_non""0,0,1"))
# V3 A p7 r3 C/ L ]+ _" u - (defun c:vb () (command "vpoint""_non""0,0,-1"))8 T( N9 z* d. v, @) r
- (defun c:vl () (command "vpoint""_non""-1,0,0"))) b5 ]: u- Y9 V0 `! W# N+ H
- (defun c:vr () (command "vpoint""_non""1,0,0"))' U: |$ }9 [( F; L8 O: ^/ z
- (defun c:vf () (command "vpoint""_non""0,-1,0"))" A {1 A0 p6 c) \/ G; H) z4 z
- (defun c:vk () (command "vpoint""_non""0,1,0"))' n% O# F& m' J* e; l
- 4 Z b! q: \# s- x9 I) P f
- (DEFUN C:MM () (COMMAND "MIRROR"))( P. n3 l( u% r/ T0 _
- (DEFUN C:MP () (COMMAND "MOVE" "P"))4 p- B- R7 ?2 a
4 g# O) z& H$ v0 o- (defun c:mee (/ a)
0 O. M9 o; s4 P( v6 y) M - (setq a (ssget))(command "move"a"""end"pause"end"))9 e; @# h. t: _8 W: b
- (defun c:mc (/ a)% k- c/ ~7 C6 b7 a
- (setq a (ssget))(command "move"a"""cen"pause"cen")): V# t; T6 @, H- b
- (defun c:cc (/ a)) @# e' W7 E$ [- {
- (setq a (ssget))(command "copy"a"""m"))
' Y( o# q2 v4 b1 I9 M0 A5 Y - (defun c:ce (/ a)# X4 F+ z' w/ b6 d2 N" u; s Q
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))
9 D- k: S: Q/ B - (defun c:cn (/ a)
9 L" d% y; U4 N6 K9 e d; ]0 a/ t - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))4 i, u" u- D3 X! z8 U
- (defun c:tl ()(command "trim""l"""))+ G3 t6 P, h, o. Y4 K
- (defun c:tf (/ a); P9 d1 q! E. q: T" ~- ~
- (setq a (ssget))(command "trim"a"""f")). y K$ t1 V' s; Z9 Z& A
- (defun c:el ()(command "extend""l"""))# f; {. v' e3 d! c2 O6 x4 r
- (defun c:ef (/ a)+ G" z4 K$ x6 H6 h$ X- E
- (setq a (ssget))(command "extend"a"""f"))4 }9 ~9 W; f" K1 t
8 Z! P1 A$ v8 x, \% N3 ^; S$ F7 e1 u! s- ) u3 b2 F& V+ n5 o& y3 T- Z
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))1 f- f _- b5 m3 g- Z q" ~/ q+ a
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))! V& f# y# y( c# a0 {. A! |7 f& B
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))/ u/ n2 a( l3 w- g
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))) N( F5 u7 V( b* c& q- K; q2 r' V Y
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
/ v3 H; `% J" Y4 F - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))5 z D; [- b; C3 _5 K& d+ G, I
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
' m }( K; n% Z& [" K - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
* @+ {, p4 F s, C1 y - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900")): u2 T! [9 t" `6 L
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))4 S" ~" u9 N* k0 D$ V
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500")): \; [' y. ~) s7 c
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
+ |( B5 y, `, y6 p% M. J+ s; c! E - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
& ?2 H6 ], {- u+ c% K4 h; b - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
( U! v4 ?" ~/ @/ L, V - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600")) z8 e* O" b5 ?. u* a
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
1 L0 V+ g" K) T( [3 B0 _5 y* X: D0 L - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
8 V8 d H8 m. _' L4 Z* c/ C. w
/ d z! ?7 k }2 B- (defun c:mla () (command "-mledit""av"))
]3 e$ S7 U; u, y9 {& |. ^ - (defun c:mlc () (command "-mledit""mc"))
: G Q, Y' \) g9 W* y8 D - (defun c:mld () (command "-mledit""dv"))
/ Q6 {1 r& c, \: E/ J) K7 j) R7 C - (defun c:mle () (command "mline""end"pause"end")) I; }8 I# x$ x+ k
- (defun c:mli () (command "-mledit""ca""int"pause"int"))) m& }( l1 j7 }) u/ r. s8 G) z
- (defun c:mlj () (command "-mledit""cj"))8 s; o5 n2 v! c/ p$ `# r
- (defun c:mlt () (command "-mledit""mt"))
4 |: f% o% H) E, X* k; e$ [+ ]5 n - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
( V, }* M3 a5 M5 o# u# y0 N9 C - (defun c:mlw () (command "-mledit""wa"))
& a3 C. u& e0 E1 l
8 |( k& F) U6 ^2 {# t$ _- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
6 u& k8 c1 z3 {$ ]# L: N - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA")); S/ e1 `2 U" h
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
) Z' q1 G" I2 O' D - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))- q, m- I! G1 i3 Z5 x1 f9 M B) K
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
2 \) M# F$ S" {# J+ P* B+ o
6 L- l' X q2 l) u- (defun c:p0 () (command "pline""""w""0""0"))
" ^6 \' X# k% p' X - (defun c:ot () (command "offset""t"))( h, D m9 [/ V: f0 n
- (defun c:t () (command "mtext"pause"j""bl""h"pause))# }/ C" h7 a( T2 V
- (defun c:uo () (command "ucs""ob"pause))
' d' Z; }0 u& B$ A2 a+ C6 _ n - (defun c:f0 () (command "fillet""r""0"))& m5 F- @- c' K/ x
- (defun c:fr () (command "fillet""r"))- y4 Q x; Q- F9 A
- ( x. o1 y2 s) j3 l. Z
- ;CHAMFER6 R9 A* m' G. ]
- (defun c:cf () (command "chamfer")). t3 z: \% E8 S; T6 p
- (defun c:cfd () (command "chamfer" "d"))# R8 o# G/ K) P7 b) u) B' K3 T, \$ h
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
% j2 `! w( H+ \
+ S1 O2 E L5 ~- ;FILLET
% [. `! N9 D& w+ G2 i - (defun c:f () (command "fillet"))6 s/ E# w c8 n1 R5 r, r6 r
- (defun c:fr () (command "fillet" "r"))
2 F* ~7 g4 I1 f/ w0 D* y% B2 I - (defun c:f0 () (command "fillet" "r" "0"))
9 I% `' d$ s- I' s) R# ?% C1 \
O. Z- U' t) ~; u7 t- (defun c:OO () (command "oops"))
& [" \. K x1 c4 S; U- ?0 z - (defun c:dln () (command "dimlinear"))5 d8 _0 G& U% Z& V3 [ N3 o
- (defun c:dan () (command "dimaligned"))1 v- K5 @3 O- C5 R/ u
- (defun c:ddc () (command "dimcontinue"))- k5 q( _* w6 J M6 i4 O
3 N% B& |: w( x0 {% m9 d& Z- (defun c:sc () (command "scale" "auto"))
& D+ b$ [, {6 a. s' y - (DEFUN C:XO () (COMMAND "snapang"))# B% `% h3 z3 V& Z' G
- (defun c:cc (/ a)* j3 p0 z$ X: X A
- (setq a (ssget))(command "copy"a"""m"))
5 W1 {! V5 |- {7 S
. t' B" a5 c( y( k- t4 G- (defun c:PJ (/ a)
: R0 {/ V) H: l0 j - (setq a (ssget))(command "pedit"a"""j""all""y"))! k. u+ w6 {' u: P. I: A
- (defun c:JJ (/ a)
$ h9 a' Y( a% V - (setq a (ssget))(command "pedit"a"""j""y"))
0 n& D, U- Y8 e3 I" b# h+ U4 Q: b+ q - (defun c:TN (/ a)% h) D5 y: N# Q* ?9 c" a
- (setq a (ssget))(command "change"a"""p""T"))( H# L) f y6 o3 m' p
' a f/ Z9 }! c( P
! G" k, `+ k! X8 M6 _- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
! V& [ N _& T# h% y4 B+ s
U$ W; H" I* e- (defun C:IB ()(setvar"cmdecho"1)
& G; @! ~% N5 }* m# e ]) L% f" _ - (setq pt(cadr(entsel"\nSelect Block:")))
4 T" `" E5 _/ q# I - (setq e1(ssget pt))
1 U( X; i# J1 p/ i" g7 W5 b' ^ - (setq e2 (entget (ssname e1 0)))7 k S2 r( }5 E8 I- p
- (setq blname (cdr(assoc 2 e2)))
4 y- v3 l5 b0 R. C7 D+ P) w - (setq oer *error* *error* err2)(command ".insert" blname))
$ F2 R1 W8 v4 H4 l1 I
9 ^$ }' |" f% Y' s, ?- (defun c:II ()
- S. F+ H; p2 B - (setvar "cmdecho" 0)
" D1 a; u7 d# t# m, D4 Q9 U) Y - (setq olderr *error* *error* myerror), T' I/ _" i# [* ], l5 k6 a! E/ P+ s
- (prompt "\nSelect objects: ")) c) T D# P% w* X
- (command "select" "au" pause)
|" o7 ^+ D! ~# w8 R% K% j# ? - (setq sstxt (ssget "p")0 W# b# g; Q/ ]0 m5 ~$ D
- sslen (sslength sstxt), A9 T' p0 g) k% L; c% }
- ctr 00 f6 o4 i7 I. ~. p" x1 k& ~
- )
6 f. g5 u2 z# }0 J - (command ".undo" "mark")% U9 O8 s# _/ p1 t% f% v5 @
- (while (< ctr sslen)
. U1 g; k2 d E - (setq listxt (entget (ssname sstxt ctr))1 H5 \9 t, r( x0 x+ B. x
- txttxt (cdr (assoc 1 listxt))
, E' m+ q8 N/ P; X+ p# d1 S$ d - enttxt (cdr (assoc 0 listxt))
, s, t1 L6 C6 Z/ v, r - ). z! b- A) e+ z5 }
- (if (= enttxt "TEXT"), D5 U" ^2 \+ H6 u8 ~! O. u2 v
- (progn
W# A% @$ ^, F2 D; ?1 L$ \ - (setq testxt (substr txttxt 1 3))
$ M* k! ]! K, w5 w6 {+ O, _- _6 k) h - (if (or (= testxt "%%C") (= testxt "%%C"))
9 p" ^& H3 ?4 T* I( Y$ j. D$ Z - (setq newtxt (substr txttxt 4))
/ s( }- g' d z; o) k+ k - (setq newtxt (strcat "%%C" txttxt))5 t5 B; A; C4 u% t/ ]2 D" m
- )
+ h$ \- s& ?6 G) ^; y - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)); u6 J; J2 t* R! e! `0 I
- (entmod listxt)
3 x+ J7 q. a9 l9 J - )0 W3 Q5 U6 R* Y2 V: Y! l7 J8 G. o
- )% @: A) z2 z! m" g' D0 J
- (setq ctr (1+ ctr))# t/ s% |- S# z/ P
- )
3 ?! h" g" e6 C3 |$ O" d+ r) c- x - (setq *error* olderr)( r$ @ m+ W+ p4 x. S% \6 o
- (setvar "cmdecho" 1)
. Y7 L+ d* v4 N6 i2 l - (princ)
( I% P0 k8 M! @, s4 l& V- I8 p - )* `* y1 G% m% R4 n9 \
* D: ~2 X1 ~3 p4 ~- (defun c:DG ()
( Z3 v2 P% a. J1 {+ S& N - (setvar "cmdecho" 0) ~' m- |0 d7 u( g8 w
- (setq olderr *error* *error* myerror)
3 ]. Q4 t$ Y! u2 o. n" j - (prompt "\nSelect objects: ")
5 j4 x/ P( s' O/ @7 P6 J - (command "select" "au" pause)
! J$ q9 L+ V8 I - (setq sstxt (ssget "p")
# _/ c8 ^3 X3 l! M( S: ] - sslen (sslength sstxt)5 l2 D* m9 ~4 _
- ctr 01 `+ r" ]8 X6 p2 V& N* B$ L4 m
- )
! l8 I A% f/ O3 ^3 h0 _ - (command ".undo" "mark")
9 j8 z+ M* ?/ g) k! p- a - (while (< ctr sslen)
m8 G6 l3 U+ S. S w" A* L+ ] - (setq listxt (entget (ssname sstxt ctr))$ v2 y2 _6 ~- s) T, r+ u
- txttxt (cdr (assoc 1 listxt)) l. S% X5 s& p) } l0 q* X
- enttxt (cdr (assoc 0 listxt))7 f' x# c, E' j1 n- V7 G* o
- )
/ s7 t$ _0 ]1 ~, G' Q - (if (= enttxt "TEXT")
, B- R: m4 M$ c! U1 D( J3 d - (progn3 ~3 u* a& L8 k2 e7 f
- (setq testxt (substr txttxt 1 3))
* u% G4 J4 y7 S( ~, o - (if (or (= testxt "%%d") (= testxt "%%d")) b5 K6 ?2 X8 D- x: a
- (setq newtxt (substr txttxt 4))
+ }' h# F) ], S# i U \' u - (setq newtxt (strcat txttxt "%%dC" ))* D6 z% _; M% r0 Q
- )
' a3 d* @' G) l0 B% K6 I+ f - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
) K3 z+ X. |/ R- p - (entmod listxt)4 k$ B0 M3 o4 N
- )8 T1 p& w2 E" y; t
- )
$ x' v5 b5 c4 C" X! p' J8 X - (setq ctr (1+ ctr))) r6 i& V9 _, l$ Q, c, G4 P# N
- )
+ e* P3 T. Q. u/ {; W6 X - (setq *error* olderr): ?; z; q" G% p7 \7 @8 a3 B
- (setvar "cmdecho" 1)
( s8 P0 @6 U$ ]2 _1 C2 {; Q - (princ)
& Q3 J( o' z( I+ o: y - )
4 \. a6 K# s: q0 ?- u+ Q! f& R - ' s4 ?. o$ A9 R/ M& D6 @
- (defun c:PI ()
9 [1 a3 K8 L7 {' Y! |3 m9 E - (setvar "cmdecho" 0)# [' M0 K: `5 D
- (setq olderr *error* *error* myerror)
4 f/ L" \; v% C3 t - (prompt "\nSelect objects: ")
9 a, A; N* d" i' ~0 j6 W; e - (command "select" "au" pause)
+ _8 l1 d4 W& B8 O0 c - (setq sstxt (ssget "p")
' F+ n* J' }; ^/ D! i - sslen (sslength sstxt)
" b0 q* S2 i5 f - ctr 0" o T. t, S0 @0 Q. W
- )
* \) }$ F4 h t) ]+ J - (command ".undo" "mark")1 U- ~) N- W- F4 k
- (while (< ctr sslen)* P! r/ k6 }9 Z6 k' K
- (setq listxt (entget (ssname sstxt ctr))
# M+ H' b. P( @/ f& I5 r - txttxt (cdr (assoc 1 listxt))
% C# o* C. \# V - enttxt (cdr (assoc 0 listxt))
% p$ G, T1 c% y& k - )
- }$ E: |# Q+ [9 y' }0 R - (if (= enttxt "TEXT")
' e" u$ V5 q: I# F: s# i9 _ - (progn h: E2 l4 |& o( G
- (setq testxt (substr txttxt 1 3))
7 w3 A- q& B8 N - (if (or (= testxt "%%p") (= testxt "%%p"))
/ r% b! C9 w. d. ~% y; o - (setq newtxt (substr txttxt 4)), u( {% A1 c: B6 C
- (setq newtxt (strcat "%%p" txttxt))
& \/ x& y; K- u2 O3 e8 h1 u2 Q1 e% F - )8 Y* T d }; E4 w3 c' N4 M7 z
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))/ B: y+ X0 |8 v* [9 I2 b) {
- (entmod listxt)
' c' A% n/ l+ l - )
5 Q2 n+ a8 z: n0 m - )
4 H# e5 b2 {9 F4 [0 b - (setq ctr (1+ ctr))( I9 t, E: J' B. ~8 H& O
- )
! f) M5 x E: y+ v - (setq *error* olderr)
/ [/ ]- j, ^8 ?2 w3 \. I$ ]6 b, i - (setvar "cmdecho" 1)
( e. h% [1 h. R - (princ)) N2 |; C# `: g. u% X; G7 g1 }* ~* M
- )
& n9 G/ c! C, F4 J - 3 ]0 M% A7 ?; v! t' b! @
- (Defun c:CB (/ a)
9 }% d& M ^% q" T3 D - (setq olderr *error* *error* myerror)# W: Y7 F+ T2 W! ?5 V+ g
- (setq ocmd (getvar "cmdecho"))3 i3 G; ~# k" x: X
- (setq oblp (getvar "blipmode"))
; ~# Y, H1 S" j, O# \1 P! ?8 ^7 X; ` - (setvar "cmdecho" 0)& Y" {1 B' s& e! H( i- p) ]0 H/ G
- (setq a (ssget))
6 |/ j0 i4 w+ }) f2 g4 d' ~ - (command "CHPROP" a "" "C" "bylayer" "")
, v, H0 s6 Q& r6 v' q9 m; L; p/ [ - (setvar "cmdecho" ocmd)
B5 ^" l9 k! Q% i$ X - (setvar "blipmode" oblp)
g4 u# m5 \6 k8 { - (setq *error* olderr)5 n+ H; A: J6 b5 n
- (princ); S6 ^+ a5 s8 C$ A5 O; X2 h
- )# d, n. d& d7 b) l
- 6 i) ~ ^8 W. p
- (defun c:LCC (/ co43 obj23 la23)
* y5 `* Y: Y! \* S& j) @5 I - (setvar "cmdecho" 0)5 f7 X) |5 J' f, n
- (setq co43 (getstring "\nNew color : "))
3 \) i. J" c9 U - (setq obj23 (car (entsel "\nPick object on desired layer: ")))) n1 _5 S1 O$ q
- (if obj23 (progn
$ n9 L/ T6 J- B, l' d - (setq obj23 (entget obj23))
J$ D. n' j3 G+ l9 l - (setq la23 (cdr (assoc 8 obj23)))
$ T+ J! v! N- q. T" v0 I - (command "layer" "c" co43 la23 "")
0 h \) J1 r. ^* l6 R1 C8 E - )
' U5 v; R0 Z" `: t+ U( t - )
) G3 E# W% T X i - (prompt (strcat "\nLayer has changed..." la23))" S% d3 [$ o" b6 [- b* ~
- (setvar "cmdecho" 1)
3 N) B" q/ _1 u# @) G' G' g3 L - (princ)
! M3 F9 Y w) p7 p g0 G+ V - ) 7 u3 h8 {; L7 e6 X; u4 C
9 F& f0 i! g o+ ~- (Defun c:RP (/ a)3 o5 k5 O8 }3 C
- (setq olderr *error* *error* myerror)
( A/ f% x6 F7 d/ T - (setq ocmd (getvar "cmdecho"))
& d7 R7 G& y4 S" S$ \, ` - (setq oblp (getvar "blipmode"))! t+ S( a9 z! S6 f
- (setvar "cmdecho" 0)
) I0 P, M- P' b1 V; C1 y3 v- \ - (prompt (strcat "\nUSE: Delete object(s) belonging to"4 [4 z4 o2 x# A( m
- " the layer of the entity picked...!"))
3 t C4 n( _5 _9 Z+ h: x& n$ n - (setq a (entsel "\nPick the entity with the desired layer to delete: "))
: O k0 E6 E; p - (if (/= a nil)
5 ~) D, s5 d- p+ b9 ?0 J' Q( m - (progn (setq a (cdr (assoc 8 (entget (car a ))))) I2 t; W# R( @6 v' g( R6 {" i
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) "")). `/ M1 G" ?$ j4 J1 B: `& s8 u
- (prompt "\nNo entity selected!"))
7 ^5 [/ |7 u A m) [ - (setvar "cmdecho" ocmd)* Q/ M2 C, [4 ]/ F! q# h+ I
- (setvar "blipmode" oblp)( Z8 F) b& d( d0 i* W# t
- (setq *error* olderr)/ y! o- B, @7 f6 w% m `
- (princ)
+ Z# [, Y" B6 h - ) O$ d$ J3 S3 P( a
- 0 d/ M" _5 k9 R' Z, L- Z
- (DEFUN C:WL(/ SSET NET SSL M)
. y2 p5 c& c, e7 Y( M - (PRINC "\nSelect lines :")+ {( a9 }4 `0 D( ]
- (SETQ SSET (SSGET))5 D$ u: w8 \' |2 A* s7 J$ }' T" Y% n
- (IF (/= NIL SSET) (PROGN
" o3 \( [; r7 [! ] - (SETQ SSL (SSLENGTH SSET))
4 L9 j$ r" L! S" T& A0 i3 E- T$ v - (INITGET 4)
1 j$ x6 v; z5 t( H. o u7 k0 Y - (SETQ NET (GETREAL "New width : "))5 k4 S. U" p% B, ^
- (IF (/= NIL NET)
' X4 n }9 q; p& X& T | - (WHILE (> SSL 0)
. w# j- G0 z# O7 y2 Z1 @- g1 y - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
3 U+ R6 E( i& _2 B: m5 S7 z0 |: r - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") 7 O& R4 \0 Z; V" I3 S* T
- (COMMAND "PEDIT" M "Y" "W" NET "")
7 p' l' x' q) t# R. P - )
+ P$ N4 F4 q8 A! j - )
; O3 \) g3 f5 w( D) g Q1 X) l - )))" n+ j3 F' Q+ t7 y( I* X
- (PRINC)9 L2 E) o4 a5 i1 F6 w( k
- )# }3 f) p+ ^6 X% D$ w
6 v3 F' s/ }) r( P% r- (defun C:MML ()
* `* m0 T7 B1 n5 ~# q: M& G' m - (princ "\nSelect objects to move to another Layer.")
V& U! J$ q7 K( A/ m% b0 e1 k - (setq ss (ssget))& B0 F/ y; F/ F" g7 L" i
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
3 G7 ]; G! q9 y1 {* E3 [7 T6 \5 J - (setq counter 0)
; \7 r+ l! L* K2 j% | v) K( K - (prompt "Moving to layer.....")(princ ul1)
+ Y/ A" }% K# x3 o0 {$ N - (setq e (ssname ss counter)). C' [% [. Q+ V% A1 I
- (setq l (cdr (assoc 8 (entget e))))
: g J R' w# U, P# ` - (setq S (ssget "X" (list (cons 8 l))))
* d/ ]6 W! o. w+ ^$ @7 ^ - (command "CHANGE" ss "" "P" "LA" UL1 "") v( [# h; _) o
- (setq counter (+ counter 1))3 v5 F! C o) p: {6 ] s! W1 c) L3 }
- (princ)
! W9 @8 v% n7 n0 `/ W5 N - )
0 E) {3 Y* d9 ~0 F, l( t3 J& u - * t, f# u. b! ]. c
- ;;; ================================ GHI CHU ============================# g# O" J* W( ~( W2 ?7 C+ `, q
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========% o5 N- V5 N0 ?. |) T3 Q; y0 W
- ;;; =======================Thuong Dung Font Romant.vnh===================7 E3 A+ q6 o* l4 G9 }
- ' _3 O Q. _' c8 c H$ `4 P. b
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
8 p9 O, r6 U+ c q G+ l/ {) O - (setq oer *error* *error* err2)4 {# n- w; G4 a% H3 c- d
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")5 o8 t+ m. g1 v5 D! Z# t
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))6 z! q# P* y: G
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))- O5 Y2 o* O/ a( b3 p
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))# R. _0 A/ e+ X" ]0 n* [( S9 E/ I
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
$ N9 @" p, J( K. W8 `( q8 i - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))$ s* B: d1 G- o, G0 r
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
2 i9 ]1 Y3 |+ U$ I" v3 _ - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
( f9 B% m/ W3 t; T! u( H9 l! E - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
3 R3 v, l8 I9 m5 n, B' K - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))' o, d! E/ h) I6 i# T$ ^3 f
: O& v+ x8 c2 x- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))! X, }5 _; x6 B0 B& `
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))4 d Q, X, I6 t' j
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))6 e# i9 c8 S0 G% e8 o9 l
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))5 g' s9 a! e+ z/ u, g5 X z
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))1 A# q1 e- e2 D4 ]9 A6 g
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))- Z* W! n6 q \) m/ B
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))$ B6 o2 a$ ~! u
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
; o$ Y8 \/ g: A$ v$ l* e -
. J% @# ^% Y# W - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP")): ]9 C; c/ c2 {# A* a' K( M+ |6 r
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
7 I! ~; ]' }8 M& U' [( _6 P - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
" W( L5 R b8 I# F1 [; h+ d/ N0 z - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
, B- D4 @9 j! V" t. M6 V6 _, _ - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
6 F; b! u! T4 _* j, ]1 I# Q) c - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
+ ^1 k" V0 \) u7 @6 Z9 o8 ] - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO")): w# i0 O) w) _# K! y2 D
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
7 z+ E. f) Q; i; ~5 o" ^* O3 ` - (setq pta (getpoint( y# [7 c5 g9 D
- "\nPick first corner. : "))
7 D8 \4 ^4 U2 a3 S5 S8 J - (setq ptb (getcorner pta3 d; Y( U7 Z# |7 e
- "\nPick second corner. : "))
$ C- S4 M2 G" V/ c" b4 b - (setq ptc (list (car ptb)(cadr pta)))
1 Y! L4 J( c9 e, A8 t - (setq ptd (list (car pta)(cadr ptb)))1 h a' Q1 M) o1 T3 i
- (setq ang (angle pta ptb))
* i( l$ F$ A& N - (setq d1 (/(distance pta ptb) 2))9 b" x# A6 D- W+ x. F; E, G
- (setq cp (polar pta (- ang (dtr 0)) d1)): O# [# Y+ K6 A' R+ r t
- (setq X (distance pta ptc))
! j* ^7 C' F" q - (setq Y (distance pta ptd))
/ \* j% E G; O - (setq X1 (rtos x 2 1))
& Y3 ?1 }9 u& p+ b$ K6 E# ]1 g/ [: Q7 ^ - (setq Y1 (rtos y 2 1))
$ A) M Q ^! o/ j* } - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
3 s: |0 b" v6 C - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
7 d8 R6 \/ |, @3 j - (defun dtr (angg)
% q4 }$ m1 T, U, ]* g - (* pi (/ angg 180.0)))
, O0 t* B8 N: H0 V
. q& j9 z" |4 J( y; [% G5 W7 I! |- (defun c:WS (/ pta ptb rmsz pl1)1 r5 K# H3 b: H: u6 s/ v( t
- (setq oer *error* *error* err2)
6 V6 E; ]7 [# N- |, r - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")0 g* ^2 S3 F7 s) B) W/ P) R! I
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))5 H( s) h1 C8 O3 \
& I# X) y5 r' z6 @: g! O5 _. S- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))$ |& y9 ]/ @0 h9 J6 \) Q
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
) t! C' V( q! C' R0 c+ L - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
* ?8 l; }/ {2 ~$ U) w1 [ - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
6 _5 s$ ~0 I( }" z8 Z9 z - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
# V" Q+ v5 a3 ?" z - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
5 k6 A4 q; h5 `6 U - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))' _8 D5 W" `8 m! i
- ; O" ?* \3 ?- p& c0 r4 U$ p
- (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"))" u: C6 l J* i9 J# M
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
- M: a0 y! z d. J4 h - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))6 q7 b, L" J2 c2 P, z
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
9 U' V2 S" l% T' Q5 m - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))% g& w( y+ h4 d: f5 N
- (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"))
9 z* |8 w$ i: d9 W4 ~: \, ] - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
: Q8 P- J$ d0 w - (setq pta (getpoint
' p7 Q4 b _5 m6 S/ Y6 B - "\nPick first corner. : "))
; c# B* h1 a1 d" C5 o& F. X - (setq ptb (getcorner pta
3 b* t, R# U0 A - "\nPick second corner. : "))
' _* Z- l; u4 X& `( `6 n0 H - (setq ptc (list (car ptb)(cadr pta)))
6 i# p E: j6 G6 t" g - (setq ptd (list (car pta)(cadr ptb)))0 l B9 f( i1 n9 V% j7 c2 f
- (setq ang (angle pta ptb)), ~) Q: S; ]1 c& @" e, J
- (setq d1 (/(distance pta ptb) 2))! e+ m, u$ U" p; p
- (setq cp (polar pta (- ang (dtr 0)) d1))2 \8 A& {: ? \% S3 S
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))7 G" ?" h* |8 x4 L9 a
- (defun dtr (angg)
5 P" }+ o8 i. ^6 K# |7 `. v i+ X - (* pi (/ angg 180.0)))0 ~! l R/ ~( z5 W, w$ y
4 z. m6 ~+ a H D* u6 |- ;;; ================================ GHI CHU ============================! A; j. t p6 X# N6 D: ]
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
# F6 B2 m6 D; s$ a - ;;; =======================Thuong Dung Font Romant.vnh===================# ^0 M& R% t: _. Z
( }. h& [: t/ Y/ }; D8 q- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
4 O3 j; x+ l) Z - (setq oer *error* *error* err2)! ]" f6 n; ]+ ]
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
" t7 ]" K( q2 A+ E) m - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
) v0 S- @6 @0 \/ w - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
9 x8 q9 ]0 C% m8 R - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))9 {# w7 \' D* t' s, ]5 ?
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
% }0 n1 f$ N! }* B - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))1 s' u( @$ i* \# h% o' C; k: f
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
, K" R9 k0 c. g; w9 e5 ^" X) M - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))( Q7 n+ l: _) U: k
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))& T8 ?1 x: F) [- }. u9 U9 x
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))* Y, b2 E. |! l% x2 K5 F
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))% n$ ?: ?% ~2 y( \# ~4 v5 X- }
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))! l9 L; ~+ v4 c! I4 B) Y
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
+ n9 c O6 x2 y$ P& u# S4 l - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))6 R0 z5 T- R7 J( S9 R/ l/ q
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))- s% w7 J: [5 F6 t- n
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))2 F7 e' b) `: u: z, F! _
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
5 C! }& H7 d; P: @4 d6 v - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
: h6 K; ?2 @! \) [% T - (setq pta (getpoint7 [' j0 }! d8 t* b; j
- "\nPick first corner. : "))
2 |. z1 ~0 E$ \7 B6 w4 R - (setq ptb (getcorner pta6 x$ `" @' u1 |& P
- "\nPick second corner. : "))
: h; K$ J u. _4 P - (setq ptc (list (car ptb)(cadr pta)))( n6 X2 Q) v7 q: [) ?
- (setq ptd (list (car pta)(cadr ptb)))% N7 p9 ~% ?/ f
- (setq ang (angle pta ptb))2 r5 O- M% M, L$ A: ^- [% R
- (setq d1 (/(distance pta ptb) 2))
# A( g; |0 Y% k+ u8 x( P8 s - (setq cp (polar pta (- ang (dtr 0)) d1))
& v# @( ^5 d. @# g7 S4 s" \ - (setq X (distance pta ptc))
8 i4 j& i9 t/ n. `" Y8 U/ D - (setq Y (distance pta ptd))
2 L7 y# |( X' h - (setq X1 (rtos x 2 1))
4 n6 K+ t0 h$ M# d2 s) c, J0 k4 E - (setq Y1 (rtos y 2 1))7 N* j# t& q2 q3 M, P3 s3 U, o. i0 Z
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
1 { [9 v1 K% n) W" B8 U5 P - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
1 I6 E+ q2 D% e" R - (defun dtr (angg)
5 H7 @8 j, h4 B5 ^, v# l; N - (* pi (/ angg 180.0)))/ n; k c. Y5 @7 r# A/ N
- n+ Y! e; W9 y! W F
- ;;; ================================ GHI CHU ============================. @ ^1 d& w2 U1 q4 S
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========- ? N) ~/ l* X; s9 b5 p
- ;;; =======================Thuong Dung Font Romant.vnh===================, f! k# ], A8 A# @- y0 j! a
- 8 ^& B! k. z; R/ P, Z' {
- (defun c:GS (/ a b c d)6 @; x/ p& T. z: [# @; U
- (graphscr)9 _" `6 T$ q* b8 ?7 X% Y- F
- (prompt "\nSelect text to set style....")
3 i. K g* G) y- K% } - (setq a (entsel))
9 f& I8 H2 c% W# ?8 A. T8 `) K- q - (setq b (entget (car a)))! D1 k) c/ Y1 k, ?$ q& i4 p u
- (setq c (cdr (assoc 7 b)))
$ e: ^6 |' T3 H - (setq d (cdr (assoc 40 b)))6 V7 r& p9 J* Y& z
- (command "style" c "" d "" "" "" ""))8 E# c: e2 E4 _# m% F
- (princ "\nType GS to set text style.")
1 z3 r- m6 b) b7 }2 @9 b2 x
8 a' x9 e% a! @$ H+ k- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
3 D4 M5 O; ]5 b! F: S. Y# Q5 N" V* u - (setq olderr *error* *error* myerror)( Y. U8 g/ B( e- J8 r( X9 F; a l- z
- (setq ocmd (getvar "cmdecho"))
/ ?! u' T" \% \; G7 f! X - (setq oblp (getvar "blipmode"))( r6 ^1 _" ?% x j/ R& s, U( I- r
- (setvar "cmdecho" 0)
. n7 ]( T, F% D' B- \, C - (initget 1) ;3D point can't be null
3 L' J: H9 `. b+ W& J& M* s2 Z% R - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
" s% i/ ]9 _- I) }: z - (setvar "ORTHOMODE" 1)3 E, D) H/ \, h! r0 t
- (initget 7) ;Length can't be 0, neg, or null6 v$ r5 W) U& @9 @
- (Setq l (getdist pt1 "\nLength: "))
( f* o* B* p) C& X4 G) P - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))! Q( i4 S5 k/ `
- (grdraw pt1 pt2 2). R6 o8 J# `' D$ [6 b
- (initget 7 "Square") ;Width can't be 0, neg, or null
& z+ y/ U( W2 ~" z$ @& _* I/ l - (setq w (getdist pt1 "\nSquare/<Width>: "))
+ `8 V, ^9 f+ v3 S4 M) u3 k3 ? - (if (= w "Square") 9 g3 l2 g" J( K3 ?1 I8 y e4 ^1 O
- (setq w l)
- ~$ l1 W' l, b! y% _; H" o# _) N" e) ` - )
$ p4 E& B3 L: J7 q% i% d' g - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
" i& H, d' E& R% k0 [: T - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))8 D! O8 B$ o# o8 e* O; Q/ x* |5 H# h
- (grdraw pt2 pt3 2)4 ~& z6 G0 q+ d5 i
- (grdraw pt3 pt4 2)
6 U' l. S' E9 H3 K4 R - (grdraw pt4 pt1 2)# ]3 C% @! Q2 x7 c/ O0 L8 c
- (setvar "ORTHOMODE" 0)
3 D; H8 Z- H( K2 m - (command "pline" pt1 pt2 pt3 pt4 "close"), e s( g9 V0 @0 R2 \' R
- (setvar "cmdecho" ocmd)
3 r. G7 [" V8 H; A& J - (setvar "blipmode" oblp)
4 T- A" R! o5 U( {- f. J - (setq *error* olderr) ; Restore old *error* handler+ f, @) v+ M" I6 Y' s
- (princ)3 \0 D4 D5 f7 t- `0 X( }
- )
" N, l9 u. s* Q7 b
2 p% v( k2 L- x; X& f- (defun c:SG (/ ent pt1 pt2 ang). \# w( A1 T7 m9 a/ U! i9 k) L
- (setq cmd (getvar "cmdecho"))
) e* P$ g) p' y9 G7 J - (setvar "cmdecho" 1)
5 p& g. @7 G8 m - (prompt (strcat"\nSnap angle will be set to angle of line"))
) _4 {! l1 a4 W- ^5 b5 Q8 H - (setq ent (entget (car (entsel))))
7 p4 {9 T; S2 H4 o' K - (setq pt1 (cdr (assoc 10 ent)))( }! D+ h0 y$ b1 t% B, f2 V3 g! x
- (setq pt2 (cdr (assoc 11 ent)))
8 F0 [& B c( k/ L - (setq ang (angle pt1 pt2))
- f ]9 _6 r/ |. s - (setq ang (/ (* ang 180.0) pi))
% L$ s/ G6 i3 I7 ^. a& y - (setvar "cmdecho" 0)' s8 P" i9 T+ y( n; }* T! L3 E" w: ?
- (command "setvar" "snapang" ang)
( \4 b/ Q! o. v3 g, p - (setvar "cmdecho" cmd), L9 Z8 ~& `" P
- )
. H$ U2 q6 _7 l# M% D - ( v8 u7 N+ F9 p
- (defun C:TG ()
4 V; S1 Z& C- I- @6 b% H0 R* W - (initget "Increase New")
, Z, P9 x* n: W& E+ ~ - (setq ans (getkword "Increase/<New>: "))+ A4 e1 R( u0 G3 x
- (modang)+ w! `+ x0 h' G) l
- )
/ ~+ R! f! q) T) R0 F - (defun modang (/ ang ss ca e na ssl)
) r& L4 o# z) ~6 @# P. I" @; J - (if (= ans "Increase")
: k( J% k+ y k - (princ "\nIncrease angle for text by: ")4 `0 h, Y$ u O: o% |+ ?8 `; ~
- (princ "\nNew angle for text: ")
& J1 @, \; b- B - )' m K3 z8 u! x" R
- (setq ang (getreal)); N3 g7 Y. }# I/ d
- (setq ang (* (/ ang 180) pi))3 \- L0 J" T8 E" I8 i& \
- (setq ss (ssget))4 `' I! V1 w. M
- (setq ca 0 ssl (sslength ss))
& y# S* H- Q9 n - (while (< ca ssl)
4 c* q+ Z8 U6 {) F3 x [ - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))5 V+ B, l* w# q$ O
- (progn5 d2 {: o+ m: Z6 O0 w4 R
- (if (= ans "Increase")* x0 K. S1 Q" C0 H7 Q$ |
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))( \8 |6 `% \8 r X v: S# F
- (setq na (cons 50 ang))
2 x, ]6 u8 P/ p. Y5 t+ d" D- B - )# }( i* N b$ l9 T
- (setq e (subst na (assoc 50 e) e))
/ s1 j. D% w2 ~8 {5 R - (entmod e)
# r; d# J0 g9 m1 T" b- ], i8 ^ - (setq ca (1+ ca)), C/ H) R& s- b$ X. f
- )
+ m" V m9 m0 `! b3 Z - )$ l8 w! a9 S2 R$ w
- )
$ D' `$ C2 j1 D" u. j - (terpri)
' {; j) x; g# O3 L/ ]" o7 T - )1 Z4 e; [9 O. g4 E5 Z
- 6 G2 w. B1 B% ]! ?
- ; ?: G: F3 ]& f: Y
- (defun c:WL ()
& ^; g) R: Y E, K - (setvar "cmdecho" 0); ?# v+ G! l/ N" k
- (setq a 1). {/ m. }" P ?5 l( s |+ s( W
- (prompt "\nSelect Polylines to change: ")
1 O% u; n" [8 F - (while (/= a nil)
8 _4 h' w+ g0 W& w3 c! T - (progn
( `: _# n% X9 d8 N4 g4 P6 D - (setq a (entsel))
& f: |8 t9 B* h8 j' D ~ - (if (/= a nil)
$ _0 j+ I1 q( f1 L+ c* W* T - (progn
: t% g! s5 g: n; \; M9 ?: b- ^+ o - (setq b (entget (car a)))
2 M8 Y6 a* E/ y& R) p - (setq c (cdr (assoc 40 b)))% ?& c) n; B4 ~2 y0 b/ p6 ~
- (princ c)
7 I$ m f) B" h5 O& e - (command "pedit"a"w""lw""")( Z/ m" {6 g' B/ {3 V
- )))) # z1 G' y2 ]# _4 V
- (princ)2 r. d5 s. s, M7 w8 T
- )8 n+ i9 O( Z( w' t$ b9 d$ U
- 3 `7 J) W4 _" \1 |' L& M3 h6 [
- ;;; ================================ TEXT FIT ============================
1 S* z* k% h4 t* R: R. y* \: d - 8 w U O' o, X& V: p- V( G- S$ P+ i
- (Defun c:FT ( )
6 \# L3 T7 q6 R4 R& p - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
7 N5 L/ x4 {5 }, o1 P4 g - (Defun LL-xyz (arg) (CAR (TextBox arg)) )
( T. T) C; c! p: M - (Defun UR-x (arg) (CAADR (TextBox arg)) )9 n. r7 u! _: ?# K0 a6 w
- (Defun LL-y (arg) (CADAR (TextBox arg)) )" {, B2 e4 [; B+ D+ i4 `; k9 b6 k
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
- ?. r& y o5 [5 F j - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )! v1 [- l- O% H0 U# q
- Textent (If ename (EntGet ename)) ) 5 w# K9 ]# R3 P G$ b8 g( k" ^, [
- (If (= (CDR (Assoc 0 textent)) "TEXT")
8 P e* P, H0 o4 d- D2 U Z, i - (Progn (initget 0 "Start")
4 H. x9 F2 t, {7 g8 C8 h9 X6 l - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )# U: B7 |) T/ B8 r6 I H
- (setsnapang Textent) ;set snap along text entity/ o/ \, P1 y1 E1 ^4 J1 p& v4 {
- (setvar "ORTHOMODE" 1) ;drag along the text
6 j& c' \0 w5 G, Z' y8 L6 Z n - (setq 6 p7 h) ?( k6 O1 G5 c* F
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )3 @8 z) ^& D- p3 h; _2 Q" v0 o1 Z
- (setvar "snapang" 0), ?+ z! G) k' i+ h! E
- (cond1 P* N1 r8 @# r+ a2 R' j
- ((= (type TMP) 'STR) ;;new starting point to be selected5 `( _0 I4 ~, m X
- (setq Start (getpoint "\nPick new starting point: "))
) ~( C \- D3 ^5 C0 M6 h0 V - (if Start (progn" F) p. f8 O; d- y/ Q7 t9 T
- (command "_UCS" "_E" (cdr (assoc -1 textent)))
0 i; \9 e7 z* |3 n& q+ | - (setvar "ORTHOMODE" 1); k& W1 w# S2 I- M
- (setq NewPt- p; K* ^' ], L1 H% k
- (if Start
3 j% j; a B- o7 L. I. w0 C$ Y1 a' @ - (getpoint (trans Start 0 1) " ending point: ") nil ) )! D ?% I* }" Q: I+ \9 }
- (if NewPt (setq NewPt (trans NewPt 1 0)))
) B5 Z1 F0 v T* S) i: Q - (setvar "ORTHOMODE" 0), |! ^ `! x5 }' {* x) O7 _
- (command "_UCS" "_W") ) ) )
; G! ] L4 d2 i4 @# e - ((not (null TMP)) ;;new ending point selected
* n2 L; |/ f- y$ C* K9 @% ] - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )! U X& g; E4 x# o
- (t (setq Start nil NewPt nil) ) )
( `- C. V) q% U/ j3 f N) O - (if (and Start NewPt) (progn5 Q3 j6 ~4 u2 V9 C( t& I
- (setq Val (Assoc 41 Textent) ;;current width factor3 V2 u5 P4 c, o8 M5 H; Z
- Val (if Val (cdr Val) 1.0) LTC_% " v$ f: \' m9 A
- (* (/ (Distance Start NewPt) NewEnd ) Val )% [6 u: [' ~8 K
- textent (Subst (cons 41 LTC_%)4 k2 \. a4 q/ L' D4 g1 Y" }
- (assoc 41 textent) textent)2 a9 r+ H* _0 r" d/ f+ U# d
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
" Y6 E$ C) ^- r5 c- J/ {: ?+ |8 I& a - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) ). C {: o( r4 _9 c7 Z
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))' \" @* |2 L- F& g+ Z+ P" \
& E" }0 `% F3 q2 k: m- ;=====================================================================) ^. N% q+ ]+ N2 y2 x) A; r
- ;=========================COPY + ROTATE ==============================
1 S) M4 r3 c; X! K - ;=====================================================================- z9 o& O/ Q* {* c5 Q- G2 u3 B
" ^- i ^0 K' H# ~$ U# c- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
: C0 Q' x# Y* Z: R) q - (setq olderr *error*
$ p; c4 j2 |5 @0 H' H( Y. Q - *error* croerr)) d5 r% A( a( q
- (setq cm (getvar "cmdecho"))" }( q3 n1 Y2 K$ o; l" v- h" J
- (setvar "cmdecho" 0)
2 ?/ r3 O/ l& O/ O' f1 \5 h. w8 e - (setq loop t): \1 z% ~% ]6 }& P0 c s4 X! R
- (while (not (setq ss1 (ssget)))); Z6 [2 Z, [5 U2 k8 d% y
- (initget 1 "Multiple"), p. o4 ~: d5 b
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
9 E. S# n2 V. S/ I* [1 s - (if (= bp "Multiple")0 ?. |4 {, E) `/ w9 W8 e
- (progn4 ]4 s: p' {) ]" Z$ `+ L
- (setq bp (getpoint "\nBase point: "))
8 m+ P5 s7 c' N( [ } - (setq mult t)# ?' n9 I% q: G
- )* `3 z5 i) N. b2 w5 Y
- )
5 ^$ C/ H+ V" G: D4 B - (while loop- z C3 h: ~* [3 \2 y
- (setq loop mult)
9 ^" H! r# x+ y d9 n k% V [ - (setq lent (lastent))
1 s6 Y" U/ o$ [: B - (command ".copy" ss1 "" bp bp)
8 G0 f1 v& z& \* s% f* h - (setq ss2 (lss lent))! F' C9 l, A, F/ [! l% N7 r: E6 g
- (setq lp1 (getvar "lastpoint")), n* v. [3 E3 B4 G% p j1 D- t' n
- (prompt "\nSecond point of displacement: "). {! O8 ^# E' ]
- (command ".move" ss2 "" bp pause)& }8 |6 E- ?1 f( W% E
- (setq lp2 (getvar "lastpoint"))
% X# L- K6 x0 M - (redss ss1)
$ S1 s, D. P0 \ - (if (and (not mult)
* }1 b1 n, f8 a. Q7 K - (= (distance lp1 lp2) 0)
2 [9 R/ B" [* g - )# t2 Z# ]3 y0 B
- (setq lp2 (getpoint "\nRotation Point: "))
% V- c& G& H5 K0 D! a/ _& ~3 c) a8 D - )
) o* r( B7 a- X- e - (if mult, c3 `( ?2 U, `
- (prompt "\nRotation angle ")% q! g3 _# d! A, \$ Y/ N
- (prompt "\nReference/<Rotation angle>: ")) b7 t R, u5 q! l! T1 ~1 X j0 J# x
- ): }; x( c$ [1 l3 Y% J! m
- (command ".rotate" ss2 "" lp2 pause)/ k- t+ v1 K; G! L V
- )5 e' V+ d$ w3 v5 M$ D6 S
- (setvar "CMDECHO" cm)
& l4 U4 D. |5 w' i - (setq *error* olderr)
- g. L- u0 I. f& F - (princ)
( p; b8 J' W. E8 U+ A - )
8 V% g8 r9 J% {1 Z- ^& R$ M - (princ)
3 `. p- P' p2 x9 ? z - (defun croerr (s) - l& `2 ]' k; z# n
- (if (/= s "Function cancelled") - f: G4 _) d* V8 M0 [: G1 G" q8 h0 J* P
- (princ (strcat "\nError: " s))
5 t: H. k) B6 w: ?/ B5 b% Y - )
$ x0 G) P! [' q- d' H6 B3 m2 u. A - (setq S nil)1 _/ N1 W5 I' N( v; t+ J K1 C
- (setvar "CMDECHO" cm)$ Y/ ]2 G9 I. R x
- (setq *error* olderr)/ y; [/ o6 t4 C- y- k/ q
- (princ)
! E2 C, L( E @8 Z" P! P: S( I# x - )
2 r: I4 Z) j7 H7 L C3 V9 n - (defun lastent (/ a b)
- F* ^" ^! k6 q# t/ c. r' g$ y! o p - (if (setq a (entlast)) t' Y$ d4 }8 P! _& G
- (while (setq b (entnext a))
3 {8 ]" ], Y+ B2 Z - (setq a b)
- ^$ o$ _+ n# n& A5 o: M - )7 T$ t- j3 c0 x, `5 N* b
- )/ P. f4 o0 S6 v: Q6 m% a
- a
W# Q0 s; L# d - )/ R6 v7 M6 E8 z% B0 Z% d6 Q
- (defun redss (ss / en i)6 r i$ X9 C4 y0 j! Q h. y$ b
- (setq i 0)1 N+ P$ f) @4 U+ U. ] d; Q* ]# y
- (while (setq en (ssname ss i))
2 H4 T5 I9 t1 y - (redraw en 1)
9 A; v, E. \" A$ I. c, g& M - (setq i (1+ i))
, D: C: t. E' @& ^. } - )4 F' K3 `7 v$ K) k5 ]2 F2 u
- )
. @9 @/ {( ~2 e$ v p - (defun lss (en / sels ed)3 A8 Z8 a3 ~' ^
- (setq sels (ssadd))3 x' l" _- ~) \
- (while (/= en nil)- l: i# z( K/ M
- (if (setq en (entnext en)) (setq ed (entget en)))
p5 e( D; [8 Z7 q& \1 c - (if (/= en nil) (setq sels (ssadd en sels)))7 a+ \' i# K3 {3 m5 u
- (if (or (= (cdr (assoc 0 ed)) "Polyline")
" I5 A- {; }) E+ e+ d - (= (cdr (assoc 0 ed)) "Insert")# b; z7 T( T6 O5 V) }
- )
. f$ S8 A2 f( h& W. j - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))+ H5 O: m1 e' i
- )$ _ @( g" p Q' O. n& T2 x
- )
" f& K [& d b - sels
# D: u' N8 N* o - )
5 X0 u4 c) w$ h4 b: v - ( x/ ^$ S- }& w/ a" x4 M5 o
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================; U7 O6 P* L( J/ \* d' {- D6 _
- 0 I) F1 B5 H8 ?
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))& x) d7 J* Y- M1 Z! {4 Y l. l
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
2 v9 Y5 @7 I0 h4 v( {9 I - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))$ {" r. J9 P/ ~: l
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
% D* U8 G6 t1 g* }, c - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
! G. X. p+ p' D - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))" `% z6 d8 B! ?0 A! I) r
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
3 F2 |6 b o) g7 Y% [# f& |$ u - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))$ Z3 \: f+ z: b5 @+ G6 e
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))( |6 C- X4 Q& B' [8 i
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))7 T4 H1 b' w) J" }( Z0 {
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))" I1 b( ]8 ^; u/ Z8 [+ k
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))/ j8 M1 @& d0 k- B
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))- a* R, k1 _, R. @* n
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
0 a$ k- h; V' L \! e - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))) p) n1 W X2 B- B# B) ~/ ~
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
0 U; c+ v5 b+ J: H( g1 p6 b - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
5 l( t( d8 `$ D- M6 f m* \! y, C# u - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))+ A1 b6 h: l4 C! k& a0 `
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))8 I3 _( r3 E9 M! d( N6 ?- W" P
- 3 j. v9 J3 n* q1 V1 S
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
0 v5 @# T' }" \) Z
. z) m+ \( k6 Y: B* D- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
/ G% W# J. R, p4 `0 G7 @/ R# `# E
! F: w+ k1 d$ ^3 s7 `4 _9 B' ?- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
5 U# H- r- l7 O0 G; h+ j4 H - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")/ { a& R0 D ~# @
4 L/ k3 }0 x; g2 W' }5 X- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===$ |: A0 P, |' T, k5 V) F( l6 ^
6 ?8 {: L$ A0 s. t- ;(DEFUN C:netxuatanh ()
9 W" p* u7 u/ K/ _ - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""( Y+ F7 S: }6 }" f4 _) z
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
8 o5 j6 a8 Y0 s/ K6 n y - "M" "MANH" "C" "9" "" "Lw" "0.5" ""# ?2 Y9 } f2 `! A! Z* M' D
- "M" "TEXT" "C" "7" "" "Lw" "0.5" "". Z9 N9 h6 k4 X6 G: d& e
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""
" u- h& L7 g" s! m0 y3 m( I - "M" "THAY" "C" "7" "" "Lw" "0.7" ""
; i" }5 o6 J* s5 m; [ - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""3 Y) e1 g/ n4 w
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""' {$ V- q% O4 a' ]/ _ B
- "M" "COT" "C" "2" "" "Lw" "2" ""
. l; x4 ]. G) f - "M" "Defpoints" "C" "7" ""
: _) @7 R w! g - "M" "0" "C" "3" "" "Lw" "0.5" ""
6 C/ c4 k' o+ e- S* {/ e$ g' ` - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
; K/ H! j/ I8 w+ ` - ; "M" "2" "C" "31" "" "Lw" "0.5" ""+ p2 U% ~$ [+ T) G$ v! ?- O) J
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""! H& m' |/ A6 C& F" ]8 G+ s: o7 R* w
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""$ u/ L2 n; W% W8 k& I
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""
# c( E- ^* x9 p+ P4 {# t0 d - ; "M" "7" "C" "7" "" "Lw" "0.4" ""- r( Z0 y& H1 y/ @5 w
- ; "M" "8" "C" "8" "" "Lw" "0.35" """ X1 _1 d/ h5 R$ z5 e
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
5 T" k* `1 w" H% c - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""5 e+ c# v8 {0 D$ m/ K0 y7 K4 c2 E
- "M" "KE" "C" "8" "" "Lw" "0.3" ""5 G9 d: i/ j# [# n& z9 P- p
- "M" "KT" "C" "9" "" "Lw" "0.35" "", X% `. @% O. \0 X
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""7 N$ T& r- _. V5 H" o9 u, k6 G9 a
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""( e9 g4 S! S0 P% T' N8 R
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""
$ _* K" G) K9 r- v4 U2 g7 \9 g - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""2 Z5 A9 T6 P$ L3 r6 r0 B
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
- m$ J) L" r. Q; ]8 E% T - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""9 r# _- V T7 v( T
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
7 U4 C( w& v) j; G$ m7 ~) E - "M" "CUA" "C" "6" "" "Lw" "0.5" ""* ]! d& f6 W. M
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" "": @; x, x- i6 B2 R
$ y! |/ O, ^/ b6 x- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===$ P5 H n% U0 ^7 a' @: l3 B
, l! f" f* Z! t, `- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""# n f) q0 l4 b, j K
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""$ Y% l8 j) K0 G3 p! ]
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
% W' d" b( f2 A& f+ d* q( f3 } - ; "M" "250" "C" "250" "" "Lw" "0.35" ""
4 Q! l' r' b7 Z4 \' Q - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
6 F F$ P4 [# T* d9 V - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
3 z/ u7 y i" ^ C
9 Z! k/ u( y, Q8 A/ w0 O- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======6 P3 A d0 x4 E* C2 l' E
- ;===================================30|04|2024==============================5 W6 f5 u8 i% M- [/ R
- ~- L1 Q8 B# X. m" ^$ ^7 y
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )0 w$ s; X$ j2 [) D/ n
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )6 y4 T8 y# j5 x& e0 ^$ V
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )6 X) k& l% v3 b: T( G- K7 f
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
1 R3 x/ C- o: o. h( [ - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
" P5 a4 N+ G1 Z# o _ i - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
/ ?3 s) U& t8 L4 ?' O - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )7 j9 y* h/ p% }& l* ?
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )5 v- W- z$ y! K
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
! x! M: \" Q& G' n7 C/ C: \ - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ): v6 D4 N" h. T+ G w, A
) Q& L5 Y& ^4 j- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=1 f6 K" @4 V; j' ?/ {' y
- ;===================================17|10|2024===================================3 D! G1 K/ R; @; H# c
- : a! e3 w3 l3 {$ y5 ]0 P- Z
- (Command "DIMTXSTY" "ROMANT-DIM" )
) j2 o$ i& G2 Y. Q - (Command "DIMBLK" "" "Closed" )
* e8 k# X/ I$ d% U - , v" ]- J t0 K+ n+ [
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=/ x) _& C& V& Y" W4 G
- ;===================================17|10|2024===================================2 H( O9 g3 i1 g. p3 h
- : B* |, P( }& ] ^- [
- ;(Command "-units" "2" "8" "1" "8" "" "N")
( P' o; y6 l& g - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)) W) c9 r2 Z E' g
- [9 s% L5 Z- d5 }* A+ P$ _
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
( o1 @7 y" Q' u1 e. |, d1 K3 ^- q+ Y - ;===================================17|10|2024===================================
6 [+ r) N: l7 e; f4 a" y( q, _
% K# a8 R$ G, O) M/ X4 C {/ ^- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====3 b5 O2 P& \9 |: H6 W
% T, [, T$ O+ p9 [- ;======================== DAT NET IN & TI LE BAN VE =============================5 a$ b3 @3 T0 o
+ x5 u+ z3 H6 A* P3 L1 D* a- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
( d3 f l- m* D9 _ - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================& U9 v+ t9 V3 k7 s8 \' j
- ;=============================11|07|2025==============================& I P r1 D$ o" _
- ;Ti Le Ban Ve - 1 : 1004 U) K: ]9 K, u; M
- (Defun c:kta4 ()
; ^8 R# f3 m# J - (setq mv_sc 100);Ti le ban ve
( |) L' u& |& w7 B - (setq x4 297)* l6 A/ I( G$ F/ E- E& ^5 J7 x
- (setq y4 210)
! h3 `3 O, D v - (setq x4 (* mv_sc x4) 7 G5 D' C+ q2 l- s) }
- y4 (* mv_sc y4) )% ] w) Z3 F( N; b6 l+ L
- (command
# ~0 a- s/ U9 r% G( I" l - "LIMITS" "0,0" (list x4 y4)
* ?, Q+ b8 z: y! C& ^' m - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
7 Z( T/ ^4 I( k/ E1 ]+ b - ;Khung CHU NHAT Chinh 3 r: M7 q, F- k. ]9 ~& [
- "RECTANG" "500,500" "@28700,20000"
5 O* C ~% F" v2 O Z# g - "RECTANG" "700,700" "@28300,19600"9 j6 U6 @* a& t% y& p3 g# L/ R! [' Y4 p
- ;Khung Ten Chung
6 J/ s S: q3 Z$ Q( A - "RECTANG" "700,700" "@8000,1250"
7 ? E# b6 e7 P( N - "RECTANG" "700,700" "@17300,2500"% a U5 c& O2 D
- ;Ten Ban Ve/ R; z3 K: A* h8 L
- "RECTANG" "18000,700" "@11000,1250"
" U- i7 ~. r U) D1 i) C F: _ - "RECTANG" "18000,700" "@11000,2500"
% ~/ ~5 R1 K8 `# R- S - ;Khung Ti Le + Ngay Thang Nam
" z+ ]6 L7 b9 j4 u: X0 x - "RECTANG" "22500,700" "@2000,2500"
" `$ @) c1 F; A) A X" e9 N% q; ] - ;Khung CHU TRI7 b3 ~4 e+ V( d" Z) Y$ t
- "RECTANG" "8700,700" "@3800,2500"
! [0 M7 e4 M( N7 O - "ZOOM" "_a" ))
/ U1 `7 J3 E$ f% n, d! t& x - ;=====================================================================
7 a5 v: f1 Q @' r8 o' v- i - ;Ti Le Ban Ve - 1 : 100+ c8 T1 B/ i. J0 i" A
- (Defun c:kt4a ()
3 s5 b+ e) X+ b, V9 J" W- D - (setq mv_sc 100);Ti le ban ve0 f% t1 G0 i) `
- (setq x4 297)+ S/ w" W) A0 k/ t
- (setq y4 210)
5 b% G0 o6 D1 D% G4 m% Q2 x' } - (setq x4 (* mv_sc x4)
1 X- g8 y9 ? w0 N& K- G - y4 (* mv_sc y4) )/ H& Q( m0 |% I) i* p6 f
- (command ' j5 y6 y& h3 P3 n
- "LIMITS" "0,0" (list x4 y4)6 g i, K) y1 f1 w5 \" ?0 X; A
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"& N3 E6 B, ~) w; R8 G2 f5 K+ s
- ;Khung CHU NHAT Chinh 0 y. X( D# Q& J1 @4 }7 c; }
- "RECTANG" "2000,500" "@27200,20000"
! s' t% X# D# } - "RECTANG" "2200,700" "@26800,19600"3 e" H8 u5 b. \4 N/ f5 p) t
- ;Khung Ten Chung( v( u6 @3 L+ c# d' }7 ?
- "RECTANG" "2200,700" "@6500,1250"3 e" O1 X4 X& _, n& T" ~) a& u
- "RECTANG" "2200,700" "@15800,2500"
/ [; R! O4 h6 F' \8 { - ;Ten Ban Ve
* `9 y: o) V3 t( N, N/ g# S4 y4 g - "RECTANG" "18000,700" "@11000,1250"
0 ?+ u6 s5 e4 B- T( q" M7 K9 N - "RECTANG" "18000,700" "@11000,2500"
" o! R4 n5 Q/ V) w: }* D9 ]/ q - ;Khung Ti Le + Ngay Thang Nam; r7 q5 V0 m5 H: U
- "RECTANG" "22500,700" "@2000,2500"
& |$ X3 C# n6 f1 ~ - ;Khung CHU TRI; @$ S7 X& ]- E, j( i% z
- "RECTANG" "8700,700" "@3800,2500") F) w4 N$ q1 R$ X
- "ZOOM" "_a" ))$ z, q2 [. v' G' m. e% _/ V: G
+ Y" p5 I7 M( H/ Q- ;;; ============================GHI CHU Khung Ten========================
& S4 E9 W7 L" f: E5 S. L7 w4 F - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========2 X7 L1 m9 ~4 d9 F% E3 L
- ;;; =======================Thuong Dung Font Romant.vnh===================; `# Z7 |' E: C6 o1 L3 ]
- 3 j3 O( F# c( D! d) F2 w
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1). N- w$ v' q) M* k) x* T, m9 j
- (setq oer *error* *error* err2)6 m4 B+ V! D; S; R- A
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
1 U9 d# F' S: i* d$ w: t& S8 e6 L - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
: c* J T! [6 p }- k, L2 J - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
?9 h% s8 N: l" o" y: [6 v - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
# c5 [6 w# ]3 V7 y% i. J. c- s4 ] - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
" v) D0 W2 p5 E* m( [ - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
F5 E, s" v, X2 f. P( X5 p/ Z5 b5 s - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
4 F1 T* X( m# y - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))6 k7 w+ c. W2 {$ L4 s
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))! p" h* Y6 }: h. [
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :")): @% E$ Y1 n$ |; p. a/ r& N% v
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))( }4 n6 | \8 D7 t, O d
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))" h, a) i3 d, ~4 A' r1 p$ o& T
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))6 T9 r) U3 |" m& x2 q
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
1 B, M- u% Y# |. G - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))% g# }4 C0 e x' P$ S7 Y" h9 L
- (setq pta (getpoint9 Q, h2 f N' S3 ~! X
- "\nPick first corner. : "))' v. ^8 [0 G9 `. m: b4 D
- (setq ptb (getcorner pta# V, m7 P1 i# Y" Z+ p
- "\nPick second corner. : "))* h% m. j& {1 Q( A$ s/ W# s* s
- (setq ptc (list (car ptb)(cadr pta)))& B6 q8 o/ \5 N2 p0 J: L# c
- (setq ptd (list (car pta)(cadr ptb))); p, L! u% o2 h& d4 ~% p8 [
- (setq ang (angle pta ptb))
+ P" E9 C& {7 C5 |; K. _) _9 \+ z - (setq d1 (/(distance pta ptb) 2))% [, j% e* j4 u# v% W3 h
- (setq cp (polar pta (- ang (dtr 0)) d1))
: d% a v0 A Q" {5 T; b$ Q - (setq X (distance pta ptc)): z3 d2 j" Y9 e4 N$ F A
- (setq Y (distance pta ptd)); C+ M8 d9 ]8 p" y/ ~9 N
- (setq X1 (rtos x 2 1))9 v; R& S2 }6 v& _& K! U S. b h
- (setq Y1 (rtos y 2 1))% z* G: Q/ d% S$ Q
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))) R6 J N: |8 u- J$ m4 A3 n. D
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))! q2 j/ G! |) l s- g
- (defun dtr (angg)
% [# C: Y8 L1 V; }" w - (* pi (/ angg 180.0)))
. A2 c* E0 Z8 Y. E5 @$ y4 M
- ?8 g* v! y e- ;=====================================================================
4 V8 w$ f+ H8 Y% D9 U: Z' k5 N - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================7 i0 s7 G& p0 |! c& J# o0 l" v
- ;=====================================================================5 Z0 c3 A3 n7 d$ W' K, S/ r5 q
7 ^, z @5 \# B$ o- (Defun c:a6 ()
% [% E4 u4 K5 b3 x6 j- W w - (setq mv_sc 100);Ti le ban ve
/ ]$ c b; z8 m - (setq x4 74.25), }* O3 Q0 w+ V6 t* n3 I5 J
- (setq y4 52.5)
6 m# Q" ^+ j- G7 m7 |5 H4 @ - (setq x4 (* mv_sc x4)
/ u# P$ J, X, X3 K1 A - y4 (* mv_sc y4) )7 M2 K2 Y% e. S: x/ u& [' w( F6 v
- (command / H! Y' o* _3 t+ R8 G
- "LIMITS" "0,0" (list x4 y4)! C7 d0 [1 f, d0 S# d E+ k6 S; Q
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- `9 n4 G% x$ Z; s9 J' q
- "RECTANG" "125,125" "@7175,5000"
. `' D, W" ?6 B- J7 C7 C2 Y - "RECTANG" "175,175" "@7075,4900"7 s/ k- g/ @" B- W7 N
- "ZOOM" "_a" ))
! A2 t4 y8 ] P) @0 ]+ J; L - ;=====================================================================
0 H& ~7 _$ o, f1 Y - (Defun c:a5 ()# p$ r& y1 |+ [/ j( e
- (setq mv_sc 100);Ti le ban ve7 q5 ?. v |7 i" d3 p( ?
- (setq x4 147.5)
& K6 a9 i5 s, a; y - (setq y4 104)& u+ d& I: @( k5 Y; v* v2 A: }+ ]
- (setq x4 (* mv_sc x4) B3 b6 i7 [/ J& ]& G2 T
- y4 (* mv_sc y4) )
$ ]. s& Y Y* G# q' e9 F. ? - (command $ b6 _9 R- B4 X3 o
- "LIMITS" "0,0" (list x4 y4)* j+ g+ j6 q, I' P# x4 `
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"1 ^0 N! t# X0 U8 E& c* F
- "RECTANG" "250,250" "@14350,10000"1 E T/ H. m+ [' y" y0 g
- "RECTANG" "350,350" "@14150,9800"
/ _# R4 x2 Y/ c - "ZOOM" "_a" ))# ?- e! w1 m3 O1 X& G: m( J
- ;=====================================================================
9 m9 k- c8 M& x& c& w7 i - (Defun c:a4 ()
) V+ V* S$ Z; V h - (setq mv_sc 100);Ti le ban ve
# ~3 d, `& c: ^6 |& {" s' o - (setq x4 297)
/ B* h7 A: ]4 d& R8 U" r - (setq y4 210)
4 b. N: F6 \% l* U+ @1 L - (setq x4 (* mv_sc x4) 9 m/ C* q* d2 b i& f' v
- y4 (* mv_sc y4) )2 v2 {$ A4 v2 y0 a1 e
- (command , w: ^9 j: R9 r X' t5 r3 g7 H& A
- "LIMITS" "0,0" (list x4 y4)
$ \1 _% H* G" w5 f0 x/ w - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C", U- `. F! z1 {( X' A, F n" ~
- "RECTANG" "500,500" "@28700,20000" a0 K$ v0 t, q7 F7 y
- "RECTANG" "700,700" "@28300,19600"+ l6 Q C1 s4 @. {2 {" f0 `
- "ZOOM" "_a" ))
, f$ c9 R( N% m, ~- F' t1 O - ;=====================================================================- V/ |/ Q% u6 t. `8 {* X
- (Defun c:a3 ()
3 K( q8 Z5 A ^. S$ { - (setq mv_sc 100)7 T$ e% P4 X5 ^1 ^; A
- (setq x3 420)5 _, k) w$ t3 O, J
- (setq y3 297)2 z8 \7 g4 P5 L. j! X+ Z
- (setq x3 (* mv_sc x3)
9 N/ I8 a+ S. {9 ` c4 z$ E, i - y3 (* mv_sc y3) )
$ }$ Y4 t) W+ a8 L' G% T - (command - u& c5 `. D$ k
- "LIMITS" "0,0" (list x3 y3)
" C2 f3 i+ {. p" i, f- O# g9 N - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
" x5 k4 K. ? E5 q - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"/ i4 R/ S4 N; @2 P' C }' t! o
- "RECTANG" "990,990" "@40024.28571429,27720"* l( r* m: j8 Q9 e+ \
- "ZOOM" "_a" ))
/ U& o6 h5 b O; b - ;=====================================================================" h) a4 b7 V+ S$ p- B
- (Defun c:a2 ()
( E+ b) o$ J$ M; R, e9 v, ^) y) G. ` - (setq mv_sc 100)
4 f8 |+ I; j( \) E z) ^ p: m - (setq x2 594)' E- F# f& O" t$ O3 M$ U3 \* F* R
- (setq y2 420)/ C! U* b$ h7 v' A5 p: Q& N
- (setq x2 (* mv_sc x2) * n5 u$ k2 d* t6 o6 m* I0 ~
- y2 (* mv_sc y2) )
. E) W5 y0 u7 m* S - (command
3 f+ T* n c. {; W/ t - "LIMITS" "0,0" (list x2 y2)
! Y+ K0 w% H* @6 B5 s - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
. A8 a9 [+ |$ a D - "RECTANG" "1000,1000" "@57400,40000"
, V' D2 J2 f( J, Z3 _% V - "RECTANG" "1400,1400" "@56600,39200"+ @6 O, y5 V0 W- P `
- "ZOOM" "_a" ))
$ F0 B) z4 C% t6 ~, A - ;=====================================================================+ t2 M" T8 ]8 d. c
- (Defun c:a1 (). q1 Y0 n- m! d7 m- m. ]
- (setq mv_sc 100)
. ~& O" k+ v! Y/ e- Z' F* ]# ^ - (setq x1 840)4 H; c5 ]1 |5 h2 L/ `
- (setq y1 594)
5 @$ _ g2 x5 A6 y2 J$ x6 _ - (setq x1 (* mv_sc x1) % p7 \1 ~& O% p2 s
- y1 (* mv_sc y1) )1 b3 @1 K+ L3 |; T5 I* l+ `
- (command
0 u* y& }8 w8 t$ ?* E7 o9 v - "LIMITS" "0,0" (list x1 y1)' ~3 f( @/ j( ]1 m# F% z
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"# \/ ^2 ~' n ^* X) ~2 s
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
/ ?1 ] }" I! b0 R7 F - "RECTANG" "1980,1980" "@80048.57142857,55440"$ s, A3 u5 o( w1 i; m: K1 @) W
- "ZOOM" "_a" ))
|, f" t' t* d; x* Z, ` - ;=====================================================================
/ u0 {2 J5 g1 ?- |) Y - (Defun c:a0 (). p. p( N3 F$ Y+ i# |
- (setq mv_sc 100)
+ r4 z Y8 b) A3 x% H4 Z+ u" L" G - (setq x0 1188)
" f( L7 w) _) r* _: I1 { - (setq y0 840)% M7 F0 p; P1 S5 J! ]( K
- (setq x0 (* mv_sc x0) / F& u7 F9 o. u- j6 P0 e0 g
- y0 (* mv_sc y0) )4 N/ [8 A! ]: O% N* ] I& g
- (command
0 g8 u ~$ O% z, e9 K - "LIMITS" "0,0" (list x0 y0)3 y* B; _% I V' R) ]
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"/ @; ]) E: X7 R; y' n- K
- "RECTANG" "2000,2000" "@114800,80000"
8 c) b- U1 i) R% l' x: M, t - "RECTANG" "2800,2800" "@113200,78400", [+ a w: M2 X! T
- "ZOOM" "_a" )). Y' b7 R0 n' S6 Y5 x* c' @
- N5 V" j! n: C! ^- ;=====================================================================
) u" z& ?# B/ b" S. E$ s# X7 @ - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================; _1 w( ?$ J. ^; \: r
- ;=====================================================================- p: e0 M" e' z0 @4 v4 Z8 t9 Y/ w
- # `) u9 `( T& q# F/ P: w$ `! B' p
- (Defun c:6a ()
- C \( Y/ C3 O7 L& d; X; @/ D% y - (setq mv_sc 100);Ti le ban ve
/ g# J8 p( B% b( k& Y( K2 ~# O7 |) }8 o - (setq x4 74.25)
) G# @ o. u. N6 @$ \6 h - (setq y4 52.5); t4 n2 g+ V; h& ~- h8 v
- (setq x4 (* mv_sc x4) , X) w. j5 Z% I2 S f* @1 D
- y4 (* mv_sc y4) )
( y7 O- N1 k7 _% W2 J" p - (command
, z- Q( t+ h8 x4 ~ - "LIMITS" "0,0" (list x4 y4)
9 d( k1 Y- \1 Q, Z- f - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; P2 ?8 f* i) H3 h
- "RECTANG" "505,125" "@6800,5000": v" X8 m$ ] ]; I" p0 ]1 G! ]' w! Z0 r
- "RECTANG" "555,175" "@6700,4900"
/ ~3 u; G" U/ U! X4 k" w! y - "ZOOM" "_a" ))
1 |$ }5 A5 L" [9 o1 d, ^ - ;=====================================================================
1 i/ u# S3 n: e* H' A - (Defun c:5a (); U+ o" j5 x5 x
- (setq mv_sc 100);Ti le ban ve% w. R0 G: F4 c
- (setq x4 148.5)
$ c6 B* b3 |4 K! d) j2 z+ C - (setq y4 105)$ x+ w0 _8 a/ P6 s$ M9 K1 ]4 R: D
- (setq x4 (* mv_sc x4)
; ~0 R& A' g' s0 g0 R+ | - y4 (* mv_sc y4) )
6 {7 w) S" r4 o, G - (command + T4 }) v% _ j
- "LIMITS" "0,0" (list x4 y4)
! y$ p3 @0 R8 `/ q& u - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
: c! c, c$ E& u _ - "RECTANG" "1000,250" "@13600,10000"
! s; e7 K( A( r$ |$ h1 [ G S8 O0 _ - "RECTANG" "1100,350" "@13400,9800"3 r0 x4 Y f/ q3 Z
- "ZOOM" "_a" ))/ D* p/ b+ I1 E8 @' n
- ;=====================================================================
: l C% O* M2 i* r3 q5 y - (Defun c:4a ()
/ a% C) _) n; X" K# m \4 ^1 m) P - (setq mv_sc 100);Ti le ban ve) F8 v/ o5 C/ _3 n# t( v
- (setq x4 297); k' N$ L4 [* i: P. Y9 w l
- (setq y4 210)* `# o( c" s1 X. a% M1 [' F3 n5 p
- (setq x4 (* mv_sc x4)
( O2 Q6 E6 ?' y+ w - y4 (* mv_sc y4) )
9 Y2 z# f* Q' N! V' p; [6 k7 B - (command 5 X+ Z: J( g8 D4 ]5 W, ^
- "LIMITS" "0,0" (list x4 y4)( {. V4 `3 a$ j6 R$ I8 J5 A6 T$ f
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
1 o6 N) w1 k% M1 c - "RECTANG" "2000,500" "@27200,20000"9 e- J; \+ ^) g7 {& s ]
- "RECTANG" "2200,700" "@26800,19600"
6 {! b/ `1 b1 Q7 r - "ZOOM" "_a" ))- j6 T% j% h' ~1 @6 \/ i
- ;=====================================================================9 Y9 r% L8 b& r* S; e& h3 Y
- (Defun c:3a (): W% D9 Q2 ^, _0 L3 V- z8 ~2 u
- (setq mv_sc 100)
: t$ V" J1 D$ ]+ ^6 ~ - (setq x3 420.0428571429)' _: ~7 I( ~ y* B# [( X
- (setq y3 297)
S* B- A3 ~1 h, U, }3 P - (setq x3 (* mv_sc x3) 1 P9 W" p( \4 ]' l
- y3 (* mv_sc y3) )
% s7 J# j* N' j$ H - (command
5 o+ Q6 \. I" P4 g/ j - "LIMITS" "0,0" (list x3 y3)4 R2 P4 d% m2 K6 L% J5 ^
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
* m. L* e; _5 z' J' m - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"9 X! h& o( X" F# C8 x
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"" O% _8 C5 E! Z; w
- "ZOOM" "_a" ))1 ^- d" ~+ A7 n8 L# `
- ;=====================================================================% y6 r% Y5 v3 G: E0 d" I) J) p
- (Defun c:2a ()- H4 G' ?7 P8 S; q6 Y
- (setq mv_sc 100)
. Q: {; w1 I& x" I5 [ - (setq x2 594)
! z, Z6 x- y8 f; [ - (setq y2 420); A; o; H( _- y: J/ w
- (setq x2 (* mv_sc x2) 8 n" p0 a+ v5 G) U$ y7 E
- y2 (* mv_sc y2) )
4 |% f! @# B% t" t - (command
8 {) ]* c' c9 | B3 k9 v8 @# H - "LIMITS" "0,0" (list x2 y2) ~; i! S1 U% X1 z) X: U
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
. k) ^4 A' c; @ - "RECTANG" "4000,1000" "@54400,40000") g6 O5 B1 ]& |+ y
- "RECTANG" "4400,1400" "@53600,39200"4 j! L, Q/ F/ g
- "ZOOM" "_a" ))9 H) `* I1 c1 C
- ;=====================================================================: o3 B+ u% l" O$ T; |
- (Defun c:1a ()" N+ N0 @$ B! l0 c5 {
- (setq mv_sc 100) [% g/ ~2 H1 |3 e# o. @2 E
- (setq x1 840.0857142857)' Y7 T5 Q4 g- t9 q6 g" P
- (setq y1 594)8 z' D% o3 L$ F$ p* x
- (setq x1 (* mv_sc x1) % c5 Q4 ~' V; r: c- P# M
- y1 (* mv_sc y1) )
; q" Q* Z' G3 u3 t/ C7 { - (command
. [# r: x; L3 U+ ^# v! H - "LIMITS" "0,0" (list x1 y1)
$ ?2 u. y+ {2 ?. g/ i" e7 x; Z - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
$ f. \" z, p$ s( r - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
( y% q8 ]* p- a5 J: \% `5 b8 |! l - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"+ G+ L, R# l8 v2 p7 C$ G W
- "ZOOM" "_a" ))0 O7 y" } D' `
- ;=====================================================================: | ~/ W- _6 o& L) P2 a
- (Defun c:0a ()
+ `7 K( s5 V$ T% C% J - (setq mv_sc 100). o, {( F- v( w6 U1 [4 Y- z
- (setq x0 1188); c0 l3 m% {/ W: K3 J
- (setq y0 840)
1 T0 N- u1 [' I7 ~/ {( g - (setq x0 (* mv_sc x0) ) E3 P7 H% L: H. e. E0 k
- y0 (* mv_sc y0) )
5 t3 U6 o! O7 {3 H - (command # ^/ _6 _4 b. ~, _( P4 ^
- "LIMITS" "0,0" (list x0 y0)
v5 V* R% ~* I5 _8 R7 r - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
# Z D/ O( c/ u. V - "RECTANG" "8000,2000" "@108800,80000"
% @7 a( _* b$ l2 q: } s- G - "RECTANG" "8800,2800" "@107200,78400"% W. f0 y7 t/ v$ |! f4 g& l
- "ZOOM" "_a" ))2 ]0 A% L/ K( j
* o; ]' r( n; _; |9 ]- X- ;=====================================================================5 v0 y: x2 D: }6 @3 ]( W& d4 T. ]
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================( b( @/ j5 C; k
- ;=====================================================================. o/ K, j( s i D- }
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)8 e* H, r& m0 m: b+ D
- (command "undo" "be")
; ]6 p9 x5 h& q' L - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
7 A' K" O5 C9 F& ?( ^. N& n- V - (setvar "CMDECHO" 0)! Z$ t( H4 k3 w( F* D; ~$ O1 b
- (setq a (getpoint "\n chon diem chen :"))1 \4 s1 z8 k, }/ z0 z5 d8 B
- (if (not TL) (setq TL 1.00)), ~, f* q: m2 r4 x1 Q3 k; D
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
) I2 @4 K+ i- V3 p8 O' ^" G( S5 t - (if TL1 (setq TL TL1))
0 o0 {5 z M; w. l% \8 ], B - (setvar "osmode" 0)
6 Q* B3 p' ^( k5 o# C" ~6 L - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
& K% Q; A1 e. u. R& s - (initget "0 1 2 3 4")/ j0 M" d2 {3 Z0 t7 U @3 c
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))% [ @+ }* h/ ` d, x K2 ]
- (if (= kho "0")
4 I7 s) r4 [# ~/ K: b; U - (progn- G+ z5 n J6 R- \: S
- (setq b (polar a 0 (* TL 1189)))
7 y! B0 O& `+ S: u( C - (setq c (polar b (/ pi 2) (* TL 841)))3 a* ` |: r3 x9 ^8 T2 w; J5 x
- (setq d (polar a (/ pi 2) (* TL 841)))( V& ^8 |: m4 b! K. o/ j
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
6 ~ r( |# ^1 o4 h$ c1 c; k - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))% X6 c4 M x/ m/ J# w' X" k# r
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
7 i3 U. g6 a6 N: O* ]1 [& d1 r+ D - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
& G. B* x" p* d* Y - (command "Pline" e f g h "c")
" v. s+ c, n7 x) F - (command "change" "last" "" "properties" "layer" "0" "")
# O8 K: l1 K& z# V9 g - (setvar "cecolor" "4")& _2 a; `! x5 I, x4 m
- (command "Pline" a b c d "c")
+ N, s5 ^0 t* O - (command "change" "last" "" "properties" "layer" "defpoints" "")))
8 o" M% Q8 B- S- ?! Q W" x% f$ ] - (if (= kho "1")' K; ]2 @/ R9 Z7 b* v
- (progn
; g) O+ Y9 I7 }/ Q p$ n - (setq b (polar a 0 (* TL 841)))
! \; n! G+ o8 f8 \4 }$ A( Y - (setq c (polar b (/ pi 2) (* TL 594)))* }( D+ q# P" f7 Q
- (setq d (polar a (/ pi 2) (* TL 594)))
[ W. a* l0 l( a% S, N - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
; E+ O2 H9 p0 v4 ^$ a6 m! s& }3 O - (setq f (polar e 0 (- (* TL 841) (* TL 24)))): C+ a; ]# f0 }/ W9 y
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
/ m; l! c* O) i$ K. `) e7 a6 \: u - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
( {: w$ U, V/ }! s% x; q& Y3 d) g - (command "Pline" e f g h "c")
3 Q5 T' W, t; q) X+ I) V - (command "change" "last" "" "properties" "layer" "0" "")& [/ S) m. p0 r. W9 e- \
- (setvar "cecolor" "4")
1 K; i; _6 l- I$ J- d z - (command "Pline" a b c d "c")
6 v# S2 b+ R ] - (command "change" "last" "" "properties" "layer" "defpoints" "")))
- n$ x6 i1 f) d0 A5 k9 ]2 n - (if (= kho "2")0 g3 S; }! k$ [% q; Z7 z8 L
- (progn; a- }* ]* H3 R8 m' ?( K* f& a7 E1 g
- (setq b (polar a 0 (* TL 594)))
" e' W5 {* K" G) z e# n - (setq c (polar b (/ pi 2) (* TL 420)))5 e9 Z8 r# f0 P8 K0 l0 Q
- (setq d (polar a (/ pi 2) (* TL 420)))* r! p5 j: P* u$ D. Z# I6 J# I
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))). n6 g9 m, r+ o
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))
B! e7 N/ B% E' M# G! u - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
) Q) X, O1 [4 O - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
5 E( J, c. W! P4 P* q% ^8 a( ^ - (command "Pline" e f g h "c")
1 \7 d6 L7 U5 @" ?& l - (command "change" "last" "" "properties" "layer" "0" "")! [4 y8 y: D, Y l" J- R# |9 g
- (setvar "cecolor" "4")4 e1 R, ?( ?$ H1 d: I6 W/ m6 |0 f
- (command "Pline" a b c d "c")
" N9 b9 @ y9 L s2 E - (command "change" "last" "" "properties" "layer" "defpoints" "")))8 T! f: i' k6 c5 J8 O, n
- (if (= kho "3")* m" `+ ^+ Q) [+ G% F; ^/ ?
- (progn
1 v! c) c# f) T7 W' p3 k; P2 \ - (setq b (polar a 0 (* tl 420)))6 x5 Q. } A) T( u/ K# i* `$ z7 t3 T
- (setq c (polar b (/ pi 2) (* TL 297)))! O: `: S4 W& {- h+ l+ P1 N
- (setq d (polar a (/ pi 2) (* TL 297)))+ A8 `' c7 _1 ^) h4 L
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
' `7 |6 c2 R! ^ - (setq f (polar e 0 (- (* TL 420) (* TL 20)))): j: [ h. e- r$ K
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))1 V3 z% v( L3 i$ H/ `1 ? Q+ a
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
8 u) I! v1 M0 s$ D" e p - (command "Pline" e f g h "c"), B& ]1 c, o7 Z' z$ c
- (command "change" "last" "" "properties" "layer" "0" "")
& g4 d. s9 |& a8 H9 I2 } - (setvar "cecolor" "4")
+ R- _* Q7 w8 ~4 l4 l7 G& i0 K - (command "Pline" a b c d "c")4 d8 ~$ ?# ]2 i0 b ?
- (command "change" "last" "" "properties" "layer" "defpoints" "")))- b6 ^4 f* Y# h/ F/ ^
- (if (= kho "4")+ g: ^' w3 E8 k3 M% u/ l
- (progn
N) C% _. A3 N" P% ~! ^ - (setq b (polar a 0 (* TL 297)))
/ s6 [% R- X r& Z% G6 N - (setq c (polar b (/ pi 2) (* TL 210)))
. t, x- m) G3 e- C' J - (setq d (polar a (/ pi 2) (* TL 210)))
- p% |0 b! m& `5 H4 W; r - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))2 h% \8 y) B+ N0 Z, n
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))) e4 d; d8 N2 b+ M5 ^. z
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
$ j9 E$ ~" ]; z: {) d0 _ - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
" m1 L4 j: X4 v7 G& n - (command "Pline" e f g h "c")
) \5 S" r( z0 P, e) ^ - (command "change" "last" "" "properties" "layer" "0" "")
7 s8 x* B5 ~" Q q9 X - (setvar "cecolor" "4")& s6 r0 ?) N7 @ v
- (command "Pline" a b c d "c")
5 P" C$ C4 Q2 j5 J& T4 } - (command "change" "last" "" "properties" "layer" "defpoints" "")))
7 @4 Z2 A( F5 ^' p; u - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)2 @5 y4 ~% k1 y' I
- (command "undo" "e")
& B) K1 s: |) Q# p* e - (princ))
; E' V* i/ H/ ]3 R9 l! L) Q5 Z - ;=====================================================================: L& u- R& E& F: m M2 }
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
" W( O( A' {$ i3 l+ N' y+ I - ;=====================================================================) B1 G. @' g% i
- 4 n% |6 o o( T* C5 r5 n: n
- ;=====================================================================
# R; V' A: k7 Z; l. V - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
5 Q: U7 G5 ?4 q4 z L) n* ] - ;=====================================================================
- F# D& n1 x' n0 Y
% g. ]5 k. O2 s" S- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""5 u1 Q. t; t& s& i
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""9 a: t% x' g1 E3 [/ \9 B% V b
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""! ^" P6 u5 i8 A2 ?
- "M" "TEXT" "C" "7" "" "Lw" "0.12" "" f" K0 k U1 z7 C, F
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
5 M, x5 ^1 L" Z0 j+ Z- `9 }: T) g - "M" "THAY" "C" "7" "" "Lw" "0.2" ""$ h; o: G; z Y4 u5 U; W# A: B" h! v
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
$ g# m* d, y: R+ g& B } - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""2 _0 {- {) y3 }: l( q
- "M" "COT" "C" "1" "" "Lw" "0.3" ""7 m; O: Q- ]" I) p* c
- "M" "Defpoints" "C" "7" ""
. F0 Y' _+ R) i: s - "M" "0" "C" "3" "" "Lw" "0.12" ""
: G1 e" k- ]2 q8 B7 U - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
, k: a0 F$ @9 l$ H - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
/ F, {! {. @: [* K3 U - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
5 S. R7 f H8 O; g; x, O - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""- o9 ?! y( a# y& y0 h! I& t
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" "", L( Q! i# b! S7 U% t/ A# q. ^3 o5 r" H
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
$ C1 Z% ]9 a; [. \$ @$ ~; B - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""9 Y) X5 d& d& ]0 \
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""& L C1 \& E& R2 h/ P
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
& c& ]1 Z; F& s8 Q - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
0 ^5 _$ @1 e9 S8 Y7 V7 F - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
0 F3 T) Q( W( ^9 Q - "M" "COT" "C" "1" "" "Lw" "0.4" "". V9 Q( Y1 D; d, N
- "M" "Defpoints" "C" "7" ""& I* Q- f' Y3 H( T3 {" w- v1 s
- "M" "0" "C" "3" "" "Lw" "0.2" ""& X0 {# C- N& }# D- G) @- L
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""6 U# t4 q3 i) @* G& B$ Y$ c
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
' b2 t4 b7 Q K- n0 L - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
5 y2 R( b4 n6 K2 u - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
/ H( O; q b6 p) E) d# d/ t( Y - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
8 x" f6 C1 [8 V0 x - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
) G+ R4 i: S% _; W - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
9 e f% U: e& d; x$ S4 | - "M" "DIM" "C" "1" "" "Lw" "0.25" ""& S5 k% y2 `! b: Y: M
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
3 E v) ?. Z% b0 T8 l& e - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
( C& i4 L+ h l. Z3 \ - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
* P( ~: A1 o! i( K3 |; J9 e2 Q - "M" "COT" "C" "1" "" "Lw" "0.6" ""% g& ]4 Z8 z( a; R3 J
- "M" "Defpoints" "C" "7" ""% E+ u, d: o5 |8 p
- "M" "0" "C" "3" "" "Lw" "0.25" ""
/ X9 b0 S# ~. }" E7 @% r, S8 G - "M" "CUA" "C" "6" "" "Lw" "0.25" ""4 b2 h% }5 J* b8 M7 u0 D6 l R D' X
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
9 h6 [( R- V- E, ]' C - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
$ Y8 U E, l: n0 E- l4 U3 F; l' F -
. h; ~2 m0 V t - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""! x6 p+ W$ f( A! ]
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
. N$ e, w$ u0 ?+ y9 k( | - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
# U8 M! V' E8 a - "M" "TEXT" "C" "7" "" "Lw" "0.2" "": l7 r6 k$ e5 w ?2 [! g
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
9 F2 g( a3 S5 u - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
$ m$ F+ L y2 p' w* m - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
# D+ S+ F" s+ [( Y0 p( S: a5 I - "M" "HATCH" "C" "5" "" "Lw" "0.2" """ N; u0 }$ R' j8 ~ k% r" ]( o! x
- "M" "COT" "C" "1" "" "Lw" "0.7" ""0 n" Q2 `, ~" d7 L8 E
- "M" "Defpoints" "C" "7" ""
+ \) L" Z& S- J3 N. m - "M" "0" "C" "3" "" "Lw" "0.25" ""
; P# e7 ]& J9 Q- V, C* ~ - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
! \1 Q# W# M; \ l/ ?+ y - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""$ P. Q8 t, s; E
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)# `% {) `8 P" l; O9 s4 r$ U
a; `& e- [7 h; r4 z& s. Z9 o- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""' H- Y$ x: v( \4 ?# \8 c/ P A3 M
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
: B, N7 P8 J6 w; { - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
?+ f$ Z4 \) y0 z* ^ - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
3 g U3 |6 h" J, G1 r, a, T+ q - "M" "DIM" "C" "1" "" "Lw" "0.3" ""
6 C( } l' h: F5 z - "M" "THAY" "C" "7" "" "Lw" "0.4" ""- F: ]) \# f9 B% q6 v$ G
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""! A4 a" b9 y0 X6 f# Z8 W) j. x8 J
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""2 [" y1 t" J' t9 p7 [9 g7 c
- "M" "COT" "C" "1" "" "Lw" "0.7" ""5 C. L, F/ ?: E# R1 g/ A: x4 z
- "M" "Defpoints" "C" "7" ""
6 \, o. s: j$ V: \ {; E- r - "M" "0" "C" "3" "" "Lw" "0.35" ""
2 F. O( ^5 R( b$ G8 P2 n# v, ~4 u6 m - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
: U$ ]# r. B* D: {: v( D7 N - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""3 Q1 N$ v) f/ W% X
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
' k+ B: i2 c! P
5 o3 S. b4 u, b- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
2 K; E7 }& l( D$ H! i1 @- L - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
) N5 b, w; z/ o/ o/ [ - "M" "MANH" "C" "9" "" "Lw" "0.35" "" o' U# e' Q4 G* z* s2 X
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
7 a/ }$ ^" o/ t: ?: \ - "M" "DIM" "C" "1" "" "Lw" "0.35" ""8 D5 _' J0 O* X
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""- @" J) E, `7 R) h$ j( c
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""5 R- N r4 i, x3 d8 c' B
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
1 k" X5 N& w4 d - "M" "COT" "C" "1" "" "Lw" "0.85" ""
8 O0 D% q( ? ~( q6 {7 I! b - "M" "Defpoints" "C" "7" """ Y/ r o. b: ]
- "M" "0" "C" "3" "" "Lw" "0.35" ""' T( d. i' B: J: z- ]* p
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""* o0 x: Z7 C* L+ c' |' s5 e
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""& Z2 o2 D l" u% r8 e
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
) k4 y3 {) Z# U2 s3 d - , E& X1 k: u5 D% ]
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" "" R2 L+ C- ^/ j1 g. u3 }5 O# D5 m
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
/ w& H; \ @% P# n+ }4 B - "M" "MANH" "C" "9" "" "Lw" "0.35" "". ?% ~: D1 D2 J+ }( h. p
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
9 u0 }3 v# C8 d% H* q - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
7 X) X, A+ z0 e9 N - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
6 |' G( \- q% n3 a3 ^ - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
2 e, X4 G8 W) u9 W% e* _9 z. b u - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
7 \2 r" A1 I0 S* v* j+ g - "M" "COT" "C" "1" "" "Lw" "0.1" "". t& B/ D/ Q8 v( K. F
- "M" "Defpoints" "C" "7" ""0 s f: P% L1 }1 p6 W1 } l3 v
- "M" "0" "C" "3" "" "Lw" "0.5" ""4 N/ _0 p- m- d6 k; n( v! E
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
* J1 k X) C. a( S) Y* j - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
9 t/ r4 [( J5 r6 N - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
) B% N4 |5 c! }/ ?! H6 a z7 r - (DEFUN C:O () (COMMAND "OFFSET"))9 [* a* `' V. _0 {/ `2 X+ P2 n1 O
- (defun c:s1 () (command "surftab1"))
1 e5 t. r3 E. p" |7 Y% l - (defun c:s2 () (command "surftab2"))
$ _ L! i+ z# B0 p+ W: l8 O F - (defun c:ep () (command "explode"))
4 G+ ~) S) D& Y) Z; A% l - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
' _0 |% J/ R, P/ \0 I0 z - (DEFUN C:QV () (COMMAND "QSAVE")); Y; d4 f# d$ o2 }
- (DEFUN C:S () (COMMAND "STRETCH" "C"))" h+ V1 C1 j$ U1 u; Z3 g
" ^/ k Q! i# ^; `( x; h% O- ;************************** CAT DIM **************************4 c& n- }, s* E- d0 ]
- ! B1 ~2 g* v e6 W* q0 C9 S; |
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I4 k+ ]0 v! p3 h/ `
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)1 m* s' {; `+ w7 W
- (SETQ CMD (GETVAR "CMDECHO"))
3 }$ O) ~& W! O: @( H - (SETQ OSM (GETVAR "OSMODE"))+ N! B1 J$ G/ |5 Z; F$ r
- (SETQ OLDERR *error*6 @- i0 r' X0 ^- \ x4 E
- *error* myerror)
' z' ?1 U/ t4 _& O2 ^ - (PRINC "Please select dimension object!")9 H! `( a: p# j& P
- (SETQ SS (SSGET))
! E {% l" v) L4 | - (SETVAR "CMDECHO" 0)
' W. }, E- ]4 b( c$ Y6 O) V - (SETQ PT (GETPOINT "Point to trim or extend:"))
( t# D4 }' P" Y1 T' z y - (SETQ PT (TRANS PT 1 0)); G3 g! d3 x1 \$ `
- (COMMAND "UCS" "W")" ?8 ~& \1 O4 l; g1 k6 ]# |
- (SETQ LTH (SSLENGTH SS))6 U' s5 w+ d: C& A* f: y
- (SETQ DEM 0)* C" [# l3 N: t* X
- (WHILE (< DEM LTH)
3 @, P4 i8 J6 y% C' C - (PROGN( M; X7 X; D3 W% U7 a, s) Q
- (SETQ DS (ENTGET (SSNAME SS DEM)))
" K( E1 a! `5 e3 S% W - (SETQ KDL (CDR (ASSOC 0 DS)))+ _6 U m2 m7 P4 q8 e' K9 p' L w
- (IF (= "DIMENSION" KDL)
* Y6 ]) w; {* i- O4 | U - (PROGN
E6 U3 p4 [. q0 G4 y2 B - (SETQ PT10 (CDR (ASSOC 10 DS)))
3 m' B8 w, `* F0 ? - (SETQ PT11 (CDR (ASSOC 11 DS)))
* [5 L6 @/ f0 F$ O - (SETQ PT13 (CDR (ASSOC 13 DS)))
' e( w6 C8 D* E6 h1 E - (SETQ PT14 (CDR (ASSOC 14 DS)))- V& a, |. a5 ~& i- D
- (SETQ N70 (CDR (ASSOC 70 DS))); p% J5 x' [9 Y: x& }
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
5 X @$ R, W) r" h# Q - (PROGN5 x* e/ M. t; Z9 G
- (SETQ GOCY (ANGLE PT10 PT14))9 {( A9 T5 C7 |* S- A$ O) d
- (SETQ GOCX (+ GOCY (/ PI 2)))6 A, _. ~% i5 E- z5 n8 z* N/ d+ A8 A4 R
- )6 e. c" I( x$ X4 _0 T
- )
) [7 @5 _) @1 ?, m0 ^" r - (SETVAR "OSMODE" 0)
8 F9 T7 [ e$ c2 ?2 ~ - (SETQ PTI (POLAR PT GOCX 2))" W& s# q- k3 y) D1 L
- (SETQ PT13I (POLAR PT13 GOCY 2))
7 S7 V3 \; j9 a* u* |! g0 [$ p# F( F - (SETQ PT14I (POLAR PT14 GOCY 2))" J* [$ s, \" f. C
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
0 N' n2 [( O4 t/ W" P* C3 V - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL)) w1 m, S: A1 [
- (SETQ O13 (ASSOC 13 DS))
) [( @! k; y0 b* S - (SETQ O14 (ASSOC 14 DS))8 a& n; k! h! T
- (SETQ N13 (CONS 13 PT13N))2 o% Z+ x* A- p: P' a* A0 L& b2 _
- (SETQ N14 (CONS 14 PT14N))
; }& I6 E7 k# f7 t: I# K4 j - (SETQ DS (SUBST N13 O13 DS))
5 w( o# L1 C! L+ o - (SETQ DS (SUBST N14 O14 DS))" p8 S/ F8 v$ ~& z- j% `8 C
- (ENTMOD DS)
! I& _+ o8 p8 e1 J; c+ ~2 a - )
7 ~; L- g- `7 [3 ^; S( f3 c8 m+ ? - )% ~1 Z* p% m6 Y4 l' |3 O0 B4 T
- (SETQ DEM (+ DEM 1))3 D2 D3 X. u( J8 [* b; X k7 A
- )
4 x; R( A- V T3 T, C, z - )& M K$ [( R- k$ ?/ A5 ]& d$ O
- (COMMAND "UCS" "P")
. r) ~* b: Q! U) e7 K - (SETVAR "CMDECHO" CMD)
A1 F' T" w0 p4 x1 g. J2 d - (SETVAR "OSMODE" OSM)3 x5 r$ d6 N2 {* U. r4 h
- (setq *error* OLDERR) ; Restore old *error* handler
p) o8 Z* l+ [ K7 e; k4 d - (PRINC)
9 f6 ~5 ^$ L: t" a# G - )
2 a$ A) c' i l8 A4 ]$ _+ U
* I5 R- S: r3 \- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
$ Y0 U; B. h5 |- H; f: r - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)3 P# M) j6 }- W( j/ }
- (SETQ CMD (GETVAR "CMDECHO"))( B6 i) x/ N. g0 Q8 w
- (SETQ OSM (GETVAR "OSMODE"))
% e2 ~, K9 {0 I/ Z. g - (SETQ OLDERR *error*
# e/ O- j2 S3 X9 @ - *error* myerror)
5 N( j) ]8 r4 c% X. z - (PRINC "Please select dimension object!")
d0 k% U$ j$ w& V2 t9 X - (SETQ SS (SSGET)). W( s' _. R: y4 g" l5 M
- (SETVAR "CMDECHO" 0)# l; s! S" a& N5 Y
- (SETQ PT (GETPOINT "Point to trim or extend:"))' Z% M: b4 Z" N @
- (SETQ PT (TRANS PT 1 0))
( k% Q& _- H" L+ N8 X# c - (COMMAND "UCS" "W")8 ~3 E: U, U3 o# q7 N, U: g+ k# e, _
- (SETQ LTH (SSLENGTH SS))
, Q- c. f& A. n/ D' B - (SETQ DEM 0)
# m* [3 W% _) B2 _, ` - (WHILE (< DEM LTH)3 {" A; `, ]- @3 P( K# n
- (PROGN8 k+ }9 j1 R$ t1 v
- (SETQ DS (ENTGET (SSNAME SS DEM))), `9 w6 q8 c# t/ L5 a. K, T! s: a
- (SETQ KDL (CDR (ASSOC 0 DS)))7 J1 Y6 R# q% L7 f, \1 A, R! h
- (IF (= "DIMENSION" KDL) a( ?/ w/ t4 U! n" V* W
- (PROGN
, Y! `: }4 f0 ?9 S; v - (SETQ PT13 (CDR (ASSOC 13 DS)))
0 X' s+ S% F$ s4 {$ h6 @4 | - (SETQ PT14 (CDR (ASSOC 14 DS)))
" j/ h1 l. \& G% y - (SETQ PT10 (CDR (ASSOC 10 DS)))/ @5 ^5 z ]. F' {1 ?
- (SETQ PT11 (CDR (ASSOC 11 DS)))2 r5 b3 A, _4 m* F9 `/ {3 Q
- (SETQ N70 (CDR (ASSOC 70 DS)))
: L$ e2 _ n7 R- V - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))# H `+ I+ [7 S
- (PROGN! U# h2 d8 v) U3 v
- (SETQ GOCY (ANGLE PT10 PT14))9 c6 K" r5 w" P$ q1 e0 A& E
- (SETQ GOCX (+ GOCY (/ PI 2)))
+ T4 ?& ?/ \2 B% o7 \ - )
0 B# i3 v {/ z* ]. m8 R - )! W* L" w; M7 ]3 g
- (SETVAR "OSMODE" 0)' L( f: c4 j3 D9 I$ w+ _
- (SETQ PTI (POLAR PT GOCX 2))
8 H: D" j% T6 n - (SETQ PT10I (POLAR PT10 GOCY 2)) b/ E3 I# r" Q: f: W
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))3 u% z1 y c, i, D% M2 K& T
- (SETQ KC (DISTANCE PT10 PT10N))
: s% T' o# H6 s2 Q% i- r5 Z5 p - (SETQ O10 (ASSOC 10 DS))
* i$ M1 b1 ]6 @% j4 V, ? - (SETQ N10 (CONS 10 PT10N)); S" H& i( j; J7 P7 ~! r. L
- (SETQ DS (SUBST N10 O10 DS))" n- S. v, j: R: k
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
5 f' W% _, h/ x; @ - (SETQ O11 (ASSOC 11 DS))
$ x0 |- s. S5 O8 j e0 q2 y - (SETQ N11 (CONS 11 PT11N))+ I9 L6 C5 S7 C1 G2 A% V2 X* X
- (SETQ DS (SUBST N11 O11 DS))0 W9 a5 D8 |" l" X9 p
- (ENTMOD DS)
5 ]/ s- l; V; t, I5 b/ B* _- E - )
K# a. s2 b5 u+ G8 V- A. w- l - ), j( j) o1 [# o, t
- (SETQ DEM (+ DEM 1)) Z0 [8 D3 Z* y
- )4 V: A) g* l8 b7 N* U' Y9 a
- )
% N9 K$ U; w& h- B9 J! E - (COMMAND "UCS" "P")& j3 \; o" O7 ~/ u3 K& L
- (SETVAR "CMDECHO" CMD)
5 [) v# C: a4 B - (SETVAR "OSMODE" OSM) V' r/ D2 C I1 [) u2 z
- (setq *error* OLDERR)
2 r- Y& o+ c: D: F" m+ G4 l - (PRINC): ~. {' s* }1 |6 o) x
- ). G# Z8 c3 d7 @6 K! P8 \/ ^$ G
" K& f1 _( s, J$ A" f8 f- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
3 \/ m ^, D; o) S; N5 @- Q - 2 G# n6 ]+ C' i( v( s
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
, L) V2 \/ Q. X/ P' O - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")3 V4 O- t+ L4 W0 P
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt6 m, d# `% ~6 d4 q
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))3 d5 e1 w5 N4 X% E& G
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
/ c4 ~2 K' ?3 B1 z - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))( V1 e# S5 f% e
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))) m- R" h3 q1 B# [/ W9 {- W
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))$ n8 C, }5 X' r& Y+ O! K: _6 Q
# V: l* A9 t; ]) N- ;;; ================ CHEN COT (TUU) =================8 _; e8 j$ A9 Q- X
+ n# f+ x2 h5 [. A7 g7 D- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")' w+ z c/ W" W* `9 g
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")5 T4 f% Y" j! ]3 \8 s o7 O2 V
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
3 c5 c/ g8 `4 y3 i3 C5 k - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
8 ?# ]' A+ A3 r) y- i% c- R4 } - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")2 q: T7 S( _* @. \# O
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))5 W% ^/ M7 Z' s: Z& w c
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))8 ?( g4 M& n. q9 r' k
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))) O' e* R( f K y3 _; G" _
- 7 |' c) Q0 H* j$ ?
- ;;; ================ CHEN KY HIEU THEP (TP) =================
r1 n- K9 K* O2 y: K+ G - . D4 M5 a1 w) }) Q/ }# |" R5 w% P# v
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
/ M4 S" L4 Y* L4 ?# f" N - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
1 n0 A8 l% y6 l# e - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
1 q3 s8 y' o4 E" @7 q9 d4 O - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
1 R% M, p/ ]$ A' {! |% N - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
F& ~1 ~2 K" g- X2 X- | - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))1 o2 F" ~8 q4 d4 {2 x0 B
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))2 j5 h& q* x$ ]3 `( j6 J
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
: {2 W% Z9 }4 l" F - ( C" ?' ]3 C( E% U; S: _4 _, @
- ;=========================== TAM TUONG (TAM) =================================
) A6 r1 n, g5 Q) c+ d. V. y
0 |# s7 S/ u- e- (defun c:tam(/ data_m)
# B' e& C6 Y1 I( L - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
& s: L H7 p& t o( H* y @1 ^ - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
% O$ X$ G9 Z% L- } - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)3 C4 m7 u6 }8 b8 j! r% v: t R
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset4 B1 N4 F4 [# T6 T
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr f2 l/ F9 S X6 I6 b1 G5 y9 w
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)$ J7 B* C$ `3 \; S& ?& z% ]9 \
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
( A; c) @( I/ v% @! F - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)0 q5 ^ C( H/ y) |
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
+ f8 ?7 r* D# B' a7 n/ { - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))) W$ v e/ p7 J( r% w. |( p3 a' B
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
8 g$ N) j. J1 k k8 [ - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)# z$ t5 ]7 H( x# Y
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))4 g9 M4 N; S/ i
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4! n$ G1 r3 z9 D( U$ Z6 @6 z
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
5 z+ e& A L' T6 y& o - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
4 { G* s! l" X% e/ F/ d+ K9 \- m - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))( N. Q- N d) T8 Z; b
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))5 D, m$ r8 u9 \* p r2 V
- ) a/ z/ t0 s- L+ z0 a; [8 e7 R
- ;============ GHI CHU PHI (T1) ================
+ t7 J! D/ W4 J6 u0 z2 z. K
# L. q- I% g3 F5 d) y+ k- ?- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
) i; N) t6 k% M" f. D. z9 I7 G - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3+ H3 ?8 x5 ]9 F% C9 r, T
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)2 Q6 U. R. P! H5 P! D! ~0 L
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
- i9 K; B4 Q5 s( t - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1)). H1 d5 |( d% N4 a! F+ _+ p
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9): h9 ^6 |. H6 S# ~, S, j
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
7 l' @( J4 O2 h1 Y - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )5 W- ], w9 c- U' J/ E
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
& G$ z5 r1 N, ?! F" S0 h0 C - (command "ddedit" pause))
: m6 v! k, {& [ - % a: n; R" u% ^. U! r& a6 w
- ;;; ========================== Join (J) =================* [% G! @; L% Y
- , I8 `: D& O: F
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))9 ?' {- J. @; L4 @. m, e
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
$ \4 o D, L" L9 ] - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)4 F/ i. r: V' U5 Q; o- F
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
! y9 s6 u5 H' Z$ @6 p - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
& p' c' m B2 X) e1 m1 c8 X - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
0 v& |6 T& j* o5 W" [ - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) 6 p' K0 l. l; C# W; f0 T
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))" [( S$ U- p/ z: P! Y
- (setq *error* m:err m:err nil)(princ)). z6 A0 z+ ]4 N! B v
5 Z+ V/ h s9 ^7 Z- ;=====================================================================: |+ Q* a; l$ I
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.' ]3 \6 K+ r6 f) V* X* h
- ;=====================================================================! a/ G% }8 g6 k( `
1 S' V8 J3 K# `9 c* H' \- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
. i( I b2 Q# F+ ^ - (setq old (getvar "OSMODE")) # p$ q; {2 B# f; ?0 r5 i2 l) w
! S6 v& r }$ I- (setq p1 (getpoint "\nStart point:"))
4 V {0 W$ s+ c3 O9 }& x - (setq p2 (getpoint p1 "\nEnd point:"))
0 ~; h4 T% S5 C9 p2 ~ - (setq side (getpoint p2 "\nOpen side"))6 W; z z: P) [4 s# c, b9 t
& G/ C8 \- C* e/ W* @9 z# _+ e- (setq dis (distance p1 p2))5 E; q T. y4 h, m- b
- (setq ang (angle p1 p2))! }5 T3 }$ ~* m' n0 N- f" @: s
- (if (< ang (angle p1 side))1 B) X g4 W# E f! a
- (setq angside (/ pi 2) )
! a5 x, [) ~; H- [% F& L" l/ } F% C - (setq angside (- (/ pi 2)))/ e* P1 o) V) B: r
- )
% ], M o* L3 t$ L6 m0 q - (if (>= (- (angle p1 side) ang) pi)% U& y$ S: [5 J) H* r \5 ^
- (setq angside (- (/ pi 2)))- @; p; Z+ U( w- Z N9 ^- u
- )" r( ]5 l. W/ C
- (if (>= (- ANG (angle p1 side) ) pi)
9 K% J9 n$ p( D - (setq angside (/ pi 2)); q6 a( i) I$ J) G
- )
4 Z5 ~# J2 u8 y" s. ]
# F% j! c, X' b6 z" g+ ?9 t+ S$ A r. n- (setq p3 (polar p2 (+ ang angside) dis) )7 A+ b5 V0 L9 d, p5 o9 a
- (setq p4 (polar p1 (+ ang angside) dis) )4 e U* f4 R( G3 n5 J; \4 y
- (setq wid (/ dis 15))
; M8 }) D9 ]9 }/ B# f - 4 _/ J2 f3 k! l% Y0 W. k
- (setvar "OSMODE" 0)
- B I! m" T1 ?( W
! k$ x1 z! a4 `( v- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 2 B! g8 q$ k9 q* f7 L, P: T
- (polar p2 (+ ang pi) wid)
7 E& v! ^) o7 ]/ @ - (polar p3 (+ ang pi) wid) ) T) \# K/ J" M
- "")
' J" \. x# F, \# B
! W$ C/ {* t- a: n9 K% @& z0 ]- (setvar "OSMODE" old)2 @( w* z% k; E% p5 n1 }
- (princ)
8 o3 i) \ C( m7 `( ?& N1 L. B6 L - )
f& ^4 m' B, O7 P, Q' m2 `
: _# v: T( |. C1 ^- ;=====================================================================
3 Y7 w8 ^" S5 x% n4 u
# e) s" W6 d1 X4 a- X- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
" B$ H2 o2 Y! m, K - (defun cua1 (pt1 pt2), m. u4 L- U) t# X/ u; A; |
- (setq p1 pt1! |/ D1 {4 Z1 P, l" N0 N; \) O% |
- p2 pt2): `4 n) Q) V, H) O" H
- * P6 B( b/ R8 _2 S8 `2 t; l
- (setq ang (angle p1 p2))
6 O1 E" @9 H; D" U6 P1 Q4 { - (if (< ang (angle p1 side))
) p, A9 R' D ^% x t3 L: E* B - (setq angside (/ pi 2) )# S$ G1 ]7 ~( o: ~( [2 x' L
- (setq angside (- (/ pi 2)))
3 M# [* m5 v) Y* K! T" q: \7 r: L - ), U$ ~- {0 n; w+ V4 |) F8 p7 T
- (if (>= (- (angle p1 side) ang) pi)% d8 q5 ^! U" C/ R& N; G/ ^
- (setq angside (- (/ pi 2)))* ~7 c, L/ p! {% g
- )- E2 B, i, y ]1 t J
- (if (>= (- ANG (angle p1 side) ) pi)
) f, s- ?: \! v - (setq angside (/ pi 2))) p7 R- X; O7 u$ a6 \+ I' O# I
- )
5 J2 o+ s+ y, f
! u0 Q" ]5 |, ^8 ^: e- (setq p3 (polar p2 (+ ang angside) dis) )& Z2 t& w) Z. K2 @; o) |) U
- (setq p4 (polar p1 (+ ang angside) dis) )( P) Y& Y- x! g9 M& Z& f* _3 E
- (setq wid (/ dis 15))6 t9 @9 p0 g2 [7 { g
B4 _" r/ V$ E+ O1 I2 W& V- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 3 ~2 R# O% ^0 Q1 g+ d: A8 K
- (polar p2 (+ ang pi) wid)
- F* Q1 E+ O; j0 |4 [* A& |; n - (polar p3 (+ ang pi) wid) : g, c3 R2 x8 I9 i% r+ P
- "")
+ s; K7 Y$ |+ Y$ b) p0 m2 S - )% ^1 [4 K! z4 Y. z. Q: q. \! B: ^
- ;=====================================================================: }! D& R: f, b* o( P
- (setq old (getvar "OSMODE"))
" b) L' |, S5 I - ! }8 a; k% r1 n6 D- C" f7 s" b; p$ ?
- (setq p1 (getpoint "\nStart point:"))
" J4 q7 E Y7 x8 \# G - (setq p2 (getpoint p1 "\nEnd point:"))4 h: f& O# N- ?) @2 f7 P7 X
- (setq side (getpoint p2 "\nOpen side"))
$ _+ {0 O P+ M! B4 ?# g+ N
; K& {6 h( N8 }! g5 z& W- (setq dis (distance p1 p2)) w0 m7 O+ o/ ^% ]) V
- (setq dis (/ dis 2))
/ F n" z1 f) J; }1 X, w/ _9 x - 4 {9 {$ r7 O& E8 { r9 j7 z, E
- (setvar "OSMODE" 0)
" S; F/ J& D% @1 y - 2 G4 _+ D! z* b! c/ A1 p. R
- (setq p1 (polar p1 (angle p1 p2) dis))/ G5 H/ z4 v' I( Z# o* r5 B
- (cua1 p1 p2)
2 S# j W6 p( s# j5 L8 g - 5 }& u" B L [% Q# i+ C, z$ x# R
- (setq ang (+ ang pi))
6 b. z6 x/ {& V8 ?! X6 A - (setq p2 (polar p1 ang dis))' e+ ]! T3 @) W8 A! F" v4 Z
- ; (setq side (polar p1 () dis))1 ]0 B$ K- R% i3 z- y
- (cua1 p1 p2)
5 X" I' r* U! G
; u* p- t* l/ V( e- (setvar "OSMODE" old)
: ~& m$ g; ]5 N3 |$ L/ K9 A - (princ)
+ E0 W; S5 e: s' E - )
7 m- s& x0 s( o! S% D) L - * Y' `" Y2 I0 r- z* ~9 `# |
- ;=====================================================================
9 v* m* v; T1 W - ;"Glue" text strings. All adopt first's properties.! D4 z& R' ?" E1 y$ [, M
- ; Author:2 x! G5 B2 S* W2 X! H
- ; Henry C. Francis
: Z, f6 i' [# C% L) @5 F* r - ; 425 N. Ashe St.
: R1 M2 y: \ H# v, |: I - ; Southern Pines, NC 28387
- G2 c0 W5 X& F) T8 B- D - ; http://www.pinehurst.net/~pfrancis" N% u P4 s& e6 P
- ; e-mail hfrancis@pinehurst.net' _0 X3 [% O8 c5 o3 k
- ; All rights reserved.
% K: F9 T) [1 e" n! Y - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)" L- F$ t. Z2 m7 c3 S: F9 U
- (while% S7 [% S. Z Y3 M
- (not
3 l8 X3 @% v# U0 |; |3 B( ^ - (and, [- s2 W6 D0 \# A* | F
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))( q' C& j# Q% J+ c4 o& F
- (setq ent1 (entget ename1))" k& p H; M# |
- (eq(cdr(assoc 0 ent1))"TEXT")
2 r) C* ]2 m, i: U f+ y - );and
; E; C6 T$ I4 J& j" \, s% j/ ? - );not
+ `: V) ?0 @( F& f* q( U7 H$ z' P - );while0 w) m( y' H- I. f& ~, v7 H
- (setq old1 (cdr(assoc 1 ent1)))
9 r( K2 r' H( N0 H! W6 n - (while2 t" ~; `* R: ~( t% x* u* Y/ R
- (not8 ~$ a w r+ N3 W7 l
- (and
0 c2 ]! Z/ |( Q8 y1 p - (setq ename2 (car(entsel "\nSelect second text string to join: ")))* ~/ i# Z5 U" P, \$ d* D
- (setq ent2 (entget ename2))
; A( w, c: H4 u( a5 }1 U - (eq(cdr(assoc 0 ent2))"TEXT")8 R* ^3 y6 U+ g8 k& [! y! J
- (not(eq ename1 ename2))- T( J* E' H2 T, }8 } l5 n _6 m
- );and9 q% z" ? S& [( m& A6 T
- );not. T* d& J. u0 c+ y" @0 Z
- );while
0 x4 J$ k2 s. G1 I - (setq old2 (cdr(assoc 1 ent2))) e2 I- K. G* j
- (setq new1 (strcat old1 " " old2)
- ]& o/ b: ~- ~) S - ent1) A h& _/ e9 C6 ?
- (subst (cons 1 new1): u$ |9 J& q3 x2 y+ j
- (assoc 1 ent1)+ A% F' }% Q6 U& F
- ent1)1 [; K9 K' m6 [
- );setq
* C, [1 w. D4 j: Z% K: Y& K1 u - (entmod ent1)/ e. m* o8 j* j
- (entdel ename2)
" t9 {5 \4 E6 U/ j: i i7 U6 S - (princ)4 A# m6 w/ x( e6 i1 _) P
- );defun) L' O4 X; T) @$ u# F4 a, j- s( o' J9 k
- " O# G! e& U& Z( F: b- M* T% c
- ;=====================================================================
2 C# S! W, q; j h: Y
% E8 v& x: {# A& r) N- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
1 O. H- f! L+ i) V- a$ w7 |* n
( ]$ s6 X6 q3 U- (defun nterr (s)5 A& x( {( W9 `
- (command "_.UCS" "" "_.UNDO" "E")
% D6 p/ R. K4 Y8 J - (setvar "cmdecho" 1)
, }/ T) g9 o: B" Z, R1 N, s - (setvar "blipmode" 0)
% ?, J* B- q1 X - (setq *error* olderr)
, L5 @& V) S8 Z$ o - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
9 C9 Q- H g& l4 g - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)1 a) l& P$ u% e9 H# v. Z
- (princ)
j" I& X5 }0 D. x+ X - )
# S1 B% p! Q0 v4 ^( z - 7 V( a1 @5 B0 u1 }3 m7 P
- (defun tim_in (dt / p01 p02 ktra)2 z t0 G/ g9 I# ^- o
- (setq p01 (cdr (assoc 10 (entget dt))))# d4 ~ G+ Q. t" ]- F8 d
- (setq p02 (cdr (assoc 11 (entget dt)))), ^2 f4 Y9 M# u) w+ F3 y
- (setq ktra T)
5 c1 G3 }% Q: B) c8 ?( u" U - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) ' C3 H% T9 t& l
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
' K' Y- V# p( R5 X - (setq ktra nil)+ ^% s9 x+ S" p
- )
6 W+ y# z- k: A8 b! s( [2 L - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
@& v/ t1 @" ?1 M; `9 ?! W/ Q0 { - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))1 W% I5 n6 i, ]' `; {
- (setq ktra nil). r5 |2 `% O% \# H, c
- ): c% L! f% N. y2 k/ {
- ktra
/ h, x& j6 A2 D& h: _+ h - )# G3 w0 D) d& }& `5 c# w% h, g
! Z$ o, z7 {8 W j g- (defun timdt (dt1 dt2 / p01 p02)1 P, t) a; b ]. o0 X! t
- (setq p01 (cdr (assoc 10 (entget dt2))))
3 r2 z* Z8 q" l% f - (setq p02 (cdr (assoc 11 (entget dt2))))# W! T) _% X7 H1 {
- (setvar "ucsicon" 0)0 S, n, l4 m- Y7 S7 n0 P
- (command "_.UCS" "E" dt1)) y& L7 D. {6 V2 l$ j' `. a: Z
- (setq p01 (trans p01 0 1))3 k( }9 P \' z! W
- (setq p02 (trans p02 0 1))
9 g; A8 i. D/ r- i. s( c7 M - (command "_.UCS" "")
# C7 v4 B- a8 g7 N. W - (setvar "ucsicon" 1)' R& O# z0 K' K
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))( F1 D7 T+ E1 i4 ~9 K' u" B0 _
- T
8 J/ \! t, E- E# V$ @# H* O% R - nil1 r$ ], r1 r6 Q
- )
q* m% P y! U - )
! v4 j' Z9 x. A' y3 s& Y - 9 o/ t# u: a4 o9 r$ U/ b. W
- (defun tim_out (dt / p01 p02 kt)
' h# J8 P( V5 b% n5 _2 h- Z' M2 h. e7 d - (setq p01 (cdr (assoc 10 (entget dt)))). [4 x+ E8 }% V- o% a$ K; E5 C
- (setq p02 (cdr (assoc 11 (entget dt))))
% o) H% q+ z' @; Z* Q0 Y - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
* {! S: S( p' X - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))* e% s. }3 ]- z7 Q
- (setq kt p02)
. Q/ E' x& ~3 f8 a$ m5 W - )
& U; H8 U. h( C$ T l, X% { - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) 1 Q0 ^5 }! L* k2 F& i2 h H2 |# z9 @0 K
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))3 m/ n" h' p! f" y: ?1 o
- (setq kt p01)$ {# T; G2 Q( d2 ~) J
- )
9 d; i! e X4 {/ }6 Y6 Y1 y - kt
5 d! `, k# w2 P5 O5 a" ^" q - ), A+ k+ u) ?2 _; a6 ~3 j! S
- ) [# u- Q6 U$ F: L1 Y2 a9 [" Y& ^
- (setvar "cmdecho" 0), T: a2 t7 b* u' h
- (setq olderr *error* *error* nterr)- z4 ] y1 E8 ]; J
- (command "_.UNDO" "G" "_.UCS" "")7 ?) ~, l, g1 M! T o0 {6 Q
- (while (null ss1)1 I( G6 q Y# L4 f7 N" m% T
- (princ "\nChon tuong muon noi...")
( t! M) ^4 w9 V5 H - (initget 1)
' t1 Z) B' F) F7 `% \) Q& f - (setq g1 (getpoint "\n>Goc thu nhat:"))
: o! \ l( B L c: P [4 d5 c - (initget (+ 1 32))% d3 `& x- C- w' N" r4 U( T% f
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))" m6 I; l# p. J/ {1 t/ k
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
0 I k1 Q$ A' S& y7 W" u - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
: E w: p: v( b t0 i - ), q: z# l' B! ~0 s
- # F6 G$ {/ h* l8 k" ?% p
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))9 b) H" `1 p- h: e/ g" [! V
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
8 U' d% d* x R2 y( I - g1 temp)
6 K0 f! E T7 S7 X# D - (setq ss1 (ssget "w" g1 g2))
7 i; T# h6 ?% y0 F - (if ss1 (command "_.ERASE" ss1 ""))% C/ L/ o# B, N0 Z
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE")))); L$ ], E9 n% I* j; M; c0 E1 k
-
% h: E# ^+ \+ p$ I& D/ f - (setvar "blipmode" 0)6 o# F, b4 q/ p
- (setq i 0 l (sslength ss1))
, R% Z9 ?% k! u. Y. k+ a. s - (while (< i l)! c$ D" P1 I! L' T
- (if (tim_in (ssname ss1 i))
, o0 {0 r4 |- I4 O8 L8 e0 ^ - (progn
% k6 L. q( G% a0 i - (ssdel (ssname ss1 i) ss1)
5 {- h4 n3 w# v! S* k! } - (setq i 0 l (1- l))$ ]6 u" V/ r6 o
- ) k- l, k6 [' x! O2 c! |
- (setq i (1+ i))+ o3 w. K+ _5 O4 U- S
- )
7 ~6 U1 M! x8 w% u# c2 m1 s3 D - )
7 i: m/ w- S. |6 u0 \ - (setq l (sslength ss1))5 C; {3 y% x5 W, X2 a" l6 L
- (while (>= l 2)# W. a& E2 O3 |3 N% y- Z% L3 W
- (setq e1 (ssname ss1 0))" \- X6 |4 }/ q, h
- (ssdel e1 ss1)5 A- f! q: B/ Q% a
- (setq e2 nil i 0 l (sslength ss1))& z7 k1 z2 k( h4 |# A6 }, k/ E
- (while (< i l) 6 J& L' G& ]$ S7 s4 H
- (if (timdt e1 (ssname ss1 i))
$ o( L) @7 u7 q% @ - (progn
5 V) h! l# Y6 j) c& s! R# @! D - (setq e2 (ssname ss1 i))
9 |2 b3 e7 m. g - (setq dd (tim_out e1))
) Y: L- n- M9 f - (setq dc (tim_out e2))8 W% ~4 Z# ~ {1 [" k
- )6 X( D- k! d; m" S, h
- )
- i4 P0 T S% f) Z, a8 ~) g1 x! k - (setq i (1+ i)), Y+ R. U, F5 b* t: M9 e x
- )7 O" P, G% O8 u; g4 \$ N2 z2 d0 ^
- (if e2 (progn" {% ~+ b, L8 F
- (ssdel e2 ss1)
: n" c/ }* M$ \5 ^& q9 P - (command "_.ERASE" e2 "")
$ I7 V2 R( ^. U1 s9 W- r0 l - (setq temp (entget e1))6 Y0 P8 h3 Y2 h! F9 Q
- (setq old (assoc 10 temp))& K, }* f% Y, U( S3 C: V, I0 [5 }8 p
- (setq new (cons 10 dd))7 I3 o# ~, L, M8 a
- (setq temp (subst new old temp))
* b+ d; H) A* q) e7 ^ - (entmod temp)5 V! j( u" ~3 p3 X. J" {
- (setq temp (entget e1))" b2 L' U3 W$ O/ S
- (setq old (assoc 11 temp)), Y; g8 m: b @. s: R+ p9 _
- (setq new (cons 11 dc))7 e- i3 f+ E9 x: w$ q% D P" w
- (setq temp (subst new old temp))
" P/ x6 u- V/ f% f - (entmod temp)
2 c" R) Q9 Q- O$ S* v - (redraw e1)' Q3 ^1 ?: c5 p( X, k( X
- (setq l (sslength ss1))+ n; W2 L9 ~: k# L8 Z
- )/ e! ?' K0 u- F8 W5 @; }. h
- )6 [ p- q* i" Q' Q% T" i
- )
1 L; j: a, D* q9 y( j
# u8 ?* j; u# a& u- (command "_.UCS" "" "_.UNDO" "E")
9 b& U0 c. G2 b - (setvar "cmdecho" 1)* h' k1 @ ]% n- c9 H
- (setvar "blipmode" 0), M1 y+ Y: N6 r7 D0 }) n( E0 r) z
- (setq *error* olderr)
# Z6 y4 }: q, `) ~! i/ t9 e9 ` - (princ)1 r; x- P1 {2 ^) y+ P( u' M
- ) |; I. K* c$ d& q# \0 Y
- ;*********************************************************************
* j6 _9 _3 S% M - (defun ketthuc ()4 d2 r5 X( s2 [" n
- (setvar "cmdecho" luuecho)
8 d% l3 c/ z% w9 a, J - (setq *error* luu
3 ? U* U$ R' k9 p5 Q' h - luu nil
; q; t- A" p' p' Q# v- z - luuecho nil
G$ [) b/ C; Z2 C4 M, r5 A0 _ - );setq. R: J9 u& |2 }1 V4 n
- (princ)
. X7 y M1 c5 D4 l! ?( j3 m - ) / q4 U# @! A* u. o& b
- ;*********************************************************************
- ~2 X! n' b2 X: z4 L - (defun modau ()
! C- \1 S' w1 h& o - (setq luu *error8 f! O( x/ l* p K6 F
- luuecho (getvar "cmdecho")
: h, V5 N, s" p s. H - *error (ketthuc)
1 k! }" Z9 Q0 n' W+ j* Z1 U - )4 q, d" r! F4 i
- )
! h' Z/ }# O$ P. e( _' ^, C - ;*********************************************************************9 B0 c* t( e, H3 ^4 f# t
- (defun xulytext (text / kytu ma sokt luusokt lui )1 y4 l! j1 E2 O7 w4 m& [' Y8 k
- (setq kytu (substr text (strlen text))
6 w' Z* K' B, d4 b* S& f- H - ma (ascii kytu), R; {6 n. M8 K) Q3 E
- sokt (read kytu) d1 a4 r1 @ B5 o/ f
- lui 19 @% B W0 T7 e/ S" E5 l' D; F+ S
- )
# S) B7 s4 x4 X, y8 |! a - (if (numberp sokt)" U, s7 C7 [" Z- X
- (progn
+ M0 v/ ^, I7 i; D9 o2 A3 U$ F - (setq luusokt (1+ sokt))
9 g, G f2 `9 E- j9 v6 D - (if (and (numberp sokt)
8 ]2 r4 X" O* A' c i \ - (> (strlen text) 1)/ ]" E4 O- T' S, n* B* s9 [# Z2 A
- )
5 i! Y% s: q" f& H. U- [ - (progn4 [7 @9 n) h9 ]* s
- (setq kytu (substr text (1- (strlen text))), s5 q8 m! L' J$ c2 k# R6 r9 n
- sokt (read kytu)
. h+ i, w2 F' {8 v4 n - )
& y) t m9 M3 X* g. m - (if (numberp sokt)
( `& g9 Z1 p. Q S! J& n - (setq luusokt (1+ sokt)# S1 g; e: c/ [4 L4 F* I
- lui 22 x0 r# Z4 K! z8 Y/ n9 S
& J7 o" C6 p( c' C+ V8 U: O- )
. t9 w. r9 K3 e* u - )
4 u$ W0 ^ h# }) U3 D - );progn
" A& H+ w m# a+ Q7 T- n4 D - )5 b: }1 R; J3 P; Z$ P
- (if (= luusokt 100) (setq luusokt 0))
$ [( C& ?% f0 S: c9 o! l( t( J U - (setq kytu (rtos luusokt 2 0) ]! w% H7 w* `1 [8 T
- # M1 M" D2 g3 P' n& i* B
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)
3 w9 \8 B7 D2 N. }8 E p - )
! g: f# P. [7 V - );progn
4 r4 |& z* l! i0 b - (if (or (= kytu "z")! c2 v, x( c0 E: {7 _) r& P1 c$ l
- (= kytu "Z")
8 W, L2 f2 B( i8 d1 Z - )3 p+ L a: o( r( E) {/ P
- (setq text (strcat text "0"). m5 g" S/ T* T( c
- textxl "0"8 d D0 x3 S5 y, \, _
- )' G4 V) o4 I, J
- (setq ma (1+ ma): M ]4 l' Q5 N5 ?! O6 T' Y
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))( w4 u( H9 v. \3 d
- )) I/ p- K i; m; w! ~
- );if( b |' v' u. Z' w- P6 N. b* Y/ t
- );if
. Z5 ^! a1 m- m1 s" ]2 o3 J. Y - )
K6 a4 Y' \3 ^* ]4 d1 g - ;*********************************************************************
! U/ u0 d2 T/ a - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)8 Z, S) G8 p8 J9 u4 h7 A) W5 t
- ;Neu doi tuong la text thi tiep tuc2 Q& K0 |# Q3 G* `$ Z- z. \
- (setq doituong (entget tendoituong)
6 `# q& ?( s# e3 E6 G' V - kieu (cdr (assoc 0 doituong))
9 c& S1 _8 p1 t V# t2 A0 c - canle (cdr (assoc 72 doituong))
0 ~/ U8 O( v& Y7 h$ A - )
! x% B/ j) I5 \# J" Y - (if (or (= kieu "TEXT"). f/ e) U. b* U/ i$ s7 j# v, b* T
- (= kieu "MTEXT")
/ n. G0 Q0 K$ | i - ) ' u7 \; f% d4 h* u: g' }. T
- (progn$ l( u3 e/ \, i" _
- (setq textxl (xulytext textxl)0 A8 z) E4 s# ~2 J2 N7 a
- text (cons 1 textxl)
, l/ Z% \1 Q* ^0 q, g0 p. i - vitri10 (cdr (assoc 10 doituong))- [1 K. L3 w a& c& \1 ^* a1 c
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
( j* w! q" V0 w1 m - vitri10 (cons 10 vitri10)! Y0 \" H+ |- P
- vitri11 (cdr (assoc 11 doituong))
( c- |" R7 y2 M# y T; n# F" Y - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
- `" W+ a+ z6 s& T - vitri11 (cons 11 vitri11)
+ {$ s: s/ k/ s# D( z - dem 0. M7 H* g4 I* n- v/ p1 q7 O( W
- dsach nil9 C, s8 C3 J9 e9 H
- )
, @" Z0 }5 _5 [' f7 g& k# z - (foreach tam doituong$ [$ d6 x6 }, C# Y8 n( N
- (cond
; n( ]" }, p$ J - ((= (car tam) 1) (setq dsach (append dsach (list text))))
( ^( z+ k/ @' p' ?; A- A* x5 V( J* I% N - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))! a- g+ w) m* p( S9 A
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))1 p% K# o! y8 W
- ((setq dsach (append dsach (list tam)))); d, Q7 ?- f( @% `' w
- )
* Q/ q! s" Q5 D$ x7 {+ K# Z - )
% n( x' s& r8 r3 o - (entmake dsach)! H/ M9 T. l: P, E, E
- );progn
6 ^/ ^. | w+ M! Z - );if
4 D* I4 F1 H1 j% s- P% ^4 v - );
% d: J7 v' x( Z% w# l - ;********************************************************************* v4 ^/ z7 k1 q
- ;sao doi tuong cu sang vi tri moi2 t2 t$ U+ ]( W. o/ a1 f
$ F" i$ k! D! B3 Y- (defun copy_dt (tendoituong )6 N7 z0 u# E o$ u) S1 j
- (command "copy" tendoituong "" goc toi )
5 g. ~$ u" l3 C0 f# W8 Z - );defun
5 E0 n. Q. R3 t0 t/ h: X
i5 x: w8 d+ n( I- ;********************************************************************** T! k6 [: F8 i& k4 Z9 X/ m, _
( C# z/ H9 y, [! _6 F2 b' c- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
7 d; r( v6 H! T - ; Khoi dau cua chuong trinh
0 X y K& H# N+ H5 l" R - (princ "\nCopy Inteligent...\n")
% e; s; q/ `; h. V, P: p9 u - (setq luuecho (getvar "cmdecho")# ]6 v- M) G" m
- luu *error*' x3 X6 o/ n3 o2 n+ ~/ b
- *error* ketthuc
5 S! k, g% |% E5 `( z - cumdt (ssget)3 @' t% ~' w/ I/ W3 d
- dodai (sslength cumdt)
) U8 [( y+ f+ u+ D- i9 M - goc (getpoint "\nSelect base point:")' K/ \* H% c( R' R9 s) D; C
- thoat nil# \! k/ r4 D! Q- H7 q. U# s7 w
- dem 0
; f! K7 v6 }. l* c8 { - textxl nil6 F4 ^9 P( x- |9 w. V: b- _/ {
- );: s, h4 x; j8 c1 _. |
- (setvar "cmdecho" 0)! w S5 W5 i5 }! o
- ; Loc ra duoc ong text de xu ly2 l/ }3 o6 Z/ j; v, M* I
- (while (and (= thoat nil), Y J& W! ]( K4 K
- (< dem dodai)
1 Y4 k; X% ^/ h - ). \5 z8 g/ r( W# \ Z1 s( `
- (setq ten (ssname cumdt dem)# j; y8 { r* H! O2 T
- dem (1+ dem)' n# Q% S; J7 G: w4 O+ F+ w: F2 Z
- doituong (entget ten)
) S) Z" Y( w- J8 ^9 o H6 ? - kieu (cdr (assoc 0 doituong))
" @" Y4 u% P! }! J - )
) x2 f8 I2 `6 ]/ S8 A$ k -
t2 G. |' b# {/ v - (if (or (= kieu "TEXT")
; B6 p! \$ u4 j. \- C6 K! W- Y w4 Z - (= kieu "MTEXT")
9 H6 t7 s/ d7 U2 g" Y9 D, _ - ); e" B8 ~0 i' E' \3 W- L+ K9 a! Q+ ?. g
- (setq thoat T5 A+ P8 i1 _. u! `
- textxl (cdr (assoc 1 doituong)) 8 O. ]) V" I1 P
- )1 P; ?% s6 n: v" L0 _/ d
- )
* Q" a% r. E! f/ L' V - );
. V" E/ |, K( {) u0 M" a - (while T
" t8 G: n/ K+ E0 @: T - (setq toi (getpoint "\nSelect next point: " goc)
3 ~9 T/ k# n7 r, ]9 v: C - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
- P% q& S3 ?$ `6 D. o - dem 0- ^; G y f/ P* d* W
- )
" T; c. N/ K1 P$ x2 d3 S! L - (while (< dem dodai)
U0 d" V6 n) F' j- x - (setq ten (ssname cumdt dem), J8 N G1 k) ] Y$ y
- dem (1+ dem)9 H) ^1 d4 X1 S8 n( H9 p
- doituong (entget ten)8 z. a" C1 \* M4 F: l6 e
- kieu (cdr (assoc 0 doituong))
4 P+ K0 @! y2 R- ~# }) p - ). p4 i2 z# g& c3 G7 K: M
- " V- u) L5 H5 y! Q+ R- X
- (if (or (= kieu "TEXT")( u9 Y" E" n( Y( d
- (= kieu "MTEXT")
- e* f0 c9 q/ `& H6 m; ` - )
0 r4 a% H- o" a2 F - (doitext ten)2 h2 E, ]8 V# d1 h
- (copy_dt ten)( `3 x M7 S1 c: h3 z5 U
- ' C+ ?3 g+ ^% a: C7 b9 ]% v( c
- );if) V4 y' I8 [* [
- )
$ K9 B9 m% j6 y: H1 d: A% C3 S$ ^ - );while
4 b" f) W# P q6 Y4 I+ i B - (ketthuc)
6 h. C2 ^* X! Z. d I - );defun+ X) g4 C6 `4 t- G: F. Q
- (princ "Type \"DG\" to start")/ _" b1 l. `. ]! r7 k5 M
- ;Note: bien toan cuc: textxl vitrilech
7 M: l/ V4 r5 \$ n- A& E
+ n- m. R& }/ H5 [/ C$ k- J- ;=====================================================================% G H5 r/ \# {7 {$ j" G7 v6 S
- ;;; PLJOINFUZZ.LSP8 A- D) V: V9 B) u
- ;;; Joins lines, arcs and polylines using a fuzz distance- O3 C' [9 o# _8 _6 t' j# D' h
- ;;; If only one object is selected it tries to join to all objects that are possible
7 e2 ?+ j+ C3 U8 \ - ;;; By Jimmy Bergmark
* H7 Z: T, h! _8 @' K" N' \4 X9 h X - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved/ f1 @0 `! \& z9 Y/ N* Z4 Q: E
- ;;; Website: www.jtbworld.com
! l$ @2 l$ ]* E - ;;; E-mail: info@jtbworld.com
+ K! `: a0 @6 _+ E - ;;; Tested on AutoCAD 2002,2004 and 2005$ b. R4 ]# M' X# a8 ]0 \
- ;;; Latest revision made 2004-11-11
" w6 w: L S( t9 l v, H3 T - ;;; Minor code cosmetic change made 2004-11-13, f! j# a1 \, Y, Z
- ;;; Bug corrected 2004-12-23
# R$ x- J; u+ ?* h! S1 K - & @, C6 d6 w; y3 z2 F% `2 }$ [
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf/ l) S. n* f( ?1 i- P; r
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)( }- _3 u5 D! x }0 G% Q
- (setq oldcmdecho (getvar "cmdecho"))
8 T9 K. j+ \2 {1 m& p U! i( T - (setq oldpeditaccept (getvar "PEDITACCEPT"))/ r* D$ i! |0 V* m4 y2 k
- (setvar "cmdecho" 0)
5 {6 V0 E3 F1 h) F - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
& d/ P- d( }9 e8 M - (if A2k4 (setvar "PEDITACCEPT" 0))( |- j2 x# }' @3 u0 E
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
) T5 w* M( c3 W+ M - (princ "\nSelect object to join: ")
5 W& w9 a+ c6 g7 k; Y) Z6 s - (setq ss1 (ssget okObjects))
3 O" w: a& r) N0 @" d* x - (setq fuzz (getdist "\nFuzz distance <0>: ")): d, W& Z! Y, M5 u' P1 k+ S
- (if (= fuzz nil) (setq fuzz 0))
+ d7 o+ d/ Q6 ~5 A1 T - (if (/= ss1 nil)5 k4 {9 N# o; f. [
- (progn
4 M4 l. e3 |$ D1 O" h0 i - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
. M+ o( |* d8 S8 r' _) f: Y - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects))). w; z/ v: x3 Z7 O- j- F
- (if (member objType '("LINE" "ARC"))
; |" Y6 {1 _, k2 k - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
- G" D) D4 ~, a# [" O. u' P - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
: m" j }- b' b6 E D3 H% x - )3 Q0 B: e# ]) C+ J$ D5 F/ h' u' [3 v
- )) f" f P2 j8 Y/ W2 ?5 s9 X5 P
- )+ N! ?' N1 S* h% Y
- (setvar "cmdecho" oldcmdecho)/ O" B0 W4 X1 U) _/ c9 Q
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))7 Q( {6 K* e: P3 i2 [2 U& u3 T% |' m
- (princ)" U! M" ^$ p* H# t* M, M) x
- )
& d* }- r! _) P' M" Q, h - ) u- T+ I# S1 t% Q
- ;===========================VE CAO TRINH===========================
2 a9 v3 V1 |8 k, U u5 D - & _, P. c' I$ q6 y/ K- {; A5 h
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL) T2 q# J2 I2 |3 ^5 [% ?' X
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
& L @# `* M, u; e8 G - (SETQ OLDERR *error*
& B% X+ I2 E& o - *error* loisb)
) |3 m, [& V/ r4 v* g8 { - (command "layer" "m" "dim" "c" "" """")8 I# |) Q* v$ H5 b6 j# ]3 `9 Y
- (SETQ CMD (GETVAR "CMDECHO"))
2 g4 h0 b: R( s' W1 A3 t - (SETQ NBC (GETVAR "CLAYER"))* x8 ~/ R, ?8 Q% @+ K
- (SETQ OSM (GETVAR "OSMODE"))" [; D* W7 v0 o
- (SETVAR "CMDECHO" 0)+ S' f) ]6 U& u$ |/ \
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
* I, E; |& G1 p3 V! b0 U. s- { - (SETQ TX (GETSTRING "\nCao trinh:"))- w3 ]" D% B3 }
- (SETQ FCH (SUBSTR TX 1 1))
0 I8 Z$ l9 g3 J2 u - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
% J/ L0 m+ M, K8 f; D6 F - (SETQ CRST (GETVAR "TEXTSTYLE"))5 O: }4 w, R, D/ z
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST)))), d& q# I* o9 f `7 o
- (SETQ TSIZE (GETVAR "TEXTSIZE"))1 V" h# G' S4 @1 a( e( @
- (SETQ STR (RTOS TSIZE 2))2 r0 j% k# {5 R3 J7 D
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
7 X7 t; c" o& ~) W0 U l7 w. L+ c - (IF (= RSIZE 0): S+ f' h/ _7 V) l% G: y1 e
- (PROGN
' ]2 B7 v1 p, c: [8 w' r, q - (INITGET 4)
5 c! k! E0 J- R2 p0 x" V2 U7 S - (SETQ TSIZE (GETREAL PRMT))- r* _/ w8 n, H5 D, T; w
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))9 p0 G) S8 u( g
- (SETVAR "TEXTSIZE" TSIZE))
) r! e8 q; z6 B3 _ - )5 L6 X: k' L) [0 J6 ~
- )( n& a, ?5 ^; X% y
- (PRINC)
* I6 s) B4 q" I. E8 \- J) O8 s - (SETQ TL (/ (GETVAR "TEXTSIZE") 2)). _4 o+ F! w/ z8 f1 B4 y6 o9 w- z
- (SETVAR "OSMODE" 0), C) `* z( R$ G* O U' v% I; ~( w
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX)))))) o0 G# k' A" G) I% ^
- (SETQ NPI (/ PI 2))
7 U, }$ f3 v' A: ]- V' c - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
4 l3 Z4 d, k* F - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
; v7 c3 S* P2 w3 O8 Y! i) Z' e - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))8 S, |6 M, S3 u7 q! r
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))( u n' G4 L" J8 t# T. t- T: y
- (SETQ PT6 (POLAR PT2 NPI TL))
/ g7 z' S3 s$ }9 o1 r) @ U; V - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
$ Z( S- k. g! |8 g4 T9 ` - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
% l* M- J, e1 p! C. W - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))0 w& Z& F' `' l: o9 }% Z0 o% o3 F; c* p
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
; k2 h( X* h& a' R& S4 t2 C6 n, p" a - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
; C! s- w/ C | - (COMMAND "COLOR" "7" "")6 D" H" S- L$ n$ m
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
" R; i# G1 W1 T8 W ]2 p - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
8 I7 N" ^. E5 I2 E* k9 h - (COMMAND "COLOR" "BYLAYER" "")9 V) @9 o K; \* \' V) T- F' `
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "") k7 A# c( j. C3 K+ h7 [$ `
- (COMMAND "COLOR" "BYLAYER" "")
# S4 q6 }) ?+ o$ _ - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")% r. f$ ^6 Y* J: x# P
- (SETVAR "CLAYER" "0")
A" Y' W9 s8 @# ~7 r9 P - (command "ddedit" pause)
$ T( u( e- R* h/ j% c - (COMMAND "COLOR" "BYLAYER" "")% h: c8 [- {: S; _- i/ ~
- (SETVAR "CMDECHO" CMD)
9 D, h# k& k3 T - (SETVAR "CLAYER" NBC)
8 d* G6 E3 O( [: [/ D2 i1 @- M# J - (SETVAR "OSMODE" OSM)
) b4 G2 u& j$ T( ~ - (PRINC)3 p4 J' }/ V( Y
- )
- w/ Z$ ?6 L9 x' z7 V
3 Q+ T) M1 U1 W, y3 T- ;;; =========================== VE NET CAT CHEO (GC) =============================% _0 Q- \- U# [
- , ^4 O e% w7 }9 ^& j, E; F/ w
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
' I7 \# M: P H" E5 d - (setq x (getvar "osmode"))% ]8 y8 ]1 l# B( q) i- f( \
- (setq p1 (getpoint "First point : ")
! P1 i8 F U( I/ ?$ T. A - p2 (getpoint p1 "Second point : ")), Q0 ^( {, }. a& I$ }* i
- (setq l (distance p1 p2))
9 u6 Q: i+ C, F) Q - (setq p11 (polar p1 (angle p2 p1) (/ l 5))+ r, m2 ]2 _6 r* E
- p12 (polar p2 (angle p1 p2) (/ l 5)))
( o3 c$ l/ O' Q& H7 J! I - (setq ang (angle p1 p2))
. t- c& c/ N7 V& ?1 l; ]% v) _ - (setq p3 (polar p1 ang (/ l 2.5))
8 w: \' k& ]/ W& ~ - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
3 ]0 C; f2 V9 P, D- F6 } - p5 (polar p3 ang (/ l 5))
/ J+ M: i" D8 l# g - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))2 `' S1 i2 l- ^5 b: ]
- (setvar "osmode" 0)7 t: B3 V& F4 @8 X( b
- (command "pline" p11 p3 p4 p6 p5 p12 "")
( f0 f* M& H3 ^& A7 l, E2 U - (setvar "osmode" x)1 ^ v {. V3 r: |# l; d
- )
1 T% n' B3 d4 P+ y2 ^ - ;----------------------------------------------------------------------------------
3 V& U8 N4 \" I4 I# q - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
6 w1 w Q) [) r - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))) b7 x# C0 b5 l8 I, P2 T
- (setq ps1 (getpoint "\Chon diem thu nhat: "))) M: O$ a7 {4 c
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))$ G. y2 y/ n+ L- P' M' T! r/ ^* P$ b
- (setq sb 50.0 sh 200.0 se 20.0)
- ?& N# u; R9 ~0 { - (setq ang (angle ps1 ps2))
6 X6 x5 G; b" ?" u: p4 E! _" p, B - (setq pf1 (polar ps1 ang (- 0.0 se)))
6 F2 y2 I N# e& m! ^7 L5 v/ i - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))) C- H& L+ h3 @" r/ S; w3 M" y
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
0 u! I% x @4 y. Z: E2 e4 |+ G - (setq pf5 (polar pf2 ang sb)): h7 V6 P* k' X
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
6 n( e& P9 U+ ]9 a1 ^ - (setq pf6 (polar ps2 ang se))
; ]6 B5 i; z! j- ^ - (setvar "OSMODE" 0)
3 A- x J: I1 c - (setvar "BLIPMODE" 0)- U6 b7 n8 I- [ |, z" |" m$ R
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")% _" b* r3 @8 y0 G: k
- (setvar "OSMODE" 703)# f# }2 @4 e+ f! H! k# u) ~
- (princ) )5 i0 U) }+ _3 d5 d
- ;----------------------------------------------------------------------------------
2 k5 B) i+ A" G4 f7 u - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
+ e: Q" t9 e) m - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE")). f1 M7 W7 e: ^* h& Z
- (setq ps1 (getpoint "\Chon diem thu nhat: "))) c8 m. Z- ?0 [: B( P" X5 d' i
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
" v: ]8 r* i0 k& ~+ Z3 } l - (setq sb 100.0 sh 150.0 se 20.0)0 L# X: N6 F3 @1 X" P
- (setq ang (angle ps1 ps2))! W* `+ e1 g3 Z/ `; a' y1 M; X1 v
- (setq pf1 (polar ps1 ang (- 0.0 se)))
2 d0 p: Z# o5 q" I6 I- u& [ - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
) m8 A& D: z. K' k6 t - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))% E3 l- F! n1 b: t! E3 b) |
- (setq pf5 (polar pf2 ang sb))0 Q; M |4 d, V3 g
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
' b! t$ q) l" S) F- h$ h9 u# _ - (setq pf6 (polar ps2 ang se))3 C, B6 Z* H2 r/ |" F
- (setvar "OSMODE" 0)
+ \, T7 J# j# P! ?) g - (setvar "BLIPMODE" 0)) w T, U: Z4 q3 i( Q K7 ~9 j4 h
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
: h, C }% k" J2 T9 {7 j! ~! j - (setvar "OSMODE" 703)
7 B9 ]6 Y% X' ^9 z2 g* a9 I - (princ) )
1 Z0 l$ N4 S& S* b$ D - ;----------------------------------------------------------------------------------* ~6 }& V0 Q" C/ r L3 E( T- [
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf65 {* B! O9 ~. i2 ?' q# j# O
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
2 z: J& Z! a; d/ f. T" b/ K - (setq ps1 (getpoint "\Chon diem thu nhat: "))# M0 K0 W; U6 Q/ d
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))7 r3 f5 J" O" J
- (setq sb 100.0 sh 250.0 se 20.0)
1 o" P7 H/ X' @/ o - (setq ang (angle ps1 ps2))
! E4 d( ?* }* J - (setq pf1 (polar ps1 ang (- 0.0 se)))7 j6 ]* p+ z$ |9 T% h s R
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) )); L( E; @6 c3 l: j! K- @, \
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))7 {2 o: ~9 P0 `" R0 y
- (setq pf5 (polar pf2 ang sb))& [! J( Z" z2 M" r$ f0 e
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))4 i' B3 g6 c( f& X5 t$ V
- (setq pf6 (polar ps2 ang se))
! `3 H# \3 m; U) ?3 r# Z - (setvar "OSMODE" 0)
0 u* l7 W6 L. ` - (setvar "BLIPMODE" 0)
! |) |5 i0 a/ g+ R5 Z - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
4 e$ J) s. Q! W* O2 N8 i% y - (setvar "OSMODE" 703)& p, h" A& Q/ R! @2 v: U
- (princ) )8 V9 ~( J6 D# W& m$ J
p) {& \; S+ A) N. |- ;==================================================================================9 v: F* s# ^, L% ]1 S
- (defun c:ang (/ ent pt1 pt2 ang)" g& F7 d4 `6 S' P2 ^5 `1 S' X
- (setq cmd (getvar "cmdecho"))+ S4 \: ]. ]0 y& p! c
- (setvar "cmdecho" 1)
) o* h, j+ I) ?4 s* E8 \# g - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))% M& b x: `8 i2 k% {0 V+ K
- (setq ent (entsel "\nChon duong thang:"))
9 W- ?% {" }+ H% e% k; Y - (if ent
6 L( Q* ]: {2 Q5 @. S - (progn; o7 @6 A p) ?4 P/ v6 S4 T, z3 Q
- (setq ent (entget (car ent))). @$ G; f5 H, @4 S, ?9 E7 i
- (setq pt1 (cdr (assoc 10 ent)))3 j7 E. D- V: `( h
- (setq pt2 (cdr (assoc 11 ent)))/ _+ w& B! U9 t2 J
- (setq ang (angle pt1 pt2))
: E, p7 }; ?! ?/ p! J - (setq ang (/ (* ang 180.0) pi))' a$ G) H3 F5 k/ _3 V/ z
- (setvar "cmdecho" 0)
n$ k/ }1 B) j4 Y# [+ f( O% g - (command "setvar" "snapang" ang)# S) O$ k1 N& R. ~* O- \: h
- (princ "\nGoc cua truc toa do moi : ")
9 c. t% r5 t- G2 d5 e - (princ ang)2 c- w9 g& v/ B& A, j
- )
& ~7 O1 F' r' @6 i6 z - )
' z- }: N0 \7 J4 p9 Z+ X$ Z - (setvar "cmdecho" cmd) [# g8 M3 U' ?, j5 q+ r7 P1 `
- (princ)8 W8 C% W+ J v! f
- )
' K+ G1 n# v5 n' M( N& m - ;==================================================================================
* v9 ^" f8 A% a/ i6 l1 H - ;============================== KY HIEU DOI XUNG ==============================
+ u6 S/ p4 Q' Y* y5 D) Q2 s - ;==================================================================================. x: o3 J# {' v# \' T9 C5 m8 J4 ?
- ; i+ v0 k; g# J; n/ [* y5 `$ r
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT95 }0 U' e3 |1 A2 D& X" l. z) h
- SZ G45 G135 G90 G180 SS loi)
' @6 v+ o6 d9 I9 y/ W1 |* H, d - (defun loi (s)
9 ?! N+ h F, @4 G" i - (if (= s "Function cancelled")
! `# \( s$ ]- B/ o" b3 `4 e8 J - (princ)
& U, a. `/ L/ R5 `. s9 C6 `7 q - (princ (strcat "Error:" s))
% b4 G& D6 S" C2 M9 {' E$ o3 e - )
- B0 x6 Y- V. x) n& Q( L% y - (SETVAR "CMDECHO" CMD); w) M9 u+ i9 [1 L% J3 k( o
- (SETVAR "OSMODE" OSM)
( y- y" G2 Y* _2 b - (SETQ *error* OLDERR)
* [$ l) C3 s3 S - (PRINC)% z o- {8 A& O3 m X' J3 m
- )/ t t8 Y- b) i" o, s% |0 C
- (SETQ CMD (GETVAR "CMDECHO")) a) r2 M2 `6 ~1 [; ?0 l" o4 z
- (SETQ OSM (GETVAR "OSMODE")), f: y- J. z" ^; o6 S/ O# S
- (SETVAR "CMDECHO" 0)
* y/ _1 | {6 g" H* b. g: p5 M - (SETQ OLDERR *error*8 j1 t% c! U1 y k- _
- *error* loi), n P4 e8 X8 g* [8 p$ D
- (SETQ SZ (GETREAL "Size <1>:"))* v1 f& h* a5 G8 D* ^
- (IF (= SZ nil) (SETQ SZ 100)). K# z4 {, Q2 B5 {) x: n7 H+ e
- (SETQ G45 (/ PI 4))
- q7 v. T5 I6 N( \, D - (SETQ G135 (* 3 (/ PI 4)))" t$ `$ v4 f" a- ~( e$ `7 h& S
- (SETQ G90 (- G45 (/ PI 2)))& A2 I1 t$ p) N% R6 ?
- (SETQ G180 (+ G135 (/ PI 2)))3 _1 c& y9 e; W1 |2 q
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
3 _! c( B$ k7 Z- l/ l; Q - (SETVAR "OSMODE" 0)& C2 P! ~! W% N
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
+ y9 ]4 R' ]3 J/ b; d2 v6 S - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
3 D6 H+ H z) A# ~- h* O" [. M - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))% H" {( U i, `! l/ w1 I
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))' f; j' f1 J7 }. I/ m
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ))): J. t/ |2 F' A/ M) G, C
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))! [$ b/ j n, b, e; A
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
1 w2 u* _) m2 T8 g h - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))* j+ k1 P8 u5 r4 S
- (PRINC "\nGoc quay:")
: P0 m+ S# N! J+ d9 p - (SETQ SS (SSADD))& m% t% s- o4 Y! n
- (command "layer" "m" "Dim" "c" "" """")
2 s q x& s; c0 ^6 h+ r - (COMMAND "COLOR" "1" "")1 X( k! ~3 j% r* h" n
- (COMMAND "LINE" PT8 PT2 "")
6 v" [2 [& X/ F% e ]. s" T7 [ - (SETQ SS (SSADD (ENTLAST) SS))
" V- P; W2 ~7 j$ w5 E, S/ p - (COMMAND "LINE" PT9 PT5 "")
/ r8 b$ H3 a' O; b+ `) N - (SETQ SS (SSADD (ENTLAST) SS)); L/ u6 z+ d. z P
- (COMMAND "COLOR" "1" "")6 e) d6 R. H/ q. f* f! D1 |
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")5 N3 ?' e! u- T9 Y7 A4 ^# k/ P
- (SETQ SS (SSADD (ENTLAST) SS))
9 J, p4 g0 B3 c5 U/ v& ?4 J - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
) u9 U; X- ?% {0 z& `* I - (SETQ SS (SSADD (ENTLAST) SS))
& u( }9 E/ f! R7 \ C; K - (COMMAND "ROTATE" SS "" PT1 PAUSE)
! J# O# N$ f! c' y- i: R1 ^8 g - (COMMAND "COLOR" "BYLAYER" "")
% {3 r. O, |) u& u" H& O - (SETVAR "CMDECHO" CMD)5 f. L5 }2 U M c$ V. Q
- (SETVAR "OSMODE" OSM)! e7 v, B/ R' h5 ?
- (SETQ *error* OLDERR)* B t* E5 H/ ~6 h G; v2 q
- (PRINC)2 v" D: s" k- _ g+ ]
- ), w+ d" b- ?2 b. N
9 M! |2 {5 X- B$ U+ e- ;==================================================================================
1 ?' O0 @6 w! Y8 r- I( Z0 r9 k/ a! b - ;================================= KY HIEU TRUC ===============================
8 [, n# S, b9 T9 Q, H: ]0 Y6 e - ;==================================================================================% G& p6 h; M) U/ U4 ~
- " l# D9 q& o9 S
- (defun C:vetruc ()
4 S- M W" g; r' o+ q( w# q* Z - (setq bk (getvar "USERR3"))8 s6 f' q% w. ?3 I5 i: E
- (if (= bk 0). S' k8 B3 S- [* z; ?
- (progn- i5 G$ t5 ]8 A6 E
- (setq cont "1")
) Y0 Y) `8 b" l2 T4 } - (setvar "USERR3" 1)
0 h: C, v( i/ X - )
3 B" @1 S6 P) L4 V$ t) b ` - (setq cont (rtos bk))
- _, H5 o* _5 E - )5 Q% s+ z7 m& {
- (setq pt1 (getpoint "\n Nhap diem dat:"))- }/ i" S% x* O$ k; @& `
- (command "layer" "m" "Dim" "c" "" """")" n& C# ^4 F/ q. r% A( p1 B$ F, \
- (command "osnap" "")
! q9 E! n! s7 {. b4 f5 H* j1 M - (COMMAND "COLOR" "7" "")6 ?/ s8 X, j: r! g. U$ L2 Y
- (command "circle" pt1 150 "")2 D+ C9 h3 C' l4 ]5 K
- (setq pt2 (polar pt1 0 150))
6 Z* L. f7 U' L3 N - (setq pt3 (polar pt1 (/ pi 1) 150))
; G' D. L* F! _- ^ - (setq pt4 (polar pt1 0 300))
% z4 f8 b$ o+ C- ] - (setq pt5 (polar pt1 (/ pi 1) 300))% r: d! G2 o8 i2 w+ t% p2 `$ F/ _! a
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))& H+ c) F+ q, K; N
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))0 i% F6 l U6 z& \' ~5 c
- (setq pt8 (polar pt1 (/ pi 2) 150))
5 ~7 z+ H ^7 [- j! \: L - (setq pt9 (polar pt1 (/ pi 2) 300))) v: Q% R8 z3 [# _' f
- (setq pt10 (polar pt1 0 150))
) k; a- Y \- f$ f/ M - (setq pt11 (polar pt1 (/ pi 4) 150))) ~0 D# v1 w) }$ P8 H! P/ O u
- (COMMAND "COLOR" "BYLAYER" "")$ [, @, u+ ^2 `4 |7 T! I+ `* t9 H, @
- (command "line" pt2 pt4 "")
0 y8 \+ M* `; U. B$ m( A2 i' K - (command "line" pt6 pt7 "")
% b$ l7 n' R! g! Q' w: H/ } - (command "line" pt3 pt5 "")
' b' h% w9 g7 f8 J8 [9 F: A. M$ H - (command "line" pt8 pt9 "")9 T" u; @7 W9 @, [6 j
- (setq dk (strcat "\n Size:<"cont">"))
" y* L) r& E( P. y4 R - (setq bk (getreal dk))
3 S% r9 L8 F: k$ J. R - (if (= bk nil)/ B/ P9 W* i: `( p, y9 x
- (progn
) {: e, h3 \* m1 v+ _ M' M7 s - (setq bk (getvar "USERR3"))7 M: V5 ?/ M6 S% x% U8 Q
- )
& m7 ^) \) T' F7 r; {6 v - (setvar "USERR3" bk)
6 m# h. `4 u7 I4 p& r8 ~ - ): z! K# i& q- Q
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
8 Y; l7 t" v5 U' `3 k2 l3 a% u - (COMMAND "COLOR" "7" "")( U7 [: ?7 q8 a! r/ ^
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
( T7 Z' e0 b' N- u+ _: H - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
7 ~! R9 L; l, T2 r, L+ M5 J$ S - (COMMAND "COLOR" "BYLAYER" "")
0 c4 _4 n+ ` I1 ^ - )
# r0 V. g% Q. L* v( g5 P J% ^
. r0 C( y$ e5 \4 q3 O P- ;=====================================================================$ S6 O. b- @# |
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)$ G" f* L( X! r. ~6 V- E" k; w
- ;% w* ^# g# u" d0 J
- ;Jeffery P Sanders$ k. ~4 I* p c2 w: ]- F; L
- ;
% z d# ^" _8 d- j& W7 g& Q# V: G - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
7 n, d7 o6 D" f; U6 @( f4 S - (setvar "cmdecho" 0)
5 A. }% h9 C$ ^ - (if(setq en(entsel))9 o9 |+ ]/ g% I+ Z9 |! i2 l8 [
- (progn
* b5 z, i: `7 _9 J& z, ] - (setq enlist(entget(car en)))* o p! N# X8 ?0 t4 D
- (if(= "TEXT"(cdr(assoc 0 enlist)))# J8 }9 W5 S- a
- (progn
! v0 S, u, o! Y6 {4 ] - (setq tx(cdr(assoc 1 enlist)). j* x8 I) b$ w8 T( z d
- newtx "" cnt(strlen tx)
; u8 c) K ?- \ - note "\n...CASE Reversed. \n "
* w' f) Y0 J" h/ g6 F& F" D$ ^, p - )8 d, h7 P; e" ^! v
- (while (> cnt 0)7 v4 N8 f7 ~, o
- (setq tp(substr tx cnt 1))9 x4 J$ ?8 J4 y
- (setq asc(ascii tp))# L+ i; D0 a" P
- (if (> asc 96)
/ x# Y. _4 ^1 ~1 x8 {) m - (setq tp(strcase tp))& f0 r0 D5 c' _4 G* |# x5 K
- (setq tp(strcase tp T))- }5 G6 m, i9 u7 O. M0 l& Z
- )
% c, f- k3 V5 `! |7 i& F6 V - (setq newtx(strcat tp newtx))
. X% O8 [5 f. K) _ - (setq cnt(- cnt 1))$ i7 W" T- s# e1 N5 T
- ); b: V) _8 P; r& [; B6 v! x
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))% n k# i' W W4 B! [, `
- (entmod enlist)8 N( F% U8 U% m6 P. ^) n
- )* S4 S: a/ O' Q9 j( ^3 f1 J8 i
- (setq note "\n....Text Only Please. \n ")
8 Y+ n: L& V- m- E - )
1 \ h! W5 `& A - )
5 [6 h3 I3 X: v f! L3 A: m - (setq note "\n....Nothing Selected. \n ") P1 A; m0 b b
- )3 _- J7 p" J( U. f, }' N" S' {7 v! k
- (setvar "cmdecho" 1)
3 ]* v, z) S) L, |/ @5 L7 s - (princ note)
% w6 W) Y( C# O' p7 }0 T3 Y$ w4 G - (princ)" S0 g- i4 P; h3 I1 t( e
- )6 q [$ h! o7 ]) l1 V
- ' k% Y$ f& k: g$ U: ]0 i4 e: [
- ;=====================================================================& o8 Z a( ?+ M/ u S2 A
- ;==================== NEW TEXT STYLE UPDATE ==========================+ `9 P) z. u) o
- ;=====================================================================& V! z* R7 S1 h. U. s- _& R9 d
- b2 M: S. Z) P4 l
- (defun c:nS (/ tdt ssdt sodt index)
, R9 \, [* x7 {9 U% X: z$ H - (defun ObjName (ssdt /)
+ b1 v; b5 ]. g( k - (cdr (assoc '0 (entget ssdt))) G* v/ Y' W/ a+ J1 C& X
- )5 w0 `/ A6 M+ C; [% M
- (defun MoPL (ssdt /)% ^/ b% s0 Y/ a( q0 M" T. u, r
- (= (cdr (assoc '70 (entget ssdt))) 0)
. Q* m$ e+ H/ W, l; `: k - )
: d8 I5 A& ^# `+ y X3 p7 d - (defun NoiPL (ssdt /)
& l- G$ S# j5 u5 x/ k3 A2 V$ ~9 A3 e - (if (MoPL ssdt)) {' I+ U- [# [5 I
- (command ".PEDIT" ssdt "J" "All" "" "X")& Z" H! q( o7 L9 s5 U6 ?% ?3 d
- )7 \" ?! j1 k7 x9 O4 W) t6 @- H( k% k
- )( B' p5 ~4 |3 z5 S: S1 u
- (defun NoiLC (ssdt /): g/ B: E- s2 \- Y2 w1 S- `
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X"). z' I9 K: [/ A0 `8 ^3 u: [
- )- D( J* e# X2 I8 `! }/ \, k
- (setq0 d- Z5 C5 n+ B9 C1 @4 t; y4 {) m
- tdt (ssget)) P: o1 Y, _9 [& x
- sodt (sslength tdt)5 S4 {# p2 a5 R$ T
- index 0& ]! m q+ w6 |( ]( ^$ y/ c0 N3 N
- )
' R5 t ~; W2 h+ }2 D( e& T - (repeat sodt( r! k+ A' M0 i' U6 |
- (setq
) H0 C8 Y! \% V/ F3 f T, B - ssdt (ssname tdt index)' O1 C/ I7 J: D& B4 A! |: r
- index (1+ index)& x+ f1 |- u. l
- )
8 D5 x. j0 b) b8 B' a - (if (or (= (Objname ssdt) "LWPOLYLINE")
. n3 j/ G# d9 R8 { - (= (Objname ssdt) "POLYLINE")0 x! H$ j1 f7 C) b8 ?9 q! q
- )
( r* ]) t- Y- b& _- s, V - (NoiPL ssdt)* c6 ~$ c7 m8 T4 L3 } N8 d# p
- )
, E) M. }) E- Z - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
% Q/ _; w! U: v4 w - (NoiLC ssdt)
' L6 e! `& n+ p& }3 k" e& ] - )2 a) h. c. }6 [) c
- )" ~& t$ p8 n P3 Z. T
- (princ)4 W- U- h! \, Z2 g, K
- ), p7 z- \* |- b" K4 C
J) y9 l5 J5 L8 J6 g- ;=====================================================================
2 u% X( T6 M. ^1 { - ;;; AREAM.LSP
" F* A- y \/ M( a - ;;; Function: Calculates the total area of selected objects
" e- E$ w! O z( K8 H' f. f - ;;; By Jimmy Bergmark
2 |* W0 f0 m* a3 z - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved0 l: x7 T% ]0 g9 |% ]- s! K9 x
- ;;; Tested on AutoCAD 2000" ]9 P4 q2 E+ n
- 8 S3 G/ y7 U" z( e$ T: x/ ^
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
* t ?; S; s" P( o - (defun errexit (s)
# e! X$ {* e1 \; o - (restore)# ~( M$ X- M: V3 t8 X/ O
- )
) A" a2 @: w; x5 l
V" R% y+ f/ @3 }- (defun undox ()
. g& M- S# S3 [3 b } - (command "._undo" "_E")1 {& q! E( D7 C- }, ]6 a* J! e
- (setvar "cmdecho" oldcmdecho)! n/ K1 W1 |) Y1 }2 z) K* `
- (setq *error* olderr)
! |' p6 B; N: n) Q3 M6 n - (princ)
$ C0 s4 g& n) |/ U - )# y, g. X5 [, J1 \0 G
' ~# R* f7 s' V% J- (setq olderr *error*" N/ \. H& s5 }& Y5 Z" G
- restore undox/ w J8 a' D) o. e. i5 _
- *error* errexit
+ X6 o2 A5 I1 [+ Q. C - )" D3 |$ z! G9 o f- j3 u" W# {
- (setq oldcmdecho (getvar "cmdecho"))
, E+ c5 m. V3 S s) N - (setvar "cmdecho" 0)1 X) u( ^( J' a \$ Q
- (command "._UNDO" "_BE")
+ `# j; b, r; k, L - (if (setq ss1 (ssget '((-4 . "<OR")
a( l3 o+ I1 X. I) ]; ^ - (0 . "POLYLINE")) J4 x1 n, t/ X* X' g
- (0 . "LWPOLYLINE")9 Z x- K( a6 _6 i
- (0 . "CIRCLE")5 B2 V ~0 V0 C: w; M5 g/ S! X
- (0 . "ELLIPSE")
) N2 Z6 ^7 r6 q - (0 . "SPLINE")$ i. d. n% f2 F6 s7 ]' {" p5 H
- (0 . "REGION")
) g! X: |- g" B* t- C( E - (-4 . "OR>")
/ \8 _/ G* w w3 m - )9 D7 B1 j3 c: a
- ); ]5 e0 L. G( o4 I9 K. T( S& _. `
- )$ p `, z6 ^: ~" p# C1 C" a
- (progn+ s" T9 \% Q8 o& O; {
- (setq nr 0)
/ ?, P# @/ x: [: T2 z - (setq tot_area 0.0)
O% n+ Y R7 z3 k - (setq en (ssname ss1 nr))) r% g. X* \! r
- (while en
" n) m, D7 q: {, P4 Y4 h2 B - (command "._area" "_O" en)
5 q6 y( r$ r8 [$ R: r1 e- ^, J8 t - (setq tot_area (+ tot_area (getvar "area")))' W( Y# {" \" a: u: i% Z6 w
- (setq nr (1+ nr)); e" Q2 e. }" @; o( b; }; X7 a. c
- (setq en (ssname ss1 nr))
- c$ |5 {, i# G9 @# q2 h - )
) @) `7 r+ j* Z* W - (princ "\nTotal Area = "): G; @/ `& N! U8 l0 ]3 b
- (princ tot_area)! L2 }- |: Y2 V1 y2 n
- )
7 d- I$ P5 g1 t - )
+ R* L {6 O* [2 L8 q7 Y+ Z z - (restore)& W4 K9 Q3 [" E* r: q
- )5 ^! Q' E X M& u
. m' n% s! a: H5 n" ~) z- ;=====================================================================
8 ?4 y' H! ?& c+ _3 Y% X. ] - ;;; By Jimmy Bergmark
6 a8 `( a9 c6 ^! i" ^ - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
: E* Y' d- U6 @* s- k3 Z1 C v - ;;;2 U9 i3 U& t) \& c, c
- ;;; Created: 2008-03-31
) d6 h2 |" F0 O, g- e$ Q2 K" ]1 Y - ;;;
+ o2 H; `1 I" [$ t8 z$ X8 P' I6 B - ;;; Convert Attribute definitions to mtext
* o* F' u5 I! R4 |# N; K - ;;;
, _! }$ f+ c8 @ a {$ m
o% Y* I9 p! x4 B! C4 [& d4 J3 I- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)6 b9 y( `3 r, N0 b n& |; B
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))" l3 k, }" G, W( d% g0 V
- blkcnt 0
# J* Z+ T+ g; f0 ^# s& A - ). j. J3 I. V T4 W8 ~$ K1 [: C
- ' v/ M' ^. H3 t( ]. a
- (if eset1
! C/ U) ^# ]& E1 @# } - (while (<= blkcnt (- (sslength eset1) 1))
' ?! R) n+ C. n* j2 L# u - (setq en (ssname eset1 blkcnt)/ Y4 o1 r$ w. ^# A' f
- enlist (entget en)8 [3 e$ X. e2 c O) X
- ht (cdr (assoc 40 enlist)) D6 I% i7 p3 ]( @, H' ?
- pnt (assoc 10 enlist)- D ]- F; a; H% C$ ]8 S1 M1 i
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
5 V3 R7 N; y, T3 R5 ` - space (cdr (assoc 67 enlist))7 y5 B0 _3 i9 g* \- X
- )
: J( e8 X3 ]% m2 L U6 w6 E - (setq vl (list
: |" E, r, P& e - (cons 0 "MTEXT")
) \9 T& M6 p* g r' t5 ` - (cons 100 "AcDbEntity")0 z }3 U4 d K9 h& l& o
- (cons 100 "AcDbMText")* p$ S M# G) p2 R( n. [) E
- (assoc 7 enlist)! \* E; L4 i4 y( U: a
- (assoc 8 enlist)- f: n/ o; G, x; q
- pnt$ e7 X+ H7 b* S: y E1 Y' c1 }) |/ R
- (assoc 40 enlist)
1 U8 P* j8 \8 f, j% } - (cond ((assoc 62 enlist))* k& ~. u' `' O7 k2 h: R. w
- ((cons 62 256))
* M4 H# L( A3 C - )* d1 O+ A" N9 o- k' f" t: x
- (cons 1 (cdr (assoc 2 enlist)))
6 ^1 g) m% |$ Z( F) e, N - (if (= space nil)! Z7 ?* Y4 r6 O% x' W* y" ~# x1 c
- (cons 67 0)
+ S! `8 u$ r# J7 h s4 Z H4 I! i* V - (cons 67 space)
" ^9 O2 d2 u4 u - ). M, g3 _7 A3 m4 B4 P
- )
: t3 s& C$ \8 s# E, a* ^- d# A7 n% i - )
5 h+ O. n- S4 W: S7 v/ [ - (entdel en)0 a1 `: b( `3 X: }
- (entmake vl)
: b9 }# H* @6 Y$ v F& c+ M4 ? - (setq blkcnt (1+ blkcnt))
& u4 F5 |$ f u" q! T - )/ l* v! [; \( E3 ~% C$ d
- )
9 F% _. }) B, ?; v - )8 D) J1 V5 Q7 s
0 q9 l M+ p3 Y* A- ;=====================================================================7 I3 ?9 ~1 |$ @( Q1 C
- : | K% H K, C# g+ R
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)7 m) N' g* a- R& B( p+ ]
- ; Khoi dau cua chuong trinh
: Y4 _% t3 M1 f6 l - (princ "\nCopy Inteligent...\n") P2 Z: Q/ [5 J- R* Q) @1 U* j8 d
- (setq luuecho (getvar "cmdecho")
# C! g, ^, V; V - luu *error*
2 d6 S( J& t6 u8 E( T - *error* ketthuc" w5 I$ p7 ?5 q% \$ x
- cumdt (ssget), \' ]2 J! m9 t; e" H. ~# }
- dodai (sslength cumdt)
4 X7 R& ]8 l$ q6 e - goc (getpoint "\nSelect base point:")5 J" J4 O& }: p1 L7 e
- thoat nil
/ Q' ?+ v3 o- z- i2 m: v - dem 05 @8 F" D2 V& K2 y) h
- textxl nil
" c) k3 Y& m; c" A! f; ^# p! N - );6 I) p! l4 _$ w" j$ }9 L. a4 A4 c. p
- (setvar "cmdecho" 0)
$ O1 N" @. z3 ^ - ; Loc ra duoc ong text de xu ly8 c" U% i6 A" D4 f# @4 {
- (while (and (= thoat nil)
. r4 m8 ~: G" G) k! a; n - (< dem dodai)9 N/ s* x: z: o' N5 ]$ a. m6 }
- )/ g q0 d- J' W! Q7 g8 P8 C7 y( |) k
- (setq ten (ssname cumdt dem)
/ g- A: z+ V( g( A/ @ - dem (1+ dem)
% }. V7 q8 B4 a. @. k - doituong (entget ten)* ?9 F$ j" C, M0 w4 p+ `
- kieu (cdr (assoc 0 doituong)) 4 Q+ o/ m( G7 [; v; E3 w
- )! f9 T" f! e) R" p( I: h
- ) Z3 s- c* P+ D: m* C. E- E4 ~ z
- (if (or (= kieu "TEXT")4 Z# t# M9 @2 S5 q, \
- (= kieu "MTEXT")
* e5 e0 D% V3 s2 [6 M, E- D - )
7 L8 `$ }% ^6 W& ?$ a* ^ - (setq thoat T
& a- K/ ?8 `& L - textxl (cdr (assoc 1 doituong))
! o0 J2 M; b5 E! ] l: D6 x: @$ m - )
; w# O4 q" y* c* R/ } - )
9 W& B/ x! f3 f - );- a0 v- Z0 Z) i) N
- (while T 2 f8 ^, i' U4 _/ n' V% t4 P/ y# o4 y
- (setq toi (getpoint "\nSelect next point: " goc)+ r) T) h4 x ^7 A
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))& G% f D$ D' a1 f+ F+ H6 y
- dem 01 L+ W* e/ y1 S# e8 \
- )
* Y3 m, t5 Y# X4 ]2 J - (while (< dem dodai)
4 {7 s, D* N+ V. N: b0 u" O - (setq ten (ssname cumdt dem)
; B- P; n- G$ N$ n. _ - dem (1+ dem)! f. x a2 A: A
- doituong (entget ten)7 G5 k. v7 A, g! g6 c+ N
- kieu (cdr (assoc 0 doituong))
% C& O" u3 y$ h - )
! c6 _' A1 B: Y, ]5 i% a
2 i' Q* Y2 _# B. D: @8 U$ B- (if (or (= kieu "TEXT")3 [1 `7 a2 k# I: W
- (= kieu "MTEXT")
) P6 f+ `9 Q7 F' y6 J1 K, G - )
1 I. f, E1 P! d7 p' o - (doitext ten), J- s5 v3 Z+ H) P6 ^# N5 I" I
- (copy_dt ten)- [$ R! ? L. x( y6 E- u: |( `
0 E" \" l" f' q" Y6 U& A- );if
) v+ U0 h0 ^/ I4 Q' Y - )
# {4 Y' X1 L. b4 p9 ~9 ?9 M' h - );while" G/ [* [- ]! G' I0 \5 Y7 Q! x
- (ketthuc)' @: N/ X$ c2 u% b
- );defun9 ^, q/ W& f( `1 f3 ?, ` D! t) J
- (princ)( h4 n* s; ?" v. m9 V, T
- " L: G1 P2 h3 t: D( g3 y
- ;=====================================================================
) U/ ]6 j7 u9 W2 h7 Q3 s - ;;; By Jimmy Bergmark, d. `! Y. M! t; b$ i! Q
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
. v; e/ k) A- c' Q' G" o - ;;;) S+ x i( }* f" t- p! W
- ;;; Created: 2008-03-31
6 B, R: B5 X) A; }, [9 m4 g8 G - ;;;
0 [; a" O1 d5 \( s) t( q: a) b - ;;; Convert Attribute definitions to text
1 a2 U4 Y) L$ t+ t+ {# I# I - ;;;" v3 u" j% n; T( `+ @3 [
- 9 S" Z- w$ Z$ U" {1 G' I
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
& X* n- \- i0 O, m - (setq eset1 (ssget (list (cons 0 "ATTDEF")))* L% Q; K6 u9 [9 Q9 K* C. T$ q1 u
- blkcnt 0
6 [2 O% t7 @2 i4 D - ). y6 m5 U9 _6 l$ x: ^6 ?
6 v8 n T; i9 L$ Q0 \- (if eset1
4 R' D2 J( S7 U5 F; E5 e - (while (<= blkcnt (- (sslength eset1) 1)): P2 f" b6 M) z9 H0 Z1 W
- (setq en (ssname eset1 blkcnt)8 y, Z; x4 w u
- enlist (entget en)
, A6 N& U$ B& O/ C) X! [ - space (cdr (assoc 67 enlist))( B3 \- h+ s4 s8 [. x
- )5 e& Y# Z* F6 i
- (setq vl (list3 f0 e6 V! ^ e$ k" b' S+ t
- (cons 0 "TEXT")
6 I7 S; ^/ `& @- @- C+ Z - (cons 100 "AcDbEntity")
% ^- }) K: b' M j8 w7 @" p - (cons 100 "AcDbText") G/ \) s; r8 L- y6 Q+ \
- (assoc 7 enlist)
$ z; s1 u# k. {. o V - (assoc 8 enlist)" j- z" Y& n% |# t' Z
- (assoc 10 enlist)8 |, [% O8 j1 R4 Q5 z
- (assoc 40 enlist)
5 y1 u! n1 j% z c+ u, i ~ - (cond ((assoc 62 enlist))
4 {6 T5 D' r: q- n" O. n Z/ g - ((cons 62 256))7 _0 u& Z. c2 x
- )
a/ M- H- T. a, m( Z$ o - (cons 1 (cdr (assoc 2 enlist)))
1 M0 Z3 ]3 F" A! W2 h- O; k - (if (= space nil)
4 Y4 J) R; y- _/ ?3 X - (cons 67 0)
7 v$ `+ D8 ?% m' \- b - (cons 67 space) q6 G3 \8 P3 T# }" `+ s+ G
- )
% P2 ^( j' G+ \% i - )
G* h0 n% w, ]" a) `, K1 C! c+ j - )2 V5 Q$ N' ]- N% g) F/ w
- (entdel en)$ u, L# S5 F* _5 p0 z$ ~, |& y7 P* m
- (entmake vl)
3 t" \5 E6 O5 {9 U6 s - (setq blkcnt (1+ blkcnt))
r# e, N4 M$ E+ y' |7 y - )0 d! M$ L' q: A
- )
& s6 g! x! I- K - )
+ L2 T* Q; q0 U$ {- y - ;=====================================================================5 j4 y* f. C0 c0 ]- R2 k
- ;============================ Doi Truc ===============================+ t5 ?0 v" ^7 L3 k+ {
- ;=====================================================================
7 s6 @1 Z: ^9 j+ W - 4 E e A/ `0 Y3 m( N( Q7 [% c
- ;=====================================================================
6 H' w# l' w% K+ s1 q1 a* X Z4 j - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
4 i3 g, x+ L7 ^7 A% `3 v3 k' r5 E - ;=====================================================================3 I6 k* }4 W& S! V9 N: u3 e3 X/ {
- (defun c:ga1 ()
9 O1 b8 H& {+ J% ~( x - (setq a (getpoint "\nChon diem: "))
. M2 g2 c# q9 d - (setq b (getpoint a"\nChon diem: "))
/ ^0 ]: {* Q4 K# i- [+ b8 c( j - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. b' {% S) E/ J$ _ - (command ".circle" c a)6 U+ d! T% ?# _4 p+ Q1 B
- (command ".line" a c "")1 k Y; E" h: w( S, o, \& w3 F
- (command ".array" "last" "" "p" c "1" "" "")$ X+ P( w6 @# R' v- D+ h
- (princ))
6 ]1 A0 q/ M$ E - ) C6 a/ @" Y/ L; u
- (defun c:ga3 ()4 `: G/ F3 `1 r; b4 `( g" E
- (setq a (getpoint "\nChon diem: "))& J! q$ T) x/ X; R
- (setq b (getpoint a"\nChon diem: ")). D9 e- F, G. z; ]. W* n# Q) M
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 \3 O1 N' D' G2 C4 k. @5 S
- (command ".circle" c a)
& }% E3 ]0 p* m - (command ".line" a c "")5 ]3 T$ U% G R5 G Y. k
- (command ".array" "last" "" "p" c "3" "" "") K+ P) h/ m) f% g' s/ X
- (princ))! \0 i( M% s# P. ^: Z! V9 g
3 p0 C# r8 z) q6 F8 D! C- (defun c:ga5 ()
7 Y0 J+ s- [" [9 t; o* ~ - (setq a (getpoint "\nChon diem: ")): L4 e/ a) |4 ~
- (setq b (getpoint a"\nChon diem: "))5 W( f; \ ?1 |& v ^
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). R# k8 G# ?: _
- (command ".circle" c a)
5 ` Z, o% }/ j+ r# p" a - (command ".line" a c "")
. \! z+ v$ Y; D" D6 ` - (command ".array" "last" "" "p" c "5" "" "")
6 M+ x3 ]( w! G D. R/ z! z& Z - (princ))
8 v. B$ |, @3 r2 e
5 ^$ |% M7 S( y$ y- (defun c:ga7 ()
3 [+ ?$ \; O! P2 ^1 s( ` - (setq a (getpoint "\nChon diem: "))" H7 f% _7 u7 a) ~
- (setq b (getpoint a"\nChon diem: "))+ l$ d. R' I2 M0 p3 S) m9 k% U6 U
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 t) P% H& [% B& s! c
- (command ".circle" c a)" B% k. i: Y2 e; w2 B
- (command ".line" a c "")4 [5 d/ j. Y# [4 ]
- (command ".array" "last" "" "p" c "7" "" "")
9 L. x4 p- }' k0 P4 P5 _ - (princ)) W9 c$ Z" H( J+ P7 D+ H1 C- k
- ) [" e3 J' I: @$ p0 Y. Z3 \% X
- (defun c:ga9 ()
6 M2 j! I2 P) o G1 o - (setq a (getpoint "\nChon diem: "))
5 x: g: |3 V B1 d - (setq b (getpoint a"\nChon diem: "))
0 x3 v+ x* i" R/ q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' w' L! h+ q& p& M8 C1 N/ v1 l* _
- (command ".circle" c a)
& g+ o, ?3 Q: K0 B$ \: a - (command ".line" a c "")
. n5 `7 g* E# e# _8 m. u - (command ".array" "last" "" "p" c "9" "" ""), ]) _( \& T0 p7 {$ e$ W
- (princ))1 F9 h+ k; p, J, J$ } ~$ L
" g. c" T( l8 e$ Q: y8 Z7 l+ T* s- (defun c:ga11 ()
& t: M H5 w$ Z - (setq a (getpoint "\nChon diem: "))
5 I _9 m5 X: q4 Z" p* `- t - (setq b (getpoint a"\nChon diem: "))
0 w9 I% ? p. A+ w - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 l/ O! e( Z; j6 x7 m# P5 |; y
- (command ".circle" c a)
* ~( B+ J3 i! @ - (command ".line" a c "")
+ ?* P. ]" h* ~0 c - (command ".array" "last" "" "p" c "11" "" "")
. H" a* X3 O2 h% H: l P2 Q' `: N# ~ - (princ))( ^8 O: B, K9 w4 c; l
6 h# h. u$ q3 g+ J& p- (defun c:ga13 ()/ Q% u1 t8 r6 Q8 L# @% A- D( K
- (setq a (getpoint "\nChon diem: "))
6 {# q1 V7 i( T! J7 T - (setq b (getpoint a"\nChon diem: ")) x$ J- f* h, x6 A2 G
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 \- C0 ]9 d8 \( U. J8 e m
- (command ".circle" c a)
" [0 t i; f* r4 n; o - (command ".line" a c ""): R' I/ @9 U* S4 U
- (command ".array" "last" "" "p" c "13" "" "")) t9 \ ~/ R6 m5 C2 m- a" Q
- (princ)). M, s6 a- V/ X. q
: V0 V9 M+ t3 y) N0 `# l0 e0 ^- (defun c:ga15 ()7 }" n F v m7 _# }
- (setq a (getpoint "\nChon diem: ")), v; Y o# s' K: C
- (setq b (getpoint a"\nChon diem: "))1 |4 K# _5 o; o2 Q. H5 t
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); H D. m2 {9 n( F* j8 A/ ]
- (command ".circle" c a)
- Z: w2 J3 v0 t - (command ".line" a c "")
$ f$ O6 i2 x, A) d5 A - (command ".array" "last" "" "p" c "15" "" "")
. Q1 w6 m' z" Q2 j) r+ _6 b - (princ))1 E3 d% E X# e/ i V0 j
7 m( o& t6 K1 U5 X- (defun c:ga17 ()9 k" [! B8 g4 z
- (setq a (getpoint "\nChon diem: "))
* j3 a7 f0 ~ i/ w1 V/ J: v9 L - (setq b (getpoint a"\nChon diem: "))2 D' A3 k0 H1 C) V
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ E C( o1 a3 l; ?# A# d/ l# e% `# D - (command ".circle" c a)
, W) l4 p1 M2 M' N' t$ c0 ~ - (command ".line" a c "")+ b6 o. i9 T) \ P/ n% r
- (command ".array" "last" "" "p" c "17" "" "")
$ R& o. m P' A+ C - (princ))$ B* W2 N; E: y7 D9 W' j
- A% T1 O/ m6 \- (defun c:ga19 ()
; u8 L% {7 v$ x( G - (setq a (getpoint "\nChon diem: "))3 a9 P; B$ q2 |& Z+ y p% [
- (setq b (getpoint a"\nChon diem: "))
- C( v3 C6 r3 ^ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ B" Y5 U+ O7 Q4 |8 F! z3 o - (command ".circle" c a)' M3 s$ [$ K, \; G" F( n
- (command ".line" a c "")7 O) P( O9 `5 R( x( }& |9 h
- (command ".array" "last" "" "p" c "19" "" "")& t' M2 K: ~" F& B- I! B' r
- (princ))
- X1 ]8 I: H) V! S! e8 G - ' n) @% B% |5 U+ ]: t. h& A
- ;=====================================================================4 N+ c8 ?+ ~ S# M) ?1 P
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
6 @- P% m9 Y* n3 N ` - ;=====================================================================
0 i. O: B, w+ W7 G- O( Q) l - (defun c:ga2 ()
) s; P$ a5 \6 a3 j - (setq a (getpoint "\nChon diem: "))$ P" ?! w6 m6 ^
- (setq b (getpoint a"\nChon diem: "))8 F* K8 o- u5 W1 s, u# a
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): ?/ Q0 ~( `+ X7 C; D- `; R1 |
- (command ".line" a c ""). O" o+ ~5 p4 p7 g& H
- (command ".array" "last" "" "p" c "2" "" "")1 R1 h& ?; b+ [+ z# Y; Y5 h
- (command ".circle" c a)
6 {1 l3 k3 P# f" f - (princ))
$ z; R/ A1 w8 A
$ H/ L D$ t/ r9 K- (defun c:ga4 (): w9 o# l% [( N, z- L5 \/ U
- (setq a (getpoint "\nChon diem: "))
$ V9 J( z: x+ ?9 R$ B - (setq b (getpoint a"\nChon diem: "))
* @! D. c5 r" a. p% p4 [ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 E- ?; t$ {' B$ t
- (command ".line" a c "")/ b& j$ f8 r# c0 ~+ j' g0 B5 Z
- (command ".array" "last" "" "p" c "4" "" "")
3 `8 n6 k1 z/ W3 ~3 X5 _ - (command ".circle" c a)4 g, u0 j7 j) ^& \3 e# y
- (princ)) d/ K6 ]% p2 X) k, k" P8 ]/ B
. H8 \( g3 w- l2 r* f- } ?4 Y- (defun c:ga6 ()) @, N7 C7 h5 M% A" _
- (setq a (getpoint "\nChon diem: "))& q" c4 t4 b$ S* P- {7 l9 u
- (setq b (getpoint a"\nChon diem: "))
( e/ {5 A# J& _; M7 s1 H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 _4 Z8 |0 F, U5 u - (command ".line" a c ""). K: j% ?" k0 P; O
- (command ".array" "last" "" "p" c "6" "" "")2 Q+ ~: W; T9 {. Q- ?
- (command ".circle" c a)
* X* W$ J/ m$ p - (princ))6 U, J" _' M+ @* W( p7 S
6 d# A$ ]- g' H/ K- (defun c:ga8 ()
7 |& @1 Y7 C4 _6 Y) b - (setq a (getpoint "\nChon diem: "))3 ]9 n: \# Z% D
- (setq b (getpoint a"\nChon diem: "))
% x/ z) q/ |$ c$ M# @ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- E) P- ~0 j6 \6 x# e- H5 A - (command ".line" a c "")
3 R# t; I* r& h. R3 T- e - (command ".array" "last" "" "p" c "8" "" "")6 T7 ^* G6 [9 K$ J* L( l
- (command ".circle" c a)
2 B/ q u+ j( d ?+ @' B) _$ N* R7 x - (princ))* _9 o$ p7 `+ A$ Q* z' n+ E
- E* _* L* {7 F: K( d0 r- (defun c:ga10 ()
[9 @7 Y9 D, L2 \: l - (setq a (getpoint "\nChon diem: "))
! ~; X0 e% L% p M4 F F, X( b3 [ - (setq b (getpoint a"\nChon diem: "))
% I% _5 c m* S2 } - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ j3 [0 T& z6 I - (command ".line" a c "")3 Z: w" q0 b* ~; a
- (command ".array" "last" "" "p" c "10" "" "")
8 c1 t) I. @6 l* K4 Y3 N; S6 Z. W" Q - (command ".circle" c a)4 _: h5 d- Y! J/ l) Z, p* X
- (princ))
7 X1 y: k# N. |- Z* \# y - 6 D( p6 S7 c2 ]( p* u
- (defun c:ga12 ()
8 ^( d0 z h( y$ L - (setq a (getpoint "\nChon diem: "))
! e0 ?3 v8 D( x2 v9 q - (setq b (getpoint a"\nChon diem: "))
8 d& ]! A* M4 H; @# `: { - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& w0 S, s* z/ m* q; Y$ y - (command ".line" a c "")& a8 v% K. r+ A1 ^, @/ ?1 [
- (command ".array" "last" "" "p" c "12" "" "")
# G4 N" J3 b4 \3 H - (command ".circle" c a)
8 N( f/ X C) E& P z - (princ))4 w' M7 I" g. M q/ z" m
- 9 W7 w; t' t" _0 X8 i" k; ]
- (defun c:ga14 ()/ n7 Y5 k. L/ L, r, c* h4 g8 d
- (setq a (getpoint "\nChon diem: "))
( ~+ S; f7 L. m5 _/ B: y7 d0 e - (setq b (getpoint a"\nChon diem: "))
; H O% h. u1 D @5 f4 w - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) i0 P8 V) H( }4 L! ~& g
- (command ".line" a c "")1 p9 U6 z5 A: T, v n
- (command ".array" "last" "" "p" c "14" "" "")
; |" Z9 T8 S: I- Z$ T0 c - (command ".circle" c a)
3 E# e- G" W2 a9 C - (princ))) x0 n6 s+ \% c L4 d
$ M2 q- Z. m& J$ h1 G1 V- (defun c:ga16 ()
. _ R1 P7 T$ Y7 x' T; w - (setq a (getpoint "\nChon diem: "))" F: N( f+ q5 a; h
- (setq b (getpoint a"\nChon diem: "))) \. P8 [4 [! F. |/ }
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( J( k! Q3 ]0 `" Q' x; ? - (command ".line" a c "")5 d8 r H1 w. e- [- n2 u: Y. W. D
- (command ".array" "last" "" "p" c "16" "" "")
4 Y6 V8 I. W* M; B' _, @4 n' i - (command ".circle" c a)
, r- S- e+ Z; t* _4 w- E4 d, G' e - (princ))9 m6 q2 ^6 W. ~: M, z, {3 w4 W
- 0 E' K$ z3 q$ g
- (defun c:ga18 ()4 h! z6 `* h/ Y& ]
- (setq a (getpoint "\nChon diem: "))% ~- P1 S% U0 ^" D+ w
- (setq b (getpoint a"\nChon diem: "))- G: ^$ B% a' C6 J! H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 n. y6 v* @0 k) {
- (command ".line" a c "")" _* t4 ~. t; ]) V' J
- (command ".array" "last" "" "p" c "18" "" "")6 | S& P: s f
- (command ".circle" c a)% d1 @. F E8 X- s X0 m" E
- (princ))2 f1 N, F2 j1 Y& h
- # i3 {2 @0 @/ W
- (defun c:ga20 ()+ b: N" U# T- _
- (setq a (getpoint "\nChon diem: "))% ?# X8 x' v1 x$ ?1 y
- (setq b (getpoint a"\nChon diem: ")): V3 x7 b0 |5 w5 u E: Z4 p
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ F3 b, @+ i6 D" v4 i - (command ".line" a c "")
3 T7 q T2 {! V& z* @ - (command ".array" "last" "" "p" c "20" "" "")
/ N0 Z5 i L! U3 f - (command ".circle" c a)/ s2 ]. R/ }; m7 U1 e
- (princ)); w( c! W* o# J2 l& M* r
- + X( C+ j5 c! }2 j. s
- ;=====================================================================
$ V5 T5 K: _1 N" k5 c - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============6 k! ^- F$ l y9 s- s ~( x& ^2 Z
- ;========================== 06-11-2016 ~ 18h00 =======================
0 U& G# _' C9 n8 r' b4 K% s - ;=====================================================================; ? P3 @9 u) @8 @' p: O5 y- l& _
- (defun c:ga ()
$ J8 U1 j8 B3 k - (setq a (getpoint "\nChon diem: "))
, [2 r8 A8 O) \; N - (setq b (getpoint a"\nChon diem: "))2 d6 ?$ M$ B, X" J( d& A6 U: e
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ e) H" n/ o3 V. e' Y! H - (command ".circle" c a)
) H+ X: d) ^6 M. x - (command ".line" a c "")# F: n! K/ Y k# o8 S1 ]+ K
- (command ".array" "last" "" "p" c "NUM" "" "")
6 z- b& X5 ~3 [/ W9 E5 D! j1 j! j2 I, Y - (princ))
- {& l. I4 c( c' M - 0 b8 L- t- v9 U: N& o
- ;=====================================================================
# @! `, ~4 g0 P- r; @) N4 }# j - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============& J# i3 R8 p5 S$ v
- ;========================== 06-11-2016 ~ 18h40 =======================
, x; h- ?1 ]1 e% Z' o - ;=====================================================================
/ j, P5 U4 _9 o" p$ r9 U
4 k" e3 }) c$ G+ }! r& [2 _7 V( l9 H3 k- (defun c:hoathi ()
2 @& E* s6 D% x3 |" t4 [' L1 L- ~ - (setq a (getpoint "\nChon diem: "))% K$ C3 R' L/ o) \
- (setq b (getpoint a"\nChon diem: "))" R8 H2 k% c4 u6 X9 ?; g
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& ?& g" F1 M9 i6 C7 [4 ^9 D1 p
- (command ".line" a c "") l5 A; X) c5 |; b$ y7 s* ?
- (command ".array" "last" "" "p" c "NUM" "" "")
6 \+ X8 Q$ }. c1 P- L - (princ))9 r8 k" Y8 X' E: v
- / J, y& `- ~" N6 ]+ l) |- k
- ;=====================================================================
% h) q1 ^; L, h! M7 X6 d2 e - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============; N/ u: p, O/ G9 Q6 i$ X
- ;========================== 03-11-2024 ~ 19h33 =======================0 b0 `+ G* L6 U* @: h2 T
- ;=====================================================================
; n8 E0 ]7 Z4 H2 ?3 Y0 ?% {. s3 d - 9 E0 V, S, L2 t% S* R
- (defun c:cung ()
7 b5 n9 [0 d8 @/ |. r' `- d - (setq a (getpoint "\nChon diem: "))
2 x- p' w" l, J& D& {% Z% V - (setq b (getpoint a"\nChon diem: "))
% P- a- C8 n% j* O/ L H - (setq c (getpoint a"\nChon diem: "))" h2 {" @( w$ Q4 x* s3 F
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 {) i5 j* ^. _/ t% C
- (command ".arc" a b c "")% \" J, |6 o8 R3 ]
- (command ".array" "last" "" "p" c "NUM" "" "")5 b9 r$ g& S# `, ~9 \% X
- (princ))
0 y+ g" @$ n: d' L
6 ^ N w) P" \4 U, M; n- ;=====================================================================
8 ~: c$ Q9 k0 r7 J - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
+ r( c1 G ~/ p( }' A6 v - ;========================== 03-11-2024 ~ 20h02 =======================
. C3 c- e% @+ i0 A. k$ F t0 c - ;=====================================================================
8 Q0 B2 k; f7 o# Z; l& `! h! Z! f( g* T
8 ?7 n# e$ z' F @& C+ H: M! t) J/ D- (defun c:hecloic ()
& n3 |7 {' [! n1 D - (setq a (getpoint "\nChon diem: "))5 K3 A* P" j1 e" d
- (setq b (getpoint a"\nChon diem: multi "))
' E- K6 d; S" ]! L* J0 @: V( X - (setq c (getpoint a"\nChon diem: "))(princ)
: P: V; @3 `, o3 f - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- [( k: m) M0 f5 ^3 l0 E - (command ".arc" a b c "")/ O: Y! c+ } T4 R4 x' k- N( r' l
- (command ".array" "last" "" "p" c "NUM" "" "")
. O3 s0 m% {: D3 h7 h2 }% _9 Y2 Q - (princ))9 T5 @: s) P" P9 p: P* D" `
$ {! S! |! o2 g0 t5 {2 {2 C- ;=====================================================================5 q( W6 y, d H# j$ p: t C
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
" `- c& `# i( v: p - ;========================== 03-11-2024 ~ 19h38 =======================# U/ G* ]/ R' T# B# R
- ;=====================================================================
d9 A+ {1 G' q0 I& C0 _ - " l/ E6 L0 }" v8 }
- (defun c:gay ()
1 q/ h7 U% L H" a - (setq a (getpoint "\nChon diem: "))
4 K- p, c/ S! U4 e ^3 }! d1 X - (setq b (getpoint a"\nChon diem: "))9 j& [5 u$ k& S) s* p7 e4 {+ b
- (setq c (getpoint a"\nChon diem: "))(princ)
( `0 M0 D# K* R# r8 x0 J: O - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); @7 n3 l8 l! B: U$ n
- (command ".pline" a b c "")+ T) n2 |) M1 h$ N& A
- (command ".array" "last" "" "p" c "NUM" "" "")
! _- h$ a1 X1 m0 A - (princ))
7 U: Z( ^. h9 i5 k( t8 C& _ - : [5 K& c% X% w$ B+ x
- ;===================================================================== g, v9 g Q& ]6 f
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
! l5 O5 _; E- X: ^( } O7 l" A - ;========================== 03-11-2024 ~ 20h02 =======================
$ s- A L6 g5 j' { - ;=====================================================================
+ p$ p8 N k6 I! g0 B - 5 |5 }1 Y8 o: `$ l
- (defun c:hecloit ()
- a$ G; f" k# X6 W5 y4 [( Y - (setq a (getpoint "\nChon diem: "))
+ Y9 l1 X0 ] Q, J4 E# d0 I9 c - (setq b (getpoint a"\nChon diem: multi "))+ {; f. m5 g. q* r5 X$ j: p" _
- (setq c (getpoint a"\nChon diem: "))(princ)* k) n- G9 }# S7 o
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). L' R$ _+ L$ W7 N0 j) W
- (command ".pline" a b c "")4 W3 V y4 Y! \. n
- (command ".array" "last" "" "p" c "NUM" "" "")* f5 Z0 I$ Q" z
- (princ))
2 x; k2 F3 D4 p. w2 x/ H
2 Z( a( O. r/ ?0 F9 r. U
% j9 E0 }1 h5 ^# U/ V, p- ;;; ============================ Merge Hatch =============================) v) t& S: G/ t, i( v! k
- # O% I# k) [5 Y
- (defun c:mh (/ ss entht sl i dt dtht)
! O4 @/ ~0 u5 k2 u
( ]8 g2 p4 Z# K6 K0 R c' Z- (princ "\nMerge Hatch - free lisp from CADViet.com")
! X" M+ y5 @+ _ - 5 c. j/ s5 D8 a. M. U+ ~
- (setq
6 V4 ^% u0 W, |0 {# D ] - ss (ssget '((0 . "HATCH")))
% U3 T7 ?. u/ F1 q9 |$ e' B& I l' Y - sl (if ss
) ?1 K4 |; ~; Z) Z4 c - (sslength ss)0 }5 R! i' {8 X$ y7 P+ m
- 0
F1 B& J( n- t* `( k6 A - )2 C& |! ^- u& P) W1 U3 m
- i 0 z+ | i# Z. C& v; ^; q6 B+ ~
- l 0' l0 [% n% Y* L/ t: v
- )' c3 I8 H- d) X5 z. u' x. ?/ }1 @
- 3 e% j }3 b5 d5 M
- (repeat sl
# D/ d, \- m: T, j% B6 @! z! C' P - (setq
# W* W$ _7 q* F8 m# }# ?( p8 r - entht (ssname ss i)# p- L( z) f% i# `- S& e( U# J( }
- dtht (getbdata entht)3 ?. X: W3 t/ b* M
- dt (append dt dtht)
8 q/ x# t. x. g+ V7 c# d; i - l (+ l (cdr (assoc 91 (entget entht)))) Y8 y: R: b3 @( O: G9 n7 z& l
- i (1+ i)3 L. ~" @! V9 l7 ^/ b+ g! @
- )
/ M3 m/ l; c1 E. k8 @- ?& @ V - )0 I6 s: b( ^# N6 h: d
. U' H/ n4 B% W2 Q, \7 R. c- (setq ent (ssname ss 0)/ f6 @! E/ O; G: b
- ss (ssdel ent ss), ^4 B1 u+ \( Y
- tt (entget ent)3 v# c- r4 J6 C9 U
- duoi (member (assoc 75 tt) tt) H3 E8 E4 P2 |$ n1 r
- dau (reverse (member (assoc 91 tt) (reverse tt))): C7 Z# I8 c3 B5 G+ Y6 b
- tt (append dau dt duoi)1 H8 D0 X' @& J: L
- tt (subst (cons 91 l) (assoc 91 tt) tt)# }! H* J5 P! p" K
- )8 |3 m: Q. n4 S5 z1 [; k0 X2 A
- (entmod tt). \1 O% [3 P3 k5 _6 ]2 q: g4 U
- 5 l3 {; E. K3 x( H
- (command ".erase" ss "")2 n9 r' Z# M/ Z5 w' [
- (princ)2 a' b, X5 v0 g9 _
- )4 w5 w$ y5 X' }8 S& K4 u1 `
v) N- h. d v: w& \) l- (defun getbdata (ent)
# i* m* J6 Y7 G4 c$ v - (setq tt (entget ent)
( Y' p& d r% L! O3 ~ - tt (cdr (member (assoc 75 tt) (reverse tt)))
7 m) c5 s9 p0 n - tt (cdr (member (assoc 91 tt) (reverse tt)))2 J2 l6 o. @- O" K- S
- )
8 h+ n' r; N- B, Z) p7 }! h) ~ - )8 r; F# l0 _* y r
- 6 Q$ C, o5 E; k# v% y% \
- / w4 {) K/ u5 }8 z# x5 S
- (princ)0 d1 X4 a8 u4 D1 t: g' m9 v
- # H, o3 g( ^1 L$ t
- ;;; =========================== CAC LENH LAYER ==============================& e, l1 a$ D- U" E' q- A
- ;;; =========================== Layer hien hanh =============================, C. p! i# g7 @0 j
- 7 v: E: x( W( {2 g. ^6 P
- (defun layset (/ LAY) (setvar "cmdecho" 0)3 N N$ Z+ U& a: R# _; |* R; H
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))7 U. o# T. }% Q- r7 H% Z
- (if LAY (progn
% {( A! \, q2 o - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
/ M$ Q: H5 b* J: \3 \; ~! X - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
- M8 o: W" s! I3 F7 C& ^ - (progn9 C6 P) \6 y9 n; Y- U) g
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) . k; e2 L8 Q. f+ m J; I& B
- (progn |$ Y% c/ n5 d% G: H6 |7 A- J
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )0 d% S5 h6 H7 l1 F" F1 s, B# {
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))
/ |5 o3 k. l# h" R8 F# R, X; p - 1 p. H \- H9 Q" u$ W
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================( N9 e6 G* A9 a6 _0 w7 o: E
+ k g7 m- h7 V! A4 N* ]0 b7 t- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)/ t: F) w# q9 `/ J' C& {$ g9 h
- (if (not (setq SS (ssget "i")))
) e$ q- O/ E% ^) ~9 U$ y/ o5 a - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
0 ^% g5 N6 X8 u9 ^# v- ~ - (setq SS (ssget)) ) )% c+ H- D9 i8 W$ y
- (if SS (progn7 n9 H# I6 _/ i+ V; K
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") % A$ B2 `4 N$ q1 i9 t4 e6 \7 P, y
- (if (> (getvar "cmdactive") 0) 0 W, O8 o2 l! W+ K q9 ?- r
- (progn, S& u5 j% w; M, l4 b
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
5 o, l" D. B; k0 W0 k8 ~% e( P( w - (setq SS nil) ) (if (> CNT 0) * G8 L9 j* {: B; S$ F; g7 E
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )9 M1 N$ y5 `9 x3 j, D/ ]4 P$ \* i
- (if SS (progn
* t5 o4 V+ t8 F; s0 b# b7 l4 c! {1 Z - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
) h$ R+ j; {0 I# K9 |- j - (if (= (sslength SS) 1)
! D, L+ i2 ^2 X - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))/ b, e. {8 k- ~) ~: _' J8 U. ?6 N0 w
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
4 J( x3 z4 I" c - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
5 e- h3 R! ?8 `$ E! O. {
6 X5 x$ X2 s9 O r0 a% U1 J1 J- ;;; =========================== Layer Iso ===================================
$ _' G4 |$ n: p
! V& C. ^/ a" k/ ~7 w0 c9 v- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)) l& ~' Y4 s8 E! b# L# [) y4 o
- (if (not (setq SS (ssget "i"))) (progn
9 M. w( ]0 }, _$ y) e( K/ S+ s - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: "); T2 `1 m' u. j8 F% o
- (setq SS (ssget)) ) )* W1 d. g3 C6 w( b8 D2 k/ ?- A, h
- (if SS (progn (setq CNT 0)
# y; h# v) r! `0 `, { - (while (setq LAY (ssname SS CNT))
: {3 g' L R& D" v" `4 j! l9 H - (setq LAY (cdr (assoc 8 (entget LAY))))
6 [; q/ N+ |8 K - (if (not (member LAY LAYLST))0 j+ D1 c5 m/ u9 {9 Z5 d# E& n) S& N
- (setq LAYLST (cons LAY LAYLST)) ): w X& a" r8 a" S' d7 M2 M; f c0 Z
- (setq CNT (1+ CNT)) )8 f8 N9 N$ ^& {6 ~. Q$ F# h
- (if (member (getvar "CLAYER") LAYLST)
: h6 l8 G5 e. x# K$ Q1 V - (setq LAY (getvar "CLAYER"))
8 `1 [# j" ?8 z- {) D - (setvar "CLAYER" (setq LAY (last LAYLST))) )2 }5 E% M, {( l. z" c
- (command "_.LAYER" "_OFF" "*" "_Y")5 G9 e% Y, Y3 J5 R+ x; `8 @
- (foreach VAL LAYLST (command "_ON" VAL))1 ]! ]3 a$ M) N/ R% r
- (command "") (if (= (length LAYLST) 1)& k5 g) Z" |6 V: F, \" \2 s! L
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))' W: p! ^0 H u! Q' @
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "4 L% [2 @4 }- S" v) O
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
4 e. i F( e# `. E6 o9 R4 X* I2 z - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))& H; r. A- F3 p0 Y
/ \. [8 \+ X/ N( X5 ~- ;;; ========================= Layer Match ==================================
8 j, V' {4 x5 E+ {
3 M1 O" Y9 r: e" O! z7 @+ r! [- (Defun LAYMCH (/ SS CNT LOOP LAY ANS), Y4 o( g$ B6 m7 c, o7 f
- (setvar "cmdecho" 0)+ g2 z5 Q% b3 _0 z4 p
- (if (not (setq SS (ssget "i"))) (progn) a0 _( b' l0 \# }; H7 m* s
- (prompt "\nChon doi tuong muon thay doi Layer : ")1 F: H' z) V0 D0 S7 }0 o X
- (setq SS (ssget)) ) )
7 e) l% l: e+ V - (if SS (progn
+ T7 _8 l8 ?7 L3 } - (setq CNT (sslength SS))
7 p# N# U- u- e% s2 i5 K) | - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") 1 v6 @5 y/ G( A4 L8 {0 w; K
- (if (> (getvar "cmdactive") 0) (progn6 i; R3 X# I% v' ]
- (command "0,0" "0,0") (setq SS (ssget "p")
) ]" N1 X# w' |" Q, u8 O1 E+ _, R - CNT (- CNT (sslength SS)) ) )# I) H0 `4 x) b( o1 m/ v4 L
- (setq SS nil) ) (if (> CNT 0) , r, Z2 X5 W" s1 q
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )! O/ F i; u6 g& Z; Y
- (if SS (progn; ?; \+ X+ B! U! w% E
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )9 r* W% y9 ~. h5 X
- (while LOOP (cond
0 n3 [' B$ A* \; U - ((not LAY)
7 c2 q7 ?2 R7 l2 \: L+ u - (prompt "\nKhong chon doi tuong.")+ _* ^$ N+ a4 c9 G4 m9 t
- (prompt "\nSu dung layer hien hanh? <Y> ")) z6 @# O: M' O, a- Z2 E! K& I8 |
- (setq ANS (strcase (getstring)))
7 |$ p) z0 a3 z - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
; C) T+ Z4 L1 {* d( \6 B5 j - (setq LAY (getvar "clayer") LOOP nil ) ) )
) Q3 U: F7 [ o0 I8 C - ((listp LAY) (setq LOOP nil) )7 N+ K4 i3 F& d# h# i0 X% Y5 j
- ((= LAY "Ten")
. i$ Q! C; \7 l2 O* c& ^' O - (setq LAY (getstring "\n>Nhap ten layer: "))
7 P$ b& v# i/ u# a1 f - (cond- t/ s+ Y' r4 \0 L: }
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )
( n7 t& K) B( K) ]5 E - ((/= LAY "")* ?( V0 }( G+ Q: v& g: Q3 a
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: "); G/ V& C$ f6 i
- (setq ANS (strcase (getstring)))9 n$ O2 ?+ B( A
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
1 W5 G" f4 q" j. ]) s: F8 X* R3 A - (progn
0 [( R3 A& l6 V - (command "_.LAYER" "NEW" LAY "")! \. p$ y5 ]7 ~
- (setq LOOP nil) )
S0 c9 `5 d! |! v2 `; K( I- z1 X4 [; Y) X - (prompt "\nLoi ten layer.") ) ) ) ) )/ z( U) H f% Q* l# b% ~
- (if LOOP (progn (initget "Ten")8 \6 X* b& P& @4 F- v9 ^+ a
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP, O, R. P$ {+ w. y! I( l
- (if (listp LAY)
& U' i0 g6 i0 X4 D" V, r - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
: {. k# v5 a7 b$ i - (command "_.chprop" SS "" "_la" LAY "")2 ^1 M: I! R' n- C; M
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )0 _" u% v# H0 R& U6 G' F
- (if (= LAY (getvar "clayer"))7 F+ |- ~ W6 [3 J, h
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )9 z. H$ ^3 R9 n; h$ V+ B
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))1 z' R/ p( c* Z# i1 t q
- 2 a! t+ B5 C4 m) I
- ;;; ============================ Layer OFF =================================! t# t' r6 B3 F N" Z* ?: {# d* s
& y; l/ s* P5 O* t+ V- |- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
, }( n# W; m1 C - (SETQ SSET (SSGET)) B4 ~2 \+ H/ E
- (IF (/= NIL SSET) . i1 [4 Z* p6 `$ n- T4 f$ a5 I
- (PROGN) f6 _! E! t( |7 k- x4 S. f
- (SETQ SSL (SSLENGTH SSET))4 p& x, u G! U! l' f; p7 H
- (SETQ LAY "")* m6 [% _4 Q: K# K: k( [, H
- (SETQ I 0)- `& Y! Z0 }2 N' ]) J" {4 @$ {1 z
- (SETQ MODE 0)
" D' ^0 J, }- B# U9 |, f: r) o - (WHILE (< I SSL); V; _, q4 p B& i
- (SETQ ENT (ENTGET (SSNAME SSET I)))
) n3 q- F( m4 P. [% A1 { - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
) X+ q: j' w* ~) } - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )). }' Z5 T1 h+ R" ^; x
- (SETQ I (+ I 1))
. ~8 l7 r5 ?/ C8 p - )! W$ [" ~1 g# w g7 ]9 K
- (COMMAND "LAYER" "OFF" LAY "")
$ K' l$ x- h6 p6 L8 s: H7 |' ^: d - (IF (= MODE 1) (COMMAND "") )
0 I5 ~ A- t- I, j; j; U - )$ S! a" q$ w, ^2 H/ H$ d' O
- )
5 b, V8 H% \$ D9 B - (PRINC)
. F+ `) o0 @( X' e1 R$ {/ H - )
4 R4 D( r( W) k2 n$ U# k' h - , a( H* I/ v I( p% [6 r
- ;;; ================================ Layer ON ==============================, \. ?+ i7 A4 Z+ f
" {+ Y+ d. w/ h) f$ u9 W- (Defun LAYON () (setvar "cmdecho" 0)
; f- g3 H' e" t2 r, b - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")8 o* Y3 Y5 Z" o: j. |, D+ {
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))+ X8 A, w4 d% f6 W7 O
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))% B& [- l: @( Z9 J) ?) K. ]
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))# K/ K* E% y4 x. l- h2 `
- 9 a0 [ @4 N/ x
- ;;; ============================== Layer Freeze ===========================( Q; I# ]* s) @5 [9 R) l1 |
- 4 H" J ~7 _ u" s5 T
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
; }: [, Y7 K# C9 F8 |! c - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
0 \" t* P! ^' _9 j5 y - (IF (/= NIL SSET) (PROGN
7 w& P. l! r. F: j5 u# U ` - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
& u# A6 E: I+ R" d8 @3 I: e - (WHILE (< I SSL)
0 C! E% w1 w' w - (SETQ ENT (ENTGET (SSNAME SSET I)))6 L: J" V, q5 l, P/ |
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ); l0 @( s9 }- c) _7 m5 l1 l
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))7 l) L$ L) D) b" `6 q# v( I. D
- (COMMAND "LAYER" "FREEZE" LAY "")
0 |! W/ k+ ^" d - (IF (= MODE 1) (COMMAND ""))))
7 i9 n4 j6 o/ V/ S. T* o4 r) S - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)2 c" ]$ X0 i; {- i
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )3 N/ c/ Z$ O0 |# @% t
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
/ a- i( Y, r# D6 x1 G1 B$ v - 7 i* w7 P" F/ D; N$ f- V+ U
- ;;; ============================== Layer Thaw =============================== z: a: C0 G; @( n1 l2 x0 Q( h
8 ^; }8 W# S3 Q0 w1 {! l1 I- (Defun LAYTHW ()/ f4 d. c: |/ h S* u. e+ D3 M
- (setvar "cmdecho" 0)% @0 r! @4 Q- X# ~3 J
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
5 y8 O6 X$ U, Y0 i: j9 z9 T - (Command "_.LAYER" "_THAW" LAY "")
5 i! I3 D8 w N6 J3 r2 ]9 @ - (princ (strcat "\n Layer : " LAY " da THAW."))
' s4 J! g& x. x2 r8 w( ] K - (princ) )* N8 _+ H, E* E0 y' Y+ {# r r
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))0 @: P& r9 h) i! @% l% Y
- $ C( D' m0 K, |3 W' p
- ;;; ============================== Layer Lock ==============================/ m8 \5 o$ f1 @: C; L6 _1 b' u* }
$ [0 x, [- \+ r5 S; @- (Defun LAYLCK (/ LAY); ?/ w: p/ Y4 R
- (setvar "cmdecho" 0); | |: y) O& J* T
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: ")), ?2 H2 @5 g: s' p
- (if LAY/ B5 f3 w. e3 ^8 I% S
- (progn8 O" e7 f- ~/ N( U) [$ A" o0 T
- (setq LAY (cdr (assoc 8 (entget (car LAY))))); o) P+ }. q" B# N
- (Command "_.LAYER" "_LOCK" LAY "")! p* Z( q) U" z& V
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
* p- H4 c& g. i# x - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
+ R8 F0 R; C& E
+ S* @! o7 S+ f5 Y- ;;; ============================== Layer UnLock ==============================* f% Y7 s8 _4 m* B" z
- * g7 L$ l- U1 p3 @
- (Defun LAYULK (/ LAY): W" m' ?+ N7 T' J- ^, x/ n
- (setvar "cmdecho" 0)% D# y/ j+ b" V, q0 q- \
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))2 W z7 I% \$ L- Y, i/ D7 ~$ \
- (if LAY2 w# s7 C1 h$ K: @$ u7 s
- (progn" G! d5 q$ z! f' s2 C$ @# ]
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
4 x/ ~4 N/ }2 u M9 J, m% f& X - (Command "_.LAYER" "_UNLOCK" LAY "")
( W1 j9 c& _9 O- \ - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
& S7 ~% L3 ^9 f* o - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))7 W" P4 x4 z" X
- ( h3 E4 u: a: b
- ;;;===================== Delete all objects of Layer ========================- ~4 T& h, H6 G" L. l
% ?1 u; z2 W1 @- F+ T4 h- (defun DELAYER (/ ocmd L S)
3 ~/ a- o: R: U. ~, x - (setq ocmd (getvar "CMDECHO"))% A# { s( W$ P
- (setvar "CMDECHO" 0)
( N" K) R0 g2 ` - (setq L (strcase (getstring "\nLayer(s) to delete: ")))
2 P+ c* S' l' @% p8 D5 I - (setq S (ssget "X" (list (cons 8 L))))
7 S$ i% H; \ y - (if S " w, l2 X/ {* K0 F
- (command "ERASE" S "")
+ H6 y$ ^) w3 |! Q) J - (princ "Layer empty or not a valid layer name.") )
# k' G3 X9 i6 q& P0 b# ]( s - (setq S nil) u ^2 I3 [2 W) R5 F' L3 y
- (setvar "CMDECHO" ocmd)
" S8 _8 N3 I5 C - (princ) )
3 ?1 _( x) ?. v- r - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
+ h1 Q; N6 [8 V! s, ~ - 1 x" f6 M1 ]( G+ s0 y& H& e6 w( e4 V
- ;;; ========================= HET CAC LENH LAYER ===========================
3 ~) j% m/ P8 _) K) P$ V7 \/ \6 B - 6 R0 s7 w4 H* w# @) q
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================4 C3 S: j% W5 ], f, R' l
- ) N4 W! u# v% \2 B' h* x7 s
- (Defun C:EET ()) E0 P4 l' @+ L _! g
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)3 t3 ^7 _; T0 z7 U& h' ]
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))0 j4 w& `/ l0 ~* U
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
8 F( G; o7 [6 s; w6 X, ` - (Setq I -1)
$ u2 _6 Y3 k. M+ \ - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
0 u& n. J9 ?! Y; n; B - (Repeat LEN6 I$ Z1 @' Q' H
- (Setq I (1+ I))5 D& h) m3 x8 q9 R" q
- (Command (List(SSname SS I) SIDE)) ) (Command "")$ c, W1 {2 a* x( e( {
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
" u N C5 o5 ^7 X% i: Z
o$ L9 d# e+ }5 {5 m( P2 D f0 j- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
8 n( W, f6 R* K" V8 C" u( i
8 t, @" p: X& }# X K+ a0 s3 A- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
+ Q/ G2 m' X1 a4 P3 { o9 w - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))/ [ z3 U- w' @/ }- B* {* s
- (setvar "osmode" os)
0 |# @, T! X8 t6 f9 i4 g( Y - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
3 X7 j+ k) X5 K' Q/ j6 U4 c - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
3 G; C1 ^$ ~; @$ \: w - & N& i- Q: d& e& c
- ;; ================ Change width of polylines =========================$ w+ w5 E& y* ]1 S% Z
1 M# j7 ^+ U6 w }! }3 @ G5 t1 W, C- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
, G: C" }: [8 F) Q1 K- u6 O - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") 7 g. [, c$ g* J, G7 X9 a
- (setq b (ssget)) 8 A9 L/ t" H- E/ L
- (setq sophantu (sslength b))
8 L# {9 X3 D: F1 c. x - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))) e) c9 R7 l M, z9 N# j5 u
- (princ "\nDo rong polyline <")
, U. ^; L6 a l& d) r) k - (princ ha:wid)) `6 k6 k/ D d# W0 l
- (princ ">: "), f8 E* Z; [6 E8 C* \
- (initget 4)
5 F2 x! E: [& ]$ ^0 O - (setq ha:wid (getdist))
! Z' p" Q o) H" p4 O- `2 v - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
5 j1 O5 z+ u- h A Y- w - (setvar "tracewid" ha:wid)9 L) i0 p5 _& k9 z2 P1 Z5 T9 I: g) \
- (setvar "cmdecho" 0). V+ Q7 P2 `) P6 s3 O; m, @7 V
- (setq sodem 0)
~: I% N- Z) y; x# i - (repeat sophantu
: H8 H' |; M& Z+ |! H' \ - (setq a (ssname b sodem))
# ^# z8 }9 {) v2 }5 V/ w - (setq list1 (assoc 0 (entget a)))
3 T2 ^. _4 A, \9 x1 b3 D - (cond
1 x1 u% ?+ a# @% ? - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid "")), G/ l/ H, y7 h: m* H0 Q" ?+ G
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) 0 N" d2 U) U$ i1 B4 A- Y- Q7 l/ P7 W
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))& _" J# c5 y/ O$ t& o
- (defun c:wp () (wp)) (defun c:pw () (wp))+ }$ j, S C8 c8 D, M! [
- 2 V- {" i& x/ u. x) p
- ;; ================ Change radius of circles ==========================! P* \5 F* q a: w% S
- - r% y9 `1 x0 C9 B# ^+ h
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))0 Y; r1 D8 u0 v z( y8 \: w9 Q9 d
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))8 m, P5 I9 n7 W# C5 E& \
- (IF (/= RD NIL) (PROGN (SETQ I 0)" d; Q2 K& i8 R* _
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )+ Q( [$ Z) X& ^# o6 w z
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN" N! u! h# s8 W# i7 L2 P
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
- z8 @( Z( h& _1 ?& _ - $ j1 `' `4 h! }# j' |; a! W: u0 D5 v9 S
- ;;; ============================== TEXT Hight ===============================
! m3 V2 N* j% k! l v - : C8 `1 P" B2 y% K b
- (defun texthght (/ ent hght)8 \- g" q i- I+ @+ R% r; _$ j
- (setvar "cmdecho" 1)
( N3 Y% `5 g7 w5 m- p, C2 I - (prompt (strcat"\nSelect text entity with required text height"))
( n4 b2 q P, `! X" H" O - (prompt (strcat"\n."))% @6 X( A9 M1 S/ B9 S# j
- (setq ent (entget (car (entsel))))8 B* J2 Z4 J" A
- (setq hght (cdr (assoc 40 ent)))
6 ?* P; i2 q ]4 y; d7 y9 l - (prompt (strcat"\nText height now set at "))(prin1 hght)
9 K8 [1 f, F5 |9 H9 e Y& C - (prompt (strcat"\n.")) 2 I/ \$ g. i1 x) w5 e& ]% u
- (setvar "cmdecho" 1)3 r7 X g! M! W0 z+ t: j# a( j
- (command "DTEXT" PAUSE hght "") )
. \, A3 p! |' o) Q - (defun c:teh () (texthght)) (defun c:texthght () (texthght))" J' B6 f2 ^% K1 D' f
8 R8 @; d1 Z u9 S5 o- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
' J( j6 s d/ _: f+ @7 s
) u* }& a+ Y' G; x" W8 ]- (defun c:tuu () (setvar "cmdecho" 0)
# o" U7 q I7 E) L3 ]# b u - (prompt "\nHay chon dong TEXT can gach chan ")
0 G% G* ^0 n- R/ C - (prompt "\nSelect objects: ")) W' k! E, \. a* E
- (command "select" "au" pause)9 Z8 B: ~# K) T/ d
- (setq sstxt (ssget "p")* ]$ l1 Z0 N* x, V$ ]8 ?
- sslen (sslength sstxt)
# f% b+ I' j# H- ?# G9 q - ctr 0 )
. n. P7 E i& K& M, Y0 p# g - (command ".undo" "mark")
, F7 h% n T! p" c" d8 g - (while (< ctr sslen)
0 W) a; G, j+ H - (setq listxt (entget (ssname sstxt ctr))
! O/ @; }6 _! k6 ~3 D& s - txttxt (cdr (assoc 1 listxt))
, F' ]) _% |6 l - enttxt (cdr (assoc 0 listxt)) )
% R4 C) w: f6 P: u0 d# r# a - (if (= enttxt "TEXT")
$ p0 b4 P% \. [/ U4 W9 o - (progn/ M/ U6 t% [$ W4 s/ F' a( K. ]
- (setq testxt (substr txttxt 1 3))' d9 k6 y8 M1 i' b, I
- (if (or (= testxt "%%u") (= testxt "%%U"))
. v3 e( ]. d+ ~+ |6 t7 x! _3 V - (setq newtxt (substr txttxt 4))5 t4 i e: k5 A
- (setq newtxt (strcat "%%u" txttxt)) ) s' u8 n- k( O- _1 G, }6 B8 q
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
. F# p; Z: \) H/ N/ q - (entmod listxt) ) )
; Z4 i- Z2 H' d' M. Q, n - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
& ~# X4 L' b V+ e" B' G% J- y3 q
( V+ Y/ S5 q9 g6 y/ T' O4 v1 [& h8 B- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================6 W+ i0 m- v) b9 f' _% i7 R* e' d: J
- 2 d& u. m' f) x& N
- (defun c:tob () (setvar "cmdecho" 0) B( k6 c2 j$ p9 t
- (prompt "\nHay chon dong TEXT can gach tren dau ")
6 o, k1 b1 ^4 _. K* a( T+ ` - (prompt "\nSelect objects: ")
0 }7 d d/ u$ Q - (command "select" "au" pause); _3 G( g O" F6 K
- (setq sstxt (ssget "p")% G8 Z- I" X3 E& G
- sslen (sslength sstxt)
+ R3 `1 h; k/ N5 Y2 n* F' |! s - ctr 0 )
2 s( J9 B" w+ Q% N4 K: k - (command ".undo" "mark")5 V9 }3 P# f8 \. P; L* W) D
- (while (< ctr sslen)
7 r$ s# T5 x. B - (setq listxt (entget (ssname sstxt ctr))* Z0 Y: I+ e t) F5 M* H$ p+ l
- txttxt (cdr (assoc 1 listxt))
) n5 c9 G$ B; V6 s4 m - enttxt (cdr (assoc 0 listxt)) )/ ~0 ^& j5 I9 ]6 o- i
- (if (= enttxt "TEXT")
+ v& b1 G1 y7 K8 G - (progn$ t. ], B3 ?) d! r! D- s
- (setq testxt (substr txttxt 1 3))
# ~# l* u/ `$ G- O' Q - (if (or (= testxt "%%o") (= testxt "%%o"))4 o: e) B9 k5 b7 W
- (setq newtxt (substr txttxt 4))
+ f- M# W s: D: C0 O4 M# f5 U' \" s - (setq newtxt (strcat "%%o" txttxt)) )
* Z( O# {% ~5 P. p6 N9 h - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)); Z9 H# U3 _4 p& y: A
- (entmod listxt) ) )
# x s- d7 }* O/ o5 q @2 F - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))& e- \. z4 q" ` k/ p8 Y* C
# O7 n4 J& o+ r* y1 a- ;;; ========================== Tim & thay the TEXT ==========================4 d& E, d! g4 m' O8 j9 Z
- , o- H' d* A5 d
- (defun frstring (str search replace / str1 str2 index find), d% V/ R4 I& @" F; e
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))6 |" k! }& e8 J5 T) M
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
8 k1 n$ S) n" s1 q" Y6 J - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))! G1 S/ L" j, C N* R9 ~ m* O" k( d
- (defun hai (/ dial)
* J: ^$ y% m( z - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
+ y, e& ?1 ^# x5 }+ @4 K - (if (not (new_dialog "find" Dial)) (exit)) ;;1 _! B! q! `; j0 G% d
- (mode_tile "find" 2); Tao dau nhac tai hop thoai8 `, e1 g( U, q/ h& Q
- (action_tile "find" "(hai1)")
" ]: u& {0 p5 i - (action_tile "replace" "(hai2)")5 B; r+ v8 W* ~2 _
- (action_tile "cancel" "(done_dialog) (exit)")
1 v, b' V- Z `8 M0 d$ x% u! d5 l! V0 s - (start_dialog) / Y& `& S( J' K
- (unload_dialog dial))1 v' e0 V, z! q$ [1 B2 ~
- (defun hai1 () (SETQ str1 (get_tile "find")))
2 R, b) G* k; G1 D2 m - (defun hai2 () (SETQ str2 (get_tile "replace")))
' _: k* W, ^/ ^/ {
' P4 ?( _ b& y' r- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)0 U: w4 o) T5 x1 c$ `
- (hai)
5 F" h2 w* L _+ X8 I( P - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
3 i3 ]: ~# a- ~5 b* i2 i4 S - (progn, v5 S I* S2 y
- (setq taphop (ssget '((0 . "TEXT"))))% n, P4 }' T* ^
- (setq sodem 0)
% b& a1 x: M- c, B8 ?& _3 m7 t - (if taphop: ]8 H$ p% N( n; h# M; M
- (progn
, v) K3 w) |" r4 C) U5 v - (Repeat (sslength taphop)! i2 t" d1 K- ~) g7 p
- (setq a (entget (ssname taphop sodem)))* I/ u% v) s# v
- (setq str (cdr (assoc 1 a)))! M2 R/ z [: B' W" U6 }/ B" a
- (setq newstr (frstring str str1 str2))
2 E& N" Y2 K9 X - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
0 I0 L( L7 D; i+ L. h - (entmod a)
& m; p2 }1 |8 k+ O2 B: j0 q - (setq sodem (1+ sodem)) ) )9 N- e' u/ v5 g, X- D/ r* H
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
1 j& |& {! w! v4 T4 h* B( ~6 P0 r
7 s" G& A v0 R5 _; S: O- ;;;============================= CHTEXSTY.LSP =============================, l! l5 q* j/ Y% r
. U% f' ]! I& \" V6 L# S1 o- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST "), g6 [; J/ ~; M3 b: z, x' l3 f
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
- U; T3 h, ^( _: l - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))! }8 ]1 p/ F; t$ H
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
) I4 Y( c1 j9 V - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B)) _: H2 a( ]& o4 m
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
% c$ N8 S2 ?7 G2 i: N8 y5 l4 k - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
* {, L/ Y& D$ ^! O9 l6 g - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))' z% C3 D+ k: N4 E+ m
- (Initget 1) (Setq A (Strcase (Getstring+ Z! n" C* a T: c/ g3 U
- "\nEnter text style to change: "))) (Initget 1)
9 N- ]. m) |* `' _' l r - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
+ x, `( V1 n( g$ x R t - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If! `* Q. D! Z, U; J d* T9 P, y
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E)))), q2 S; B2 w* I3 q" Z
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))) U- p3 Q- y6 i7 M1 v
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))2 O! m& m( g a* z
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
P. q2 D* J9 `2 P) v - 2 E# ?) m( s5 C/ \& u1 F7 I/ b
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))# j$ I3 I' r6 {0 f" v
- (Setq J (Cdr (Assoc 50 A)))); D, j. |( v: p
- : ^- o8 C# P" Q: Q5 ?- w
- ;;; ============================ DRAW CLOUD =============================: T9 E) I- O+ s9 W
- 8 p+ h* A% ~+ V1 k( }
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0); L% H1 u! X- C- N" m5 f( i1 z
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
0 x% u2 k0 P, M- i) P* G - (setq la (getvar "clayer"))
7 [! y9 ^: C- B% x( R: y( `+ e: j - (command "layer" "m" "cloud" "c" "5" "" "")% D6 u4 a: @# C2 O/ v1 ?8 k7 G
- (setq pt1 (getpoint "\nEnter first point of Cloud: ")). i: P$ o/ H* ~9 n, s# c; H1 q) a
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))* v$ u1 H# w: y
- (setq cnt 1 ss (ssadd))9 {' F( O+ y8 m' }
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: ")). }" T1 z7 F6 p% ]& A O! C4 U
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75)) H% Z# K+ O6 ^" U
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))* ?+ {- g7 g/ @4 i0 R6 h! B
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0): S9 u% |2 _; {+ ] H Y
- (command "pedit" arc1 "y" "j" ss "" "x")- j% l) @9 A2 k8 D' W4 G- h( q
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)7 ^" y. t7 P' F( |& ~ ]& I
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
; }0 _" N0 J& V. B2 i( e - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))7 N- H3 _; y; N0 V
- J; j8 B8 k( D+ B8 s1 e- ;;; ================================ Funtion-Dulieu ========================7 ]4 V" h D. ^ x
- ;;; ================================ Funtion-Dulieu ========================, A% I [7 n v" q& N- l& e) p: O
- ;;; ================================ Funtion-Dulieu ========================8 f/ K7 q) ]2 C
- % `, {0 ~( g; u
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )# h4 L' R4 r6 ]7 Q* C& o! l* @
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
- N1 }, l- b" G0 T - (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))
. g l* h1 z/ H: l: E) @ - (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) )
, g* r J3 J/ O- {; I - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
4 F' u w6 \: A1 b - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
6 b* y' X5 I6 o& {$ ] - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
7 W" W _9 s( i& S) J - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))* _- A) _' }- |" E1 C2 h
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
" x$ I/ V: [- w+ x3 ~+ j' ~0 { - (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)))
$ A; a* Z5 n* y) d, q; x% q - (defun dtr (dtr) (* pi (/ dtr 180.0)))
- h3 \) n( U7 y# x& D2 S - (defun rtd (rtd) (* 180.0 (/ rtd pi)))" a4 F( {, E2 S4 l/ n0 W
5 P M" V$ M8 ^) L7 l- ;;;==============================PROGRAME===============================
( P) I- ^8 I6 m4 U - ;;;=====================EditDiM Hien Hop Thoai Dep======================
5 q7 f+ ^, P5 g9 g - ;;;==============================PROGRAME===============================0 D/ z( k4 G) K4 @
& l& d1 K: ]7 z! r* ]* C. Z r! c- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)& Z. G; T9 `! _' v+ r7 G) M0 r2 A
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
$ _( Y6 c0 ]8 ?: u5 B5 F- q8 ]) u - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
8 N. ?- Q6 L, ?+ c - (Setq Oldlis (Entget (Car Chon))
9 V5 ~0 ], C, U( F& M" ?/ u - Pt10 (Cdr (Assoc 10 Oldlis))
E$ ^+ N: i/ K# x& ^3 t - Pt13 (Cdr (Assoc 13 Oldlis))" p1 T x& c9 L, P( Q5 |8 e
- Pt14 (Cdr (Assoc 14 Oldlis))! Q n% S) r, z2 @' ]$ L, \
- St (Cdr (Assoc 70 Oldlis))
/ a* S v9 p, y$ k- k% }) }3 d9 G% Z - Dimdefault (Cdr (Assoc 1 Oldlis))1 ?, V* N1 s" Q+ b+ J
- )
% h9 C2 t% Y1 X y, w8 }! _ - (Cond
4 Q( W% T6 c" N: z% m; o/ R) Y - ((Or (= 32 St)(= 0 St)(= 160 St))7 e O+ W9 a$ g9 w& D0 X
- (Progn* `% S N; g8 g9 b) R7 W# J: ], {
- (Setq Ang (Cdr (Assoc 50 Oldlis))
8 _ I! p9 Y- Q4 M* ?! c. Q - Pt (Polar Pt13 Ang 500)9 X3 W \9 R. f: p5 A
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)+ p6 k1 L/ }: n2 ]
- Dis (Rtos (Distance Pt13 Hc))
. Q% ^* h0 B8 t" f4 v7 I - )5 l, |4 u3 T8 z3 q# j
- )% |" G) W# x- c( B5 f
- )8 V* ?$ V5 _+ C- Q
- ((Or (= 33 St)(= 1 St))
( k- [; W" K0 a$ g6 [% S' w$ g - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))! z" b3 V8 A1 X' Q
- );;End Cond
$ C8 e' j, B3 j6 a. c5 A1 c* s$ I - (If (= Dimdefault "") (Setq Dimdefault "<>"))) }9 _$ O0 y/ M0 [
- (Setq Dial (Load_Dialog "Hai.Dcl"))
+ G0 u7 v2 g$ q9 Q: U* Q* j - (If (Not (New_Dialog "eddim" Dial)) (Exit))# m$ ]& Y4 a; O+ M# O! s
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
4 S0 Z m7 Z3 a& ?4 } - (Set_Tile "text" Dis))- m0 B9 z. v" [. H
- (Set_Tile "ha:edim" Dimdefault); h! x$ D( @% @( w2 J8 N
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai- z2 O8 Y# h& {) o. m. l
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")( z4 d4 p' p6 O1 A' `
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
& L0 L$ j1 M8 E - (If (And Str (= 3 State))
1 @9 @1 {( L' L( r - (Progn
1 L3 k/ f5 L. m - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
# x$ L9 i O2 }* }) l* k' u - )
: \6 l; {" d3 h - (Defun C:EH (/ Chon Name )
" ]2 a3 P4 d7 m - (Defun *Error* (Msg)
- `9 a7 d# w4 S( S- i8 Y3 e. }1 N - (Princ "\nerror: ")(Princ Msg)(Princ " ")& g7 ]) C3 H1 a+ _% O
- (Start_Dialog)(Unload_Dialog Dial)
$ [3 a# ~* ?+ r% O4 m5 b - (Setq *Error* Olderr)(Princ)
) a' h5 s8 J( \' k7 M& q$ y - )
4 a3 J0 g' ~* H3 a3 K: R - (Setq Olderr *Error*)- F0 D) N. U4 L V
- (Setq Chon T)8 B: D1 v* U7 U! }
- (While Chon
: [) J& |8 B$ x7 X2 x* Y - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))" A' P& T! s+ R4 _3 Y& l
- (If Chon
* v9 ?/ S7 M8 w/ j8 w - (Progn" d% L1 }3 n& s- B+ w5 Y0 B
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
+ t* |0 o. H0 S, M - (Cond# k5 J6 A4 K' j8 T* n: c' v
- ((= Name "INSERT")(Command "Ddatte" Chon))% P1 x+ i% E4 \$ K/ m3 w% T; I8 C
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
% y0 V1 n; T( A4 ^ - ((= Name "DIMENSION") (Hai_Edim Chon))5 J- b( w, N/ t5 L$ {
- )
" O0 b8 v- A# a! J5 t - );End Cond
: |) L% x; D. ^ r- D - );End Progn
4 v. g) N- E4 S$ A" x - );End While
8 H: J6 t. F$ A$ q - (Setq Olderr *Error*)(Princ)* k3 R& r$ E- W" X! \; w
- );End Program7 q8 o. X0 q2 Y: t4 z" w/ Q6 Z( N
- / m4 N6 W; A* I0 h' S
- ;;;====================DDeditDim=====================
; V0 j3 G$ k5 L K0 A2 v* c - ;;;=====================Hai.DCL======================' p; K) M! a% O4 {$ `4 s2 t0 l9 i6 C: f
- ;;;====================DDeditDim=====================
+ @$ ?: p- _* C4 Z4 o5 J2 ]; g. f( E# v
! X+ m1 H; z1 X/ f- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
( y9 R% `! ^# v- V- B8 D - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
* p% Z( z3 U/ R9 \5 { - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)& R* M- T; G" C7 u; s: W" f, D6 `% f0 c
- (Setq Oldlis (Entget (Car Chon))) w, d2 T' @1 r: ^& f/ |
- Pt10 (Cdr (Assoc 10 Oldlis))
9 O9 s5 O: Y5 z9 i/ Y - Pt13 (Cdr (Assoc 13 Oldlis))) b4 w" ?+ K* ~) t
- Pt14 (Cdr (Assoc 14 Oldlis))
4 [' L9 B' N. l2 F - St (Cdr (Assoc 70 Oldlis))% e( C! L, a! r6 \
- Dimdefault (Cdr (Assoc 1 Oldlis))
- t9 I* |% d' w - )
& \6 v- g( ]) I- p! c% I& ` - (Cond
: W- f$ V& ~, L% N - ((Or (= 32 St)(= 0 St)(= 160 St))
0 p! h) N! `* \ - (Progn
+ ` m$ Q# S W( Z$ r* y" i5 N - (Setq Ang (Cdr (Assoc 50 Oldlis))
* [2 A) A. U6 G$ L - Pt (Polar Pt13 Ang 500)" S# Z/ v5 Y _# O0 y2 H
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
' n# P" \% x/ W) U+ h( d - Dis (Rtos (Distance Pt13 Hc))
$ j; m. Z9 K. H: s; b+ F/ j6 q - )% k( d w- {. s+ d9 n8 s4 E
- )
+ V+ Z( Q& D: \0 \+ g/ R* T - )
) N2 ?( g9 `3 b# w4 }% _ - ((Or (= 33 St)(= 1 St))
+ Y0 n% P8 \1 t3 ?, ` - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14))))) ?* K# n6 R% N; ], h4 a, t& O
- );;End Cond" ^+ i7 Q4 z3 Z* h. P; X0 R- g
- (If (= Dimdefault "") (Setq Dimdefault "<>"))) @1 M4 F4 f% h
- (Setq Dial (Load_Dialog "Hai.Dcl"))
7 U# z! \2 o/ Z- | D; T - (If (Not (New_Dialog "eddim" Dial)) (Exit)): T8 S2 H( C4 ~8 i S3 E2 b3 m
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
9 |: q7 r/ ~, P6 o P; M7 o - (Set_Tile "text" Dis))6 \1 G5 h5 K, ^9 `
- (Set_Tile "ha:edim" Dimdefault)9 D. a1 V! y- l$ s; Q
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
' e) K6 @3 L1 x9 l' K) J - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
9 L, ~' r F8 Y. k2 [' r - (Setq State (Start_Dialog))(Unload_Dialog Dial)2 q+ @9 i7 o' J4 B- ]0 m9 f; l
- (If (And Str (= 3 State))
4 h G/ g B/ D. A" r - (Progn4 ]# m4 }* l9 k$ ]
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
& B& i" C. g4 W) u) L - )
$ w4 p0 S" N& p1 ^1 x4 W - (Defun C:EH (/ Chon Name )3 U. f: O) d0 M! ?( n
- 0 H0 P- w! Z* [9 `3 `0 C0 z
- ;;;********************Du Lieu********************
& m0 x5 R( ` v
+ z6 S; w; X* B' N# j- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))9 [3 {: C# r1 K: S; S% U0 h- g
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
! o- @4 Z! h2 q - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
7 D+ f- M8 ], C1 A: A - (Progn: i' E$ h: F$ G
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))1 I- U% Q6 W4 I! ^$ e- }: O2 h/ p
- (Setq Chon (Ssget Hacat3))
/ I8 K* H& J$ m' _ - (Command "Break" Chon Hacat1 Hacat2)
# Y$ j# u. L; E8 A - ). T' l' c# c! ?& c7 {( M
- )
8 Y9 w& \0 `- y2 z& A/ q/ e - (Princ)/ ~: J \: {& E2 D. ?
- )) i3 H, A9 x! A: _4 t7 y8 I
- ;;: b" f4 t8 m! x7 H
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
! ~/ z4 O6 y+ B9 b) H - ;;. h$ G% P6 d/ k2 v
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))( C8 j' G% U9 J# n- ]8 B$ ~" _
- ;;
7 M! c% t! O% o: A - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))1 A |& ^ ^; S" |* P( B
- ;;- p9 d7 }) V7 ^
- (Defun Reinit ()(Setvar "Cmdecho" 1)) G q# p5 ]% Z( J1 X
- ;; F9 _# \# U3 ]* F; i/ }0 H6 o
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))# ? L+ e; X! A: s# ^# O
- ;; |2 W+ q3 _: V
- ;;Cho 2 Diem Tinh Ra Vec To Phap% @) L- `2 q1 p; _" \, u. L
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))! W: @2 E' @8 |- {1 i( N9 J
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
8 ^' b6 J# [7 P# q! y6 S4 ?) ~ - ;;Da Biet 2 Diem Thuoc Duong Thang% @# ]8 q3 Y0 U' q u* ?8 T
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
3 q3 _: s6 R) z W M& }+ @ - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)5 J* a) G Z+ T0 a- ?& }$ o
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))
; L. n! l5 q! Q$ W) B0 X$ \% j' o - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang- w8 i" e( u7 h: A+ f- Z( o) r/ D
- ;;Da Biet 2 Diem Thuoc Duong Thang
+ X# W) g! Y0 O9 j# k - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc). y% L ]5 o4 e n, Z1 c9 P; A G
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
& v: E+ o Y9 _: o9 E - Hc (Inters P1 P2 Dc1 Dc2 Nil))
& L$ u2 ?+ L; F) }& ` - (Distance Dc1 Hc)7 ~5 D9 a3 c7 ^( u$ ^! b, Q4 ~# _1 S2 }
- )0 n- w' _: o& I- R' _* W0 o
- (load "nhapcua.lsp")0 w, i$ f9 Y+ }8 ?% E
- (Defun *Error* (Msg)
7 |& p3 I9 u4 t: _1 [. a4 V - (Princ "\nerror: ")(Princ Msg)(Princ " ")( V- l* Z* }9 c" E7 k% E( K
- (Start_Dialog)(Unload_Dialog Dial)
2 Y& R0 X9 u/ g5 f+ l - (Setq *Error* Olderr)(Princ)
- `) E ? q/ r6 A6 C - )
% v' Q( s. T- A. h" P - (Setq Olderr *Error*)3 @/ r- i, Z" p) x
- (Setq Chon T)) E1 @1 |$ |0 h* j3 K+ v t' A2 |7 [
- (While Chon
0 |; y+ ^' }0 A8 e6 Q7 F1 X! A+ L6 K - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit...")): W( l9 @5 x% ]2 D' T$ Z
- (If Chon
/ X* C5 e1 m+ N u - (Progn
& l3 M' o4 k5 A7 F( t) e' E2 } - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
3 S" J0 X$ \& ?; T$ m - (Cond
s5 _0 j+ [: U9 l - ((= Name "INSERT")(Command "Ddatte" Chon))* h0 v2 X# C$ T& n7 n4 R5 L s' c
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
$ f. N( x" O. i! _0 c3 p - ((= Name "DIMENSION") (Hai_Edim Chon))4 r) j7 R% ]+ Y+ X
- ); A! g- p" Z3 R. u
- );End Cond
' l8 ]2 y& @% } - );End Progn/ N1 _" {$ | {, _! h' [
- );End While- G/ P( r2 g+ j4 X2 ~2 Z" z
- (Setq Olderr *Error*)(Princ)7 p7 n$ @ ?' \2 a1 o) a0 U( X
- );End Program, F& _- O/ F; x( Y
2 u- x6 D( { J8 a w# g \; [5 ]- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
3 ]* n: w% D+ y. c/ {9 I0 T4 g - ;====================================Nhapcua.LSP====================================
. F6 h5 i8 H; q8 U0 J - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
/ k0 `: f" `: u0 L: H# T0 D
# ?' f0 U" o* j& _# F! K9 @( ]5 g- ) u- r/ W) Y6 G0 M+ ?
- 9 O' l2 e. G @7 K* u- E
- ;*******************;*******************;*******************;*******************
1 k+ m' X/ J0 W7 j - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****% ?8 z& c0 r- g7 f2 d" o3 ?
- ;*******************;*******************;*******************;*******************5 s, j6 o+ `" W, t, ]9 K# q9 |5 V
# w4 A& O1 e, P, |7 c! P% D- ;VE HINH BINH HANH" Z# }1 T. f, G
* l) d; @( V+ J, R: k3 v- u m- (defun c:binhhanh (/ p1 p2 p3)
3 c1 y( I* j. Y1 S4 p - (setq p1 (getpoint "\n Nhap diem thu nhat:"))! Y, M b# F$ o8 }* Y' j
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))( J, b1 W/ o! K! [# u' i/ I% @4 \
- (setq om (getvar "osmode"))
% \( ~' y* v" K: i2 o/ x. w( a( d( X - (setvar "osmode" 0)7 W+ A. {! w# I! U& B: L
- (command "line" p1 p2 ""), h; p e" P4 n% |3 {5 T
- (setvar "osmode" om)
% K% {# N, A; ]& ?% T - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))3 _' K( O a X2 E8 p; h7 }" b
- (setq a (angle p2 p1))( Q% x6 P& d/ p5 p' q$ Y
- (setq d (distance p1 p2))
1 C# \! P+ e( ~4 C4 N8 @( e - (setq p4 (polar p3 a d))
" `5 Y$ c) K. V$ s& } - (command "OSNAP" "none")
6 H7 C% a& O) Q, a- G2 o - (command "erase" "l" "")
) \( a, r2 L# [ J; s! w - (command "pline" p1 p2 p3 p4 p1 "")
6 h- {, U% D) o- c7 n - (setvar "osmode" om)( ~: u2 C" _' B
- )6 x8 l; @& y! Z9 q& j
- " w; J7 F/ q" o: o! @1 x) v
- ;VE LUOI COT/ x. L, q5 x8 A6 z
2 \/ R Q8 o' M/ R2 N9 ^2 L- X k- (defun c:LuoiCot ()+ F: Z0 \: a. d! Z! d
- (setq om (getvar "osmode"))
7 I0 T; o* p7 s) k$ o/ D( G - (setvar "osmode" 0) l. N M& I# l# |; \4 K
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))5 }9 g+ l# l$ t7 w- L p. O% O
- (setq p0 (getpoint "\n Chon Basic Point:"))) j: _8 u3 g! Y# a! H
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
4 F4 H; h% _, z) n/ g1 q$ X - (setq dc (getreal "\n Nhap chieu doc cua cot : "))) _( j" Q; Y# C, t& G
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) ), F3 a' u2 r% p9 c% |$ {* R
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
& }5 c$ c5 S+ {0 ? - (command "rectang" p1 p2), A( D3 r8 a1 t: G# G1 O; i
- (command "hatch" "solid" "l" "")1 D- j1 K4 f9 f S* n( Q
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))0 o, D+ ~6 X6 g
- (setq nn (getint "\n So buoc cot phuong ngang : "))
}7 ~5 @7 w6 t/ @$ x+ T - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )/ j- v: y" I+ _+ D( H$ C4 A& r+ @4 d
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
! g, k- {- M9 t7 ^7 O/ Q% P - (command "select" "w" w1 w2 "")
( v, ~# U6 ^9 f( j$ I - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
* o1 v: e# J' K, G% K5 I - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
8 |1 a) S2 g ~* N6 s - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))2 d: A' D( k) H5 a. C8 T
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
) v% K& T! L' d0 f - (command "zoom" "w" w1 w2)
! H4 b; f! W4 C ^& \0 T - (command "select" "w" w1 w2 "") q; i# Q( q0 r/ L4 G0 ^- D6 g
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))& R; l4 X" ?5 ~; w( L/ W
- (setq nd (getint "\n So buoc cot phuong doc : "))
2 T. f; r* {% R, e - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )2 i. H) C1 J( a4 P7 {+ y
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
( n; ^- |" B# u0 }5 \ - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )9 r' r1 T z( a* E: K/ j( r$ y% x- B
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) 8 y* h" G1 M" t# _( [
- (command "zoom" "w" w1 w2)
7 @4 D8 r3 b! M; C; o - (setvar "osmode" om)
( F K& w5 i4 q t - )% o c2 f2 `- \! d* J. i' O( r
- , y! ]* T; C& ]" s$ o' N
- ;VE CUA DI/ \' z3 h0 f1 ]8 B; K
; S3 i5 v' o- [0 V) `! F u5 [- (defun c:cuadi ()$ _6 s+ `& b. d' a" _" c6 D
- (setq om (getvar "osmode")). r# w1 F4 j* `) g# X+ s9 n
- (setvar "osmode" 0)
4 r3 k3 S1 I* r j" {/ F0 O
7 e; h0 i& F8 n9 h, i2 X- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))( X- y3 x" I6 R$ t) L1 i8 f2 y) r; C
- (setq b (getreal "\n Nhap be rong cua : "))
. d" U) r. y V6 P4 o0 [ - (setvar "osmode" om)
* \" |/ J3 `2 F+ T& C; A; t% i - (while (< 0 1)
- S8 n3 `4 q6 t$ Q% k/ ^1 Y - (progn
5 A$ H9 x# _, w n& H' T1 c& W8 G - (setq p0 (getpoint "\n Chon Basic Point:")) N, o, k. L" H5 K
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:")); q, R) o) P- U- L/ _
- (command "osnap" "none")
% U7 b, m5 t3 S3 J - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))# N* M, s- g$ D
- (setq a1 (angle p0 p1))" @4 l+ z1 Y$ f. T
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))- A) h b! d% O+ u
- (setq a2 (angle p0 p2))2 ~. J& O8 p' _ \6 c i, Z8 t
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )' B7 Z& @# p& u; I3 j& b
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")3 E3 d4 [2 }- Z; ~6 L; g
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))$ Z+ M4 w& F# P
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) 4 r A3 [7 X' T' M, a
- (setvar "osmode" om)
) T( K$ V B6 v9 w - ))
A7 c ^" L! v0 [6 |% H - )7 _) X+ y" I- x' e& c
+ O- J5 P% `4 a4 Q- ;VE CUA SO
7 w' C* I6 c! B( B/ P" e q: j; B: x
. t; P& b- c- X1 O- (defun c:cuaso ()5 e3 x* P! C$ _: V A1 g/ k4 M, _
- (setq om (getvar "osmode"))
/ J( W: W( [* _5 B/ I - (setvar "osmode" 0)( M" \0 t. w7 R" d6 k& @( j# E
# K3 P+ k* b5 H9 j' e8 G! A, b$ z- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
* {* t1 S' s, ?5 f# i8 Q6 Y. H - (setvar "osmode" om)
" H6 j$ y% i8 D% w! J% N7 [ - (while (< 0 1)
7 g; E2 U1 U. u3 e6 F- L2 B - (progn
4 t7 P2 |& A. A( ? - (setq p0 (getpoint "\n Chon Basic Point:"))/ J: Q. c$ W4 u* {" W2 x" J5 ^* y
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
1 j' T" _& P @5 n - (command "osnap" "none")
; Y0 i" h% q2 A L; a* N/ u - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))4 O' f$ v1 [' y1 l
- (setq b (distance p0 p1))
0 P6 o% j$ X! s; k g; ^3 k - (if (< b (/ (* hstl 600) tile)) (setq du 50))
1 g* P# ?$ C2 n" Z - (if (> b (/ (* hstl 600) tile)) (setq du 150))
: N q1 B8 z8 D* a - (if (> b (/ (* hstl 1800) tile)) (setq du 200))
3 Q+ ]( g2 H4 M! Q. | - (setq a1 (angle p0 p1))
8 e. Y4 [4 J6 n$ D" I - (setq a2 (angle p0 p2))# S( Q, ~" v; e: P
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )) Z+ ~; A! h# R/ [
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) ). _8 ?3 M. d% f; E: W9 g- S8 o
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )$ f& U& m' t l8 Z6 W6 V T4 \& q
- (command "pline" p0 "w" "0" "0" p1 "")
6 o! V. q# r& ]& X. h3 B - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
1 {6 K3 o4 p+ J& V - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
0 }: P) W8 z" N, a' w; Z! F0 e - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
8 n% X* z! s+ m. R - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
$ O. v6 P0 p7 U: ~. N, B - (setvar "osmode" om)$ v* i& F# U1 q
- ))# c; Z; w+ J i& w, `
- )
+ B/ Q% i' Q* S# i% }, f* a1 M: X
* s! l% r5 L2 Y$ T R- ;;;=== General Utility Functions ===: d, w* I' b. p+ ^9 x( S9 V6 Z5 R! o. v
- r8 V# E0 E: ?* X" N+ V1 f- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
- f& d# |! `8 S. F - ; ADS function. Now it's a simple AutoLISP function that calls the # p7 n" `- [5 U* @
- ; built-in function (help). It's only purpose is R12 compatibility. 9 x& X( H. Y$ v6 k
- ; If you are calling it for anything else, you should almost certainly 8 T- r0 y3 g0 T( V$ i
- ; be calling (help) instead. # s! ~4 F3 g7 W" a$ N9 R( B8 D; o
- " V% M* n. ]; P/ r. e
- (defun acad_helpdlg (helpfile topic)4 p/ \( I8 q+ X5 x
- (help helpfile topic)! \1 u" P# u* a2 g& ]0 s
- )
* v$ p6 A3 n! u
) s) }' [8 t' D2 [1 O- ?1 d! B- 5 w9 G6 d4 M+ N" s
- (defun *merr* (msg)
# [% f$ C3 I! C - (setq *error* m:err m:err nil)( D1 O" l, ]+ }/ g
- (princ)6 n9 C& n% v, x
- ); ~/ e4 m- E, v
- ; y0 k$ J0 o/ P7 W: z2 y+ \; g& B( |
- (defun *merrmsg* (msg)
: G6 l; G; o5 r* _3 D) X - (princ msg)
4 d K+ D' Z: L0 R+ ` - (setq *error* m:err m:err nil)" L' K" V3 ?+ Q9 q1 x1 ^$ g4 H! w
- (princ)
$ F, q, s2 a" q. w - )7 ~) F6 F( x" f# o0 K% t& i
" i- L! r3 i% C% |- ;; Loads the indicated ARX app if it isn't already loaded
3 w: v5 ]; F3 i+ ~+ ^: A - ;; returns nil if no load was necessary, else returns the9 O# x& y. h/ R* I
- ;; app name if a load occurred.$ R6 M$ R& c. I
- (defun verify_arxapp_loaded (app)
, c1 _# U( ^/ e& a5 R7 B1 [4 M; f - (if (not (loadedp app (arx)))# i2 c" v7 U; G6 E. c
- (arxload app f) W1 e7 g$ \4 j7 \+ R! H" M
- )
$ r$ e5 R6 @7 D. Q6 Y( Y& W - )
/ R9 J8 N1 b/ C) I) I. \3 J5 j - 1 R- s( S! c. r+ x5 I2 T- K( u3 t
- ;; determines if a given application is loaded... l7 C2 V4 [1 T6 i
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
% K0 i- F4 \3 j. p* `8 B - ;;5 I$ I- t! M4 x3 m; X! x0 Q
- ;; app is the filename of the application to check (extension is required)
: q _( h% f+ R' w8 p1 n7 h - ;; appset is a list of applications, (such as (arx) or (ads)
3 E+ A' a' j( h - ;; # L% i. g7 U& z
- ;; returns T or nil, depending on whether app is present in the appset
& M, v5 y. ?1 ?* P0 T2 } - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"! ^) ~. m) }4 E" h
- ;; Also, if appset contains members that contain paths, app will right-match) }, m7 |: r6 ~, k- ~% J' u
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
& h# S% Y8 Y6 I( \- k& @ |2 |% H - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
8 x5 D8 w9 x' ~0 u7 c - (defun loadedp (app appset)7 d3 @8 @4 i. @. B/ w
- (cond (appset (or , h- r) z- O2 U# C9 Q- K9 u2 t/ p3 S
- ;; exactly equal? (ignoring case)& @ o3 I7 U% p4 ~3 T' g
- (= (strcase (car appset))' J; J* l& ], T4 w& ?! ?' m' ]
- (strcase app))- c& {0 h$ y: k% T& T
- ;; right-matching? (ignoring case, but assuming that
* d% g: i3 s' \$ g; G - ;; it's a complete filename (with a backslash before it)
* C [8 b( Q1 P, {2 Y/ Q - (and
, p" ]# r, s) K2 n - (> (strlen (car appset)) (strlen app))
7 M0 ?. M9 U1 N7 n9 t/ Z. l( w - (= (strcase (substr (car appset)
: X% C0 L. i7 Y" ~; x4 j9 ? - (- (strlen (car appset)) / w# n2 h# I4 _( A; W4 B, S
- (strlen app)
( L3 G% {+ a* J" A: { - ) E( k% E! g: p# c$ ^
- )" \# @ X' L9 B) H% G& _
- ) ( N9 q4 d9 V9 h' p7 C6 I b2 Y$ d# l
- (strcase (strcat "\\" app)). x: s' P. u9 y$ k
- )
, f& \# J ?$ a( X - )- s7 m$ J6 O z/ T3 d2 C
- ;; no match for this entry in appset, try next one....
$ @! i1 R! {' h: l - (loadedp app (cdr appset)) )))
0 o4 \( A4 [! T8 J - )5 A% n! g/ \8 h9 y# o
- 6 H7 S- \2 F8 x8 k7 S% j( N0 d
4 i7 D& b% F) Y- ;;; ===== Single-line MText editor =====
3 e& Z) Y) w3 K3 p* ] - (defun LispEd (contents / fname dcl state)- b% Q1 S- ~# A6 A) W: T
- (if (not (setq fname (getvar "program")))
% {9 V% ~$ W: S+ t- K - (setq fname "acad")
7 I/ m2 |. p8 u" U4 M - )6 P& m' {* m* p# {
- (strcat fname ".dcl")
# `9 e) U4 \" k& J - (setq dcl (load_dialog fname))8 _, F+ E2 r( y B1 d
- (if (not (new_dialog "LispEd" dcl)) (exit))5 j0 F9 ^5 T/ D" K' A
- (set_tile "contents" contents)
# }( l8 Y8 w3 q1 T5 J% T - (mode_tile "contents" 2)
9 _2 v4 ?8 P7 J* H% T D - (action_tile "contents" "(setq contents $value)")! ~- m6 O$ N& ^3 y& r' V, A
- (action_tile "accept" "(done_dialog 1)")
: N+ H* A2 M) Z+ ]0 a' v& N" A0 K - (action_tile "mtexted" "(done_dialog 2)" )
, a& p( G/ O+ {# i$ z2 n* y, z% p - (setq state (start_dialog))
& p9 v. ]; O/ T8 X' ^ - (unload_dialog dcl)
! h% }5 t1 k# Z- a1 l - (cond$ |7 I' {/ \1 H7 d' R% C0 `
- ((= state 1) contents)" y0 H+ D6 B6 c* n9 N% e) p9 K F
- ((= state 2) -1)
: R5 F. C* `4 E6 Q. L - (t 0)
4 j+ Z) T8 d/ x0 [- @' u+ C - )
( Z* q/ M8 y0 E - )8 X- C* D- Y) D: ~8 ^6 v+ N, C4 ?
2 _7 e* R P5 D7 ~- ;;; ===== Discontinued commands =====; I1 T ^! E* o# T( ~, x1 X, h& u e P
- (defun c:ddselect(/ cmdecho-save)8 {7 q' C$ q1 | }% t- g
- (setq cmdecho-save (getvar "CMDECHO"))
* F, K t' T7 F; X' P9 j/ k, [3 r - (setvar "CMDECHO" 0)5 y8 @8 }7 f& z i! _; t/ N
- (command "._+options" 7)
% F' h( }' m: j) u5 D6 k+ w - (setvar "CMDECHO" cmdecho-save)/ k$ E5 |0 ^$ F+ i% `3 Z, Z7 R
- (princ)7 t) F, e9 J: f
- )8 L1 y& k$ _2 \7 ?2 Z- _$ D
- * B- |; i8 b1 U. [
- (defun c:ddgrips(/ cmdecho-save)
" ?: q6 q0 u) G1 V3 D - (setq cmdecho-save (getvar "CMDECHO"))* Z4 a. J" A* B. E
- (setvar "CMDECHO" 0)! j9 R) J; t. G5 J( u- y9 z2 \
- (command "._+options" 7)6 o8 u& q5 l- l9 \
- (setvar "CMDECHO" cmdecho-save)5 ?( A+ I4 V" y( s0 L1 N1 ^6 D2 ]
- (princ)
3 G" a+ F* V U - )/ }# g& F7 Z8 S5 R: r
0 X) {9 p5 w" o* b! d9 t" I- (defun c:gifin (), O- Q7 Q- y7 l
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")+ r, W+ L- J2 G3 a! v
- (princ)
}. l( l) E5 \$ ]/ d& v - )( R$ g& `5 g2 I ~+ ~
d0 X6 ^6 \$ i( [! {6 i- (defun c:pcxin ()
+ Q" K7 }' G/ _/ S: j* d - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
- H" L- G+ _) i6 x9 y' f5 n+ h% N* S4 S* m - (princ)
( M1 P! O' D" ?- N7 c - )% ]9 t8 s0 T9 U) N4 M+ j7 D2 Q
3 [6 X y- o5 [% [- (defun c:tiffin ()
. A1 k- Q1 z- V' f8 J$ Y; S( p, i - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
% q M8 ~; r" O( K- s1 ~ - (princ)
! |' K& q- Q7 G, K, ^+ ?9 X - )
% t; h- R# d$ B1 h, J0 a
- g0 L6 N; |- b: B# ~7 b( Z- (defun c:ddemodes()
8 u0 f1 |* v7 i- i$ ~) E4 t: u - (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.") c' D" \5 W: |, Q$ D. `" p
- (princ)+ i$ @0 v' F Z& Y1 l6 B
- )3 U) z- l8 m& m# U" F2 r a
- " D' Q: W1 Z. l8 O; {5 O
- (defun c:ddrmodes(/ cmdecho-save)7 e- [. w0 J; r
- (setq cmdecho-save (getvar "CMDECHO"))% T% x( b+ G4 O7 k1 G
- (setvar "CMDECHO" 0)$ _8 i) {3 G/ z: k9 a% p
- (command "._+dsettings" 0): T& H9 S9 V' g- p1 b0 |% k
- (setvar "CMDECHO" cmdecho-save)/ b6 A- H7 l0 _0 |$ s, j
- (princ)* _; X d/ C7 v3 D' a. k! A. y
- )
1 s- u, u) k0 q0 \
+ u$ R) |, g; E' E" N# ]- ;; HPCONFIG1 \& h" `6 G9 }- y. ^: a
- (defun c:hpconfig (/ hlppath)) i( U3 Z `' J$ A! r. B" {
- (if (not (setq hlppath (findfile "acad.hlp")))' v% N# b3 j: s# e; e1 t; F" T( J) T
- (setq hlppath ""))
% p$ {6 w" c! e2 W4 G' d - (help hlppath "hpconfig")
% r) A, |& D) ^% q5 c7 X& U - (princ)1 Y/ w& ~- ~) ^1 q2 F! q S
- )
8 ^, Q+ T E: c* B" ?) C* P
- l2 Z/ `6 z# q9 e! _) k8 S- C/ e- ;; OCECONFIG
3 H) X! c7 G$ I5 O- j. {0 D3 W - (defun c:oceconfig (/ hlppath), ]: _3 F0 @8 Y; S3 E0 t' h5 z
- (if (not (setq hlppath (findfile "acad.hlp")))
( l' R0 ?. b# H! L3 e5 _ - (setq hlppath ""))0 V$ Y0 x0 c5 k# K- W% v# W
- (help hlppath "oceconfig"): w; V K* i& U4 |% V6 O
- (princ), T, w4 p( B2 B( M+ r1 d7 G5 l& v
- )
1 O3 R: }' J- o) } `+ w0 J
) [" [7 u# K& \' v8 b" n* r9 B! p- ;; CCONFIG# z" _, F: M/ \+ u! E8 z& I
- (defun c:cconfig (/ hlppath) r2 K# k" M! h$ `
- (if (not (setq hlppath (findfile "acad.hlp")))% t& h# Z* @6 |/ z J
- (setq hlppath ""))
+ C) D- n9 q& g' O& u! ?* Q' }% l$ q - (help hlppath "cconfig")
! p6 d# I; O2 A, u - (princ)
& I$ ]/ d5 q; M$ l0 i - )
) o( R3 t7 {$ b
" t; a: |2 v9 R* K7 P. d- ;;; ===== AutoLoad =====
" }9 A. y9 m9 W9 `3 K
* l0 b. a" E" R& G/ x- ;;; Check list of loaded <apptype> applications ("ads" or "arx")! L- f9 N) w1 X( M( K) R z; [
- ;;; for the name of a certain appplication <appname>.+ v8 |5 }% b1 }' |
- ;;; Returns T if <appname> is loaded.! }1 H: O1 N1 w. q2 Y
( ?# j& P) P7 R1 F" v4 r- (defun ai_AppLoaded (appname apptype)
0 X" m8 }; z( f - (apply 'or
5 a; s9 |6 A6 z2 P C; Y7 [; x8 B& u3 i - (mapcar ) h5 B; s$ z$ W
- '(lambda (j)
- F$ O% j4 Y% M) H* f6 n! I H - (wcmatch
+ x: ?) q, b5 c - (strcase j T)
3 L& N/ g! Z: i$ W* E% m - (strcase (strcat "*" appname "*") T)% p' R- n2 O w' ^1 r1 o
- ) & Y: D; V, j& d
- )
8 Y7 V* U7 P2 F* I3 u! W - (eval (list (read apptype)))
' J5 L/ w8 H }7 E - )
; m e# r' z* C7 S - )
8 o8 w- P/ \9 r. K2 M; ^ - )
3 }, o0 }! Q$ R. b - - E* D5 O* e/ w
- ;; " @) e. o) O* o0 G) I
- ;; Native Rx commands cannot be called with the "C:" syntax. They must / @4 v. ]' W! i; T; m8 r, l
- ;; be called via (command). Therefore they require their own autoload * F7 ]5 r5 m# v* `
- ;; command.
' L( n3 g6 i( a, S; Y3 E! c - 2 U7 _! H- `: \$ b- i9 p' A
- (defun autonativeload (app cmdliste / qapp)+ J6 F' G, d2 P% I' G; S/ L- c
- (setq qapp (strcat "\"" app "\""))
) O& h! } Z: W: q, x' \0 e9 L8 R - (setq initstring "\nInitializing...")8 ?- e; l& O$ g1 M! c6 Q2 t
- (mapcar
* m9 c# k7 S% l0 ~7 [8 ]$ o - '(lambda (cmd / nom_cmd native_cmd)7 h2 M ^- m- U2 O% e" G3 A
- (progn( I3 S# v2 W& Q; N
- (setq nom_cmd (strcat "C:" cmd))& s9 U' v; L: m% O- T& O' x
- (setq native_cmd (strcat "\"_" cmd "\""))6 {1 S Y+ b- j5 E6 a3 i/ @
- (if (not (eval (read nom_cmd)))
/ K1 K% _9 d" Y: T( X9 D# Q - (eval! X" u* f$ u: }
- (read (strcat
. z6 _2 m7 B' m$ F' M, H! J( R - "(defun " nom_cmd "()": z) h- H8 J! V* _% a4 |) H, `
- "(setq m:err *error* *error* *merrmsg*)"
B9 \3 G7 M; [, q - "(if (ai_ffile " qapp ")"% I) M9 W0 C q: C( }
- "(progn (princ initstring)"
; S( _" J+ F) W7 n+ R Y" D - "(_autoarxload " qapp ") (command " native_cmd "))"6 Q) {3 \) L5 l) m, m7 o
- "(ai_nofile " qapp "))"" B) Y7 R0 b F" O! U
- "(setq *error* m:err m:err nil))"! g! G. D6 \/ z$ |2 f
- ))))))# N% ~9 j6 \5 l6 H( \
- cmdliste)% E! `$ n, k& p; |+ U/ g
- nil
/ [$ o! ^( K+ y9 }" n1 W - )
: Y. K8 _ O/ s5 m. @- w
+ c7 g9 |- u2 s O* m7 M+ ^- (defun _autoqload (quoi app cmdliste / qapp symnam)
7 |0 B8 h9 e5 r/ Y# J2 ~, x - (setq qapp (strcat "\"" app "\""))
3 l4 c9 W& y! P- ?) T - (setq initstring "\nInitializing...")6 X# Q: S0 c: F; j- e$ p) [
- (mapcar# N& U6 @) h2 H' }. w
- '(lambda (cmd / nom_cmd)' d# d5 j8 l* B$ t9 X5 p9 s7 B
- (progn3 Q8 P! j8 L8 g1 u! g" K" V& Z
- (setq nom_cmd (strcat "C:" cmd))
* W! B: d7 r' d - (if (not (eval (read nom_cmd)))
1 ?( M) x4 q2 C, f3 R; | - (eval
) m& w7 b6 s. y% N, \! k - (read (strcat
! Z) M) K) q. w) u - "(defun " nom_cmd "( / rtn)"5 L9 F: n, m, J% }, u7 L
- "(setq m:err *error* *error* *merrmsg*)"$ N7 R7 G7 F1 l5 [5 p1 h
- "(if (ai_ffile " qapp ")". w% o" S5 W) M7 ^
- "(progn (princ initstring)" j( [' y$ o( R) W9 ^
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
/ |2 W8 a# A/ Z: x' M - "(ai_nofile " qapp "))": M6 B p6 O4 b7 Y: p2 c5 Z
- "(setq *error* m:err m:err nil)"
4 {- g8 V6 ~5 A. \$ T& w - "rtn)"3 n1 _, o3 j9 e* \7 I* O$ c0 T6 I
- ))))))
1 d, J' t' Z8 K - cmdliste)
: h4 W" i$ P+ w! H7 i - nil
8 C6 C0 ^# Q/ K - ) N+ C2 b9 Z! I2 P
. S7 X7 \% M {- D( F4 n9 Z- (defun autoload (app cmdliste)
/ @' s0 p" e B5 }; b - (_autoqload "" app cmdliste)2 O1 J: ?" ]- Y8 T0 b; B$ R3 H
- )) ~/ N; d, b$ v4 j; }
: u5 Q( J/ P# j& \8 d B- (defun autoarxload (app cmdliste)
# S/ @: F/ s5 O# Q [& g1 X) `. O - (_autoqload "arx" app cmdliste)
- w5 F t$ f! k* _, c8 g X - )
( a! B7 B5 L0 C: j/ y
& ]! p( ?# J2 O7 h- (defun autoarxacedload (app cmdliste / qapp symnam)' Z7 j& r$ }. r9 _& H' M9 i
- (setq qapp (strcat "\"" app "\""))- p5 D6 ~: {' O- i
- (setq initstring "\nInitializing...")
% [& }( i4 J- X% D B! Y: k/ \ - (mapcar
: C }+ M7 R! f3 L, R - '(lambda (cmd / nom_cmd)- }8 t% |) B4 o9 `: N5 v
- (progn" E* h" i+ W' P3 S$ X
- (setq nom_cmd (strcat "C:" cmd))( P6 n3 t5 f# O5 M/ k @( X
- (if (not (eval (read nom_cmd)))
1 r4 J( L6 a/ D6 w0 D5 r3 I - (eval+ d( A: k9 Y$ d" y6 H! I
- (read (strcat
2 k; z8 Z, z8 A# E( E/ T, P - "(defun " nom_cmd "( / oldcmdecho)". T, g+ w/ ?0 j$ e; f" U. T8 Q2 n
- "(setq m:err *error* *error* *merrmsg*)"- w& V/ _0 r1 f9 B1 A8 D8 L
- "(if (ai_ffile " qapp ")"
8 C( `9 [5 W, `* H% `; A - "(progn (princ initstring)", [8 n9 x9 u1 f) z2 [' M/ D8 Z C$ a
- "(_autoarxload " qapp ")"
$ ^. B$ u) y. W# Z& x - "(setq oldcmdecho (getvar \"CMDECHO\"))"
' L/ s& q- g( B* y+ C - "(setvar \"CMDECHO\" 0)"* Z+ a9 E( F- I3 N6 V* k0 t
- "(command " "\"_" cmd "\"" ")"
7 X% ]5 V, D: U% z - "(setvar \"CMDECHO\" oldcmdecho))"& i4 {; H& ~1 ~; B
- "(ai_nofile " qapp "))"- O8 e8 O' A: e4 L4 {5 ^0 Q
- "(setq *error* m:err m:err nil)"
& s& c2 |8 R h1 k8 u4 q - "(princ))"
$ s/ A6 H/ |+ R: G4 R i - ))))))
, U: m- U4 W, V4 |2 ?0 Z - cmdliste)/ z( R k9 ?; E# P& j
- nil
. k$ [2 V+ R) e! \7 q - )
3 m- q* _, q' a6 ]9 @
: \! ?0 ~/ K; }- (defun _autoload (app)
) o; i. q; d i0 z4 Y: U9 X* z - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
3 H- N# a* S' U - (load app)
+ Q; r* P A, M" C3 c3 X. | - )
/ Z" t$ V/ r, `
; L/ e3 N& L9 F) v5 a0 @( E- (defun _autoarxload (app)3 ?$ v' \+ E! [# q
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri). ?, l5 D. O$ M+ d$ O+ r$ M
- (arxload app)% d6 s& h' k0 q( g
- )
; A& T ~/ m8 ?. P. n* n9 J - 5 n1 T; U9 H5 q1 w9 O( R8 M
- (defun ai_ffile (app)
9 y1 o* G$ f7 d! P - (or (findfile (strcat app ".lsp"))' F1 W i, \- x/ A: D
- (findfile (strcat app ".exp"))
& l" b& P `3 o - (findfile (strcat app ".exe"))5 ^: R) ]5 m I/ m# C+ E! H. m# f
- (findfile (strcat app ".arx"))
8 {' Z2 D7 M; P8 ]- s1 D - (findfile app)
) H2 I+ d# z1 i2 K1 w& n# _ - )
0 h, N# t. g% J4 ^% S - )3 s6 B5 K9 [. c# c5 L
) ?' m' x% m f7 ?7 Z0 c- (defun ai_nofile (filename)
: F# O, X; m/ V8 J6 j - (princ
2 n: K* [3 R6 q5 a) ? - (strcat "\nThe file "/ ~3 [8 ~8 O) q: F* K: D0 _0 o: b
- filename* [5 A6 O1 f# c; u
- "(.lsp/.exe/.arx) was not found in your search path folders."
, |/ Q4 Z5 i! R+ `. h# ?' } - )* p5 q. m& s0 v8 q# X2 q2 d
- )8 Y$ B$ Q, | ~3 c$ G
- (princ "\nCheck the installation of the support files and try again.")0 O7 A( a) ^" t& z
- (princ); G: I8 n( d$ e) q. e2 v
- )
/ l1 U0 ^$ O. R1 Y- n( `% z" w - * J6 @$ W9 U3 L! d, M) B' G$ O0 c
- * g0 H p' H% a5 ]
- ;;;===== AutoLoad LISP Applications =====6 I- y* ]$ d# c, h( i1 b
- ; Set help for those apps with a command line interface' ]$ {+ s/ Z6 B$ u5 a
$ {6 [. w* R9 [, L. o- (autoload "edge" '("edge"))
6 C5 H) f; V0 D% G7 l8 H5 | - (setfunhelp "C:edge" "" "edge")
- l; m; G- I2 E
# e- F$ b! a3 Z! Z c+ E/ F6 m- (autoload "filter" '("filter " "filter"))
. u L7 h4 D8 ~
8 r! z6 Y. z0 K, p2 d6 w0 T5 Q4 j- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
# o* r9 K% Z# ?; A& {* A3 I - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
( l, o# d5 I( f8 N - )
* h& u- q2 A3 B, n, L$ m* G - (setfunhelp "C:3d" "" "3d")
2 f$ K3 i& _% v' d4 W1 W - (setfunhelp "C:ai_box" "" "3d_box")+ }4 `: O) }' i
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
! a* R' B, G+ x - (setfunhelp "C:ai__wedge" "" "3d_wedge") Q# b; ^! M7 |7 H2 M1 F+ C2 `
- (setfunhelp "C:ai_dome" "" "3d_dome")
& {5 p6 w8 v' U- a) e - (setfunhelp "C:ai_mesh" "" "3d_mesh")
) h# Q( L& E& a- o$ p& K8 d2 E - (setfunhelp "C:ai_sphere" "" "3d_sphere")% w- ^" A8 Z/ ?5 i7 l. |
- (setfunhelp "C:ai_cone" "" "3d_cone")' g7 f9 m3 l5 a6 e x Z. J
- (setfunhelp "C:ai_torus" "" "3d_torus")
) h/ J- n/ ~" \( C: O8 Y9 { - (setfunhelp "C:ai_dish" "" "3d_dish")
. O7 \4 F$ C/ v+ ^+ F1 w - * o! h5 B3 a. V" s
- (autoload "3darray" '("3darray"))* @, w# F# A! R, o! r3 q R
- (setfunhelp "C:3darray" "" "3darray")6 |7 r6 V- w$ I M7 H
! T# F% e% g. N* e- (autoload "ddvpoint" '("ddvpoint")): O7 \ ]# P! z' C; w/ ^5 s
: Z8 z* Z( f* m2 s9 w+ a8 j. ?- (autoload "mvsetup" '("mvsetup"))
! X: n, R8 M6 |. l- H7 m1 a: Y - (setfunhelp "C:mvsetup" "" "mvsetup")
& H8 d/ F9 ^- z' m T8 H - $ J" o9 m# j7 S
- (autoload "ddptype" '("ddptype")); F; ?, }6 E9 b' d
- . y) k. ~6 e% A; [) Q" Z" `
- (autoload "attredef" '("attredef"))/ |2 ]6 d- d& N5 Y
- (setfunhelp "C:attredef" "" "attredef")
; Q! U* R6 {) f8 Z% F) ^+ U
. |& a0 ^3 [5 b ? R- (autoload "xplode" '("xp" "xplode"))! s7 r% l# O8 x2 V
- (setfunhelp "C:xplode" "" "xplode")
4 O( @/ ~- K' h: f0 W0 ]. @
R$ r1 `8 Z- Y5 N( n8 T- (autoload "tutorial" '("tutdemo" "tutclear". I" @5 t" k+ u, f8 n! g4 L
- "tutdemo"
$ S8 `) ~, o7 G. e - "tutclear"))9 v$ B( A) B, L$ G+ T4 W" I
- / z8 A' x: O: c8 ^( X: z
- ;;;===== AutoArxLoad Arx Applications =====4 i6 O' P0 t8 E3 u
+ v4 u! n8 N2 ]/ O5 I; T( W: b0 V3 {- (autoarxload "geomcal" '("cal" "cal"))9 R1 `, X! L( Q
: I; B1 S( ~# p6 K% A- o' i- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
( e/ w, Y" ]: E - "mirror3d" "rotate3d"
+ J. Z; E& A- d) f" s# R - "align"))- x; \9 K6 _) Z; z' q6 R( L" L& U
( x+ U: q' m7 `% U4 D0 @: Y- 5 _0 o8 a3 e, `3 x4 y; i) ]$ f
- ;;; ===== Double byte character handling functions =====
. D2 x# h7 J1 X: k# n* c
9 G) Z n/ |+ M2 V* ^$ d0 N. g- (defun is_lead_byte(code)
; _. Z, k6 H& |$ v3 a l% U - (setq asia_cd (getvar "dwgcodepage"))
8 g6 Z9 z1 Q( s* g& B - (cond, K3 h ~) N! J; f( V
- ( (or (= asia_cd "dos932")
( z6 |& X9 e' M: K% D0 M- t - (= asia_cd "ANSI_932")7 B& j9 ^! D' O; ?/ r* l6 G
- )
) E# }: ]; Q/ z$ e. o - (or (and (<= 129 code) (<= code 159))/ G9 {& ^0 G; ^0 D" k' b9 N$ c0 e
- (and (<= 224 code) (<= code 252))
; Z+ w2 \" _& p3 T6 d _, V - )
6 N7 p9 Q) j0 O" Q/ Y0 W+ i - )( ?& r* H2 }- _2 {! a' x
- ( (or (= asia_cd "big5")
$ v! h/ _% I6 d3 W- q3 s - (= asia_cd "ANSI_950")
7 ]/ z% x3 y* J! _; O( ]0 l' X7 c - )
6 B& G' p( f. \1 l. g - (and (<= 129 code) (<= code 254))
4 j% U, }' d9 W3 ~) V* u - )
' p1 ]% E# [# Z& E - ( (or (= asia_cd "gb2312")
, J: b' [* t y - (= asia_cd "ANSI_936")
$ W5 h6 a/ S! }2 ^7 O+ P+ S% O - )# ]2 R9 @: x+ ?% A2 ^
- (and (<= 161 code) (<= code 254))
. o/ f8 W1 R, J3 R1 p( H' v - )1 y* f5 f# l8 G8 }9 H
- ( (or (= asia_cd "johab") X$ ]( y. W, h7 j% G
- (= asia_cd "ANSI_1361")5 M7 A, E; X' A, Y+ E5 k
- )" m. M8 u! u' p2 j1 Q
- (and (<= 132 code) (<= code 211))
4 u2 }7 \+ A, ~, Z5 D8 f# s - )
% N- n6 t! b; Q, x2 {& } - ( (or (= asia_cd "ksc5601")
, P S8 `7 ~% \$ T( B - (= asia_cd "ANSI_949"), s0 k2 f: c( @0 A, u
- ). A- V' g8 s1 u3 k) A- q
- (and (<= 129 code) (<= code 254))
+ E: ]. s8 I7 o, d _0 f0 f - )
6 {! U% ^: m) a& c9 H) T" l9 u' z - )
/ t- u& j# l0 m. w- i- b - )9 V: n$ b2 ? W4 F
" X1 ^7 I$ O) u8 i- ;;; ====================================================
, p* Z$ f6 j4 t3 k( e9 C" h9 A5 t
, R! c& Q/ x: S( e) F- 1 k; h5 }9 i: S5 E) R) T0 L4 i) R
- ;;;
" v* x) I: Y: x4 p. d4 Z: c+ e - ;;; FITSTR2LEN6 j5 d: {4 u, x# o9 S8 v
- ;;;6 G. I& ~1 H, n
- ;;; Truncates the given string to the given length.
; W1 `0 \" J1 ?# V8 \ - ;;; This function should be used to fit symbol table names, that! w" S" m; q# ^7 Z
- ;;; may turn into \U+ sequences into a given size to be displayed+ z1 V4 _& e- f5 ^4 J
- ;;; inside a dialog box.! p; f0 E) `! e0 H# D/ D
- ;;;
$ ^% a) `# u7 p9 d0 h - ;;; Ex: the following string:
) g( \. Y, F$ g. K- ~ - ;;;
8 E. a3 G2 \/ i6 P$ o7 H - ;;; "This is a long string that will not fit into a 32 character static text box."% d2 a; h/ e( M0 d
- ;;;, \5 ]% M' a8 d3 w) r4 u, Z
- ;;; would display as a 32 character long string as follows:( ]/ X4 c" N) ]: I3 a' R
- ;;;
$ A* J4 K, M* j1 v: O. u3 ~- ~ - ;;; "This is a long...tatic text box."
; g5 J* X% H1 Q- b - ;;;
+ P# b; r3 n$ Z4 H# {$ p* h
% y* ~ Z* O& v$ H, X+ a- (defun fitstr2len (str1 maxlen)
6 U+ \! x) t% m0 R7 f+ u. N
; s- `: }) g2 M+ ]' P; Z- ;;; initialize internals# z9 \: h3 p2 {
- (setq tmpstr str1)6 w w4 C2 s, i0 `% i
- (setq len (strlen tmpstr))! H; W$ |# C( D O8 H- ~5 Z' R3 w
- @" N- [; d" `+ m+ x6 R* p2 h- (if (> len maxlen) ! s6 r; u U6 {( s6 k: g
- (progn; t6 [- v) {" w; n7 q4 l
- (setq maxlen2 (/ maxlen 2)): F7 ?: w8 X, }" a* ^9 K
- (if (> maxlen (* maxlen2 2))
/ ~ f8 u5 P+ a& y' J6 K4 @$ C - (setq maxlen2 (- maxlen2 1)). N& X6 Z! A4 C' H2 @
- )
1 C7 U. V M0 I3 K3 ` - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
4 n8 X4 Y z, \1 e8 P3 S - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
- t6 y+ W4 J5 r - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))3 G& l% _4 L* d1 x
- )
* Z) _$ \9 l4 f' ` - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
! l3 S( k4 C1 Q - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
) h! n& r G+ b# O - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
A# d, w0 O$ K& o* w: Y7 ?' y. ] - )3 ^2 T. y! v4 o+ y
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
# `2 N0 G8 l! H# a( f5 W - ) ;;; progn# I+ @" @6 R1 G. S2 D! I/ L
- (setq str2 (strcat tmpstr))/ r: j& h% n% ?' T* F" O
- ) ;;; if
, X* Y1 B+ G+ x7 n4 n - ) ;;; defun' D5 ^& O( z( x! \8 p
- * |7 K1 b( h7 h: z- C7 O4 u! @
- ' K( k2 R) _. J5 K3 N' L& T
- ;;;# u4 T$ {2 Y. P0 @/ b
- ;;; If the first object in a selection set has an attached URL4 n" u+ U6 |+ o6 c
- ;;; Then launch browser and point to the URL.
3 x0 L& ~2 p$ G$ ~8 _, O - ;;; Called by the Grips Cursor Menu$ Z- ]! G6 {* I7 h- l0 N2 P- V5 B
- ;;;
5 M! Y! O0 W2 g1 Z( }; E$ T+ E
' |! {# b% [# e' W8 \; S9 }3 t2 p- (defun C:gotourl ( / ssurl url i)* ~/ W4 _2 l* H; }% A
- (setq m:err *error* *error* *merrmsg* i 0)
3 z- Q3 D1 Q P1 [4 j& s; r - 1 X! `2 b7 G; { f
- ; if some objects are not already pickfirst selected, 4 ~# U& O6 K8 w5 o* Y5 ?. T
- ; then allow objects to be selected2 G3 g* S# O5 b
- 0 I% @. m# h- s
- (if (not (setq ssurl (ssget "_I")))$ E+ x" X4 Y8 j% q7 B9 i
- (setq ssurl (ssget))) J% T s( E8 L
- )
% |& z: d' D4 F% B/ o - 7 _3 M# e$ E! e0 u1 Q4 s8 Z, S
- ; if geturl LISP command not found then load arx application
( y/ ~, Q+ X$ T0 y( `/ b
1 f' ?. _$ z" [- (if (/= (type geturl) 'EXRXSUBR)$ t" _9 ?( d* C3 `" {! n- B
- (arxload "dwfout")6 d) ^4 j; V/ `5 M- x5 C2 d3 w3 c
- )5 i9 H% Y7 |' V* f
-
$ W) _* z5 n8 z3 C$ ~ - ; Search list for first object with an URL
2 C, b; h/ H4 q4 O) L; h# _ - (while (and (= url nil) (< i (sslength ssurl))). H, @. h ^1 }" T b) e0 M- z
- (setq url (geturl (ssname ssurl i))
( t( v, G) T z - i (1+ i))
) W* r! Z$ m# v$ P+ @; k - )
" p# y1 ^* q+ z
1 K0 ?, o/ q4 a- ; If an URL has be found, open browser and point to URL* U/ p* b- u/ k) p) g
- (if (= url nil)) Y% V/ {, G& C5 ]
- (alert "No Universal Resource Locator associated with the object.")
# h; m3 m8 t3 H/ y - (command "_.browser" url)) C* l! y0 d. u4 h
- )% P" @( u* k# q7 x
- Z# K5 h% ]6 H7 u/ P9 Y- h- (setq *error* m:err m:err nil)
0 x2 k5 i. Q& Z$ E. h - (princ)
& v, r1 }# W3 {5 ` - 5 z: X5 `- B% [6 @; ^9 s
- )0 W5 k( T/ h1 j
- & f! ~2 B; @5 s+ w0 _
- ;; Used by the import dialog to silently load a 3ds file
" B7 k2 J# Q/ s- L- o) y - (defun import3ds (filename / filedia_old render)9 O% N) G7 T( I$ D
- ;; Load Render if not loaded2 @, L" ^- b- H2 k" V7 H+ Y E9 Q
- (setq render (findfile "acRender.arx"))0 V0 R, M2 B: y8 O
- (if render3 Q8 j5 q0 C% `1 i- W* W
- (verify_arxapp_loaded render)
) M/ \+ S( X& W/ l3 m - (quit)9 K+ M/ D3 A. d3 D# f
- )
) K2 b. v- b* H' S$ q! h/ ~
8 `: | j3 |( N9 a- ;; Save current filedia & cmdecho setting.
% T. k3 A- B8 Q, V - (setq filedia-save (getvar "FILEDIA"))
2 \) I- q5 N1 F9 J" U( x - (setq cmdecho-save (getvar "CMDECHO"))0 [/ Z( f% X. l
- (setvar "FILEDIA" 0)
n& N6 l1 z3 D }) C$ h2 j - (setvar "CMDECHO" 0), g6 ^1 a: ^: v4 B" r: e: |
- 1 K/ u l2 ~' W% u1 \# [ V
- ;; Call 3DSIN and pass in filename.
( o$ b, |# [, k0 S7 D - (c:3dsin 1 filename)
5 F) z: @# W& h8 V) D# ~' c; r - 2 |& i7 d* i' g9 C' k9 K4 o' `
- ;; Reset filedia & cmdecho7 f2 V' U5 k' ]/ ~
- (setvar "FILEDIA" filedia-save): x# P% E" Z2 X& P7 B
- (setvar "CMDECHO" cmdecho-save)
) C8 G6 g4 W- D - (princ)5 e" I+ C5 @, S( V# b* `/ N
- )
* b6 a* m; F; f& S
* G! D( I3 Y+ w5 [, x- L7 R
) D8 h$ s' T$ `( `- ;;;=== Menu Functions ======================================9 \$ ~' D$ Q- c$ v4 t, ~0 r
- B) k1 z/ p; u
- (defun ai_rootmenus ()
# p! f' A6 n8 U# h, d - (setq T_MENU 0). ~, S2 X9 C& V T8 E/ g
- (menucmd "S=S")
+ x0 ?9 |9 I3 B9 G Y: y - (menucmd "S=ACAD.S")
/ z7 X* \9 K: c - (princ)' d7 y- D( ~1 b3 A/ Q Q- ~
- )
" m7 Z' U6 f, @% i3 s
; ?: E2 ^8 d0 ^. F- (defun c:ai_fms ( / fmsa fmsb): M& a( p* z$ `% e* [' a9 O2 m4 \
- (setq m:err *error* *error* *merr*); c3 {" e: H7 X) n3 }: Q# U
- (ai_undo_push)9 m) J( F( G2 ~/ t9 |3 f, ]
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))3 v% e( N5 h7 m, h* `) O
- (setq fmsa (vports) fmsb (nth 0 fmsa))7 T7 L# w3 m* n3 N3 }0 l: ?
- (if (member 1 fmsb). S! G) _( N7 s( o7 j5 h
- (if (> (length fmsa) 1)
6 O( Q0 L. V3 V- ]0 P; F - (command "_.mspace")
- \ g* n* v& E - (progn' X6 D3 r; _. ]1 }1 Y4 `
- (ai_sysvar '("cmdecho" . 1))
& Y. q& K6 p" M( {3 ~0 \ H - (command "_.mview")
" W( `9 E; d5 ?) S e7 E' }- |9 y/ ]6 l - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))( g# a& b. U5 k0 I
- (command pause)7 _, N+ W. ^& Q3 W: a7 k
- )
A# G7 s7 }5 W+ |1 d, J - (ai_sysvar NIL)& l/ ?; {. C2 f7 K5 C e! N
- (command "_.mspace")# W4 k6 O: h! H+ r5 o6 k+ h% ~; \
- )9 u& ^. J8 q5 Q$ z" j1 f
- )
- m, t ]9 u# M, ]" [* Q - ). i( S: j( ~, E: @9 j& ]6 Y* @
- (ai_undo_pop)0 [5 G" H$ T4 t! j' I
- (setq *error* m:err m:err nil)
+ ]. i! p! |' \5 ]: T - (princ)& t; P5 v- a6 Q" a. a ]. k8 s
- )
* [/ F! w3 W: \0 b: A; g& J - # Z2 O5 ]6 w. @5 l `- o6 w4 \
- (defun ai_onoff (var)
; D6 F1 Q: D$ H. O* B% Z3 _ - (setvar var (abs (1- (getvar var))))' G6 |$ u: C& q; k) \" F% X
- (princ)
& e+ l; a* }# D; ^ - )! x6 q8 v# w. d" ~' ^/ V
- 6 {" ^3 A) m% {+ o
- ;;; go to paper space
- Q( u5 a- e3 s- z/ j: j( I - (defun c:ai_pspace ()
4 I% T+ o/ @0 x+ b6 r - (ai_undo_push)/ S+ j8 h/ M5 F- R
- (if (/= 0 (getvar "tilemode"))8 g L/ q' E: f3 S: Q; Q
- (command "_.tilemode" 0)/ r2 a, e5 Y5 b6 i
- )
6 n* E" Z% J/ i, m! V* e* W - (if (/= 1 (getvar "cvport"))
, w* H7 B, e3 ?) ? - (command "_.pspace"): y! m9 E, s, s1 {6 w2 X
- )# }: Z: X, M0 [+ @1 Z- U2 F b
- (ai_undo_pop)
4 y u1 \$ w! k/ W9 Z+ f - (princ)) Q+ w- w5 T' V0 C3 ?
- )
1 R& z" {) Y$ w D - " V3 x4 o, R/ G& J0 B& c* ?
- ;;; go to tilemode 1
6 c& \* y( P8 a- ]! L" ~/ ] - (defun c:ai_tilemode1 ()
9 J$ o/ {: }, I. C e - (ai_undo_push)* |+ ^/ k! }& ?0 T
- (if (/= 1 (getvar "tilemode"))0 u; q; S" I5 K+ W
- (command "_.tilemode" 1)
7 q8 Q4 Q9 @, X& G - )4 g0 H$ O8 P( }, A
- (ai_undo_pop)
/ Y: c5 f: c" n5 P# ?$ t0 ^ m6 R - (princ)6 d/ ?5 w/ w+ x Z* l; Y
- )1 R& T4 ~7 @7 v; _, \* F* A( Y
- 4 @$ l* i9 o4 E: k$ ]; }
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
/ ~" p# F( M" z5 {0 l" ^9 A - ;;; Toolbar Dimensions/ Align Text/ Centered' E8 K; O* h1 N
4 Q3 W2 `; S2 {( c$ V0 `. u$ r) H- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)* d( V6 ^5 _- p, z1 U
- (setq ai_sysvar (getvar "cmdecho"))8 B9 x. c1 G6 p( w J _/ |0 G
- (setvar "cmdecho" 0)) \; h5 C4 U k* X- P* I
- (cond
" s: O) z2 z T3 C/ V6 I - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
* P5 J* R( p+ z( B; q - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" / g4 X7 I+ u; h3 N5 E1 h
- "_.dimtedit" ai_dim_ss "_h")1 H9 D. G+ o4 `2 |$ ^# N
- ) d6 C/ B7 h( @& |4 Z7 I
- (T nil)
# S0 H0 Z. O5 e. }' t$ i$ U/ ? - )
1 i- @; a, D5 i" o/ z% x - (setvar "cmdecho" ai_sysvar). C3 B: R2 ~2 U1 m! |' L1 g+ t( Y
- (princ)& i% m& \4 g, W
- )
3 n8 g% {* [) v - ; c9 d- p" [1 O
- ;;; Shortcut menu for Dimension Text Above $ j0 r3 f$ k: c: p
- 8 j2 w- w9 ?& N) }" A1 ~1 e
- (defun c:ai_dim_textabove (/ ss)1 O& F6 h$ J1 S" I) P4 f4 r
- (ai_sysvar '("cmdecho" . 0)). @5 m, I% C+ m: k
- (if (setq ss (ssget "_I"))
x' u+ E+ h& R- U3 N - (command "_.dimoverride" "_dimtad" 3 "" ss "")
# t% D( y9 Q, A: q8 c. S - (if (setq ss (ssget))" f6 n$ q: b2 M% o# r1 k3 \% k
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
2 z8 G$ z, R* A& X: D2 F9 K - )
; t$ f: V' C+ S& C2 p - )
. W( N, V9 @' k1 L3 a( z* Q, l h - (ai_sysvar NIL)9 u/ ?, V! L( e# [4 }
- (princ)& Q2 _- T9 h$ K ?! ^ q, p/ k
- ) W; M: r9 E" z, G) m; Z! I
- 0 c- ?; [% O1 p& i- H! R- W
- ;;; Shortcut menu for Dimension Text Center
( i( J4 l% N/ t, `4 `) C# x - 2 u" U# ~5 _* w6 z9 D+ `$ u# j O
- (defun c:ai_dim_textcenter (/ ss)$ `, b1 a' H7 U& D; L
- (ai_sysvar '("cmdecho" . 0))& V4 Q4 o9 R4 e o% |! P! \
- (if (setq ss (ssget "_I"))0 H' |; P9 s8 C o8 _2 Z
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
2 j& z4 w! ~3 {8 T - (if (setq ss (ssget))
$ r; b! Y" h# U - (command "_.dimoverride" "_dimtad" 0 "" ss "") % V5 J1 G( S) `# w+ y. }: e
- )
9 I3 }* d, r9 S* }1 g2 t - )
9 x" n" V( ~; v" v% q& g! J, P5 M - (ai_sysvar NIL)
. J% {2 M2 \5 V) ~! s - (princ)
- ]5 o* _% l% x5 K( D - )8 Y! y. s1 l- Q: I9 ^% _( u
- . R3 X8 S A% H D* {
- ;;; Shortcut menu for Dimension Text Home & _6 B# X1 ]( T# r* V
- + F- V7 t7 i/ L8 H
- (defun c:ai_dim_texthome (/ ss)3 u5 n. z9 Z9 S1 ^7 t
- (ai_sysvar '("cmdecho" . 0))9 g& p& |. V g& Z& T1 U( [
- (if (setq ss (ssget "_I")). o# r/ D' K0 z8 B; }3 L6 m
- (command "_.dimedit" "_h"). }& ]3 `$ e8 R% K R/ ^& k
- (if (setq ss (ssget))6 u3 O2 a# |: v( M- e
- (command "_.dimedit" "_h" ss)# I3 L; N4 x. }9 [
- )3 q& v* [3 c4 Q/ m: Z
- )
" P+ N: S9 q4 K$ p2 y D - (ai_sysvar NIL)
0 _, H R3 n6 }9 s' `5 k - (princ)& R& i7 k2 V# U
- )
! V, L; z8 B! e2 y3 U
" z! V( ^4 S' n' x2 [6 @; y5 x- 3 V3 [7 S+ V: b0 j' i, ~3 P: _4 Q
- ;;; Screen menu item for CIRCLE TaTaTan option.5 \+ ^$ ]+ P/ y% T: @. \7 J
- ;;; first, get points on entities
. q9 H7 k& y8 i& h7 e - (defun ai_circtanstart()2 F4 k$ w% t# c
- (setq m:err *error* *error* *merr*)
! u" @0 I2 K$ V5 B - (ai_sysvar
2 |* ?* }# H, o ]& ^6 v - (list '("cmdecho" . 0)! T4 l: ]! }! @1 [' a4 ]( b
- ;; make sure _tan pick for CIRCLE gets same entity
4 d( v! N! f5 }$ N8 I2 z - (cons "aperture" (getvar "pickbox"))
; r+ A P& V" V" P6 p3 }2 H) k - )$ G* G& @+ Y; o6 j
- )
/ W; O& r3 N5 A - ;; prompts are the same as CIRCLE/TTR command option5 J+ B( M0 U, X) p
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))! ` N/ P! w0 P! }. f- y- K. C0 `
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
9 ^' ]* M4 ^2 H f2 M; A - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))/ J; c, c: Y8 }5 s/ J8 q
- )
) R! L) Q' g1 u7 g8 G - ;;; Command-line version6 `3 d+ l. t# q/ c9 E# p. ~
- (defun c:ai_circtan (/ pt1 pt2 pt3)" ~' G. G3 V" f. @6 H6 ?- Z5 {
- (ai_circtanstart)6 L, X m" U4 B7 x
) J8 i' L) l4 e: b2 F8 Y! h- (ai_sysvar '("osmode" . 256))4 B6 ^' k+ y$ S6 V- b
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3), f( G4 ~% |0 h+ }
-
7 y, [( Q: S& R. H% w5 z - (ai_sysvar nil), |$ W8 t, y, y! n
- (setq *error* m:err m:err nil)) m+ ]6 x' _; i9 [
- (princ)
' |# [+ Z# w- p% M9 P/ o - ), g: T& q2 g' _9 p+ J
- ;;; Use this if CMDNAMES == CIRCLE
: y8 M0 T1 k/ ]( r8 c% v7 { - (defun ai_circtan (/ pt1 pt2 pt3)$ R9 L' {/ l9 _ C8 w: S9 k
- (ai_circtanstart)
' s- R& m* M: e4 x - 1 r5 G$ x* K$ T$ U5 a; |$ \; D& A
- (ai_sysvar '("osmode" . 256))
& ^& G; @# y" f3 Q2 k$ \ - (command "_3p" pt1 pt2 pt3)
! k5 I8 z w/ c6 v% T9 Y -
" _, n: J5 y; z, _" x J - (ai_sysvar nil)
7 C9 B7 E( T9 H( P9 ? - (setq *error* m:err m:err nil)3 U1 S- H/ s0 o, \( ~; A7 r; {
- (princ)$ H7 |8 o& b+ B
- )
1 Y7 Z8 \% q5 z! d$ q. z1 \! V - % z2 U2 B! J, B: e3 l
- ; q8 e. g3 q8 Q' i( k
# a. b! m8 U! E+ u% S- ;;; Shortcut menu Deselect All item.
! h0 o8 x1 M" M! W" n - $ f% I6 R" y9 d* X/ ]
- (defun ai_deselect ()
5 W* \, E5 D' f4 C. E% Q - (if (= (getvar "cmdecho") 0) ;start if
4 q, Y6 K/ w% Y - (command "_.select" "_r" "_all" ""). N( a% o) O7 n1 P9 x
- (progn ;start progn for cmdecho 1( o3 z4 r7 |/ Y5 t5 M' G% i( \
- (setvar "cmdecho" 0)
0 j8 C# A+ c2 _7 n' g+ \+ }+ d' Q - (command "_.select" "_r" "_all" "")$ _& D/ G$ Q. ^! C: H
- (setvar "cmdecho" 1)
% t3 ]5 c0 s; g. o* g - ) ;end progn for cmdecho 1# o( J0 h4 g, T& B1 Z
- ) ;end if
. S, C' a8 ?8 {: l! O6 o) n - (terpri)# _2 @: i; ]/ X& G
- (prompt "Everything has been deselected")
" [7 y( h7 Q7 T C - (princ)
. d/ G3 G( b% ]$ x* i4 V- g8 ` - )
5 l d6 u! P) R! X2 b3 z0 O - : O6 ]( {* r& `% D# M6 j7 J
- ;;; Command version of ai_deselect to be called from the CUI
( J) W) F7 e, p: _& Z7 c+ Q9 C - ;;; so it gets properly recorded by the Action Recorder
3 G8 ?0 p: w2 k! |8 |* _; G; v - ;;;. q2 @3 P) _+ _7 Y0 W
- (defun c:ai_deselect ()" c! Y- S- d# q5 Y5 J3 {2 m* v8 N4 {
- (ai_deselect)
9 N$ S: ?7 U/ T, r J - (princ)/ p; V m3 d+ u; b9 ]
- )
" L2 i* r, ~( q& E! x7 I4 m+ W - ' ]- p; T8 Y3 Z' q
- ;;;! @ V( z# m" G! R9 ? D4 l& q2 v2 l! i
- ;;; Enable Draworder to be called from a menu: D5 l5 D* H( s; q6 N) H
- ;;; Checks for Pickfirst selected objects+ {- ?0 E3 T; T2 n8 W
- ;;;+ E% H+ [0 Q {- }
- 9 A+ _# y0 ^1 U5 A6 X) ?( J
- (defun ai_draworder (option / ss )
+ g2 _3 _+ A8 F* F9 o - D& Y- ]" `: W* H1 f
- (setq m:err *error* *error* *merr*)
3 C n* L/ N$ C4 b0 a3 Z" ^& r0 B - (ai_sysvar '("cmdecho" . 0))
, N4 g2 P' D7 z: E - - k/ V7 }+ m3 |. T3 B) L$ y. Y
- (if (setq ss (ssget "_I"))3 s$ {! J( _! B6 f
- (command "_.draworder" option)4 B# L0 u5 ?0 ~6 i; v
- (if (setq ss (ssget))) a8 r | ~1 b) {; Z3 j6 w
- (command "_.draworder" ss "" option)
& t) B9 m8 P# H- T1 z: w8 p - )
6 z. q- y. A9 n" l a - )
9 T% o6 s- x, ?6 Y: J$ [1 B" A" g - (ai_sysvar NIL), W) \5 N& B6 a+ A4 A- D
- (setq *error* m:err m:err nil). R8 b1 g$ @6 \; e: `
( a- O% y8 W. O0 A0 }- (princ)/ Q, U1 [+ A5 I& a* r
- )
! P& Q1 q" ]3 k; `4 e2 C1 M
0 |/ [! Z$ T, R7 v) Z8 i" k1 O8 n- ;;; Command version of ai_draworder to be called from the CUI
( C: x- M1 e- h - ;;; so it gets properly recorded by the Action Recorder% C$ Q4 P& }0 f; E; J% f% U
- ;;;% I* ^8 F/ ~7 l _3 I7 _& ~9 ^
- (defun c:ai_draworder ()& g, h' C* N1 }- G2 t
- (initget "Above Under Front Back")2 T0 C" @) T4 _0 w2 }
- (ai_draworder (strcat "_" (getkword)))# V+ r/ ~! X7 ?5 }8 s! T$ m
- (princ)- j3 h! N9 I! k( D
- )
& L& o1 D0 T% L% \# u- B4 T
* o3 S) E& g4 k" V b* @. k- (defun c:vlisp ()* i/ K; q3 x7 D8 i6 b
- (if (/= nil c:vlide) (c:vlide))4 T$ y3 ^- p' I3 g
- )
n6 P* c, m1 r( }
4 x! L7 [/ s2 f* M! Z+ V% Q, w- (princ "loaded.")3 v+ m' H h# K$ P
- 8 @ }* X8 V2 T% F+ O
- ;; Silent load.6 D6 q3 j; q! f. ]
- (princ)
5 W6 \9 b( y1 {% M) J' F - & K# ~, v5 Y {5 u; I
- ;;;----------------------------------------------------------------------------$ `' @* m- O; P0 k4 {
- ;;;
1 t$ _9 _( \, W6 P' \7 h6 g' s - ;;; DDCHPROP.LSP Version 0.5
' F# t* r' l! I5 g2 ]0 v: x/ E4 @8 L - ;;;* g4 I3 J! X7 U) b
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
0 w# Q$ l( u" {. A# u - ;;;' y6 Z! L( P/ l: q- j7 F6 J
- ;;; Permission to use, copy, modify, and distribute this software6 G4 E2 r! G6 U: m) U, r8 J% z6 @* Q9 K
- ;;; for any purpose and without fee is hereby granted, provided \7 u. C( B, \ g' P9 E' F
- ;;; that the above copyright notice appears in all copies and that
0 C, k% b; c) m - ;;; both that copyright notice and this permission notice appear in k6 Y- A4 o, P7 S: r
- ;;; all supporting documentation.
* [+ c! V3 a7 c) R* m5 S - ;;;2 a9 B+ E! I! O+ u8 m5 h& s
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
, C. H% Q" z8 c% D - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
* I0 }$ ]8 L: N% O! ] J - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.+ W- l3 K5 o2 H9 p
- ;;;
# }6 z9 M+ Z6 l! P) d - ;;; 2 February 1992
, E% F8 ^: x& N+ V W - ;;; * m( G6 A8 w7 E5 E$ Y
- ;;;----------------------------------------------------------------------------
6 |# V7 ~1 R: | - ;;; DESCRIPTION( F- w; L- E& J0 F1 L! G/ l8 ?
- ;;;----------------------------------------------------------------------------
p3 e/ w& T/ a$ o# @; D9 x. I - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.# c* L, s" [; m
- ;;;/ L% e# N! @8 @6 x" C7 r
- ;;; The command looks similar to DDEMODES. The main dialogue has an image
& |% U) U, p# k0 z - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
# k5 J3 J8 e- _8 ] - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. % P8 U% k- I+ i/ s; i
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.6 q+ l; j5 E% I, g7 `8 y+ h c$ u
- ;;;$ u. ]4 P9 C* h( g7 P
- ;;;: l! V, H* B+ v/ s5 B4 \
- ;;;----------------------------------------------------------------------------$ |" `/ n& w1 f8 G8 d/ s. c
- ;;;----------------------------------------------------------------------------
3 m1 E: M. T" B3 S - ;;; Prefixes in command and keyword strings:
2 u* A' d; Y7 }- J' I+ k - ;;; "." specifies the built-in AutoCAD command in case it has been
6 v5 t, n( F, a, Q& } - ;;; redefined.9 D5 {, n# b) e0 q+ }4 @* z
- ;;; "_" denotes an AutoCAD command or keyword in the native language. ?, Y3 _" _( I z: o7 j9 q0 k
- ;;; version, English.
2 m% ]: Q0 j% u+ V* w, w - ;;;----------------------------------------------------------------------------
- v& W% t+ K2 `8 T+ P, U - ;;;' r, Y) x& k9 ]
- ;;;; k8 l9 o: C, y8 L1 d- Z6 P
- ;;; ===========================================================================* J+ q Q- ]# Z+ b: z) X. e9 K) O3 E
- ;;; ===================== load-time error checking ============================
8 V9 ?( L. I; {; o5 Y+ R0 Y; A - ;;;: Z% Z" v/ b' N4 N0 E5 |
" [/ D/ F4 q) @% @- (defun ai_abort (app msg)
, y6 ^ X: u5 p- u$ z) E" T9 T# u - (defun *error* (s)& z I4 s/ q2 K8 G L+ T
- (if old_error (setq *error* old_error))# V) H1 B* c7 E4 r
- (princ)
$ I/ k N% y7 f% V - )
6 U+ G; V+ c5 B/ t: P+ O/ N+ o% h3 [ - (if msg5 m& y$ q. ^+ v8 s) G6 F
- (alert (strcat " Application error: ", c4 Z- w* ^$ \$ W; q
- app: `- v8 t8 b/ P4 A
- " \n\n "
! N* d/ a& R( U" n w3 _ - msg
% W! X' v) G* U1 _' a - " \n"
; f7 ^% V4 [$ f: } ^3 _ - )3 S' D0 h1 r3 G, Y: r$ F
- )( t% _9 e" j" b
- ), |% N9 D6 l; j# o# X
- (exit)( B. g2 W6 H* K" y6 Z; j& Z
- )( M/ F/ a9 f( g# s& d
+ l- L5 z" Y( i) l; h- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,6 h* F9 X+ h# \8 b
- ;;; and then try to load it.+ H" P; H1 T- g
- ;;;
4 P7 w F4 c' Q0 B. l- \: [ - ;;; If it can't be found or it can't be loaded, then abort the! ? p/ x4 v3 U. R$ e4 S& K
- ;;; loading of this file immediately, preserving the (autoload)+ w- y. O* A/ b1 e9 z
- ;;; stub function.2 R# E- E# _) [. ?1 d1 w8 i* A
; F2 B3 f2 p" E/ @- (cond
8 ~0 d$ ^4 b: L - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
# L: y$ V0 L3 E) Q2 f% D3 \7 R0 b: } - $ K7 g4 C" @" _: l+ o) _
- ( (not (findfile "ai_utils.lsp")) ; find it
6 T! g4 [2 ~/ @5 _$ E - (ai_abort "DDCHPROP"
$ I2 L' s9 p# E. c+ s8 A" {1 I - (strcat "Can't locate file AI_UTILS.LSP."" ^ `/ [2 U) M& D
- "\n Check support directory.")))
& K" ]& n) e) H- G4 Q- v
+ ?1 o! [) H) X0 J& D. f: u- ( (eq "failed" (load "ai_utils" "failed")) ; load it
8 D. m* \. N. j$ S - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))1 S \: l) e, m) {( Q) v* T
- )
8 h7 _9 d$ @% y- R - & i: T4 E* h2 p, _( Y) w
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
5 K7 ?1 n- F3 v# v+ `9 o - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
! x( Y. x$ r$ g$ J0 |) u& [ - ) ; ai_abort's alert box dialog.
5 d6 |' n6 ]% P R4 n' T! M7 w. i" s* w - 2 d' {+ z7 ]0 I8 Q) U( @2 E. W
- ;;; ==================== end load-time operations ===========================# A3 ]8 ?' q! u9 r% \
6 N! {% U0 w( ^+ f# t1 L- ;;; Initialize program subroutines and variables.
1 j, U& _# B. K& e i L7 } - ' K- y8 g* j& I" I9 m
- (defun ddchprop_init ()$ d; F* i) Z5 Z& G
- ?5 k- I( |/ S9 U# k- U1 p2 z
- ;;2 ?5 e! e- v2 D y) W2 `" g& B- K
- ;; Define buttons and set values in CHPROP dialogue box # S+ h! ?5 r1 l6 X+ _, |
- ;;
4 {" l$ t3 s" t' q5 } - (defun call_chp ()
+ E7 u' Q9 w g - (if (not (new_dialog "ch_prop" dcl_id)) (exit))
4 J( e+ L8 F2 f4 v; r4 n. J+ y - (set_tile "error" "")' {7 f/ i" l9 E8 Q8 Y
- ;; Set initial dialogue tile values
' M6 q- T* M0 X - (set_col_tile): X% C. h4 C' i! M
- (if (= lay-idx nil)
, Q2 h& D: ]$ }9 W. x* |9 C - (set_tile "t_layer" "Varies")
! f% ?' N2 k: e1 ~7 i* e9 Q# u - (set_tile "t_layer" (nth lay-idx laynmlst))
' I' g! K9 |3 o& q$ f - )/ R; ?8 {7 L- ]6 [
- (cond
1 n9 `4 O1 Z/ v& }) u) E - ((= lt-idx nil)4 D. T3 K! V/ g: D: q5 T" e
- (set_tile "t_ltype" "Varies")
5 I# m+ c2 `* n, `% q0 ? - )
! T3 V6 s/ j2 `9 t - ((= lt-idx 0) ; set tile "By layer & layer linetype"( w0 W% X `1 E9 S( A
- (set_tile "t_ltype" (bylayer_lt))
9 X" q; \, W, f2 S: k# t/ ^ - ) S/ C |" R( |3 e* z
- (T . X$ t- N; C% X8 T, S6 }
- (set_tile "t_ltype" (nth lt-idx ltnmlst))) {0 i' ]4 `( X# O7 T9 L
- )
' Z6 g" `- M' B; R$ J - )
3 C% X! U/ H% Y/ z. B - (if (or (= ethickness nil) (= ethickness "Varies"))% }) L5 A9 A" Q9 L4 R
- (set_tile "eb_thickness" "Varies")
. K2 C3 P1 h' y G4 \( C4 | - (set_tile "eb_thickness" (rtos ethickness))9 b" ]3 g9 F2 R2 f' V
- )
4 {" y0 z* J7 C. O1 T' m, B - ;; Define action for tiles
7 p+ [) R7 Y$ h2 P7 Z* `1 d. ^3 i - (action_tile "b_color" "(setq ecolor (getcolor))")
: `3 F, }: N) K - (action_tile "show_image" "(setq ecolor (getcolor))")
0 i$ a( W3 r( r+ g - (action_tile "b_name" "(setq elayer (getlayer))")2 Y% J: o3 }( H. h
- (action_tile "b_line" "(setq eltype (getltype))")0 X& f+ o0 ^4 R a7 f+ R
- (action_tile "eb_thickness" "(getthickness $value)")/ z3 v$ X% x# H/ q- c
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")/ Y' X7 B! c, B& a; u
- (action_tile "accept" "(test-ok)")8 U2 G M, n& E8 X4 V7 G
- (if (= (start_dialog) 1)8 Z; f3 H0 C/ Y$ e; w, i
- (progn4 n; G0 Z6 ~) R: x; u* q* ^( t
- (command "_.chprop" ss "")
, {. s( U8 S- W! w! ^ - (if ecolor! j& S x" o( N
- (progn% }# J4 {; U- ?/ L0 K) }
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))4 o% x, @/ `0 D" W8 ^+ `4 L$ {3 w
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))2 z3 d( v' e* c8 L5 j* k; j
- (command "_c" ecolor)( ?' ^" p! b, Z: m9 D1 n
- )
2 [ X0 E/ F1 G - )
* {8 y1 W7 j: J. [2 w - (if (and (/= eltype "Varies") lt-idx)5 w! e: t+ r6 w( W) o& U
- (command "_lt" eltype)
/ ^! o) g0 K' \3 X; U. \( `% B - )
8 q0 W8 B# M( b - (if (and (/= elayer "Varies") lay-idx)
) h a3 R/ \3 i7 K - (command "_la" elayer)
; H1 P4 a/ j: Q. U8 X+ K/ a* N* k - )
# K. h5 v$ N7 `- f- g# n - (if (and (/= ethickness "Varies") ethickness)( [' ?6 P+ g. y& e
- (command "_t" ethickness)" \9 i/ W7 ~6 Y9 p$ {) p5 x. }0 F
- )
: b1 u& M8 o% w1 O, D' O, m' l - (command "")3 ^8 o& w' W; l g' D5 O) X+ K
- )8 J. j: Q4 H. V8 Q2 F. b
- (princ "\nProperties unchanged")- E k* k# p- V5 Y, i, f5 K8 t
- )4 k- \$ j/ l; f5 v
- (princ)
" K( Z( @3 h! g& s: H( E - )7 p2 s' r7 V, l; g/ G
- ;; @# [! _: A1 f" F, B
- ;; Function to set the Color text tile and swab to the current color value.- J) ]" t$ ^% F/ t% ^
- ;;
1 e/ y; ?6 ^& f& p1 N) j+ f - (defun set_col_tile()
, H4 r9 {/ A" l- @! i - (cond " O6 _& a5 v* P6 r9 p% S, Q! W& F
- ((= ecolor nil)
' W1 a3 V4 `8 `, p L3 d# L) [2 y - (set_tile "t_color" "Varies")8 ^1 W7 F6 t0 T! j8 x; |/ E+ X
- (col_tile "show_image" 0 nil)
# I. y- ^% H# V- J - )3 v5 a! M$ a! x8 b, N, v# A
- ((= ecolor 0)2 M# G6 W" U/ F' S! N* c
- (set_tile "t_color" "BYBLOCK")
; F- ?/ K! F8 a) P7 `! B - (col_tile "show_image" 0 nil)
9 O E% c' f. u( w' Y6 [9 T - )
6 v* r- c2 K: s% B5 `3 C - ((= ecolor 1)' L) M4 }; h# h' Y6 E4 d
- (set_tile "t_color" "1 red")
D7 Z$ ~- ]& S z - (col_tile "show_image" 1 nil)+ u& X8 l3 n# y$ q6 Y, t7 B; ?
- )9 O4 V& O9 ?8 n- `
- ((= ecolor 2)/ ?' F- e3 ^0 K L
- (set_tile "t_color" "2 yellow")
% F. m9 U, ?6 [4 g2 u- N6 z- E - (col_tile "show_image" 2 nil)" y' d; |" @" u$ X7 L
- )% q+ S' T- C: W% C! g
- ((= ecolor 3)& A4 W; |. G4 v; J
- (set_tile "t_color" "3 green")/ \- A9 I; F0 |" u% c) @5 U
- (col_tile "show_image" 3 nil)
6 A1 c# L+ z% y) I! e; X - )
! a1 Z5 m5 J. {6 v" e7 b9 z8 V9 ~ - ((= ecolor 4)
( I0 c$ `/ T! z - (set_tile "t_color" "4 cyan")
( ]! U s1 ~2 p - (col_tile "show_image" 4 nil). ~, i/ U+ a( X6 f
- )
$ y1 ?# {" }6 t) W7 [+ z1 q/ U - ((= ecolor 5)) ~3 n( X' @5 W& u
- (set_tile "t_color" "5 blue")7 ^ y# F$ n5 C1 J* q6 F$ f" T- s
- (col_tile "show_image" 5 nil)1 D8 T, @! q+ _) R- _3 S
- )
( Q; H+ |8 Q/ k' d) | - ((= ecolor 6)
( V1 y* y6 g. X+ x5 l6 q# @" o9 X - (set_tile "t_color" "6 magenta")' j0 T8 O- }& \; |7 m
- (col_tile "show_image" 6 nil)
/ Z x3 k7 ~# {8 w2 i2 E% U' K - )
" {# a7 `! q! |! X+ H/ Q8 P - ((= ecolor 7)( W% J! x5 W1 @! q5 l
- (set_tile "t_color" "7 white")
* q4 `5 E* l' T4 ~( g+ _8 I |4 X* { - (col_tile "show_image" 7 nil)
3 n' v' l! T5 p0 E/ m1 E - )9 s1 g2 |, ^% Y& J. d
- ;; If the color is "BYLAYER", then set the tile to
! D1 \% h, s- q. p4 K2 P, C* ? - ;; show it's set By layer, but also indicate the
( O& q* x' N( N$ k2 I9 d - ;; color of the layer - i.e. By layer (red)
1 p0 Y# Z* H4 r9 Y - ((= ecolor 256)- d- w# o3 t! z4 C$ J! H) _
- (set_tile "t_color" (bylayer_col))+ [$ w6 L% H* F; ]9 ^6 f% X P! U
- (col_tile "show_image" cn nil)
/ p2 S8 k6 O0 t0 d! I& D' k - )
: R* b. X" k4 g+ @, K* S' O - (T 2 x4 [& D \7 j
- (set_tile "t_color" (itoa ecolor))6 ]' L! H5 {+ K/ g
- (col_tile "show_image" ecolor nil)
" X, v9 _* J0 l1 P- u - )
. ^) Z7 z/ N/ l1 q - )) }3 f N- X( _, N2 c; J6 V
- ). T* K Q1 K& K) d
- ;;
' V; `6 p L7 o! w2 x! s+ o! O - ;; Function to put up the standard color dialogue.
: a: S5 ]8 x& M/ F - ;;
4 Q2 `, C7 k; i* C - (defun getcolor(/ col_def lay_clr temp_color)
. E6 M; h" V! `6 ~ - ;; col_def is the default color used when rq_color is called. If ecolor
( C1 d8 C/ `7 T/ x+ D - ;; is nil (varies) then set it to 1, else use the value of ecolor.
; B6 }! s1 i: Q1 y( z - (if ecolor
0 c2 Q9 L. y p4 q5 L& @& Q - (setq col_def ecolor)
# h5 r" v. `5 k4 q: t" f. k6 v3 ] - (setq col_def 1)
6 h5 C% F' K& N0 g C5 @( ~ - )
6 V* M+ A. W6 L - ; [0 P7 _1 N3 b8 t! b
- ;; If we're working with a single layer, get its color
% u& U L& @6 Q" W" B - ;; for use in the color swatch if the user selects color BYLAYER.
( U4 s7 a# N; T: [% H - (if (/= elayer "Varies")
1 r6 E: U. K/ V e d0 | - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
) {( H5 |0 k: ~ - (setq lay_clr 0)! h/ B) U! R5 z2 |
- )$ @4 x# s/ n7 N5 Z) z* V4 `
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
6 D3 {0 |% J! \ - (progn
3 z# y, e! o3 R+ a- t - (setq ecolor temp_color)
* r% H$ H' c% P% ]0 W, D3 E - (set_col_tile)8 ^ M/ C& A' ~
- ecolor' D8 V3 z* F; \: b8 f
- )8 H1 h. @! H* a8 [
- ecolor
p) B7 i F, v+ K7 a4 y - )
. Y3 w P- n! r+ c - )
6 I6 x/ y6 A0 W7 X D - ;;
( L* S' A* f: M8 c* R C/ s! j - ;; This function pops a dialogue box consisting of a list box, image tile,
* }+ X, m3 v3 U3 J0 B - ;; and edit box to allow the user to select or type a linetype. It returns
9 j& }' J; m+ g, t, b& I0 F - ;; the linetype selected.# \% j) l: s. ]" e+ r3 i% Q
- ;;" G% \1 `8 @, B! F1 V! ^
- (defun getltype (/ old-idx ltname)/ X, s0 O; U! U \. P
- ;; Initialize a dialogue from dialogue file+ i" a# C- c! P8 r+ Q& o
- (if (not (new_dialog "setltype" dcl_id)) (exit))9 Q+ q- _. k1 m# r/ P
- (start_list "list_lt")5 y, @/ w0 j. W' R9 w, G5 ^
- (mapcar 'add_list ltnmlst) ; initialize list box
: a' Y% {1 x' u0 K; D* ] - (end_list)
' Y2 z. u% `/ e1 H0 O - (setq old-idx lt-idx)
* i! y$ r8 \* C" [3 |- o0 w+ i - ;; Show initial ltype in image tile, list box, and edit box4 ^ s4 F5 v2 C7 U' e
- (if (/= lt-idx nil)
, p1 d( R3 F7 W& z: l/ r - (ltlist_act (itoa lt-idx))
5 ^+ F# Y/ K( F- m: D9 H) }6 i; v - (progn
- s8 M, n% j& Q4 Y" J; I* B/ U - (set_tile "edit_lt" "Varies")/ F2 o& F* S9 m' b. @% W
- (col_tile "show_image" 0 nil)
a: X5 U1 M6 u6 i6 e3 r - )1 P5 j# u: b0 z9 j2 K1 a
- )
3 E0 X% _( E8 W6 K2 Y% @ - (action_tile "list_lt" "(ltlist_act $value)")
- C! G9 u6 n6 N* c- n, p; s4 j - (action_tile "edit_lt" "(ltedit_act $value)")( Z+ E4 R4 P+ D& u7 L& t
- (action_tile "accept" "(test-ok)")
. A% \% j$ r _. g4 u5 g - (action_tile "cancel" "(reset-lt)")
9 g! C9 p4 S/ ^ - (if (= (start_dialog) 1) ; User pressed OK
% u+ \: W9 }1 l C$ p3 c* C - (cond
- S( _4 N' d; N; V$ Q# g - ((= lt-idx nil)3 Z* d7 o* y3 e! o0 k+ x
- (set_tile "t_ltype" "Varies")% w: ?( V1 c5 E% ~$ R, P% f7 ]
- "Varies" A) s: ^, x) o& r
- )
H, B6 R9 Y) {/ a r! a - ((= lt-idx 0)/ B9 t2 S, A& [( @/ L, m! a' F3 U1 }( y
- (set_tile "t_ltype" (bylayer_lt))$ u: Q8 ^6 ~! `! z
- "BYLAYER"
: |! k' o# a6 V5 h. t5 h - )
6 ?7 Z2 R( Q5 _9 N$ x - ((= lt-idx 1)
" b- D( z2 C' o: j% ]* J6 {' o - (set_tile "t_ltype" "BYBLOCK")
/ U; i" A1 l1 A9 a7 v - "BYBLOCK"
8 G/ N4 p0 C% c: x - )
0 P5 Q$ Z- I' p) K0 |6 H# s. n5 u - (T 1 W% \8 S) U8 T6 C
- (set_tile "t_ltype" ltname) 9 b; q7 L$ L6 T# e, r' ^# G
- ltname5 Z( X# g; B4 m! T2 x
- )
( U5 Q7 h# a5 @) `" x- q0 H8 W - )( U* n3 Y0 x8 m
- eltype& d3 O7 e9 I& c" K( U& ?# s G
- )
7 O l0 d( D( v* i) y9 D9 x v6 ?2 M - )
" P0 A J5 n# [& w# i - ;;" Q& f2 B! B5 E. g% w z. x% ]6 }
- ;; Edit box entries end up here
, D8 w# T+ k. D! x, X1 y, | - ;;
% ?9 O3 w7 {1 v - (defun ltedit_act (ltvalue)
$ C* V3 \" Z7 N, N1 t8 o - ;; If linetype name,is valid, then clear error string, + @/ y2 z1 \1 B N0 u- K$ ^
- ;; call ltlist_act function, and change focus to list box.- L( F0 W2 K) W7 t3 j
- ;; Else print error message.; W$ I" y, n" `( S5 W; u
- (setq ltvalue (strcase ltvalue))
3 @0 f& P h$ H. D' j$ i$ i0 r - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER")) i. B" D0 _9 G1 U& B! J" C
- (setq ltvalue "BYLAYER")) h z2 T% j9 I7 N; h
- )
! m' y0 I, W9 h8 T& d L - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK")), v! f) Z' c8 I& d* Y$ u2 m
- (setq ltvalue "BYBLOCK")" \6 J" f! m9 q9 C, G9 i7 o
- )
* W- G2 }# J5 ]3 L - (if (setq lt-idx (getindex ltvalue ltnmlst))% Q3 u2 ]0 U3 ]3 r: N( H- ?
- (progn
0 l2 ?. Y2 G3 _, \& p2 q0 N - (set_tile "error" "")5 u7 f$ z2 }) D
- (ltlist_act (itoa lt-idx))
/ S) h) c `! g7 T - (mode_tile "list_lt" 2)$ ~7 ]' }7 X* k3 H
- )0 Q0 ^) s7 ~4 t$ X7 o, v! C
- (progn
7 N/ j5 B' r2 g7 y" N( m$ ] - (if (/= ltvalue "VARIES")
4 m" D+ A1 X! W& |% L- x - (set_tile "error" "Invalid linetype.")
. [4 K2 I9 w( s, h7 v" j( n - )
9 ?6 u: W8 Q" p1 O - (setq lt-idx old-idx)& v$ N6 O0 c3 U. W! ?( u! l
- )
6 L0 T# u4 O( p4 M9 Q1 ?" x - )
# E0 v5 T$ O$ c% B" r7 i0 |- v - )
) z; x4 J0 \+ E" e8 Y0 l C - ;;
- w, B6 n: k+ X, ~+ S - ;; List selections end up here
7 r3 c0 V+ v" ~* c6 F2 w - ;;. T$ \) v5 m9 M8 _: [/ g0 u1 d6 P
- (defun ltlist_act (index / dashdata)4 {, B9 @; p3 T: x) A) y
- ;; Update the list box, edit box, and color tile! C2 c8 G+ ?& q% p4 I6 l% ]
- (set_tile "error" ""); x. l9 D6 \! w" B5 F* V
- (setq lt-idx (atoi index))
4 x" H2 e' r9 h$ ^0 Z# [ - (setq ltname (nth lt-idx ltnmlst))
$ K! ^6 G( p. h% w: l; a7 h5 c - (setq dashdata (nth lt-idx mdashlist))/ {* X) \' [1 c3 N/ } u
- (col_tile "show_image" 0 dashdata)6 {, x1 T% q1 I% s# }' e; o: x# T
- (set_tile "list_lt" (itoa lt-idx))3 W% L! g8 r# j/ p5 \/ I
- (set_tile "edit_lt" ltname)
4 r/ C. _% ?' _$ ?1 }, l$ ?& J - )5 Y7 w; T& f z" \. s
- ;;
. \5 D6 c+ ]5 m' r1 z0 U - ;; Reset to original linetype when cancel it selected
6 u: H7 u. Y: K1 E+ | - ;;, c7 l' a- w6 e. |' l
- (defun reset-lt ()( U, }- l; J5 Y0 ^5 g ^: b" L
- (setq lt-idx old-idx), ^( s \4 x# H7 j7 Z$ y6 f! I
- (done_dialog 0); U4 z0 B2 H. [2 V B3 C5 w
- )
. A) s3 _4 w: O7 K/ X6 D - ;;
7 x: J( E! m* a4 U$ g2 b - ;; This function pops a dialogue box consisting of a list box and edit box to & D+ \7 I; v1 s! r; O, @
- ;; allow the user to select or type a layer name. It returns the layer name
$ V% }' Z7 Z+ B( y( R2 B - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the 1 }' @+ Q* X* a
- ;; drawing.
. _8 K" N, ^5 z' v4 p6 Q4 s - ;;/ S3 U6 |$ l* _
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
% D% `3 {7 d0 B/ i# I - ;; Load a dialogue from dialogue file# d( E1 ?0 S& Z( i& w/ m
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
6 q; p4 h6 @" Y! N J; z& t7 W ^ - (start_list "list_lay")3 b' b2 B: F9 d2 I$ {
- (mapcar 'add_list longlist) ; initialize list box
4 A% B' A$ T. `" X/ G# C( u& }$ C) D2 | - (end_list)
) {' v. F3 `4 ]5 l. L3 c - ;; Display current layer, show initial layer name in edit . d. G% R* t; D" b4 [
- ;; box, and highlight list box.
# x! B, p- M$ Z; R - (setq old-idx lay-idx)
- _7 h" }2 J9 w2 L2 \. d( G) R - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
+ f: V% {" C. v2 E8 L! y/ d - (set_tile "cur_layer" (getvar "clayer")), l* @3 D8 t) b8 ^" P
- (action_tile "list_lay" "(laylist_act $value)")
: D; z2 P. o9 p - (action_tile "edit_lay" "(layedit_act $value)")/ c7 P; p" @) X" i6 o+ C) R
- (action_tile "accept" "(test-ok)")- W" z1 q- |( l5 G1 @
- (action_tile "cancel" "(reset-lay)")/ g2 e" t5 p) z
- (if (= (start_dialog) 1) ; User pressed OK4 _' M3 W4 ?7 d9 d" L* l
- (progn& l. k/ H2 c( m( u& `* p6 ~
- (if (= lay-idx nil) (setq layname "Varies"))
0 q* m4 |' V- ~' e3 X - (set_tile "t_layer" layname); @6 P! n5 v* V2 Z0 z- D6 {
- ; If layer or ltype equals bylayer reset their tiles
7 ]. D% w" L% s - (if (= lt-idx 0)8 h' k9 X5 I# g* z' O
- (set_tile "t_ltype" (bylayer_lt))- M4 t& r# I* k7 p% V0 G
- )$ p4 _4 A( G- P( Y& w* v# t
- (if (= ecolor 256)
D* O% o! D% y2 v - (progn
! X! K x. c l5 K% W3 A - (set_tile "t_color" (bylayer_col))
6 T, g; F+ O; ?# Y& _ - (col_tile "show_image" cn nil)& |& C. X- ~8 M$ O4 g. ~
- )
8 Z0 T7 e0 \2 u% | - )
" z e/ U7 X( _( r' l1 e# m8 g& N6 C R - layname n6 ?! {1 ]& G( A) A
- )
1 v6 o' m& [+ w' C# c - elayer
3 I6 O ^: Y/ q% f3 w7 ? - )* w- J1 k! F! z
- )2 B# T2 R' e- I7 ]
- ;;* T( C' Q# Y& p+ F) ~( ^. n8 W4 M
- ;; Edit box selections end up here9 I0 x o$ X: K- V9 q! b
- ;;
7 k2 N- r5 r/ ?& h - (defun layedit_act (layvalue)
* t( w( W/ Y0 i6 J2 n - ;; Convert layer entry to upper case. If layer name is( b, s/ Z9 B# m' A* r$ `4 f
- ;; valid, clear error string, call (laylist_act) function,. k; F' X C; {1 W/ I1 ^
- ;; and change focus to list box. Else print error message.
, N) l4 D2 o: s$ X$ x i7 q! p. { - (setq layvalue (strcase layvalue))
* ~4 b. P( j+ w+ w% N0 Q4 o - (if (setq lay-idx (getindex layvalue laynmlst))
- Z2 u$ x# o- I; p - (progn* J/ L) J3 ?) i& ]$ C/ y' n
- (set_tile "error" "")5 e) o; s$ L& A2 T0 F
- (laylist_act (itoa lay-idx))
& {% h6 \: T) V" }2 W# n - )' H7 q* U" [* \8 e2 A2 k
- (progn+ V1 T4 ~( N% O
- (set_tile "error" "Invalid layer name."). h. ~: f* T ]4 n! ?
- (setq lay-idx old-idx)/ a+ ]4 J1 w6 H& |6 R" K# z
- )$ i! l9 q6 O& [) P- t
- )
) W' \/ I. ]% C# [% j) Q - )" d: c+ k! D" B/ C" c
- ;;& K1 R* i6 X% X6 Z
- ;; List entry selections end up here
4 ~# z1 \0 Z: w% _$ _9 M6 T - ;;1 ^1 |1 O; H' R- D
- (defun laylist_act (index / layinfo color dashdata)* ~! D9 B& Y8 ]- Y W' s
- ;; Update the list box, edit box, and color tile/ ^1 x3 j! l3 S
- (set_tile "error" ""): ]+ s3 I: E, [2 P. |. k2 i
- (setq lay-idx (atoi index))
* O' X7 ^, U' r5 I* Y: e - (setq layname (nth lay-idx laynmlst))
) ~9 n# i; x7 U3 O- W5 ` - (setq layinfo (tblsearch "layer" layname))$ h$ l H! T. O X1 ^
- (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
: y, |/ D" }; O% h/ f3 U9 S: k1 Y6 v - (set_tile "error" "Cannot change entity to locked layer.")
* ?- c/ f& Q' K6 J+ j& _ - (progn# a" w* h+ @0 o3 \+ S# Z; V+ w* Q
- (setq color (cdr (assoc 62 layinfo)))7 p+ m; z' B9 m. p( K" y
- (setq color (abs color))
& c' l" O9 |3 s; w: T - (setq colname (colorname color))
9 g8 ^! I( g. h, q$ F - (set_tile "list_lay" (itoa lay-idx))5 V3 X; V. d, d4 e, ^! a8 J
- (set_tile "edit_lay" layname)
2 N. Z* T# Y: z- H j: i4 Y/ r$ Y - (mode_tile "list_lay" 2)+ a7 m. N% t3 q) R3 a
- )% v7 }# L9 P5 ]+ ^
- )5 ^8 p( L" b! u |
- )
9 t- ^2 P2 t3 U3 P6 a - ;;
' @' s2 ]' p+ ?( y7 q' S1 v0 n - ;; Reset to original layer when cancel is selected
; P3 K! t5 h; z1 k. O2 ? - ;;
( r7 A7 R6 [; x5 i! t - (defun reset-lay ()
$ h& w( r! v3 ]+ v - (setq lay-idx old-idx)0 _( s$ Z: s' {3 [0 \9 \
- (done_dialog 0)9 B$ P: h* N( L9 Y' h
- )
' z2 |% J% d1 [6 s. Y9 c. D; @ - ;;5 l* P3 g# ^$ W) C; z# n4 ]/ P9 d
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
1 J k1 ^5 r3 M3 @, q3 ?4 P' E: F - ;; string can't be converted to a real, this routine checks if the first
. f% q, ^8 ]8 I0 {3 e% O2 j - ;; character is "0". It also checks to see if the value equals "Varies".
& L+ `7 i* n$ s/ p2 _' ^ - ;;
* \' `/ h# a% O* C2 b - (defun getthickness (value), Z. N* U! X7 z6 y' o# v3 e
- (setq value (strcase value))
: L) j2 P2 d; B# U - (if (or (= value "VARIES")$ m! E0 C- u6 T% |) C
- (distof value)# ]7 z' b( \9 W2 Q5 \
- ), A. i7 ~% H& x, P: a1 ~: w
- (progn
0 Y- a4 s" ^: W& {1 n' \ z6 O - (set_tile "error" "")
3 I! ?3 E" V: J( _: \8 [ - (if (= value "VARIES")
* q. x1 z! R j+ ? - (progn
3 E+ R9 g T" S2 z0 W3 e' y* j - (set_tile "eb_thickness" "Varies")7 b, ~ o+ d# ^" ?& T5 R# Z/ J, A; I
- (setq ethickness nil)
2 U& ?1 S. k5 L/ L - )' m J7 s7 k, J7 Y+ J: M
- (progn. j* S& L* d B+ `
- (setq ethickness (distof value))
1 P6 i* V/ }6 T5 m. I - (set_tile "eb_thickness" (rtos ethickness))
0 G: j8 o% V) b- p) u - ethickness
# M& `+ U& s7 X& | - )
) n+ W; y' q+ `* Y6 f: f, t- J! _ - )
- t; q/ D' t- W2 k - )
- x9 [ B5 n* V# e- n - (progn
) K& b- k2 Y0 A; \2 L - (set_tile "error" "Invalid thickness.")* @. u( S! [1 d9 J" i+ y' {
- nil! b- p6 E' M5 A4 @3 h: h
- )- k; _' m" O" V. H$ k" i9 j- e- ^
- )- a. [4 A0 z0 D; \$ o7 T5 U
- )1 Y$ |! _- e) m8 a, p
- ;;2 \0 {0 A, N5 y1 w+ C( u$ H) J
- ;; This function make a list called laynmlst which consists of all the layer
5 v* f9 ~8 v/ f) c3 a3 q - ;; names in the drawing. It also creates a list called longlist which
) r5 B6 Z% X% L2 w6 j - ;; consists of strings which contain the layer name, color, linetype, etc.
* U) h% b" O3 i: W( J+ o$ D" f3 V - ;; Longlist is later mapped into the layer listbox. Both are ordered the # U* A1 T. x; v- }; h0 T' E
- ;; same.* L, H2 I/ m5 M( s
- ;;9 i2 H% w. N/ o" t
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
6 K8 L0 V: A# `# j1 O1 {9 c - xdlist vpldata sortlist name templist bit-70- e( K, N5 K N" @+ E+ e! ^
- )
1 F, Z" E9 A6 v7 |% E* y - (if (= (setq tilemode (getvar "tilemode")) 0)6 w7 a8 D3 b7 s0 j {' w4 u$ |$ [( ]
- (progn: |! Y( C1 _5 M5 X! l/ g% \" ~/ W: F
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")5 l3 }- z4 E) |$ b* b
- (cons 69 (getvar "CVPORT"))5 H. Y: s+ U9 _. Z: {# J7 ]4 z
- ): F( j$ J# F/ D4 ^( i* W
- ): }7 K7 g4 \7 y. ~2 q$ R8 D1 G
- )
/ r! Z, V9 {4 j# X; P, s1 c - (setq cvpname (ssname ss 0))
9 j& Q. W4 o0 j C; ]% A - (setq xdlist (assoc -3 (entget cvpname '("acad"))))0 f( @) g( e! ~/ [( M5 m3 p" g( f' L
- (setq vpldata (cdadr xdlist)); F* |) }$ @) c1 A
- )
. V9 y: a1 B, ~) E5 Q/ g - )
`3 x3 l( b% @7 O$ I a - (setq sortlist nil)
' A0 z( ~. V" E - (setq templist (tblnext "LAYER" T)): m8 N: @) V P9 X9 f
- (while templist
! |5 y% Y# l5 }# { - (setq name (cdr (assoc 2 templist)))5 M& y" u- Y1 \4 c: ^
- (setq sortlist (cons name sortlist)) X9 b) y* ]6 q0 ^$ X3 p6 n$ \. v
- (setq templist (tblnext "LAYER"))8 U8 k9 Z& u5 S) w6 S4 R# Z
- )
( j- d, O1 G) u0 [ - (if (>= (getvar "maxsort") (length sortlist))0 r8 e. F* q/ X g1 K/ A" ^
- (setq sortlist (acad_strlsort sortlist))
2 a1 D* X* J: Q& I - (setq sortlist (reverse sortlist))+ e! L: [" O6 {# Z, Y, l& k' |8 E; X) V8 b
- )/ R: v6 a. x$ Y6 a" Z7 I
- (setq laynmlst sortlist), J9 s3 i6 w! q8 B. p
- (setq longlist nil)
; |0 @0 h7 j7 C. p% ~. c% ? - (setq layname (car sortlist))2 Q1 V8 z3 Q! {8 K. V" |
- (while layname
: u% ^; A: a! E2 h - (setq laylist (tblsearch "LAYER" layname)). N& r) Q7 {2 x# B
- (setq color (cdr (assoc 62 laylist))); _: X/ g! d3 s* f
- (if (minusp color)1 B6 {1 @' w& a2 k- L% z7 m
- (setq onoff ".")" h$ z. Z/ g! ^' @ L5 U3 a
- (setq onoff "On")
. M1 |! G% G3 p1 C, n - )+ m6 ]! D3 Z& {) t9 _2 K$ |9 |& G/ t1 Y
- (setq color (abs color))) h* ]: O, w& B, y6 P4 e I
- (setq colname (colorname color))
- H* j; W1 d! A0 j5 t. o/ `% P2 c3 Z - (setq bit-70 (cdr (assoc 70 laylist)))
+ o3 P1 e* l6 Q* b - (if (= (logand bit-70 1) 1)
3 I; L+ | h, h1 X! S2 V- H' c/ S - (setq frozth "F" fchk laylist)# x9 C1 f6 j8 x8 W: x. {9 K& b
- (setq frozth "."): m. Y' ~% c k, q* w; _
- )
) _9 o# x* B$ t/ g - (if (= (logand bit-70 2) 2)% D9 h" ^3 B6 V+ h
- (setq vpn "N")
( @( q: f/ O) i- H6 c: ` - (setq vpn ".")
# \1 g P; i# f! l9 E/ z - )
V) J( Q6 I+ x; u6 q - (if (= (logand bit-70 4) 4)
0 ^8 E; P1 V3 y7 A; } - (setq lock "L")8 @# [) \$ m5 \- l2 d- |5 N
- (setq lock ".")
, G$ u, l) p0 x* L, b - )
- A7 e6 {$ F5 L5 F" S* |1 c; C2 t - (setq linetype (cdr (assoc 6 laylist)))9 P- G) \1 d1 }
- (setq layname (substr layname 1 31))) W) z" ^0 B! e% |- x/ D
- (if (= tilemode 0)! S0 J0 t( p6 p; Y; R, n A8 o7 G
- (progn
/ ]. ^! Z% X9 W" I6 _, N/ q, s - (if (member (cons 1003 layname) vpldata)
' y4 [5 Q4 J9 u$ ^ - (setq vpf "C")
0 g9 A2 m! D. {; q - (setq vpf ".")
- z2 [+ r& C$ X! C* Z - )" {0 `2 W4 m( `
- )% D( w8 ]- q% a/ p; ?
- (setq vpf ".")" ~) e. H# _5 X/ s1 K: U
- )
, ~5 _% x2 e& w* P - (setq ltabstr (strcat layname "\t"
B1 { w9 v! W" |- o! k2 z - onoff "\t"2 z7 G& z, W: W& a
- frozth "\t"
( O; ?4 O2 j+ ]0 w! T& F, q - lock "\t" u; E, o) w& \! f
- vpf "\t"
n! g( x" s6 I0 a* m, l - vpn "\t"
$ m! Z0 O/ C$ Z/ M - colname "\t"7 \7 t ^) w9 K! i" ?
- linetype9 j& Y$ r+ F% [1 f" l3 D+ }
- )# J8 {1 h; \ D+ D' H
- )
, E5 ~% Z% P% u6 s- d5 ` - (setq longlist (append longlist (list ltabstr)))0 k- I: M9 U0 c6 O/ r& t3 B
- (setq sortlist (cdr sortlist))
: S0 E+ H7 d/ F# Q' }" B8 Q. U - (setq layname (car sortlist))8 D! ?( C8 `5 [( j4 `% E! B
- )
6 q$ H0 O8 s2 q5 ] - )9 w y$ c* R% W. @- B% b7 a# i0 e
- ;;
f, Q. q& Q) `) j2 O - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
$ {$ p* ~. Y, m5 _0 _7 E; P - ;; linetype names read from the symbol table. Mdashlist is list consisting
M* k* ]9 o. ]. `9 F - ;; of lists which define the linetype pattern - numbers that indicate dots, / W7 F8 v7 ]$ H
- ;; dashes, and spaces taken from group code 49. The list corresponds to the 9 }* d, O! z5 n" r9 i4 H
- ;; order of names in ltnmlst.- A% T y. o( l, L H
- ;;; M) u' n3 U* |3 Z4 ?- G$ b
- (defun makeltlists (/ ltlist ltname)
+ V9 L5 I7 D: E! E. |7 o" J$ j - (setq mdashlist nil)
g8 `7 K/ q$ ]' p) m - (setq ltlist (tblnext "LTYPE" T))
; h0 }2 g% N# U# r: N - (setq ltname (cdr (assoc 2 ltlist)))' ?2 Z7 f0 ?& J! Y4 `1 h7 J& R
- (setq ltnmlst (list ltname))' E& K/ v; O& j; j8 s9 \' o
- 2 Q* h* b0 w9 Y0 }" H6 b9 c
- (if (= ltname "CONTINUOUS")) `5 d. p4 A' J, Z6 c, Q
- (setq mdashlist (list "CONT"))8 Q1 ~2 r# T [2 Q% @
- (setq mdashlist % I2 {/ a6 _* @; i Q
- (append mdashlist (list (add-mdash ltlist)))
& C) D2 b/ P8 F% B$ L+ d8 R* v - )
# p7 L0 I. l6 \% ^: o# \0 _ - )
/ g5 _" G# a. R9 r2 c - (while (setq ltlist (tblnext "LTYPE"))/ J9 c% ?8 r! g, ?
- (setq ltname (cdr (assoc 2 ltlist)))
$ W1 n' b& T1 Y/ m% ` - (setq ltnmlst (append ltnmlst (list ltname)))
I5 T; d4 P7 v/ x: F - (setq mdashlist # s& q2 r( |% {6 c6 l! ]: n
- (append mdashlist (list (add-mdash ltlist)))
7 \6 _/ L) I5 ]) ` - )
1 M1 M0 M( a" Q* @ - )
6 ?: y" d9 r0 s& [& l# g& A - (setq ltnmlst (cons "BYBLOCK" ltnmlst))8 O, E r. v6 ^8 C6 c' j: o. h
- (setq mdashlist (cons nil mdashlist))
+ y, {! T: P$ S- [1 D' D9 P - (setq ltnmlst (cons "BYLAYER" ltnmlst)): Z$ c* K5 f" `& x0 f1 L7 _" K" Z
- (setq mdashlist (cons nil mdashlist))( Y9 t# @! ^3 _/ g: b+ a- e
- )
2 W) ?# P; D8 C0 x- j/ `7 X - ;;
( E# ^3 K9 e5 v% ~3 { - ;; Get all the group code 49 values for a linetype and put them in a list 6 F/ U# n" x4 L$ B, q5 ?2 q7 K/ W; A
- ;; (pen-up, pen-down info)" m5 G ^$ Q, ]5 ? ]" E
- ;;: Q6 e: t" |4 i
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
# h' T; }1 r5 k# C8 w& i - (setq dashlist nil)
% `" d) t' [( r( X6 e F& C, Y2 T+ J - (while (setq assoclist (car ltlist1)), M* Y, ]3 ~2 K ^: }3 l* t
- (if (= (car assoclist) 49)
) L4 }+ R6 k V/ q6 j - (progn5 t0 `( g, s3 x, }; d9 K% V
- (setq dashsize (cdr assoclist))2 @0 L4 {- A4 a* Y3 s0 Y! d6 Z
- (setq dashlist (cons dashsize dashlist)); D) W- w. T/ S5 [* t7 M1 P
- )
+ n7 X) }/ V) y4 q, u. y# J - )' y! J, Y$ I# Y! J1 l6 U' R
- (setq ltlist1 (cdr ltlist1))
; k4 ]$ h+ }) ~6 t) ^; j j - ) X8 F! p7 z! g" F" x% A
- (setq dashlist (reverse dashlist))
) B" d& k; i" ^ j; G% g- M9 A - )7 z5 k" c& N2 O5 m4 G
- ;;- \: A0 @5 ]) P+ ]- L- q: g
- ;; Color a tile, draw linetype, and draw a border around it
6 s! s# ^6 y3 @) f: J% A7 \5 I3 e - ;;
; H" s5 O' y" Z0 d% ~ - (defun col_tile (tile color patlist / x y)
9 Q: g) s$ x3 F - (setq x (dimx_tile tile))0 y- n. |5 ?# [& s1 y: M8 ~, L
- (setq y (dimy_tile tile))
$ R4 y+ {9 z: B5 U( Z6 q( ] - (start_image tile)
) V! T* N8 k, C& G* }2 Q5 J2 b - (fill_image 0 0 x y color)& k M- I9 T& |
- (if (= color 7)
6 `3 g0 F7 _: o2 E - (progn
4 G- O# f# ]" T6 n; T, z - (if patlist (drawpattern x (/ y 2) patlist 0))
9 x& D2 F3 Y5 O5 {; h - (tile_rect 0 0 x y 0)& ^# I" z6 j: X% \ s$ A' h
- )
1 E9 L* a7 k! e# t( q. z - (progn1 _3 l+ e; A/ G
- (if patlist (drawpattern x (/ y 2) patlist 7))
4 b* l7 z- F, I1 C! a" M - (tile_rect 0 0 x y 7)
) ?; V; q, u( h/ V) {, j' q& N( A - )
* s/ O0 M3 A! A9 F( B8 x7 i. F6 F - )
% }/ A! ~5 C0 ^0 p - (end_image)$ ?7 E# p5 @/ F2 R
- )
$ ~/ E) e1 z' S/ S( S - ;;9 O$ \* e2 m% Y; R8 P
- ;; Draw a border around a tile B- b8 C6 T1 s# L& {/ \5 `$ I
- ;;- C) q4 N4 `( u- h8 ?9 i
- (defun tile_rect (x1 y1 x2 y2 color)
* r0 @4 \$ U: y P+ T - (setq x2 (- x2 1))' ~) e/ z2 v( W: c
- (setq y2 (- y2 1))
7 a% c& I& N4 T1 r( {* I - (vector_image x1 y1 x2 y1 color): M' i# V; n2 R# L# V( }
- (vector_image x2 y1 x2 y2 color)
. p. K+ I0 B6 \3 b' |- k# u - (vector_image x2 y2 x1 y2 color)
0 F+ m9 k0 @( ]- y - (vector_image x1 y2 x1 y1 color)
0 V# {% c+ | R& @ - )
% K/ i7 W( B6 [5 Z% I) J - ;;
( ?; o4 P/ y+ R - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image ) |* t( r) R- \! O
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
6 X! J' W6 D3 J/ j& T/ d$ _+ A - ;; list of numbers that define the linetype, and color is the color of the % h- O9 z4 I0 Q* q- g9 L0 H
- ;; tile., X- N4 t L+ f) D* C- Z
- ;;' W; z, { M) P( M1 X
- (defun drawpattern (boxlength y2 pattern color / x1 x2( R6 d* k) A) e
- patlist dash)
" u4 y1 g! o$ l - (setq x1 0 x2 0)1 D0 n4 Y- i: w8 a
- (setq patlist pattern)4 M4 K; J+ d2 R; B1 B. I" H" a
- (if (= patlist "CONT")% Y6 i9 {4 v3 l4 P+ h0 p% U
- (progn 8 J9 a+ C9 h! O6 _( \& W* H. R
- (setq dash boxlength)4 j6 v0 p/ z! Q. I! B
- (vi)
( t1 Y0 n! @. y& p - (setq x1 boxlength)) M+ d# [6 e+ U8 q8 x! \
- )
* e+ B& B, n: [, }5 X: F - )0 O0 ]; f- m, ~' i1 w2 Y. p$ l* {
- (while (< x1 boxlength)( b% J5 H4 j2 n# K
- (if (setq dash (car patlist))
' c% r% {" Y& K1 B - (progn
. W- _: ]& Y: C: w( _/ o' r - (setq dash (fix (* 30 dash)))
9 O7 ?4 u# a. k" ]% v - (cond
$ ?. p2 ~# M7 d0 ] i/ \3 V F4 D - ((= dash 0) ! F9 S* F M1 z! O
- (setq dash 1) ) c: d$ h. y& n/ L2 W/ n9 j' D2 ~
- (vi)8 }, E% _* u* u
- )2 G+ c! I8 v% l3 B# O
- ((> dash 0)
! y& ?/ o9 n" Q - (vi)
" F" T2 _# R* }- H* o9 I0 ? - )
1 ?2 z+ d4 i" \ X - (T ' \, L$ b4 l6 I* r
- (if (< (abs dash) 2) (setq dash 2))* y$ i0 q7 x2 g8 f8 L* _4 y
- (setq x2 (+ x2 (abs dash)))( ?* q5 ^3 _' {" Y' `8 x, S
- )5 i% d1 o( Y5 c. W, g
- )
) s- X% ^- H) T% l% e& n - (setq patlist (cdr patlist))
9 ~& z: W* F; ? V - (setq x1 x2)
* ] N, K, T/ \8 J. C+ G - )1 i, _- i4 q3 ]- s: {2 I
- (setq patlist pattern)
- p1 A% H# i2 w4 J( L - )- j/ f$ @5 ^; F7 M. ?1 f! S
- )
3 Y0 ?/ ]5 E' ^: G0 p6 r' s - )
& k3 d- a, b7 i% y: s* I - ;;9 u0 ?$ G4 n9 \3 S
- ;; Draw a dash or dot in image tile0 M& a4 ^4 j t0 ^. h$ o6 O+ Q
- ;;
: a9 {; n: {: n) G6 X9 G! C3 C - (defun vi ()
8 x( M! N/ I& K: F: U - (setq x2 (+ x2 dash))
1 z% d s, P0 {+ F% X9 h* V - (vector_image x1 y2 x2 y2 color)1 \- Q o" |4 S
- )% O0 i8 g2 }0 B1 K6 _
- ;;1 w6 f/ `- E+ ~) T8 ~
- ;; This function takes a selection and returns a list of the color, linetype, 8 M3 [$ u7 W6 [; H& ^) d- h
- ;; layer, and thickness properties that are common to every entities in the ?: H( G5 s" ^, \. ]
- ;; selection set - (color linetype layer thickness). If all entities do not " K* ?' A) E( @; g: m7 Y f9 ?. ]4 H
- ;; share the same property value it returns "Varies" in place of the 6 \2 ^) Y& {; y2 G; I
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)% p+ Z+ c( K: {
- ;;' z! d& t0 l0 t6 L
- (defun getprops (selset / sslen elist color ltype layer& m1 T* \& M! a
- thickness go chk-col chk-lt chk-lay chk-th ctr)
3 e* q- v! s4 U# D - (setq sslen (sslength selset))
# D, d4 y Z( Z! i: k+ J U: M - (setq elist (entget (ssname selset 0)))
. m* n, c# t& C; J W: I& O - (setq color (cdr (assoc 62 elist)))
) y# s* h o0 K# b6 V9 x8 F. s; L - (if (not color) (setq color 256))# P. t/ \; j4 P! U) `/ s2 e" S
- (setq ltype (cdr (assoc 6 elist)))* _% R/ ]9 r- m5 |' e# r
- (if (not ltype) (setq ltype "BYLAYER"))
) j. c# j+ u7 ~6 d8 g* ^* A - (setq layer (cdr (assoc 8 elist)))
, f3 z) _2 F; q+ I: a+ q - (setq thickness (cdr (assoc 39 elist)))( ?( i! T: D4 q- a1 D/ I$ u+ q
- (if (not thickness) (setq thickness 0))
! ?, u m3 e0 ?- P8 e P - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)8 C, a/ T; w+ {7 M5 ~2 \) |! E
% A j6 ]4 b, O+ p/ _- ;; Page through the selection set. When a property, E; M; T# J) b, C8 Z
- ;; does not match, stop checking for that property.
9 w# o0 p7 b( p. R1 } - ;; If all properties vary, stop paging.* K) r# t& Q+ A" D
- 7 ^) G4 S- X) k# o( ?, y" }
- (while (and (> sslen ctr) go)
9 O0 r7 E1 ~0 |0 i* ? - (setq elist (entget (setq en (ssname selset ctr))))# X: z Y4 c8 w
- (if chk-col (match-col))
3 J" `" v. A) x. ~" }, e - (if chk-lt (match-lt))
/ Y# d& \1 a% I2 @+ O) U( m& ] - (if chk-lay (match-lay))
" u6 U3 M/ d4 i* Z) q5 ?* ~( f - (if chk-th (match-th))
9 t% J) p& F" j" F& f - (setq ctr (1+ ctr))% b$ x3 j8 F* |! g
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
S; P, i/ C; v- D2 v5 ]3 L& C. a" ]6 M - (setq go nil)% x9 h/ W' Z/ \* O# V
- )
, \! p: m+ C7 ^+ ]# O; U - )7 L# C1 e3 `9 ]1 `1 w- W& a1 A
- (list color ltype layer thickness)
( A* S/ t* S& r( L - )( K# c* F# f k( k) [, ~
- - h% Y( j0 Y5 I8 J/ x4 w! f" ?9 N
- (defun match-col (/ ncolor)1 K8 w! L9 h4 b
- (setq ncolor (cdr (assoc 62 elist)))
. J; m/ l) u7 ^) o0 x2 x' s - (if (not ncolor) (setq ncolor 256))& M% m, {- M; k: \
- (if (/= color ncolor), T1 y( g8 c2 T2 A" o( I
- (progn
' z/ U, J: G9 P - (setq chk-col nil)$ V5 s4 H: f. M* \) c
- (setq color nil)
* v3 X. Q x4 \9 i - )' ^, A" ], R) N6 k! o0 |; _
- )
# Q4 v( [# v1 t - )$ x# E; [/ `) K6 s$ E
- 9 w8 u/ }3 Z3 e8 ]0 ]8 c" d
- (defun match-lt (/ nltype)
, t1 |0 j) i$ {+ f7 n - (setq nltype (cdr (assoc 6 elist)))! n; h0 ?+ L8 l5 u0 l
- (if (not nltype) (setq nltype "BYLAYER"))6 f- B3 @# L+ f7 g! Z
- (if (/= ltype nltype)) K4 k: [# ~% @# E4 i" j
- (progn$ s) U# n) a0 T% ^
- (setq chk-lt nil)% X) S! ]1 a5 s" J
- (setq ltype "Varies")
+ @" _0 X0 e+ Q, F$ t# ?. ^1 T - )& n E4 V- G% C$ A$ o5 ?
- )) D. s8 \# n; V; H$ O2 y6 \- n1 Y
- )( {1 [4 G2 ]4 n* _0 b
; l# S$ b; k8 d' X+ u! N7 c- (defun match-lay (/ nlayer)& a8 D) I6 k/ ?5 N l" }
- (setq nlayer (cdr (assoc 8 elist)))
+ E! r6 a3 h8 C, A - (if (/= layer nlayer)" z$ x9 l: [6 d* O2 _2 O# l4 p
- (progn6 W' R9 D# R% ?3 ^' K/ Y6 D
- (setq chk-lay nil)/ N' {3 \7 Z9 ~3 r! x* x1 ]
- (setq layer "Varies")
5 }, Q. Z+ l/ a; Q# E7 }' A - )
1 C# b% q5 i, C+ n) @# S - )" e; S7 |4 ^6 x5 Q2 Z: m
- )! u1 v8 T' _# F! z/ r$ m( H0 {3 A7 Q
" K2 m' }. j% p9 H6 Z A# [- (defun match-th (/ nthickness)4 @" b3 g# o1 p
- (setq nthickness (cdr (assoc 39 elist)))
}1 j- v4 \! p, X - (if (not nthickness) (setq nthickness 0))6 e8 N* v2 R4 b+ w" G1 q! b
- (if (/= thickness nthickness)
5 Y' L5 Z# L2 X, R3 L# a- f - (progn& C: w/ |+ B9 U* r8 q; U1 s9 S
- (setq chk-th nil)
( E/ n+ s0 h% J$ V$ ] - (setq thickness "Varies")2 ^- m: i4 o4 ~/ J9 `0 s
- )
}7 w8 J* G1 w: M E - )* x2 s2 O; m1 p, F0 W
- )5 s/ M W' M# A1 t
- + T$ l2 z3 j! r% X, \
- ;;7 o: d$ h% r: {5 @" W( Q3 `
- ;; If an item is a member of the list, then return its index number, else
$ U. g. C K# F) y3 P - ;; return nil.
2 L. ^3 p$ F$ U8 U0 k6 y5 _- j - ;;1 {4 ~0 N" G- ]. O0 W
- (defun getindex (item itemlist / m n)% @0 m- \7 Z9 S0 Q- U
- (setq n (length itemlist))
8 i! q: J9 F3 F+ E1 W T, l - (if (> (setq m (length (member item itemlist))) 0)0 ^$ ^& N/ Y H& \+ g, c# S# T
- (- n m)2 O5 |# L+ i' S2 l, M. a
- nil: e" T; e6 J! y# \% Q2 z2 Z. }
- )
0 E! W& f% i# X- K - )
9 M K3 z4 N$ e" l* j) \. Z - ;;
2 U' \5 S8 r r3 V - ;; This function is called if the linetype is set "BYLAYER". It finds the 8 [- R$ x2 X- J
- ;; ltype of the layer so it can be displayed beside the linetype button.) u2 y H7 k9 s# v3 c. `8 C; g
- ;;
% r p9 K' k) n0 d8 z - (defun bylayer_lt (/ layname layinfo ltype): x; E! L% u% B/ O1 `6 D% o
- (if lay-idx
1 R1 E( b% g+ \8 P% ^2 U& @ - (progn
$ Z( A: i+ u% B) ?& T - (setq layname (nth lay-idx laynmlst))3 f7 m7 w% D" G- u8 g* U3 {
- (setq layinfo (tblsearch "layer" layname))
3 y. T$ R; H/ @1 a - (setq ltype (cdr (assoc 6 layinfo)))
* J. R" d% a3 O7 V" p - (strcat "BYLAYER (" ltype ")")
5 E2 \5 M1 u1 ?- X2 O - )& ~5 _$ b% o0 H% ^; S
- "BYLAYER") X8 F6 \+ t/ ?2 n- R7 j2 h
- ), w7 s! N/ s; J Q9 J6 H9 q9 R# S
- )' C) @2 a* @- l, F# l
- ;;3 M4 Q1 i* i& T3 u& N& d W4 p
- ;; This function is called if the color is set "BYLAYER". It finds the 9 o$ U* p! X1 h
- ;; color of the layer so it can be displayed beside the color button.8 o$ U0 r; n! c0 y$ m% s
- ;;+ |& U4 g: g2 t( d# v8 \
- (defun bylayer_col (/ layname layinfo color)$ s3 h" B C/ h- W: F8 m+ F, r
- (if lay-idx
/ |: ?6 N8 W" C1 I) q+ J& }2 U! { - (progn
: K; A! q1 }3 Z% _' s - (setq layname (nth lay-idx laynmlst)); N% w4 [$ c) E0 k
- (setq layinfo (tblsearch "layer" layname))
$ }$ ]: s( {2 b, ]' d7 K2 p8 h) [ - (setq color (abs (cdr (assoc 62 layinfo))))& \9 x* q3 W% W/ {
- (setq cn color)/ T, c; k2 D) b2 n# }
- (strcat "BYLAYER (" (colorname color) ")")
5 ?1 k" z+ s% Z d# e* i - ), l1 J% F" ~+ l _. f/ y9 @ d
- (progn% I: `6 i0 k& D; ?" J$ G
- (setq cn 0)
: K+ I2 R" ]7 W! a - "BYLAYER"
$ s% j. [# U z& v+ e% B4 V - )* j# o6 \+ I4 [
- )
4 l) Y) K- Y4 g" u - )" h6 c$ h+ \ h* _; y/ u7 \. Z
- ;;6 P, [' t( @. N, m! D
- ;; If there is no error message, then close the dialogue; h1 w3 Y. o% [% E" `7 F$ `
- ;;) [$ t' s* W1 C+ S# z4 R
- ;; If there is an error message, then set focus to the tile v5 ?; \0 K) z9 [9 n" F
- ;; that's associated with the error message.
4 a% D& }$ t; v! h - ;;
G$ F9 m0 s+ @! F) ^; ?. D - (defun test-ok ( / errtile)5 y8 n6 z! n, P& R7 d' k( T
- (setq errtile (get_tile "error"))9 t- K1 o; b0 w) c$ D) \5 J8 ]* G
- (cond( {3 H J A2 ^2 K
- ( (= errtile ""), s" e" S) Z, i
- (done_dialog 1))
2 i4 S3 d8 w. h+ D) k! y7 | - ( (= errtile "Invalid thickness.")
- j5 n. s8 ~1 b6 |7 B - (mode_tile "eb_thickness" 2))7 L# I/ f# s/ K
- )( K8 T2 ^$ u4 _9 M# V
- ): T, ?5 K0 H+ P. G
- ;;7 C- {! ~* F: B8 F5 G0 I
- ;; A color function used by getlayer.
' ^" B7 {+ J$ D - ;;
! {$ k( f/ j& x* \ - (defun colorname (colnum)
# X/ @2 D% n1 {% ~5 \% h - (setq cn (abs colnum))
! O1 z3 t2 j y$ R - (cond ((= cn 1) "red")
- J7 r" a- D: {, K - ((= cn 2) "yellow")0 T0 }+ y" r4 k8 |) m
- ((= cn 3) "green")3 j% t/ h1 P6 H0 l# m! D
- ((= cn 4) "cyan")5 W- A0 f9 M0 k4 P$ C c: F
- ((= cn 5) "blue")
s6 N4 n6 q! a8 D. I - ((= cn 6) "magenta")
5 W0 m! F6 @* C" @; o. V - ((= cn 7) "white")! |, P E. }5 W# A ]) C
- (T (itoa cn))
4 X S) G( g1 i y6 [ Z3 `5 X - )
4 h! L* @ p* L" k: Y! C. q/ }5 A- G - )
4 i9 {. r4 `0 b7 A- j* r - " x( `- W$ K- i* W* B
- ;;; Construct layer and ltype lists and initialize all
6 j7 G" i( ~' c3 O3 S9 e7 \$ _( y+ b" u - ;;; program variables:9 m: I3 q# M4 t+ o/ O3 d
- : ? g9 a4 S: J& w, `( t0 T* ]/ f! r( N
- (makelaylists) ; layer list - laynmlst
, V" h8 t& x# n2 Y - (makeltlists) ; linetype lists - ltnmlst, mdashlist, X) F% t5 }7 G
- ;; Find the property values of the selection set.
& g! M% }0 {* f6 |' j8 Z3 c4 v+ H, m - ;; (getprops ss) returns a list of properties from% G: Z/ `3 O( {* O0 ]6 K
- ;; a selection set - (color ltype layer thickness).$ F4 z8 ?, k- @# i- h( x3 O
- (setq proplist (getprops ss))2 ]' y0 v3 s) z9 E4 ?
- (setq ecolor (car proplist))" B7 T1 d* }0 c
- (setq eltype (cadr proplist))6 e! O6 v. t* J, p
- (setq elayer (caddr proplist))6 ?: ^; K; p8 o9 g# P* i9 C0 ~) R+ j
- (setq ethickness (cadddr proplist))8 L$ a9 @; q8 t6 L
- ;; Find index of linetype, and layer lists" C9 w9 s, Y% n
- (cond/ S' O5 y: M6 ^" G8 z" }
- ((= eltype "Varies") (setq lt-idx nil))
8 k8 e5 v+ ?+ u1 e# D5 k/ r# @5 ~ - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
, d9 o& j( B- \1 O) R - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst))). {! D; f% I& T9 D8 F- g
- (T (setq lt-idx (getindex eltype ltnmlst)))
7 O$ C2 M8 L8 O4 o0 g6 X - )
8 t. W, ]( }3 l, C6 n - (if (= elayer "Varies")
O4 l+ A- D# c# Y7 l) s' E - (setq lay-idx nil)
0 J4 c* r0 N, } - (setq lay-idx (getindex elayer laynmlst))
1 ]% L2 E( Y* n4 S: G$ n0 v - )
. Y" T$ `: u0 T( X8 W, P! a! B - (if (= ethickness "Varies")
% C& I: }9 n2 ?- W4 @" A - (setq ethickness nil)1 G9 z1 E; k3 ?0 s) C
- )$ q, T( S4 k* I, O% ?8 T4 s
- & U# M4 Z( Z. v2 w( F0 U
- ) ; end (ddchprop_init)# E# o$ @0 R$ ~' }
5 }) i: @' d# @- ;;; (ddchprop_select)- O& m$ u/ C- J1 B0 K1 \
- ;;;
0 [9 v/ s! m, j0 p - ;;; Aquires selection set for DDCHPROP, in one of three ways:" Z& |9 S; J, g/ c S5 o* }+ X
- ;;;( d- U s; @/ p2 E: R
- ;;; 1 - Autoselected.
; I: j# y5 ?4 B8 i8 c' b - ;;; 2 - Prompted for.
y x# U6 m: ^1 T$ e. ` - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
% X% z3 |4 V1 y( u+ h0 _ - ;;;
$ O! l4 ?( U4 i6 c - ;;; The (ddchprop_select) function also sets the value of the$ u+ M7 p2 X7 V
- ;;; global symbol AI_SELTYPE to one of the above three values to* L, ?$ b; g4 p# O o
- ;;; indicate the method thru which the entity was aquired." S, P. h u# w3 O3 _7 n
- 9 o7 i$ i5 U% `0 u' i
- % W7 t) N) Q$ g. ?7 D7 D
- (defun ddchprop_select ()
0 }' Z3 p; ^6 G) L; E6 o - (cond3 q% o* B" R$ p( N& E4 R* c. P# \( _( H
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to V/ D. ^6 [& R2 |8 O* s
- (cond ; (ddchprop) as argument* H: U/ g+ a9 G6 l5 X0 I
- ( (not (zerop (sslength ss))) ; If not empty, then" N! v7 c0 b4 i5 E$ k
- (setq ai_seltype 3) ; then return pickset.
1 b- [' m. N' o. _* k - (ai_return ss))))
* A1 n$ v! c2 b3 K
! y4 N% w7 E3 V, e- ( (ai_aselect)) ; Use current selection
- w+ V: M! U0 [8 x* i/ u - ; set or prompt for objects9 L6 i$ [$ z( z' N* r7 Y
% V9 R+ C0 q$ r7 `9 { |- (t (princ "\nNothing selected.")
" ^) p1 M( l7 O7 G6 ` t - (ai_return nil))
9 c2 }% [4 V0 `9 d - )! T! g3 H( s h& N
- )
2 I( z1 l# {( V7 I: P( ~ - 3 X% T% g) e4 q: B3 x4 M
- ;;; Define command function.
% E4 X2 d: S& i$ F+ I- a
3 y% T' T/ t* n- (defun C:CH ()8 e) _( ]: `& }4 t+ Y* A
- (ddchprop nil)
/ G E& y) c. d+ W - (princ)
1 ~' ]! V0 b& i - )
- I& w$ F6 Y/ Y* H& [# v Y
4 o4 F! y6 B ?/ B. \0 {# q- 1 A! V+ U8 f4 P: e
- ;;; Main program function - callable as a subroutine.
: W, Y. [$ U1 V$ O - ;;;& I! Q3 h3 I( i# J$ l
- ;;; (ddchprop <pickset> )
) ]+ m3 N( k$ Z3 g3 | - ;;;
" I1 b' r! X# M" k; w - ;;; <pickset> is the selection set of objects to be changed.
3 I5 c& _7 m+ `2 z: Z c! } - ;;;
* v- w& V1 g; x# j$ S, c - ;;; If <pickset> is nil, then the current selection set is
- Z1 j" u5 B% ? - ;;; aquired, if one exists. Otherwise, the user is prompted+ Z5 ]* l" e) H7 h, |2 Q( P+ i
- ;;; to select the objects to be changed." s8 z( q, o" \0 V
- ;;;7 ` c7 x8 B" o* \4 a6 J$ x
- ;;; Before (ddchprop) can be called as a subroutine, it must( ^" D8 T8 M0 e \. Q
- ;;; be loaded first. It is up to the calling application to/ P% V5 g) @* _& v+ r& D
- ;;; first determine this, and load it if necessary.
8 p; @9 ~: ?% M$ W3 T I
0 t0 v9 j1 u) B/ g- (defun ddchprop (ss /8 B# |% @. J' ]8 U
7 n* e( T. X, r7 o. L z- add-mdash ecolor ltedit_act s
$ I, O. x2 B. y% Q, v - assoclist elayer ltidx selset
X/ W: _3 K ^- W - bit-70 elist ltlist set_col_tile) f, A6 K( o( o) H5 B) s- p
- boxlength eltype ltlist1% Z. ^- @7 x; h q% g( n8 x. h
- bylayer-lt en ltlist_act sortlist
/ P7 I( F3 }* {$ m; F1 X - bylayer_col ethickness ltname
% _. c" t. |# v9 B# a! O7 ^ - bylayer_lt fchk ltnmlst sslen# p$ ?8 t+ A$ ]$ x0 N$ s. d) a
- call_chp frozth ltvalue templist7 L" \" r$ y5 o9 Q2 c- w" s$ V
- chk-col getcolor ltype temp_color* V# I8 ?, o; X1 Q% I
- chk-lay getindex m test-ok6 T2 r1 M# Y( h- `% r/ M( n
- chk-lt getlayer makelaylists testidx1 T( Y2 i. t! {
- chk-th getltype makeltlists testlay
+ `% g8 S) i; N* k3 J5 H! e9 e$ H - cmd getprops match-col th-value
& Z) V5 x! I3 @$ w, f! D0 [ - cmdecho getthickness match-in thickness
/ a9 l, K. O0 m7 M - cn globals match-lay tile( k; R& F) G1 e$ P! A2 E
- cnum go match-lt tilemode; N2 Y: u( x" I, Y$ q
- col-idx index match-th tile_rect( P: b. V) v. A) E7 q
- colname item match_col vi B* Y" S4 C0 @; V! f
- colnum item1 mdashlist vpf+ M- F' C4 ^( P/ F: e
- color item2 n vpldata2 J# D# A! K! C' P( H& o$ {+ A
- colorname itemlist name vpn
# q0 `+ u+ B7 o$ ~2 q8 | - col_def lay-idx ncolor x4 U/ C% C6 r0 j; T* o" c7 k( C
- col_tile layedit_act nlayer x1
* Q2 _ d4 F( ]; h - ctr layer nltype x2
# t+ S. S; o) S! M - cvpname layinfo nthickness xdlist9 Q- C! q+ G) `& y2 ^( _
- dash laylist off y3 \1 V- n2 I# n% _
- dashdata laylist_act old-idx y1
9 U+ R. p/ d$ P - dashlist layname olderr y2
! r9 O& b# T% B/ | - dashsize laynmlst on undo_init
4 p" q2 R( B6 o) B t8 Y+ N; V - dcl_id layvalue onoff, L- c" k& A* A' F# i
- linetype patlist i- `, V; \! {, F
- ddchprop-err list1 pattern( ]7 a) s- X' z! v8 c# g( h* c
- longlist proplist
% b9 l' ~* d. x0 X3 ^/ a, H - lt-idx reset-lay
$ O- U9 T! a; B/ H! ^ - drawpattern ltabstr reset-lt
0 s9 o1 L% ? S - )( i) o! W, v) f* u- Y) A6 r
- 9 e2 N, {' l& [8 M$ S% S4 \, b
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
$ ]# m& n! o2 U4 `+ p# Z" d - old_error *error* ; save current error function
0 E# i: C+ Y% X, d5 g0 k - *error* ai_error ; new error function5 ]9 X/ G5 o1 s
- )
* u' \# E3 Y1 m3 A9 G; l5 G! `
" Y: P% l1 E, @; n- (setvar "cmdecho" 0)
9 q3 `! l# v3 a# Y* L# I D* E
% \- T9 N. K: m" h" i/ p- (cond
5 L- N8 J" D$ Y% {4 \ - ( (not (ai_notrans))) ; Not transparent?
4 v) j( e* U* p( p - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
' Z& W, P+ M( |: z6 a5 v- y' { - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?4 ` [" B$ M+ w% V
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?
! F0 v+ F1 g4 q( H% [ - " `0 V5 r; H2 r' S4 W
- (t (ai_undo_push)
" C. r/ ?% d$ m6 S6 e - (ddchprop_init) ; Everything's cool,
; ]- p4 P. P l2 f: W - (call_chp) ; so proceed!9 e- P. J' v" t* \
- (ai_undo_pop)
& ^( u) t3 Z9 e! t( B - )
! ~( O7 W% P, {8 e q - )
2 }4 b5 P5 e& ^: Q) Q -
" q( E2 b, }" N0 J6 n - (setq *error* old_error)
' x7 N$ }* z- F. t" k# l' V - (setvar "cmdecho" old_cmd)2 Y2 i& q& c) f
- (princ)
; U3 B6 ~% A0 u3 r6 b0 y - )% i/ d+ U" s; I1 {5 r- s
- $ l9 B0 y; y* m6 w# C% A' U- w
- ;;;----------------------------------------------------------------------------! A1 ]0 A2 s( @
, f# G' h/ a* O& A9 {, V3 W- (princ " DDCHPROP loaded."). w6 I, h/ n6 C E" G+ n- x
- (princ)! g/ C% T3 S4 u! h3 a d. w1 h$ h
* l& i0 s5 e+ X' b5 U- ;;;----------------------------------------------------------------------------
2 i1 l# p9 t( m - % f6 n: y2 _5 E3 r7 C- U' Y
- ;--------------------------------ddmodify.lsp----------------------------------1 F& Z- x$ K/ M3 v
- ; Next available MSG number is 111# u n; z: Z9 u! {- \3 U
- ; MODULE_ID DDMODIFY_LSP_
' K' F( J- K2 z# u& d3 U) U3 x! z - ;;;----------------------------------------------------------------------------* Q4 ~$ p9 ]( Z2 K
- ;;; DDMODIFY.LSP( A/ W- F7 l1 d2 b& V7 O! \
- ;;;" \- `0 ]0 b* q( {! ~. Y2 U1 l
- ;;; Copyright 1997 by Autodesk, Inc.
) m2 ?, \4 N& F: [, R3 a ]5 O - ;;;
; e* u" V; z" q( |* Z, o - ;;; Permission to use, copy, modify, and distribute this software% Y1 c5 v& u. U& K; l. p6 o. h
- ;;; for any purpose and without fee is hereby granted, provided6 Z$ }0 Y' q; h0 D. S# w
- ;;; that the above copyright notice appears in all copies and
# W/ ^5 l% g" x - ;;; that both that copyright notice and the limited warranty and
7 |" F& n) M9 M( k- f - ;;; restricted rights notice below appear in all supporting3 A8 f" r" v2 V/ l
- ;;; documentation.
) v( M8 G" @! f$ y - ;;;
8 w1 J7 u8 N% a/ F+ D# C% w - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
" H) {. Z/ ~- o" n/ B1 Z - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
! {- c7 }1 u, q9 e. @+ ` - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
, }( R2 }5 \2 m; q' w8 X+ ` - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE1 j/ _: g' K! K( x% U% `
- ;;; UNINTERRUPTED OR ERROR FREE.+ N7 y7 L! G% D
- ;;;
0 F+ F+ o& Q% |7 k. ? - ;;; Use, duplication, or disclosure by the U.S. Government is subject to# Y0 O' i" g% K! c: Q
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
6 i/ p! }0 H& \8 S! R4 X$ |3 E: P - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
. @# {7 w! N& \ - ;;; (Rights in Technical Data and Computer Software), as applicable.% K% a9 u' B$ C( b
- ;;;
4 i5 E4 P/ j( a) c, B - ;;;.1 i. t; q8 u6 O# g( K! M( t
- ;;;* y4 E1 j; d1 Z8 B! w
- ;;;----------------------------------------------------------------------------
2 @3 |( X5 J4 V0 f' b6 y' b8 d8 u7 L5 Z - ;;; DESCRIPTION
$ E1 }7 P8 b- W* \5 I - ;;;
) E4 U, Y V9 O; k4 L6 x7 s - ;;; This function allows the user to get a listing comparable to the LIST
5 F& }( o# E, u - ;;; command for most objects. In addition, most object fields in the
8 P {8 x$ ]5 k5 X' G" j - ;;; dialogue box are editable. Points can be specified dynamically by# `# j- X. `" j' u- V) U
- ;;; temporarily dismissing the dialogue box. Each object has a unique
# u$ n% h! c% {6 n7 C# `5 B - ;;; dialogue.' S) ~5 u; D6 G& w) v2 N& e
- ;;;6 e) J/ V- v4 \7 c
- ;;; Naming conventions
' X) M$ C# _+ {" H - ;;; Long function and widget names may use an underscore "_"
' t# E7 L0 H+ |) j - ;;; in their names to make them easier to read, long variable
. R |1 Z, B$ v* C& f. _/ C1 |- c5 z - ;;; names use a dash "-".2 p: x9 m1 P/ M2 A; B7 [7 t
- ;;;----------------------------------------------------------------------------4 n; c0 i7 N4 j9 I) j
- ;;;----------------------------------------------------------------------------; X. c* J; n# q4 l: E$ e4 l
- ;;; Prefixes in command and keyword strings:
8 i' O6 W% O& l5 l - ;;; "." specifies the built-in AutoCAD command in case it has been
$ M- c- A7 Y9 r- ^5 a5 w q( R - ;;; redefined.. {8 }6 V: x" |$ \; e3 d' ~% H
- ;;; "_" denotes an AutoCAD command or keyword in the native language6 l- F- s% x! x& M! ]9 W6 I
- ;;; version, English.3 [/ i2 ~4 H8 t- n# U
- ;;;----------------------------------------------------------------------------
% r6 e, V4 b3 n+ e j; y2 i T- M - ;;;
( _& K# {8 s8 ?9 y* E - ;;; Avoid (gc)s on load to improve load time.9 p! w7 {: r5 o) Y
- ;;;
! u8 h, N p( B0 h% p8 M n - (defun do_alloc (/ old_allod new_alloc)
6 ~* u4 a0 a: Z6 ? - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))' s8 z9 x' n- X( L* ^9 D
- (expand (1+ (/ 17000 new_alloc)))0 D; ?: Q8 F5 o
- (alloc old_alloc)
. P3 J0 L+ J% j' r; \ - )
! ~4 ?; z' s8 c0 R# x - (do_alloc)
+ y0 {& n& r- ?; y, h - (setq do_alloc nil)
: `% c$ Z& {5 U, P& Q4 m - & g* v4 L: I: A" [4 |6 h7 ?
- ;;;
: T$ t ~4 M2 @" c( b0 g - ;;;
# U# e% a! L3 w0 C5 T" R' M% W! y% f - ;;; ===========================================================================: o) d7 i" t, L' f4 R
- ;;; ===================== load-time error checking ============================
+ Y+ L* m' H. b! T! Z0 O) N
n$ L) p; \9 l9 u7 F- (defun ai_abort (app msg)
[4 P' K8 y7 a( l1 P# D* u! D - (defun *error* (s)
% M3 |% O9 W' e# f- c6 O; ] - (if old_error (setq *error* old_error)); {. s$ Y) { y5 B3 u. W
- (princ)6 n1 n% G, ]$ C) t1 `7 ^) M
- ) x; x) ] C9 c& W1 O6 u% ]/ A/ t5 i
- (if msg
. c K2 @# `- v ]/ K$ U* A - (alert (strcat " Application error: "7 g+ Y/ |! `# g1 O0 i& y0 w6 i5 [
- app! r# I% _/ e& f3 `8 D" f
- " \n\n "
2 u1 M9 S2 o) T6 w2 |) u A* [ - msg$ X2 T+ d; N2 n/ w1 Y o
- " \n"
4 F% ^. U+ f$ U5 m% h - ). q. a. i) W# I# c2 @/ I7 X2 N
- )
. U* J9 f( y- g" q+ E - )
# C! c$ Y6 p' w$ J4 m - (exit)
( w% Q+ c/ e6 y! E7 | R: R - )8 K0 F+ x3 t) ~& |
- ) r/ o) Y$ [* d# C
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
- M# K& u5 D+ H/ e0 k2 o. J! x - ;;; and then try to load it. If it can't be found or can't be
! N$ q' Q* Y# n' f- [ - ;;; loaded, then abort the loading of this file immediately. T u* t1 K3 n
- 0 ]5 Z; x( J x4 J# s( s
- (cond R: E" {) o+ g: b% }, x
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
& K8 C, D; {6 Y* v; _$ @ - * R o) `# f a$ [ @% Y7 I
- ( (not (findfile "ai_utils.lsp")) ; find it" Q" w' f Y3 Z$ h7 G
- (ai_abort "DDMODIFY"% y+ G5 e/ H0 r3 ~
- (strcat "Can't locate file AI_UTILS.LSP."8 y4 B8 d$ m' W! _1 @6 j5 p
- "\n Check support directory."))) s- H* z6 R- a8 I1 ^- v
0 t/ U; N# S$ N1 M- ( (eq "failed" (load "ai_utils" "failed")) ; load it
" H! E$ B o: `6 }+ t1 x$ t/ H- q2 A/ s% z - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
9 Q0 b! f2 @- N* N8 o6 a" a - )
|. B8 Z2 ~. Q! J5 m6 K( c9 i
/ I9 S* u' r; Q- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can/ n3 o' @. O; |% {* [
- ;;; be assumed that all functions defined therein are available.8 C G) R% c# L' M5 k; s" ~
, K6 C$ v) @( f6 c6 e! [- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
p: f* V; @+ A7 L - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP' I3 D9 n' N3 J" `
- ;;; does not abort the running application itself (so that it can
; g$ y4 D+ E3 g' P - ;;; also be called from within the command without also stopping
* X# z- O$ _: @. e5 L# F - ;;; an AutoCAD command currently in progress).2 P' S( w$ t$ Y x) L1 U2 R! [
) u+ \7 u# `7 t9 S1 A7 ^- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
. Y$ R! g. w& w4 B; s4 F - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses; n i8 p$ S7 C: \, B: E+ [' h" v
- ) ; ai_abort's alert box dialog.4 g) r0 m) y, Z- x
W3 a, d5 Z( U$ P+ f; R+ E0 i- ;;; ==================== end load-time operations ===========================2 o5 g1 j% G) d; V3 B
4 t/ s4 _. E5 {* S- ;;; global variables) E8 ~% I3 c+ |0 Q. l, b
- 4 \5 Y7 O# C% s3 N* c" _: J
- (setq hatch-elist nil)6 Y8 U, z6 E4 T3 ?
- * L2 t. W6 j$ S$ f7 ^+ k
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are: {8 L* i' q8 C3 U7 L3 w
- ;;; assumed to be available.
- M, b5 Z( _) {3 ]0 z' E
( x% P* i2 L) [* N. ^7 H$ o `: \- ;;; Define and encapsulate all subroutines that are declared1 [1 V7 V1 p- U: J4 q% T
- ;;; locals of the (ddmodify) function., g( s6 K$ w6 C$ s+ O
# O: ~" U1 p2 O+ F- y1 N- (defun ddmodify_init ()
* d% T# L% G# U) d+ j$ m' m - ;;2 u( e H0 Q. W1 r) O) ]+ G; n
- ;; These three functions modify the enitity list for common properties. Since% a" w# j: f& O! B* R& N/ l7 i" k
- ;; color, ltype, and thickness are absent from the object list when they are
2 x' h$ _5 E4 | - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
: X. k t7 l4 D: N - ;; SUBST is not possible.
, O% y1 |" i1 |( C - ;;. } |" c( u- `& G0 h! R" Z/ Z8 G+ p
- (defun modify_properties (), R; ^5 s1 B& [4 q& W T! Q
- (emod ecolor 62)4 s# |2 T- M+ N+ d6 C% E& ~
- (emod eltype 6)
5 s ?7 q& ~! _, H: H( V# C% I/ G - (emod ethickness 39)* i( y! Y3 R% L- ^% \
- (emod eltscale 48)9 r& p+ S) w/ E
- (tempmod elayer 8 nil): E5 f- Q# _. S, q# u' Z# ]5 O
- )
' |7 Z4 f) G( Q1 B" |6 O D( f1 _ - ;;
4 } y. Q# P; p+ E3 l; U5 M/ X - ;; This function is used for modifying common properties of the ACIS# H* S, ~& O/ t; h- v, z6 V% S
- ;; based geometry objects. Thickness is not valid for these objects" s* R( L e* Z/ Z5 o7 z
- ;; so it is left out.
2 L6 D! G4 p: b( x8 ]0 t, C - ;;
) F' E9 }% {0 O! E* h - (defun modify_prop_geom () _0 h5 Q* w6 T# W% X2 l
- (emod ecolor 62)2 M. K; h6 p$ n
- (emod eltype 6)8 C: W! t* o6 O6 R0 a6 z L
- (emod eltscale 48)
! l8 R) K; \2 ]: W - (tempmod elayer 8 nil)
# n6 W5 L0 N. x - )1 \2 J; E3 h" B/ l) o! W0 a
- 0 C4 d& s" r! I( Q2 G& I, E5 k
- (defun emod (value bit)9 V2 s2 |2 l- n1 B7 @6 ~0 [" _
- (if (= bit 62)
* P- D8 h% C8 X/ N9 c - (progn
o- x: {) ^. b9 W D- o9 i - (if (or (= value "BYLAYER")% G3 c4 o6 d2 B; ], M
- (= value "BYLAYER")) (setq value 256))
* C! M6 d, _( m, _2 X* x - (if (or (= value "BYBLOCK")
0 }# S/ V, h6 {7 A8 p& n - (= value "BYBLOCK")) (setq value 0))9 p1 w7 H5 J- K
- )
* u0 t$ x! K2 X A6 b - )' g S: s! f3 e& T# G
- (if (setq oldlist (cdr (assoc bit elist)))4 H" N- H" H4 W' A- ^) {
- (tempmod value bit nil)% E" K9 l+ F! N5 } ^4 z
- (setq elist (append elist (list (cons bit value))))
# K$ i! n2 e# K8 v8 V - )9 n3 |; G+ E1 a& w8 C0 Z' s
- )- ~) e) |. I8 J% B U6 m
- ;;( N8 e& P. @! z* K; L2 u8 F
- ;; Resets object list to original values. Called when the dialogue or
9 m3 _; \6 S+ D+ T - ;; function is cancelled.3 t5 @2 `+ @$ s6 I/ A
- ;;
- q' ^- R# t: {# X - (defun reset ()
4 y! M! j! X5 r3 l& P - (setq elist old-elist! p* {. a- Q) |+ f' d. M
- ecolor (cdr (assoc 62 old-elist))" x" l2 }( p I
- ethickness (cdr (assoc 39 old-elist))
& U% @6 ]2 _, d - eltype (cdr (assoc 6 old-elist))0 o: P+ b, m& i( n
- elayer (cdr (assoc 8 old-elist))
: m) o1 } j, b9 T7 A) _2 m - eltscale (cdr (assoc 48 old-elist))2 S! c( r* l3 S' F! i
- )
) K6 w# I5 j1 T) E1 L! K/ T - (if (not ecolor) (setq ecolor "BYLAYER"))
: A6 \- _2 M# I$ \4 P - (if (not eltype) (setq eltype "BYLAYER"))
& l# z( o" U; r% M, Y! T1 V - (if (not ethickness) (setq ethickness 0))9 j7 M- G" U: ]6 M& o# [ a- _
- (if (not eltscale) (setq eltscale 1))
, B3 G5 }" f5 `, r; l3 r- |* A - (modify_properties)' x0 y5 P; I: N1 [* a" ^* y
- (setq reset_flag t)' N8 c; E4 [, w: g% G+ U! \
- (entmod elist)% N2 b; @% ^/ B2 P. \
- )
7 q" P. M+ M# U - ;;
x% B/ `/ g6 O! F$ i p, a - ;; Modify object when dialogue is temporarily dismissed to reflect latest
' Q. Y' I% F3 i# f7 I* B - ;; settings of dialogue. It converts the point from current UCS coordinates to" l/ E9 T$ F& b# v# g; R0 s
- ;; the proper object coordinates (world or object).* J1 j+ W- I% ~. r
- ;;
% e l7 I7 R5 T0 M1 a9 L - ;; Arguments: value - in current UCS coordinates
; a1 ~. z$ g. y9 t" l - ;; bit - object code (i.e. 10 for start point)
( s# m1 ]4 O; {* `% ] - ;; ptype - point type 0=world 1=planar
4 o7 `/ T; s: o% B+ O `8 k% } - ;;0 v5 D- Q! v* e' A% P' `
- (defun tempmod (value bit ptype / newpoint)
( M6 W8 L- Z: f6 H, e- {0 E" f - (cond& F& v' P# c7 U9 u- D. S" I
- ((= ptype 1) (setq value (trans value 1 ename)))
) W5 w9 b4 A# z - ((= ptype 0) (setq value (trans value 1 0)))+ a: d8 K! f* \; s( ^4 I
- )& Q$ p& G0 ^* z5 o5 O
- (setq elist (subst (cons bit value)
" C/ a5 Q9 x4 w- h5 k2 d: `5 u - (assoc bit elist) r$ c( h" `3 d( t
- elist
" N$ d6 [# K* R7 B) K- q - )
' L2 X5 Y& J, m' h - )8 ~ \) Z2 D/ m! ~# }8 b
- )& r/ s9 X& B/ t" C# K, L9 \5 V
- ;;# e! V5 ^3 F$ K3 B" f" Y! [
- ;; The following functions are called after a dialogue has been temporarily
. s. h7 b9 @, b7 S- R1 X - ;; dismissed and the user is selecting a point. If a point is selected the' j7 J$ D9 z7 f8 r
- ;; object list is modified and new X,Y,Z values set. If no point is selected( q& N$ O) V' {$ a) p
- ;; (null response), then the point is reset back to its previous values.
6 b6 l2 Z4 b# @ - ;;
# Z# w3 h V+ V6 J - (defun ver_pt1 (ptype)
; r6 b. C7 [8 n1 Y' Y1 }) f - (if pt1/ }* \4 Q; v! N4 W; X; i# E. V0 ]
- (progn
7 Z) {2 H* ?+ U G0 |2 F - (tempmod pt1 10 ptype), T' Z( R& _( m
- (entmod elist)2 d L+ ~) R7 a0 J4 F( s
- )
( N3 G$ L7 l' P: ]3 I$ e - (setq pt1 (list x1 y1 z1))0 F, r" A) g6 f! p1 Q! {/ R7 Q
- ), V1 W1 l( d; ^6 H0 r: L4 r6 U( n3 W$ B
- )6 Q7 L+ x$ e, p3 C
! P! h1 u: \$ J3 b" J* f- ; (move_pt1 <ptype> )
( K) b4 a1 X# r1 H - ;
5 g* A& z" h8 H* }4 D5 s - ; Called in liew of (ver_pt1) to translate block insertions which3 U! P$ e) D% Y0 t N+ ^& ^# A) R1 V
- ; might have variable attributes attached to them. If the distance, ~6 u t, z0 ^- Z( _4 Z
- ; the block is to be moved is < 1e-6, the move is deferred.
' y1 g4 s2 V+ f6 ^$ u6 f! K
+ I, c% b: i5 N" E' v! E- (defun move_pt1 (ptype / basept hi)0 f: |( Q; c) S$ [- P
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))0 K, g J$ V! I( o; B
- (cond' F8 |. M, a3 O4 E4 `
- ( (not pt1)" d0 ^5 f/ e' o0 j5 ~6 D* {
- (setq pt1 (list x1 y1 z1)))
* b1 x4 d5 {# |2 n$ V
" e m7 d! x2 _/ o( Y' i- F- ( (> 1e-6 (distance pt1 basept)))
/ t7 K7 D M" Y* w4 s k/ | - E+ i0 _) T p4 a5 c
- (t (tempmod pt1 10 ptype)# W; a8 r, Y$ @8 e. t- j( B
- (setq hi (getvar "highlight")); H: I6 x7 i$ j" f* J
- (setvar "highlight" 0) T" @3 q! s) |
- (command "._move" ename "" basept pt1)
6 \. j2 U1 d& G8 R! Z. w# g. y - (setvar "highlight" hi))0 j4 R- X& X8 x1 g v
- )
3 L: x. j( y( V* z l& k - )
1 E3 X( h4 R4 z% o4 g" g' O
) d! ^0 \ l/ l9 C- l2 I- (defun ver_pt2 (ptype)- l" {& |, \0 l# `! e5 M& X
- (if pt2# R% s' c" U& B1 W0 B7 g( i
- (progn
; \4 L) d4 S- z - (tempmod pt2 11 ptype)( k. \8 ?7 \7 A1 F
- (entmod elist)0 v. k4 ~* A1 q" C4 G. s& d
- )
+ |7 w/ d( g) t$ X: X - (setq pt2 (list x2 y2 z2))9 a5 Z' a" @# N* B
- )
3 i3 ~ G) j/ }6 y* v3 m - )# B: [8 P2 U4 ^2 h2 ]( P
- % M, r* v( L% ?) D5 m! ]
- (defun ver_pt3 (ptype)9 n" k+ I2 B+ i2 ~
- (if pt3# p' U1 k& V" Z0 R' j' o+ ?/ U' L, c
- (progn
# N& M1 Z! d0 Q - (tempmod pt3 12 ptype)8 x" Q5 P9 D( s) c: _# i+ ^8 s
- (entmod elist)
0 _( q# v# O4 s" _/ t7 S - )2 T5 s, H9 k/ |7 \/ [* s
- (setq pt3 (list x3 y3 z3))3 H. m* \) D- p0 s% U+ C" V
- )
1 W8 N$ a* ~) f2 @+ `) J$ _ - )+ k4 ^. G# K: L0 }
- ) K. a" R. Z' x6 F
- (defun ver_pt4 (ptype)
! L3 q, J% O( @$ k& u* ] - (if pt4
" d- W2 C* S; H* H4 E# X - (progn
3 D' A U1 S. ` - (tempmod pt4 13 ptype)8 ?/ u# U4 U5 b2 a) J5 D7 U
- (entmod elist)
0 G9 ^/ v5 l; |5 L5 }) s - )% `! A- m; z/ S$ L' J' j/ g% d+ @! |) I
- (setq pt4 (list x4 y4 z4))
' v6 Y/ l4 d4 z, v! L; P0 a - )
' K$ P; T& Y L& ]3 @. u" R' Q - )
* v+ H$ e% G- x5 y1 ] - ;; Xline/Ray
+ q; H) I! |% m, T. s - (defun ver_xline_pt1()
( {4 l6 k$ d8 j - (if xline_pt1( r9 W, _4 G8 `9 Q" [' p
- (progn
. Y" {9 i4 _! ^" }5 S$ }/ r7 k - ;; convert to WCS.) w2 p/ Z0 S8 _
- (setq value (trans xline_pt1 1 0))! X. A4 _. \& v3 c/ ]* J
- (setq elist (subst (cons 10 value)) c8 I& N8 p4 s1 f) P
- (assoc 10 elist); w7 x, D+ M Y& q! C+ ^5 r2 i
- elist+ K8 d3 ?! q- X2 |7 C6 |. ^0 ]
- )/ V) A6 M4 I9 i% c
- )! l( w% `/ c. `& l
- )
; V" o' z3 e8 C1 s - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
" m5 \; a5 ]3 i; G7 t3 Y* V - )* ?/ @/ l3 u4 J4 l6 \8 s
- )
2 S5 W0 I4 {; |1 L, Z% w - : o. V& c# l, ~' V$ w# G
- (defun ver_xline_pt2()9 S) P7 g" u& P
- (if xline_pt2
% A1 M( Y& G7 ~- @ - (progn! M3 O2 t( s e
- ;;7 _0 f4 C6 h2 l/ B1 S0 A
- ;; Calculate new Direction Vector WCS: |: D5 o/ [- J. n+ f% `+ E
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))- V0 J, A+ ~) r) k3 V3 V
- (setq temp_dir (trans xline_pt2 1 0))8 J9 y0 w1 b; ~6 Y+ D. s
- (setq temp_dir_x (car temp_dir))
5 F7 m$ }7 \# d - (setq temp_dir_y (cadr temp_dir))
4 {5 ~9 ?3 ^$ F$ [ Z# f - (setq temp_dir_z (caddr temp_dir))
M. n0 j# }: J$ M8 Q+ C* L - & Q4 G9 e2 T! y# T1 S6 f3 _
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
. g: `* U4 {5 H4 n - (setq temp_xline_x1 (car temp_xline_pt1))
$ F+ ~( R' W0 o; ?; w8 x7 ?3 G3 V/ S - (setq temp_xline_y1 (cadr temp_xline_pt1))
+ \# x; [7 Y0 u5 `5 E5 n$ @ - (setq temp_xline_z1 (caddr temp_xline_pt1))
5 H/ h+ f1 t* T% ^$ A9 x8 y' U* i
6 J1 p( S( _ g( w4 x& v- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
' R, T& m$ j' v, W% u9 M - (expt (- temp_dir_y temp_xline_y1) 2)
! D% q% @7 w$ ?. e5 R - (expt (- temp_dir_z temp_xline_z1) 2)
6 g# `1 l. h) A4 n- R+ @6 p- O6 v+ q7 f - ))); R# `" _3 k! \: B
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
2 M) G* j! [/ G. a% E) ~ - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
- _5 v- O% C$ i* h - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
4 E, d$ V$ W* [3 T# q* U3 d& J+ i - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))% V) E* d6 v8 B+ y5 {+ x- S Y9 W
- (assoc 11 elist)
3 F$ V4 U& u# x) r e - elist3 f% x4 }1 y- C5 G
- )
) E. ~# z i- s8 ~$ q, N. T - )
5 l: A' i5 M% O# ?: n - (entmod elist)
n% W- q0 C0 K0 ^& s! o+ @ - (setq xline_x2 (car xline_pt2))
0 T6 ~( i) ]" m& b# |3 M, H) z6 b9 t - (setq xline_y2 (cadr xline_pt2))
* ]& n/ O5 x: O0 g/ M - (setq xline_z2 (caddr xline_pt2))$ _+ O) G: j1 {5 `" U
# |! a- R+ u4 y9 c! B8 i
6 `& o0 U6 l$ j- O+ Q- )
& j; d& _; w0 N) X - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))- j* k7 E0 P7 M( B
- )
# i/ {: n8 U# {, {0 e: Y+ s - )
# X3 S9 p& v% k% ?! ]
. L& ~1 R. `6 g$ o" I& s- ;; t; G" W5 {& B4 `% J8 W
- ;; Common properties for all objects9 f' p% b3 T3 m+ C+ E, _. y
- ;;" M0 \! H. G( b
- (defun set_tile_props ()* E8 X" g: B/ b* A' }) ^1 q0 L$ z
- (set_tile "error" "")7 V2 Z @4 A: c/ O1 u
- (setcolor)6 L7 Z2 t4 S5 P- O0 E) M
- (cond
& z" r4 R: a V, u8 { - ((= eltype "BYLAYER")
! c: p& Y; \& r& S4 P6 r - (set_tile "t_ltype" (bylayer_lt)))+ T" b5 }5 i( S
- ((= eltype "BYBLOCK")
) L2 m) {, j5 _5 D - (set_tile "t_ltype" "BYBLOCK"))+ z# p* w4 l; b! z$ \6 z# I
- (T (set_tile "t_ltype" eltype))
1 k G: M( Z' n: m" [6 ?$ Z4 F4 _7 n - )
$ M% Q+ ~ t. Z6 t% C3 v2 T ? - (set_tile "t_layer" elayer)6 f1 K; ?% r2 M1 o F9 H
- (set_tile "eb_thickness" (ai_rtos ethickness))
. E( R" n6 b# P6 i+ X7 i2 j - (set_tile "eb_ltscale" (ai_rtos eltscale))
; q) U2 ]. x# i% P3 i% | - (setq which_tiles (ai_common_state etype))
' N6 {5 y. ]) W3 a7 o - ;; Disable tiles if need be...
: z* S X& ^" F. ]6 y: w: J6 t! J% ^+ I. ? - % u& G( J( M! k3 j' _; Q
- ;; Layer Button and Text Field* v- z/ x! l; T
- (if (/= 1 (logand 1 which_tiles))" z: B3 e" Y! o7 t+ ^1 C& _$ q8 z
- (progn
: E. T% z# w% Y - (mode_tile "t_layer" 1)# }+ \4 k/ M5 X0 v# L' d
- (mode_tile "b_name" 1)! ~ r1 k% `% W9 [% j9 z
- )$ w! P8 u5 I) z+ D- A3 V
- )
1 K. B! h( d% i& e - ;; Color Button and Text Field
5 t# m0 d0 t: J& h/ h - (if (/= 2 (logand 2 which_tiles))5 Q5 k4 J' ~" J. s
- (progn
7 ^5 P5 r+ P9 g - (mode_tile "t_color" 1)
1 \% F1 T$ Y: o: ^0 M2 H& ^6 O+ V - (mode_tile "b_color" 1)" x: k, l" E2 v f
- (mode_tile "show_image" 1)6 o$ ?3 d9 E5 P4 S0 W4 j
- )" y1 [# k4 B2 L9 {+ [. J/ k# ^# e& Y
- )- \/ T1 F: d. _
- ;; Linetype Button and Text Field, y. [, P7 Q- G: [0 Q7 O8 s9 S& S
- (if (/= 4 (logand 4 which_tiles))$ H6 e1 _; W: \2 [: q# S. ~* S& K4 N2 Y
- (progn
4 ?8 T9 R2 v4 z t# ` - (mode_tile "t_ltype" 1)
3 R/ l$ D* ^$ ^" A - (mode_tile "b_line" 1)
0 q' g% S& e8 [0 Q) N# T5 Z/ o E - )
' T8 c6 x% ~" A( |+ o! J( I3 t, I - )
" f: \" H; L2 D - ;; Linetype Scale Edit Field
* @/ U6 ]' {' C" [! k5 B - (if (/= 8 (logand 8 which_tiles))
1 A% h7 x" B+ y" X' A3 y - (progn
; a( Q3 ]5 m0 ^ - (mode_tile "eb_ltscale" 1)3 i3 P. g( p& P6 s6 f) o2 f( V# j6 [
- )+ K# Q$ v5 A3 c) S
- )
' g* a! Q+ _9 g( S0 o' X. t - ;; Thickness Edit Field. K, Y( m/ j8 ]1 m8 j: A
- (if (/= 16 (logand 16 which_tiles))
2 x# K1 z! ]5 O) l1 r - (progn* O! C! ^8 A' D$ d
- (mode_tile "eb_thickness" 1)' B9 g% G6 c& V/ Q" R( q- R8 @' G6 Z) W
- )% ` a7 f+ s" G6 P" ~! E
- )
3 y, O" R; l6 I) A - )
; J# t1 ?" q# f; w1 N - ;;
' f7 w% F$ ], k( F - ;; XYZ Point values for all enitites% m; y7 c' V! G# Y6 O f( |
- ;;# ]5 o0 c+ o4 ?
- (defun set_tile_pt1 (ptype). F2 a5 W/ d1 w' C8 j
- (if (= ptype 0)
* z! I3 {( t' u; p: O1 H/ F - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
! r# R6 h" O% v7 D1 ?" N - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
2 m- _0 L8 @ h& e1 @) r3 r9 k - )
" c: |' h- S2 r# U; g0 B - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))/ S4 T+ G; Y# i0 k: Z# v6 [
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))5 @# z% k( b( e( }% [! S
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
/ C9 m% i: p- |" t( D8 [' V - )8 ~, u2 C1 y! {' o
- (defun set_tile_pt2 (ptype)
% g: u9 r. H+ ]3 { - (if (= ptype 0)* s& d2 J! B$ d( `( w- {( o
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))" R" s; w# {/ s3 x4 [
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
# j' q/ [5 o/ W. ]9 R; v" c( l; S - )6 ]4 {( Y+ ]4 }$ G; G
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
6 E4 e8 D1 t: N( s* N" t/ ^9 I - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))5 ^3 s. R) a& {+ n& C: [ d3 ^
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))9 N2 d3 P( X+ I' g
- )! I, R. y* \ o. c; I" t4 I# Q
- (defun set_tile_pt3 (ptype), l" R9 V% X4 G4 i
- (if (= ptype 0)
% }: ]. r$ c: h, \4 m- f; c - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))' y! u8 F; F1 V% o. F! n4 Z" ?
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))+ w! f1 _% _$ w
- )' U! v. A9 l: g* {8 C! V5 C8 u
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
5 \6 _$ q* ^- b/ N - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
4 l' o+ T3 D+ A5 x9 z - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
% K Q" ~6 N- I( K; X - )
6 K+ `% S/ n0 i( t% S7 ~ - (defun set_tile_pt4 (ptype)# [8 H8 }' i8 g1 s
- (if (= ptype 0)! p" `6 t3 L+ `8 D
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))5 E. [. I2 D v4 I
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
2 Z5 `! W) A9 f - )
5 n+ D0 G$ S1 X3 z- \# I6 E/ N" o3 w - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))- N. C, D6 x$ O1 h" \
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))* U5 p7 m' {" h; \
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
) x6 A' }( @; k6 m1 P - )) c$ K' R3 H+ u: E! ~
- ;;
& O1 t; k- Y$ W3 j$ J# |. S - ;; Xline/Ray
% S6 v! A- S! O" `0 L$ O - ;;( O9 V' }7 u6 n/ l2 S8 P. D+ M
- (defun set_tile_xline_pt1 ()
# D1 h7 c$ g t - & T) ?* Q: [. A
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
1 J* i( H8 `$ {' _* m2 m
" L4 p, F$ U7 Z9 E& s& k- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))& P F3 T0 d9 t+ K/ P
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
! ]3 @0 f, k9 f$ @5 Z$ E' C - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))3 |# l, f1 W) p) i/ }
- )
" k% U B5 g, E: k - (defun set_tile_dirv ()" {5 N7 c( t# K( [: m4 k
- ;; Convert 11 group to local UCS (displacement)$ \/ G7 h, h, e( @% R! h
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1)). I7 n6 j. V+ Y& p7 e
. x9 S. B9 y5 _# o( A- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
?' ]* v! `0 a n r - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))& J5 g+ n& J' Q+ Y
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
( E. [; S/ k$ O - )1 k2 D* h! P5 }: a/ c& O* ?3 l
- (defun set_tile_xline_pt2 ()
3 o) Z3 ?$ E& H" E' D+ z - (if (not xline_pt2); x$ b1 L q0 V1 v" O1 R, H( _
- ;; Initial second point is Root Point + Direction Vector) k# p. ~' ]9 M# Q/ [$ C
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
! R$ M' j( s, |: K: c" M - ): @. W E/ \+ p6 q, I6 G3 H
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
" O0 e X2 D1 O( j. Z - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))! b0 l& E2 w8 p: l5 j
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
( {& z& t- Z1 Z0 M$ T& p7 ~6 b - )
0 {2 w: I; S4 x5 C+ J, H' _ - 3 r# p3 [7 g3 [% t. J! f
- ;;$ D9 k% n& s8 |
- ;; Handle for all objects8 S1 K: { G6 j3 {3 m n
- ;;' R3 l, T3 E& h8 r6 I
- (defun set_tile_handle ()
6 O7 y5 I5 P$ A2 ?) X; C - (if (setq hand (cdr (assoc 5 elist)))
2 W+ B. j; u* W: b - (set_tile "Handle" hand)7 A3 q$ S8 G! ~5 y, D- p
- (set_tile "Handle" "None")2 i9 n9 e6 [" n) U8 E5 V
- )
" ?/ t1 ~1 c' ^; u6 ^ - )1 L+ B8 ]7 |$ k3 Q9 t9 N
- ;;
8 C* T" o5 L# y - ;; Radius for ARC and CIRCLE3 a9 o4 Q3 e5 x, _0 k; w
- ;;
4 N" M7 m C0 t% j - (defun set_tile_rad ()' R. S1 a2 n( O( R
- (setq radius (cdr (assoc 40 elist)))
# V: P: |& u7 d8 X9 A - (set_tile "radius" (ai_rtos radius))
2 H0 w0 p' N* T+ Y - )& ^: a! B1 X* F: Q6 `6 M6 k6 f
- ;;- Q( U7 f1 [( @0 v. M( \* q. B6 o
- ;; Start angle for ARC
* }) m7 S+ R+ G* O* G - ;;, F0 n/ D* R1 I- n" h
- (defun set_tile_stang ()
- Z. h% ]8 V2 T- x6 n - (setq st_ang (cdr (assoc 50 elist)))* u5 n1 r6 D3 s5 \
- (set_tile "st_ang" (ai_angtos st_ang))3 K7 k' E8 A. e; z8 d) I- ?9 K
- )) q# u. e* T% e5 B p
- ;;: W. w( q1 e+ H, ?
- ;; End angle for ARC
2 _; E, l% ?) e/ l# W& r) |( O& f9 q, i1 K - ;;
1 R: a; b- l, O" e( d - (defun set_tile_endang ()$ t' e* l. k' `; i3 Z, q, S! R$ ^: V: d
- (setq end_ang (cdr (assoc 51 elist)))
# r' ]: h6 _3 v" n - (set_tile "end_ang" (ai_angtos end_ang))
h7 f* P% ^8 O; m& W1 } - )) |4 ]7 `- o& |( ~" |. w% S
- ;;. e1 P+ f2 F8 }8 A! f
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
2 u! J! U! c6 |, Q - ;;
5 _* R l0 F$ E. C; @ - (defun set_tile_rot ()6 s3 O9 i1 C y2 K9 w
- (setq rot (cdr (assoc 50 elist)))# g& ?1 N! C% E P
- (set_tile "rot" (ai_angtos rot)): q L7 K; E; n' M+ i9 h1 ?
- )
! p! j9 X3 m: K1 T# P7 ? - ;;
% S( h- @0 v: F- s* Q/ r - ;; Height - Text, Attributes and Shapes
# Y# Y& ? B! w5 ^/ x3 W0 z3 J - ;;
6 n# l6 O9 i! r; l - (defun set_tile_hght ()! \- G; y* z7 R5 V" z
- (setq hght (cdr (assoc 40 elist)))
9 D' P' C; X6 y; M. E. y' |. s9 J1 K - (set_tile "hght" (ai_rtos hght))( B# N! D8 S& Z5 _' l h8 \6 x
- )
! p. h$ {) M* @* a) |5 R - ;;4 X# }0 F; J- c$ @
- ;; Width Factor - Text, Attributes and Shapes
$ g7 y- l' w2 F* g3 i O" f - ;;
: L5 S; m9 I$ C: T - (defun set_tile_wid ()4 a; c) U& O+ n6 q
- (setq wid (cdr (assoc 41 elist)))
( X# h% L1 U' y1 v, u% h - (set_tile "wid" (ai_rtos wid))
% m7 e' R G$ E% x! W* ] - )! a9 _" m" l8 s6 D R- K
- ;;
9 \# W7 \0 k K; M* D1 P J" c - ;; Obliquing Angle - Text, Attributes and Shapes
- p; |; h8 }. \0 w: J - ;;
( i" c2 \6 U& `' ^ C6 t - (defun set_tile_obl ()
$ [) C4 r2 g$ d. G) h+ ^8 o | - (setq obl (cdr (assoc 51 elist)))! I) T( ]7 _! | N* z( m
- (set_tile "obl" (ai_angtos obl))% D% B, j1 G5 N8 R
- )
4 t! w* Y" ?: k! } - ;;7 ?8 ]1 p$ K; }9 ~) c# T% g
- ;; Text string
$ D1 x ?# h9 Y6 c( m - ;;0 w; I/ y9 f. ~+ a5 c9 v8 Q3 F
- (defun set_tile_text ()
# Y; d; j9 V( h$ f0 E - (setq text (cdr (assoc 1 elist)))& I! `9 ]+ h; U5 E# g! P
- (set_tile "t_string" text) J7 y7 g' v( |- a+ w
- )5 l/ s9 K, Y3 i! R6 a1 Y0 _
- ;;
}0 T, R: E, d b8 v. L3 B( w - ;; Attribute Tag
* q3 S. ~; K$ A* L) k1 f3 U - ;;# I6 @% T, v0 Z5 w! D
- (defun set_tile_tag ()' P2 s) F/ g( \/ y' J
- (if (= etype "ATTDEF")0 W8 s9 M" y2 k
- (progn3 g7 ]$ b$ e8 g0 v D' O; T& s
- (setq attag (cdr (assoc 2 elist)))% V7 K* ]" {! h
- (set_tile "tag" attag)' C# c+ {4 K2 t$ Q- ]/ D. q6 f
- )2 @" J) ~( U; f' b7 n! t7 W
- )6 L: _; c' I. K) D
- )
" v# }5 j b+ o( `5 f) } [ - ;;
7 F4 b3 R3 k( | - ;; Attribute Definition& _9 ?$ \& ]4 ?6 Z) l
- ;;) X* a2 C) R6 v. c/ t
- (defun set_tile_prompt ()
I8 K: @+ [2 D* A1 M: V - (if (= etype "ATTDEF")
' x" J1 [- f8 G8 @6 q K3 | - (progn
4 p* _3 Z$ E4 A; f5 A1 y - (setq atprompt (cdr (assoc 3 elist)))+ d1 }& X; g8 C: @
- (set_tile "prompt" atprompt)/ X" Y0 v- w$ \ x! |% d+ ^
- )7 W7 z0 o% L; W7 z$ D' K, L
- )
- Z8 U+ E7 Q2 \) s$ `! ]" g - )
2 u, @$ N* L. g. R' @7 H$ \ l - ;;0 k' d9 K2 p' U, g5 ^. M
- ;; Justification setting for Attributes and Text. Initializes
3 i. j' V# C" l; D - ;; popup list box
! e" x$ C4 f, n5 O- q4 z! f - ;;
( L4 E f. U7 u& E) R - (defun set_tile_just (), @9 ?" B& A9 u* n, T
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment( D+ |3 P# q; @1 N: M
- (setq va (cdr (assoc 73 elist))) ; vertical alignment0 w6 y: ]: u6 B; Y2 H
- (setq ha-prev ha)
, q& _6 g8 c/ s0 d - (if (= etype "ATTDEF") N* s0 C# F! [
- (setq va (cdr (assoc 74 elist))) ; vertical alignment
5 G% P+ F# t, b! U1 ~ - )9 i J6 u$ N* g" Z/ ?
- (setq jlist0 `0 x& A+ S; m4 a- U5 R2 g: G
- (list "Left" "Center" "Right"
6 k6 @$ P1 D; d3 L! X - "Aligned" "Middle" "Fit"* H+ d3 q+ ]; R# y6 [9 R
- "Top left" "Top center" "Top right") i( a, i! p- t9 B. X
- "Middle left" "Middle center" "Middle right"
! y2 O/ X; T) A' T0 t: y: K# ] - "Bottom left" "Bottom center" "Bottom right"
" \3 y3 b3 U& R5 N1 O1 W* H6 _ - )% @: k4 q5 K3 S) w
- )
7 y& c3 r$ L a- `' B& g, I5 o; y - (start_list "popup_just")
, q; B0 C0 N5 p" R0 a3 A9 ? - (mapcar 'add_list jlist)5 @ r! ?8 F% E* `
- (end_list)
- q# y0 [$ }9 l" Q' H - (set_just_idx)7 x1 L" t4 {7 p8 p2 t6 n
- (set_tile "popup_just" (jlist_act just-idx))
% ?. ?. b1 B% ?( t' T - )
5 A' G6 k; }4 X; D+ ]4 q+ m - ;;( V- ~6 D- X y/ x: r
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
) {+ L/ {# a' e- i - ;; box.5 S, O( X- I G2 g3 M9 \ P+ S
- ;;4 z5 Q* i# p2 L! j1 E) v
- (defun set_tile_style (/ sname style-idx tlist)0 Q3 A" g) @1 Q* d
- (setq tlist (tblnext "STYLE" T)
8 |3 J6 A5 i- @: Q - slist nil)/ S4 d Y# P) ~ T* Y
- (while tlist
) D% [5 u0 u& c9 J5 P x - (setq sname (cdr (assoc 2 tlist)))' @; G2 X4 S% }2 C8 i
- (if (and (/= sname "")3 o$ q" {! `4 j
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))1 o+ A8 b1 R C" l
- (setq slist (cons sname slist)))
- Y' a* H8 Y9 u7 f* s3 E' y H - (setq tlist (tblnext "STYLE")))$ b/ F. t; W1 d5 K) p
- (if (>= (getvar "maxsort") (length slist))
( j6 ~6 `% b7 [3 [9 z/ e/ I - (setq slist (acad_strlsort slist)) ; alphabetize style list
# ]0 n. W5 w! E$ M - (setq slist (reverse slist))) ; or reverse it to put it in DB order9 |& M3 n2 I2 J0 O6 _
4 d7 x/ Q6 V, W' t- (start_list "style")
8 H0 [* ?$ _% Q' i - (mapcar 'add_list slist)
% F% O1 n8 {- o* F* o - (end_list)
, `: d; I4 `1 \ d7 u. x* z - (setq tstyle (cdr (assoc 7 elist)))1 Y, r# L$ {: O; O0 F: o
- (setq style-idx (getindex tstyle slist))1 ~- K! ]& b3 m' h2 D( [1 {7 A
- (set_tile "style" (itoa style-idx))
& i7 H. @4 C( m8 L+ g9 `' _ - )
4 Y& h& i. {" N9 e- ` - ;;) j0 w' ?9 L0 A2 |" M8 R
- ;; Text and Attribute setting - upside-down, backwards/ G- d' P& T$ L7 s# b9 L
- ;;9 w2 O' h2 M1 x; E! u3 J
- (defun set_tile_bk-up ()$ M% h( S/ z9 s; `; ~' `# P( G
- (setq bk-up (cdr (assoc 71 elist)))
7 ]3 v; J7 a" }# Z - (if (= (logand bk-up 2) 2)! C: _& d# P- `, ]( h6 y9 j
- (set_tile "bkwd" (itoa (setq bkwd 1))), u- E2 L3 M! x% \
- (set_tile "bkwd" (itoa (setq bkwd 0)))
! ^& m9 c+ {) S7 W, U' R - ); s5 F9 e$ j# b1 h) R- V
- (if (= (logand bk-up 4) 4)
( O- p/ t" {3 l% l. L - (set_tile "upsd" (itoa (setq upsd 1)))5 z/ D& S3 B6 _' U
- (set_tile "upsd" (itoa (setq upsd 0)))
+ o0 C% X' ~& z$ u7 b - )( a( `1 a, f. N6 f1 [
- )! \1 `, v* z6 I: c9 W! l
- ;;4 l- z# E2 w7 B6 U2 Q+ S, ~4 t
- ;; Attribute setting - invisible, constant, verify, preset
* m5 `0 j. Q2 S - ;;! o3 ^/ G8 t+ w$ J6 V- E
- (defun set_tile_icvp ()
( P1 z; k" {* T6 Z6 d# J" [0 y - (if (not (setq icvp (cdr (assoc 70 elist))))
2 C5 i7 {1 x, @2 R: m4 Q+ y - (setq icvp 0)9 f2 h: t9 X9 ]* F
- )
+ \1 L- H% u% W, a6 @* ?4 m' i - (if (= (logand icvp 1) 1)
7 `& ?3 w% [& f8 R$ s - (set_tile "inv" (itoa (setq inv 1)))
& z5 z! |$ d5 w. e4 O - (set_tile "inv" (itoa (setq inv 0)))7 x1 O/ Q5 _* S: B" ~* M
- )+ S. O- T$ O0 r; b4 J1 H
- (if (= (logand icvp 2) 2)
8 b9 {4 j% V8 ?" m4 d - (set_tile "con" (itoa (setq con 1)))
( V/ j! o- \( y% z+ V - (set_tile "con" (itoa (setq con 0)))
6 G) d6 y+ ?' A+ J - )
8 @# T1 }) T5 d, d% t - (if (= (logand icvp 4) 4)6 t8 O) l% L' D' Q+ z
- (set_tile "ver" (itoa (setq vfy 1)))7 B( ?4 a+ N* k9 X1 B8 P/ D; Q2 `
- (set_tile "ver" (itoa (setq vfy 0)))3 W/ O$ k" W% Y% H7 E C: H
- )1 H9 y+ i* R1 v7 t; e3 ?
- (if (= (logand icvp 8) 8)
% V, r* D# t2 ]% u% e - (set_tile "pre" (itoa (setq pre 1)))
9 i( D' h- D4 b6 l - (set_tile "pre" (itoa (setq pre 0)))
) m- |. X* {- O - )
3 A2 ^0 q' r: m - )
( J. u z, r# f' ~7 |" b; k - ;;
* s, e5 R& h" q. k5 h9 q - ;; Scale factors for block insertions1 `$ f8 J& y! @6 b5 s. Z2 G5 m
- ;; U, v4 K! s Q- ^8 O+ ^: l
- (defun set_tile_scale (/ temp)1 l8 [! D! \3 T
- (setq temp (getvar "LUNITS"))1 u# v% e |7 \; a8 T7 ~
- (setvar "LUNITS" 2)
8 p- X% f: q2 _1 C' p - (setq xscale (cdr (assoc 41 elist)))8 ] S4 y4 z6 k8 J/ b+ B5 |
- (set_tile "xscale" (ai_rtos xscale))
+ X2 @/ A0 e7 s. V) t- B, C$ W$ ` - (setq yscale (cdr (assoc 42 elist)))
/ c) i% g+ m. G! ~ - (set_tile "yscale" (ai_rtos yscale))
' \4 r# b4 M& I: F7 Z! B - (setq zscale (cdr (assoc 43 elist)))+ c, g0 h+ E* I7 y
- (set_tile "zscale" (ai_rtos zscale))
# E- a: C. b$ c X8 \" s z! D6 ? - (setvar "LUNITS" temp)
6 f4 ^2 C( y+ p4 Q9 X - )" j8 e% I6 G) H* o9 R
- ;;0 u" F# o2 ]1 l7 A! c
- ;; Rows and columns for block insertions) A/ T4 u7 E( E3 [' t
- ;;
- ?" [$ V# H1 ^# @ - (defun set_tile_rc ()
3 I8 r- i6 a1 c$ s, L - (setq columns (cdr (assoc 70 elist)))
6 ?0 X j' k4 `8 [* C0 ~, l) e8 [ - (set_tile "columns" (itoa columns ))
' W1 r. J" G# P0 M: F, ^ B) c - (setq rows (cdr (assoc 71 elist)))
6 X) t4 P$ M" m) c8 X8 _4 [- ?& N - (set_tile "rows" (itoa rows))
+ Y: W7 {( I7 @1 L# x1 b - (setq col-sp (cdr (assoc 44 elist)))) O* X% F" m8 X# H+ c# F" C! ^
- (set_tile "col_sp" (ai_rtos col-sp))4 v( Y' X2 r' A0 b) R
- (setq row-sp (cdr (assoc 45 elist)))
* N+ }8 E* @4 k, `8 ^" o - (set_tile "row_sp" (ai_rtos row-sp))4 W: f. l, Q' M6 q
- (if (/= hasclip T)- s, o0 Q2 A4 s8 u$ \( ?
- (mode_tile "xcliponoff" 1)6 u z: ]% |1 l+ a: ^# q/ v' n2 E
- (set_tile "xcliponoff" (itoa xcliponoff))# P/ m3 Z Y( F$ N2 w
- )
, n3 _) V* q- s9 z% G, _ - )
) u# H8 N' f3 X" f& K+ B$ g+ v8 O4 z - ;;
1 _; {/ Z4 ]2 L2 }" `' o9 l n - ;; Invisible edges for 3DFACE5 J5 J, }3 {, V s Z
- ;;. K. g5 O4 H, q1 s
- (defun set_tile_edges ()
$ S/ e7 u! f9 I8 o7 ]. g; { - (setq f-vis (cdr (assoc 70 elist)))+ V- J, c5 {8 q+ y
- (if (= (logand f-vis 1) 1). _! k0 }5 S1 i' F0 J# u1 t
- (set_tile "edge_1" (setq edge1 "0"))$ b, k( H0 U5 I" @/ k- \6 N: x2 s. S
- (set_tile "edge_1" (setq edge1 "1"))4 r% @/ V/ i5 s) @+ N) f T9 \
- )4 W% n) { ^9 k
- (if (= (logand f-vis 2) 2)) W3 v' l4 N3 t3 J& B. X
- (set_tile "edge_2" (setq edge2 "0"))) y/ e' A6 u. V; d
- (set_tile "edge_2" (setq edge2 "1"))
& D. S2 Z: @6 ^) f3 _ - )
& T) |$ A3 E9 d( q9 Y - (if (= (logand f-vis 4) 4)
, I: _0 P% K& _ - (set_tile "edge_3" (setq edge3 "0")) x, D! g* t* n$ e- b/ g
- (set_tile "edge_3" (setq edge3 "1"))
. g/ H- F. V' ~% F% Q- } - )( x! \% D& R' r3 O9 u8 L
- (if (= (logand f-vis 8) 8)
8 l. I0 a5 O$ h% B- b& I; |- M4 J - (set_tile "edge_4" (setq edge4 "0"))& N: _+ Y$ \: m) B' G
- (set_tile "edge_4" (setq edge4 "1"))
! e6 T2 a& D: y P - )* `8 J) j' w3 P* Z. S' A) }
- )
% d" J' R0 F6 M, `( V/ k( N# e4 @# N - ;;( o5 ~0 G9 R& f+ K9 J
- ;; XYZ Point values for polyline vertex
, l1 W. y' S) A# b0 O5 o - ;;
& o+ a: Z) o4 ^' J7 H - (defun set_tile_vpt (ptype)& L! j0 i q$ e& m- {: `+ L
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")) L4 A0 r: r" S: E1 Q" E3 n9 b5 p
- (progn
6 _& I& \) k$ L8 g - ;; ctr is 1 based, vertices are zero based.+ ?) g! \9 O6 u4 c4 C
- (setq vpt (cdr (getLwVert (- ctr 1))))* s3 ? t" S' C+ y
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
, F. w* R& s. y# v) @ - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
3 r' a+ x% K. n( `+ z" Z - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
6 e: R9 [3 q+ o- i2 e$ P! J9 F - )
& l3 z8 J) F+ }( P7 x - (progn6 I2 ]: u) N9 f! r# {! U
- (if (= ptype 0)9 d& e; L4 I: V2 n: q/ N+ _. V
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
) S( u5 Z; P# g - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
' w R, }' U c2 T8 K - )% l, s! ?: R! f+ x& G$ b
- 8 J! ^7 _$ l) U/ @
- (set_tile "xtext" (rtos (setq x1 (car vpt))))# m- B) t4 E! E" O
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))3 S: h- D; d& a! K' v9 j
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
3 O: j( G; I( {3 D6 ^0 V; C% W - )
8 ?$ ^3 W5 F1 E; c3 ]; [ - )/ d' J1 T* i' l$ ]
: _: l% v# {6 L* h' s: {8 T+ b- )
: v& i# m9 R3 N& F' E0 _ - ;; This is the equivalent to doing an entnext on the heavy weight8 |) Q; Z4 M) u! b# L$ P; L
- ;; polylines. The hard coded '4' below allow stepping over the
# r7 u4 \4 B, H4 y$ T2 x - ;; 40 41 and 42 group code information. The while loop finds the
! @0 m1 q3 f+ {/ l( u+ N" R - ;; first vertex which will be used as the starting assoc in the/ i- [8 U J d/ l7 T1 j
- ;; call to nth.
& m& i* l/ h* ~1 u" S | - ;;
& }* |9 }. C: L( g$ L3 z, t/ Y - (defun getLwVert (tmpctr / count tmp)2 I5 _5 n! ?' ]+ n) i2 _
- (setq count 0) _& c7 A8 n, G
- (while (/= (car (nth count vlist)) 10)4 a! l5 ]: H" _8 z$ W! m" p
- (setq count (+ count 1))* r: t/ L6 W0 n: r/ I; D+ ]
- )
0 s8 P& v+ d5 Y( _ - ;; If the counter reaches the number of vertices,' L4 h/ x& F6 m
- ;; reset ctr and tmpctr to zero again.
1 Q. v; C& [% A( K! G: y - (if (= tmpctr (cdr (assoc 90 vlist)))" R2 s* D- v/ h3 w w$ h' t. p0 A
- (progn1 Q$ p8 _* B* G& F" J
- (setq ctr 0)
3 w7 z$ w/ e$ E* Y7 T - (setq tmpctr 0). u1 z1 r* L4 W$ q: [% H
- )
. B: Q7 }( Q) h# b9 c. |# O) B6 i - )3 [8 i! u5 U$ u$ V5 r. b% J
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))& {) V5 y6 ^' d& L$ A7 G/ Z
- (setq tmp (append tmp (list(cdr (assoc 38 vlist))))): Z8 r2 f! e5 q8 C2 G: @
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))4 c; I1 F7 z9 ~4 g+ G, [* j6 A
- (setq tmp (cons 10 pt1))
0 x% F2 g; f* w/ w% ?+ Q# Q/ A - (setq tmp tmp)$ i) q7 t4 d- V5 _3 f6 ~
- )7 e* E, ^) |9 q3 G$ }( P
- ;;; Q* M# ?% F: j5 c- J6 N* Q1 J
- ;; Set tiles for Spline properties. If the spline is rational then we
5 J* g: V, h$ ~$ F- l% y w - ;; need to display the weight values of the control points, so set, W2 |8 R3 Z+ c8 M0 c" F
- ;; flag to 1.
2 b4 f8 `' x# m* _. \ - ;; 1 = rational spline6 Y* ?9 O3 R) H$ h9 q
- ;; 0 = non-rational spline$ O6 k4 T# H5 [8 Q q
- ;;
; |2 m: F* n9 u) D! ^: F - (defun set_tile_spline_props ()
' n, S) ~9 e/ m Z1 `( Z7 b4 L( A - (setq rational_spl_flag 0) ;; initialize rational spline flag; Z6 x. N5 C) p
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
( U2 a: W2 ?" a1 U8 { - (setq bit70 (cdr (assoc 70 elist)))) }% M5 D# A% [6 \
- (if (= (logand bit70 1) 1)
4 ?* i0 [- F; {) k. O - (set_tile "SpProp4" "Closed")# c3 U. ^7 n/ [- F( ^6 M0 K0 A
- (set_tile "SpProp4" " ")0 h1 s. @+ i) x/ C0 t. c, ~7 w
- )2 S4 R- i: Z8 o: \( D2 X, G0 S7 j
- (if (= (logand bit70 2) 2)& M: F$ I u& {& u' c. l" V
- (set_tile "SpProp3" "Periodic") T9 ^( m) f( n# m% h1 B! {
- (set_tile "SpProp3" "Non-Periodic")
# D) A& u' m, s( g1 q& p6 ?" H* [9 J - )$ c6 {9 k2 I9 l
- (if (= (logand bit70 4) 4)
2 c* q% ?' s' P& r; J - (progn
$ F- y+ n2 _6 y1 ~ - (set_tile "SpProp2" "Rational")+ y" U$ z9 r. j. O u
- (setq rational_spl_flag 1) ;; this is a rational spline8 x7 a6 s/ f& B! n
- ), @ d( P% s: U$ t; Q
- (set_tile "SpProp2" "Non-Rational"): J) G: I1 a/ f$ N5 I+ Y5 ?
- )
J# s7 e( E: F" y - (if (= (logand bit70 8) 8)5 h7 Y0 K# `+ _% a, Z
- (set_tile "SpProp1" "Planar")/ i9 ~: W* \0 D4 J% j, E# K, T4 E
- (set_tile "SpProp1" "Non-Planar")' ?2 ~' Y% E5 G6 n& d
- )% ~* ]4 m/ u( f4 z3 I
- (if (= (logand bit70 16) 16)
. U# Q$ Z$ ?* L% K2 U7 K$ y - (set_tile "SpProp5" "Linear")
) ]9 C- ^/ P1 b$ h& @ - (set_tile "SpProp5" " ")
3 O4 i f' P$ S8 G - )
; N, N" W% Y. i+ [; n - )
+ {# u- X/ j) A) Y - ;;
; \9 B7 R, e4 x9 J. f - ;; XYZ Point values for spline points5 O) O# }( Z$ `) u8 b: U
- ;; Need to account for WCS/UCS7 ?$ G" C6 d6 N, z) D% V
- ;;
1 a; u9 o# F! r& D/ z - (defun set_tile_cntl_pt ()$ G+ k; w" W1 U) G% F, U
- (setq cntl-pt (cdr (assoc 10 elist)))5 Z% h$ S3 ]1 O. S' K& B
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))+ V8 x, }% g$ \. T
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))' A6 D! v9 I! i' F0 k
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
! k& d6 X/ ?2 L( t0 W - (if (= rational_spl_flag 1) ;; if rational spline4 r6 ^( |, B% a! h" @1 N" }
- (progn ;; show weight
/ B0 `3 f; s! }& m+ ? - (setq weight (cdr (assoc 41 elist)))
! W5 J! l- _4 w8 t/ u - (set_tile "weight" (rtos weight))
) X, \6 Z* g% O - ) ;; else
% R, p4 U% }4 x/ X - (mode_tile "weight_text" 1) ;; disable weight field
: v2 {7 F2 B( O2 N7 M8 A - )
: ?/ `. b* e; c, K - )
$ P' i& H! ~1 ?# b, M - ;;
1 d S% \3 {3 ?+ O4 o c - ;; XYZ Point values for spline points9 j- O. A* b% }. O
- ;; Need to account for WCS/UCS
4 u/ e" t( X0 D# L/ R* o4 p# t - ;;
+ c" W7 h+ e, h4 |: e7 U - (defun set_tile_data_pt ()
* Z( @( B2 X2 Q7 \ - (if (not (assoc 11 elist))
2 v% N* k1 ~, X - (mode_tile "data_pts" 1)( H6 V; e" t6 p; `( \
- (progn
8 Q2 f }* L- p5 x, g - (setq data-pt (cdr (assoc 11 elist)))# T7 J7 O* b' s9 J9 K
- ;; display points with current precision.
3 B) a0 B7 d6 |* G- M - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
2 U. y7 J) ~# V1 c, P! ] - (set_tile "dytext" (rtos (setq y1 (cadr data-pt)))). i: [# V1 ]* [$ c" a1 |
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
! W9 a7 Y3 d! x+ |( l9 }9 s - )
% [0 |+ D3 \! R- i - )
/ t( ~% _# L% y5 V - )
, V; J. I, [' b - ;;! h3 |1 T! v' _& {7 X
- ;; Fit curve, fit spline, or smooth spline surface setting- O9 ?2 H+ Z' i) A* U
- ;;. d0 A9 d& V1 m- U
- (defun set_tile_fitsmooth ()/ I: H4 m0 O& Z' |2 s
- (cond
" L; E: a4 s1 e - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")! Q5 u# b4 y1 m6 T K) ^
- (set_tile "none" "1")
7 x6 a; l2 w8 I3 B3 z - )* {, a h. s9 Y
- ((= (logand bit70 4) 4)) R0 t6 T" C4 R6 V1 K+ u3 W$ |
- (cond
$ A# u; o. n/ |) z$ T) U5 @ - ((= bit75 0)
) g0 ]! M+ j3 b" H/ t5 k9 R; y - (set_tile "none" "1")
8 B) L* ^4 \1 J6 D( X' C - (setq spltype 0)
0 b d% M" ~7 g5 K' J* X - )
+ r; d/ s9 D& A: A0 [$ W - ((= bit75 5)5 W# t) m# Y8 X. W
- (set_tile "quad" "1")
& K7 l, y* Y1 n: J - (setq spltype 5): g7 |4 a! Z- Z. t1 v1 L* G
- )+ v7 ^& [' B# e6 @% j& `% J9 O9 |
- ((= bit75 6)1 h9 s+ M: s' S% ^5 L: e4 _
- (set_tile "cubic" "1")$ u0 k1 y; ?9 N. W
- (setq spltype 6)
- j# i6 H {0 W - )
/ w$ Z9 h) p, u3 } O1 L& w - ((= bit75 8)
2 [& C) t. [% g - (set_tile "bezier" "1")
. L& S0 \% [4 M0 u [: c' Q - (setq spltype 8)4 r- s! H8 E9 Z! H
- )
; D. \( Y+ X% q& ^ - )
/ |1 @1 C6 o) H% d* f% C. `" l& a - )
! k: c5 F! s1 \; `* @ - ((= (logand bit70 2) 2)4 M9 Q& ]) q4 w( X# A3 w) g
- (set_tile "fit" "1")
0 ^/ w3 e- }9 T - (setq spltype 1)
0 C+ A0 ^; j7 i( q# D3 f0 b/ k3 ~ - )
- U/ S4 C4 s4 z6 N0 Y& v3 Q8 Y - (T (set_tile "none" "1"))* S0 @, e5 z. [+ E! O/ l
- )
: r/ b3 E \( L6 J* ^ - )
' m1 o3 E7 k: A9 C2 X F. F: n - ;;2 z$ \! y; f9 a) q- [0 ?5 m
- ;; Closed or Open mesh and polyline setting
# u6 ~" y9 u$ L0 Y) U& \# E% s/ C. w - ;;2 C N e) R: a- n# X6 O |1 U: @9 ^
- (defun set_tile_closed ()
: p" ~% n7 N% p5 B - (if (= pltype "3D mesh")+ m! _6 ~& ~8 ], S6 V
- (progn
( \/ |, E/ v2 \3 k - (if (= (logand bit70 32) 32)$ O, P) k( c |. `& {3 x
- (set_tile "closedn" (setq closedn "1")) z: v+ r" I" V+ k* s
- (set_tile "closedn" (setq closedn "0"))6 M2 m: ?6 P# P- v2 u
- )
: G+ d4 s. R. [ - (if (= (logand bit70 1) 1)
3 M2 m( |$ m" M! o - (set_tile "closedm" (setq closed "1"))
+ ~, `5 r# z/ w- A" _) } o- N E - (set_tile "closedm" (setq closed "0"))4 I( L' S9 {: }8 O, S
- )9 F5 B2 T6 _* R3 k# G
- (setq old-closedm closedm old-closedn closedn)4 u) [8 c" [# _4 V
- )
+ j6 q; P: ]; Q5 h: u. s0 p% I$ p - )
p* u4 @% _4 P" S" X& ~ - (if (or (= pltype "2D polyline")
. B9 W2 u- r+ P# E. } - (= pltype "3D polyline")8 {# d3 x, y" z3 W1 @" p- K8 O
- )9 v% G. T0 z5 c& I$ F
- (progn
. h4 Y3 U# I% v4 d - (if (= (logand bit70 1) 1)
) A% ?0 L( C% u - (set_tile "closed" (setq closed "1"))
; T" F( B6 n3 j$ M/ l7 g - (set_tile "closed" (setq closed "0"))2 V: r! \8 N4 F" n! @ I
- )
, N" k& }+ \0 M0 M: _' S. Z5 K - (setq old-closed closed). D0 w5 A1 f9 R* ^) X0 m( x
- )( Y' ]: a; P/ \, f
- )
" d) i4 E# e/ \: y - )* i# A! ~2 m8 Y4 I5 _5 R% l
- ;; Set common action tiles+ o2 c3 I. x5 b; `4 T
- ;;8 X: X- e9 F, v
- ;; Defines action to be taken when pressing various widgets. It is called/ h- R7 d( J# v# v6 k7 R3 I
- ;; for every object dialogue. Not all widgets exist for each object dialogue,5 A8 |0 z3 `- w. g
- ;; but defining an action for a non-existent widget does no harm.
% f( [1 s4 K* f- |0 M - (defun set_action_tiles ()
- L9 l5 I0 l: D9 b: p- [, \8 F8 H - (action_tile "cancel" "(dismiss_dialog 0)")
( ^4 Z& C- ]: I$ E9 ]( [ - (action_tile "accept" "(dismiss_dialog 1)")5 s$ W- ~. P" j. W2 |7 w0 c
- (action_tile "help" "(help \"\" help_entry)")0 P- C# W4 y8 L, o/ `/ G ?0 E
- (action_tile "b_color" "(getcolor)")
' p# x2 ]$ E3 M/ A* i& d - (action_tile "show_image" "(getcolor)")
# ^; V! f& \0 v7 K1 r% m - (action_tile "b_name" "(setq elayer (getlayer))")
. @9 N! b: `1 `% b) l - (action_tile "b_line" "(setq eltype (getltype))")) [7 c3 q& B" J/ p1 n
- (action_tile "eb_thickness" "(getthickness $value)")
8 T) O# ~( u4 u7 |6 ]$ C! K( x6 S - (action_tile "eb_ltscale" "(getltscale $value)")! O/ {0 {% A$ A* o, [
/ b7 A2 h m! r. w- (action_tile "pick_1" "(dismiss_dialog 3)")
. Y+ D8 @; y' `' ~' {+ k - (action_tile "pick_2" "(dismiss_dialog 4)")2 P7 V$ I9 G. v8 Q0 Y
- (action_tile "pick_3" "(dismiss_dialog 5)")
9 b9 o* a+ p0 Q* ~8 e - (action_tile "pick_4" "(dismiss_dialog 6)")
' h* K4 U& t+ ]: t0 w; \ - (action_tile "x1_pt" "(ver_x1 $value)")
# P- }/ O# h5 I* _! c/ o# { - (action_tile "y1_pt" "(ver_y1 $value)")
4 {) V3 i/ p5 s- B - (action_tile "z1_pt" "(ver_z1 $value)")
3 M8 }4 @2 }9 Y/ Q/ b* s9 M/ o7 D - (action_tile "x2_pt" "(ver_x2 $value)")
! R$ X( Y+ A" O. N - (action_tile "y2_pt" "(ver_y2 $value)")* x% H3 B; D* j7 x6 d
- (action_tile "z2_pt" "(ver_z2 $value)")
. h8 Z! e2 u; f: U+ E4 y - (action_tile "x3_pt" "(ver_x3 $value)")* q8 w2 K( }& n7 @3 B# v
- (action_tile "y3_pt" "(ver_y3 $value)")8 ~4 m2 \* y% m. Y7 M
- (action_tile "z3_pt" "(ver_z3 $value)")0 Q/ ^+ k$ A( ^/ p6 w& m0 X8 e/ ?" ^
- (action_tile "x4_pt" "(ver_x4 $value)")% g. ~" u9 C5 g. g0 k4 A6 D* Q
- (action_tile "y4_pt" "(ver_y4 $value)")3 g, I1 g/ U: Y' u7 k7 k5 J7 Z
- (action_tile "z4_pt" "(ver_4 $value)")
8 J- x2 B* j- b
: v1 m- B9 Y9 z& f; K- U# L- ;; Action tiles for Xline & Ray6 ~2 h F) @; d; C _
- (action_tile "xline_x1" "(ver_xline_x1 $value)")
2 g. z N) ]# s, R2 q - (action_tile "xline_y1" "(ver_xline_y1 $value)")
2 t( e9 R/ g; h - (action_tile "xline_z1" "(ver_xline_z1 $value)")* H* |9 o+ q: J8 i3 Q+ ]+ a% Z( `
- (action_tile "xline_x2" "(ver_xline_x2 $value)")
) B1 O9 n3 w8 U5 n - (action_tile "xline_y2" "(ver_xline_y2 $value)")
9 ]0 _+ D3 ?0 `1 P8 x; R9 K - (action_tile "xline_z2" "(ver_xline_z2 $value)")' _5 B8 a* I" f
- ' ?( P: b9 ]- t( {* U% |
- (action_tile "edge_1" "(setq edge1 $value)")/ J' C; a3 h; X# e% R4 |2 t
- (action_tile "edge_2" "(setq edge2 $value)")3 o# s) e" C# `$ X
- (action_tile "edge_3" "(setq edge3 $value)")8 s- y, U/ Q% q1 }0 W* d; P
- (action_tile "edge_4" "(setq edge4 $value)")2 u7 @! ?2 M6 h+ d
?% U. z4 ?$ [. f6 P5 L2 y- (action_tile "radius" "(ver_rad $value)"): @& F9 K6 b1 V$ O; \% v4 k
- (action_tile "st_ang" "(ver_ang1 $value)")% O7 O! e- I- [
- (action_tile "end_ang" "(ver_ang2 $value)")& z; c7 `# p4 q. v
- (action_tile "end_eang" "(ver_eang $value)")
7 L/ K5 C( l: K! y - (action_tile "minrad" "(ver_minrad $value)")7 g. O2 \( ~! W @* u
- (action_tile "majrad" "(ver_majrad $value)")! R# U; L/ k' M% [" \, i
- ( H( X' F1 c9 E* w+ R" q% X+ L
- (action_tile "xscale" "(ver_xscl $value)")0 {, f5 S* }& [" m. z" h
- (action_tile "yscale" "(ver_yscl $value)")
& d0 j$ }3 t( r! _* Q5 J - (action_tile "zscale" "(ver_zscl $value)")/ d- B, K! R \$ }* S3 ~( e
- (action_tile "rot" "(ver_rot $value)")" F$ _$ P/ F) ~* E8 e) _$ {
- (action_tile "columns" "(ver_col $value)")9 C6 I# {5 [- h, S- U# }" r
- (action_tile "rows" "(ver_row $value)")
" ?9 D2 r( u ~1 ]. Q - (action_tile "col_sp" "(ver_colsp $value)")- y& q; }2 X2 @1 r+ {/ ~5 X" x/ K+ v
- (action_tile "row_sp" "(ver_rowsp $value)")
( o+ c* S! P1 W) I
, ?1 }9 L/ W( ?% M% o7 z( U c* {- (action_tile "hght" "(ver_hght $value)")
: T4 m+ A" C* T$ m4 F$ I4 q - (action_tile "wid" "(ver_wid $value)")
& @1 E2 w! l% E) C' W% I - (action_tile "obl" "(ver_obl $value)")
4 a( O5 S* l c5 E! N9 Z$ A - (action_tile "style" "(style_act $value)")
4 }# C0 h0 k! O# A; f& ?) N1 F0 U - 4 O; g/ @0 u$ l0 O1 @$ f: Z7 K
- (action_tile "t_string" "(ddgettext)")4 g4 X# B5 n2 w
- (action_tile "tag" "(ver_tag)")8 R- i& h |3 k/ f/ t9 y2 X
- (action_tile "prompt" "(ddgetprompt)")4 e5 i0 v# f0 B# c
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
/ E! [; E, w; X$ \( G6 l - (action_tile "upsd" "(setq upsd (atoi $value))")" p. Q: u7 W, G
- (action_tile "inv" "(setq inv (atoi $value))")7 ~" b7 E' h; q" R0 ]/ N" G3 q* r
- (action_tile "con" "(setq con (atoi $value))")( u3 K4 w0 b1 C/ q
- (action_tile "ver" "(setq vfy (atoi $value))")4 Z' o Q3 M) T+ s* T
- (action_tile "pre" "(setq pre (atoi $value))")2 M( m4 t+ i6 N8 @: o; q* A$ @9 z
- (action_tile "popup_just" "(jlist_act $value)")
6 ~3 C5 c) C n4 O7 `- z - % c' y$ q# j% S% ^+ w
- (action_tile "closed" "(setq closed $value)")
* n. u* }5 R- c3 `, i$ n - (action_tile "ltgen" "(setq ltgen $value)")4 K; V3 T( f" `
- (action_tile "closedm" "(setq closedm $value)")
, M/ C: q g+ z# e& z - (action_tile "closedn" "(setq closedn $value)")8 Z9 o |+ y2 W% ?6 `8 P& c
- (action_tile "next_v" "(next_vertex)")
$ K- |" Y- m, ~ - (action_tile "xcliponoff" "(setq xcliponoff $value)")6 c+ I0 @$ w+ P* `! l
- / Y; {. m- J7 p! g' R
- (action_tile "next_cntlpt" "(next_cntl_pt)")
) i6 [9 ~2 ~9 d0 k - (action_tile "next_datapt" "(next_data_pt)")* \" B( R- l! u' `
- & m" s3 Z6 X9 L/ v2 v) V! r, p2 c
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")' G" x/ _2 }* T* r) h P' F8 f+ W
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))"), R- m; A4 s( {4 L. t. {9 v
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
( B4 J4 n5 L6 t0 e: G - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
0 J5 _( \* O( U) I/ ^4 C+ P; D% K' m - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")+ F! I6 Y' [; F6 {0 ]4 C
- 0 O& r$ ^' j) R: F$ m0 H
- (action_tile "u" "(ver_u $value)")
7 `# D7 B9 \% g5 f- [ - (action_tile "v" "(ver_v $value)")) E3 l+ q# A6 W
- )
7 z; S% V# q/ w& c5 \* o* V
L" s1 J6 ]" ~9 ?0 [- (defun ddgettext(), T T7 R- u$ P+ S! b9 _
- (setq text (get_tile "t_string"))
% l# a; O) z0 g: x% r4 [8 ?' x - )+ \* e- c8 R/ y; |1 b I% w
6 N. d% g0 I9 M# u- (defun ddgetprompt(), v- H3 C" o& [: j) l
- (setq atprompt (get_tile "prompt")): s8 P B4 m3 \
- )8 L( T/ w: q9 ?- C6 h
3 i- E6 s: A4 ~, X5 Q- ;; As OW doesn't support disabling of individual radio buttons within$ I/ V) b2 W/ y8 o% G* R/ l
- ;; clusters, a check must be performed as to the legitimacy of the
# z5 H0 Q, {$ X/ K6 n3 u - ;; button pushed and reset if necessary.
# A) f( j; a9 t1 j( b3 \ - (defun radio_gaga (pushed), I \- b; {; Z1 k, Y, s
- (cond
, ?* E/ G9 P7 Z - ((and (= pltype "3D polyline")- F) U' z- B3 y6 |
- (or (= pushed "fit")
& j# W! T/ q t# X+ P - (= pushed "bezier") B3 q, s- L! B' P9 Y
- )0 Q6 |0 q* o6 J/ |; m3 C
- )! p% I/ a1 Y1 z0 M. l3 y* c7 [
- (set_tile "none" "1")1 G9 `" Y& D+ F+ K0 A
- nil/ A. H$ V6 f1 D
- ). J7 e" H" t, j9 u
- ((and (= pltype "3D mesh"): q6 M& n) s7 j' u; \0 Z) ?
- (= "fit" pushed)0 I! n& S4 @5 O) z+ b0 m
- )
# s) J# k: f+ c; t; s& j - (set_tile "none" "1")
4 v- T" F! Q7 Q3 ^7 V - nil5 A* s1 o4 R6 C# X5 S' _
- )4 r+ L! [! i/ H9 b% c2 O) a+ G5 O7 Y
- ((= pltype "Polyface mesh")7 t; M8 l7 [6 Q, ]( I9 p
- (set_tile "none" "1")( t6 B. l$ {9 }* r* p: Q
- nil
9 j0 L* [$ j* v" n0 w - )
7 S$ N- q9 c9 H) ?6 D S: a - ((and (= pltype "2D polyline")* H" L' E& \6 n# W3 o% }. J1 H
- (= "bezier" pushed)' f. Q- L4 y* O6 `, G" V5 A
- )
/ B+ @! `" r& r2 S1 c - (set_tile "none" "1")
" W! Z& w8 { n0 { - nil* w4 T2 y3 a3 I( j: k2 Q- E4 ]8 k
- )
8 }, `" P$ s/ ~ - (T): Y z0 v9 E; {( |' a& v4 P8 Z
- )
% Z& P0 m0 {0 c+ r1 k7 n6 v% T6 ~* I - )
1 p. C0 y1 i9 Y# K - ;;9 z. C. \, x! s. u9 i% A+ W% b1 `
- (defun set_uv (type_n)
9 h) u. G5 F1 @* ]& X8 T - (setq spltype type_n)
* e& e, r4 D5 f8 e7 @ - (if (= pltype "3D mesh")8 T; S! N4 C- K: l$ o" L
- (if (= spltype 0)
; j0 [6 Q R8 ?2 S% o+ {+ ]3 \ - (progn
7 b6 S. N' K3 g - (set_tile "u" (itoa (setq u 0)))
3 @* _5 P* W2 Z - (set_tile "v" (itoa (setq v 0)))
0 z9 |/ a* E0 ]- s/ @' T - )4 Z$ Y) a$ w) C" \4 o! Z+ C
- (progn% U. a! {3 I" i! Z* k) p! Y+ z
- (if (= u 0)3 N( q6 N4 B" e, p; W
- (set_tile "u" (itoa (setq u (getvar "surfu"))))1 f+ d7 h* f; F* E
- )
6 y8 D6 f7 W# H5 W. s$ y - (if (= v 0)( W; [1 N U _" W9 L
- (set_tile "v" (itoa (setq v (getvar "surfv"))))% `% a( d( @* x+ g0 C6 g
- )
8 M+ w, f5 ]# ]* E - )$ M( d; B1 p% z: t) {4 k
- )/ z, m# H* `& s7 ^0 g
- )
. \ n- p9 j" J/ a% `1 z f: V. j - )
: n% b, @! e! ^+ a9 e
, @, V! K) f8 m0 h k# r: j
. L2 ?5 J! r1 n. b( G# j- ;;5 L( ]% F1 k+ o( C; `# N& I$ f
- ;; Verification functions* ? W9 B/ u/ E, t
- ;;
2 |4 e4 T' v+ h u7 I# u7 Q9 b) C - ;; Verify distance function. This takes a new X, Y, or Z coordinate or
" w6 o4 B: z$ i) i! g7 A0 P" J - ;; distance value, the tile name, and the previous value as arguments.0 d; W% T, e" ]8 h% B
- ;; If the distance is valid, it returns the distance and resets the tile.6 h; K# C) b. A4 S! m) J0 q
- ;; Otherwise, it returns the previous value, sets the error tile and keeps4 Z W( m9 T; k/ x, \
- ;; focus on the tile. Shifting focus to the tile with invalid value can
! P3 ?% O3 T' Q2 U- D. @4 t - ;; trigger a callback from another tile whose value is valid. In order
$ S v9 t7 H* a- J: j - ;; to keep the error message from being cleared by this secondary callback,
) @- C( w' s6 `8 A- r1 X - ;; the variable errchk is set and checked. The last-tile variable is set, T7 j7 M6 ^$ [% R o
- ;; and checked to ensure the error message is properly cleared when the& N2 w8 ^7 V' [ V7 H
- ;; user corrects the value and hits return.
3 Y7 a g. k3 W1 L! Q' ? L - ;;
* a: \# ~ x+ d" F$ B - (defun verify_d (tile value old-value / coord valid errmsg)6 ~ X, A; q6 f
- (setq valid nil errmsg "Invalid input value.")
: U( e( u* O7 U% `5 d( M' @1 X. W - (if (setq coord (distof value))' ^8 C+ b, y# ?( O8 ^& {
- (progn
2 P7 }' F" J0 M* c C0 E2 l' Y - (cond
3 n; x3 j) z5 j8 F1 r3 z G - ((or (= tile "radius")
! t) S% U* u/ y* h% L' n: V) k1 e - (= tile "hght")
0 v5 @ q( B8 _9 l+ W7 c - (= tile "wid")
/ |& C5 r N8 [6 N. A0 H* {6 | - (= tile "majrad"); k8 |; V5 N+ ~$ ~
- (= tile "minrad"); q: V) Y6 a* ^
- (= tile "eb_ltscale")
" ?7 R$ s% N0 K x: d' k2 V: } - )% u* e5 } w9 O" E
- (if (> coord 0): x, G, e8 b) o# H; M; `3 Y
- (setq valid T)
+ x8 e7 n0 h$ t# N5 w% L# P - (setq errmsg "Value must be positive and nonzero.")3 V$ O% r, x9 z9 Q1 d2 K
- )0 p* r. F0 g" b1 F+ [) h
- )
7 u$ C( \) x* [ t1 r- H - ((or (= tile "xscale"), @; n9 N. W6 e8 d8 e3 B2 [
- (= tile "yscale")1 c9 w) `( o5 e. Y0 |# F: {6 Q! R
- (= tile "zscale")
& t% H+ n, {0 Y - )( s1 B& _2 W5 {. y) n7 `+ G
- (if (/= coord 0)
+ l; S& c% _1 \! \8 G7 ] - (setq valid T)
: u- ]5 K9 T% T( M" B& q - (setq errmsg "Value must be nonzero.")
0 H; p* ^: Y; e0 l* r - )% Q! h2 h) ~/ K- @. Q
- ); `3 W) \$ f& U
- (T (setq valid T))3 o3 r* E8 \( _ a
- )
" {6 m9 O! P# B! ]+ [0 f! Z- j! S - )% c; I$ c. k0 A. U; r2 Q
- (setq valid nil)4 W8 l' D2 h. P- T" O* F8 D( \
- )5 d( z! s4 w$ g, k; E
- (if valid8 P) S* b2 u$ h( o
- (progn8 j3 g2 c& P& X5 I n0 v
- (if (or (= errchk 0) (= tile last-tile))* w' _: W# Y& Y6 i& x
- (set_tile "error" "")
) P# m: V/ i9 A( x" \ - )
# y, l2 W4 Z' V - (set_tile tile (ai_rtos coord)); E% F" b' \6 Q9 X# x# l+ b. U
- (setq errchk 0)) r. b' B. b6 Z& t0 u* o
- (setq last-tile tile)6 H6 t5 Q% I0 C& F+ ]. q# w
- coord& _8 O$ c! S. G6 E3 A
- )2 f- R' [) R& @' z
- (progn
q& O. g9 F1 {+ I. d6 T0 p& r - (mode_tile tile 2) ; Move focus to offending field
2 \% L/ Q# E% L - (mode_tile tile 3) ; Select offending text
& _0 M0 ^* R0 h3 p8 t' w) C - (set_tile "error" errmsg)9 }( M, k" g4 [1 g
- (setq errchk 1)
% t3 h: H, |' v: K: O - (setq last-tile tile)
6 N5 X& i0 l9 S7 D% a" Z4 ] - old-value# Y$ Q, Z: u$ F; C- c
- )- Z* O1 P9 u' t( Y! M3 V, w. t' \, V
- )
# B, d7 d# b$ v! V8 z - )
2 F: d6 h; X# y* [9 } - ;; Function for Xline coord edit box checking.
8 U) Z# ] C* b/ n - (defun verify_xline (tile value old-value / coord valid errmsg)7 ]* R4 t" A# P
- (setq valid nil errmsg "Invalid input value.")
$ R: e$ ^/ N. M0 t" }3 {# i/ Z - (if (setq coord (distof value))$ n4 u5 I! n) J8 D, d
- (setq valid T)
2 j1 c( W$ [ F! n3 V8 E - (setq valid nil)8 F6 G: |1 |- h5 G
- )9 |, | o. q5 q1 f$ M) f. J
- (if (and coord
1 v* N) s$ O2 _, q; [) g - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )' l1 d4 p& Z% M/ o- u
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )4 b. `2 U$ q, M/ F, {
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
- v5 Y7 Y$ B: I/ g0 M1 E - )2 L9 I" w7 }# W# d% [
- )
. [0 x$ |$ u! Y. m - (progn
- @! _8 {* G8 U - (setq errmsg
$ o' u; _& T0 ~' h, m+ v - "The Root point and the Second point cannot be equal."); z$ |) B) O+ x6 U
- (setq valid nil)
" d4 s# _ O) [# e# i, @ - )! U: h1 }( ?8 A! i$ V7 D0 T
- )
: V! e/ E- ]# Z8 c. \# H# c - (if valid
0 [* r5 W/ r* @% X2 _ s% j/ E/ W - (progn
, t* ^. ~# X$ |6 B3 L0 |8 y - (if (or (= errchk 0) (= tile last-tile))2 X& J5 g$ {, R3 E4 j$ I0 @* D9 V
- (set_tile "error" "")0 v; {7 ^& b$ G! V5 z
- ) i2 K9 H) d) ~
- (set_tile tile (ai_rtos coord)). F L: L* `" u4 x! }
- (setq errchk 0)
9 G5 w( l' e, n4 S - (setq last-tile tile)
$ `( [ i# N$ {) o* ?! O, f - coord
; P/ O7 K- j. x U - )( U) P+ y- P- W" w
- (progn0 i. G9 x8 d6 c2 {" H1 s
- (mode_tile tile 2) ; Move focus to offending field) i9 g8 f2 g) q+ o
- (mode_tile tile 3) ; Select offending text
* w, ?/ G9 ]; L" T5 |. ? A3 V - (set_tile "error" errmsg); U8 x7 Q8 }2 q
- (setq errchk 1)
( v5 b4 A; E; S- P7 }' ] - (setq last-tile tile)! h& e/ X7 ?) _, {* ]" y0 d2 B" \
- old-value, Q3 R: j- i' Q0 l: n6 K
- )
& X- I1 F! ?9 w/ w2 c - )5 S" c- v |3 y) L7 @9 F
- )
9 e1 W6 F# V! r. R2 R - 1 x! y- h( B! K4 g) V
- ;;' r0 u2 ~0 s) C4 D% f, z
- ;; Verify angle function. This takes an angle and a tile name as arguments.+ j8 f8 g5 f1 o$ H6 s
- ;; If the angle is valid, it returns the angle and resets the tile.
# V" D3 ]' q- I* W - ;; Otherwise, it sets the error tile and keeps focus on the tile.
$ c2 A: T; J: r( a+ g - ;;
6 I" p/ P9 X) I4 q; w - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
" `1 h0 b" i; c - (setq valid nil
8 B% {2 w4 ~1 C. m! @ - errmsg "Illegal input value.". ]1 E# i' @0 `" ?4 o, ^7 j
- )7 g5 l3 k5 m% P5 l8 G
- (if (setq ang (angtof value))8 ?! Q- H& J. t) S9 Y! O/ X
- (cond
: L7 I: b: r* [& L9 ^9 F - ((= tile "obl") ; Restrict obliquing angle
, Q% ?( M V7 Z2 V: e7 C - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001)) q4 v+ ~# o6 A. ^' @
- (if (or (<= ang oblqmax)$ q% X& C' k B5 l$ E* C. Y$ j
- (>= ang (- (* 2.0 PI) oblqmax))' u( F* w; }$ S+ X
- )$ f) t8 t+ | V. |- ]0 ^. [
- (setq valid T)
' N1 j# ]# s- J5 O- C% X - (setq errmsg9 V/ W5 K# t1 j: H2 l: s9 Z
- "Value must be between -85 and +85 degrees.")
4 M% ?& O- K+ u9 E ]$ Q, { - )& @3 }) }' v! C3 e% O$ M1 `8 V
- )
7 n! o+ n! S2 R1 v- F2 U9 P- I8 x. [ - (T (setq valid T)) ; Other angles not restricted6 D. e+ e* Z n
- )& _ U2 q5 D9 v. N, w
- (setq valid nil) ; Invalid angle input# K# e1 r' T7 E8 P- Q
- )& n( m; v! _6 Z$ J# g
- (if valid
! X6 R2 C6 c( G2 q$ K9 U; X3 r V* K) s - (progn* f/ t: c2 L5 ~6 | H
- (if (or (= errchk 0) (= tile last-tile))" M, U( N3 w' C& G/ J
- (set_tile "error" "")7 N0 ]" I) K2 a: b( a6 w
- )+ d1 c+ O/ _( Z# q8 P1 k
- (set_tile tile (ai_angtos ang)): T7 N2 | C( a8 N4 z& V& p
- (setq errchk 0)4 j1 P1 Z* o, k& `- `: v
- (setq last-tile tile)
: V5 p" s: P( U6 @9 Z# S - ang0 }# i2 C1 f8 M' I; q3 h. K, C
- )0 C6 P" U$ i) u8 E
- (progn
8 ?5 t- ^/ Z: ~ - (mode_tile tile 2) ; Move focus to offending field
! G! x0 {7 P4 U( B/ v( q1 f - (mode_tile tile 3) ; Select offending text
+ E) l9 M7 \- X - (setq last-tile tile)
) T6 s* l2 S, Y& s - (setq errchk 1)& K9 C- g. V0 q8 Q5 y# d
- (set_tile "error" errmsg)3 r L, x: q% Q3 K: u- V- N
- old-value
- _/ O( ?: |7 m3 t- ?$ R: ?& _ - )
) Z* E5 ^ R0 o: n7 e3 q7 z - )3 ]# N" t4 B$ ?
- )
- Y8 e: h! p, T- x - ;;
/ _( o4 V' a% Q* R# i$ G5 ? - ;; Verify angle function. This takes an angle and a tile name as arguments.
) w$ K# I" z4 d, p$ Z% t - ;; If the angle is valid, it returns the angle and resets the tile.- E$ a2 l) Y& R; S7 K" X- h
- ;; Otherwise, it sets the error tile and keeps focus on the tile.: E6 H, H! R0 P g7 D2 h
- ;; This function is specifically for the end angle of the ellipse object. If7 P9 ~3 ?; ?- d8 U
- ;; the end angle resolves to zero then we want to display it as 360.( I8 s* R* s+ }( [, |. n, T
- ;;
( \0 K) v1 J+ | - (defun verify_ae (tile value old-value / ang tempend)
* b- a! o# Q0 f( `; H" V - (if (setq ang (angtof value))7 h* ]9 n: a7 Y! X( O0 m! | i
- (progn
B7 |8 f4 x+ {8 n3 @ - (if (or (= errchk 0) (= tile last-tile))) ^% T" Y) u7 P2 M N* L
- (set_tile "error" ""); o7 X9 D2 a# m$ i7 J0 ~
- )/ \9 |. E+ f" o
- (setq tempend (ai_angtos ang)). Y7 X% ?" K% t; T
- (if (= tempend "0")
- N# A7 _1 h7 C5 K - (set_tile tile "360")1 m7 Y' [% B! }* i1 R$ b4 \
- (set_tile tile tempend)/ d! K9 d m3 ]% F* t: L
- )
: F0 u& p, x# `" G- p& g - (setq errchk 0)' D4 z$ J2 a! Z2 ~4 ]7 E' A; z) F5 A
- (setq last-tile tile)
1 a* v. i4 P& \& D. f" b# e - ang
/ P+ A0 ^& S! q8 f8 y/ q - )
4 Q4 n" a' O. k: O# Z7 @# T7 V - (progn
3 f. w( U) f& E% F - (mode_tile tile 2) ; Move focus to offending field
$ o# \( U; L( D. q, X F+ Z2 f8 } - (mode_tile tile 3) ; Select offending text
" F* T) p: I2 b9 ?3 U: w+ U - (setq last-tile tile)& ]- k1 ]7 [$ k+ i
- (setq errchk 1)
) X8 a; @$ M L* f - (set_tile "error" "Illegal input value.")' q0 ]; {. M( J: h9 x3 K
- old-value" i/ ~! g, y; U$ ^; v. D) Y
- )7 f( S# t8 C9 s& |4 ? ?4 _/ L
- )
4 ]. `# {3 i/ [ W3 z: K - )3 a1 H- H- l+ c4 u% P: u4 j
- ;;
: {4 b* H1 `; R; N* q0 r& B - ;; Verify integer function. This takes an integer and a tile name as- L: ^9 r* J! P9 C2 c" d
- ;; arguments. If the integer is valid, it returns the integer and resets the# q. f `1 g& w8 j* b7 s
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
7 {/ B+ W% B# z - ;;
- t# O: L9 P2 J: ]) `+ I( f# M - (defun verify_i (tile value old-value / int valid errmsg). K5 L } \8 H# _
- (setq valid nil) _7 a% r2 b$ X" X" M9 _
- (setq errmsg "Value must be an integer.")
% f+ H" o. P1 m, P$ I7 q" \ - (setq int (atoi value)). Z* z+ m! v3 x7 J$ l l. j
- (if (setq intchk (distof value))3 ]/ V% l! i2 P8 y8 V& O
- (cond4 X3 a3 N7 d# w/ ~' H O
- ((or (= tile "columns") (= tile "rows"))* X+ L; E! a2 u& ~- \$ [
- (if (and (= int intchk)2 ^ }6 i1 t' Z& p- W) [
- (>= int 0)9 b# x- d9 d& z
- (<= int 32767)6 B3 ?5 F4 H; r4 b+ E: `' @" {9 O
- )
7 h5 s% }5 j" X - (setq valid T)2 U0 Z9 _3 c' |0 v6 d' J' t& [
- (setq errmsg "Value must be an integer between 0 and 32767.")) S. m7 M. z6 ~2 N& k# R: B
- )
; ?5 M3 `9 J7 E! A/ r4 g& P - )
% S' N$ {/ _- N; I - ((and (or (= tile "u") (= tile "v")))
" k( g2 V: j) o- U: \ - (if (and (= int intchk)
( |, \4 b* M2 I1 ?& y3 O0 t - (>= int 0)
7 A( g5 A3 E. B5 }2 W$ @5 c! ` - (< int 201)% Z$ I# `( P/ Q8 Z' ]/ r/ v
- )
8 A! S! _; W7 d, N - (setq valid T), W0 I2 s! y* P- i/ m/ V; k
- (setq errmsg "Value must be an integer between 0 and 200.")
7 N- P+ m$ R5 m( |0 n3 P2 Y- U - )
3 a) P0 v7 \2 [( W/ z) N - )( N- i0 c3 O( X
- ). G2 o3 k6 x3 ~& x- A
- )& p1 B" h+ X- q2 W4 C8 Q
- (if valid
8 ^1 [( v, \! L - (progn
" z) [! {2 Y8 P- v - (if (or (= errchk 0) (= tile last-tile))
$ h% B! o0 X7 m- q( q- t - (set_tile "error" "")! T) r# n: G& n8 c/ R6 |' u
- )
g" w5 [ L/ t - (set_tile tile (itoa int)). i2 ?& N! F0 g- l$ A( U
- (setq errchk 0)
, F; {5 I' i2 m5 J t2 f - (setq last-tile tile)
, L) z3 P- a q* V - int
% m5 F% w, k) s: O - )
$ ?" ]) [$ C% V+ O. S - (progn3 A; c+ }7 [) |- O
- (mode_tile tile 2) ; Move focus to offending field5 D( u. H3 Q0 \* `! D6 H9 D
- (mode_tile tile 3) ; Select offending text3 x8 ^: M- K5 ?% M) c
- (set_tile "error" errmsg) A+ E: w' \: @; e' D7 a9 b
- (setq errchk 1)
" N2 h9 A2 i3 j. G2 d& q6 ] - (setq last-tile tile)
+ m: m$ f% }, F - old-value
3 x& I; h; a3 c - )0 z* R& F' `+ z7 K( x2 d
- )
0 P6 c- M) E) N* _. Y9 O9 V2 s( v - )& y0 B+ G1 V4 ~
- ;;
' B: @+ f* n' J5 N! l( n - ;; Functions that verify tile values for integers
4 j, W. L0 q$ V* i" p* k - ;;
5 `9 ~0 z: ^+ X. N - (defun ver_col (value)
) Y6 [* A, ~1 D7 y0 W - (setq columns (verify_i "columns" value columns))3 @" F/ d; `; \3 o' ?& y' U
- )
3 d* i- i9 Y8 ~. F7 D - (defun ver_row (value) w. k/ L- D$ c
- (setq rows (verify_i "rows" value rows))6 h- V3 u2 e2 R2 Q3 Z0 p
- )
% b+ |( R P7 _8 ~5 s - (defun ver_u (value)
r- T1 H& A8 ^8 K9 u - (setq u (verify_i "u" value u))
: z# H# |0 o/ k- x2 c& l7 h+ O - )% C \; Z( o7 I) {6 {
- (defun ver_v (value); z) K2 {2 v. C! O
- (setq v (verify_i "v" value v))9 t0 a7 P" l6 _- G( s+ s/ w8 c
- )
6 y* `$ v( j9 d+ l - ;;) s2 L0 b) w. j% [5 {( Y3 @
- ;; Functions that verify tile values for reals- x) _+ A8 P: y- r
- ;;! O$ r5 t5 d% v, J: `( I$ S
- (defun ver_x1 (value)! T1 t/ @( I8 S$ {! H1 h' `
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
8 n: U9 ?5 H: E& u" x3 X9 k- ^2 U - )( ^# f$ i7 f. S& M3 E$ S! I
- (defun ver_y1 (value)% X ~8 f, ?) Z& m; W2 D) C1 e
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
2 I0 V/ B6 u& y& r g - )
9 n/ U$ c& Q5 q - (defun ver_z1 (value)9 [. b" [. f- f
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
4 @- Z; u, @ b6 d/ d3 e9 R; b - )& b* E$ C* \) G! n) w' n
- (defun ver_x2 (value)0 }6 G9 v- j0 K5 n: Y* W
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc)), a( U. B9 c2 m* Y! w1 s9 m
- )
# h" y+ _; J# |- W4 [ - (defun ver_y2 (value)
: a8 X& d: v* m: ~* E - (if (setq y2 (verify_d "y2_pt" value y2)) (calc)). \# B4 y6 V/ Z5 r/ v
- )
9 {2 l, q5 {9 t - (defun ver_z2 (value)
) z$ T0 Q8 c! _4 {8 f! ]/ x - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))% E1 s) d4 _, x! F
- )/ K9 }% O; l7 W4 B' J
- (defun ver_x3 (value)
* V* A! j: }0 ?: @' N5 x" ~ - (setq x3 (verify_d "x3_pt" value x3))
/ x: h9 }3 A7 F5 l+ A3 W' p: ^' }* D - )& Z' m9 f+ o) F* U/ \3 d' c4 v
- (defun ver_y3 (value)
2 ^$ g( l: M8 Z! @; ?* ^ - (setq y3 (verify_d "y3_pt" value y3))" D7 H% {( L: k1 Y
- )9 O2 q# k# V7 Y8 d8 o
- (defun ver_z3 (value)
4 d# X# U( _/ J1 I2 K0 ^7 m3 s! w - (setq z3 (verify_d "z3_pt" value z3))
' \2 h. r' e( k- u9 J" n - )
; w% g7 Z+ m8 ] Q3 C) V9 v; J, F - (defun ver_x4 (value)
( f1 |# Y- `5 I - (setq x4 (verify_d "x4_pt" value x4))6 i' X, Y. E% r4 H; P3 C' ~
- )
; x4 c- D, T3 p1 P8 p% `# ~ - (defun ver_y4 (value)5 z. u+ U/ T8 p; I$ ^5 e: q
- (setq y4 (verify_d "y4_pt" value y4)), \" n, P0 m7 m! W8 L$ {
- )
2 e* X' Q2 }0 J% X9 v - (defun ver_4 (value)5 N; D8 ?% L$ O' U
- (setq z4 (verify_d "z4_pt" value z4))/ `, I! w8 Z* s! P
- )& u6 [3 _* H; F, R
- (defun ver_xscl (value)
/ F" r. u2 `, y( l8 t+ S - (setq xscale (verify_d "xscale" value xscale))
; [/ ?: E: l5 ?/ Y - ); ]2 ~3 Y1 w% I6 W
- (defun ver_yscl (value)/ \1 }0 ?# I8 ?. h2 M1 D1 w! e: c
- (setq yscale (verify_d "yscale" value yscale))- C% e) w2 a- q ~3 W1 S, q/ F
- )
& s& _$ R6 Q& X- {% a! A! b$ U+ W7 p - (defun ver_zscl (value)
. \( k m( F9 U9 v, N - (setq zscale (verify_d "zscale" value zscale))3 n+ v# Z8 ]( \
- )( c$ c$ d8 p" t$ ~/ }
- (defun ver_colsp (value)
, X$ s; j! P. m( f2 O - (setq col-sp (verify_d "col_sp" value col-sp))" C# `( N: {8 o* a4 M# H4 A5 t2 ~
- )( q& q- a3 Z* X$ ^0 T6 V- V7 C
- (defun ver_rowsp (value)) E$ |& m' M& ?2 }. u
- (setq row-sp (verify_d "row_sp" value row-sp))! G4 y7 J$ s t9 K+ H }; ~$ p( K
- )
6 C5 ?5 R4 h2 [) e) K' b+ z - (defun xclip ()
6 [; p$ j; o. [: m: u( |! L - (setq xclipmode t)
3 Y7 R8 n1 | _- z5 H$ w- c, { - (if (= xcliponoff "1")
% U4 s! @/ z3 L9 }: Z+ {0 X( i1 _ - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
, ^3 p t" N6 | [ - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
' `& _* ~3 b- R3 \: K2 j0 X$ `( s5 N - )
, w; p, v$ Z( N2 B) L - )
& ^$ h0 q3 s* z( t( H8 X3 X - (defun ver_rad (value)" i& G7 z8 k& M+ z& _8 q
- (if (setq radius (verify_d "radius" value radius))& v! a$ S* O% N# l8 K2 s& [
- (calc)
3 m5 s8 i7 k" J2 X% q( g+ W - )1 D. q6 ?# G/ g) Y6 M
- )
# V" V& ^6 |" t. G5 ~8 C8 @ - (defun ver_majrad (value)4 c: M, g5 T a6 y' B) C, s4 `
- (if (setq majrad (verify_d "majrad" value majrad))6 t5 c) R% U% `% S V
- (ell_calc_newval "majrad")
( v) z) d3 Q* v3 w6 t5 b' T - )! ~. z4 R8 m8 D
- )
; \1 M2 L5 Y+ b4 l+ J0 M* R - (defun ver_minrad (value)7 u% o, j- i2 }; @8 t8 u9 X4 c5 J
- (if (setq minrad (verify_d "minrad" value minrad))
% g# {2 B9 R& A; i- p/ ]! O/ F0 R - (ell_calc_newval "minrad")! Z' k9 t: K3 { M3 H9 |& Y& ~0 R& u
- )* f g) l8 \% w$ x
- ): g+ m, B6 }5 v% f1 l/ ^$ a
- (defun ver_hght (value)5 l; ]. F8 C/ U7 P2 a5 h; U
- (setq hght (verify_d "hght" value hght))
% M' z5 m# @" U - )/ C+ \2 L7 i x7 g- O+ a6 k
- (defun ver_wid (value)
9 R: t% v5 f; u- m \0 Q; V5 H3 z - (setq wid (verify_d "wid" value wid))
" ?1 k) l" \- m5 k' \& z- V - )$ ], t" }4 S$ [5 K+ ~9 h
- (defun ver_xline_x1 (value / temp)9 H2 @8 o! [3 N) m
- (setq temp xline_x1)
# u5 t8 i, Y. g$ f - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
2 y2 F, `( e2 x' G/ f - (if (/= temp xline_x1)
: U5 a: p. \9 C9 | - (progn (modify_xline 0) (set_tile_dirv) )
% b1 h# d! j' t; b/ Y- E7 y& }( C - ). Q; |+ c- W& X/ g
- ); l5 E/ l q( W, y
- (defun ver_xline_y1 (value / temp)5 ^- v+ _9 F/ ^
- (setq temp xline_y1)/ K+ s9 C3 d; h# b: C! P+ d
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
) t. S( i2 I! K5 A0 H - (if (/= temp xline_y1)
% b U+ `0 P. s1 R& ?. l2 F5 X& H0 x - (progn (modify_xline 0) (set_tile_dirv) ); S6 e" p0 Z6 S9 o
- )
5 ?, _8 R# K$ U. v. m - ); v4 k4 J( t4 W" N) L5 Y c1 l
- (defun ver_xline_z1 (value / temp)
6 M6 z) J& B' H1 B' C8 [4 T - (setq temp xline_z1)( M' a1 u: d! u
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
' W/ v% p' W0 B& W+ a - (if (/= temp xline_z1)
9 V' i) ~2 u; T2 M4 l. Z, m" ~ - (progn (modify_xline 0) (set_tile_dirv) )
! y( I) L% ]/ ~0 q - )& D o/ g0 n+ u j4 K& F- `
- )1 W9 R T5 `3 Y$ W, y, \; J. j
- (defun ver_xline_x2 (value / temp)% }5 U& l: s; }# ^( o7 R
- (setq temp xline_x2): Q5 D4 k3 R% _" t5 F
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
0 r O" {7 P0 P1 |3 V' k) s - (if (/= temp xline_x2)
3 F4 ~7 `3 O' N$ M: V - (progn (modify_xline 0) (set_tile_dirv))% E$ w+ c% H$ i: I1 X
- )1 G2 |& X1 X/ o9 m% y+ C- H
- )) d# P1 N o( r4 l& ~
- (defun ver_xline_y2 (value / temp)
+ o' U: u( q% P/ w$ | - (setq temp xline_y2)
# [( I9 O3 ?% { - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))1 i, C8 ?# a" i0 D. L
- (if (/= temp xline_y2)( ]$ T" u* p M
- (progn (modify_xline 0) (set_tile_dirv) )( y7 l& }% l" V, r" B, _4 M
- )' B7 I! p4 c2 G5 w
- )3 t! _ }0 z7 m0 l' l2 |( V$ a8 ]4 z
- (defun ver_xline_z2 (value / temp)! Z2 n f6 E% J7 g2 U' _
- (setq temp xline_z2)4 N" Y/ D' ~5 M" I* t( r2 m1 q9 @/ w
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
9 t u( }# n* J - (if (/= temp xline_z2): E; B1 U0 K! `" Y
- (progn (modify_xline 0) (set_tile_dirv) )& `0 Y3 r$ m- v2 h( F) X7 U
- )
( q! S: \% S5 V: c# N - )
9 z, i% P4 P, k/ \- J9 H - ;;
" b }) D7 M& [" n - ;; Functions that verify tile values for angles
. F* | g/ O7 m. C: {& M - ;;3 G0 r* g& n" L& H0 c" v( {
- (defun ver_ang1 (value) u& ~1 q! Y% D, R" f! Y# C
- (if (setq st_ang (verify_a "st_ang" value st_ang))* w, f- S/ ]0 v4 K5 k( U9 d
- (calc)( {3 |4 ^* U; p4 Q+ g/ s- Z/ i
- ), ]. u* L8 p* T- |
- )
! t0 z$ p* A# n! }5 L - (defun ver_ang2 (value) K1 s: L6 O9 u: W0 B6 _
- (if (setq end_ang (verify_a "end_ang" value end_ang))5 d" h. X; O9 X; P
- (calc), Y2 ^- n5 Y2 i5 i. p+ [# d
- )
b# C0 s/ z1 H4 l3 o# R( C - )
2 s6 S) R s4 J* R8 X$ N - ;;
5 A( U; i7 [" V: N+ X - ;; Verify tile value for ellipse end angle. Handled slightly9 \: D1 p, r3 u. _* k4 }: D
- ;; differently than the other angles.
- U: g3 y; j# H7 f6 k - ;;
( q5 h3 \* D' H - (defun ver_eang (value)$ |' R Q; X& i( i! ~( d
- (setq end_eang (verify_ae "end_eang" value end_eang))
S- m4 n- N# V - )
! w0 \; R2 H# @* I, I' S1 _ - (defun ver_rot (value)
% S9 G r* x2 m( m7 w3 { - (setq rot (verify_a "rot" value rot)): O( r1 d/ d. k0 F1 x; }' ^
- )
- z1 @6 H; i/ Q/ t% t5 D5 X - (defun ver_obl (value)
, d2 B. M5 j, K6 r- ` - (setq obl (verify_a "obl" value obl))
! X0 c$ V+ P* b O) X - )8 J( r% a _/ f
- ;;3 a$ f1 i$ P4 @
- ;; Function that verifies attribute tag field for null string,
* O9 Z% s5 g5 Z- j3 F( } - ;; or a string that contains one or more spaces. Tile value
/ f, s* }; b5 _; k# Z6 G - ;; is also converted to upper-case as well.8 _# Y& j2 p* S; q6 z6 d ?: S u: m
- ;;
$ w& J$ d& g* H3 I3 z$ j1 r - ;;) |- ]1 |, C; A
- (defun ver_tag ( / tval)/ d8 P4 T2 [& ~7 n( f. \7 S
- (setq tagval (get_tile "tag"))
5 k" P2 R, o1 ~- b2 O4 }, R$ g m- ?# ] - (set_tile "error" "")
) _8 s/ ]' c+ d3 X; c0 ], ~ - (cond
; U% a* j8 N* j1 A; { - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))" P2 A! ~. Q$ V3 [& X4 l1 d& e# ?1 ~) t
- (wcmatch tval "* *"))
7 l- Q3 }% ?2 A! R' i3 g - (set_tile "error" "Invalid attribute tag.")/ w! }2 _6 t; P# S% y" [! I
- (mode_tile "tag" 2)% D& @5 j* R" ]- f$ q) F' @
- (mode_tile "tag" 3))7 L! ?( |7 K& l, ~
- (t (set_tile "error" "")+ H* |( O5 E, E/ H
- (set_tile "tag" tval)7 Q0 }9 j9 u* S: S
- (setq attag tval)))
% v) F2 ?7 u- l# [9 C - )
: ]5 D. l' T3 ? - ;;% j, D$ `) Q- I. ]- Z. M
- ;; Calculation functions- O: W: c# [8 k' Z
- ;;
, x& p* l/ _- H& A2 d( F+ d1 x - (defun calc ()
. N1 o# o" i# X7 W2 C. r" { ~9 v6 B - (if (= etype "LINE") (line_calc))
: H Z* F# t) p' } E - (if (= etype "ARC") (arc_calc))% u5 B$ `* S! d1 a) i. Y
- (if (= etype "CIRCLE") (cir_calc))
2 T8 w9 S- S/ M1 J4 H7 m6 _) k1 y - )2 v1 k: }. P7 b8 ]" g4 W
- ;;
& J1 Q6 ?# C" t: [5 T- | - ;; Calculation functions for lines, arcs, and circles$ t4 y3 B, |7 _5 `5 H
- ;;; i' ]4 ?; U- \* [2 K
- (defun line_calc ()
' h. Z {$ _6 @' T7 A6 H. Z( D2 C - (setq stpt (list x1 y1 z1))
$ O( Q1 s' _. t) K; F% W - (setq endpt (list x2 y2 z2))% V5 t: x! }" Q
- (set_tile "delta_x" (rtos (- x2 x1)))
$ i p0 h- p9 v$ y( X8 T% @ - (set_tile "delta_y" (rtos (- y2 y1)))
4 a) m1 l- f6 K9 c2 C( N4 j - (set_tile "delta_z" (rtos (- z2 z1)))8 L8 C; h% Z- j% w8 D4 P
- (set_tile "l_length" (rtos (distance stpt endpt)))/ G: X9 \$ t3 u3 s! g) } s9 D
- (set_tile "l_angle" (angtos (angle stpt endpt)))
( I, | J$ a* [, t - )
. M1 S! Q _5 `
. @+ @, H/ s k- (defun cir_calc ( / area units)
; J3 B! \$ q i) U6 r - (setq radtest radius)! Z! {2 q: T7 p9 u
- (set_tile "Dia" (rtos (* 2 radius)))
+ k. M0 b* p/ d& [. a - (set_tile "Circum" (rtos (* 2 pi radius)))
; Q0 _; ]1 B, O/ N# Z8 J - (setq area (* pi (* radius radius)))
* a% Z& q4 k6 D; D - (setq units (getvar "LUNITS"))5 W' ~* k1 }. s" \0 F; ~
- (if (or (= units 3) (= units 4))
' z, s, R" s" W1 e - (progn
1 k. s% P# S8 A! f9 f - (setq area (/ area 144.0))
c5 H2 V6 C8 K( A9 F - (set_tile "Area" (strcat (rtos area 2) " square ft"))0 i o1 A" O' l; B3 C
- )
2 Z" {; y4 X% P) m - (set_tile "Area" (rtos area))
6 z- B. M% Z% G4 J p) v& V - ). X' @. h7 b& M9 T& {3 _' r
- )
1 t+ N! B! p& s) M4 Y% h; i - $ D" k$ B; y. p6 \, J6 J
- (defun arc_calc ()
: ]: X8 P' k6 N! l; i4 f - (setq totang (- end_ang st_ang))/ D; r. Q, {! C, [4 n: g
- (while (< totang 0). v3 ~' b* U% G! ~" g
- (setq totang (+ totang (* 2 pi)))) {! X! n" z5 z& E# O. y; o
- )
4 |: y# u$ C- l - (while (> totang (* 2 pi))# P6 x: b7 p9 E0 R/ [; {) Y% i
- (setq totang (- totang (* 2 pi)))/ `: ?. l% M- a( t
- )
4 H% z' m" v; N X/ p1 W9 d - (set_tile "tot_angle" (angtos totang))) Y; [' r# \/ R- P" U
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
+ D8 p% p/ P2 I5 H! d; b - (set_tile "arclen" (rtos arclen))
3 V) H: I, a2 x: N, Y - )! q0 m2 C3 `( G- ?, b8 Y$ t. P' @
- ;;
7 X7 j. y; K6 ?% n6 Z - ;; Calculate the major radius, minor radius, major axis direction." J! g* e( x9 c% H
- ;; Get radius ratio. Convert Start, end parameters to start and end1 \- c: j+ x# _9 C8 U* V: w
- ;; angles. Save Major Radius value in "old_majrad" in case the user1 s: s$ h& o( c: i' G- X$ D: f
- ;; chooses to input a new Major Radius value later. It's needed to- A" W4 b3 k$ V n7 Z* f$ O3 }
- ;; calculate a new Major Axis Vector value.
7 ?% R: i/ j5 R7 A* L4 V5 K - ;;
/ w. U- y' N* [ - (defun ell_calc ()
7 o$ p2 A" D4 Q2 f5 o: J' I - ;; Get major radius from the major axis vector.
" X! n% \- u a) a! V& B - (setq majaxis (cdr (assoc 11 elist)))
$ o. }5 d t7 A1 m: `$ E, v - (setq xx (car majaxis))
7 [& |9 E9 L2 v) l - (setq yy (cadr majaxis))1 `! u. z2 L5 U4 [% d
- (setq zz (caddr majaxis)); z' F. s* v7 f X& C9 f
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))# X! [) |4 [5 N8 e
- (set_tile "majrad" (ai_rtos majrad))
; `! }( o( m: A - (setq old_majrad majrad)
~$ m: Z3 Y. U- l) h7 w4 ^ - ;; Get radius ratio- P+ Y7 w x' ]
- (setq rrat (cdr (assoc 40 elist)))9 L5 G2 T- I) ^! |
- (set_tile "rratio" (rtos rrat))' u' R) v% @, A) R
- ;; Calculate minor radius
/ b- L9 u$ s$ ~; j! A - (setq minrad (* majrad rrat))
$ Z& ^" ?: P& @3 C4 s' [ - (set_tile "minrad" (ai_rtos minrad))" q* |$ K2 H* B# ]+ W3 u9 n/ c
- ;; display major axis vector
8 v; t: U7 m5 X; ]* V( D4 M - (set_tile "Majraddirx" (rtos xx))1 {+ t+ a2 r0 V1 Z9 r
- (set_tile "Majraddiry" (rtos yy))
* _: {. ~$ }) F% D) @ - (set_tile "Majraddirz" (rtos zz))
& G# \8 y- J F" R
/ _& W; Z/ g& R5 W( `. A- ;; Convert start parm to start angle
& [+ \. s, N$ V" c* ~3 P2 v9 n3 K - (setq stparm (cdr (assoc 41 elist))) ~. G1 n; e! m i/ N
- (setq vecx (cos stparm))" j2 J7 G! F* f8 q1 a) n" y
- (setq vecy (sin stparm))
: a1 t6 a1 S D3 ~$ r1 w - (setq st_ang (atan (* rrat vecy) vecx))
, E2 q3 ?8 e2 F5 |1 c' F; D - (setq tempst_ang (ai_angtos st_ang))( h5 p, j% J: y" v
- (set_tile "st_ang" tempst_ang)
: P# z6 w. t$ I! S - ;; Convert end parm to end angle. If end angle evaluates to 04 X3 J* t3 m; e5 @; Q! }
- ;; degrees then display it as 360 degrees.
6 q! `1 i5 B8 u2 s+ W9 o - (setq endparm (cdr (assoc 42 elist)))
0 |! ^, _, B; f& k; L, a) M' K - (setq evecx (cos endparm)) n- N- K* ?4 e" Q$ C: k! i& L1 B
- (setq evecy (sin endparm))
2 t% t# \' ]2 y4 d1 v" J: T' l - (setq end_eang (atan (* rrat evecy) evecx))" U; D+ t" V# ~* ?4 L; T( ~
- (setq tempend_eang (ai_angtos end_eang))" [ X2 Z# O4 u# [
- (if (= tempend_eang "0")) f: ^8 Y: X. [
- (set_tile "end_eang" "360")
& _2 C' V! Q, U0 e4 e, w$ j - (set_tile "end_eang" tempend_eang), Z4 J M, E" ]* ~& x# l
- )
; v" t2 A# K9 c - ;; Get area of the ellipse.6 g9 B! z# ]7 W. z9 d
- (ell_calc_area)* x9 [# n! s3 b; t0 U( `
- )/ n, M, z) ^) Q( u3 {0 h, [9 M
- ;; Calculate area of ellipse. If it is an arc then
$ m: n. J9 b7 X Z3 q# u - ;; grey out area display.# g' D9 `2 o l" {8 S- m6 o
- ;;+ w- o" D1 f5 L; T
- (defun ell_calc_area ( / area units)
/ |6 f' V" I6 g; i - (if (and (= tempst_ang "0") (= tempend_eang "0"))$ Y8 W# V- ]6 I( O2 @
- (progn3 O# r* v+ s; t
- (setq area (* pi majrad minrad))
8 C& m4 u; C' l$ w - (setq units (getvar "LUNITS"))0 {, u2 h; V! [" X a6 }' H: d
- (if (or (= units 3) (= units 4))- }) ]. q1 {; @8 p+ s7 P
- (progn F7 E, y( L( ^4 D( ~/ L
- (setq area (/ area 144.0)) |+ o: B3 V- m. t+ S. J
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
5 P$ Y4 F: E/ \! S - )
# u( [, K+ Y/ K) {: c, t, B; g - (set_tile "Area" (rtos area))' a* {8 X) w) u* G8 o
- )
' ~: b& `3 y. f: b- P0 @2 N - )/ L. ]" g+ l& @" J
- (mode_tile "Area_text" 1)
$ p8 @8 ?$ _6 ]# v5 u9 y4 L' e - )
/ v3 _# J% j. A - )
/ r/ l8 C: v: `- H& r* ~ - ;;& v! @) I0 u' A3 B( g$ [
- ;; Calculate new values for ELLIPSE9 L6 V' x7 O" ~) c
- ;; Minor Radius, Area
+ o( L% B0 ~: m9 E! C - ;;
/ f; W$ B4 G! q6 V0 { - (defun ell_calc_newval (ell_tile)$ X9 Q% O7 n! t% t$ t% D2 W7 ~0 [; s
- (if (= ell_tile "majrad")
" U: B' e* ]/ e9 F$ @8 o: Y - (progn
) E8 ~6 g7 V8 A( a4 U Q - (setq rrat (/ minrad majrad))$ c; f) u, B5 G+ r4 ]/ T1 Z
- (set_tile "rratio" (rtos rrat))
9 o" M" l9 ?7 U) u+ m, c: t5 }2 }6 H - (ell_calc_area)
; Z$ h2 C1 ?; e- R5 a# B V - ), Q3 E) o1 u& e4 q+ J1 K8 N
- )" S4 [% Z9 S! v/ e
- (if (= ell_tile "minrad")
2 C) ]# D4 I$ q - (progn
$ i g# a! U( A) |% U$ [ - (setq rrat (/ minrad majrad))
s& Z8 o4 I8 G* x8 } - (set_tile "rratio" (rtos rrat))2 f- n6 L* e! c
- (ell_calc_area)2 r) B( s' a1 s% ^5 k
- )
+ T3 S/ A. Q3 g5 w* C8 T - )
$ W4 Q8 v7 {6 P - )
8 t: U9 [1 \' t0 [5 g/ A' z! j r
6 Z0 b, q* I( R: `1 q- c- (defun set_dimen_props (/ loop a stl txstyname)) S6 x" l2 ]- C1 V
/ E- o; W( m) O' t' _/ N- (setq stname (cdr (assoc 3 elist)) ; get style name0 v( `9 Q. L7 ^6 d
- stl (tblnext "DIMSTYLE" T)
2 Y) T' ?' n3 b% B8 w2 L) K9 { - stlist nil)
( W, J. n: A0 |) }8 B8 T; L A: C$ P - ;; Get all style names and list them in alphabetical order
) J) D& [9 B, F; c; D - (while stl
/ X6 Y- K7 f4 ~5 Q- o - (setq sname (cdr (assoc 2 stl)))6 h9 o4 ~& N8 C" q% w
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
) f4 k) }6 W z, [8 \ - (setq stlist (cons sname stlist)))
E" ?. Y1 D1 [$ u3 [ - (setq stl (tblnext "DIMSTYLE")))2 N' C9 s! a: n- K5 P
- 3 U7 ]3 R" b8 L
- (setq len (length stlist)) W# n" K" }: B6 w' W) l
- loop 0
5 g" b" }& X e! M0 U6 d - dimsty stname6 j1 y* M& P; ^3 |. j
- )5 c% q2 K! K2 ?# Z
' v l( V o6 h; T4 M2 q- ;; alphabetize style list, depending on maxsort
H/ h% `) j+ d - (if (>= (getvar "maxsort") len)
9 ?. r* k4 f8 D S! M: {! A - (setq stlist (acad_strlsort stlist))$ _0 `2 w* h% n. s! X; |: M$ K
- (setq stlist (reverse stlist))), A2 J$ X x- s& s" n% @5 {
- 0 j2 G# s9 I" l6 u; ?$ n
- ; *UNNAMED style (dimsty = nil at this point) is replaced with+ X& L) S+ E: e$ l
- ; the current style. After R13, we require dimensiosn to have a6 ]0 k, y4 o& w/ @ T$ i
- ; dimstyle, so we plug any holes where we find them." ]$ t6 E9 ^# l8 ` [2 z
- (if (null dimsty)
( E1 i0 M. U; C( ^9 c6 A9 h9 a - (setq dimsty (getvar "dimstyle"))/ a E5 |/ o6 t
- )
1 Y; I# t' h# R: J - ; Show the styles in combo box$ v* Y4 R: R1 _ |7 b3 p
- (start_list "mod_style" 2); j5 z, f1 P+ N
- (while (< loop len)
2 s& w4 e/ n. o - (add_list (nth loop stlist))
: w! `0 E) F9 | - (setq loop (1+ loop))# S/ S6 |* U5 s/ W3 ^, B
- )
$ B% S/ q6 U+ O( x& H
* e* |% H* x* z: ^, [* _0 D! h a- (end_list)/ z* @4 G+ j: r1 V
- / h# c! |! ^7 x% I
- ; Hilight the style name of the selected entity
# d9 S2 x+ k+ c/ ]9 T; D& T - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
! i6 r# X/ e1 A. e5 C$ y - (setq loop (1- loop))3 k: I; B, p; a" d- N( w
- )& G( y8 J$ `! `+ n
- (set_tile "mod_style" (itoa loop))
* ?% B, S$ J6 ~) A - Z0 a2 s0 H1 s, n
- ; The following is the list dimvars. It must be sorted in the same
2 [3 D% L1 b8 c- L - ; order as the resfub returned from DDIM (ADS module).1 p) K4 t" z9 H5 }. r' {
5 { w! N6 s1 [4 b% M# J& D; a- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"9 }& a, B. Z5 O* W9 v" x% F5 Q, Y1 m
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
! I( N( ~( ^* B/ C - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"% D$ c# b7 ]! P! @* e% C* r
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"- o9 U; c5 ?' U
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"0 `# o. X# y# o: Y* m6 N
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"& @) f0 q4 X: T4 G0 m
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
2 P3 X3 P c: ]) _9 W - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
; r! c9 W A4 b% m D. g+ W$ r - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"' z5 Q/ b: [0 _/ u; L% ^+ T
- "dimdec" "dimtdec" "dimaltu" "dimalttd"* ]- u2 Z e# q& h6 s
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"% |% ~' v0 m, E v6 A2 {
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
3 \. w2 W3 \4 z5 z - "dimtxsty"
+ n) i n I" V" [ - ))' ?* G& w8 `$ V# `* N+ f( z# j! X
- (progn
! l3 x( f, _* R( g - (setq sv_dvlist (ddimen_getostate dimsty)) \3 }2 ^$ p- _ Z' x
- txstyname (assoc 340 sv_dvlist)
1 w& {. n& e( B1 \4 | _ - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))3 r3 d9 C# d- R2 w& z
- txstyname sv_dvlist)
* ?4 D" ^4 p2 M5 l - dimlist sv_dvlist
: y- t5 Z; p% U+ V1 n - )
) ^' G9 t" p! R5 U - )
) ]. u8 o3 `7 D( z f- A; U - (if (= dimtype "DDLEADER")- _: e% Q9 g7 e# O
- (mode_tile "mod_format" 1)2 h' J# i5 ^ C' h7 ]
- )% c; k# N7 ^) q# I; ~; F# Z
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
2 ?1 S! F$ M7 M - (action_tile "mod_text" "(done_dialog 4)")4 c; a; Q7 G5 ~* ~; ~$ m5 i
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
0 O8 @" c- y* ~8 w - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
$ B: [8 c: X |; B& O, C - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
2 [! h/ o8 j5 A0 ]2 O" P0 g9 o - (action_tile "accept" "(done_dialog 1)")
3 @/ S0 ^: K1 m: C! J3 ^$ H - )8 {" s* C! u' B% i2 r' q" w/ {
- ;;7 I4 Z N" |8 ^. y: n: \
- ;; Get dimvars that have been restored./ T: O8 b1 d5 ?' s8 m/ ^. V
- ;;
1 v6 A3 f: t$ `5 r - (defun ddimen_getvars (/ elm dvlist dv i)
- G! B" ^ \9 o1 p8 [) y! ~* t - (setq i 3
: T! ~+ K7 S/ d- O3 a - dvlist (list (cons 0 "DIMSTYLE")
& B9 Q! D$ M$ V9 g" @* f# w1 D3 z - (cons 2 (getvar "dimstyle")) (cons 70 0))
1 _6 w5 M0 ^8 m* l+ h; ^8 ]) X, ?4 v - ); O- X+ x6 y+ Z) p) H# @$ r
- (while (setq dv (nth i dimtbl))( Y. _1 Z0 Z' W
- (setq elm (getvar dv)6 F2 A" u0 i7 K$ ]/ z2 C" R7 a. g
- dvlist (append dvlist (list (cons dv elm)))- e8 s5 h" A# C
- i (1+ i); H7 |/ I! l! d {0 l+ n8 v+ G
- ); v; i# r$ `% s: f
- )
0 q) P! }& A |9 O- @3 U - dvlist
; E/ q1 k. W$ O( ^' R - )) s0 _# l, p. x3 b3 C5 H! C/ ]
- / g! w) { a# e: a1 m* {6 j" |
- ;;# `* ?0 b+ c+ @
- ;; Get the original states of dimvars. This is for DIMENSION entities.+ Y# |1 s! I8 b" p# f
- ;;
+ w! [' B' N" m. s1 T3 S - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)3 O i. e& @' f" l" B" C
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list; A6 _6 t; [% I! ]/ e
- dvvars (ddimen_getvars) ; Get dimvars for that entity
& ?& D7 B* R* X- \3 \7 b+ X - i 1; U5 ~5 D- t% h3 J1 h6 b
- )8 z% q/ b) d( W2 p, Y
- + {! y# e$ x- Y1 f5 H0 D
- ; Create a list that contains values of the selected entity.
6 `/ x2 Z+ d& j. E
9 Z6 A! D2 V4 u1 W& W- (while (setq elm (nth i dvlist))% A4 B9 I# ?2 _: i
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
8 i3 w0 h0 |0 I8 [# a5 H. M - i (1+ i)
. C. C6 p3 z! s& Q. @ - )- j7 l+ u/ v8 G6 x& h, ~3 s4 o
- )
k6 N' M, i, k" Q' o0 t - dvlist' V1 _8 t% J1 F4 K: R8 r
- )
. P& {$ Z! B- `7 X/ O
- H) O9 N) X" n: e- ^8 M- d- ;;
) W4 U( F v% Q6 x - ;; Restores dimvars of the selected enity.
% E0 m9 {* c X# j% M" P* R; C3 f - ;;6 [8 Y$ K/ h" y9 p) R. A3 H& B
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)3 d7 H# r6 d4 T' f7 t# Z
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"5 e3 ] I2 K# n- T
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
3 ]5 J. @7 _' c# t! q& ?7 u - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"- E9 ^& v& i) D
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt", e3 L* ^9 W' z. u
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
: R0 A2 P- c' s& {, D - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"& X2 n# B% ~* C/ `4 Z8 n
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
6 ~, ]# W9 F2 o7 s, p - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
( w- m+ V$ v# ~& D7 X; o, _, m - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"' q: O0 D7 X7 _
- "dimdec" "dimtdec" "dimaltu" "dimalttd"! o4 |5 L) ]$ Z% d! N& {
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
1 C* a9 {4 j# T" O1 G/ G - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
3 ^3 t! L( @3 L- K. G- j9 {& a1 m - "dimtxsty"
6 K7 e) ?( @. b% B - ))% o% e, l5 N0 ~3 }' c8 C0 w, ~
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings) _1 O3 x2 f3 N2 i9 j( E
- (progn
% d1 c& U. M4 ? - (setq en (cdr (assoc -1 elist)))2 S8 v4 e; G& e3 o
- (command "_.dimstyle" "" "" en)
& n7 c1 l2 P, Z9 [ - ); ]3 N) _( A6 ~" T3 S6 S
- dimsvcurset% E" w, C n! c% m& H) i8 J j7 ~
- )- Y3 V m& |" _% `! B- q5 p
- ;;
; B- F5 e% c/ J6 r* \ - ;; Modify Leader
( K- w. @/ f5 w8 x! h - ;;( a( B. @8 o; g# Y9 p t/ n
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
) S9 y) K* s2 s' e4 O# d - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist4 I% j( B9 E8 |2 \# e9 `
- dimtype dimsvcurset)
7 i! _9 O) W7 n+ j" y& i$ a - (setq dimtype "DDLEADER"
. v4 R0 g# C# f0 R" R2 i# l - dimsvcurset (ddimen_dimsty_restore)
: w* e7 s" t- g3 k" i - )" R9 d/ U/ c( O9 P4 B" h
- (if (not (new_dialog "ddleader" dcl_id)) (exit))
# a3 y7 M! F) w8 u. U8 B - ;; Set initial tile values
; ?4 n# ?6 S6 A - (set_tile_props)
3 M! c4 w& D2 r' \' F c - (set_dimen_props)4 W8 I3 O' T/ f0 u6 [; [5 d
- (set_tile_handle)& L* ?& E- d' F* @3 ?+ e$ Y7 q- _
- ;; Define action for tiles
$ ?3 j& g% i5 x5 ^ - (set_action_tiles)6 N O. P9 p5 z5 ^1 Z4 }* S: w
- (mode_tile "mod_text" 1)
6 B" p( @' I) ?: f C! H
5 P* n* g4 X0 @9 r$ k. l0 P- (action_tile "mod_style" "(setq dimsty (ddimen_style))")6 E4 U" P5 R2 C) m; S+ O8 E) R
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
2 y8 Q+ n3 z4 [5 P* J - ;; Get ARROW and TYPE.+ ~6 p; }( @& s
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
k6 B, j2 `. _ U# u, D* T% [% E. a - (if (= 1 (logand (cdr (assoc '72 elist))))
% b6 S5 `) M* ^2 X3 z) s; {* W - (set_tile "s-s" "spline")
( [3 E6 {/ o0 i* ]# s& u, z - (set_tile "s-s" "straight")
+ m8 ~, V7 f- `$ U7 J9 X - )1 l% M; ~% i$ V9 \) U/ l, g
- ;; Start the dialogue.
# J5 G8 a$ u K! F - (setq dialog-state (start_dialog))( M: j2 H1 i+ L% L
- (if (= dialog-state 1)
- M" B, o0 U" C4 D - (progn
8 k0 J4 E" _ ? D& C6 s2 u7 j - ;; update the style& D& K/ A/ {* H; z: w" m
- (if (/= dimsty stname)
) a! t1 ]4 N# b - (progn
. o4 ^3 r: u' k! w% }/ Y - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case1 y/ Q1 w- [( d/ p5 i" _# z
- ; doesn't have it.) N# c Y; y* `7 }
- (if (null (assoc 3 elist))
# v: O* s$ ^( L1 G! W2 C - (setq elist (append elist (list (cons 3 dimsty))))
2 }1 }+ w6 P% Y. Y, {8 I5 W$ Z7 L - ; else just replace it.
* A4 e! p! M# g7 _: U8 L0 Z0 l! T/ s - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)), V! ?! d' ?' _- X
- )& ~, y7 u) J9 R& ~; h
- ; refresh sv_dvlist with new dimstyle.7 t7 Q# O4 B5 I, F9 p/ V, {
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
. A! ?: d* v7 H - )" I* G" Q% t0 p$ A
- )8 q) l3 i! {" u# L9 u7 }
- (if (not (null dimlist)) ; attempted to change dimvars, m! l. t+ J% I" y+ D+ U7 V
- (ddimen_complist sv_dvlist dimlist dimtbl)
6 J0 u: F( X, Y; a - )
, p+ L E7 k I% d/ ]1 G6 k& B - ;; update for ARROW.
3 o$ ]1 [. H9 O - (if (= "1" arrow)
. z* M- ]9 u: Q' W - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
& J6 _- y! [, \1 n* Q - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
0 Y, u, V9 t: t3 I8 t' e$ D* v+ [2 ` - )
* p4 E1 V. F, k* O. E9 Y0 C6 Z - ;; update the TYPE.
; E4 i6 C1 o& U - (if (= "spline" leadtype)
7 D7 S% b; [! m/ {1 J - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
) z/ L( \' q4 g1 X+ H0 u& Q - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
6 J( w5 ~# e T7 s4 [ - )
: Q& Z$ \ s! \ m/ w6 _. U. @6 y5 C - (modify_prop_geom)
" b. `. x2 A, j - ;; update the Color
, V2 D/ T6 Y9 K4 p - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))9 f* s) f. f! [5 M) R$ n
- (entmod elist)
9 e3 B7 _- e! e4 }2 ?$ s - )
1 d; n j) p; c - )
( c7 |- c$ j7 W+ ]5 G- j - (ddimen_setvars dimsvcurset) ; Prepare to exit
5 d; U9 z: i7 G0 h5 w - )
5 J" p8 z6 r2 N/ d1 ^8 k+ E - # |- r* o* n4 C
- ;;
/ {- X% H6 R. H - ;; Get dimvars of a dimstyle with overrides.+ i6 @) r- N% y9 d! }/ L; h
- ;;! }6 Z% n1 b0 |& X. v
+ \& ? o9 W' U" m1 S) y. o- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)( ]. o7 I0 N: V$ R3 U
" E9 G5 h0 x ]- ;; Get override information for the specified entity.% d2 D' _/ e" S8 T0 M g& }
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
' K8 w3 Q3 \% S$ x2 {+ m) L. \ - ;; must obtain override information through this tedious operation.
* t: e! N+ j7 Q - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
7 l+ d9 `7 r# m* p- X - dvlist (tblsearch "dimstyle" dimsty)+ F [- D) \& p
- i 2) ~# ? T6 u5 d2 o
- )
5 B, h/ f' v9 ?' v - # S, ~" N4 R5 c- G) s$ u) }
- ; Update the list with overrides if overrides exist.- n5 X, b5 v0 ^, I( C* |
0 i" Z6 t0 j8 s9 Z6 G" _# D- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))* O+ U9 j& ]2 a' i9 o6 M
- (progn
+ ^% r& g% y- i+ a& a - (while (setq elm (cdr (nth i dimovr)))* X4 l: h7 e+ Q
- (progn
. \4 i' U$ b5 R" V a4 _0 x |% } - (if (or (= elm "{") (= elm "}"))
# r" T9 b2 ^0 _. A) s - (setq i (1+ i))
8 |" n' {' s2 V3 G - (progn2 S" h! \0 N+ r9 `& d% c* P
- (if (or (and (< 180 elm) |9 }, |( V, o( l+ X3 M. d( m8 K
- (< elm 190)$ B/ ^( U% o" q1 K/ f. A
- )1 ]' d' V! Q' s5 ~& s* d; s
- (and (< 80 elm)% J ~) A& q# u; s4 S, M
- (< elm 90)
2 A5 U; [0 D/ o& ]9 I - )
1 J! y) c* W. j* z" r5 l4 U9 ^ - )0 z; `* P/ n1 P; l" [9 U
- (setq elm (- elm 10))
! \$ ` z% @8 u( {7 N7 u - )
# ~- |' w8 X8 D( k - (setq i (1+ i)
2 C8 `, x% Z" o" T) G - elm (cons elm (cdr (nth i dimovr))): M/ O2 K8 A- p# V: }! {3 u) l% W
- dvlist (subst elm (assoc (car elm) dvlist) dvlist)# O; j" r' k# u# u
- i (1+ i)
6 @( v: s; R- n T* R& |4 f - )' N9 m& c. D7 S& d8 V F4 X
- )
# }; M& {6 D" L: { R9 S - )
$ i8 S- e8 B- Z; c - )
' s. L: j' _: H, R, w$ P - )
% f# s3 Q& a& w7 y \0 f$ E# j4 r6 r - )
/ w& H* Q$ G5 ` - )
, V$ M" |. H0 s: N, U - dvlist
* Q1 r6 o; }% Y% G; }5 Q4 s - )
# I8 K* M( l0 x3 J4 m- b q( J
4 t/ F2 B5 T& |0 L/ d+ Z- ;;/ \& t7 h, i' D1 C! @$ g! ^
- ;; Modify POINT
: y5 Y0 a1 c! [' B2 h - ;;
2 F4 B3 G; M( Z0 s* Z7 p: Z9 L7 L - (defun modify_point ()% i& y8 Q7 X. k( k3 w! v( j% G
- (modify_properties): h2 S1 C6 h+ L. F& X. n
- (setq pt1 (list x1 y1 z1))& H: @0 T" S2 `0 }
- (tempmod pt1 10 0)$ d1 O. o0 Z* a. m7 Q a% i' }; Z
- (entmod elist)
, \) X# u( F3 h) O) [+ n# M' Y4 n+ W" B - )3 e. j9 l$ m K- e
- # f+ s. }- Z4 T
- (defun ddpoint ()# h+ |/ _ p2 J
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))! J. x# v. K6 e% u8 o M+ {
- ;; Set initial tile values$ V. [" E$ R4 Z. w6 n, c
- (set_tile_props) |- Z5 S7 ?* a: @! {; ]" M. c
- (set_tile_handle)
5 H" ]. j$ }* d' h" n" F - (set_tile_pt1 0)$ t/ l+ F/ A# T- E) `4 x3 ?
- ;; Define action for tiles b, H+ j4 l C
- (set_action_tiles)
' b9 M, q$ V: h" F - (setq dialog-state (start_dialog))* p, c3 n( E) S( _/ e& p
- (if (= dialog-state 0); H( P& |6 _# Z
- (reset)4 _; _7 w- @" v: R. Q: [
- )
. ^" M7 V7 E1 y( {2 R$ l - (if (= dialog-state 3)
, s! D# W9 r8 [- f, [* \2 \ - (progn
# \# c. q* n+ |+ l* V - (modify_point)
# T* V0 W: M" J, s3 ] - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
% K- u% G8 t& y/ `. M `) U8 J - (ver_pt1 0)
* s. X7 Y: x7 F - (ddpoint)
+ c$ M4 f) @. e- E - )
" [6 B) J! ?" ?" l, T& `. g - ): q1 j. ]4 E& \9 \- r3 ?
- (if (= dialog-state 1)' l, E. L/ C! W1 x& ?* d
- (modify_point)
1 U2 q4 U; |5 `4 _ - )
P8 u" y" q; U/ f - )
9 q; }6 s' i$ ?+ m, I - ;;
N; N& c# Q- x# { - ;; Modify LINE0 P( d* ^ x# l
- ;;7 a+ m2 P4 K* S
- (defun modify_line ()/ [6 k" I1 l* d4 M& r4 U
- (modify_properties)) c8 v* i. W, ]9 i6 ?
- (setq pt1 (list x1 y1 z1))
& R- }; R: I/ ?+ D - (setq pt2 (list x2 y2 z2))/ x0 y) E7 x2 c8 q
- (tempmod pt1 10 0)' C( i" e7 z* p0 y5 g2 c- u
- (tempmod pt2 11 0)
5 x" Q8 }" R8 I3 _# J* } - (entmod elist)
, f. D4 B6 n; ]# n9 n- N9 @1 \ - )
+ d/ D- I0 v' a - (defun ddline ()
E+ ]2 Z2 L6 H Q Y - (if (not (new_dialog "ddline" dcl_id)) (exit))) R* y _, n2 n4 ^) W, B% k
- ;; Set initial tile values T& L% F9 E7 |: n
- (set_tile_props)( w) [8 V; x+ A) T; w$ N* G/ H
- (set_tile_handle)
- P5 Z6 ]4 ^0 b; |8 M' X# E - (set_tile_pt1 0)
9 K( X. X$ J9 {8 d) r - (set_tile_pt2 0)6 m: p7 t- Z! x6 z) s. O: A: {
- (line_calc)
$ t# I& I1 q# t# I: o - ;; Define action for tiles9 u2 [7 Q. Z* ^" c0 s- c7 M
- (set_action_tiles)% _; O" `4 V- j& W3 U* Y$ e2 Q/ M6 r
- (setq dialog-state (start_dialog))& F6 t$ @5 v$ ~. Q: k
- (if (= dialog-state 0), B7 l# H$ C2 }
- (reset)
8 }7 A; H% k# t. V# p - ); Q# L! {& b8 p% H; L: C7 {
- (if (= dialog-state 3)" v8 E! C; y2 H6 e
- (progn
4 ^+ R* `8 M' d$ A3 e3 g - (modify_line)
& Q9 d! p+ h! Q+ u/ I% O+ r @8 P8 u - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
8 J, a) v3 B4 |0 W2 }8 U - (ver_pt1 0)% Y* t; m' `6 P
- (ddline)- v( a/ N! q+ J' N: e3 M! L7 o
- )5 l) U8 Q' S) W# J+ F/ N- z
- )
* c2 D, z0 h1 Z6 `2 [- J - (if (= dialog-state 4)( R+ S( @! K, h+ W' w2 O
- (progn4 W! d+ [) }5 ]7 h) E& D- ]$ V2 [7 I
- (modify_line)
; {/ `* `0 Z2 d5 K# K/ S7 O! ? - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
3 d) \! [9 M- |& X0 E, ]' r( ` - (ver_pt2 0)# W0 O4 B# Z4 `5 {
- (ddline)" `1 C" q- \+ k+ X0 K# v' w
- )
E: ^, ^, Y& N2 Q5 p; } - )+ O* p! A" Y% s: |) {0 Q3 x# |
- (if (= dialog-state 1)
6 j2 @& a+ |/ o0 L0 d) c% H1 e - (modify_line)
' Z0 r% }1 g( e0 y - )
: B8 F9 `$ D3 A: F - )
! d7 L; W& P. n7 U - ;;" F9 h+ ]; a& H. Z. H" \- h
- ;; Modify MLine! d0 q# K2 S" e$ e
- ;;+ T. O! e: \" c+ r; H W
- (defun modify_mline ()3 P. l* `0 A; g( @6 H, Z% }- L8 q2 {
- (modify_properties)) X# q- p9 d# `9 I4 t6 x5 O
- (entmod elist)
]# I0 r, i7 f- j - )
b, e$ j& \( V5 m9 Q# } - (defun ddmline ()' H( `+ B& y% W# x: X
- (if (not (new_dialog "ddmline" dcl_id)) (exit))2 @" g% `4 p) K& y
- ;; Set initial tile values+ P+ e9 |3 \* g! P" G
- (set_tile_props)1 `8 O, Y) K7 m0 m
- (set_tile_handle)
7 }$ r! F8 M- T; l$ M! ^( ? - ;; Set mline style text field.9 o. n! s S) ? J; ]
- (set_tile "ml_style" (cdr (assoc '2 elist))). D k5 F: \! B- r
' d9 I! x4 c3 B, W- ;; Define action for tiles+ S& H& f5 _& l
- (set_action_tiles)9 K7 D) c% Y- V6 P) M! O, G
- (action_tile "ml_edit" "(done_dialog 3)"): }3 `1 S6 j+ c6 l4 c, i
- (setq dialog-state (start_dialog))
4 U: m1 l, J* t e4 U( p2 C - ;; Dialog cancelled, reset to original values.8 ?* X, h6 D* k# h, `0 @
- (if (= dialog-state 0)
( B, ^/ t7 j4 A" M# ~ - (reset)- h% e5 v; j* q5 L/ J3 J* p7 ]
- )
6 G" R& {( P0 \0 f0 W" k4 M - ;; Dialog OKed, update the mline.
: R3 @/ m/ i/ d* Y - (if (= dialog-state 1)6 S/ m! O& a o' z# z' E5 e
- (modify_mline)
+ }1 S3 Q1 S4 q( E7 L - )" P) v& _( W+ x7 ]/ s* o& F8 V! ^, X
- ;; Edit Mline, call MLEDIT.
2 D& h6 b8 ]( m$ Z; e3 X. j - (if (= dialog-state 3)
5 e3 `0 j: g$ p$ Y; u - (progn8 ^1 W ]! H6 j1 g$ E3 H4 f7 K
- (modify_mline)3 k6 t& h" R: U
- (command "_mledit")" f, u0 d6 N% z. p
- (ddmline)
$ N8 Q" e6 z2 |" Y - )! t8 g) u( \6 C$ E' x$ y
- )2 V7 d- V0 V5 h8 a' E
- )
( D0 H f' V1 C$ ]& }4 C( y# C4 d - ;;
6 {8 u, ]& l; r$ f/ M4 W( b - ;; Modify Xline; _! X5 ~* B C8 m, ~( K7 `
- ;;
. g+ {, B3 i- _5 t* X5 h - (defun modify_xline (flag)
8 X/ h% b7 E. W( i. _ - (modify_prop_geom)1 n# z4 |+ F" B$ U
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1)), Q' T8 u' D1 r8 f: o8 ?
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
; \; z6 e& \. w+ R: M - ;; Update the Root point.. ?) l$ v7 d! J0 u R
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))
$ p5 G: }, z4 o' |: v* U+ \; } - (assoc 10 elist)- w' l6 d! }" p
- elist
7 X9 }/ p/ f& O" \6 Q - )2 t( ]9 u/ [, M; n5 ~
- )' T& j1 d0 h: v' ?/ [
- ;;4 T# T9 o. d! d0 A. S
- ;; Calculate new Direction Vector WCS' u1 J: O2 P; w& M5 v1 d1 ~. r$ L- g1 h
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))$ K/ l q: V- L' x% c
- ! n. V2 ?$ \* q) H) p6 v
- (setq temp_dir (trans xline_pt2 1 0))1 v9 j' S; R0 D+ j' u
- (setq temp_dir_x (car temp_dir))4 C! Y9 }. B$ W( Z
- (setq temp_dir_y (cadr temp_dir))
" f# W: n6 G1 n2 y* i" p A3 S Q - (setq temp_dir_z (caddr temp_dir))
- ~' [2 j) [2 \! }8 X: b6 _
( n1 K" D1 c) ]+ ?- (setq temp_xline_pt1 (trans xline_pt1 1 0))
: u7 W+ C* Y2 }4 J7 J% X2 b - (setq temp_xline_x1 (car temp_xline_pt1))
( d" V7 K; z) T: p - (setq temp_xline_y1 (cadr temp_xline_pt1))
1 x( z8 B& w e! c/ ~# P. d m" S - (setq temp_xline_z1 (caddr temp_xline_pt1))# q/ [& b- T3 _& g U
- 4 R' m% Q. a( x: A h3 L
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)3 m! S l0 G: n$ d" m7 b' W
- (expt (- temp_dir_y temp_xline_y1) 2)2 q8 Z0 m ^, ^1 I, k) m; N( @0 A
- (expt (- temp_dir_z temp_xline_z1) 2)1 E7 v. J8 @ P2 E. c& D
- ))): u$ g/ C& }3 X) J6 z
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))% b- h" D2 R( w" R+ N
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
- V1 Q7 L( O- V7 V - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
0 [6 t+ p/ P9 X$ _6 `) H' M - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
/ L; }2 A; c* Q: o4 G - (assoc 11 elist)7 H; @ C+ W6 j# m: w ?) C( Z2 i
- elist7 Z' q8 x: ]/ C- \6 ~$ {3 }
- )
, g/ q9 \# [" M# \8 U - )) i% J6 A+ d1 Z% A! e3 B; S! L4 |
- (if (= 1 flag)
- ?; ]5 {, F& f; J+ t2 M - (entmod elist)
. F5 H* x* K1 J8 m - )
8 ?3 v. z" f& A y* a - )5 U/ l/ f# C9 r" T$ p4 P" M( x
- , B" ~! `8 _7 I; p- [; R$ U
- (defun ddxline (), S' N8 t4 J. j, L$ P- x5 k
- (if (= etype "XLINE")
, c1 ]$ \" S q - (if (not (new_dialog "ddxline" dcl_id)) (exit))) M9 N9 B4 h: U$ e9 b
- (if (not (new_dialog "ddray" dcl_id)) (exit))
- b# ^# R, m+ J- B1 L5 M$ j2 f - )
) l, f- ^) A7 u( J% |' c0 e - ;; Set initial tile values q+ }* z! S% G/ r
- (set_tile_props)# C9 w. f6 K7 q# @
- (set_tile_handle)2 K6 \% M* I. S/ x' s
- (set_tile_xline_pt1)* C0 s* {3 P( Y/ {1 ?5 p0 d5 \
- ;; Convert to UCS and post Direction vector.0 z0 `4 R l2 o. Y/ z8 b
- (set_tile_dirv)
% @" d- g# B! s+ G( L) g# F - ;; Calculate second point by adding Root Point + Direction Vector.6 K( O$ m) s) d0 u
- (set_tile_xline_pt2)$ ]4 a: L2 n6 s
- ;; Define action for tiles' g6 [; Y0 r' A
- (set_action_tiles)
% E, ~+ B7 H5 c- [# Z - (setq dialog-state (start_dialog))
2 S: q4 V s1 J& s; [0 F/ a' Y - (if (= dialog-state 0)7 |4 X, a7 j. P2 n8 l+ V; ^0 ]
- (reset)
( Q* n9 Z, Z# Y1 z3 V - )( f" n: F5 x1 W
- (if (= dialog-state 3)' _- r. y; B$ T
- (progn# J+ R E/ ~; b8 j# ?, M
- (modify_xline 1)% O" k* M) H+ H6 e1 k
- (while (equal xline_pt2
( f. [9 z5 I0 A1 f4 r4 o5 L9 | - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
3 F3 v1 [. l, x p* z% Q- n8 ^; V - (princ "The Root point cannot equal the Second point.")
9 @1 G' e/ j2 ]" \/ Q3 d5 Z* Y+ j - )9 Y2 a: K7 e9 R; j! X6 a
- (ver_xline_pt1)4 b5 k7 \$ x9 x1 y. L
- (ver_xline_pt2)
9 k0 r' m/ D% S# x U - (princ)
) h8 G% L/ \; u b5 k. V6 P - (ddxline)0 Q& f0 P3 u! q, _) e+ a4 A
- )
; b$ c: v; L8 N1 q! |- T0 y) i - )3 _& j* H2 @% V0 A7 P
- (if (= dialog-state 4)
! |5 E4 j+ q5 W# x# e - (progn# Z4 Q$ j4 ^* U8 m: C
- (modify_xline 1)
, I% Z6 S3 b; e! O - (while (equal xline_pt10 U" @; v/ X* Y6 n. Y
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)- Y, f+ E9 i& Z, t
- (princ "The Second point cannot equal the Root point.")
) r) C2 P+ u! r( V - )
$ K2 R9 a6 J& H7 ^/ e8 i' v/ e* | - (ver_xline_pt2)
r+ }' X' r2 _+ ` - (princ)
1 J1 |" b' B0 H2 o3 b u/ ^ - (ddxline)2 p' p* z. x3 H- ?2 W: Q
- )% X2 Z1 \* W9 @1 |+ M% F9 @; o
- )* S2 p9 N6 P: y. H4 {+ M
- (if (= dialog-state 1)7 b9 e4 j, y ]- f5 T" j3 M
- (modify_xline 1)' k, j3 `) Q9 w' }' P1 F
- )
" A* _0 z- T5 d" c& ? - )
& M6 s3 \0 A9 ~) |( t - ;;0 M {* ~2 ~+ l: l {" K2 a( X
- ;; Modify ELLIPSE
: @3 g; o/ G- q - ;;' f( _( o, K3 ?+ {3 e
- (defun modify_ellipse ()
$ H G& z, N; c' H3 m - (modify_prop_geom)& ]: ]- H3 Y' p- d( Z9 f
- ;; Update Ellipse Center Point value.
7 u! G3 W3 d7 V4 B. X: \* |+ F2 l - (setq pt1 (list x1 y1 z1))
6 [* }+ o/ s9 d6 H/ d# e, a' j# g; ] - (tempmod pt1 10 1)' Y8 @6 a* e5 x; N
- ;; Update Start Parameter value.
% k. h+ A# {1 U7 {9 Q - (setq y_val (sin st_ang))& G q8 N8 G+ z7 ~
- (setq x_val (* rrat (cos st_ang)))
, x+ I9 R; ]" R8 T- m - (setq stparm (atan y_val x_val))% s; ^ ?. `) ^) f% A+ g
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))7 g2 k1 U/ c& o8 J0 P
- ;; Update End Parameter value. Normalize it, if it's less than
7 J' ^1 P7 h7 f; l" x* B4 n - ;; the start parameter.
) P- U& ~5 {/ a - (setq y_eval (sin end_eang))0 O/ m5 ~7 W! l- x7 i
- (setq x_eval (* rrat (cos end_eang)))
* Q0 @" i$ d: R7 I/ A! q/ M - (setq endparm (atan y_eval x_eval))
- H. d& I9 ~( h9 B% J, `( g - (setq diffparm (- endparm stparm))
, k1 U0 }; E ?# { - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
5 F/ j) i# q, U, h5 @8 v& H* N - ;; Since zero length arcs are not allowed - construct the full
. Y% a6 R: V0 K! F: q+ e6 h& b - ;; ellipse in this case.
' [3 i6 F1 T; [! S4 W0 ` - (if (<= (* diffparm diffparm) 1.0e-12)
+ v8 @; l( M/ ?& D4 o# l - (setq endparm (+ stparm (* 2 pi)))' G r' C) I3 {
- )* b& w9 y& x: N& a) N6 E7 s3 f
- (if (<= endparm stparm); a0 [) A1 k) O* t! C
- (setq endparm (+ endparm (* 2 pi)))
1 f4 S' [4 H# e/ W" R - )
; h' G2 P, n6 _" ]0 u5 d$ y - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
$ E, H8 y$ s, o& n( f# r - ;; Calculate the Major Axis Vector by first calculating4 Y, q( f5 {' \
- ;; a unit vector using the old Major Radius value. Then. p* j! B( w4 c' Z! z
- ;; Multiplying that by the (possibly) new Major Radius
" V5 Q ?2 B, n - ;; value to get the new Major Axis Vector value.* o8 ^ X* g8 H
- (setq unitxx (/ xx old_majrad))
! z. P6 c ]* _9 K - (setq unityy (/ yy old_majrad))
, U4 E. m+ I8 Y. G8 q& E$ Y - (setq unitzz (/ zz old_majrad)). a" `+ N& C6 s7 H
- (setq newvecxx (* unitxx majrad)) ^8 @* H7 Z# u
- (setq newvecyy (* unityy majrad))
. X: s6 ~) o5 W! s% f- |; } - (setq newveczz (* unitzz majrad))
: n l# w; w3 C7 V! k3 Y - (setq newmajaxis (list newvecxx newvecyy newveczz)); {& w: |2 j* `% L: I. G7 T0 i
- ;; Update Major Axis Vector value! D# P& ^& W# q# `
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))4 z f! f+ I3 W8 n }) y6 u
- ;; Update Radius Ratio value/ H. a' F# t. g$ \
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))# P E5 ~! p. |9 q: X
- (entmod elist), @7 J, ?' Z: I
- )
' c! ], Z3 r) ?3 I" r" Q8 C - [7 J, @4 S0 O+ o9 _$ M. O6 K
- (defun ddellipse ()
: I" J" U D6 i; g - (if (not (new_dialog "ddellipse" dcl_id)) (exit))( C: n# C! G+ V
- ;; Set initial tile values
4 H' d, R1 R" f0 i0 s - (set_tile_props)& j1 x3 j/ E9 o2 {* t; D' x2 h
- (set_tile_handle)" Y' u7 ?( Y* ~' Z- u8 v7 R
- (set_tile_pt1 1)1 ]1 ~( V$ S% t E1 R- d0 n1 B
- (ell_calc)
# X& L9 {6 m" ]4 O- {1 s5 ~ - ;; Define action for tiles- }% r& e1 q3 X0 o0 N, T
- (set_action_tiles)8 J' b5 W' ~7 a2 i
- (setq dialog-state (start_dialog))
/ z& n6 K8 u9 @! T' } - (if (= dialog-state 0)
% x: \- v+ j8 q+ n) @6 }6 }+ s( u - (reset) S+ m( F; N9 C4 D5 f$ L, h, t
- )
. e- @! P C3 K. n w - (if (= dialog-state 1): ~ V1 k/ U) U
- (modify_ellipse)" v% G9 W# i9 i$ [' L
- )2 h- w0 c0 f- l$ W. h& V
- (if (= dialog-state 3)- Z d$ ~8 i4 Y0 q; v% Y
- (progn
3 o1 q* S: @( P& Y1 J& m& b* K - (modify_ellipse)
4 Q5 M( C$ f# t# m. Q$ S/ V. p - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))4 e$ z# k9 _+ e2 g5 M2 g
- (ver_pt1 1)3 P8 ~& y0 h0 y" W
- (ddellipse). [( P" ]2 S% E7 D
- )
' O6 a3 y' i" F - )
) ^* c( i q2 M - )0 l: _! Z0 T0 X
- ;;, n: Z- f# e. U2 T
- ;; Modify REGION' N2 T8 z; {4 P. r! v
- ;;3 t, ]2 E. m: R& U1 l1 q
- (defun modify_region ()
8 M: |) T$ B+ [ - (modify_prop_geom)
( w% r( `' T- ^2 S: [+ @ - (entmod elist)( I9 `1 t8 T! t- s! v1 X
- ), l# U+ v c+ X6 u9 |3 W4 h
- 4 ]7 X# e4 [, M0 |: O) A( ]1 j# H$ K
- (defun ddregion ()
# B1 D2 y: k8 S: |. f3 T6 Y. _ - (if (not (new_dialog "ddregion" dcl_id)) (exit))! D# P: D# C$ z% H h) r7 w u3 x
- ;; Set initial tile values
7 E; h5 I8 X! h* ? - (set_tile_props)2 z0 C' k! X9 R. f
- (set_tile_handle)
% W8 C+ M8 B; t - ;; Define action for tiles
7 K5 p2 E% O" k1 N( H0 j: K - (set_action_tiles)
5 k% o, j( ^5 V4 m8 T - (setq dialog-state (start_dialog))
8 K9 E& z9 v" G0 W - (if (= dialog-state 0)
2 Y" N% C. ?0 f4 m - (reset)% M4 j* V* ~# h; y1 r- w7 u2 R
- )
5 O }# t2 }; g& R% E - (if (= dialog-state 1)
; d- ]* [% U# d# c6 I) e - (modify_region)
2 P! O" Q( y" v# |. V - )2 i+ [. b6 ~' g. c0 u( f5 t+ P
- )% [; k4 k3 n. w/ @# E
- ;;! S7 S$ S8 h5 _8 c% W
- ;; Modify 3DSOLID! q( X% p0 g0 g
- ;;
* b6 ?1 Z* D/ l% q( o - (defun modify_3dsolid ()
" s- E0 _( Y$ v2 A - (modify_prop_geom)
% w" D% }& R. M, Z; c' @3 ^ - (entmod elist)
I& L( t$ r! Q$ ? - )& `7 x8 e8 z( q
7 V' L; \; N" a/ G( L, o9 [- (defun dd3dsolid ()+ h8 H& s9 Q' @7 [. O
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
) ]$ q: k5 n& l' c( N4 Z4 v# K - ;; Set initial tile values7 k u& O4 H F
- (set_tile_props)$ |' @/ g; q9 }& Q
- (set_tile_handle)9 z+ L0 O" S( w3 N6 z5 s( S
- ;; Define action for tiles8 O' G3 t" ]# U8 b% ~: i! E! i
- (set_action_tiles)
2 A. e) f- K* ]; R: i* o; I8 N8 D - (setq dialog-state (start_dialog))
; ~- S6 Z; ]2 @* |' g, c% d - (if (= dialog-state 0)1 b5 P, W. z9 `0 D, Z
- (reset)
" k# Z* K# Q, C7 K) X. K+ u - )7 Q$ p- H/ e4 p
- (if (= dialog-state 1)' x0 a4 R8 z3 ?; @
- (modify_3dsolid) W' ? M% I: a* Y b) r
- )+ a# V } D7 p+ p1 r2 o
- )
, }( i6 ~8 P! n# @* g- R - ;;
- e( I5 g! T$ A - ;; Modify AcDbHatch% d. t7 M5 D2 _( K
- ;;
7 L% z- @9 M: l' n - (defun modify_hatch ()1 {6 C. w/ D: y# F$ t
- (modify_prop_geom)
/ o4 E# n; t2 S8 z! ` - (entmod elist)
- x! r& i* l1 l - )0 n. G' F) k3 L
' p$ z# {4 {. a' L6 b/ G1 S o% U) h- (defun ddnewhatch ()% o! I6 G( e p4 I7 b$ L
- (if (equal hatch-elist nil)
. T/ Y( g Z0 S. v I - (setq hatch-elist old-elist)0 @5 Y1 `* l, ~& s6 f k1 a2 ?
- )
3 Z1 D8 F. G2 s1 `4 x9 y
" x) y" y' k% S7 H# N0 n- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))1 v2 |$ u+ E$ C$ F7 s0 F3 z
- 1 ?" ^1 c) I& e+ B1 f. {% d
- ;; disable the thickness tile
: f8 I) O- Z8 A, A1 x* Q - (mode_tile "eb_thickness" 1)& e' `# K3 d. K
- (mode_tile "e_thickness" 1)* a, g ^& i" m5 K4 e2 L
1 q1 Y8 m$ j/ O1 Y6 L' u- (setq help_entry "modify_associative_hatch_dialog")
3 I$ }+ ^4 @% \/ X2 o - (set_tile_props)
; {7 U0 V2 [/ }9 V - (set_tile_handle)
, |' b5 S4 P$ U) S8 k" [ - ' s0 y0 z4 p2 E4 s& o( g
- ;; Define action for tiles
" }2 X1 e7 _4 `4 W3 v - (set_action_tiles)
7 {6 W$ Z5 U1 g* e - (action_tile "b_hatch" "(done_dialog 2)")
. c4 g1 U7 L: Z8 x3 F - (setq dialog-state (start_dialog))
7 Y* ?9 P. q" m- |6 b - (cond
2 G) A6 V( z& f( { - ( (eq dialog-state 0)" `9 h. g5 w# u& k8 R/ t; h4 [
- (setq old-elist hatch-elist)" |% m0 \9 |' n ~" A' w( O2 j
- (setq hatch-elist nil)
' B7 n5 |$ a; t: o+ {% v - (if (= (checkforlockedlayer ename) nil)
+ ~, r( ]7 s0 A2 C8 F - (reset)
: I2 w, ]9 g: e. p- I1 i4 G; @! m - (progn ;;; special handling for locked layer reset
$ d7 \! A2 Q6 |5 u* j+ s0 `& ` - ;; unlock the layer8 o% p2 ]" W/ }! u! ]( U' L0 O
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))3 \$ P- X& u: @2 _ H, h
- (command "_.-LAYER" "_Unlock" layername "")
8 c; I2 z/ p# G+ v' U4 F - ;; reset modifiction
* f- _5 {% n' ` - (reset)
$ j* k( m3 @$ F- H2 ]6 l - ;; lock the layer again
1 F$ g+ ?7 ]3 E o! H3 l @" }4 f - (command "_.-LAYER" "_Lock" layername "")7 [. X/ A8 O$ }2 o6 [/ p, K! f
- )/ u$ L f% y4 o& ]
- )
" |; {% M' K- A$ P7 f- k' I - nil ;;; makes (ddnewhatch) return nil for Cancel7 M8 y+ e/ h9 x
- )
) u, ^- K" c0 M \ - ( (eq dialog-state 1), f W5 i# } ]: H
- (setq hatch-elist nil) m% B# O3 R8 r' _
- (modify_hatch)
9 s% G* U& ^& l! e4 a - T ;;; makes (ddnewhatch) return T for Ok9 C5 v# N7 o3 z5 @6 z
- )
! Z Q! J5 R% W3 j - ( (eq dialog-state 2)" S8 m5 I$ ]) @ g7 R- q" E
) g6 U3 O. P8 j, `- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))4 s$ b Y R3 P8 f( a ]8 V5 m9 J
- 41 S3 }& a. k% |% B: x
- ) & O2 Q3 a1 V) t* \! V
- ;;; new selected layer is on a locked layer
t: J) p& d: i) F& L - ;;; we can simply modify the hatch properties, _$ z. e0 a& F }& T1 P) \8 `
- (modify_hatch)
; g, p0 a6 b& g: z( ^ - (progn1 @3 [8 Z3 o" f) r
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
" ^, x. f) `" q! `; H6 [! E; x4 q - 4/ ^+ }! P+ D" i1 B3 p C: a
- ) 9 F2 A( x' o7 P) J9 I$ d5 [# w; X
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
: t$ L2 a' c; t) H8 q/ C5 v' c, ~ - ;;; We have to unlock the layer forethat we can update the hatch properties.
- s( Z! \% ?" R' ~ W2 g4 ^/ N2 @ - ;;; If we don't do that (entmod) fails to update to the new layer." Q, Q: A# l. p3 y s; \
- (progn% d0 c, y0 R' r4 G/ Y& _
- (setq layername (cdr (assoc 8 (cdr elist))))
/ y% j7 K1 R4 F: y - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
) S5 { y! G0 z+ s6 H - (modify_hatch) ;;; update the properties
, l9 ? }7 b" I' i8 r2 E0 j - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
% r' U7 d, W: U1 \: L# Y - )
- n0 P' |2 p" v8 q- I) p* | - ;;; All other cases we simply update the properties* ~; z$ j# N" Q2 |
- (modify_hatch)
: |4 H3 \' }0 J; ?7 f' F - )
5 n8 l3 \# _% E X( \" a9 ~ - )( z, O) x q) l
- )
* Q* K d) o) ^; X2 X% C - (if (= (checkforlockedlayer ename) nil)
- ]: w' P1 @2 b& F0 U - (command "_hatchedit" ename)! A9 {' Z1 e6 L6 b# S7 z6 J
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
5 r* o A4 C2 k, } - )
) ]4 V1 i+ y1 X% s - (ddmodify ename)
& y# |7 W& m1 f- c - )
5 C8 j5 { t4 s' k, s) `( ] - )# R4 N6 J, O+ k
- )
$ |3 ?" ~7 }1 ]/ l) `( O6 k - ;; q2 ?. z- \/ G6 G* t/ B4 s8 `
- ;; Modify BODY
, P1 h3 X0 e- g7 @9 t/ ? - ;;" X% e' B1 W; n- s
- (defun modify_body ()
3 t1 f' k0 I3 B2 I4 } - (modify_prop_geom)
2 I$ ] p+ @8 _) R/ Q# h" ]" @ - (entmod elist)! o1 r3 m% A: b
- ). X9 M1 E6 R/ c
! m, [. o- i5 X8 k" Q' x- (defun ddbody ()& L- J/ v3 n3 M( N9 D! w: c: \% f
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
1 {3 M0 E- w) H5 Z# A1 \! X - ;; Set initial tile values
# y" q% R2 i% c3 e8 w4 ] - (set_tile_props)- [1 V, d8 L: N, O) y0 g8 m* o0 h
- (set_tile_handle)
/ `' ^) {4 V" \0 I5 J: F - ;; Define action for tiles
+ w' R9 P' i% q. X! |8 b; r0 J - (set_action_tiles)
9 l* X: z/ v" Z: P: Y' J# Q- G+ w& \ - (setq dialog-state (start_dialog))
- a; j+ b+ k( \0 g) R - (if (= dialog-state 0)
q: x0 `4 l" O; k - (reset)
! X. }1 j5 t& F4 m9 I ^ - ); ^! r8 D. B" {+ Q- \
- (if (= dialog-state 1)
8 P# L6 k3 ~% I' T - (modify_body)
8 h0 y3 B+ {3 U+ I - )$ Q8 y5 b$ H- m* v1 M9 a" n' Z5 L3 K
- )5 N: h! A2 K7 h: g' `
- ;;2 `% ?* o5 f* g$ F1 T) g
- ;; Modify CIRCLE
& Z9 ^! ^. N( r& I* S {9 [2 V7 n - ;;
! Y- b% c1 ~$ r) |, k, N2 |( U - (defun modify_circle ()
7 W5 l- U0 Q( R# [. Y; k - (modify_properties)
# H9 ^* q5 M5 @" d - (setq pt1 (list x1 y1 z1))) ~; l& X2 y. U& d+ _; ?* r
- (tempmod pt1 10 1)9 A k, {8 p- J, r- X& s. \
- (tempmod radius 40 nil)
6 M/ Q' H, q" c: Z, l - (entmod elist)
4 N8 B' ?1 q+ S% G - )
S# Z4 X. L: V+ a8 j - / E, i! M, j9 }3 x; [
- (defun ddcircle ()
$ |" G4 R, B% _ - (if (not (new_dialog "ddcircle" dcl_id)) (exit))5 _' R8 S. l4 J' I! r' `
- ;; Set initial tile values- ^3 `& h# x, ]
- (set_tile_props)
; j- k5 A4 k$ M, [8 D3 s: c% }: d - (set_tile_handle)
) B, u0 z7 I. q9 ^6 g* O - (set_tile_pt1 1)4 z& V9 L7 r) P- h, X& ]
- (set_tile_rad)
' Q* t1 E2 z4 o" [+ b4 Y# {0 B - (cir_calc)( q5 W0 d: }4 S
- ;; Define action for tiles; `* e6 O$ d, f8 J
- (set_action_tiles)
/ z/ F2 s/ v. M% f - (set_tile_pt1 1)' T3 y: u9 u6 a! ~
- (setq dialog-state (start_dialog))6 g% n6 ^# L0 N$ G
- (if (= dialog-state 0)
% I- u+ P# B/ h: n" C( s - (reset)8 f8 y& K$ ^6 p _( x
- ): a' v' D+ [$ b- }' E
- (if (= dialog-state 1) t0 A& V( m- s* M. S
- (modify_circle)
. \8 H. S9 | g# P3 u - )/ ]1 P% N- E1 _7 X9 \
- (if (= dialog-state 3)
: o6 i; E# i9 m) a2 [9 X - (progn
. }1 ?- ~7 G& A. R - (modify_circle)
$ x4 I( s2 _# k2 P) @0 R/ M - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
( z1 }0 g. j+ k - (ver_pt1 1)
$ d* y* |9 F& r( W! {9 y - (ddcircle)& P" D4 O9 h9 Y* C* L3 Y
- )
/ D- e0 E3 k1 V8 L) P2 f - ): L' {3 {# h% N0 c; N
- )
+ w' t1 F& U5 Q# v1 g! c/ G - ;;/ p j. b* A& ~- G. G- i9 {5 R: e
- ;; Modify ARC
; f* e8 H5 w8 b+ W' x) H - ;;/ |4 U. j$ Y. o6 Y [8 [2 Z& D$ t
- (defun modify_arc ()5 N6 y" I$ m! @3 p3 t7 T% R
- (modify_properties); m4 X$ r: @5 e* P
- (setq pt1 (list x1 y1 z1))# @; t5 _# a) D) ~0 {/ T
- (tempmod pt1 10 1)) i' Q' X* E8 f, B5 ^" p, r4 v
- (tempmod radius 40 nil)" {" w+ `9 q" x, B6 F7 a
- (tempmod st_ang 50 nil)- G) ~1 N! p; r" m+ w
- (tempmod end_ang 51 nil)
# B* ^$ \; r* k0 z$ R5 x - (entmod elist)
- d2 |/ s7 {0 @/ [; M/ ~ - )% g4 i7 ]$ X' u ]6 {$ `
- (defun ddarc ()
' k! N9 y0 s0 ]6 w - (if (not (new_dialog "ddarc" dcl_id)) (exit))5 j+ A) n" p+ Z
- ;; Set initial tile values
2 j& T3 f5 O) ~+ A - (set_tile_props)
+ \( O" s! d% ?- q3 ^ O; }" t - (set_tile_handle)
1 G2 m4 C0 C( [3 Z5 a; z+ W - (set_tile_pt1 1)
# o4 a+ D/ s1 K9 i1 R9 p7 w, ` - (set_tile_rad)
4 }2 R& Z3 _' @& W6 } - (set_tile_stang)
, {9 X/ w0 Z) I4 M - (set_tile_endang)
" N- |; ^) I# s2 ~, ~( ]# J - (arc_calc)
1 Z) }, p4 K: n$ t5 h5 N8 V7 V - ;; Define action for tiles
2 n- T# i0 S) q* v. q: `, j - (set_action_tiles)
$ A% G" T; H0 P3 B$ R7 ~$ o - (setq dialog-state (start_dialog))
+ f# l) M# X; O3 C; D) t - (if (= dialog-state 0)
( A6 L* } \0 ]! v - (reset). i. a! s+ @, [
- )7 D3 K$ v; m) U2 x
- (if (= dialog-state 1)
. a8 B5 z g7 h7 T% T0 I - (modify_arc)
& I r7 w- _: x9 m( y - )
' Y1 f) ]8 i9 s6 e1 [ - (if (= dialog-state 3)/ Z7 `& v3 j i& F! _
- (progn( T# ~/ u+ t9 }9 V% E9 N
- (modify_arc)
: q- t4 ]: X9 W - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
" m8 K3 P; T- [ x# L - (ver_pt1 1)
4 W& `$ }. r. `% X. G( j0 s - (ddarc)
6 J1 e9 t2 A# m - )
" a! y h8 ^: E5 q9 j7 [7 l& h) d, M - )9 T; c8 ~. D8 c; A5 }$ a& r" i
- )
( p. c5 F4 K; r) D( m* E! o) _" @ - ;;' |. U ^9 v4 Q( y
- ;; Modify SOLID or TRACE) K+ v: U+ |% ~, b7 a
- ;; Note the Z value of the object is determined by the Z value of the fourth
7 K' v4 Z3 H# B9 s" v' W) R7 a - ;; point - code 13. Changing the point values of a solid or trace from a UCS: `) U; d2 l( b% N; Y
- ;; that is nonplanar to the UCS the object was created may confuse the user.
" E" t! W' P7 C8 }7 f( _( l - (defun modify_solid (). U+ U. n* g$ z& A
- (modify_properties)
4 H( T6 |; @6 p" ]7 [+ [ - (setq pt1 (list x1 y1 z4))
. q4 n9 [6 b- {/ ^) b - (setq pt2 (list x2 y2 z4))1 B2 F% G2 n1 d2 y) r3 M
- (setq pt3 (list x3 y3 z4))
% c: u5 R# K0 J# B0 ~- w7 \5 o - (setq pt4 (list x4 y4 z4))
, x! p, W9 {# u$ a - (tempmod pt1 10 1)
, V1 K6 A+ |* v4 x - (tempmod pt2 11 1)
2 t. J2 S5 ]5 y2 [$ u# u - (tempmod pt3 12 1)
6 l# s- a M6 B9 E - (tempmod pt4 13 1)* r2 D- D& r5 e# o9 W P- L
- (entmod elist)
3 {4 j6 S2 b% J - )) U, Y$ ^% F6 P2 R( t
- % C% t+ z7 m2 L
- (defun ddsolid () P0 k0 ] Y, W, |$ r' U
- (if (= etype "SOLID")2 ?6 d9 V4 o9 B6 O* s* M& i
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))6 s6 |7 q- w3 E% Y2 E( G' f
- (if (not (new_dialog "ddtrace" dcl_id)) (exit)) q% u, f( [* I, m
- )
7 `6 |' S# p: i- ?0 P) B - ;; Set initial tile values% o+ N# o1 d& n% ^
- (set_tile_props)
/ p- }* P! k! O, g; s - (set_tile_handle), }, U% S9 |! U0 H! m# O, O# c+ x
- (set_tile_pt1 1)
% F l2 z1 t- L" { J1 n( c1 @ - (set_tile_pt2 1)
7 q- @- H9 ^: x - (set_tile_pt3 1)
$ S; H9 _9 z" k- X) O - (set_tile_pt4 1)3 N8 h( Q3 A- c Q, [
- ;; Define action for tiles2 P4 g+ v& t1 T6 M% v6 ]
- (set_action_tiles)
) U6 N# Q1 _5 h$ U) r - (setq dialog-state (start_dialog))9 C, L$ a- ]% K9 ?
- (if (= dialog-state 0)
( a1 D4 n* ^1 o0 @- \" I% M - (reset)( e- @* q7 \1 m/ A
- ) N4 y% F) y# u' X8 A
- (if (= dialog-state 1)
! R* R+ y5 r. C! B. A' [- v6 w I7 i2 f - (modify_solid)* W* Y& j3 s0 U1 i$ ]) Y- L
- )
|' l- a2 N% n4 P" _9 B% E( X - (if (= dialog-state 3)# h. ~+ i1 B, b+ ^: }9 s) N. H
- (progn
/ E% ~1 D) w: Y0 e - (modify_solid)5 R! T8 y9 Z! b" Q
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))/ c1 \' i. v; \, e1 I
- (ver_pt1 1)4 A4 s- t& \: f# @! k) R
- (ddsolid)
1 S, c- q) G( }8 A' O - )% N0 k+ @& Z# e8 M( T4 e5 _
- )
5 M+ ~) t; `. H8 Y% S/ M1 r& q - (if (= dialog-state 4)
y% n5 R$ ~/ y/ d; i - (progn
: D9 r r- F9 W: f - (modify_solid) R- s9 Z2 Z! H
- (entmod elist)$ N+ [' V: x1 ?4 n
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
1 ^6 \' ^6 P( E' ?5 {3 ^3 G - (ver_pt2 1)
9 |9 T7 N5 C8 u. I - (ddsolid)2 I. d( l# R6 D2 |" c: v! r1 q
- )
4 P% m- E/ g- Z% J* x8 o% V - ), N0 M; U" U- C3 U- u
- (if (= dialog-state 5)
' V6 ~! G Z0 U" `2 m ^. }' ?) w' C6 i& C - (progn
7 ?' d' b$ Q6 `8 f$ w9 I1 [ - (modify_solid), G" w! J5 K( s) ^
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
& ~* S, N5 T5 U3 ` - (ver_pt3 1)+ ~1 H0 r. d- s7 E% B
- (ddsolid)
$ d# Q+ r8 i8 l& \ - ): ~, |. C }$ [8 `. X; R
- )
& k4 b0 n* J7 d- C3 g - (if (= dialog-state 6)- r( e9 }2 |7 V6 Z, W( Q. o& \8 y" [
- (progn8 V* S& B; N. Y4 e6 J, R4 u2 X
- (modify_solid)4 a( ]' M/ r; B1 Z. ^# L& f, {
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: ")) c9 h5 A6 G- L- e# U: s& J6 Z; _
- (ver_pt4 1)
( `0 ?1 `) I! q; q - (ddsolid)9 [# l! d+ G+ g9 `- j
- )
5 J% E) O# L9 m O' `9 M - )+ t) u) D- l) u4 O: z0 {; x: M
- )
# T$ B$ q7 p: ~' Q5 W) [ - ;;! `: r" e- q+ u7 c# o. n6 K i" w
- ;; Modify 3DFACE
0 N3 F( B5 _; e0 p - ;;$ e/ S2 }$ }# d- U9 W$ L/ s
- ;; Check visibility of edges' t# B; h2 L4 k* t* C# @
- ;;7 I; m8 H. g7 o1 b
- (defun edgetest (/ bit1 bit2 bit3 bit4): }4 ?9 | B6 [6 R) i. W
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
+ z+ x" O$ g$ A8 ]2 i: N& n - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
7 U4 n4 } b7 `8 u% Y( {, l% k - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))" s* p: T# E6 J- X$ Y
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))/ p* ?1 t- S: K7 @# G
- (+ bit1 bit2 bit3 bit4)/ \; `7 S& d7 Z* m. C, a. M
- )
# H5 I0 `8 I# { - : T/ K1 l" n3 ^8 }) X+ e4 l# `$ \
- (defun modify_3dface () I5 V* w0 }$ h; e5 A6 p& P
- (modify_properties)
) w0 {' G3 P3 f! ? - (setq pt1 (list x1 y1 z1))
" z' a, {( V3 y - (setq pt2 (list x2 y2 z2))
$ H, p/ s- \8 o; ^ - (setq pt3 (list x3 y3 z3))* l. a$ Q v; o6 O6 V
- (setq pt4 (list x4 y4 z4))6 k7 O$ Y' _( m! k
- (tempmod pt1 10 0), g) E) Q/ X: a& t
- (tempmod pt2 11 0)
& H- q& p1 v* K0 e - (tempmod pt3 12 0)
8 _8 R% `& Z! {/ g' ` - (tempmod pt4 13 0)
3 r) M9 f! G$ n' D - (tempmod (edgetest) 70 nil)% L; r) G% j" _" @0 [0 b
- (entmod elist)! J. T% i+ I+ f! Y# a# N
- ) U8 R1 |" s. t/ T
- " }; ]8 S' z) Y' |
- (defun dd3dface (): z# C5 o& X' [
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))2 B S3 l% @0 o) |- @4 W" g' o' s6 ~3 t+ X
- (set_tile_props)
# G" A1 }7 b& w3 r E - (set_tile_handle)
% y/ r* O |2 D8 F" G - (set_tile_pt1 0), H7 s7 T, u) W. m- J$ q
- (set_tile_pt2 0)
6 O) b) S% r$ c; | - (set_tile_pt3 0)2 L1 y3 j4 h( f! w$ C% a7 u$ ?; b2 l
- (set_tile_pt4 0)1 g9 A" Q Y U& s! t! m. i' W
- (set_tile_edges)4 s+ T$ o( U4 ?" @: i
- ;; Define action for tiles; u( k, U; I( V
- (set_action_tiles)' A5 t) t; T& D9 E+ O. u
- (setq dialog-state (start_dialog))
) R6 }$ X( h/ u7 v3 X0 ~ - (if (= dialog-state 0)" s4 X4 B; e7 \( Z9 _
- (reset)* Y- _2 j. Q! V: p3 h
- )& {. x0 j% R! u8 B+ Y5 D
- (if (= dialog-state 1)
6 [/ ] Z/ I: d, h9 f% P9 h, Z6 i - (modify_3dface)( f0 [" s @- B9 i4 n& H$ g) [
- )$ i6 m/ G7 }, m% x' h0 |' {1 [
- (if (= dialog-state 3)' x1 E! k9 j: Z# e% Z
- (progn* _0 }0 Y z8 ^- Q
- (modify_3dface)# t7 n# R2 A$ x$ R; | a
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: ")) z- C& Z; p! K/ }
- (ver_pt1 0)
$ @' @) D. L9 V3 f7 E& m5 q6 g - (dd3dface)
. p1 @$ W/ r4 t+ a; R D+ M - )8 s& ?6 X. _/ t! j
- )
& @0 t( v3 I: t8 h0 N J# O - (if (= dialog-state 4)
# Y1 U, m7 F8 {. e2 N - (progn
4 \/ a; f- e) F - (modify_3dface)3 y% ]3 V. V2 ?, {) y+ a& i9 w% t
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))# o* L9 P; X( w# M
- (ver_pt2 0)
3 c7 o! C1 H& K% r1 Y$ L; @ - (dd3dface)
! _4 R$ i1 \8 w4 Y& B - )( Z+ s7 [7 z7 S% S0 S
- )
5 o0 j+ m1 I4 w0 V - (if (= dialog-state 5)
2 I9 `1 |; R3 ] - (progn& d% }" [8 V3 G6 N, ]
- (modify_3dface)
& K0 C) T+ Z! G# I1 I8 N - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))2 z! c+ ?" V7 _% I$ e, F- V0 B& o- |
- (ver_pt3 0)2 }$ p% c5 I u9 w h& }
- (dd3dface). x& g( t" n0 n5 A: E, g# f2 h
- ) U4 f" `2 \2 r! `7 T- j" X: V0 M
- )
& l# ]) `- W1 Z9 O" ` - (if (= dialog-state 6)
7 z. }2 o! G. K1 A; n6 X - (progn: j) Y- ^4 v; _& e% V0 l+ `
- (modify_3dface)
6 D) i0 u9 Z* m H - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))- F3 w( R# }& i9 j9 A9 ]
- (ver_pt4 0)
* V8 v( G9 F( h - (dd3dface), h/ [: [5 \4 k9 g
- )
( q& V9 X$ I9 Q; |9 ~- v2 i - )$ S% ]% W1 R1 C8 O1 m
- ): D2 r9 G- q k5 H+ Y) x4 B7 B9 I
% I- R) {0 X/ z+ \1 ]$ P9 k- ;;! V0 m% [5 M# @4 R$ o+ w
- ;; Image functions
6 q* U+ F. u- J9 l T - ;;2 o: U3 S3 w1 e8 Z4 {
- (defun image_scale (/ upixel en n userscale temp)
7 R5 A( K: w4 U7 [ L/ l - ;; Calculate the size of an image pixel in AutoCAD units
+ _, f1 t$ l9 j, N - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist)))). B8 L7 m, J/ O9 k( Y) A
+ l5 _0 q$ @* O4 w @2 k+ E! q- ;; Retrieve the user scale1 U+ j% i' f4 i4 j$ J, w
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
$ y: a# U1 h. w
/ ?. [- z c9 P& o* F4 m- ;; Next, extract the image units and pixel resolution& P1 ?2 \( k6 i0 n) C9 w$ e# ?. f
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))/ H# D; W! j9 } z, g4 O
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))0 N' @; S+ ~9 |2 Q I7 V2 _
- (progn) K' m/ F9 j( O4 E
- ;; Convert the user scale to the proper word
; k$ Y8 d& O4 L8 |0 W2 P+ c - (setq n (cdr (assoc 72 en)))% @' ?- L, V+ |, a9 A
- (setq temp (getvar "LUNITS"))
# V1 R4 ], E" Q D0 u" G - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
' L& v8 v% Y2 d. p7 Y - (if (= n 1) (setq userscale "Millimeter"))6 i- U# o) g. E8 n6 D
- (if (= n 2) (setq userscale "Centimeter"))! u4 g+ ]" p3 j, @0 O) m- {) K
- (if (= n 3) (setq userscale "Meter"))
" M) r% P! a6 v1 V - (if (= n 4) (setq userscale "Kilometer"))/ P. z# d4 [: ? [1 o/ \
- (if (= n 5) (setq userscale "Inch"))/ \3 ]; o4 A' i1 `3 ]$ v
- (if (= n 6) (setq userscale "Foot"))
$ ? d2 C" P t# t) r& g. z - (if (= n 7) (setq userscale "Yard"))
3 J4 [; A' K0 b; H; ~ - (if (= n 8) (setq userscale "Mile"))- T: f6 j, p7 p# B: V) \
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
/ A/ ~3 D& \9 A - )4 g/ l" b, r% h+ h9 o
- )! h+ B$ t0 {5 e- K( Q. `( M3 U0 u
- )2 y' ^7 \; L- M0 x# W& m
- * s4 F1 W0 \; h) z
- ;;
- L" N, N: q4 C, s* R, T - ;; Scale factors for block insertions8 t+ H' i# L$ s. d
- ;;/ J% x4 o9 [( U6 a3 g/ `# U% X" O
- (defun image_set_tile_scale (/ temp)
" }9 q* f% q7 _( E: o5 R - (setq temp (getvar "LUNITS"))4 b9 Q3 u8 @9 H* Z, G- }. m& h. q1 E
- (setvar "LUNITS" 2)
1 I6 t6 s6 \* O - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
, Z" T7 i# B( s! }6 Z6 |& s - (set_tile "wid" (ai_rtos (* image:width image:mult))). _4 I( o. H' f- c7 C1 q
- (set_tile "hght" (ai_rtos (* image:height image:mult)))
7 ^3 }: N) Q7 V* }8 e3 e - (setvar "LUNITS" temp)6 _0 V, X; R/ n* H6 e
- )8 P" I, M# p- J
- ' L0 a$ O# T4 d8 m4 d8 v3 f
- ;;$ H+ M7 ]% `8 {- E" y5 ?* Q: z% {
- ;; Set the scale, width and height values appropriately.3 J. g1 f R0 }- K N
- ;;
* y9 Q3 _! [3 [, D( j0 e8 o: x7 ? - (defun image_update (field value / orig_value new_value mult)
0 s5 _ t* c" h9 Y - (if (= field "xscale")
/ l- K5 n4 H6 a8 | M# V - (setq orig_value image:scale)
q" m' |. o# D6 P - )+ J# h, L7 C5 l; v
- (if (= field "wid")4 p, c2 \. A+ y4 l" P! f
- (setq orig_value image:width)* G" N5 c) O6 B2 t
- )
0 [: N. `3 S( J# ~ - (if (= field "hght")
: H7 m3 J+ a% {: J, M/ `: n7 E - (setq orig_value image:height)- J: f( c7 n3 l* X& q, \7 ^
- )
# F4 R3 v. Q! V) l: u - (setq new_value (verify_d field value (* image:mult orig_value)))) }$ b$ [+ R8 |
- (if (/= new_value old_value)3 L! }; r& @, ?
- ;; Make sure the user has entered a sufficiently large value
9 B+ h* T& n; v8 q - (if new_value
8 {6 A- K/ U1 Y5 P5 J) g" ]5 _; ^ x - (progn
6 J( X: b) Q; }. a Q - (if (< new_value 1e-8)' I0 k; i: ?, e
- (setq mult image:mult)2 B9 [' D3 k) g) ^3 M( e
- (setq mult (/ new_value orig_value))
7 y" x8 O; n2 z$ m - ), _1 @) k. w. m3 N1 p% |
- (setq image:mult mult)/ o) w! u2 D- B2 q- l$ T
- (image_set_tile_scale)
1 Q) \9 M- x6 h5 _& l- x( d - )1 L$ }: J7 w, }3 i# u, p' l
- )8 }, H' H& X! ~: |
- )
0 _* ^. L* K$ R; { ] - )
' ^/ H5 e ?4 ]* s5 f3 Y
1 J+ \1 i8 J I- I- (defun image_disp_opt (bit)- _- V) v8 J) w/ i5 k: y
- (setq image:options (Boole 6 image:options bit))( Z. B9 e9 d% I
- ) S1 H% ]9 W" R: k
- # A& K/ H0 ^5 M2 j* P0 s
- (defun image_modify ()
& t: I( S: P" x& z3 H0 D - (modify_properties)* Q/ i* U5 N, G) r$ W
- (setq pt1 (list x1 y1 z1))
( l7 m# _# Y/ v+ }$ k/ b - (tempmod pt1 10 0)1 w3 u8 N; N+ J/ y5 t
- (entmod elist)
6 J6 f p3 K; [) N2 i, T8 b. A - )8 V5 `, Q: P; P+ d6 g) q' V
- * R8 y9 k7 c9 J4 D
- (defun image_clean_variables () D+ {1 C4 n9 R8 D
- ;; Clean up global variables used here4 c7 S2 a Z) Z) `
- (setq image:scale nil); i8 B$ |9 j9 u* y" i
- (setq image:angle nil)' w$ q( ] e, V$ l5 C% p% G1 c
- (setq image:width nil)0 T8 x5 _! O: E6 g1 e* F! B
- (setq image:height nil)
' w% C# u5 z, I( ` - (setq image:options nil)
$ p* r2 i. ^5 g0 u* Q6 f% S' s - (setq image:oname nil)6 s K0 _6 v8 _1 a
- (setq image:olist nil)! T2 U' a) |' D' M' I, S
- (setq image:mult nil)
4 I6 y: O: m7 N/ }& l9 u$ G0 l: J - (setq st_ang nil)3 h A9 r2 ^& s9 r- c/ u
- )
+ ^8 U/ p$ ^" l7 s" q8 [ - 3 p0 A n" O+ D9 F! ^
- (defun image_scale_vector (v1 value)
! f! Q4 F& R6 `+ Q$ ]5 g - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))9 J* N# [1 M/ Q' M/ p# n
- )
2 o3 u! f% U2 m( o8 D
1 y" a' m- E( c. h# w" _4 Q8 A- (defun image_cross_product (v1 v2 / vx vy vz)
- B0 F, N. c/ P3 C u& H, x - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1)))), y! V$ K. A6 B) V1 I, n
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2)))) J% }5 D$ d: ~& l4 P
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
6 H3 c4 s( O2 V K0 ]. o. A& k - (list vx vy vz)0 k% W1 x' _4 L+ Q/ r' C9 E
- )" W& ]3 i) F# y8 |2 y* B
# G' V g( H$ t. t- u- (defun image_dot_product (v1 v2)( d4 v9 J" ~ y% |3 i4 V7 O
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
8 o& a5 O8 e! a/ U( F - ). @" r4 J- V P8 s+ x$ _
- . N$ W4 G+ }* k. l
- (defun image_add_vector (v1 v2)
& s( c1 y$ [$ l3 h# Y! w - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
( u f; E8 _( ~/ t1 P. v - )
, B# |! C* H" V( X0 {5 \* ^4 G- |
" ~$ v1 z; s/ }' {- X+ c- (defun image_subtract_vector (v1 v2)
* C7 e8 l5 X2 z9 ] L+ l. i' H - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2))). m& [& `4 j: q5 F9 ?" |
- )
3 X- L1 d2 b+ M4 S
4 L$ d) M* U; l6 a, r- (defun image_normalize_vector (v1)
& M0 N% y- @$ Y2 j i" y - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1)))): M0 [5 R# `. Z- r( u2 p& P
- )0 C+ V$ C. G" B" z: o, ~
- 0 r/ L; d+ k7 O& }4 F" Z
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
% S& U4 \, O( @% F2 A8 B - ;; Normalize the axis
+ S1 b% ?$ \ H5 w - (setq axis (image_normalize_vector axis))
+ L" W! A* P# U6 B' f4 r - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))1 [2 |- f5 ]! s) v% U6 D
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
t9 L3 I: [: Z5 k" ^ - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
/ A& ?4 P3 ?8 \+ _: ~5 M4 Q - (setq in_rot_plane
9 p8 F0 T4 z+ Y9 f& z - (image_add_vector
/ M$ G/ N" k2 A6 u/ t - (image_scale_vector axis_x_in_rot_plane (cos angle))' |0 ~& L0 ^% o; i% { M
- (image_scale_vector axis_y_in_rot_plane (sin angle))& j2 |4 _4 J9 ?+ ~0 |* N
- )
/ v) ~* e! t) s- q - )* e5 k( g3 P5 d1 V5 E
- (image_add_vector along_axis in_rot_plane)
% S5 P$ F6 N7 \) H5 ^* @ - )
! w8 C" v1 e/ X: Q3 w - ; j8 A3 m4 f' G4 _+ h
- ;;' ?& n! D Z* R' E5 h
- ;; Calculate current rotation angle if appropriate.$ Q- k- Y& Q. M/ ? ?! D5 r& G
- ;; If not, grey out the rotation field.' f1 Q# H$ F; F: l' w
- ;;: ]+ k' ? h& Y$ o: ^% I `
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)4 {2 U* F- i/ ?4 F% v& R# z
- ;; Determine if image normal is codirectional with
/ k) g6 v) K6 ?3 L5 b' U - ;; the current UCS Z-vector.9 A e# ]# Q$ L4 E8 D% W
- ;;5 z2 U+ F/ g; Y. G8 t1 x
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))! H* \- I0 s3 I+ |" {; H) h7 P
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))) c1 J+ Z% x& G. b/ x* a/ D
- (setq zlength (* (last normal) (last normal)))& h; a- L4 A( g/ [) M# a1 `9 [
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.0 S7 P& b, |& N8 W7 K
- ;;" [, N1 Q5 t1 e; @! A; u
- ;; cos(.0001)^2
5 u( v* V7 u& k - ;; Tolerance = --------------+ I& g. p U6 T' d; \3 c4 P
- ;; sin(.0001)^2
5 v% J7 K3 D5 P8 X* Z# g - ;;
$ H5 X! c- A, {- ?- }) P7 [ - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
' G/ D% _& a( W1 q) o0 C* p - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
: `) K6 d" g0 C! Z - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
4 r. n4 X& g+ n% G - (progn
8 H& C/ o; A1 D4 Q - (mode_tile "st_ang" 1)
& K( o/ } u. {: B - (setq image:angle 0)
( u( r/ y5 I7 s - )# b+ g6 P+ A+ ? d/ D$ K: M
- )
$ Y. H/ K1 E, [; T% j9 g - )( x# H5 f0 _* ~" S
, n! U/ {+ V; F- }4 j5 m- ;;
9 @3 W, n! E; O) v& i% l - ;; Modify Image
5 c& C0 b3 F% v - ;;
6 T% G. l; u4 c( S/ h* Z - (defun modify_image (/ u_vector v_vector z_vector)
: V! I. _5 A* n# ^8 o6 K5 I& H" L - (modify_properties)
/ i- w+ E% \) e. g; Y' h5 ] - (setq pt1 (list x1 y1 z1))
: k, s. s* i( i - (tempmod pt1 10 0)8 k: M- j% @; h% k3 y
- ;; Make display option changes to image. M" p6 A; p" k2 N
- (emod image:options 70)
! P6 J6 `0 E; x% h: D5 ^ - ;; Get the u and v vectors
+ j, F' v' A( E$ T Y - (setq u_vector (cdr (assoc 11 elist)))
6 j/ i" t5 w0 `" m6 c- m& c/ V2 a - (setq v_vector (cdr (assoc 12 elist)))
; H6 N* F, B, y# D* T7 r - 0 D n# }4 f; R$ N( M6 r
- ;; Make scale changes to the vectors2 I. d. h4 G/ i# t9 h% Z
- (if (/= image:mult 1)
5 i: @% H4 G, t- o! p - (progn6 f7 w% h2 h4 v2 B( {8 B
- (setq u_vector (image_scale_vector u_vector image:mult))
1 _0 g. A: ]5 _" M - (setq v_vector (image_scale_vector v_vector image:mult))" W5 o/ Q; l* {7 O3 `# {0 K& i
- ); v1 j8 ^- A( S6 t
- )
4 K5 j" w3 `( S# q" O, X6 g1 ? - ;; Rotate the vectors
x. C: a) T& G" T7 D" r/ p - (setq st_ang (- st_ang image:angle))
: b2 U8 I) z5 [( n" U - (if (/= st_ang 0)
4 z' l% z8 H, _: ~ - (progn$ F& x$ Y a* r8 ~
- (setq z_vector0 b" j3 h) u, K9 a/ I+ n( C7 t
- (image_cross_product
8 Z. C9 M. S5 }, y" O - (image_normalize_vector u_vector) p8 e7 C: W7 Y4 T0 Z
- (image_normalize_vector v_vector)
, x. S7 H2 U2 d - )5 Y; f" |* A' P/ ~, O' ?; v$ V
- )
; [8 b+ h# I' \. I# J9 C7 u6 k - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
# _# d# `& K8 r0 v - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
4 J, V+ j9 `4 {% t s# P - )' h+ I. j) C* C9 C
- ); f" F: L: G( R- @+ O
- (emod u_vector 11)0 I1 e, q0 s: _4 @, U8 M* {
- (emod v_vector 12)
& K2 t, W8 ?4 v- o - (entmod elist)
" b- g, w$ s/ Z& A1 H, x - )
# M! B7 {8 ^; V2 v - ) J/ m! \1 \7 |
- ;;
6 T; ]8 J# g& m* J; h2 x - ;; Run imageadjust on given entity, working around possible
' [3 h/ J1 N. ~4 A - ;; re-entrancy problems9 d. K: \4 f% i! P
- ;;& C) h! C V+ G1 i, x) z& o
- (defun image_adjust (ename)# M" n1 Y% m; d* J1 Q9 U; T
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
/ K- a8 b0 ~( n. c* Z/ ]9 N - (imageadjust ename)
. C( [' J- S# P6 i7 F' ] - ); [5 A( |0 d; v
- $ v3 h' o; a# m: y" ^/ e. R
- (defun ddimage ()3 C/ Z/ H& o! o8 {" P
- (if (not (new_dialog "ddimage" dcl_id)) (exit))# _% t, n* h( v+ o
1 Y! E1 m- \" G- ;; Grey out the thickness field.
1 h: o1 T, L: U$ p8 C+ c/ z9 L5 W+ c7 T - (mode_tile "b_thickness" 1)9 T7 D: U7 f5 U6 {- m5 d+ r& g
- (mode_tile "eb_thickness" 1)) r) L$ I; V& j `8 p, S
- : t6 k% L+ `# h
- ;; Get the associated def object.
# B/ M6 l5 L4 I! _ g2 Q - (setq image:oname (cdr (assoc 340 elist)))/ R `+ B, J* b& }
- (setq image:olist (entget image:oname)) _+ @ ]6 W; U& o8 W5 y) y
- ' [7 _; P, q/ l/ c' d6 ^
- ;; Set initial tile values5 p, n: t+ ]" s$ \+ i5 c, g+ L
- (set_tile_props)
& F+ G" l) U* q U+ S( P( U - (set_tile_handle)
/ k6 W F: S5 D - (set_tile_pt1 0)1 E- c# A, M9 V5 {0 o/ c5 L6 O
- (setq image:scale (image_scale))3 ^& u3 z; q4 |8 v- Q# ^+ a
- (setq st_ang (image_rotation))% M4 {9 ]8 a: p$ d0 K2 T+ V. X
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))3 T4 z- @! E/ `, s8 k1 I$ ^3 L/ W
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))$ c4 t" |& m( u5 ?0 q+ X+ R
- (setq image:options (cdr (assoc 70 elist)))
4 j6 ^2 N8 L- ^/ b - # B$ v. g @* n
- ;; Record the last multiplier for use in image_update function
~/ D3 ^- X' ^ }4 a5 C, K$ t% R - (setq image:mult 1)
$ L! b2 K2 d5 Y+ D/ X0 g- V1 H - 3 ?' I+ W& A* A) o
- ;; Retrieve the image name
8 t" N/ y5 W9 q R, B$ Z A - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
$ `; W" }' Q( F' _/ M - (setq flag 0)
$ _9 q$ j( `9 V' C- i8 _; _ - (foreach n fn3 k4 x+ T6 g. E9 u* n# t5 O+ L" E
- (if (= flag 1)
: B% x) f/ l2 S3 A+ i" f - (progn
8 C- R: {/ v4 ] \9 M- C" h - ;; Display the image name
# b& o" x% S, G% h; x - (set_tile "image_name" (cdr n))' y; f+ H% p3 h$ T% m- x
- (setq flag 2)
7 x% B; C: n% J - )0 [1 }. f0 f& z, U* y c9 g
- )% U, J8 f. `( j
- (if (= flag 0)# k) N$ t: a: ]& Q' E2 d
- (if (equal (cdr n) image:oname) (setq flag 1))
! p' t1 `/ }. K - )
% }: M7 y9 a% Q& c - ), y1 `, t3 A1 W8 W& l
/ I1 R: P% S# W) P+ s) |0 c- (set_tile "image_path" (cdr (assoc 1 image:olist)))
( b# O3 E& \' E6 B& t( W - (set_tile "st_ang" (ai_angtos image:angle))9 W G t# q# V# [6 l/ r y5 p
- (image_set_tile_scale)
/ C" d# f" L0 l - : E4 N) e3 s I4 k8 M: s1 ~* ] ]( E4 H5 e
- ;; Check the appropriate boxes( A; a8 N: f3 @3 F* s: H
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))3 k8 E/ l- n0 \$ X
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
" I9 r0 s! m, E g8 E* ] - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
/ |' m" f/ [) ~$ L6 j. x: { - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))0 z" A+ P `3 t, h
- / K* C/ `8 F" ]
- ;; Define action for tiles( C9 C" W) C0 r% @- E' g0 [/ {
- (set_action_tiles)" B. \ C4 g& n
- (action_tile "xscale" "(image_update \"xscale\" $value)")
9 X4 f2 k' @* |6 o* t3 g9 }& @/ c3 m - (action_tile "st_ang" "(ver_ang1 $value)")
& @3 t$ V% O' p0 N - (action_tile "wid" "(image_update \"wid\" $value)")
$ q2 C2 @- N! k; Z+ g- D - (action_tile "hght" "(image_update \"hght\" $value)"). Z: P& v( [4 S0 T
- (action_tile "image_show" "(image_disp_opt 1)")+ Z: j: h1 c8 {" T3 k+ R
- (action_tile "image_non_ortho" "(image_disp_opt 2)")+ W2 [. R! v4 A3 \9 [) y+ }/ M
- (action_tile "image_clipped" "(image_disp_opt 4)")
2 |% R, K5 k. T - (action_tile "image_transparency" "(image_disp_opt 8)")* f% A) Z4 V0 P+ w0 v
- (action_tile "image_adjust" "(done_dialog 4)")/ j) R% N0 b3 c9 U, R
$ I2 Z, X: m7 S3 g O* q9 G- (setq dialog-state (start_dialog))& u" f5 E" K- Z* ]% X
- (if (= dialog-state 0)
( }$ A: p; [" g1 Q @2 v - (progn. ?6 @0 f3 R4 i7 }: ]
- (reset)3 H' K( V, y* c" v. b# Z
- (image_clean_variables)7 k' a0 W9 F- k$ {$ o
- )* a+ Z/ E: [, Q+ \5 H
- )# i0 {1 y/ t# g
- (if (= dialog-state 1), w6 w9 M8 R( B( |# T+ ]- @# t
- (progn
" }* b/ w0 a, c1 ] - (modify_image)# b" E3 n+ j2 c7 V& @. Q7 K2 n
- (image_clean_variables); ]4 ~1 _5 z' L% F4 @
- )! N$ i6 x8 H6 \( e4 c- J, ~
- )0 t7 v5 | m) l: j0 [% \6 i. E' r
- (if (= dialog-state 3)* Q/ P: x! l z: L# o4 t; z! ?% m
- (progn3 l, `2 f5 y3 m/ \3 ?& J4 n
- (modify_image)
! o" p! k- ^% b- S8 I( F - (image_clean_variables)
0 f D" J2 \! u; V - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
( ?* E, y7 G3 Q) W- X+ L* ] - (ver_pt1 0). Q! G! G4 x" D+ P8 D6 W1 Z" Q
- (ddimage)
7 n$ a7 P& V$ x M - )! M" f$ i. m5 z9 ?6 b
- )
0 B. r9 b% D& s8 H; g - (if (= dialog-state 4)
3 Q5 `' R5 Q/ { - (progn
- ~! X1 A; A9 H' [7 H - (modify_image)- N( A$ H; N- r
- (image_adjust ename)
' A& O3 ^$ e7 _0 I: T - (setq elist (entget ename))
0 j$ ?' s! s( J1 O% I# F4 ^ - (ddimage)
3 y' r- ?" I0 H. ?- T+ W0 v$ b - ), Z0 q- v) r! }% w
- )' ?% H6 p. @: v0 F' O/ y* \! {
- )
: q M3 k0 U( z, N& _ - , N/ Y; s! V4 K5 i
- ;;
- v8 \& H0 I' D! |0 a6 X9 A# M: n$ h O - ;; Modify BLOCK (and its Attributes, if any)* m6 s. n" ~ _# |9 |; f5 Y
- ;;
8 | L% Z5 P# t. M/ L. m% R - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr& @8 }- u# [5 J5 S5 I+ Y
- new_wid old_wid old_rot scaling old_scale0 z! n, v+ ]0 L9 Y2 X/ w
- xdelta ydelta zdelta xbase ybase zbase ipos). o4 |) S5 g) D9 U' X
- (modify_properties)
5 V) |+ k# |1 b X4 {3 X) F* V6 Z - ! t, \8 o+ K0 B0 g0 T5 W- Q8 s
- ;; First, translate and scale the Attributes, if there are any.7 b$ P9 S5 I2 y% s
- (setq old_rot (cdr (assoc 50 elist))( P7 q+ I- [1 G# R5 {
- old_scale (list (cdr (assoc 41 elist))
/ S9 R5 Q+ ~2 c- m - (cdr (assoc 42 elist))
! ]- l4 Y) _* j - (cdr (assoc 43 elist))
5 Z/ j+ X& W5 X/ j2 U - )
7 H+ m4 @* s( I% L% N$ e, D - scaling (or (/= xscale (car old_scale))3 S) B6 E% Q# q7 r1 ?3 L2 f7 ]
- (/= yscale (cadr old_scale)): ]: h$ i, _* d3 V
- (/= zscale (caddr old_scale))
( `9 C/ l& V, N0 i" }; v/ ^ - )4 |- p2 o/ F3 }( J
- attr nil ; No Attributes modified yet; W& S$ k9 {2 V) I% S
- )9 F% h+ p& u2 Q4 D) T
- (if scaling+ N7 Y0 A, D+ t( d8 z
- (progn5 u6 ?! K3 T7 n& {' `
- (setq xdelta (/ xscale (car old_scale))- l" u: w+ A8 W+ m x% N9 ]- I
- ydelta (/ yscale (cadr old_scale))5 Q R5 |, Q/ s9 t! ~# J# B. t
- zdelta (/ zscale (caddr old_scale))" m9 _3 h, \7 I0 W4 q
- ipos (cdr (assoc 10 elist))
, R- w: R4 W0 M! ?8 B4 B - xbase (car ipos) _5 `# P% Q9 U* n1 u1 \
- ybase (cadr ipos)
( V+ d! G! r3 a% W: g5 s& d+ V - zbase (caddr ipos)
5 u. b6 j' v% y3 A5 t9 v, `. a$ a - en2 (entnext ename) ; First Attribute
+ G, ^2 o2 c- z: F7 f8 o" z+ D6 ~ - )# W3 t9 E- x! u5 |
/ F9 ]6 l- o1 m: ]8 G$ r m1 x- ; If the Block is rotated, temporarily un-rotate it, along
/ l9 X4 @/ S$ R' s - ; with all its Attributes, so the scaling/translation of the
$ I% e# `0 d% u" L, y - ; Attributes won't have to take the Block rotation into account.
' h$ Q' Y2 L$ H* T - (if (/= old_rot 0.0)
Z h9 S3 i, P& [) t - (progn9 c! ^6 g( b. g( T' [: u
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot))), N, o; o0 G2 e& n0 G' T+ d* V
- (setq old_rot 0.00 V8 M3 L% j9 W
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)
. d }! Y# f. f% V: h6 a \ - ): p4 V0 C; y+ @. B5 a! F
- )0 ]1 r& j' B. c) J" Q
- ), I3 w% J. T# v0 Z! l3 S* u- ~5 x
- : x2 |+ ?4 I2 _; m
- (while en2
4 [1 U! g- d0 f9 |9 e' H - (setq el (entget en2)). ~# `+ D# |& ]( \' {. S
- (if (= (cdr (assoc 0 el)) "ATTRIB")8 f) K3 I9 S9 h% h5 [ H
- (progn2 o/ x" Z2 @; n1 U
- (setq old_hgt (cdr (assoc 40 el)) ; Height, L% n8 q9 m2 n- d/ `9 t
- old_wid (cdr (assoc 41 el)) ; Width-factor
( @- x# C5 f/ z4 L8 z5 H - oldp1 (cdr (assoc 10 el)) ; Generation start point# P8 J2 E! R8 F; _
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
9 ^+ T5 ~* `# E. ]9 R" y - ha (cdr (assoc 72 el)) ; Horizontal alignment
a; u0 g8 C6 @; E3 \4 H - va (cdr (assoc 74 el)) ; Vertical alignment# _2 ]8 O: C# f
- * X# c# l; V$ _$ R5 }: B) s% V
- ; Translate gen. start point
2 G' ]' U1 @0 Y1 Z- `5 E - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
0 ~7 r0 u/ U } - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
% M, _9 x; [3 N - (+ zbase (* zdelta (- (caddr oldp1) zbase)))
/ H* V! G" Q- h - )
8 j, g; _' |( \ - el (subst (cons 10 p1) (assoc 10 el) el)
2 S; k0 I; T# Q$ u$ j - )
! W& @4 V. A' R* C/ `( {8 _& q
+ V) G' N$ }- X1 \* |- ; Translate alignment pt similarly, if present and applicable8 p' U" K# G, D9 m2 x3 u
- (if (and oldp2 (or (/= ha 0)
6 [4 E) Z. O! o7 @ - (/= va 0)! Y9 d! J n3 j; L0 D2 c) A% H3 u) J
- )% w" o' w( @6 t- |
- )5 ?& a8 R9 c3 |0 j# S: V
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
$ w# Y. o$ S3 K- h! o - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
& u, Z8 V7 ]: H4 ^4 w6 w* B - (+ zbase (* zdelta (- (caddr oldp2) zbase)))9 h& s5 y: t% |
- )
- t+ \' i; `! k* | - el (subst (cons 11 p2) (assoc 11 el) el)$ [; w, E( _) r) e/ q
- )
% v7 t* D- {* J* o+ D - )
]& Y# _1 k9 `/ u' N$ q2 g) _
% z {3 |# q u% s! Z4 y- ; Each Attribute's height and width-factor were computed
. M' |5 [ x* B) |5 D% e: a2 o - ; based on the Block's scale factors. Adjust them now,
7 E- ]3 o" x& [" R5 I/ a! c - ; by first reducing to values for 1x1 scale...
. x$ \; Z9 T0 q3 @. h - (setq new_hgt (/ old_hgt (cadr old_scale))+ r3 B- l+ i8 a. b! O6 w0 m6 R) U
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale))): k% T5 P" q% P2 T8 x K4 w
- )0 O4 x& y4 t( I+ w, _3 o. M4 U+ n
- ; ...and then rescaling.
+ W* F, J: n( |; G* y - (setq new_hgt (* new_hgt yscale)
3 o# x V0 A/ l4 K) y' { - new_wid (* new_wid (/ xscale yscale)), w4 J# s. c$ E+ i. o7 G
- )* Z7 V/ n2 A) i$ l% P7 d( d3 q
- (if (/= new_hgt old_hgt)
1 ^ K2 ?. l* A t6 h - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))" \! x) c2 C2 L/ ?
- ) G- w9 e# j* S; L( I
- (if (/= new_wid old_wid)" s0 `# S. l% d( J" d p8 p
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))1 t8 `3 ~% V3 V- ]! C
- )7 C' l2 z. _8 o
- (entmod el)$ O# } q" x# |& s% b/ |
- (setq attr T ; At least one Attribute modified
1 o" y$ b9 g* i - en2 (entnext en2) ; Next Attribute
7 l/ e7 p4 B/ @* r, R+ C- O' K - )
3 d8 ~7 o- `. l$ F" Z - )) n5 e! q2 B7 P/ W! J
- (setq en2 nil) ; No more attributes
i0 Y/ f7 u3 U9 }+ e, j/ J+ [ - )
]+ P; q m; \3 P. o3 w - )
* v+ ?! e; V {3 }3 ?3 l - )
- ]6 s/ F' _* t2 w3 E - )
/ H7 P- i2 s! m. O" C$ c
7 n5 F, O" y8 n4 q6 P- (setq pt1 (list x1 y1 z1))
+ a e: u: w5 n( ~# D- }: m' i( | - (tempmod xscale 41 nil)7 @$ K9 d; E( m* m/ h
- (tempmod yscale 42 nil)- P6 W! ~) y/ j/ X8 V' j
- (tempmod zscale 43 nil)
+ F0 j7 f& P) g) C0 `7 j - (tempmod col-sp 44 nil)- e$ j: L% q, a! P- S
- (tempmod row-sp 45 nil), j1 N' A' `9 G, b
- (tempmod columns 70 nil)
6 E$ v6 C$ L j. v - (tempmod rows 71 nil)
9 o6 k$ P% U2 A+ T+ O$ J - (if (= xclipmode nil)
/ N& ]: {4 F6 d) X7 q% r5 \* \+ L - (entmod elist)+ P+ o- t! s3 [$ I/ E: V+ ^2 k
- (setq xclipmode nil)0 f: {4 j- x% n4 @" M
- )
7 P% R; r/ V) K7 N5 V% F5 A - (move_pt1 1)
5 a& w$ _4 D" j8 S - % h9 @8 Z9 H& ]8 _- K b7 d
- ;; Now do the rotation with the ROTATE command., i: |( q( l# U% w1 A! |
- (if (/= old_rot rot)3 S. E8 c3 _" C7 F( j
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
8 r5 M% V" O$ L$ p - (if attr ; Else, if attributes were modified,
$ q/ {' _* J* C6 Y9 \ - (entupd ename) ; just regen to force attrib display) K& [+ ~. L1 t% N
- )
. m) q* r p1 Q# H - )
( u/ {6 f0 o3 }& N6 K3 C+ H a - (setq elist (entget ename))
) h- F) G4 g! B' I3 d' u2 T - )) k$ A+ B T T9 k4 l6 r: c) @
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
& \* x" ^) C7 v2 B5 Y - (setq newhatch 0)
9 H# ` o: N3 I8 r9 @ - (setq blkname (cdr (assoc 2 elist)))# L- S) d. w" }- @# `7 _
- (setq blklist (tblsearch "block" blkname))
r$ x( S6 m% F/ ? - (setq blktype (cdr (assoc 70 blklist)))
" j9 }$ Z' d: l5 K" U - (setq xcliponoff 0)* x' u5 D. ~4 P" |+ K
- (if (or (= blktype 0)(= blktype 36))
8 \% G# a7 i) w, f- u7 M - (progn- C; w; l1 S9 p1 `- I- Y9 k! } h
- (setq xcliponoff (xclipon elist))
+ }" v5 P/ ?# \2 d - (setq temp_xclip xcliponoff)
4 E, O0 T: F ?! c+ G - )
# U- i3 J0 x9 S( t - )9 N' g' e: D2 L g2 r6 w8 A
- (if (= (logand blktype 4) 4)" k/ m* R8 m2 T: V }
- (progn
r% ?# o0 V/ ^5 f) n - (setq xrefpath (cdr (assoc 1 blklist)))
+ ^0 s5 w8 }$ C- P9 n0 A( C - (setq help_entry "modify_External_Reference_dialog")
* U7 l) [; ]) Z; x S- f6 o9 J/ f6 K - (if (not (new_dialog "ddxref" dcl_id)) (exit))
! n( k9 u7 [3 \ - (set_tile "Bl_name" blkname)
. s! A1 K" F0 _/ i+ B - (set_tile "path" xrefpath)
( |$ `5 l8 C' q - )
* i8 e- Y0 z9 L/ C( s4 A( @6 P - (progn' \4 a' y, G3 P9 S
- ;; Get program name for use as Xdata app name
, L9 @+ w$ _. m5 D1 y - (if (not (setq program (getvar "program")))
- o' O, w8 Q7 J1 U- d6 H! |% | - (setq program "acad")" j* I2 [! k& d
- ) I: S ?" I+ `1 z/ M
- (if (and (setq temp (assoc -3 (entget ename (list program))))
0 Y! R) Q6 _4 s7 d8 m) c" y - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
- A! O. p6 r1 ?& [$ @0 Z$ H% ^$ q - (assoc 1005 (cdadr temp)). e5 R5 L% b4 b; F& I; x* B
- )1 w) a( h( I: o8 l) h* h$ T* x
- (progn9 `; M0 ~( p9 U* W" e3 y
- (setq newhatch 1)
' T L% Q# i2 q* `# B# o3 M - (setq help_entry "modify_Hatch_dialog")
8 m l# u" A5 V& G; K- ]1 V2 b - ;;; convert the object into a new hatch7 I: m4 u$ G3 x- @
- (ai_undo_on) ;; enable undo3 J% H( q' h9 T. [+ C3 H, x5 j8 C
- (COMMAND "_.UNDO" "_Mark")
r% B# V0 K2 o+ P# A2 k" D1 ~ - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
1 @: F; t, `" L8 t, m+ |- A d - ;;; suppress nasty message from convert command3 V8 p+ v9 G2 i: h# i& x
- (princ "\r \r")0 n5 H2 c& I& S( Z; T
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
" q" F* W, N( I - (setq old-elist elist)
* f1 G5 H3 g0 L& [ Q - ;;; If we have cancelled ddmodify
# h* O6 R* \- [& x9 Y" h - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
0 X- \, _: k: Z5 `# _: s( y( O- e0 _ v - (command "_.UNDO" "_Back")
5 g8 B! s8 X" a- w4 B6 x - )* K. C g& S/ I
- (ai_undo_off) ;; restore undo state
9 O8 Y' ~0 O, b" k - )
3 T6 j& Z, t/ Q' p4 x# C$ e - (progn
4 P0 _$ D' |! L" S* G* o - (if (not (new_dialog "ddblock" dcl_id)) (exit))
$ n3 Y2 k) s0 f# m. c6 V - (if ( = "*" (substr blkname 1 1))
2 `$ \: b, h% n! }. U% h - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
+ E8 `4 _" c& {3 _ - (set_tile "Bl_name" blkname)7 S% A1 D) |2 T+ N/ D7 ^5 o+ V
- )
+ j; e6 E: V: M) {1 ~& M: l - (setq help_entry "modify_Block_Insertion_dialog")
' l- |4 l& _' E) C - )
E( b0 i. c; ^% R - )
; N& m% g8 @! m; _; [/ L8 [1 i - )
6 K3 m! N$ z) Y: O0 @$ c - )% ]. C9 C# q1 X/ O6 G% P
- (if (= newhatch 0)
3 H7 y, x8 @* Z Z - (progn* y ~. O" I# p, y* i1 X, M4 m
- (set_tile_props)
' l0 [/ U7 g# T! W" p' V - (set_tile_handle)
) O* Q5 E& ?1 D/ W& F3 y' l - (set_tile_pt1 1)) a* K; C! f6 e/ F0 |& c2 d. X
- (set_tile_rot)8 u9 z; ?% `# p
- (set_tile_scale)
9 [0 Y. w, e' z4 t. ^3 G' T; J4 v4 ^ - (set_tile_rc)
' f1 W; W( k& F8 N - (if (= (logand blktype 1) 1)( ?# M+ s2 P. Z+ F' Q1 H+ J
- (progn4 n$ j1 C- ^( P( X4 s
- (mode_tile "xscale" 1): l: V: }' P+ \7 X9 m7 D1 |" O n
- (mode_tile "yscale" 1), H4 n' D! V0 {
- (mode_tile "zscale" 1)
; H2 C/ M$ \- b1 U - (mode_tile "rot" 1)% d; [, v( D: \1 h1 i2 C
- (mode_tile "columns" 1)2 x. V+ H3 i l/ r- @6 j
- (mode_tile "rows" 1)
3 ?1 I n3 A, s2 }6 k! f - (mode_tile "col_sp" 1)% r- e2 h7 T. a( n+ y3 I, a) |* F
- (mode_tile "row_sp" 1)
: u, M* m5 @4 n A' Y; K - )
7 S' X1 j& p( F7 M0 \% h5 j - )3 Z2 V' m$ ?6 h' s: v
- ;; Define action for tiles
# I; ?6 E% z4 w }; H - (set_action_tiles)
% _- b) q$ ~/ Y, z. l0 Y% S - (setq dialog-state (start_dialog))
6 z/ k2 M5 ~& i3 \# ] - (cond* \$ j; _2 e/ N1 }1 O& p, a
- ( (eq dialog-state 0)
+ e6 r. F% p# e; s/ p - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))) o0 r7 {" _2 z) E1 N
- (move_pt1 1): ?$ A2 k3 d) n' A3 X
- (reset))7 l j7 p& z( {3 W- E6 Q
- ( (eq dialog-state 1)4 k. W( ?2 v& z( h( e% w4 E
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
# V! ?8 k5 ~/ ?# h: {, t) ` u9 [. { - (xclip)% U* Q- e0 y3 H, v5 X) `0 s# @, S$ w
- )# k) l2 f2 k! s3 A- [
- (modify_block))
1 K, e/ i" p5 J; D - ( (eq dialog-state 3)& }% @! W4 i5 q
- (modify_block)
7 `; U& y. w3 P# s - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
' y$ e+ D3 @5 Z/ u+ m& e - (move_pt1 1)
" t7 A3 `2 W: J - (ddblock))
0 W* s. B: f v& |8 Y1 S - ( (eq dialog-state 4)
5 I- y1 ^- O6 ]' P - (modify_block)( |( V7 {4 B8 g9 T2 A: q
- ;; Get current handle.
% G: q+ a) {/ E0 B' K2 O - (setq hand (cdr (assoc 5 elist)))
& m% |+ }# K) k- N - (command "_hatchedit" ename)
5 _7 i; L/ h9 M6 [# l - ;; If OK in hatchedit, a *new* entity is created and the old one+ D% \: H" I" B% _
- ;; is deleted. So if the old one exists, it must have been a Q: `9 F. Z: l: W/ J
- ;; so rest the entity.7 Y8 _/ F% D+ y. l! h: z1 l
- (if (entget (handent hand)) (reset)) U* W) b) n# |3 g& m" c9 O
- )
+ h, E; n u/ [- ?- \& ^! N( n5 r - )
( k f# P' U1 C1 ^4 j$ G; y; T - )7 `7 [' [6 {4 `- f! P! [3 j
- )# F; q8 p8 {, Y: `# P1 c) m3 \( K
- ) m6 V$ R* W8 H% ]$ s% Z+ P
- ;;
2 e, o5 R8 E6 S! v7 G - ;; Modify SHAPE6 S' ~9 e0 T8 A1 |5 z" `7 h
- ;;: y$ q0 D& \1 p# F. \$ c: \* ]
- (defun modify_shape ()5 G5 c8 ^+ F5 n+ T$ z8 s
- (modify_properties)/ T9 o" b6 H- h$ ~
- (setq pt1 (list x1 y1 z1))
$ k" a$ i9 }( w* D) O# F+ _ - (tempmod pt1 10 1)/ d$ l/ b; O& ~, I) W# O" ~- ^
- (tempmod hght 40 nil)
6 b( Y$ p( E: h* W - (tempmod wid 41 nil)
1 y* L. g' @- k$ v4 { - (tempmod rot 50 nil); ?4 A' C/ y0 d' r
- (tempmod obl 51 nil)) e/ z. Z6 R, y6 k' a: a1 [5 C4 Q
- (entmod elist)
/ h( j3 p) t% f3 i) T; k2 G0 j - )9 ~1 M) c9 e( u# ^6 Z" `% n0 s
" Y0 s9 F& m9 _) \# a- (defun ddshape ()
% `3 r X7 z" k1 h - (if (not (new_dialog "ddshape" dcl_id)) (exit))
X3 j- Q1 u8 F2 g - (set_tile_props)# b* ~; `+ H6 h
- (set_tile_handle): m' m2 D/ \8 n& S Z
- (set_tile_pt1 1)* p2 G2 E6 E" s8 B
- (set_tile_rot)5 t' `! q( D) A8 R9 w
- (set_tile_hght)) C( W7 J6 r( p' @7 b
- (set_tile_wid)6 N2 x4 P$ m; J: Z5 b' o
- (set_tile_obl)
( o; ]5 Y" @( Q3 ^4 X; ]4 B+ ^ - (set_tile "sh_name" (cdr (assoc 2 elist)))* j& R! `6 E8 f# D+ w
- ;; Define action for tiles& B( r5 A* F* i. b
- (set_action_tiles)
# D J+ _$ t7 k( g" k - (setq dialog-state (start_dialog))
4 u+ M, q+ d: K+ F! s$ b/ X/ c - (if (= dialog-state 0)5 w8 z, l) e/ g
- (reset)
9 h+ \ g3 Y: ` - )
. J# B) Q1 K; T4 c1 h0 I0 r - (if (= dialog-state 1). X, h% ?5 ?/ f' I/ u
- (modify_shape)
; U$ F% m% w) h- x& w4 [, F - )2 c2 c9 \1 w; b5 ?% |- m' @: |! D% H3 J
- (if (= dialog-state 3)* f* d4 w5 B. t6 C1 F& s, ^5 m
- (progn/ c3 \' y5 \4 |+ L' S, I
- (modify_shape)
: W+ ^3 a* Y; `! u1 s% ]5 C0 s3 @1 [ - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
, l; ], z- R7 }- a7 w3 D - (ver_pt1 1)
$ W3 d7 B* \2 \6 a - (ddshape)
9 L$ T" G. T: X8 Q0 `1 n2 I8 v# Y - )# o+ U* G& {. J- w% l1 V# e; }
- )0 A7 ?1 ~7 h- ]) A0 g4 P7 z; b0 q6 t
- )
+ w4 m4 d1 E: m9 r- c - ;;) M9 j! o3 P [) q' g
- ;; Modify TEXT or ATTDEF# W. m2 ~7 X$ Y9 P! I9 _) t9 ]; ]* q
- ;;
; Z( B& h0 H+ D5 [" ? y. c - ;; Set bit code for upside-down and backwards setting- x9 k3 X) M: \) ?
- ;;+ q; H" A n: F5 f# Q
- (defun code_71 ()
8 M9 t; s) E" l# o& h0 R. ^ - (cond ((and (= bkwd "0") (= upsd "0")) 0) g4 N5 S0 l+ b$ S6 \
- ((and (= bkwd "1") (= upsd "0")) 2)! _. I& K2 X/ L% \5 Z8 t
- ((and (= bkwd "0") (= upsd "1")) 4)# @# l3 R2 Y1 B
- ((and (= bkwd "1") (= upsd "1")) 6)
# w* C+ A" C) g( W/ o* P9 M' X - )
; _2 n8 p0 t, O - )' u$ s0 b7 u! d7 d* Z' \5 A3 l
- ;;
! X+ o) v, s3 d* J9 r - ;; Style action. Reset widget values to style defaults8 e3 \* m6 y6 X
- ;;; }4 h+ ? D+ ?4 e3 O1 u' c2 K
- (defun style_act (index / style-list)
9 x8 ?) M m" Q9 X8 } - (setq style-idx (atoi index))
) U: X8 ~0 o7 F* i7 G* e" M+ p - (setq tstyle (nth style-idx slist))& U j, s/ X) R2 g: w6 W w
- (setq style-idx (itoa style-idx))3 n# T0 x" M m: c
- (set_tile "style" style-idx)) ^8 \* `) G- |, N: X
- (setq style-list (tblsearch "style" tstyle))
% E- g8 k; Z( C: D# o0 S' A - (setq shght (cdr (assoc 40 style-list)))
2 B4 T7 v. z1 j. ]: G - (if (/= shght 0)$ k4 M* y2 ]; ^
- (progn5 r9 M3 C5 ~- V5 M8 o0 }/ G
- (setq hght shght)
1 \8 s( N* N3 j1 S- O - (set_tile "hght" (ai_rtos hght))8 p5 c4 g; q8 G2 W. r
- )
- ^3 n8 Y6 O! j: C9 K - )' ^- H ~" i9 K, |
- (setq wid (cdr (assoc 41 style-list))): F: U+ K3 {" Z4 T( F+ k# }0 L
- (set_tile "wid" (ai_rtos wid))& G! T1 C! w0 U9 _, R# L. q
- (setq obl (cdr (assoc 50 style-list)))
) _; S# w9 W+ q+ M& P, E3 Q - (set_tile "obl" (ai_angtos obl))
9 ?9 r$ k! }2 y) a9 @ - (setq bk-up (cdr (assoc 71 style-list)))0 ?# D4 I9 B4 e
- (if (= (logand bk-up 2) 2)
) n, a9 I7 R1 i, p9 z - (set_tile "bkwd" (itoa (setq bkwd 1)))$ m% t6 J6 E5 X$ N" v
- (set_tile "bkwd" (itoa (setq bkwd 0)))$ N4 r: i# n. u' T3 l" s# \
- )* k' c4 |/ ~6 V6 M8 a, s4 I
- (if (= (logand bk-up 4) 4)
! N( b6 D5 _- E - (set_tile "upsd" (itoa (setq upsd 1)))1 O( i& ]" g6 u q5 Q
- (set_tile "upsd" (itoa (setq upsd 0)))! O5 s( K% U8 c1 g) v
- )
9 f$ S/ A0 x* p8 S9 N - )
! e7 u7 [. f- G5 g - ;;
4 i% h; b m& N - ;; Justification action. Set vertical and horizontal alignment variables,
$ L5 b& K% k5 K5 @& z - ;; grey out rotation and height if alignment = "aligned", grey out rotation
$ e- C: r# {' T& x1 |$ B/ i* ]- _6 T - ;; if alignment = "fit".3 i4 a' Q3 U, m# X, `1 w9 [( E9 A
- ;;, p% {9 V1 M A4 v/ G% {7 G% u/ E
- (defun jlist_act (index / templist)
- r) y X2 | y - (setq just-idx (atoi index))
) i7 o( _- J: C - (cond
0 s y. n* U- K$ p( l: p! @ - ((= just-idx 0) (setq va 0 ha 0))
0 t$ g+ A; s3 e3 E+ W2 z; Z - ((= just-idx 1) (setq va 0 ha 1))
& h* w% Y) e _- p; I" y" f' E# N9 v - ((= just-idx 2) (setq va 0 ha 2))) Z! p& C* R h3 H2 @+ F7 m: y
- ((= just-idx 3) (setq va 0 ha 3))" K( u5 E- F4 W9 v: H
- ((= just-idx 4) (setq va 0 ha 4))! p+ V+ a7 Z% s* C3 ^
- ((= just-idx 5) (setq va 0 ha 5))% `9 P. ^) y+ s9 E/ K# _4 H2 B
- ((= just-idx 6) (setq va 3 ha 0))
9 Q+ e W+ A8 l8 a$ ?$ f - ((= just-idx 7) (setq va 3 ha 1))
1 j: `- g: v" u% J8 v( z! A - ((= just-idx 8) (setq va 3 ha 2))/ S" L* m9 @* V% Z* I/ k* H
- ((= just-idx 9) (setq va 2 ha 0))
& T- ~8 i! B" @' p6 A2 D% ] - ((= just-idx 10) (setq va 2 ha 1))4 T- B* a+ f8 x& s% f6 a
- ((= just-idx 11) (setq va 2 ha 2))
& e: ]& H3 U' X; D5 h( p5 A - ((= just-idx 12) (setq va 1 ha 0))7 z4 o, U6 q, W ]
- ((= just-idx 13) (setq va 1 ha 1))" L5 @/ f" e# C# U5 l4 f2 S
- ((= just-idx 14) (setq va 1 ha 2))! B; l% r; ` J1 P' a) w
- )0 x6 t* ]5 K. x* Z) ]% B# r: W9 j; c
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text0 |- q8 U! [) i4 B- D; u
- (mode_tile "rot" 1)
9 J. d( P% G3 k7 z' ]% G9 j) R - (mode_tile "rot" 0)
; X: H0 l" V) W* j+ H3 N: S3 T - )
4 F/ Z; a7 H# L& v. C - (if (= ha 3) ; If Aligned text
$ z1 q3 d& C# d" d - (mode_tile "hght" 1)5 Z& x6 y8 L( v W
- (mode_tile "hght" 0)
. g) J8 Z- j# C7 G$ F' e8 e - )( m: a, [! t- O5 H; a8 I1 ?1 n
- (if (= ha 5) ; If Fit text
# z3 v. h- ?- z* U# j - (mode_tile "wid" 1)1 L2 Q# ?+ D: s0 ~4 h3 R s
- (mode_tile "wid" 0)1 t) M5 Q3 h2 k i. r
- )
! s: f( {8 J& A% u3 a1 w - ;; Reset rotation and height if changing from aligned.+ v( _8 g. `, }; x) p! {1 D
- (if (and (= ha-prev 3) (/= ha 3))9 Y/ |( ?0 K/ u! f, E: u
- (progn4 b0 f6 s/ g+ G n$ u
- (set_tile "rot" (ai_angtos (setq rot 0.0)))0 h& _/ ]2 Q n/ W, r$ G" {
- (set_tile "hght" (ai_rtos (setq hght 1.0)))% p2 t( O" ^9 W8 H# B& K4 Y% I; H
- )
: J" { v8 h+ i& K9 {& x. E4 [; Y - )8 m; U7 a: ]2 O$ T5 Q3 C j
/ k& U0 H; {/ ]) N- ;; Reset rotation and width if changing from fit.
2 l( F; c2 t5 y5 N* }9 _8 Z - (if (and (= ha-prev 5) (/= ha 5))! v5 W- I7 j6 H& g. r
- (progn
" w& j0 C3 f6 ^+ S1 P# x, T - (set_tile "rot" (ai_angtos (setq rot 0.0)))
0 | W/ x( \, d! s$ h: ] - (set_tile "wid" (ai_rtos (setq wid 1.0)))
. p/ u. B% U+ ^( I' `1 N( e - )- I0 h3 F- K& N
- ), [# c! q R t1 c. a3 K
; h8 b3 E9 C4 F# ^$ R' X- (setq ha-prev ha) ; update ha-prev for next time8 ]# ~( {4 K. J. B
- (setq just-idx (itoa just-idx))
! _# z1 O) J; Q0 j' l' t8 K - )
2 T7 g7 k6 V. v) l4 ]1 |2 U! d - ;;
% P1 B0 L4 M9 Q! d% A& j - ;; Set intitial alignment setting based on vertical and horizontal alignment
- c% w0 B; f8 N, N1 I - ;; bit codes.* t# W4 N V+ K) V0 p
- ;;
9 S6 y- N/ ^- [- w9 X1 T - (defun set_just_idx ()+ n: X4 D" f" ?$ d
- (cond8 q3 y. [" k: e1 J( C
- ((= ha 0) ; Horiz alignment = Left/ [3 }# |3 b+ [& O3 E
- (cond
6 z& m3 U( w$ k - ((= va 0) (setq just-idx "0"))
' O' @7 {; C8 z - ((= va 1) (setq just-idx "12"))
: B B- q% {5 T) V& g - ((= va 2) (setq just-idx "9"))/ ~4 l, ^$ s6 g! ^8 h5 H
- ((= va 3) (setq just-idx "6"))
- o! B Z9 w" M. f9 R' P& p - )6 {* @5 U, ~% H0 X
- )
( g$ f3 s: x1 a$ g& h: K% ` - ((= ha 1) ; Horiz alignment = Center* B- V* W4 A" R% T3 \# n
- (cond
+ C7 V$ L- s/ q) o0 G - ((= va 0) (setq just-idx "1"))6 f) r% J" r! S# o9 Q( R! h0 T
- ((= va 1) (setq just-idx "13"))" u8 Q# N& \8 x3 f! ]# }
- ((= va 2) (setq just-idx "10"))
' Z' W6 C0 R0 H - ((= va 3) (setq just-idx "7"))- ]- _! _$ d& G6 Q. @0 C* @ j
- )# S5 s0 m2 \! K, |/ o
- )3 a0 R; v" H: y" n" ~. Y
- ((= ha 2) ; Horiz alignment = Right6 Q6 g5 u' x4 @" t1 [
- (cond
5 i5 S. e$ R3 _ - ((= va 0) (setq just-idx "2"))
! x& N# Z/ O2 y0 e - ((= va 1) (setq just-idx "14"))" W5 N3 t6 ]$ }0 n \" R# j3 R8 Q
- ((= va 2) (setq just-idx "11")), s6 D* a' M2 ?' S7 j
- ((= va 3) (setq just-idx "8"))
; z; r/ z, ^% e% p' s - )! v/ g8 c+ o0 E4 s- N
- )7 o" b* G0 H: I
- ((= ha 3) (setq just-idx "3")) ; Aligned) N$ P/ X' \% n8 E" }! t( q- w- ~
- ((= ha 4) (setq just-idx "4")) ; Middle
$ R& e6 V3 E z3 H5 l - ((= ha 5) (setq just-idx "5")) ; Fit
% A7 `6 a& y' I7 a) n* y$ f5 X - (T (setq just-idx "0"))
& o2 y+ x3 y. l - )5 Y# ~, Y* B. h- @
- just-idx
; m2 p4 ]; Q& s6 \3 R' n - )
' C; O* F$ M- C, y! x$ `
. B, l+ j; h. c* q f* C- (defun modify_text ()9 N- |4 a8 C8 _/ R, S) v; h
- ;; insertion point8 l& ~& o+ ?! b
- (setq showpt (list x1 y1 z1))6 O' V5 y8 \* Q! r+ \6 u: k3 U
- (setq bit-10 (trans showpt 1 ename))( Y3 `1 V, e1 f: _
- ;; alignment point
* S$ J' i1 S5 |7 p; D/ n - ;; for 'Aligned' or 'Fit', alignment point must be different
+ |+ W5 S; l" T - ;; for all others, use insertion point
2 o/ T- i; l& H; b - ;; (ACAD will recompute insertion point)
5 O$ F/ A3 Z: p) j4 C2 x' c - (if (or (= ha 3) (= ha 5))9 C. Q" p$ r& j2 K1 |
- (progn
5 S" s4 R, x% J* f/ _$ { - ;; if no alignment point, fabricate one2 c# {. x2 H2 C% c
- (if (not alipt)) y$ u6 M7 Z% Q0 b9 `) g
- ;; add text width to insertion point' u- c7 M B2 z! Z) q; d2 a9 D
- (setq alipt' d- X3 w0 Y. d( q' l
- (list (+ (car showpt) (car (cadr (textbox elist))))
( ?% J1 `* k/ j - (cadr showpt)
$ B( o! s/ B! t3 |; l! [ - (caddr showpt)3 a+ n6 y c+ A2 B3 R0 k3 ^
- )
+ q4 F2 S9 u n - )
/ [% E. Y, ]2 j, s: A: y - )
; ]' S; h* S' s1 M L* L9 s - (setq bit-11 (trans alipt 1 ename))6 L1 H7 ~8 \5 D8 A' Y1 }. w t
- )) j0 I0 B' q. \+ U* g& J
- (setq bit-11 bit-10)
5 F" w6 @6 t1 I( U4 F( { - )2 S) z/ {/ z* J+ Z- s4 C8 \9 E
- (modify_properties)
- f* T! W5 y$ }2 m5 y6 {% n - (tempmod tstyle 7 nil)
; z3 @- A0 K, Q( B - (tempmod bit-10 10 nil)! H: O9 w, r! b; B
- (tempmod bit-11 11 nil)
/ f% x7 W4 f5 L0 G9 H - (tempmod text 1 nil)+ j: H' ?/ c' A7 K- I& ~
- (tempmod hght 40 nil)
: b3 `% a4 u" ]# `. d- W - (tempmod wid 41 nil)7 l; A9 J3 x6 M* z N! u
- (tempmod rot 50 nil)/ k9 x7 p/ R8 _5 [0 ^ w3 ]
- (tempmod obl 51 nil)
4 ?6 F2 u7 g7 b/ d/ a- {" P - (setq bk-up (+ (* bkwd 2) (* upsd 4)))- T2 j/ i8 s5 f/ E
- (tempmod bk-up 71 nil)1 ?9 S5 Q% u( W
- (tempmod ha 72 nil)
! ]: Y: `- t% G, U - ;; Attdefs use 74, text 73: T( H( [& ~0 k$ i1 ]1 B$ f
- (if (= etype "ATTDEF")
4 U" u) W1 w) _+ P/ `6 d - (progn; _! F8 l2 n6 ^2 a9 v
- (tempmod attag 2 nil)7 V4 U% v1 T; s
- (tempmod atprompt 3 nil)
V: S3 w4 q! y0 u; k2 g& M - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
; O/ n ~0 B7 {" K2 ^# _% V - (tempmod icvp 70 nil)
; d" o# V' m! W8 [+ C; W. e3 a4 i# J - (tempmod va 74 nil)
, P# W7 x" x2 u - )5 j4 n3 `! g: t4 `8 z9 T( V0 O
- (tempmod va 73 nil)
/ T( H4 s. Z& f+ z" ^- p4 L+ r - ): m- u* E6 d; F" A, H9 G) K" C/ [
- (entmod elist)
. X' j2 Q/ g' {# J - )6 [4 U, \& N- u: ]* P
- % Y5 ]3 Y/ a, u# [1 _3 g& e
- (defun ddtext (/ 2ndpt slist i)# m3 ], Y2 {* I: C* j
- (if (= etype "TEXT")" D% O$ f0 n% H' U3 y0 l
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
* u7 i0 B) p- m. R - (if (not (new_dialog "ddattdef" dcl_id)) (exit))6 I. \$ @5 }; F8 i
- )
: J2 ]+ } D, g# X - (set_tile_props)
4 G3 \6 t4 t# @! J6 h, C - (set_tile_handle)
% s/ n0 ]9 X8 m/ ` ` M, d - (set_tile_text)
* h' ~3 }( J$ a( n1 z - (set_tile_tag)! n/ }/ G7 e; h
- (set_tile_prompt)
7 C7 k1 B; u' a2 L7 o; |; l - (set_tile_hght)% k; J+ |0 p; B. J2 N# x
- (set_tile_wid)5 e% q3 w1 j D+ Z4 }- H( G2 \) k1 T
- (set_tile_rot). D, I4 X( t0 N& E8 y8 [
- (set_tile_obl)
' C( s* z% b' M, m - (set_tile_bk-up)
, V2 F A& J8 q5 g/ t - (set_tile_icvp), n2 A H; b; z
- (set_tile_style)7 B8 v; \9 S+ V. N% E2 ^
- (set_tile_just)/ ?( @9 A5 @0 x3 X& l" ^
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
# g9 u; M* X% F D* h. x - (if (not (assoc 11 elist))3 q" w% J' e2 l7 ?) H% t: L
- (progn (setq pt2 pt1)8 K4 L5 S$ }+ O
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))& }* Z- H% d3 h3 T+ ^+ p- {
- )2 F, X/ L/ U, E' {) u6 g$ Y+ ~
- ;;(trans '(0.0 0.0 0.0) ename 1))
- I7 l/ _0 R# ^* g3 L - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))+ H6 a& p3 }* `! y: E
- )% B5 u( n. `; w) k6 ~
- (if (or (and (= ha 0) (= va 0))
. B$ X4 S* j3 S+ z$ w - (= ha 3): K# Y! P, b: |6 A z3 R6 Q
- (= ha 5)8 C- m$ ?% B( }
- ): U- s) r+ r8 D! ^* d+ p
- (setq showpt pt1)! X$ g$ f* k) d$ e* |
- (setq showpt pt2)5 [4 R: \/ _' Q% q5 U
- )
5 K1 m& n I: M. |" _" P4 P7 p' U - (if (or (= ha 3) (= ha 5))4 J7 U% v0 v% R* A- k5 [* M; e
- (setq alipt pt2)
" E3 B' j. s! `9 O; n2 k a - (setq alipt nil)- J V) _5 J# T4 R4 g. @8 x
- )
7 k( p4 P8 i4 d( [9 t6 j& L
2 A5 w- z& i. V& M- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))( K, c, t2 f+ l" y
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
7 ~, X q1 A5 I1 b3 c# k - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
; C! Z; D0 _! ]8 t$ _ - ; n, ]$ e% B G0 C1 a- K
- ;; Define action for tiles
, B) W G2 v4 x* j* r+ A - (set_action_tiles)7 z3 E8 X0 r8 {
- ;; Set focus initially to the text edit box.
/ `$ [4 b. |8 G - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))# E/ U' ]* Z/ Y R1 H" R. l. |) @" i
- (setq dialog-state (start_dialog))7 S: X4 U$ |# e8 O( _/ h" s
- (if (= dialog-state 0)
" ?! T- t5 }5 Y6 y- A# j0 }, Y - (reset)' x" U; J9 p8 q; B7 I3 Y
- )
, J, @6 j3 [! g6 Y6 m - (if (= dialog-state 1)( V0 f7 p- M3 K* m5 a. E& x
- (modify_text), B! T: i6 q) C$ U& z
- )
8 |" f# T1 X" ?: v& _& J - (if (= dialog-state 3)* R2 E7 D9 V# Q5 @8 r& N( Q
- (progn# {1 X; }4 Z, b5 M
- (modify_text)2 Y# [3 k8 d) X
- (if (or (= ha 3) (= ha 5))
& H G! ^5 H; [5 r, H5 ` - (progn
' Q$ J6 T8 e8 {/ f7 T - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
3 _! }! F9 K9 x" r) R$ d - (if (not showpt)0 x3 y" a. y# X. ?8 N; j) j
- (setq showpt (list x1 y1 z1))4 ]" o( ]4 Q& R
- )
5 f; m7 H7 Y) _4 Y2 ` - (setq 2ndpt (getpoint showpt "\nSecond point: ")): o$ e1 ~ z& T9 C
- (if 2ndpt: D5 y, j f( i$ t7 p
- (progn0 H; Z. `3 l# @0 a. Y' O
- (setq alipt 2ndpt)
3 D5 }3 x' X5 E6 D - (tempmod showpt 10 1)
# V$ s" k; }& z2 [8 y - (tempmod alipt 11 1)
7 y$ G8 H( C/ M4 m; p - (entmod elist)
$ F/ a5 K, Z* L. l1 s1 f - ). b! G2 m# y) S# T4 c( o M6 M
- )
/ ]& N4 [3 E/ [ - (setq elist (entget ename))
! K; S f, \$ P! V4 o - )( {6 Z% C% i( z, u6 d
- (progn
# m9 t" Z; ~7 s - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
t' I* {3 T. T8 g! w1 s+ |3 n - (if showpt
4 X/ t+ ~6 h) h$ _# j) l: h. w - (progn
+ b: m5 B. S& M/ [8 }6 X - (if (and (= ha 0) (= va 0))
Y; H, S6 k$ d7 J: d- @" n - (tempmod showpt 10 1)2 s* E' E1 S% x. {* u( X
- (tempmod showpt 11 1)1 J& K6 z. ~. U# L
- )0 P: x. X7 O8 t2 a X
- (entmod elist) Y, _4 S# }/ Y
- )
6 J$ N9 {: E9 a. } - (setq showpt (list x1 y1 z1)). l' C* |1 H; O; v2 E% l* B
- )
2 `0 S8 e$ q% X' t# ^6 C+ f - )" w) Y1 @3 L- @+ f
- )
7 K' x. Z# N$ y8 a$ d: Y - (ddtext)! `' a- g0 V. H6 l
- )" Z$ _. E7 }8 g, f+ F, J% _
- )" Y! m1 |" c( Y4 T+ O
- )
: |8 U3 Q& C& @* ~+ M+ N$ e
9 u+ S7 a# {* L) i* I; ]- ;;9 |$ ~; u) E7 ^+ @! ^. Z
- ;; Modify MTEXT
/ I# h$ a2 v- F8 y! \' w1 T - ;;
1 Y, N9 }6 C3 ` ]8 }9 {& N! K - (defun modify_mtext ()
5 {# @, H) |# P; P$ N. h- V$ o - (modify_properties)% u% l Z/ K* Z4 K6 V3 P
- (setq pt1 (list x1 y1 z1))
+ q A4 V% l8 f - (tempmod pt1 10 0)
- h. f& Q% {: F6 p - (tempmod text 1 nil)2 a0 |% B2 t. v9 z
- (tempmod tstyle 7 nil): ^5 j H1 J) ^& W9 c/ J# I
- (tempmod just-idx 71 nil)
D" Z! S; |, D8 [( L! u! D - (cond2 v9 g X+ u3 e' T. l
- ((= dir-idx 0) (setq dir-idx 1))
0 q/ f+ n( h" K8 f: X - ((= dir-idx 1) (setq dir-idx 3))4 Y# Z+ Q0 A4 g+ L! q7 y" `
- ((= dir-idx 2) (setq dir-idx 5))
+ t r9 t0 s! n: c7 z y) a3 { - (T (setq dir-idx 1))
5 w0 D( ?3 ?* `. D5 w. r: | - )
0 w* e. E( D9 Q: S7 l' G! W - (tempmod dir-idx 72 nil)( {0 |# y' {' \
- (tempmod hght 40 nil)
s a c' _9 B1 v7 j4 Q - (tempmod wid 41 nil)
2 a5 d; d( S6 p3 l$ B# L( w) t, n - (tempmod rot 50 nil)
! |+ @; W" y1 G: [; b: a, H - (entmod elist)) u( ]# Q4 z' ?! R: P
- )
4 F- D/ P: e& k9 y$ B% I9 M
+ E* o- {, _4 [, N- ;; Set MText text style
* z3 @8 a# @, S - (defun MText_style (index / style-list)
* _! Z! X+ z# [" d. g+ m - (setq style-idx (atoi index))
4 J8 E7 V0 i& r - (setq tstyle (nth style-idx slist))
; B% H V6 [+ P3 K2 D - (setq style-idx (itoa style-idx))+ c; R8 v4 }. e
- (set_tile "style" style-idx)
2 [: q. ~) x _$ | ^ g; C - (setq style-list (tblsearch "style" tstyle))# g5 Q: C* }; ^
- (setq shght (cdr (assoc 40 style-list)))7 ^" [4 f& y$ J
- (if (/= shght 0)1 d+ L. ?% \% k ]* l+ {
- (progn3 A* f: {0 R* Y( \" }) }
- (setq hght shght)
1 K% n [ I" \( E - (set_tile "hght" (ai_rtos hght))
. p& v6 F1 Z- `* L2 y8 \+ m - )
9 W- E2 v2 L1 X* s% J$ F% x; ` - )
5 ]$ ~- {$ W: h: m! n% L) ` - ); g( o+ ^' j1 [- Z
$ N0 ~' t; s; a% g8 l8 }! ]- ;; Run DDEDIT on given entity, working around possible re-entrancy
0 d; L! }& t& V& v$ h" |) x - ;; problems with MTEXTED
- j7 G$ c' H5 d0 p - (defun safe_ddedit (ename / orgMTextEd work). q5 m# G( u% a M) X5 r
- (setq orgMTextEd (getvar "MTEXTED"))4 `" ^" J3 X3 v5 I, c+ z
- (setq work orgMTextEd)
6 C% T9 J% Z5 @0 h* G9 e/ \$ O, U - (if (= ":" (substr work 1 1))
* M* N }2 a& g$ H) {5 \3 l1 P# ] - (progn
, w$ J* K% w5 {6 x - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))' { o& M0 x. R, F' B
- (setq work (substr work 2))2 R: f0 ]1 Q# X9 l8 @/ ^8 w
- )
" O4 S* D' Q0 g* X - (if (= "#" (substr work 1 1))
# I w `( b' r# \' J { - (setq work (substr work 2))
: V. M" C1 h/ `! m - )
2 K5 r: C; v: e" v+ F - (setvar "MTEXTED" work)& ~* y9 V" ?2 K' p! q
- )
% G& B9 A+ _* g8 @- |. Q2 } - ): W4 R& s' ]1 o2 w( N
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
2 Y& A$ m2 B1 q( p% D - (command "_DDEDIT" ename "")
8 F7 i3 N7 w0 D5 k9 m - (setvar "MTEXTED" orgMTextEd)
3 S' n- C, ~3 o( C) ?. ?0 V1 y - )* g: S3 j6 Y% Q) E' q/ G: N' k4 X
- - H! W6 i! `# E; ]
- ;; Verify MText object width
. { ^! g5 w, {" i/ q - (defun ver_MtextWidth (value)
1 k; d- \" X+ S) \- I - (setq value (distof value))% Z- F6 t" E0 r* Y* n+ H
- (set_tile "MTextWidth" (ai_rtos value))
( j! \% L/ Z7 ^/ `5 k1 m) K4 S7 f - (set_tile "error" "")6 K% v% q/ l4 k& x( {
- (if (< value 0.0)
2 I4 m' g1 g. f; U( H. x C - (set_tile "error" "Value must be zero or positive.")) `2 s% Z1 J8 w+ {
- (setq wid value)5 z, p) y) r& i/ ~- R% E/ `
- )& `& l: R: V9 h! R# n( W/ m
- )
% \: C6 E9 r+ M. C3 c5 J
, f) L, ^3 i8 T- (defun ddmtext ( / gc3)
# i- ], f* ~/ C) S I' @; [; \ - ;; Get dialog
8 _9 R" s5 O, R1 x! M/ v - (if (not (new_dialog "ddmtext" dcl_id)) (exit))5 d A8 u8 D1 M. H! p1 t/ v2 W+ Y
' W) k3 b9 X6 h( D/ @- ;; Load list boxes
' e" B2 q |% w5 m \& u" X - (start_list "MTextJustify")
6 }( P6 }8 i% E6 {- s0 {: Q" L - (mapcar 'add_list '(2 X5 V. a/ `6 f% o# H6 K
- "Top Left"2 U9 O. R# f" L
- "Top Center"
* n/ {1 Q1 U% Z' _# t8 M - "Top Right"
" X7 I6 R8 F- L& b - "Middle Left"
! R4 t6 z9 m( t& z# D1 }# r7 G - "Middle Center"
9 m) g" q6 P8 {: H5 ~* e( | - "Middle Right"
) y! B8 Z. l- F B- p - "Bottom Left"
& M% I9 a. Y& @3 L q - "Bottom Center"
: I" m# _' _% z0 E+ h) s - "Bottom Right"! w4 s& N5 N8 J: N- a5 x
- )
4 y! m+ w3 d3 U2 J$ }6 g5 p - )
! W4 {4 f2 N T/ I, D9 H - (end_list)
% |, N! ^) f5 p+ J% [) O. W( c \6 Y
# \0 S" L( _6 ]- (start_list "MTextDirection")
: e# ~" c* g: T; r: ?% e5 j - (mapcar 'add_list '(
" D$ P% Q* c& }# H6 i$ ?) `, t - "Horizontal"$ D8 v6 o4 l' K ~3 X# W2 ?
- "Vertical"* ~- O+ V4 d; {) p2 R
- "By Style": d1 `0 s' c M- N
- )% m& a( p+ m9 x3 c n% ~3 {
- )9 _) L k2 U4 B4 G% G9 F5 E! K
- (end_list)
5 c6 ?3 i6 B* z' @ - & V/ D2 R/ n, g
- ;; Set initial tile values, |6 r& _3 N9 L. i
- (set_tile_props)
z$ n9 Q$ P w4 L/ W8 l# | - (set_tile_handle)
9 h0 Z7 R* |/ h$ J7 \5 I# j - (set_tile_pt1 0)5 }* H w$ R: J% C9 I1 M
- (set_tile_style). V! T" O! C1 D2 n, |
- (setq just-idx (cdr (assoc 71 elist)))
1 o$ h! F( T$ `0 Q$ ?; M2 Z4 ]( r2 f: i - (set_tile "MTextJustify" (itoa (1- just-idx)))2 b* ]6 _4 U# w$ U
- (setq dir-idx (cdr (assoc 72 elist)))
) V: Y2 j+ c n, A' T3 l( _ - (cond @7 r& a& H s% ^# W; ~9 p
- ((= dir-idx 1) (setq dir-idx 0))
, t U3 T @( G% ~$ D4 ]- d - ((= dir-idx 2) (setq dir-idx 0)), c% j, t/ j! o: j
- ((= dir-idx 3) (setq dir-idx 1))
9 \$ |# {5 q/ z" e - ((= dir-idx 4) (setq dir-idx 1))
4 c& _. y0 t6 s! {+ t" V% {$ c- y1 ` - ((= dir-idx 5) (setq dir-idx 2))2 Q, p9 k7 b& ^( F' Q
- (T (setq dir-idx 0))
" V/ N8 Z2 h- E( z. M+ J0 _ - )
4 r. G: ^9 L2 ^& M+ h - (set_tile "MTextDirection" (itoa dir-idx))" Y5 W! T3 \( _- i; e4 e# a% k4 a2 b
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))+ V6 S: D1 W9 X$ Z8 [$ _
- (set_tile_hght). g! U6 C( V8 D/ ]2 G Y- ^
- (set_tile_rot)
- p, z8 g6 A( t8 H' a
- e4 I' @. z5 q7 \2 K+ m- ;; Set edit box, disable if too long# E( ^8 v- m% D* c+ j9 N) d F" Y6 p
- (setq gc3 (cdr (assoc 3 elist))$ A3 e: c- c2 J P% {& w: [
- text (cdr (assoc 1 elist)))# {, X! R; t, ]; G, H3 Q& f4 W; Z
- (if gc3
1 X- J8 j8 x1 ^5 A - (progn ;; Text is over 250 chars, disable edit tile
5 E& {- c+ r# W2 O - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))( M/ I: x8 s; R
- (mode_tile "t_string" 1)
- T( F3 b. e+ ~( P. Q - )& j9 K9 a( X- U1 ^2 A
- (if (> (strlen text) 80)( y" B! `: G: V& ^9 b
- (progn ;; Still too big
0 o, C0 O2 D1 w" f3 t: t' h5 v - (set_tile "t_string" (strcat (substr text 1 25) " ..."))1 z) t* i5 s- e: Q' ~5 u
- (mode_tile "t_string" 1)% s% b* @4 N3 A( F7 E( E, x
- )
- U. `; g' F, ]! a2 m6 T - (set_tile "t_string" text)
0 f% {4 }9 D7 I! X& @+ x - )6 X" k7 U" G! b6 z% d6 p
- )
5 u2 H2 C# Q) L2 Z+ Y2 k2 f - 9 m0 ?% C8 j5 V( B! z$ A4 r
- ;; Define action for tiles) E8 @9 k5 J( y5 C& D0 D5 b
- (set_action_tiles)+ |' X! r9 ~4 X% e F- |
- (action_tile "style" "(MText_style $value)")
2 ^" G2 X- t$ u0 N# y1 M/ z - (action_tile "MTextWidth" "(ver_MtextWidth $value)")& C9 d6 J; @+ Z, }4 X
- (action_tile "MTextEdit" "(done_dialog 4)")
# \6 h1 f/ S3 {1 g - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
* Q0 e, V4 b; h3 g- y4 J' J - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
y6 S( U8 }! c7 @3 S g# `7 w - . T1 ]$ p% _+ {
- ;; Set initial focus to text edit box.. @1 D8 j8 x& j: }) O) `$ ]! m
- (mode_tile "t_string" 2)5 L# }4 a8 G+ d$ M* T5 m& D! F; U* k
- 0 l) N, T1 z5 p1 Y$ i& T g8 ^3 Z
- ;; Run the dialog& |8 d1 {0 M8 d, Q) y+ N
- (setq dialog-state (start_dialog))+ R& N3 F! v) k" ^
- (cond
- F& }3 b; L8 k; o - ;; Cancelled - restore saved data
+ \, [9 V# p+ U - ((= dialog-state 0) (reset))
$ ~2 p" N! [8 H - ;; OK - save new data- a' K: W1 Y* R4 }8 s, h( W( z
- ((= dialog-state 1) (modify_mtext))
7 `: L8 n5 ~. _. O( _ - ;; Pick new insertion point
+ l$ H- O: b4 d" N - ((= dialog-state 3)
9 c0 v5 G9 ~" |' W) s - (modify_mtext)& V3 u j0 C) }( w
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))& N o! l' V# v0 A9 f( s. S3 d
- (ver_pt1 0), B. z6 G) F) J7 f* j
- (ddmtext). e" m7 I' n( D$ t& J" g3 Z. v
- )- l9 `2 g( W8 a: u! m ^ `7 J4 h
- ;; Run full editor
" z/ ]" Q7 p8 c1 M ^# U - ((= dialog-state 4)! R; H, Q' B4 Y1 T, o$ Z- ~! ~0 \- L4 I
- (modify_mtext)+ C! X0 Z/ ? W+ g" J. w
- (safe_ddedit ename)
* H6 Y9 r; j4 z8 @& e - (setq elist (entget ename))5 R+ T" ^6 u w* V$ A1 r6 D; K
- (ddmtext)+ Y& P0 a6 O2 e$ O" z
- )
0 M( r* y8 _8 f. I2 G, d3 `; i1 O - (T nil)
. a7 H4 Z1 ?$ `, `# g8 P) m' t - )$ ?2 O9 e. X; c3 h8 R. L. {, I
- )4 d% w P0 g4 l/ G
% J4 ]$ _& e8 E2 B3 n3 o- ;;
% Y# R u8 o, F' I - ;; Modify VIEWPORT
2 [- g6 J9 ?5 S/ J - ;;/ d! H+ H" N J7 A* O/ [8 G4 Y" Z
- 7 S$ X' o1 A! K& n2 b }
- (defun ddvport () E1 S9 U4 W7 y+ D
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
( O! |% L; K( q+ y* v$ H. m - (set_tile_props)5 ] R/ |; y7 d3 I" \1 }& C: J) _
- (set_tile_handle)
5 D1 |- H8 v$ h, Q6 i - (setq vpt (cdr (assoc 10 elist)))
e. z% Y4 W$ l; I" U - (set_tile "xtext" (rtos (setq x1 (car vpt))))) z7 F, P8 [- T+ T3 c) b
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))0 j$ s! f% N" b# H
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
' D& n# P) ]! d' Z$ P [! l0 v - (setq wid (cdr (assoc 40 elist)))- v9 t. \5 k1 w6 z5 y) ~6 J
- (set_tile "wid" (rtos wid))% I" y+ {9 n s4 \# h
- (setq hght (cdr (assoc 41 elist)))- N b) _* y5 i" ~) ^& I0 {9 l
- (set_tile "hght" (rtos hght))9 n5 r" s0 l; O! K8 ?
- (setq vpid (cdr (assoc 69 elist)))1 I% Q+ q" y8 ~1 z
- (set_tile "vpid" (itoa vpid)): b" G0 k* i4 {. J
- (setq on-off (cdr (assoc 68 elist)))
$ ~7 n7 {) X3 H# @( ^# G, q& E - (cond
, k o5 v( P' S ^/ G& H$ X - ((= on-off 0) (set_tile "on-off" "OFF"))
% P# c! _6 P6 }0 ^ - ((> on-off 0) (set_tile "on-off" "ON and Active"))$ X) l3 q2 c7 P* O8 h. L- b) K
- (T (set_tile "on-off" "ON and Inactive"))
5 y3 T, E1 M' w8 K - )
& f+ g1 I& s9 G B& t8 S1 Z% N: ]# \& Q
2 Y' \# Z$ \3 J! q1 z2 r- ;; Define action for tiles! Z9 |4 o; }# H5 B' J) p
- (set_action_tiles)7 p; Y# D/ g, D, l! o, q0 [+ U# q8 k, s
- % w- \4 N e) O
- (setq dialog-state (start_dialog))8 k* z q( Z; [" }) ]1 n6 C/ `
- (if (= dialog-state 0)9 |5 }/ w# b0 @% O6 b# ]
- (reset)# c; e* |+ h5 P
- )
* S. ^* w5 V7 V. s4 d - (if (= dialog-state 1)7 `7 v. S) e* e
- (progn
q6 T" p! J% [- A3 b$ G; c - (if (= ecolor 0) (setq ecolor "BYBLOCK")). s9 K% { p( H- h
- (if (= ecolor 256) (setq ecolor "BYLAYER"))1 r4 Q! ^, R4 U% o! Q! w# \9 ^# [
- (command "_.chprop" ename ""
/ B9 Y+ r; }7 D' h5 A# i - "_la" elayer( T t* q3 Y0 H' z4 q" r8 y7 F
- "_c" ecolor ""
& ]+ g, t0 o! ^ - )- t! O/ ] s' f- x5 x
- )
$ l8 ?8 ~7 w, n+ g+ b! U2 ^ - )) W$ R2 r# K$ Y0 x/ Y
- )8 a5 V/ j; W B0 [0 y
- ;;* Z5 ?) c$ I9 d5 ^# K# \' u9 [; O7 _6 _
- ;; Modify POLYLINE
8 U& z% W( T. p, i: e8 M - ;;
' C, ?4 T4 e8 O4 K% B4 h6 {: o" L - (defun modify_polyline ()
, B1 G! P v4 W1 ^ - (modify_properties)
, F) R' D1 h6 w$ k; }& v - (if (= ltgen "1")
$ P5 c( }$ D/ I2 Q+ M m1 k- _( H* Z - (if (/= (logand bit70 128) 128)4 u: q, m# X- V d+ x% c' a
- (setq bit70 (+ bit70 128))9 f5 C( n9 ?6 ~0 {: Y
- )
b' r9 o ~2 n; c - )
! e) b% G6 ~4 R6 K% w" E - (if (= ltgen "0")8 T* W9 f) F' b' N; D- ]5 g
- (if (= (logand bit70 128) 128)
1 ~1 ?$ }* s$ p% ^# M- ] - (setq bit70 (- bit70 128))- _% b! _9 E: ^* K# Z6 W
- )
: g6 v- k( g. K9 l - )
2 h# \, O% t0 Y- {" a - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
4 E9 Y6 A, E" }& Q- c: | - (entmod elist)# H6 u- T, ~1 S: i, E- G& G
- ;; Added to take care of updating Vertex information for color- a- T' d- h B" B, |4 d2 O
- ;; and linetype.: r( m/ h! S0 L8 o2 E% C& c* i0 Z
- (setq save-ename ename save-elist elist)
7 F9 ]. |1 t6 e - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")' U* `2 }- ^! W$ f s, S
- (progn/ ]3 t! G0 d* ~$ M$ m& N& h0 S
- (emod ecolor 62)
" L5 e- x* G7 J6 o, v0 C - (emod eltype 6)' T/ R" |. j V" a# J* d$ M
- (emod eltscale 48)
' H' t- i" D' y - (entmod elist)
% \ a, [8 r, P# V8 A - )
# M8 x: _: S8 f9 ~9 X( N! k - (progn
5 h3 j5 {. h' o: r - (setq ename (entnext save-ename))% n2 ?) W& u" @! p1 L, i
- (setq elist (entget ename))
. S. T; x9 o1 \+ |4 u6 G8 j+ o
! o6 ~, k2 y' I, w( ]! J- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))3 a4 i/ f/ b( t2 n3 J1 y$ A
- (emod ecolor 62)
" C- G8 j, m! L; i! Q - (emod eltype 6), D& P2 V" ~( W" O. T1 l5 ~
- (emod eltscale 48)
; m5 |$ s: x7 m! m* X - (entmod elist)
) n! n8 B% Z% m2 u6 ? - (setq ename (entnext ename))& |* q7 i! l( l8 [" r
- (setq elist (entget ename))& ^, B- ~8 [; @2 H
- )8 H3 p1 D& I- m& Q; t% l
- )
0 _& Z6 _2 r; a0 z7 M" W% S - )
5 `/ Q4 p' h0 Y/ n - ;; Update the SEQEND7 d2 V3 Q# E) i1 q+ N$ O# {
- (if (= (cdr (assoc 0 elist)) "SEQEND")) d) {0 O) w6 F4 I" v
- (progn
9 z+ I; @' Q* J- I/ ` - (emod ecolor 62)6 d1 `. Q7 Y3 x. Q* L0 i. O; L
- (emod eltype 6)
. I) Z' g& |8 c, [2 c" l4 j# j - (emod eltscale 48)8 }6 }: l. o) I4 z" u B5 Q
- (entmod elist)! p) I5 h9 y7 z" I4 m$ n
- )
1 y( N7 [0 {5 Q5 @( B+ | - )3 Z+ ]) b! A2 K: B l
- ;; Go back to header.1 j# I0 \2 y/ J* T) L
- (setq ename save-ename elist save-elist)
" Z B! a1 L/ u( |
. S2 U6 e% C3 A- (entupd ename)# V; m4 R3 @9 n. d2 |: j4 S
- )
0 B+ D& w3 a* i% f5 w - , f. m! e0 u7 n4 P5 R i) }5 g" \
- ;; Increment vertex. Set tile values to next vertex0 F. ^8 X. Y* |$ S5 _
- ;;
- G+ k# V* O/ G. _! C- P - (defun next_vertex ()
' b! e E+ d% m* ^9 ?# P1 C. x - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
/ w2 Z# W' Q: u& D: x4 ~9 l/ u - (progn
- [' i' m. H* G0 B* j0 h - ;; If the counter reaches the number of vertices,
1 o* v" E% \7 L# ?7 w+ A+ h' U+ k( w - ;; roll it over to zero again.
7 X/ l8 k/ w9 l - (if (= ctr (cdr (assoc 90 vlist)))
7 T2 C+ J1 L T& L7 { - (setq ctr 0)
9 r, ~8 D$ Z- I# _8 P0 `( k g7 f - )
: a. | Y9 W+ `1 [1 q7 D: b - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
b0 O( I; x8 Y) d% j. ~ - (set_tile_vpt pointype)% ^5 r/ ~3 f; S; u ?" h
- )2 {# g+ H8 r8 ]6 {$ m( N
- (progn
" r; | T6 c m - (setq vname (entnext vname))
4 G* _4 T/ @3 D1 N5 G, C - (setq vlist (entget vname))
9 V# U# |, K( v) G - (if (= (cdr (assoc 0 vlist)) "VERTEX")
* i, E4 U) t( b - (progn: M% g; }3 g" a' \5 V
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))0 x8 d, l8 _" f$ h
- (set_tile_vpt pointype)% G$ n2 d9 x# q+ J3 \
- )2 f8 ~: c0 T6 k- C$ _$ m3 z6 H& y
- (progn
: c0 h. w) J: D% O. Q" G - (setq vname (entnext ename))
8 G1 I0 z/ r" T% `3 F$ d7 J - (setq vlist (entget vname))
4 p: v$ B2 a7 x+ L - (set_tile_vpt pointype)
- G' j6 n' V8 K1 ?$ |4 u% u - (set_tile "ctr" (itoa (setq ctr 1)))- y6 O% {- p, n" {
- )
+ S; |/ `: G+ t9 e - )
( l0 G7 @& Y5 w( {6 v - )
! K+ I) |8 i( D7 m6 D% f1 @; E - )# w7 u* r/ X& V9 A+ P' K
- ). H$ ~, }2 W" q4 y3 L8 m
, P; a7 ?5 t$ H% m- (defun ddpline (/ oldecho)
4 k; C9 \" E7 G: z ~- h - (if (not (new_dialog "ddpline" dcl_id)) (exit))
' u- _( g% E& c# | - (set_tile_props)
5 n5 N% [- \$ @% E - (set_tile_handle)2 _# I O; Y# ^; D
- (setq bit70 (cdr (assoc 70 elist)))
$ k4 {, Z0 E$ J& }" V8 z, } - (setq bit75 (cdr (assoc 75 elist)))
; G$ X6 c# U, t; q7 | - (cond
& Z5 W3 d0 L+ G+ q1 p# F ~ - ((= (logand bit70 8) 8) ; 3DPOLY$ U6 S( Z0 p: k I' s) G
- (set_tile "ptype" (setq pltype "3D polyline"))
" H) n# p1 r u4 G; q - (setq pointype 0) ; WCS or ECS point values( g8 E, r2 R6 v6 K
- (mode_tile "fit" 1)
A1 [7 Y" C4 l4 K$ T" ?0 W+ N - (mode_tile "mesh" 1). j" `/ y& ?6 a! F/ `
- (mode_tile "bezier" 1) V* W, Z) @8 j8 v2 D1 W8 ?* E0 H$ A
- (mode_tile "ltgen" 1)
* o5 S+ ?7 }. @& I* a4 i - (set_tile "none" "1")' U7 d+ w3 R" f& {4 p2 p
- (set_tile_closed)
! T7 ?) Q: j2 _5 @ h - (set_tile_fitsmooth)
1 b$ y( {0 ^# V' I - )
& ?9 F R5 F- W! E- o% p - ((= (logand bit70 16) 16) ; 3DMESH
1 U3 W7 V) O) x, b. _. f7 P - (set_tile "ptype" (setq pltype "3D mesh"))
8 M& `/ B! w6 [4 _ - (setq pointype 0)
7 t0 f7 O) v0 V3 s$ O2 i; V - (mode_tile "pline" 1)5 x: v4 o+ x3 f6 M. R& N9 a
- (mode_tile "fit" 1)$ w* Q; g" i* R7 t6 N2 z6 b1 M
- (mode_tile "ltgen" 1)) ~" o! T# A, ^! ~) N
- (setq m (1- (cdr (assoc 71 elist))))' ^/ |; C/ a8 T- ^- c; m* {/ J
- (setq n (1-(cdr (assoc 72 elist))))
$ d9 o$ t/ m5 x4 ? - (setq u (1- (cdr (assoc 73 elist))))
" a2 [5 x. J7 d9 G: C - (if (< u 0) (setq u 0))
' j" N- ~! n0 Z" o4 l2 v% P+ M - (setq v (1- (cdr (assoc 74 elist)))) \- E4 l0 p: \! D& r( i; T; ?
- (if (< v 0) (setq v 0)); a& h: ?) H. Q0 B# P7 f
- (set_tile "m" (itoa m))8 t% c+ \: G! H4 s$ I: Z6 `
- (set_tile "n" (itoa n))
6 N, ~6 E5 @. z/ f8 n; ~6 A" L - (set_tile "u" (itoa u))
" s: O" [& b5 |5 k - (set_tile "v" (itoa v)), m1 f2 Y, ~* F
- (set_tile_closed)
. d/ B9 |! b/ P+ P - (set_tile_fitsmooth)
0 W- R/ N6 \( E - )% D: z* {; N3 E) b5 Y& i
- ((= (logand bit70 64) 64) ; POLYFACE MESH. w: g% g5 H+ ]. o; o7 k9 ^+ R
- (set_tile "ptype" (setq pltype "Polyface mesh"))# t; F4 G* H& T% j6 G* J& {# r
- (setq pointype 0)
9 d" a2 R& I9 I$ j - (mode_tile "f-s" 1)
$ f! V/ V& A) ~: m T8 s7 P0 e, M - (mode_tile "mesh" 1)
! q4 t8 R+ U( }( O" D - (mode_tile "pline" 1)' _+ u0 u1 p h' u: A0 @
- )
4 X& U4 J" D3 O, d( Q/ [9 @5 _& q - (T ; 2D POLYLINE
D& C$ D9 W3 q/ Q* T- u( t% U - (set_tile "ptype" (setq pltype "2D polyline"))
P! _, A& L6 x) r: K. L - (setq pointype 1)1 Q% ~, I. @. G! a
- (mode_tile "bezier" 1)( Y& {0 |5 Q# S7 P
- (mode_tile "mesh" 1)
' y* O0 X( [& m - (if (= (logand bit70 128) 128)/ R* K( {# q0 S4 [, j! K# A' H
- (set_tile "ltgen" (setq ltgen "1"))* a' B% Z+ `6 p+ l
- ); s7 U4 n9 M$ ]/ j" _- b% L8 \
- (set_tile_closed)4 X7 P7 U/ n9 N5 N$ H1 b
- (set_tile_fitsmooth)% s$ S3 u+ w! C
- )( W- F: \) C1 z( q) u
- )
( p/ Z1 K7 P7 r! A* a g
4 w8 ^9 D; [: B3 L: ]3 o- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
1 D* b! y' ]. P' V9 O; o' \ - (progn
% N: E5 F. O2 B) t; l* q% W - (if (not next) (setq vname ename))
) [2 l: E9 X1 g6 @6 r - (setq next T); }% Y# Q$ J% x+ h7 V
- (set_tile "ctr" (itoa (setq ctr 1)))7 r7 Q3 Z* p7 g W3 L- A
- (setq vlist (entget ename))0 O% j( t- p% s: t2 e w
- )& {. B" [% E$ v) K9 t# {
- (progn
; s2 b8 N2 R# u5 J1 u6 @2 C - (if (not next) (setq vname (entnext ename)))
6 d; k5 F' g& S1 L+ t - (setq next T)' |. u& b R h1 V7 \
- (set_tile "ctr" (itoa (setq ctr 1)))
- t, }# f" `( \% b) c O3 X - (setq vlist (entget vname)); \, B; V1 o% F/ H+ \+ D
- )5 w! X( [4 W# Z. O0 p" Y
- )" X5 X/ b# c, O Y5 O
- (set_tile_vpt pointype)& s/ P$ O+ d+ b0 j! x/ D# L
- ;; Define action for tiles3 }- c4 s8 J. q% G8 j# O' }) M
- (set_action_tiles)
. i9 M- t" B% d1 n/ W$ e* b; G - (setq dialog-state (start_dialog)). f1 s7 m' C7 z( m. H
- ) Y5 G+ V& ~7 e+ u
- (if (= dialog-state 0)
2 W( F+ K& g6 h6 I& k - (reset)& v# {9 {4 z9 q; X( ?& A1 g
- )
; c3 f |3 V0 X1 t- u/ S - (if (= dialog-state 1)
6 X) [& ~- E& j$ \2 j - (progn
0 _- B1 K: `4 y - (modify_polyline)" r, A+ Y2 Y5 a' z( b
- (if (or (= pltype "2D polyline")' V6 c! o- U& L: u& ]
- (= pltype "3D polyline")
( G: F8 V7 I- u$ q7 I - )( c; c+ z; p) c9 f
- (progn, v% f" I0 Y t7 ?
- (command "_.pedit" ename)1 B3 Z8 d. e7 q/ w8 R& O
- (if (= spltype 0) (command "_d"))3 ?) A. D# @1 [' H' I( B" w* @
- (if (= spltype 1) (command "_f"))) |1 s: }. m+ ]3 ~, E, \
- (if (or (= spltype 5)
5 Z% M0 L2 H F( m; [& j - (= spltype 6)$ m! x3 M+ w! S, f8 K
- ), N2 [& z! `7 Y: @. \: D F
- (progn5 F% f$ f$ D+ r& o- Q
- (setvar "splinetype" spltype)9 J3 B0 o ]$ x6 D9 ]- Y
- (command "_s")' y. j: }- P5 r
- )
1 m: t3 S* c. Z8 o& U - ). m+ T6 C+ G& U9 V2 M. {
- (if (= closed "0"), c5 I4 R8 l( A7 ]: D
- (command "_o")& T& E4 q y6 \6 L4 d6 f! ?3 ^
- (command "_c")0 J# O& R7 ?5 j5 |+ s: g3 o0 J
- )7 S( [# `) O: G
- (command "")
' t9 d2 z7 O. y- r5 G( g" o5 c - ) G# R5 k, A1 W3 D+ U( L
- (if (= spltype 0)
9 i4 E- X' V, L3 N# F! z - (progn
_1 ^% f) `' }! P - (setq oldecho (getvar "cmdecho"))
$ Q8 d! R0 `. l0 ], g. o5 ~5 B2 N: q - (command "_cmdecho" 0)
+ b- b, C8 y" @) [2 d4 Z4 R G9 e, r - (command "_convertpoly" "_light" ename "")
7 C: U) K7 j: Y% S: v - (command "_cmdecho" oldecho)- @" `6 J9 } q7 X2 F0 Y, ?7 L& a
- )+ S- C3 B8 [5 x9 I
- )6 Q) K# q s9 l' d8 [
- )
/ {/ E# V: z3 V' q5 D" ] - ) p+ U+ ]) G C8 b
- (if (= pltype "3D mesh")9 Z4 a; F2 m+ O4 x, A7 O" O
- (progn
- V: _/ d3 m* y! r6 S. i6 u$ l& K - (command "_.pedit" ename)( S6 \/ p; {' H+ {( ?4 ]6 b
- (if (= spltype 0) (command "_d"))
3 \& ~, p6 i+ K, u+ N - (if (or (= spltype 5)1 `) f% X! j7 z% d' P6 E/ W2 |& ~
- (= spltype 6) Y" T4 i, g* [: c
- (= spltype 8)" v' X o9 n3 z1 I
- )
4 h, t" ]1 R( H& B+ ^5 s - (progn8 o e2 X, M9 T, L
- (setvar "surftype" spltype)8 f" B7 @3 W" d* ^, A9 J% y& \" t
- (setvar "surfu" u): H. X4 [5 h6 G, O
- (setvar "surfv" v). [. T( I7 G0 }2 Y: s
- (command "_s"): ^. V+ }0 l5 j/ f( R( Z
- )
$ w- E+ l. d& v5 u0 j% b - )- U- _5 p" U! i) L( s
- (if (/= closedm old-closedm)& w2 e. K$ e/ G: d; X
- (command "_m")
, K7 K v, y) ` ~ - ): q5 y( [7 ^, D, W( ^
- (if (/= closedn old-closedn)* C- i! @) w2 m/ N4 v$ A d
- (command "_n")
- d2 g2 q% ~ k - )
+ D/ E# O3 V& z4 E - (command "")
$ x, o3 s1 R7 s5 ` - )+ v( o' J1 R8 q9 S% `: S2 {0 x
- )) ^# t9 k2 {; x' u( L ~; N) P
- ): [4 p* a! o, l" I
- )( T% j/ f1 ~) A: ?, [
- )
9 W' y% Q# N3 E# f0 ]; A - ;;; Q* A4 h2 ?4 a' m: Z; d
- ;; All the spline data is contained in a single elist. We must do some, w- N* T( V& H1 e! m
- ;; tricky list processing to loop through the elist in order to display/ K5 Z2 h/ e& x" U, L
- ;; all of the control points.4 P" g# Q, J9 i6 C
- ;;
6 l/ S0 a- t- v. ]0 K. H7 q; _* j - ;; The structure of the elist is different for rational and non-rational$ M) v( e; A& Q# y3 s6 M
- ;; splines. Therefore, we check the rational spline flag./ g$ l' b7 d: ]0 b- g
- ;;2 U3 j _* b _5 G, w# ~
- (defun next_cntl_pt ()
2 S- H( O1 j3 ?' G - (setq elem-no 0) ;; elem-no = element counter7 M' p5 K2 i+ |* s2 R7 G
- (if (= first-10-time 1) ;; If first time, find location of first
) q8 c/ i* w1 u - (foreach list_item elist ;; cntl point element in elist
: W3 e% E8 I$ O+ `* k - (progn4 \3 A% n7 @9 {0 N' H& u
- (setq elem-no (+ 1 elem-no))
& P6 O6 t$ r; l$ z" z9 g - (if (= (car list_item) 10)
. `4 ], S- A) {+ A; a0 k - (progn6 f# H5 Y7 |: q# d1 Q
- (if (= first-10-time 1)
$ d4 w0 p9 a i3 ^; u3 m - (progn* L, T. _2 }0 l( q" `
- (setq first-10-rec (- elem-no 1))
( a T% C! S& N- I" Y - (setq first-10-time 0)1 M8 f6 B# i# N" r7 t/ g2 z
- (if (= rational_spl_flag 1) ;; if rational5 }( r" b& f" E: c& a' P7 |# n- I
- (setq cur-10-rec (+ elem-no 1))
, _. ~/ W" J% T& T6 e - (setq cur-10-rec elem-no)3 L+ M) A; e3 V( m% } K; T* B
- )
+ C6 T0 L+ F9 E% V - )
* u( c7 n4 q1 u7 M - )
" v& P! I a; R" o# t* | - )
8 S3 h( o, J: i5 J+ l - )( Y5 F) k6 b* f) K5 Q
- )
* |+ x5 K7 f5 ?# R- J- a - )
: x9 w+ d0 n; q1 `* a - )+ ?6 F$ h# j: b/ D* N
- ;; Now we know the location of the first "10" record; it's stored v" x* W; a, h. Q( M- c
- ;; in first-10-rec. The first 10 record was already displayed when# t5 R$ P8 p; y [
- ;; the dialog first came up so let's display the second one when
1 s0 R4 D X0 S; T1 l' g4 o; V3 ` - ;; the user presses the "next" button (the first time through).
* [2 l$ t* Y6 s j+ m; A - ;;
! m8 x3 F* K2 H9 D6 b x- D, A* m - (setq temprec (nth cur-10-rec elist)); ]( \3 \( A! `! z" T `4 u7 ^
- ;;
* n% Q) ~$ q s' g: v - (if (= (car temprec) 10) ;; if 10 record2 ~+ N* J/ w) r. i0 I
- (progn& n: G1 Q) U2 i
- (if (= rational_spl_flag 1) ;; if rational spline
0 t2 L- @& H- d. _2 B4 X - (progn4 m! y/ X* I" B, |( r
- (setq tempweight (nth (+ cur-10-rec 1) elist))
W* s" k& ]1 Q, b2 _ - (setq cur-10-rec (+ 2 cur-10-rec))* i7 p$ y- Y* v( L$ H6 |2 T0 g; k
- )
5 D$ Z1 |* L8 [( [5 A* z5 X/ P - (progn ;; else/ ^% E! x# v0 X& b9 e* `
- (setq cur-10-rec (+ 1 cur-10-rec))4 T4 T* N# z5 T1 g+ {. _7 Y( R
- )
0 e5 }# b% g9 K, D: Z$ X* \ - )
( @( Z# y' u. k! m" l4 t - ) ;; end if rational spline; A/ G O' i; x- I7 d$ _% f) [ x
- (progn ;; else reset counters
4 ?7 \5 ^( [. ~& y2 L. K8 B - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
* `( V1 n7 r3 A& a - (setq tempweight (nth (+ first-10-rec 1) elist))! Z' u# v' F& ]' x0 K
- (setq cntl-pt-indicator 0)
+ X; h# R5 z' k9 R; P: O+ \1 d; K - (if (= rational_spl_flag 1) ;; if rational
+ k% Q/ w) W1 H* a9 @1 b! G. J9 @5 x - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec) Z4 E4 z, L. p) ]& w
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec+ o7 h' i" m# D& e+ |! l( r
- )
5 G) ]; o' s# I( w( n3 M7 R - )! \' w+ |( Q1 \& r! j# W: B$ \* o
- ) ;; end if 10 record7 \2 @" h4 j! v9 z" i5 L9 t
. l1 w. C. w$ _: ^% ^- ;; Display cntl point, weight and ctr. Increment ctr.
0 R" r% H' h+ N) r6 ?8 ~ - (setq cntl-pt (cdr temprec))7 Y. {# F% u9 p7 Q8 ]
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
- F9 Z: @' X7 d1 _' X. m: Y - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
3 Z. G! h/ K, D3 Z - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
; f+ q* }9 O* ]2 K. M# {" O5 f6 m - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
5 Q2 e$ E$ T' P0 K! z3 @8 ]' | - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
X: b- @8 Z) W k/ V( J* w* } - (if (= rational_spl_flag 1) ;; if rational
- ?" K4 |: r( b5 f) l" E- `4 C - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght" q v! p* o9 n. x! R
- (mode_tile "weight_text" 1) ;; disable wght+ C/ {8 y- _' m" n. n) i" [% {" T! G: V
- )/ n' S% m* _0 n; C( G$ V
- )
) r3 k* K- c. v5 L, i9 k - ;;5 s! x. y4 @9 P5 l
- ;; All the spline info is contained in a single elist. We must do some* u6 E6 M8 g- K' ^& a/ I/ z) p
- ;; tricky list processing to loop through the elist in order to display" Z6 s" b. X) r$ v( k4 k
- ;; all of the user data points.; m+ j& D& T2 ~. ], F
- ;;7 N2 N- L5 ]- Q+ Y v
- (defun next_data_pt ()1 i6 l8 q T. G' b" U+ K+ A8 u
- (setq elem-no 0) ;; elem-no = element counter8 y9 |4 C U/ e* V
- (if (= first-11-time 1) ;; If first time, find location of first9 |9 Q1 H& Z* H1 n. P& c
- (foreach list_item elist ;; data point element in elist
( m, v2 m8 V, }7 Q$ m: L9 e - (progn
* k8 N1 o% O. ]/ q - (setq elem-no (+ 1 elem-no))3 c( X2 V4 X2 m* _7 {1 k, m8 B7 e$ X
- (if (= (car list_item) 11)
& K) I! s' N- y7 W" V* W - (progn- u0 c9 A# j0 v) M. l T
- (if (= first-11-time 1)
( w/ h; R6 M5 D f* h9 G - (progn
3 ?1 R! \) L1 V9 R! u ~& |! o - (setq first-11-rec (- elem-no 1))/ | p8 U! ~7 ]3 w3 r
- (setq cur-11-rec elem-no)
' z6 J0 `5 J# x1 W - (setq first-11-time 0)
/ A/ u d: a$ t% N! x2 X' i - )- ^! v [: q' C3 e+ l
- ); {/ A! g5 n0 ^% ]; d' k
- )
. |! d0 O4 t6 w2 t( Q1 V0 V- C/ f - )4 l) r1 Q1 k8 ] K% l
- )
2 s+ P/ R0 k# p4 x# _ A& ] - )
4 o" N$ C0 N( w3 ]) y# ]9 w8 K - )
; H6 e9 o* Y' e7 n - (setq temprec (nth cur-11-rec elist))4 P1 A6 Y2 }; l! L) Y8 e5 h. f/ M
- ;; If it's not a DXF "11" element then we've gone past the last
, R: n+ G* v3 T' L& T - ;; "11" element. Go back to first "11" element. Reset counters., K# a. H- a; j' w3 A
- (if (= (car temprec) 11)! Z7 { }9 l6 v# c7 ]# u7 ^9 h
- (setq data-pt (cdr temprec))
9 Z% r% w1 {( F - (progn ;; else
6 |7 ~$ l1 u( q - (setq data-pt (cdr (nth first-11-rec elist)))
) E* ^9 Z+ [. P3 R6 \. ] - (setq cur-11-rec first-11-rec)/ O$ O$ A( Y0 w( K# E
- (setq data-pt-indicator 0)' o( c8 ?1 v* I! ^
- )
; U/ v6 ]# V5 I; w - )
5 r+ [9 A4 r8 T5 R9 G" r C8 P3 d - ;; Display data point and ctr. Increment counters./ U7 ]5 U3 t7 J* a( M5 T' y! {
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
: E! l3 b$ w1 C& u" U - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))( y/ W5 G4 y: E; Q9 h
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))7 I* \8 r% u& ^
- (setq data-pt-indicator (+ 1 data-pt-indicator))
" q3 f2 H/ x5 q, r g: J9 s - (set_tile "data_ctr" (itoa data-pt-indicator))+ q9 G6 y/ \+ s) Y
- (setq cur-11-rec (+ 1 cur-11-rec))
2 y2 v5 |! S6 Z* C: W - )
( k0 q6 f b" w1 y s& X7 e - ;;
6 _* @/ u1 o1 i! g - ;; Modify SPLINE
2 P8 @" A1 G5 W }2 K - ;;
* t- T. F1 E, M - (defun modify_spline ()7 B4 B2 x: R( ~' r$ [/ i8 d, i
- (modify_prop_geom)0 _$ V# s% K% X4 I" [
- (entmod elist)
; a+ [3 n* p& [' ]4 w" d1 i; v9 t - )
D. u" h' d9 j" ] - 0 o# T3 [: Z6 J4 E1 y5 Z; r
- (defun ddspline ()( h( G$ `' G" i
- (if (not (new_dialog "ddspline" dcl_id)) (exit))
3 k( @2 l: R+ B8 P) ]7 S$ ?) ` - (set_tile_props)' _; k& F' o5 H8 E! W1 V: F5 `5 l6 G
- (set_tile_handle)
3 [5 E2 L8 Z% Y9 \/ L* H - (set_tile_spline_props)
- Z; y, @: C+ a( m4 `5 U `5 `/ s! r1 f - ;; Display first control point& T. x8 l6 A" V
- (set_tile_cntl_pt)
* |) N: ~9 ^+ _# i - ;; Display first data point* b4 e0 N" l. o* i2 a
- (set_tile_data_pt)
( h" I% t. O, J7 @ - ( M! f6 Z$ m/ s' U4 a
- ;; Initialize flags to indicate first time through the dialog.
& |5 s" A( U, l4 D - ;; For control points and user data points the "next" buttons
+ z8 `! A r% e) T9 W - ;; in the dialog call the appropriate functions.
- h: f) ^9 D6 [- @ - (setq first-10-time 1)
0 p1 O$ l! W4 A0 c( n/ O - (setq first-11-time 1)
" z. h' d7 M, A' U - ;; initialize control point number counter8 N9 {5 Y6 ]5 X& d
- (setq cntl-pt-indicator 1)/ P. W& O/ Z& m& R: C7 w
- (setq data-pt-indicator 1)
- a, V3 [5 h7 o) ?! o# ] - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
5 H9 `3 N/ I6 ?- `- g$ l - (set_tile "data_ctr" (itoa data-pt-indicator))& S. ~3 i% Z u, k T5 C
- (set_action_tiles)
* w; K% M5 S- B - (setq dialog-state (start_dialog))& \4 h* f. z+ Z, W8 [/ ~7 [
8 K. |0 r# C: M0 c- (if (= dialog-state 0)6 l% B+ t f! ^8 \. c- }8 `
- (reset)* Y: L" f# W% m V! _# T* S
- ). z. N4 `& |. r6 w9 p
- (if (= dialog-state 1)$ Z1 [' Z3 x* b+ L' |# e% [# @ a. H
- (modify_spline)- x- s( l W1 e7 F! ` R/ r
- ); Z) g5 G4 O) s/ K6 V; W# p, v
- )
$ u. j" ~ U' j" w7 Q - ; B' d ]0 [2 K! i9 S4 q, A' m
- ;;# a g2 y9 [( K
- ;; Modify DIMENSION
: i2 Z! y8 e% x$ B - ;;2 h3 E1 o+ E) e7 I f0 |
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl4 t) y- ^$ r8 N$ t5 ]6 j
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist8 Q6 q/ f6 h9 s; _( n. }
- dimtype dimsvcurset)
8 d W) V u. u5 D% O - (setq dimtype "DDIMEN"
8 `8 B( j2 d9 O7 h- M% Z - dimsvcurset (ddimen_dimsty_restore)
" K" T. Q) n: T2 G; ]/ v& p - )0 s8 m* t/ m% }" D; Q1 `% E$ [
- (if (not (new_dialog "ddimen" dcl_id)) (exit))
. K5 [, n( P3 [) h - (set_tile_props)
- p7 ]8 c" `! f7 M5 `" ~ - (set_dimen_props)
! a1 w" v: z8 u$ I9 P - (setq dimtext (cdr (assoc 1 elist)))! E' F* G6 M5 _0 B( ^# J% Y! t1 Q
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext)). O1 U/ Y6 I' |9 v. @. D8 G
- (set_tile_handle): q" e+ y9 S; T7 E+ N' J( D: F
- ;; Define action for tiles. j* z) ?0 O$ E( j- u8 A
- (set_action_tiles)% u( x: z! d. m; A
- 6 R. B9 H" a9 R' b- P
- ;; Set initial focus to text edit box.- y1 W0 P$ x: z; y/ U
- (mode_tile "t_string" 2)
" W: ?8 \0 M g* a4 t* W. `9 K# [
b8 B" O w! E. w% M- (setq dialog-state (start_dialog))
, d1 p% S; w5 `7 ~* n* {# j - (if (= dialog-state 0)$ `+ U1 L' [1 z, N8 q j! L
- (if (= ddimmt 1)* I/ y9 p7 L" ? D0 q$ R* A& B# q
- (reset)& U: f/ q3 o( G* G( H
- )
/ W' ~2 P% r! O - )
# @0 z/ G" ^1 t" ]# H+ s" ? - (if (= dialog-state 1)3 _+ w/ K- n/ ~4 z
- (progn
$ } E' o* B6 m. u - (if (/= dimsty stname)9 H) r0 G! }2 j5 m1 @2 T
- (progn! v9 Y f- V+ b5 P; H; g$ z, Y
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case: ]! Z2 }5 u& y* X- V
- ; doesn't have it.5 L4 k* C! u8 \/ N" S
- (if (null (assoc 3 elist))! o3 j- J3 d4 |
- (setq elist (append elist (list (cons 3 dimsty)))): y; U; l5 X! a ^' ?
- ; else just replace it.
6 q9 J) G, _+ K - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)); `+ {' m m* @. l$ b2 ?: z/ _
- )
9 M. z. c" _2 b' t - ; refresh sv_dvlist with new dimstyle.
* s2 `5 m+ M7 G. H - (setq sv_dvlist (tblsearch "dimstyle" dimsty))1 k" `% X8 v/ f
- )
. Q9 U9 f% B0 | i - )
6 T6 c% D8 f1 y$ n( ? - (if (not (null dimlist)) ; attempted to change dimvars
2 A& U2 g4 p) |; z2 { - (ddimen_complist sv_dvlist dimlist dimtbl)
# z* t# B- X+ ~7 N. P l1 D |# _& B - )0 ]2 v) W# |; Z0 x) W$ x8 w
- ; Modify dimension text! G* B( v3 k( }5 |2 c0 B+ ?
- (if (/= dimtext text)8 R2 I! i" R" S& H8 N* r5 |8 ]- d. R
- (progn# r. K1 K; H' i$ B
- (setq dimtext (if (= text "<>") "" text))
# \* V8 B+ b/ J - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))1 |3 J: |5 p0 |7 s6 V, a
- )
. ]/ U$ x; e3 r) e - )
+ `* H7 F& p+ v& W" t F - (modify_properties)7 u+ Y" Z' \* d1 W. L
- (entmod elist)) k; y8 n6 q# y
- )
$ E: n E+ }" G4 M1 A' a2 W# g( S- @, x - )
/ j- H3 L( a" N. ~' K* G7 D! r - (if (= dialog-state 4)3 j/ u. E+ Q: R2 ^! T" | Y1 S
- (progn
6 _" q" d% a9 v0 f8 S! K) n" k - (setq ddimmt 1)$ g* F$ x; p% L% Y6 |$ [
- (if (/= dimsty stname)
; P* u8 ^( Z( r# M4 Q - (progn
; \2 H/ _+ h3 m X - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
5 u, m5 @3 I, Z) `( {4 s& d - ; doesn't have it.7 o" R- F9 D5 c$ A2 @
- (if (null (assoc 3 elist))* r# x t9 Z* c3 N7 Q5 R
- (setq elist (append elist (list (cons 3 dimsty)))) v. X! i' b1 F8 N# L& K
- ; else just replace it.
5 x% p9 h( V- D+ T7 y d) ] - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))" s! v% K i4 U+ G" l
- )( `: A4 s' ]: y0 _* a- [2 V
- ; refresh sv_dvlist with new dimstyle.+ Z! L% m+ s; t+ T, a
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))+ A/ v" \4 r( h5 a
- )
: m2 \( w: _, t8 P - )" X1 `9 m" v4 w0 ?5 _! R+ e, Q
- (if (not (null dimlist)) ; attempted to change dimvars
( Z0 y1 D1 J3 L; A - (ddimen_complist sv_dvlist dimlist dimtbl)
, }7 o w! M" G2 Z9 F J - )
: z# p8 B m l, Q; A - ; Modify dimension text! f8 ]- ^; n" z2 P$ a! l0 k d5 P/ j; i
- (if (/= dimtext text)
9 G' W' Q8 U6 R% z6 w7 _/ A& s - (progn2 V a0 g9 ~( n* r6 a
- (setq dimtext (if (= text "<>") "" text))* d% j9 s7 I, q
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))4 N; l2 V% J1 w h0 T8 o2 L, O$ N! ^0 {7 r
- )
( ~. E3 W5 r: j$ Z* l% t - )
6 ]1 B+ |* r$ O# w( |' R( @ - (modify_properties)
" z% J, P/ y6 C8 ]# z \+ w( b - (entmod elist)
3 U# C6 ]4 H0 ~ - (safe_ddedit ename)8 J; i5 f8 t% K Q
- (setq elist (entget ename))
3 w& Y+ E. _* t6 {) | - (ddimen)
- r& X! o; |' c3 \% o1 m - )
6 ~/ c9 I# b; I; i - )
8 p" F& O. G& k& r1 a8 G( E - (ddimen_setvars dimsvcurset) ; Prepare to exit
; G p" M) c8 | P3 |- f. C - )6 v. Q2 }8 K2 z5 P5 C) b# o
: x; y- M/ H: Q$ e- s1 }) l2 ?- ;;! d0 K( W/ W# f+ \4 i5 ?5 ~
- ;; Modify TOLERANCE$ g/ G3 L; U( |- h
- ;;
0 Q8 m' o' E0 P7 j/ m3 J% ^. R' j6 t - (defun ddtolerance (/ a stname n dimtbl# c( X2 v# F/ [0 G, E$ t( |
- dimsty dimlist dimovr sv_dvlist stlist dimtype
+ h4 m7 o2 k( V) |7 v - dimsvcurset)& d8 s; W, s4 }$ @5 V
- (setq dimtype "DDTOLERANCE"$ Y0 K/ \; T, Q# r+ D q" x
- dimsvcurset (ddimen_dimsty_restore)
& T) C0 j" j, T - )9 B0 S% E% ^6 j/ I& w6 n
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
! p5 c. f2 z$ H+ n$ o - (set_tile_props)
3 n. @% C, n' A) H3 f7 x ]. X - (set_dimen_props)
8 L5 G3 d5 Q* @" m) S f+ b( ]* L - (set_tile_handle)4 V5 | S3 a* T# A
- (set_action_tiles)# J% w* u) [" [7 y _
- (setq dialog-state (start_dialog))
! x I4 t7 K0 b# y - (if (= dialog-state 0)
2 B/ M% \, G$ } - (if (= ddimmt 1)+ k% j0 Z; O1 v
- (reset)
7 w: \5 ?' B$ O# C5 K3 n/ g - ), `, w9 D* W! ^/ ^+ |7 {
- )) h* h+ j. w) e6 V4 r- o
- (if (= dialog-state 1)
3 a4 B0 s9 V) t! {+ A { - (progn
5 [! z, ^* N# R - (if (/= dimsty stname)
- ~* }1 `+ B/ c. w - (progn3 y0 _8 U' m* n% m ]8 Y( O. d
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
- ^: M& E3 M$ s1 V5 G9 r; n- n - ; doesn't have it.7 N9 r: n1 B' f0 o% Y. B3 O4 L8 @
- (if (null (assoc 3 elist))1 b+ m/ }5 y5 {# h0 ]" b
- (setq elist (append elist (list (cons 3 dimsty))))7 L+ i$ ~: o; M7 J7 j/ U; m) f* ~
- ; else just replace it.
$ ^# N; {: X) y' c' e - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
# w- F8 L5 U* t) E% Q9 F - )
9 s& ~- ~- T5 k: J) _- ^ - ; refresh sv_dvlist with new dimstyle.7 A; W! W$ u3 ? ^8 s
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))5 O8 W9 E, _" @/ u, I
- )
; A1 `( N5 H4 P. H4 D8 t - )8 E6 X. G0 b4 g; n9 m& _% M' U
- (if (not (null dimlist)) ; attempted to change dimvars
5 {2 B4 {, E" ^0 E - (ddimen_complist sv_dvlist dimlist dimtbl). ]/ a2 |1 Z4 o& C
- )
0 V |6 ]- s9 v7 @7 K6 p - (modify_prop_geom)
4 y* T7 o" m1 [; y c# N - (entmod elist)
- p2 n _% \ T# R4 | - )
2 t) k% y5 |7 t' M& @3 j" N7 Y - )
9 s9 y, w. c; ~( I# J% ? - (if (= dialog-state 4)
$ s- F3 j! ?5 p. [5 ~% e - (progn: E$ `% N/ B0 g$ a
- (setq ddimmt 1)3 l, ~$ _$ f3 l! c) P5 |5 g! q* Y
- (if (/= dimsty stname)
) c* K. T3 p- y0 l& M+ d' k$ h - (progn
- p3 E% B2 |6 K - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
5 Z' A V/ ?2 I' O - ; doesn't have it.
/ c4 p0 k) y4 m8 C$ y - (if (null (assoc 3 elist))$ L7 r3 J; |! C* e/ q
- (setq elist (append elist (list (cons 3 dimsty))))1 {" y8 R$ Y' G8 w% T
- ; else just replace it.. a. t* d( ?: O3 _# K; s" f3 f/ h6 T
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))% O# i. W5 i- T3 w& z
- )/ b8 F5 V. N; ~6 Y+ b6 @3 c
- ; refresh sv_dvlist with new dimstyle.
9 H; Y! L: N* u- F3 l - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
. G# z. k' P u: A' @ - )
: d) M5 \0 m+ ~ - )
6 C. s) T- V* ^) ?* P3 D3 }7 l" i - (if (not (null dimlist)) ; attempted to change dimvars! x b- i1 b! a \/ A4 ]
- (ddimen_complist sv_dvlist dimlist dimtbl)8 c0 B1 E" [# m5 A& ~& ?
- )3 i4 n; x9 s% |; v) H! b+ I
- (modify_properties)) b" t9 O' Y( L1 `" h
- (entmod elist)
. K- _8 X8 p" o' q; {. h - (safe_ddedit ename)2 a' a& F3 |8 Y' r: h8 a& O& \" K$ J2 S0 q
- (setq elist (entget ename))
; K Q( |2 E9 P" u O; V5 ^ _ - (ddtolerance)
H. O- @4 b- A( G7 l - )% x* y# A4 i5 [9 Z7 q- O; H
- )
9 B' n& y5 T2 L# w/ Y' s - (ddimen_setvars dimsvcurset) ; Prepare to exit
7 h6 b' M; [% ` - ). h/ f4 G: D5 r6 u. m, l
- . e: v7 u7 T- Z( s4 X: u" g- @- g' p
- ;;
6 s' X) G% O1 y5 ^ - ;; ddimen_dlg - jump to ADS ddim module
( T+ o0 ?4 j* d+ g6 L: p" R% t - ;;: }# B) _% _+ r0 o$ s4 e
* S3 b2 i/ [! i |- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)2 Y% M1 h( _% A( p
- + t) F& L. {6 j# p3 h/ D7 K. U
- ; Jump to DDIM with overrides if any.
& F) ^: e7 i8 ]+ O+ k - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry9 U; }* Y) |. J9 i9 v6 Y
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
! b0 |0 L" d9 X4 W - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation {$ W+ [' W6 o7 g8 V5 L3 n" R
- )
0 k- g( }% J7 G6 _ K! k - )
; _# M+ m+ I+ R1 C3 X
) Z' z! ?& T( a# ^3 K- ;;
2 M) a! n% e1 `( S+ j5 l' b8 t3 n - ;; Dimension variables updated are stored as overrides.
q' c4 W" N5 I3 [( S y - ;;9 A. \: f. _% f9 W# f
! A9 S. ?6 h v3 R' L# B, ?+ u- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar/ h$ f: i& N3 K, c/ \' y
- dv dime commandIssued)
8 L- U( m" ]( N( s) B
/ E0 N$ U4 l/ R9 y9 |. l- ; Here we skip the following first three items:
( n/ p* k+ O' z+ N - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0). K# Q; O$ {5 v2 j% Z# E4 D
- ;
+ n) p! r/ P3 d' @+ R* m+ o: J9 t - ; The list comparison immediately begins with dimvar.5 Y* v M* X& ~9 Q
- ;
* ?- l2 j8 r- ~2 y" @: T; w - ; dimolist - original states of dimvars
6 [1 e2 m# f2 a5 g$ {9 X7 V - ; dimnlist - new dimvar list which is of the resbuf's' x+ c. b2 c$ c! S0 J
- ; dime - entity name for the dimension( p; x+ B# e( _5 G1 i
- ; odvar - value of dimvar for the dimolist
, @$ H! y* J" K! q - ; ndvar - value of dimvar for the dimnlist- g: k# [9 a$ l
- * m8 N4 T8 y2 L5 m
- (setq i 3* O; L! H7 O5 \1 Y' ~
- dime (cdr (assoc -1 elist))
9 O- l4 @- M6 t- M; T9 F - )" a9 ?3 z5 B0 S
- (while (setq odvar (cdr (nth i dimolist)))
5 z" ?8 s( T& ^+ I$ G4 W. `# K - (progn
# s m- r \# o - (setq ndvar (cdr (nth i dimnlist)))
6 B; G* G9 s. \! d6 `8 U - (setq dv (nth i dimtbl))
; q. h' f% a8 p& f - (if (eq dv "dimtxsty"): f: S u% d# z# |
- (setq odvar (cdr (assoc 2 (entget odvar)))2 B; C! x6 I8 Z* l
- ndvar (cdr (assoc 2 (entget ndvar)))4 f; p% \* V2 r( d3 }
- )
7 o& P/ y" l2 s+ l - )
/ O" j9 x- F0 ? - 0 X% Y2 q8 E+ W- i
- ;9 t8 M1 r2 g$ j5 ?" O) C; P7 b
- ; In order for DIMOVERRRIDE to operate correctly with string
, U$ ^" m5 @0 H' y# d3 w - ; based dimvars, we must pass "." versus NULL strings.2 \! O% r- i; L" G2 m3 {
- ; In this case ndvar is the new dimvar value the user wishes
) M4 L3 w$ _: s+ o6 R; J/ V - ; to update on selected dimensions.# ^9 Z7 ~0 w2 G3 a5 Z" q a
- ; k* n. `) D# ]7 I |4 x0 ~. h9 ^9 @
- (if (/= ndvar odvar)2 F& u. i, {6 a2 e
- (if (= 'STR (type ndvar))
1 j% X, b* o! f- A! u% { - (if (= ndvar "")
- S, b2 x5 a# N - (setq ndvar "."))))# U) k o5 _5 E# F- N. S
' ?' {1 n K9 o5 g% @, ?" U- (if (/= ndvar odvar)/ M0 J/ X6 u, E( q7 L6 e0 a( y
- (progn
6 w s* _5 |# ?/ R! I - (setq dv (strcat "_" dv))
4 V, r2 t& [# R1 S& P+ S - ;7 S/ m% y) A/ T/ u& B; E$ I; S
- ; Start the dimoverride command
3 l/ Q9 d/ t! ?- y - ;# u S6 L. ?' I$ ~, y
- (if (not commandIssued)3 K; I/ e; x5 Q* ~5 K( p9 r
- (progn
/ D9 B( K# h X8 G, s# y* w9 o - (command "_.dimoverride")
8 V' j& d, ]' K, P* L9 r$ O - (setq commandIssued "T")
, L) x% Y. F: G. M+ C* r* M9 j - )) x- h0 K! H+ n' l+ Z% w
- )* {& D* L! i4 O, e* M! j. p
- ;
+ N% z* f7 X& c/ G; _3 W7 B" Y - ; Issue dim overrides
1 L4 ^) k2 q9 u; m - ;
, b' ~3 j1 ~% k8 ^ - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
+ n: N( Z# P6 O. m* k4 J - (or (= ndvar 0) (= ndvar 256))" _* f+ {% T1 M" N
- )' A7 |- g1 i$ X3 I& l
- (progn
3 D+ ]# N V) B6 e; W3 t$ c. b - (if (= 0 ndvar) (command dv "BYBLOCK"))- i D; d; ?; h# M
- (if (= 256 ndvar) (command dv "BYLAYER"))
v! V$ n" K h7 d3 d - )
) Y+ i _) |1 v: C& C - (command dv ndvar)4 }8 n" V. _' J* H! A6 z- B: c* C
- ). i1 j3 o% @* |
- ). O: J8 {3 [) C, p
- )
3 d, B% i9 P2 \( s2 f - (setq i (1+ i))7 r5 n6 s, V. `3 k8 {; X# X4 f6 ~
- )2 [6 H# D$ y+ C
- ). ?. g3 g$ i: T/ Z7 {
- ;( {2 U' W$ j: b$ d0 z w
- ; Select Entity and terminate command
* C( S9 N7 C0 _- Q) ]) Y5 ?+ b - ;
9 U+ H" U4 J0 T# ^" q# [& b- x# q# L - (if commandIssued( Z; a' I1 W% S$ R
- (command "" dime "")) p2 ~$ L; ^$ R, v7 p
- )4 n9 B! `3 i" S. ~
- )! p# a3 K+ C7 H ~) P
- ) z" z$ H5 B9 a; E
- ;;
% i6 @4 C d2 O! A5 I- n( { - ;; Get style name currently selected style name.
* \' L! E/ T5 a1 M! | - ;;: j0 F% I4 N, t( @; U7 L- ^ S, H
/ {% a# h7 i' R3 V( P7 u- (defun ddimen_style (/ dimsty)4 Q" N9 s% g% M q9 t
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
( C. Y9 O8 R; l) A - dimlist (ddimen_getdimvars dimsty)
6 A6 T9 {6 c8 Y$ p- ^ - )
6 V8 b; U. P1 G9 a' y, M/ {5 G - dimsty5 ]/ h8 s) ]+ R8 D, B: A: I
- ); m# Y( H( b9 ?% P: }! f) o |$ ~
0 Z# E) S( Y5 @# a2 c4 l1 |0 G- ;;: ^/ ~ p; u3 J- d y2 B
- ;; Set dimvars' b1 C! M' ~9 E
- ;;
$ s( B6 r' z0 i8 S/ a5 S0 E7 x - (defun ddimen_setvars (dimsvcurset / dv i)7 z" {* P1 m$ c+ P' o
- (setq dv (cdr (nth 1 dimsvcurset)))
' U3 i- K0 V; u1 N3 W( G- [% ~ - (command "_.dimstyle" "" dv)
L6 u& J/ H/ ~' \5 ]- r6 ]8 @0 v - (setq i 3)
. ]% e- a/ ]8 Z/ r - (while (setq dv (nth i dimsvcurset))
2 z& B7 }4 y, f: s0 U+ e - (progn
# z4 V' R/ x) |4 _/ `3 Z - (setvar (car dv) (cdr dv)), L P) Q/ I+ e& }
- (setq i (1+ i))* }( V9 P, ?5 @! ~
- )9 c9 [9 H$ y; K% \3 b! S4 m
- )
8 u* k8 V$ m+ |) D - )+ v, P+ X) J- ^; O( b2 c) f% V
- ;;
$ t- }1 T& [ O" D; E - ;; End-of-dimension2 @' n/ U# t' f! k# H# N/ R y& P
- ;; ==================
4 X: d$ a" w+ H8 ]/ ~ - $ A5 R/ i2 `8 Q: O; @
- ;;; u! {: {5 T2 ]: i/ ]
- ;; Sub-dialogues for properties. Common to all object dialogues/ O, K0 n. O0 I: R
- ;;$ `( l, j- X3 L; y3 o
- ;; This function pops a dialogue box consisting of a list box,image tile, and. [# {7 L# X+ R6 o
- ;; edit box to allow the user to select or type a color number. It returns0 Q7 h8 {! I& e! U% F: t6 T
- ;; the color number selected.
. Z# E3 E, w9 e' w3 l - (defun getcolor (/ old-idx colorno cname lay_clr)
5 J6 Z i* S- v/ _, R$ R - (if (= (get_tile "error") "")
9 c1 C( Q, x; H& G/ l - (progn
. N' `' }! P0 e$ j1 ]4 ~ - ;; Get the color associated with this object's layer, for use
0 D( B# v7 x4 Q$ I: N3 M& Z3 Z - ;; in the color swatch if the user selects color BYLAYER.7 [* f- L# { N2 c1 R
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))( {9 J m6 L2 g
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
! p& A) \) u y: Q5 o/ g4 ^9 ?4 G - (progn
2 m1 U! d* y. Y - (setq ecolor temp_color)
& g$ P# Q7 [6 b0 @3 V, g - (setcolor)& I6 S L9 j$ @1 V, A
- )
) K* H! d6 A8 L" y8 ?3 d - (setq testcolor temp_color); Q( m& u- {1 F. A
- )
0 _, Q5 |( Y; ^, z. X4 s2 d - )
8 _. [" \2 Z7 ^, | r - ), W m" a$ z" j: f1 N6 @
- ecolor/ T( X- T) o' a* B
- )
% G) j' q" x/ @ - ;;4 @4 }6 N; H" T d7 c
- ;; Function to set the color tiles.
6 t6 ?9 ]9 U! I, E; n - (defun setcolor()9 z$ h3 L1 G7 P; a8 d3 O
- (cond, s6 c3 C9 }: _7 A' I) s6 e
- ((= 0 ecolor)7 |+ e6 M" }1 y
- (set_tile "t_color" "BYBLOCK")1 z; a) y* H% I' s# h& ^- ^1 A: S+ {
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
7 E5 W. n# S$ d5 r" N. ? - )4 s: `: e9 b7 Y4 V' h8 |
- ((= 1 ecolor)
$ l. i; t! P D3 i - (set_tile "t_color" "1 red")
M& n V9 m9 k" r! b% [ - (col_tile "show_image" 1 nil)
# K* t7 H. N3 I5 z9 t8 [ - )
q, ?6 n `: _ - ((= 2 ecolor). r ?, ^- |, v+ C* O+ j/ U5 ^7 I: B
- (set_tile "t_color" "2 yellow"): z0 x. m5 J- F! o* {. f
- (col_tile "show_image" 2 nil)
; {/ n! B9 m' }) g; h8 x. s - )% o" l- V7 {( v- b8 N
- ((= 3 ecolor)
9 u, {$ a* ?- K4 o ?/ u: u - (set_tile "t_color" "3 green")1 I# n2 |! b' i) Q& ^! @3 a
- (col_tile "show_image" 3 nil)$ m. v, B/ J4 K$ t( R2 T
- )5 k# z% ~6 a: N
- ((= 4 ecolor)
' u; `) E5 T. R$ H% X( `4 ^9 n3 \ - (set_tile "t_color" "4 cyan")
$ f9 e4 P' f/ U, k0 P - (col_tile "show_image" 4 nil), Y1 T" O, @: B9 Y9 A: W
- )- t" Z& d! y4 B0 |: w8 n
- ((= 5 ecolor)
( O2 _: _7 g4 [- T# {2 w - (set_tile "t_color" "5 blue"); ?( S- z E- g. e; g
- (col_tile "show_image" 5 nil)
% |. Q9 [- o0 G4 n; g - )
3 w2 b# [1 v; Y# Z2 Q - ((= 6 ecolor)7 k6 ^4 {( {( ^" q
- (set_tile "t_color" "6 magenta")6 t" ^ f7 v E# }# R. \- C! @
- (col_tile "show_image" 6 nil)0 d( U) L0 m! a4 m2 ^
- ); |3 F/ p: |7 p+ m, ?) Z
- ((= 7 ecolor)6 Q$ k" S+ n3 x; T, e. n
- (set_tile "t_color" "7 white")
/ ~& H4 ]* U! R6 p+ n - (col_tile "show_image" 7 nil)
& N+ N+ h% R& O - )
/ K) {8 P- w& r8 J - ((= 256 ecolor)
* n/ y( Q2 Z6 w3 k; @ - (set_tile "t_color" "BYLAYER"), S- ^, ~) m( M
- (col_tile "show_image" (bylayer_col) nil)
, T1 \# |( C& b% _* h4 T- a - )
7 ~% b" N2 L# \0 C - (T. A2 p/ I$ B; \3 B0 z, S) ]
- (set_tile "t_color" (itoa ecolor))! p* j# o1 F1 Z0 K$ N. F
- (col_tile "show_image" ecolor nil); b5 C8 R+ O; W( N7 z! R2 K/ i8 i% U
- )
; a# f" Y, ^$ y, A; O( W g - )
& C- a) ?( j& |( I" H4 p - )0 \0 m8 O! R: O7 N
- ;;
( B. n, V, R" ?% |8 ^% F - ;; This function pops a dialogue box consisting of a list box, image tile, and
& l6 j6 b( ?9 m3 A q6 B L0 p1 L$ F - ;; edit box to allow the user to select or type a linetype. It returns the
+ D4 l% `6 c. U6 D" s - ;; linetype selected.
2 y" b+ d. ~5 X# Z - ;;$ Q1 Z! @0 p* }8 L
- (defun getltype (/ old-idx ltname)& k# k& p7 k& x7 `; h
- (if (not lt-idx)
5 q) W0 u# w3 O% F+ i* F8 S' b+ J - (progn/ g! ?2 W5 n) Z* f( o, ]) C0 {
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
& M W+ B8 C( m$ v, G. F$ r - (cond- f1 c5 ?: Q2 r
- ((= eltype "BYLAYER")
) i0 b, z7 D2 }2 n% F2 S3 G - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
' Q H ]" d' ? - ((= eltype "BYBLOCK")8 n/ l X( y8 {+ C! G$ p: `: C
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))! T( L& [$ X+ t' w, T8 T
- (T (setq lt-idx (getindex eltype ltnmlst)))
: h1 L) S$ E! R! q - )/ J0 X! H% p; B# e3 o
- )9 O$ \4 o$ q4 r/ u+ n& p
- ), A/ M3 t8 _3 U: L
/ b0 @3 C `6 }1 u- (if (= (get_tile "error") "")" L' {* f8 e1 }( X
- (progn
1 q5 Z! k: p; F, A' A" N. K4 Q - (if (not (new_dialog "setltype" dcl_id)) (exit))
- I( t) i( ]% M( ?1 F - (start_list "list_lt")' H( h" n" a# J; Y. I) _3 ~& e
- (mapcar 'add_list ltnmlst) ; initialize list box2 O* }8 u/ ~* k7 f6 J) D3 g. U
- (end_list)
0 C+ D# ^* ?& l( V V1 n - (setq old-idx lt-idx)
& x6 S9 j& [, F) ^6 A5 | - (ltlist_act (itoa lt-idx))
J9 t; `( D, B' T/ G
2 d8 j" E/ l* j3 G0 u4 l% {0 y0 b- (action_tile "list_lt" "(ltlist_act $value)")2 h9 G9 }! d: V) t
- (action_tile "edit_lt" "(ltedit_act $value)")
8 t1 R: }$ S0 u, S* B - (action_tile "accept" "(test_ok)")# b6 |0 c5 J$ ^) J v
- (action_tile "cancel" "(reset_lt)")2 d$ b8 M C: x
- - a- |- m4 S! ?3 }8 e1 `6 y
- (if (= (start_dialog) 1) ; User pressed OK
1 c, e7 x' t% T4 w - (cond
! l, i8 [* Z; G2 W; r7 ^ - ((= lt-idx 0)( F7 e1 j2 v+ b" k6 x, i
- (set_tile "t_ltype" (bylayer_lt))2 `" r) i8 m! R; K
- "BYLAYER"
c$ f, T& {# {3 ` - )
. ^% }* m; ^+ Y. |7 K4 q- n - ((= lt-idx 1)1 g" L3 E1 b: P7 ~4 }
- (set_tile "t_ltype" "BYBLOCK")
`9 q8 Z& x$ w* K9 R5 } - "BYBLOCK"% C+ x& @9 D3 q" i5 _
- )( T; S- E/ G3 H
- (T (set_tile "t_ltype" ltname) ltname)
8 _3 v1 Z$ S ^! d' o - )6 N0 d! t( |! U/ I- P- }2 ~
- eltype1 L! o/ d' X1 {( C/ T$ C
- )
! a- n/ q$ y1 H- q( H! b$ Q - )
D9 F3 ^' x, F; p - eltype
& v% {9 {. p: M$ p% n+ N - )
( E. s6 M) m5 r4 o& b - )
% X3 t6 ?2 }+ U% ]. c( ~3 b - ;;
7 [+ v4 l! t8 p3 ~ t - ;; Edit box entries end up here1 ~. y9 ?4 I3 R& A, A
- (defun ltedit_act (ltvalue)
+ m$ L7 n0 V8 ~ - (setq ltvalue (xstrcase ltvalue))3 a C5 x; k+ A, L- g
- (if (or (= ltvalue "BYLAYER")9 Z: w+ a! {2 u9 y! r
- (= ltvalue "BY LAYER"))9 f7 f% O8 W1 r7 Y2 m. ?% ]
- (setq ltvalue "BYLAYER")
& v) i: z; s( T - )& l5 b8 C( C* r" T- b
- (if (or (= ltvalue "BYBLOCK")
- ~8 {% K- |0 x3 s h - (= ltvalue "BY BLOCK"))
' u( \# N. h; z. u L2 \ - (setq ltvalue "BYBLOCK")
7 G( v7 U$ x$ s. a2 }& Z' j - ), Z& j* T2 ^6 N5 V3 n$ ?$ p
- (if (setq lt-idx (getindex ltvalue ltnmlst))
2 Y6 T/ |) I/ e5 A7 u8 c - (progn
& ]) F! p9 o% D% p8 O* K - (set_tile "error" "")
6 b2 _/ L$ j. Q$ z4 O - (ltlist_act (itoa lt-idx))
& H4 ^- N5 p- {6 w+ n. h9 @ - )4 S6 ~, v$ a3 f! J6 U
- (progn
* k7 H0 R& }/ ^1 d - (set_tile "error" "Invalid linetype."), s. n% ~' L" M
- (setq lt-idx old-idx)/ m3 b; G" Z6 k$ I( f! b; |* B3 v
- ;; (mode_tile "edit_lt" 2)
4 s% B; |1 K& u5 \) `: ?) X4 r$ B0 W$ d - ;; (mode_tile "edit_lt" 3)
" L! c3 m9 j) [8 T1 b - )
6 Q. R7 J- H( m8 ?" ^ - )5 G: ^! z( i; Y
- )2 I/ M% c( w1 d" T7 i3 j/ g# X* O( Y
- ;;* H4 I# I/ e( O0 |
- ;; List selections end up here. Update the list box, edit box, and color
) }' e1 e. I* J, R - ;; tile.
3 b J" Q) }, ? - ;;
( T1 ?( c2 |8 v8 w% N - (defun ltlist_act (index / dashdata)
9 G- ]+ n/ N& F" } - (set_tile "error" "")' a+ p3 p% k) J9 o1 X5 L L
- (setq lt-idx (atoi index))
- l$ a8 Q( y. R# W2 L; W - (setq ltname (nth lt-idx ltnmlst))
+ E# N0 g3 ]/ y+ ?8 Y - (setq dashdata (nth lt-idx mdashlist))8 R2 `+ `) j% \
- (col_tile "show_image" 0 dashdata)
: X7 a4 G0 M" f# J8 _ - (set_tile "list_lt" (itoa lt-idx))
* y, A2 \7 S v' q - (set_tile "edit_lt" ltname)
% N2 D* g, [: ]/ R- u - )
+ z( ]$ ?# f6 {- U+ `3 n) P1 D - ;;
5 |3 p7 U1 u- D2 }( A" j8 L - ;; Reset to original linetype when cancel it selected
( p) r* v7 q2 S# p z) x' C+ T - ;;
/ O8 L; K. X. r2 z z8 U: E4 J - (defun reset_lt ()
/ ^3 t* p5 H/ d; ] n - (setq lt-idx old-idx)
$ ?+ O! K7 c4 i8 A2 o# U! a - (done_dialog 0)3 ]% v2 Y8 |' g. m# J/ [7 M7 m( b8 p
- )+ E6 z8 ], N# K4 F+ r
- ;;
! B$ S& r6 |& }; o - ;; This function pops a dialogue box consisting of a list box,image tile, and g, ~& W5 ^7 a$ {! W) \$ y% S) D
- ;; edit box to allow the user to select or type a layer name. It returns the6 w) z i4 v4 Z1 A3 K- M" Z0 D; D
- ;; layer name selected. It also has a button to find the status (On, Off,
- f. Q( |4 w; ]+ |' p: c - ;; Frozen, etc.) of any layer selected.- @6 {, H l1 ?' L. z( N( {9 Y
- ;;$ N* c; U* a' k" L! h$ c: X
- (defun getlayer (/ old-idx layname on off frozth linetype)3 g H8 M2 m- X# K
- ;; Create layer list the first time the layer5 ^0 _3 ], [( m7 X# L+ J
- ;; dialogue is called.
) Y; y$ y0 N$ a# ~ y - (if (not lay-idx)
3 J3 O: H/ Z2 e7 }( N U) q - (progn
+ Z8 W: S- z" T$ U - (make_lay_lists)
/ z; \& R: X- r( l9 f1 M - (setq lay-idx (getindex elayer laynmlst))
+ g2 \! h9 I. o% u8 I$ V8 `! F1 D - )- }; a5 q# m; e* ~' i
- )5 A" x/ \ U+ r9 M* r% f3 G: e
- ) l& Y. D8 `7 P
- (if (= (get_tile "error") "")
- b' O' M9 l+ y5 O - (progn* a/ x, C; \3 x. U1 c. v
- (if (not (new_dialog "setlayer" dcl_id)) (exit)). H" u* M! J! V# ]$ t& v; C
- (set_tile "cur_layer" (getvar "clayer"))
0 r4 ]7 O% V6 m - (start_list "list_lay")' E4 E$ `1 {# x% {
- (mapcar 'add_list laynmlst) ; initialize list box
: j; ?( P, P2 [4 |: B, R( B - (end_list) S5 E. L0 \' P4 w. Y
- (setq old-idx lay-idx)) w# c, W( M7 {' T# A
- (laylist_act (itoa lay-idx))1 s. m! R. n2 [5 x
- (action_tile "list_lay" "(laylist_act $value)"); p G" n( Y% ^! N( U
- (action_tile "edit_lay" "(layedit_act $value)")/ s2 `( j u* e
- (action_tile "accept" "(test_ok)")/ D! B* ]! x+ [% M
- (action_tile "cancel" "(reset_lay)")
" z, |% O5 F3 x8 t - (if (= (start_dialog) 1) ; User pressed OK
% k* U9 z4 O, e# R2 |0 v0 Q - (progn
. n' d8 k* y% b( ^0 b4 f! l% L - (set_tile "t_layer" layname), W( h$ ^, w$ ~
- (setq elayer layname)
) ^3 K: v1 F) B: O1 w - ;; If layer equals bylayer reset color tile
6 U' \6 J' L8 d8 Q" P - (if (= ecolor 256)
4 t" W% w9 ^8 f$ i$ {, l4 E - (col_tile "show_image" (bylayer_col) nil)
1 M" O6 Q7 n3 g' S8 i; ?, r! T( T - )
6 z; i/ [+ d) u, ]1 K9 U+ H, k% m8 l - layname& p: s" s0 s- K$ s. x( E w9 z8 B( t
- )
0 C$ c0 n) Z2 s& E7 M5 f3 ] - elayer9 L+ Q! c0 b5 W `
- )' K; Y& u* k# @, _7 {7 z* k$ O' [/ B
- )
9 f+ A4 ?% |$ v, P& {/ e - elayer" w7 H0 i6 p/ l; Z, k# u" C2 [
- )
: Z7 z8 d1 K6 b7 y - ): S9 u' _- A4 _+ N- p h0 {
- ;;; O& V( u5 e& g' c$ ~7 u
- ;; Edit box selections end up here. Convert layer entry to upper case. If3 M: L* A7 v9 c4 E1 ` z+ ~
- ;; layer name is valid, clear error string, call (laylist_act) function./ W( x, K' w U
- ;; Else print error message.
$ m# j. G7 U7 D& w7 g+ J2 r: N - ;;
: N" n) h0 g1 P9 U8 t2 _8 @ - (defun layedit_act (layvalue)# _. q E: l9 d- E/ b9 i! W# X
- (setq layvalue (xstrcase layvalue))
3 S8 ?5 t( s' E4 s! ~ - (if (setq lay-idx (getindex layvalue laynmlst))
6 E- n! M! F7 P. Q: W: T: c( G( K - (progn3 e4 O. E. }) h9 q1 o* m
- (set_tile "error" "")
. _$ { @9 p0 b: o8 }* m2 L - (laylist_act (itoa lay-idx))
0 G4 W: m8 c$ j8 H* y, M6 N - )' H" h7 L: r2 ]1 ^7 U
- (progn: S' F- t- ?- S( E4 R5 a
- (set_tile "error" "Invalid layer name.")
/ Y- P0 t) f: Z, B x3 U5 y - ;; (mode_tile "edit_lay" 2)
+ d8 J, ~! C8 ?' Z6 M" W- @ - ;; (mode_tile "edit_lay" 3)
5 W% T# k' j1 Q1 l - (setq lay-idx old-idx)
) H- c6 d. V* v8 q C1 f& m - )/ Z! L7 A5 l) L9 W' a1 T
- )7 b& s; X. y7 h8 c
- )( b( N: ?2 B% i2 `
- ;;
$ S' }& r3 l0 R5 z% W+ D3 ~; J8 C - ;; List entry selections end up here., v# d1 x8 g% U4 c
- ;;
. Y7 J6 D6 N9 O; R+ E3 O( \ - (defun laylist_act (index / layinfo color dashdata)
" s. U( t' H' k2 w0 L" U - ;; Update the list box, edit box, and color tile.
* |# Z+ X1 @5 P# v j6 [/ I4 b7 w, l: Q - (set_tile "error" "")
: {. v- G5 d6 ^' {. k) E: X% K7 E - (setq lay-idx (atoi index))
$ a" e. V9 N. j8 g/ C! W) N/ Y - (setq layname (nth lay-idx laynmlst))
9 T$ g# g: ^- |1 R1 O - (setq layinfo (tblsearch "layer" layname))
7 j+ ]. T" o( E( s; o1 @- T - (setq color (cdr (assoc 62 layinfo)))
, h6 |2 P: l/ J) y$ R L9 k% R l - (setq color (abs color))
' F8 ?2 B4 ]6 G! Q - (setq colname (colorname color))
v- ]/ g6 k( F" I6 K+ D3 c, U7 \- _4 g - (set_tile "list_lay" (itoa lay-idx))4 A1 ^/ v* o, s2 u+ J: a2 k! w
- (set_tile "edit_lay" layname)5 Y1 ~8 P6 Y- O/ z$ m& j4 U
- )
4 v% S! H& C( Q1 i, v - ;;
( t: c: `. @+ n8 {2 S4 i: I2 s( \ - ;; Reset to original layer when cancel is selected.' k0 A0 I1 {, m4 c1 u8 j2 C4 {3 k& u
- ;;! b: _4 ?- X& ?" S! I7 c
- (defun reset_lay ()6 V# M6 E8 ^$ L; g2 `& i4 y" {
- (setq lay-idx old-idx)* R! L1 s. S. u. S
- (done_dialog 0)
; U$ {) ?7 R8 g8 L" E5 W% I; E - )7 u( m$ {5 ^& J) I# I- a
- ;;( L& J" A4 e. |4 m" a9 p1 t
- ;; Checks validity of thickness from edit box.
7 D/ }( _4 O1 Z z4 E2 H - (defun getthickness (value)
8 ^% A! K7 A8 Z5 b - (setq ethickness (verify_d "eb_thickness" value ethickness))
- r- @7 w9 W b6 r) A5 k - ); P. Z) P: z: I' L g4 u% o3 l
- ;;
% R0 l3 q. i! H3 F$ b - ;; Copy of (getthickness) for ltscale. If more, make this function3 x6 d- A8 h, }3 f l$ ?; v
- ;; generic.
7 h* c& U0 V. P/ c - (defun getltscale (value)
1 _0 U! Y, E0 v I0 x - (setq eltscale (verify_d "eb_ltscale" value eltscale)), @. e$ a+ V9 }3 Y
- )
9 j; `! j+ x) T% r" C - ;;* N1 {, g3 X/ B' A
- ;; This function makes a list called laynmlst which consists of all the layer q5 U: a" Q z. V0 V2 {7 ~' N+ K/ M
- ;; names in the drawing. It also creates a list called longlist which2 h+ a# B* [) d b3 P( D2 S
- ;; consists of strings which contain the layer name, color, linetype, etc.
( A! ~) ~# F! X; i# S; M - ;; Longlist is later mapped into the layer listbox. Both are ordered the
, e3 ]4 n) F* l0 f$ P - ;; same.
/ N6 l# p% m0 r( H' \ E! U4 L - ;;
) M/ o( C8 ` P3 _" Y2 p - (defun make_lay_lists (/ layname sortlist name templist layer_number)
% I3 R8 ~1 K/ j& X! n. Z5 F1 {; | - (setq sortlist nil)
' S" [7 V$ b* D - (setq templist (tblnext "LAYER" T))
* A% a/ K1 ]: Y - (setq layer_number 1)0 u* P9 e g- \7 J% _6 Q7 c- `
- (while templist9 E0 ?# H+ c& w$ | i; Z
- ;; No xref dependent layers, please.
' y' x$ |4 w* U4 O( D* F! u - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
5 e; A: B9 a/ I" E - (progn& I5 [1 N% `5 e. }& h
- (setq name (cdr (assoc 2 templist)))7 @( ?8 x' A4 m
- (setq sortlist (cons name sortlist)). e( L, |% g, J# q P* q
- )
3 g' M# Y: A" L - )/ T o$ v% ]& x/ N4 N M
- ; Get the next layer.
& S! R5 d+ W/ o, ?) z0 A9 Q, g - (setq templist (tblnext "LAYER"))
+ y3 q% Q0 w W) z' V7 u - ;; Not dead message...: q6 z3 F: Q }2 R7 w
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0))): c3 ]* |- J5 n, E
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))6 X3 |7 b5 _) d2 f3 `
- )
% D& p9 m( v5 u1 U( ^1 G2 _ - (setq layer_number (1+ layer_number))+ P+ Y: _/ X6 b) J- d1 f
- )" W9 k* M+ Z6 s5 z6 B
- (set_tile "error" "")
1 r, C U/ a$ E- f- s9 R( z - (if (>= (getvar "maxsort") (length sortlist))
0 s: Y# _' k0 H. a - (progn3 [4 r% p) U- P7 Z8 _9 {3 E; J" B
- (if (> layer_number 50)
9 K! O2 u& Q( p- e% F7 j - (set_tile "error" "Sorting...")
# L( L" ~" d/ H3 N. Y - )2 R* ]% R5 T5 ?- v6 i* x+ G- E6 B
- (setq sortlist (acad_strlsort sortlist))
1 h, v: l$ A, @: l# C7 p" M - )4 J3 A4 g: ]5 w6 V8 s M
- (setq sortlist (reverse sortlist))6 w) Q, E6 S: O# v9 G: ~5 g
- )
7 M1 j: I/ }5 H - (set_tile "error" "")
0 `- f0 j2 [5 D) p - (setq laynmlst sortlist)
( z& x3 [( G9 O0 {% c0 | - )
& n( S! r+ I6 F7 |0 w8 k- k. t - ;;
1 r' [6 g/ R: ]* O8 _ - ;; This function makes 2 list - ltnmlst & mdashlist.
$ c. |( s3 f- F, p, D9 q8 t1 m - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist) M8 U( `; b9 H1 p$ t3 ^
- ;; is list consisting of lists which define the linetype pattern - numbers- ]7 m, Z0 X3 g& x* \
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list
5 J' h8 S1 q' X. x, P2 k5 V! T - ;; corresponds to the order of names in ltnmlst.0 \8 R" s1 t% a% F" p0 m, d
- ;;- }' Y8 e% p# _& }
- (defun make_lt_lists (/ ltlist ltname)
% t Z/ j: t+ L* Q( Y! p. |. X - (setq mdashlist nil)& s/ l5 n$ } }
- (setq sortlist nil)0 K! X( j5 Z4 j& t6 P$ t; h5 ^
- (setq ltype_number 1)
1 Q+ K6 e' X4 W9 h/ `9 x - (setq ltlist (tblnext "LTYPE" T)). w0 @2 |3 u' {% ~! _
- ;;(setq ltname (cdr (assoc 2 ltlist)))
; `1 s' P% h# u8 f" u. F' b" ?7 N - ;;(setq ltnmlst (list ltname))
7 d$ n+ q. O8 Z: P9 f - (while ltlist
M4 r& |/ N0 N3 y/ a m( i9 k - ;; No xref dependent linetypes, please.: W; F2 Z8 M5 i# J
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)# k! h% F6 D% X3 O( i5 w, L
- (progn
P! q5 L7 n" B5 o6 w! C - (setq ltname (cdr (assoc 2 ltlist)))
0 D" c/ m) X4 o, ~& r4 { - (setq sortlist (cons ltname sortlist))3 A( G5 P, y. n$ a. l: u% z
- )
U6 I, v* Y+ h; r% B - )
' z& J; s; @' |$ l. \ P3 Q: S - ;; Get the next linetype.
+ w- i& m: o2 b2 X5 L - (setq ltlist (tblnext "LTYPE"))
- ~! J2 N2 z, Y1 `9 z8 E" ^+ F
" _/ B, R% P# r2 J- ;; Not dead message...
) |* {+ M" o9 P7 p; v% T - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
6 q# Y8 H' }0 w - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
/ a- ~; o8 r6 Z, |" P1 t' z. N - )
+ d6 t6 E2 v0 b6 m% n - (setq ltype_number (1+ ltype_number)) \5 X5 A y$ t4 O( o$ S6 y( p: M6 ?( {
- / R0 Y- ^2 q" N8 I5 ^. i. U% u+ ?' o
- )& X1 v; _ Q: M" v
) ], z: n" D B, X% u0 Z- ;; Remove Collecting message.
- I1 q9 R( M4 O! z* t - (set_tile "error" "")( l- V. `7 u/ r% {$ J
- ! ?) N, ^, m2 F+ W, a9 y. G
- ;; Sort based on maxsort.
4 a7 D: c" H' L- c# h6 y - (if (>= (getvar "maxsort") (length sortlist))" {- v3 I( A; b$ N; c
- (progn+ y5 z9 P7 h, s7 S
- (if (> ltype_number 50)1 `6 G: o; L) w7 B/ E) p
- (set_tile "error" "Sorting...")# E4 T0 E! `7 ^+ f% O
- )
B. }7 N+ i* m1 V - (setq sortlist (acad_strlsort sortlist))
t: K2 w$ J; g' C1 p - )
, C Z0 B: h7 H) R - (setq sortlist (reverse sortlist))
2 O1 I# F$ i7 h - )
/ M& ?+ q7 V. P. l, w9 K - (set_tile "error" "")
$ T7 ^$ ?! `3 ^- K5 ~ - (setq ltnmlst sortlist)
% F: h& \1 r+ j- _) S ?9 u9 L, {
/ H* p$ Q F6 H' R2 d* u/ E- (foreach ltname ltnmlst
1 P; _$ n9 R0 q1 [" E - (setq ltlist (tblsearch "LTYPE" ltname))
' t% u z, @8 {; s# _0 O4 r - (if (= ltname "CONTINUOUS")
0 J6 n8 i- y1 c. w" s- D+ R - (setq mdashlist (append mdashlist (list "CONT")))
7 F) O. J e" H- k8 @9 U - (setq mdashlist- E: Z$ H* \# X
- (append mdashlist (list (add_mdash ltlist)))8 U& E, r7 U6 x2 \( {" J( m
- )/ K( _+ k$ g* b6 k* d; T
- )
. q# q t/ @$ k9 Q( A+ Y# a- X - )+ r! i! E6 P/ T- M/ G- ?0 |
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
# y4 c! g% U. l! r9 o6 P; w/ J - (setq mdashlist (cons nil mdashlist))
9 B. {' o. B2 H& I" @/ j - (setq ltnmlst (cons "BYLAYER" ltnmlst))
+ q! V6 J, m1 `8 A. e - (setq mdashlist (cons nil mdashlist))# { ^, G: k$ R; x% w O
- )9 g6 ]- s6 K, w
- ;;
2 h3 P9 ?$ a' e$ z, [) ~6 | - ;; Get all the group code 49 values for a linetype and put them in a list
$ c2 l& T# R% s3 w - ;; (pen-up, pen-down info).
5 K9 @; f" x; R5 J0 o+ V" w$ I - ;;; i5 t! y( t6 W3 q% M6 e- R
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)( b$ k: i/ H6 G ]& c! Z
- (setq dashlist nil)0 T% w0 y) q0 y3 x7 W4 ]8 J+ [" v2 l
- (while (setq assoclist (car ltlist1))* l$ o& s0 X3 o, M* [& e$ x3 e/ \ I
- (if (= (car assoclist) 49)
3 h% |$ n" G0 ~, j" y - (progn/ f' D) V* B5 a# S. l7 U
- (setq dashsize (cdr assoclist))$ L% E6 d% C0 ~8 r6 o1 b
- (setq dashlist (cons dashsize dashlist))% ?+ @" l9 y# o! D4 s$ ~# g2 b
- )
6 ^/ ]6 L/ l# q. ]; ^ K - )
- B i& @$ W0 K - (setq ltlist1 (cdr ltlist1))- b) V/ K+ E! Q( v# z+ [
- )5 k" u4 Z& r3 M; h+ u
- (setq dashlist (reverse dashlist))
1 Z- P& x, S3 T" m - )
' E2 v4 z4 |5 ^6 r - ;;
; Y7 z$ r, c; g9 J1 [1 U - ;; Color a tile, draw linetype, and draw a border around it0 |0 f- b" g0 M1 \
- ;;
; p& z" H; ]+ t0 G# z - (defun col_tile (tile color patlist / x y)
+ s/ W$ ]8 F3 E7 g# e - (setq x (dimx_tile tile))
`; r& i& h8 ~ - (setq y (dimy_tile tile))/ [7 t! F: k. I6 K5 S
- (start_image tile), K5 s, P& z7 p X3 H
- (fill_image 0 0 x y color)5 b# i3 ?/ ]* Y# `9 N4 G
- (if (= color 7)
: p6 v" O5 S" C, z% }: f - (progn6 P: x; ^3 P. j, l4 ~* e5 s/ g
- (if patlist (drawpattern x (/ y 2) patlist 0))
. T5 Z+ B4 s1 g - (tile_rect 0 0 x y 0)
, ` c# j9 X$ z# \6 Z - )
: } j$ w X& i. d3 p" E# H - (progn; [6 ]' @+ c( d5 \1 o! D
- (if patlist (drawpattern x (/ y 2) patlist 7))
! D$ `' \4 v, K, H- l/ o - (tile_rect 0 0 x y 7), T' O: J) E$ s4 r: s3 e4 M2 O
- )- E" J |) A% v3 d% E. `# c9 c
- )
d% V( N) ^1 ^) n# A/ G- f - (end_image)
+ {. H( p* P% d/ K! D - )# ]7 F2 p6 D0 E j
- ;;
/ w. K8 f( X$ g' ^5 L' Z$ ~8 c - ;; Draw a border around a tile
" B9 P7 P) N# e" o - ;;& G9 R9 t2 K% P, r8 g: s s1 T$ n1 r
- (defun tile_rect (x1 y1 x2 y2 color)
6 q6 w9 X2 e: Y5 b - (setq x2 (- x2 1))' K5 j/ f$ s% }3 |
- (setq y2 (- y2 1))
/ \- w! A7 Q; W9 ~ v# U - (vector_image x1 y1 x2 y1 color)* W. Y6 h, Q! w( ?. d' o; K
- (vector_image x2 y1 x2 y2 color)
0 Y6 w1 ?* K3 u% [4 B5 l - (vector_image x2 y2 x1 y2 color)5 Z: S! X" h. ?& M- [: ^% @+ v
- (vector_image x1 y2 x1 y1 color)
. C8 Z1 d) B) c# x S$ z9 N - )1 F# j' K: F8 B
- ;;7 x9 ~6 |, C5 S
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
! L0 n2 D2 e3 _9 }, z% N" @0 T - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a$ l( q! }; s- z7 E2 O
- ;; list of numbers that define the linetype, and color is the color of the
! `! Q+ }7 P/ o- G, N, H - ;; tile.) I+ M/ x& {/ V
- ;;7 d# ?- T6 x3 I( I
- (defun drawpattern (boxlength y2 pattern color / x1 x2! t+ C, K1 U6 U% z
- patlist dash)3 e1 F0 w( E# c. k; @: I
- (setq x1 0 x2 0)
5 h4 B6 y2 X4 N6 Y( P) b - (setq patlist pattern); C+ Y9 v2 e6 X/ D1 X1 k+ S" Q
- (setq fx 30)1 |9 f! f% W O
- (if (= patlist "CONT")+ Z6 V7 J: F: X& R6 O
- (progn (setq dash boxlength)
9 H7 p2 w5 l9 ~ H0 n3 k: K u - (vi)- X* J3 u$ K7 Z# r% g! n/ J+ C
- (setq x1 boxlength)
& S; a7 j! l+ X# d. P- | - )6 }: \4 V6 S8 k+ i5 n6 G8 k8 s
- (foreach dash patlist/ E H! T1 M. M
- (if (> (abs dash) 2.5)
@$ O/ e3 `( A$ p - (setq fx 2), X* q( ]! I7 Q X
- )! |/ Y0 Q% W6 x l9 P8 {: Y
- )2 c" v" [' @4 G8 a1 ^
- )
+ S9 H! `4 S( s0 J! [- O0 } - (while (< x1 boxlength)8 |$ H5 Y% Z$ J" r3 C
- (if (setq dash (car patlist))+ N7 }" ?; f6 i
- (progn
, \& ]6 D, }! }" w - (setq dash (fix (* fx dash)))
3 m# I: Q: \8 f5 _- v1 Z - (cond
# b! k/ q& o5 e: Q( X& u - ((= dash 0) (setq dash 1) (vi))
7 B% u; L3 L' i! i, g: q: u - ((> dash 0) (vi))8 i& I0 }7 y$ ^
- (T
7 ~3 T; B9 H; h, o, K8 T - (if (< (abs dash) 2)
4 b" {. Q% i3 W0 |1 [: h$ k9 o - (setq dash 2)/ v7 V7 w1 F3 V. K0 y9 D
- )
) _0 } T0 G4 Z8 z% O0 H - (setq x2 (+ x2 (abs dash)))% t- E) R" ^; j# z: U; F8 g
- )
9 f! h0 e5 {2 z* i! [- r; j; o+ H - )
, F6 N% e- q' g5 {' X: Z+ t( b5 e3 a - (setq patlist (cdr patlist))' m- C' |- a9 ]! x' M) h" r
- (setq x1 x2)7 t' k/ g) y# l- J: O
- )0 B9 T& V- J$ ]: J9 E
- (setq patlist pattern)" t. z1 Y& Y* O. G4 v% M0 S
- )% g+ _, M5 A1 F9 M; U+ M
- )
r& s! D: v- s' z0 S - )" P! e( K( y# `( @) X7 g6 f r
- ;;- E. h7 I# y9 b/ M( q
- ;; Determain state of xclip
- j, R- D/ t6 k) `/ f$ L5 z! ] - ;; Returns the group 71 value of the spacial filter dictionary.
' r) [: E$ z( _2 o - ;; If the entity doesn't have a spacial filter dictionary, this+ c8 [: W% m& a5 n1 {
- ;; returns 0. If it does it will return 0 or 1 depending on the
0 F _9 N! a( Z - ;; current setting of the state of the clipping visibility.$ Z/ v k9 q; P) b8 \, O
- ;;- I+ J, q: A' U4 k0 B) I
- (defun xclipon(elist)
8 S, ^/ x3 V, M+ p" I3 n - (setq hasclip T)/ q: _6 @4 z* g3 B, l
- (if (/= (assoc 360 elist) nil)
u' a3 E6 _) [. U; o - (progn
. @+ U# b4 g3 `5 z& L/ v - (setq tmp (entget(cdr(assoc 360 elist))))
0 M/ `/ ^6 I* C5 o) x - (if (/= nil (assoc 360 tmp))
" m' z2 | H% {" r; z+ u: F - (progn
* o7 l7 }: p, X/ p6 i - (setq tmp (entget(cdr(assoc 360 tmp))))0 U7 r! ~1 V, H: q. `
- (if (/= nil (assoc 360 tmp))/ d2 a8 d: _$ ^
- (progn+ h8 H' N9 r7 A8 f: C' [
- (setq tmp (entget(cdr(assoc 360 tmp))))
/ f* r% O# q" J: p' j8 s - (if (/= nil (assoc 71 tmp))/ G' C6 G) J4 l# D- t. K" B
- (cdr(assoc 71 tmp))
' s: ~3 Z/ O6 |8 s - (progn ( |3 O p5 h: ?" ~& u2 K; v4 Z
- (setq hasclip nil)
& c4 }3 V& A/ L - (eval 0)7 k/ v( f7 z' z' K; Z1 C, V
- )- s# t* B. k9 @
- )
: ^$ m: H* t9 ~ - )) }5 a+ V0 M7 T& p" i
- (progn 4 c: n, U- r. T3 d5 l- \
- (setq hasclip nil)3 ?9 @ L. j: A! {& T7 @& K
- (eval 0)- H! W9 z9 @7 Z4 k5 f8 z
- )
; f( U+ N* G5 [$ n: t - )) l- n7 D* _3 @# ?
- )
, ~" @ G) N6 L1 p& _* I4 C6 Z - (progn * i8 [1 _9 h0 E7 K" A8 H
- (setq hasclip nil)
2 Q3 m4 s5 T# B* E V6 O5 V) { - (eval 0) L! R7 u! w- f" f- R& o/ c
- )- N$ w$ L3 _: h$ z8 G& s# n( S/ p
- )
# S% X* L$ o6 j- a - )' i( }$ o' h$ g+ `
- (progn
/ l6 I5 O% A% b" A - (setq hasclip nil)
9 |5 m9 h: P: i1 B, m- r - (eval 0)' L9 \( F2 L: x8 N8 E$ a& @/ m
- )( W' k. Z2 b& `, D( X A
- )
; q1 W; V* b+ g5 D: O - )' S- T6 {2 q7 W! N) T
- ;;
: [: Z, x6 A+ [/ D$ M% L: _3 \8 |) Y - ;; Draw a dash or dot in image tile. C" ]4 x0 L0 x3 S! y
- ;;9 y) ]& B! h. a- u) j. s
- (defun vi ()
6 e$ B7 Z3 j3 k8 M - (setq x2 (+ x2 dash))2 E% v! T+ B& y3 g2 f/ G
- (vector_image x1 y2 x2 y2 color)/ P1 v& ^, a+ `! q
- )3 N( M, [; z( A' T
- ;;
% X, }8 u) w0 C+ K" T. l" I - ;; If an item is a member of the list, then return its index number, else1 m! Z* g* L! B5 N( k. w6 V; x
- ;; return nil.4 T n; \) ~" h7 Y# F K q9 k
- ;;! z$ ~/ { n" f. V4 w r( U. f
- (defun getindex (item itemlist / m n)$ G; h# }+ H, m/ A h" d1 j
- (setq n (length itemlist))% U* s6 J5 A8 M7 B8 i
- (if (> (setq m (length (member item itemlist))) 0)
* l& k* T) n+ j' K" H - (- n m)3 G) x R- o, X
- nil' y) _+ k' F1 {
- )1 c# Y( D. g4 k
- )6 D% {$ U3 Z; D+ {7 `* g1 }
- ;;
, K( D" q$ x" f; s% p, d - ;; This function is called if the linetype is set "BYLAYER". It finds the
0 |7 Q% s* U+ \6 l( q5 @' m; `& E' _: A - ;; ltype of the layer so it can be displayed beside the linetype button.% k7 ~% W$ E! ]$ ?) W; M, B
- ;;/ y% I$ G3 W7 ^. q4 `! k
- (defun bylayer_lt (/ layname layinfo ltype)
. P' `, T; ^* f# }5 d- r& I1 S - (if lay-idx- x1 X9 Y" \, l6 P
- (progn
0 _- I J/ ]4 h, [ - (setq layname (nth lay-idx laynmlst))! H# ?! v+ r9 z* K' Z' I
- (setq layinfo (tblsearch "layer" layname))8 r. \4 V/ a, p# f, j# g1 q5 }
- (setq ltype (cdr (assoc 6 layinfo)))
2 T, V; R Z8 i0 n$ ]6 ]- p9 x - "BYLAYER"$ O' L. Z7 ^+ J
- )( x; O) D% L! } t w) |5 L- ?- N& C
- "BYLAYER"
' J9 o0 ?0 ^# t1 } J- q - )& M9 ^& @0 E0 i7 N
- )
2 z: @* J& t0 {" m# y3 w+ l* ] - ;;
$ r$ a' M: s4 K: t) V& d: M - ;; This function is called if the color is set "BYLAYER". It finds the color0 ~# V8 P8 X( {; [
- ;; of the layer so it can be displayed beside the color button.' d- Q; k1 V2 w, [5 t- l0 J0 W3 u/ I
- ;;* L1 A! `/ T# B7 c( v: q
- (defun bylayer_col (/ layname layinfo color)
s3 @- M4 r: R. d0 w3 U - (setq layinfo (tblsearch "layer" elayer))+ u( U: J& _1 s+ f. f# ?$ X
- (setq color (abs (cdr (assoc 62 layinfo)))) n- P; O$ t8 y, g; U. V9 E
- )
$ d- W# n8 I) b( l; r - ;;8 |# `5 i1 ]' J( `; P2 S+ a6 ~
- ;; Used to set the color name in layer subdialogue.
# L" @# E' s2 m9 P; ?3 I7 v - ;;
' z% ], H( q7 v4 w' k; W; s - (defun colorname (colnum / cn)6 ]7 W- C# Z! ~
- (setq cn (abs colnum))
: K" M0 b- \1 t6 \) |( [( D' m4 k - (cond ((= cn 1) "red")3 a' \, {1 |3 d+ P0 j0 {. N
- ((= cn 2) "yellow")& C8 I; M( x0 O, A. }( c9 k
- ((= cn 3) "green")( b+ V$ I/ \1 l4 A' E
- ((= cn 4) "cyan")
2 V/ `2 L8 C( o' y5 l/ y) z1 T; a - ((= cn 5) "blue")4 S4 L9 q- ]; P( R
- ((= cn 6) "magenta")
- Y* g3 Y4 u' H" I- e - ((= cn 7) "white")
( U: a+ M$ ?& F2 G - (T (itoa cn))3 X' F% F# h6 d4 V2 u! M
- )6 S+ i, r% p4 q& e
- )
2 b# u) K- H" p2 ?9 L; F - ;;
( v6 f7 p" B) k7 J' B% u1 e L - ;; If their is no error message, then close the dialogue.- r& f# x0 h3 R0 H" s }' z
- ;;" T0 _3 I* |$ f* q* U; \
- (defun dismiss_dialog (action)% ?: e4 C/ b* G/ U0 C# Z
- (if (= action 0). S- n1 ^' A2 Z
- (done_dialog 0)
n$ M) f& G1 t# ~# K( a( E - (if (= (get_tile "error") "")* W0 |" `1 g$ ]; T3 A
- (done_dialog action)
! E( d& g2 n y0 _( {1 a# G9 \, j( k0 z - )( b! x3 y3 I7 |3 I
- )5 x) M6 ^( J/ @
- )6 h% M6 q8 q# C8 m# M m
- 5 D( Q, @" O3 s2 p, }
- (defun test_ok ()
, S1 g3 A, t! k5 _9 v - (if (= (get_tile "error") "")
) U) T$ ~& t: y* X" m* ]7 B( ~ - (done_dialog 1)
) [1 n, H; Z9 W; b1 G8 y4 X7 ] - )) ?! U6 L$ Y7 I# @: r5 X" A4 {
- )
7 V" t e! |9 V9 w% D
2 A8 e. q; J/ K; T! q" v( r5 z- (defun cancel ()- x* h8 e" J% b% O+ j, J& ]* D
- (done_dialog 0)1 u- k) J4 Z* U" k8 z- x9 ?+ M
- )' U8 ]$ J8 r/ j' f+ M) q- d6 F
- " Q2 d$ ]5 n6 J' |% O, B* A. |
- ;;; =======================================================================
' I# \; m% `; w- H; y1 X. [- X: D G. \5 q - ;;; SETUP layer and linetype lists for application, and initialize all3 z; I; r7 O+ E9 ?7 S* ]& z
- ;;; program variables.
& F4 V: a9 X2 x8 R! j" E - . m8 w* u) H0 b2 U3 S
- (setq elist (entget ename): }! T. L# `% W m( _* a
- old-elist elist
$ p/ J8 \" `: w( {/ t* x - modlist elist
5 K( K I) R0 h& j# r - etype (strcase (cdr (assoc 0 elist)))
: Z! k% p! S# R" h4 c/ ^ - ecolor (cdr (assoc 62 elist))- u4 e" G$ Y y) |+ o* D$ L
- elayer (cdr (assoc 8 elist))3 B. i7 ~7 ?4 [- [
- eltscale (cdr (assoc 48 elist))) y) ]4 u9 U! [ r, q
- ethickness (cdr (assoc 39 elist))
, i; {7 A6 g8 n' f - eltype (cdr (assoc 6 elist))3 t: o" e' R6 E7 F( [7 X
- )
: x* G# d! s8 c$ c - (if (= (assoc 210 elist) nil)# K$ v; d% _: }* U, P" k8 e
- (setq extru (list 0.0 0.0 1.0))/ @) w; Q S: z( w; U# `
- (setq extru (cdr (assoc 210 elist)))3 E. E9 z: B/ C# f
- )
4 b0 ~. u) ?. s! T3 T
$ H, z( r2 Y' M, _# x6 F- (if (not ecolor) (setq ecolor 256))
( M0 V3 _6 _4 i* q% a - (if (not eltype) (setq eltype "BYLAYER"))
2 T J P, P7 y& C+ C& {' [! L - (if (not ethickness) (setq ethickness 0))
7 f2 ]9 N) h$ j: g, x. n" h* L - (if (not eltscale) (setq eltscale 1))5 N6 k2 J- l( _4 {4 |; p5 @; ~
- ) ; end ddmodify_init
# m% F" B$ K! q: J7 D: S, X V
5 n, M- x4 N1 j- ;;; --------------------------------------------------------------------------: }7 f: _9 d2 h0 a3 r/ i
- ;;; Function: DDMODIFY_SELECT
: {' @& h: T) Q) b1 l4 p4 Z - ;;;3 m: J8 C8 ^% P* q; m3 d H$ o
- ;;; Object aquisition function.
+ o" W5 B3 _6 k+ P* l1 H% K* ^ U - ;;;
4 Z" }9 o; x+ S. B7 w5 L8 W, t- @3 H/ v - ;;; (ddmodify_select)
# c- z5 i) d& F: } - ;;;& H4 E. J Y( G" Q
- ;;; Obtains object to be modified, in one of three ways:0 q- T" y6 n ~- M
- ;;;1 q4 L4 Z. }% b, W- S
- ;;; 1 - Autoselected.
; ^0 X( n; @6 T - ;;; 2 - Prompted for.( K) w& h: z' s* a: f# a% L6 O
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )) q1 G |0 m G7 J
- ;;;4 W: G) ?: n* y; \& M: M. j
- ;;; The (ddmodify_select) function also sets the value of the
) t6 c. H7 ^1 s9 c* @8 W% D - ;;; global symbol AI_SELTYPE to one of the above three values to" ?9 r' W$ e" u& }# Y* ?
- ;;; indicate the method thru which the object was aquired.! O/ y1 o( {7 e
- ;;;; [9 d) c* H- R$ A
- ;;; This value can be useful to applications that want to RESTORE/ [- l( p7 R) d# _2 L
- ;;; an object that was autoselected to its previous selected state; s& {7 N' g$ Z, |+ _! b$ a$ [2 m
- ;;; when they terminate, although there doesn't appear to be any
8 m- I/ O3 o) H7 ~ - ;;; way to do this right now.
" V. {3 W. m, z B, w - ; h2 k, {# z7 F' K7 K& Q
- (defun ddmodify_select ()
1 L' p8 n5 o9 V8 E9 _4 O - (cond3 Y7 H+ d E7 m
- ( ename ; (ddmodify) was called
( G1 f" u& }2 A$ x/ S3 M6 _* T - (cond ; with an <ename> argument
: G5 z) T+ x0 H, e% R- P3 ^& p - ( (entget ename) ; If object is non-deleted# w8 u7 l' f" R% R) P$ K
- (setq ai_seltype 3) ; then return its ename.
+ F+ V6 Z5 p& S9 } - (ai_return ename))))
- i j* z R) r3 O- ?+ u0 ~, o" V - @! v3 ^ [- |8 p* l/ Q) f$ U
- ;; return auto-selected , see ai_utils.lsp4 p( b9 F7 Y' W/ j; L X; y. X# N
- ( (ai_autossget1 "\nSelect one object to modify: "))5 o. ~: Z Q% |# }/ L
3 z) {( W; t: W; v. h- (t (princ "\nNothing selected.")
) _2 ^8 I5 h/ n - (ai_return nil))/ B8 i/ B, V9 g+ @' r: w/ N
- )1 q) _3 Q" ?9 o
- )
8 i' ^( ~+ L) k8 T0 P/ h% U - ) `) `* h K) b. Q4 Q9 P
- ;;; ============= Command line interface function =======================8 `+ X+ z4 R3 \& v3 O$ }8 t, t6 ~
" _( E+ m6 L3 W0 F" o( U B9 c Q) T) Z- (defun C:MMO ()7 l& s( Q# d# X* Y7 [! i
- (ddmodify nil)% u7 A7 m! _, C4 B) C# @
- (princ)" D3 ?9 W) j* c \
- )
# J6 Q8 @% a: d H
6 D! g* d- ^3 @% c1 F6 f2 L- ;;; ================== (ddmodify) - Main program ========================- \) @/ L$ X5 X8 _3 d; I9 L
- ;;;
9 ]( `" C4 j4 B# Q/ H! b( X - ;;; (ddmodify <ename> )
# d# P/ o6 H7 j* h, O - ;;;
/ u7 `( G6 }$ S: b2 w" r - ;;; Main program function, callable as a subroutine.
: i6 e8 G* J2 p) E- j - ;;;- u' o+ n9 x, b) R
- ;;; <ename> = object name of the object to modify.5 v$ |+ r8 a& x1 X; E6 f3 F; @
- ;;;
, j" W/ s7 T, g$ _& ]: @ - ;;; If <ename> is nil, then user is prompted to select7 A3 W y; {5 ~+ t/ ^0 N( c8 f' A
- ;;; the object interactively.7 ~3 N1 \; ^3 U8 A3 A
- ;;;
7 b+ A- s7 T' y8 Y A) G& {6 u8 C - ;;; Before (ddmodify) can be called as a subroutine, it must
' @" ]5 _+ m4 f, _" w+ { N% ]4 d - ;;; be loaded first. It is up to the calling application to1 f) P7 }; r2 k6 D
- ;;; first determine this, and load it if necessary.7 H( I* v+ i' g8 ^: J Z
- e$ T# v: x% E) p2 W% E5 Q8 i- / S1 b* @1 U' N h/ Y
- (defun ddmodify (ename /
5 n* m# j: K$ m+ i3 N* r! U) K8 R - 2ndpt ell_calc_area move_pt1 templist# Y$ O( I. b4 G
- add_mdash ell_tile n tempmod
' C- H+ K- ^* B" B& f- {5 t' ] - alipt eltscale name tempst_ang, L- k3 {; m7 ~
- ang eltype newpoint test_ok
9 k2 h, g* f9 f8 \! t. P - arc_calc emod next text0 j! _4 o, o3 `9 ~# B
- arclen end_ang next_vertex th-value# f- e( F- Z7 s# u) G) W% @
- assoclist endpt obl tile' B5 M9 v/ U. p p i3 }0 m q7 e
- atprompt errchk off tile_rect4 U f- o. z; S5 D
- attag ethickness old_majrad tilemode
! B4 A1 s+ t9 \7 T7 n" S' S( w! w - attprompt etype old-closed totang
/ ]0 M, k" e! ?/ t/ ^/ M - bit extru old-closedm tstyle% @: u- } @3 j5 F( h, j! i+ T' z
- bit1 fchk old-closedn u
8 t) v! b* y0 c - bit-10 first-10-rec old-elist undo_init' m, i: O( {4 a
- bit-11 first-10-time olderr upsd
# { V9 B! m9 ~' k" M: A+ ]* P - bit2 first-11-rec old-fit v
0 I8 n' Q4 ^0 ?/ F* X- g - bit3 first-11-time old-idx va
& G9 ~4 L" V5 R! u - bit4 fit oldlist value4 H' c5 q4 R- g
- bit70 frozth old-spltype ver_47 K) m+ I# o; s
- bit-70 f-vis old-u ver_ang1
; ] p+ [3 s/ f: T( i% L Z! { - bit75 fx old-v ver_ang2 j& R8 F3 Y' c+ s9 C
- bk-up get_color on ver_col: ~" n }( @# X/ T4 p7 m* G& O
- bkwd getcolor onoff ver_colsp# k6 N: p% P9 N) y1 [
- boxlength getindex on-off ver_eangle
9 e5 |: n( a- ~) c8 X" ^) T8 A: H+ f - bylayer_col getlayer patlist ver_hght$ S* z, R4 l# R- O; b" ?9 w
- bylayer_lt getltype pattern ver_majrad
: d) E; M: D5 `2 Z0 C - calc getthickness pltype ver_obl: J2 _, k7 ^7 C) w) H4 B/ b
- cancel globals polytype ver_pt11 i! o( X5 d& B6 K# B
- cir_calc ha pre ver_pt2
3 L2 b% n# `( m - closed ha-prev proplist ver_pt3
" k& D4 R. p, h) g1 O8 G7 |) c - closedm help_entry pt ver_pt4) [" c! i3 n# L3 J* p. K) s6 s+ E$ U' e
- closedn hght pt1 ver_rad
0 S% U; Y# c5 M( b. n3 ^1 ? - cmd icvp pt1_eq_pt2 ver_rot* I! @7 s9 h% J* H1 w5 V& Q
- cn image_add_vector pt2 ver_row( v. p" u9 T" L% n" P
- cname image_clean_variables pt3 ver_rowsp/ G7 E* s, K% k3 `, |
- cntl-pt-indicator image_cross_product pt4 ver_tag2 d# I' ~ t: J' J
- code_71 image_disp_opt ptype ver_u2 i3 H6 q- Q! r0 T9 x
- col_tile image_dot_product radius ver_v
* l* @; e' t( }5 r% P( v - col-idx image_normalize_vector rational_spl_flag ver_wid- q' s; j8 K% y1 o$ A. P
- colname image_rotate_vector reset ver_x1
4 C7 {5 X# J1 l' d - colnmlst image_scale reset_flag ver_x2
6 p# C7 [0 {9 K* f - colnolst image_scale_vector reset_lay ver_x3
7 ^% ?% i0 J7 X# p; } - colnum image_update reset_lt ver_x4
H$ L! M6 f- _2 f, B - color index reset_uv ver_xline_pt1
! @; F3 s0 R) z8 \, H0 _ - colorname inv rot ver_xline_pt2; E( J6 M, B$ I" ~8 ?
- colorno item rows ver_xline_x1
$ Z+ ]4 O0 J- X3 A5 J* r0 X V - col-sp item1 row-sp ver_xline_x2
& b- ^/ R* m9 Q& Y- Q - columns item2 rrat ver_xline_y1: L8 U2 Y7 {: o; B# L+ ~) T8 j
- con itemlist s ver_xline_y2
4 Y7 T) j( y* a - coord jlist set_action_tiles ver_xline_z1) |4 K8 e1 n( F3 t/ N
- ctr jlist_act set_just_idx ver_xline_z2
8 O/ O" R) y+ s: n3 E# c" s - cur-10-rec just-idx set_tile_bk-up ver_xscl
/ @8 M! d8 ^3 p r2 X" K - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
4 Z- {( }( n5 y# U) V6 ^ - cvpname lay-idx set_tile_data_pt ver_y2
" O" ~' s: G [+ o4 d/ s+ ]+ y* C - dash layinfo set_tile_dirv ver_y3
/ _8 ^1 |5 K( y$ Q/ v - dashdata laylist set_tile_edges ver_y41 }3 f' G$ N5 [5 H! q) J, v
- dashlist laylist_act set_tile_endang ver_yscl- V9 ~. j8 c _( I9 V* D+ b) O
- dashsize layname set_tile_hght ver_z1
3 ^) q3 J8 z1 B4 Y q" m - data-pt-indicator laynmlst set_tile_icvp ver_z22 u4 G% P" `1 R: A' c& o& t- k: Q
- dcl_id layvalue set_tile_just ver_z3
/ R$ y' y4 W7 f/ j! C - dd3dface line_calc set_tile_obl ver_zscl! X8 W) E- y4 L4 u8 J
- dd3dsolid linetype set_tile_prompt verify_a
9 A& D: K0 X3 j, ^4 z6 a - ddarc list1 set_tile_props verify_d+ e. _* p `; e2 ]& M+ [
- ddblock longlist set_tile_pt1 verify_i/ Q# p9 _2 G4 v, u% \. N) _
- ddbody ltabstr set_tile_pt2 verify_xline* M2 b* \5 [$ a$ d; o$ P
- ddcircle ltedit_act set_tile_pt3 vfy
. {* E, c' m, c5 j9 M$ R - ddellipse ltidx set_tile_pt4 vi
, ^$ Q* R% k7 W3 p - ddgetprompt lt-idx set_tile_rad vlist; K O& s5 O, t/ G
- ddgettext ltlist set_tile_rc vname' \" k- n }0 G# l) J
- ddimage ltlist_act set_tile_rot vpf
* V7 ~: P& f/ o1 \ - ddimen ltlist1 set_tile_scale vpid
]( e' N5 e0 |. C+ H - ddleader ltname set_tile_spline_props vpldata9 R9 S8 a' k' H& c
- ddline ltnmlst set_tile_stang vpn
6 G# H9 C! \$ S& S8 R0 o - ddlist ltvalue set_tile_style vpt2 c9 l4 X; ?7 r5 g+ b
- ddmline ltype set_tile_tag which_tiles
* r! u( s) R h$ J& M) N* a - ddmodify_err m set_tile_text wid
+ [ X7 ^6 h2 i+ J - ddmtext majrad set_tile_vpt x' R4 F r6 p! n5 t: [0 o
- ddpline make_lay_lists set_tile_wid x1, n/ R; U% Y' ~
- ddpoint make_lt_lists set_tile_xline_pt1 x2
% A5 p. c0 p1 K+ R- J - ddray mdashlist set_tile_xline_pt2 x36 X: n' h7 {. k& v) M% j
- ddregion minrad setcolor x4
, Y1 f+ D( h5 [: @ - ddshape modify_3dface shght xdlist! I; A5 s- I- d" L' l8 n- y2 ]8 H$ z
- ddsolid modify_3dsolid showpt xline_pt1
3 U, ?9 d v3 r" M - ddspline modify_arc size xline_pt2: [- n9 }4 F/ J. T% n7 w2 M: V
- ddtext modify_block slist xline_x1
3 i) T0 h6 B7 A" S) g - ddvport modify_body sname xline_x2) G4 R. J- }% A1 I' g) j" V
- ddxline modify_circle sortlist xline_y1
6 p9 w6 D. \# V% m - denom modify_ellipse spltype xline_y28 R# a+ I* E/ ^; S6 g, B
- dialog-state modify_image ss xline_z1# f, b+ ~0 O5 M+ T7 t6 ^( z
- dir_pt modify_line st_ang xline_z2& B, ]* u: d/ O2 Q- [: ^8 Z7 a$ [
- dir_ptx modify_mline stpt xscale
' T' c/ S( d$ c& [1 m5 X - dir_pty modify_mtext style_act xx+ o# d4 K) F- u2 g Z# q- q
- dir_ptz modify_point style-idx y P- V$ H( U) y' X1 J; p+ j: |
- dismiss_dialog modify_polyline style-list y1
4 |! t9 W( G4 s( D, [; Q. h - drawpattern modify_prop_geom tagval y2
. z, V' Z+ f* j( t - echo modify_properties temp y3
5 M. P. L8 k' L* H- ^ - ecolor modify_ray temp_color y4
* O! u4 W2 X" V3 x - edge1 modify_region temp_dir_x yscale
1 C; g" P6 x* ~" f6 y i3 f - edge2 modify_shape temp_dir_y yy
* l6 m/ q3 h+ p, c$ R# K0 U; B7 t - edge3 modify_solid temp_dir_z z1, ]! X7 v( g2 V2 k: x1 d$ D
- edge4 modify_spline temp_xline_pt1 z2
& ?, \' o2 Z. g8 B - edgetest modify_text temp_xline_x1 z3
& `) L2 v( U I. Q, g! F - elayer modify_vport temp_xline_y1 z4
A& ?( Z0 T5 r0 H - elist modify_xline temp_xline_z1 zscale
( x6 N. W4 D. G- F/ R - ell_calc modlist tempend_eang zz
; F, T5 z( D$ r7 T* X) G1 Y - dir-idx safe_ddedit ver_MtextWidth xcliponoff' P; k& K& w$ K% B4 ]
- MText_style) [3 `1 n2 N' M. A* k) D- ~2 e" j2 D
- )
b6 `5 @% }" X9 M! b
/ c, c6 ?2 U8 ^% b# n- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
9 `% I0 v" w; ` - old_error *error* ; save current error function+ L: c8 ]$ W3 M6 H3 o9 z
- *error* ai_error ; new error function
$ F* z( B% Q$ @' P' i" M' I - )
" B; C& D, \% M! B8 U$ o8 d( Z: x - , L9 ^- D9 L4 }
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
. P) T. E: J! T) c5 Q! c- k - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
' g8 j* O% h1 a+ W3 G - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
, V4 \0 G' R0 Y" [
# f w- y7 ?/ h" S! N/ J- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
7 A4 ?, i" y9 \& P, x8 [ - (t 1)))
1 q5 i6 W! ~7 N; ~6 _! a - (cond* ]7 l! C) C% c7 _; L5 |' M6 P
- ( (not (ai_notrans))) ; Not transparent?
8 O, y6 ^% q8 \" b* @5 \ - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?" P* t) D. E( l- P& _% G4 W' u3 A
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
4 p- p! {+ D9 ]# p( H3 F5 x - ( (not (setq ename (ddmodify_select)))) ; object to modify?
& k; E/ F4 C" g7 y# P( Q
+ i- H) }4 G5 }8 p0 |% H+ _- (t (ai_undo_push)0 w3 {$ R6 }6 W. ^5 V: t
- (ddmodify_init) ; everything okay, proceed., p8 U% m. O+ J8 k! `0 B& V
- (cond7 }9 h; t7 r# {! J ?8 R0 q8 E9 ]; _
- ((= etype "LEADER")8 _# [! t+ j$ i. C" g
- (setq help_entry "modify_Leader_dialog")3 K0 S6 n0 d) F' L7 U
- (ddleader)
# {! @4 t2 O& p, F - )
7 x) u& B, ]( P) o3 w. P5 B- t - ((= etype "ARC")
! I, U+ R5 U: h% l - (setq help_entry "modify_Arc_dialog"): K( b( x4 \- H' O9 v' `
- (ddarc), M/ `" z2 A9 Q
- )
! ?* K0 F+ V6 g( g% y; Z8 P - ((= etype "ATTDEF")
4 c) H5 v6 ?0 [3 b) B/ j' f - (setq help_entry "modify_Attribute_Definition_dialog")
6 I: i8 q. _3 J% C [) m - (ddtext)
/ G% l9 R5 M+ \0 [ - )
* K! b0 g% ] q4 \5 A- G# o$ | - ((= etype "CIRCLE")3 m* `0 c( g7 K. W0 z0 R5 |
- (setq help_entry "modify_Circle_dialog")
7 H$ p. ?+ a9 ] - (ddcircle)
, M4 u: W# M( ~. ]+ o1 E - ); q, K! L: i) W! Q! d
- ((= etype "ELLIPSE")
8 c. g5 G' t. N - (setq help_entry "modify_Ellipse_dialog")) _( c; w9 p- P Z- ^; | b
- (ddellipse)9 e8 Z5 N* B% S
- )
4 E; }" v0 @6 U2 Z/ ]: u. u - ((= etype "3DSOLID")
* Q$ L$ ^& M) \4 M, |. r - (setq help_entry "modify_3d_Solid_dialog")
# {1 F3 O& w U+ b9 R; v - (dd3dsolid)" v* }* q. ~4 b
- )
! Q4 Z) g8 ~# ? - ((= etype "BODY")
3 s( F2 u3 Q' Q - (setq help_entry "modify_Body_dialog")
; U% W9 q# P2 `2 S3 Y - (ddbody)7 ]; h9 o( Z- M+ Q' ^; P! R9 z: F
- )
" s( w- d0 [( m6 c4 a+ F. a - ((= etype "REGION"): e0 q5 s) |+ ~- v c, q3 o; U) c
- (setq help_entry "modify_Region_dialog")
! L9 A) w2 I" m' k& M) Q - (ddregion)1 T y: ?5 I! k* l6 r1 J1 i
- )
I0 m- |6 j/ \# w; w" P+ V - ((= etype "HATCH")+ b/ P1 w; ?1 N a
- (setq help_entry "modify_Hatch_dialog")+ k; y7 Q' a$ \' U3 v
- (ddnewhatch)) |( @: r) U3 n) _
- )* Q2 e, `& L2 G6 y/ s0 l" Z
- ((= etype "SPLINE")( b9 @9 C/ |9 |7 U* J4 {: q
- (setq help_entry "modify_Spline_dialog")
2 V5 F& _% K8 y - (ddspline)
- b2 T% G R. w% | - )
* b! E% G1 F( }8 W! }" H - ((= etype "INSERT") ; see ddblock for help_entry7 M1 H( d5 N1 @
- (ddblock)
- |1 \. A9 D) B$ I% D8 ~ - )2 O* x7 H# m% ]. \
- ((= etype "LINE")! T* b2 w- k4 \, _/ N* ?
- (setq help_entry "modify_Line_dialog"): N8 D l8 [8 m; a' a' N6 C6 O
- (ddline)1 ~2 f% l G+ x8 G( v
- )
! F. |1 d' G3 \9 I$ A4 p - ((= etype "MLINE")
* v/ p P' t4 z; P1 t, n& d - (setq help_entry "modify_multiLine_dialog")7 p6 E" a" b7 S% I5 g) ]: \
- (ddmline)' c& s( T7 h4 L- u
- )
: O7 [/ ]! g2 q# h8 e+ }7 g5 ~ - ((= etype "RAY")
3 |& e& @( e. S: X Z; x - (setq help_entry "modify_Ray_dialog"), P1 l# b* u/ h% w
- (ddxline)* B; X/ g9 B* @) [8 s, g+ @ \, F
- )6 @; ^% P0 j" j" U
- ((= etype "XLINE")* v5 x* g6 K- k( p: }) Z/ T( i; }: _
- (setq help_entry "modify_Xline_dialog")
% }/ { M- c/ }1 S( x6 C - (ddxline)
' P5 \" l: e+ v$ N" F - )$ w; P0 I8 H% r% A+ a
- ((= etype "POINT")
; H8 w9 y: S5 K5 Y x - (setq help_entry "modify_Point_dialog")4 B( Z3 w- w/ f5 v* C- }
- (ddpoint)
( I4 N/ i, _0 M4 E - )
1 i' h0 N7 T% V7 b - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
! }5 _: Q, H: a6 { - (setq help_entry "modify_Polyline_dialog")
' F4 p0 U, f! J7 A3 c& b, M - ;; If a 2D pline, check to see if it is planar to the current
" ?1 [4 c: c; d2 D- `9 Y - ;; UCS, reject if not. To see if the pline is parallel,
$ K9 j/ [9 E8 @4 ]. C6 N - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
9 ~8 [/ Z# y2 ] - ;; and then converted to the current UCS and checked to see if, ]& \# ^0 r# G9 V
- ;; it is equal to (0,0,1).% s6 a# @9 Q1 P! S' E
" L6 t+ F8 e+ ^" ?7 M4 i- ;; Incase the 210 is default and not in the dxf list.
5 `: L( U6 {. V# R1 }) q - (if (= (assoc 210 (entget ename)) nil)
# V" D! f; y! \ - (ddpline)% Y! i% q( {+ k8 p$ w# Y6 a5 q
- (progn( N8 u9 L3 q" R+ Y! G7 g+ n r8 k
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
) g/ f6 t5 }$ T - (not (equal '(0.0 0.0 1.0)
; y. d, Y7 Y- p- i% u* X6 [( g - (trans (mapcar '++ ?/ B/ d6 E% P' O8 M* T, B1 R/ N, o
- (cdr (assoc 210 (entget ename)))% I1 a* E$ E0 Z! z
- (trans '(0.0 0.0 0.0) 1 0)( H2 e7 e: o5 I" F: }
- ) ^2 I3 S5 u9 ~3 _: m# o4 ~
- 0 16 { W# ]2 L& V' d$ C$ x5 s
- )9 [ D: ^0 c. B, c8 Q: w& |/ }5 o
- 0.0000000001 ; fuzz6 y8 n; f# c. h2 f
- )
2 _9 T1 x3 R7 O, y' r - )
2 F F6 o$ N/ R E - )* K7 V6 H7 `6 U9 ?
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")5 b8 ~& H1 A, J9 l5 s; z
- (ddpline)
2 P; l+ }: H, k" c5 A1 h - )
4 O; S: N( b$ L7 @8 R - )
5 z) d9 W! u2 y$ c - )
4 g0 z: h4 ^/ R4 u% [0 ~- k - )
9 e* p$ d' n/ S( n* E
. Y& r8 r0 K# I- ((= etype "SHAPE")6 [( l" y6 V9 E4 n
- (setq help_entry "modify_Shape_dialog")
# } T5 k, G7 G - (ddshape)6 J: A# m0 x/ R, }! i+ B5 ]; {
- )5 E) Y, D" K* x
- ((= etype "SOLID")- K8 S$ t/ i% ~9 h( r8 Z
- (setq help_entry "modify_Solid_dialog")
J/ a$ T( }* @- ]( }, r0 i - (ddsolid)9 z# ?! h" u0 b4 d* ~- N
- )0 T- Z3 J. j$ W
- ((= etype "TEXT")
, @3 ^9 a, u; ^ - (setq help_entry "modify_Text_dialog")* m0 d' W* Y1 g8 ~& |1 H. V
- (ddtext)
% I' r9 L) [2 m/ k: Q - )
$ j& O: K) T. o6 i. A, u: v - ((= etype "MTEXT")
$ F( _" M3 j* O) J% L) h. ? - (setq help_entry "modify_MText_dialog")
6 {- }+ p! x; g7 q" f3 p - (ddmtext)
% f! g2 \# q# |; c* x( j8 q3 j% t4 J - )
+ b: C1 t! R6 V - ((= etype "TRACE")) H" J9 N6 J7 N3 g6 a/ n
- (setq help_entry "modify_Trace_dialog")
0 h N2 e2 S; s6 ]3 R* ^# D, A - (ddsolid)& u+ N, P( j" g
- )$ H2 n8 Y T+ Y5 J9 s7 l
- ((= etype "VIEWPORT")% @0 g | [6 _3 ^3 t4 O
- (setq help_entry "modify_Viewport_dialog")* |. Q* m7 j; b6 R/ n
- (ddvport)
0 W( u# c) m2 D - )
9 |' F' `* m, O2 a - ((= etype "IMAGE")
% ]& K1 o' g2 S5 w( I - (setq help_entry "modify_Image_dialog")
+ R8 ^ c" _6 R - (ddimage)& c/ x3 E) [; d/ P* N
- )) G8 c$ Q" M7 p. f8 l
- ((= etype "3DFACE")
5 ]1 e) j, A$ ?& g3 e" T" T - (setq help_entry "modify_3D_Face_dialog")
5 Z4 O5 E) }6 z& n6 X8 a - (dd3dface)3 o: D$ Q. }( a5 b: i
- )
; r/ F. v9 E% D& ?# Y; x% B5 B - ((= etype "DIMENSION")
+ ?8 l7 [' _. B. B" c1 w3 Y: i3 ] - (setq help_entry "modify_Dimension_dialog")
% O W9 Z! A2 q/ u - (ddimen)% K* l ^7 j& e3 e4 j5 W3 _
- )( X6 `1 C* v" L) F2 r: a) B2 B- o
- ((= etype "TOLERANCE")
1 S3 ^! C) {, i* x& f" `1 @+ Q8 f8 Z - (setq help_entry "modify_Tolerance_dialog")2 J' ]7 j) N+ Y
- (ddtolerance)( O E9 t( e* P8 Z/ b
- )
3 T/ q- F& ?' g. Q5 k0 K - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
- ~( Z; Q7 f8 O - ;; This allows DDMODIFY to work on any custom object or any new object type, C+ I% I S1 m* x T+ [: W) E7 D
- ;; that isn't specifically handled above by calling the more generic DDCHPROP." m: @: D) [5 B. Q" t
- (t
7 a; z% D+ h( @ - (if (and (not ddchprop) (not (load "ddchprop" nil))): M0 g/ s3 }0 {1 x l/ e" | r4 {: U
- (princ (strcat "No dialog support for object type: " etype ".")))# q5 O! |9 V2 u6 {; W
- (progn
T* k3 k* A$ H, e" h - (setq tempss (ssadd ename))) D0 q0 G' x8 Y' {
- (ddchprop tempss)- @1 Z9 I" ?5 D
- (setq tempss nil)
& z" w. u; x! H% ?2 v. [( F - )
( u' i" e& p+ b+ k% ? - )# X# ], ^& d0 S3 d* m
- )# e. R, _/ x, @9 U8 c! j2 _
- ;; Previous fall-through condition.
1 E9 |1 y' d* [, M7 g) J) K - ;; (t (princ (strcat "No dialog support for object type: "
2 _# V! Z0 [. a4 V+ t7 E - ;; etype "."( Q$ e8 g( s( [% o! U2 n/ \5 C
- ;; ): t$ h7 w5 h; U
- ;; )( F' V! f0 G, w- P- I! _
- ;; )
/ ]. N0 A) ]& X1 {1 } - ;; )
8 {, Z- q; v# Z$ e- E - (ai_undo_pop)$ w @4 n# L/ N+ C
- )8 {4 A, E- S2 h* T1 ]1 C
- )! d, }( a' P& s t3 J. H
- $ H! M, u* l! T# I' P6 v
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
5 [1 ~4 X. j/ s( |# T4 x. l - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
$ g% l. f7 o+ X3 F - ) ; to what we started with
& q) R: r! ~+ x5 u! m - # P' u4 s# U, n4 c& c. ~( T
- (setq *error* old_error)
- O4 X# ~) G' f5 I/ V& m b - (setvar "cmdecho" old_cmd)
& t7 B) X. N! T1 `3 k/ r. {/ B - (if (not reset_flag) ; if object was modified, then
1 U) x# }; W, X% k - (ai_return ename) ; return it's ename to caller% y) ]# Q/ W; S1 K4 Z
- )4 c, ?5 Q' \% r K# O. n6 T+ V, Y1 u
- )
# f& D, k8 | `) V a: ]
" w2 j0 r. L4 Z4 Q- (defun checkForLockedLayer (ename)
- m! }/ e' J) \. W9 P U! \ - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
% [ R! L$ m. o" p, J - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))& F4 ?- X8 L' g$ N' G- }( Z7 a
- (if (= layerflag 4). U# p" }2 z3 J2 X! v; R9 k
- T
: B/ R( c; [& w Q - nil3 E) @. u4 W/ Z @$ G9 L5 J
- )
7 K! L& n) r. f6 ]3 g: R1 v - )
5 a7 V2 q# f$ {1 U$ a
/ q( ?4 T8 |3 [6 E- (princ " DDMODIFY loaded. ")0 W K; I2 s% q0 N1 K9 O' [4 t
- (princ)- @* V& Z) n# a" y* o3 L+ F
- ;;;???;;;---------------------------------------------------------------------------------------+ H1 ~- n8 m5 e, x5 k
- 2 F' j, X( w' R$ j! T( F
- ; Next available MSG number is 8 ) X% o+ }' \9 `" m
- ; MODULE_ID DDUCSP_LSP_) Z4 z4 C1 W- v8 `2 ?: o
- ;;;0 s5 d. z. h6 Z Z7 p
- ;;; dducsp.lsp5 ]+ b4 n/ y6 ]; [: G0 f H
- ;;;
+ i, j2 I2 A8 c$ V: w - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.& N i$ _( Q8 F: E4 O: q5 C' W
- ;;;0 d0 U7 F: u" b5 Z# e: H
- ;;; Permission to use, copy, modify, and distribute this software
3 f# t( U V* U. P/ n W" _$ J8 C$ d - ;;; for any purpose and without fee is hereby granted, provided
' O! m. e: Y5 w' a; p# P# K% ` - ;;; that the above copyright notice appears in all copies and
`; _5 e4 q+ M( H - ;;; that both that copyright notice and the limited warranty and
! J2 S: h; F1 h7 ] - ;;; restricted rights notice below appear in all supporting
: e9 \+ R+ k6 d* }/ `+ ?+ \ - ;;; documentation./ T- {5 Z# N% f! f! e5 @
- ;;;
* Z& d) _& A8 ]% D- w - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
5 a6 p) e# {! E0 J K - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
! @! J' _* H" a2 A/ t - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
/ D; ^+ w! _8 O& w& O' d - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
& T, X9 Q) z( m, j! J# @5 a - ;;; UNINTERRUPTED OR ERROR FREE.
* |% S6 N- F8 V' `% K; Q - ;;;" a! z6 |5 z+ O
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to$ u& X4 H) l0 W5 R
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer7 @3 X: T" a, K3 ~7 i( L
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) , P: r# _( H9 q/ ^
- ;;; (Rights in Technical Data and Computer Software), as applicable.: \ G& ]4 b2 l
- ;;;$ C W- M' H0 ]8 |+ e1 E
- ;;;.
( x$ b" D/ p1 S* ` - ;;; C:DDUCSP - User Coordinate System presets dialogue.
, [! k2 \6 p- n$ H" U1 W - ;;; : p4 R, _/ ?. H% Y
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
# e" \6 ~# j C: a0 [ - ;;; slide images are in ACAD.SLB.: R: @, H2 _2 Z3 ^ ]
- ;;;
) ~+ V: p8 Y( i7 M8 Z' K - ;;; ===========================================================================
2 \: q) Y3 R% D, {0 @. j) d - ;;; ===================== load-time error checking ============================
) U! ?; w4 [/ d) ~' K - ;;;
) R; ]% J3 x6 L; x* C - : c% t8 ]- T1 }$ J( Q/ T$ `" h
- (defun ai_abort (app msg)+ ?$ @; m+ }0 [! j
- (defun *error* (s)1 n$ O6 [5 ^. k5 L& x/ v6 T* Q2 w T! p2 z
- (if old_error (setq *error* old_error))
6 {8 S/ m+ y3 V" T - (princ)8 u3 U+ f/ [. @9 L3 O
- )
. S4 R; t" \9 K: b9 ^* z2 K - (if msg
2 J+ J' m& H% S - (alert (strcat " Application error: "1 G* C% Y0 J4 V7 r( R. }3 J
- app
- \8 n* A: A1 t6 z! C! x - " \n\n "
6 X; H+ Y$ E/ u - msg4 S; H# M* |5 @% u! R
- " \n"
: G! R' S& A7 u - )
) f$ H B) P2 @ - )" n5 T$ L' B( o2 F. P$ m
- )
1 O8 `- b) K j7 _% J& w K' q - (exit)
" D. e8 ^/ ~. w' v, p! O - )% t8 u P0 R2 m; k; j
; _2 i- H4 C/ c" A* |- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
, H( j: F8 v$ | - ;;; and then try to load it. x S. ?3 v/ `
- ;;;7 x7 f. a9 p& `0 S% W
- ;;; If it can't be found or it can't be loaded, then abort the
2 s% f2 W( N( f9 [2 v7 `0 k - ;;; loading of this file immediately, preserving the (autoload)
; b$ z1 k" I+ d - ;;; stub function.
" O1 O+ H, _3 C% n2 c, C
9 v4 V5 T& L2 j1 e( M- (cond$ U% g0 h; U8 s5 M
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
1 O7 [% U/ K5 \8 U$ m/ | - 8 r2 q3 T0 t; ~5 Y9 i7 d
- ( (not (findfile "ai_utils.lsp")) ; find it" f5 w: L, S' T4 Y9 X/ b$ E
- (ai_abort "DDUCSP"
) Q1 Y8 D5 f8 ~) `! E2 f/ s; K - (strcat "Can't locate file AI_UTILS.LSP."0 M( k# j/ t0 P, z& o! W9 F
- "\n Check support directory.")))
3 r: k- |4 N/ Y - 8 J. ]$ f+ x/ A; |$ a# J
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
6 f& j8 [: o$ a5 ?& K3 k3 X; r - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))7 a' G- \* U0 E" y) K' n) `7 R
- )
* ?) U$ y# X2 n/ L - % m6 h% X4 @! B( a7 ~5 |; _9 }
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
! a+ t1 w7 D0 z S" q- T+ V8 e% N - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
3 `4 x. C% {/ {/ n0 t4 v( r - ) ; ai_abort's alert box dialog.6 R+ V' `1 J5 @1 m- F
4 Y4 c& B8 I _, z+ M# q- ;;; ==================== end load-time operations ===========================" o* @% X* @7 J
- ! {& Z3 r4 d7 w9 o0 F- d% C& E6 K
- (defun ai_ucsp_start ( / program)$ S4 Y# N5 q* Y
- ;; Get program name7 W/ m+ i, B; Q9 V; t. ]% i6 N
- (if (not (setq program (getvar "program")))- i# y2 a* X9 I0 q
- (setq program "acad") D. `. r! W6 X8 C, F' h
- )
% O6 y- I( b4 g, G3 l3 R4 |$ h - (foreach v0 '("world" "left" "cview" "top" "front" * H) {9 B) ?; U4 ?4 c6 q& _/ E
- "bottom" "back" "right" "prev")
9 ^* e+ H$ \8 b* Y - (start_image (strcat "ucsp_" v0))
|) T1 }& u: C5 F p - (slide_image+ u5 z8 N) ^* b6 O( y" d
- 0 0( I ~& K' [2 E/ x
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
' n% }0 H! V9 U/ u0 \0 |& |4 X8 ` - (strcat program "(u-" v0 ")")
. ^0 Y3 v9 C% S/ W2 H - )
5 Z# M* ]- B- Z - (end_image)( Z. ]6 u- W5 q, x
- )2 T* u' S0 W" o: C2 T
- )+ u3 D4 `0 l* f! q% [9 r9 C
8 }+ [( E: r# u; J* Y: P- (defun ai_ucsp_set ()0 G/ O0 T5 @) f
- (if ai_ucsp_sv
0 Z# ^! y+ x$ a5 n - (command "_.UCS" "_V")$ L5 `& l3 k: V; f2 f
- (if ai_ucsp_prevs
, N) P; C, A. b' y* T v8 D$ N - (command "_.UCS" "_P"), @9 T- w9 J) q1 U
- (if ai_ucsp_chg
9 ^9 E( D5 Z+ c2 E2 b- _5 P$ i; G3 P5 m - (progn9 C6 ]$ N4 ~( W" } _8 z4 t) M
- (if (/= ai_ucsp_a "*")
3 I; c6 u) ^0 d4 _! d) L - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
: @5 t7 C/ V5 ?$ W5 T- w - )
! J( F* I) d$ P4 T0 O( n; ]% V4 n! { - (if (< ai_ucsp_pick 6)
- o) i" I3 Q" D" Q( \' B% v - (setq ai_ucsp_set0 "@")' E/ e5 ]9 S `" R: q3 S {
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")+ M: C1 r5 O4 \+ [, V( c- K4 |
- )% p* W" M& g* F. u: ?
- (cond ((= ai_ucsp_pick 0)8 b) Z# e$ _ G& L" K
- (setq ai_ucsp_set1 "0,-1,0"0 g; D# N$ m, A3 W
- ai_ucsp_set2 "0,0,1"' u5 ]/ a1 N; e/ }7 [7 P
- )1 m% `- l5 N0 B8 G0 P2 O
- )
0 m. Q5 w6 D: G; k* l - ((= ai_ucsp_pick 2)
" i) _* I l! Q5 I5 A - (setq ai_ucsp_set1 "1,0,0"' _8 W" s' m- y9 T3 G
- ai_ucsp_set2 "0,0,1"
" X4 p" L) C' Q$ `" ^7 g0 g - )8 s" m2 I+ y6 P* i+ {4 X- J' j* m
- )
! Y2 w% r" u% T' M - ((= ai_ucsp_pick 3)
, u* p- h3 q+ g, I( n6 f, p - (setq ai_ucsp_set1 "1,0,0"
5 D4 `) A. C" s$ y6 z! G6 r( f* I - ai_ucsp_set2 "0,-1,0"
+ E/ q5 @0 d. |/ l - )' P, H7 D( `+ x' y' v5 C
- )
% N" B0 F7 g4 ~" `/ K; K+ c - ((= ai_ucsp_pick 4)
+ t3 |. W! N" Z; K7 w1 P+ N - (setq ai_ucsp_set1 "-1,0,0"* A( f |% S" Y2 O; N: |5 X
- ai_ucsp_set2 "0,0,1") K: ?: H& z: ?/ ?" @( x5 w1 A* J" r
- )
c7 E/ c- Z+ B( [; P' _( n. w - )
}: c% a) G5 N# U - ((= ai_ucsp_pick 5)
. a2 Z, J# B1 y+ z$ P- c - (setq ai_ucsp_set1 "0,1,0"6 z \# H3 v1 c: Y* K& c& J
- ai_ucsp_set2 "0,0,1"
" d! _; z( Z1 C q. c: { - )* T; M9 a" b# g" B2 {& f5 c
- )4 O5 K! d, } r( E. x3 I
- (T! ?1 P3 e* Q+ H
- (setq ai_ucsp_set1 "1,0,0"
/ ]* V9 ~3 { a - ai_ucsp_set2 "0,1,0"
9 K. ^2 [. z" Q A - )
# S4 p9 T1 d6 r2 e - )
5 n, o0 s/ A' S @2 U - )
5 ?' r' x( f) x3 W8 E( q% a - (command "_.UCS" "_3P" ai_ucsp_set0 1 V, S! ~3 a0 h( r7 U: T& ~5 \
- (strcat ai_ucsp_a ai_ucsp_set1) # A9 J6 \1 U# w9 Y; f; ^
- (strcat ai_ucsp_a ai_ucsp_set2)) d8 O/ }- w* H- F- \
- )
+ z w5 Y3 r2 v* W1 n: e! E9 A - )
l/ F, S- ^/ k* Q: m - )3 e% C/ h+ g' S3 x; G2 |8 \( z D% y
- )
6 q' B( `0 b6 l% I" Q# H - )
) Q& P# I4 i3 r4 }# |+ r) K) K - )
' O! V0 H( P- _0 I0 S3 |* k - # Q- D. ], }5 \) P0 M9 V
- (defun ai_ucsp_p (val currtile)
" L5 ~5 |4 V' w - (mode_tile ai_ucsp_currtile 4)% n% W! n4 I/ p( z, h- z
- (setq ai_ucsp_pick val
6 m+ D( ^6 j8 C v0 ~ - ai_ucsp_sv nil Q. W; c: e7 {3 _* J7 x2 Z7 A" i
- ai_ucsp_currtile currtile
; G' T8 M2 c( B# R9 Y - )
4 d6 a& d7 q2 Z( U1 c: `0 [ - (if (/= val 1)- f! e" i8 k! f9 g
- (setq ai_ucsp_chg T): K: q. P; D! p u* {/ H/ }! z: J
- )! y. T, D. D9 b8 @& ]6 y
- (mode_tile ai_ucsp_currtile 4)
. ~: X3 |$ z9 j" s! i- ` - )
$ C6 F. P2 |# i9 S
9 J$ n3 }: [% B- (defun ai_ucsp_swcs ()( w6 L- J; r3 r2 S" c- L" O
- (mode_tile ai_ucsp_currtile 4)
" M0 w3 I0 v; @+ z9 h6 [- V - (set_tile "ucsp_a_wcs" "1"): W1 H; ]: V/ X; `& P4 h1 |* Q
- (setq ai_ucsp_pick 6
7 p O# y/ e6 j& b - ai_ucsp_sv nil
3 o2 g4 E: h! ^/ I/ n; P8 h J - ai_ucsp_currtile "ucsp_world"
1 D8 ?% s' D+ S9 G/ B: F7 u - )$ P" m- b% r8 _
- (if (/= 1 (getvar "WORLDUCS"))
: T2 e7 b5 A4 S# _6 L; r8 j. \& _5 ` - (setq ai_ucsp_chg T)' `. y% }# d" E' l7 f# Q+ w
- (setq ai_ucsp_chg nil)
% a' D6 J8 o a& `% l - )! a6 h* X+ s/ I, H+ X3 D0 p
- (mode_tile ai_ucsp_currtile 4)
E$ S7 a, B& n3 T - )
: V" c; e& H) V9 Z: V - ( N! u2 l; [6 g. [
- (defun ai_ucsp_cview ()
6 G0 B9 Q/ G$ b8 h V% `$ j - (mode_tile ai_ucsp_currtile 4)3 ]! i0 {& m* i% h6 X! k
- (setq ai_ucsp_sv T
5 z% T* j5 T, n5 M2 q. [ - ai_ucsp_chg nil f! Q4 y& V* y( u+ q
- ai_ucsp_currtile "ucsp_cview"
$ _( E- i/ Y$ k Q, x! p - )+ s0 W* l6 D) Q+ D* k$ `
- (set_tile "ucsp_a_wcs" "1")8 p- d% v# ~5 h v. I1 \
- (mode_tile ai_ucsp_currtile 4) X0 a3 _1 y/ A& L5 t3 C
- )1 Z2 \! V' H; I6 p @
- 3 \5 O+ o, |; b" a
- (defun ai_ucsp_rucs (typ)
' Z/ Q/ F8 |& A: r4 [# | - (setq ai_ucsp_a typ)% ~4 I* F* r4 t2 D; z
- (mode_tile ai_ucsp_currtile 2)
7 i( j. M; C8 m4 m/ L6 b - )
1 `2 z( L; z) }2 @ - / C: |% t7 V, a' u4 o
- (defun ai_ucsp_prev ()( V6 {/ k# p- Q Q S
- (mode_tile ai_ucsp_currtile 4)
/ k" r, d# Q( o+ A' t - (setq ai_ucsp_prevs T; u! ~) Z! F6 T- e) W
- ai_ucsp_currtile "ucsp_prev": A9 X/ @6 p+ Z8 e q# a" g1 A9 o7 P
- )' s$ w* G; }6 r+ t/ F
- (mode_tile ai_ucsp_currtile 4)# ?/ V/ N2 k' S; \
- )2 C* A! P& _! \, r
- 9 r- O! U& a: X: k/ \8 s+ T
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
7 R" l. n7 r0 e; y0 B - (if (not (new_dialog "dducsp" dcl_id))
% ]: z) h4 c* {3 X0 J: X! \5 i4 p - (exit)
T+ O0 o1 t( r* x - )
4 [& C+ _" D2 u2 v+ v6 b" ~
2 D- \8 @! ]9 Y o% N/ h" B- (ai_ucsp_start), m, A5 g, n V0 w
- (setq ai_ucsp_a "@" & j3 d( }( A4 R: x+ U8 O8 S
- ai_ucsp_pick 2
6 ]6 g/ H' [5 x. e5 z+ z: U" J+ @ - ai_ucsp_currtile "ucsp_top"
5 f9 H: V# J" Y+ @+ C - )
7 E7 D' v' h3 W# P - (if (= 1 (getvar "WORLDUCS"))8 q- v' q1 G$ I$ r( y k% E+ m
- (progn
& ]' F0 T. j$ x8 @& l( A4 R. f - (set_tile "ucsp_a_wcs" "1")! | ^$ P, h2 `* f, i
- (setq ai_ucsp_currtile "ucsp_world") P# n+ {# b# G7 I3 i5 L
- )' S2 }8 e7 l+ R% V) L
- (set_tile "ucsp_r_ucs" "1")1 H: t' S1 E: @. @8 I k
- )
+ D6 z/ R( T% d4 j6 E4 h - (mode_tile ai_ucsp_currtile 2)/ n. Y9 `$ c2 l
- (mode_tile ai_ucsp_currtile 4)
' ?$ q- \1 P; r' U) I5 L - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
7 s, B( r; ] B& [2 @! E: k - (action_tile "ucsp_cview" "(ai_ucsp_cview)")
1 r) G% j* z( Y9 H - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
4 ?# X# N3 D) K9 K3 q1 U - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)"); P9 L1 m7 @, ^, c4 w' a
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")7 t8 h! m& G7 K. g$ \
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
3 ]& x# c: ^ `$ e* K8 o5 ~ - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)"): B4 O$ E0 j' v' |2 S7 M
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")/ P2 j# ?) E8 D2 {0 W$ ~2 i" V
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")
: N" {$ \* k+ a3 \6 ]) a5 ] - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
1 V4 p3 N; x1 Y% Z$ x: ` - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
v ?5 @9 M- v# l* C& J$ ? - (action_tile "accept" "(done_dialog 1)")2 A* s& [7 G- E- J% K
- (action_tile "cancel" "(done_dialog 0)")8 b% j9 C6 d( b4 b. c& k, s
- (action_tile "help" "(help \"\" \"DDUCSP\")")
5 y- {& X7 ^! l! |, q8 ? - (if (= (start_dialog) 1)5 W( [, c4 A' f* h8 _. o
- (ai_ucsp_set)' w6 M- N* l4 e$ N/ s2 W
- )5 Z! [( K# ?$ Z" z
- )$ _+ n- l3 ~9 ^' ^: o9 o1 H
- $ w) |6 b- J+ P9 ?3 D
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs % r, ]; O5 M/ b
- ai_ucsp_sw undo_init)
6 c5 z- F5 G' D$ Y, m& a4 \ - a) m# m% E# P3 Y9 B; v
- ;; Set up error function./ G" p) @# O' T# e+ G
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
9 i: [/ T2 y% _" q2 d - old_error *error* ; save current error function
* }3 p" m* H5 M* Q - *error* ai_error ; new error function) _, R3 C+ b4 A/ ~
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration, o4 G; D$ m2 j( ~ O( E& q0 [, }! G
- )
' T) k1 _9 J& V! q& E, l2 J4 }. ^ - # c0 E5 I8 n+ r7 q) f7 U3 i [# {4 ~
- (setvar "CMDECHO" 0)
, T9 s& ~3 v4 ^8 ~9 ]9 e - . K6 t2 r0 H1 k+ h
- (cond
' U u; F" M' k) x - ( (not (ai_notrans))) ; transparent not OK
# l0 v1 V8 i W+ Z - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
. f4 V h" g1 s5 g( V; I7 f - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?3 G# X1 s6 r2 ~# l# D
- (T (ai_undo_push)
; k, t! x9 Q5 x4 r) [ S) u) O6 C5 V4 N6 @ - (setvar "OSMODE" 0)
! b, o. u9 w( \, W6 o. N6 {) H1 N - (ai_ucsp_main)
6 a- P/ d- u" n! k( n4 [9 |! @ - (setvar "OSMODE" old_osmode); a* w L' f) B
- (ai_undo_pop)- C' F( q& s3 c$ T
- ), X7 v9 t1 f9 E, L- o9 p
- )
$ G0 o; z$ \# M5 k) q
+ D, a" C% w0 b4 l' }( v- (setq *error* old_error) : i; T h' @0 }' m4 S8 Z d" a
- (setvar "cmdecho" old_cmd)9 A2 S0 s/ z9 I! N
- % Y8 r" c' S. {( Y6 H
- (princ)* J* ]4 l1 c9 M. p2 H
- )1 i/ X" t* W. g; c- N
- ; a* W9 F; @, \. g1 w; B) S
- (princ " DDUCSP loaded. "). ]# o; c; R4 P _. i
- (princ)
5 M" h# l# N0 @* ? - . c. b! j. }4 Q$ h% Q
- ;;;???;;;---------------------------------------------------------------------------------------/ j+ M! q( o {. s& O. j
0 k4 E* s' X+ t4 I$ D- ;;;----------------------------------------------------------------------------- k+ i' T7 w& G! C
- ;;;1 ^" k3 X6 _6 E- g3 y, k; _- b
- ;;; EXCHPROP.LSP 8 |- I- _3 I# v! h; e
- ;;; Polyline and text modification capabilities added by W( U) E1 N1 s0 j7 ]
- ;;; Randy Kintzley ! w4 F% y) g, p/ E3 i+ m7 t0 X7 q
- ;;; 5 H# k; @8 x$ m; @ t& T' {
- ;;; Copyright (C) 1997 by Autodesk, Inc.' A, {4 V$ r$ K* q$ p Q
- ;;;
" B- q4 R6 M0 A1 w) i0 p8 V& E - ;;; Permission to use, copy, modify, and distribute this software
9 {% k/ Q( R0 c0 F - ;;; for any purpose and without fee is hereby granted, provided
9 i& T) M- @- j& D - ;;; that the above copyright notice appears in all copies and4 ~7 C+ Z; n2 D4 I! h& z
- ;;; that both that copyright notice and the limited warranty and
5 s" ~& d) f" O- |+ E - ;;; restricted rights notice below appear in all supporting0 L0 h/ [# H+ D8 G( X8 C
- ;;; documentation.- n3 W- n+ }8 m: N$ p, q4 Z% s
- ;;;- F) s6 j8 k5 e" j: C6 M( B% a- h
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.4 t) w3 Y; }% `# C) }
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF; k) S' N D, i5 B
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
# C6 c- G+ m5 |3 V Z+ N$ O - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE* T& U2 v' T9 N! Z3 b7 S) u
- ;;; UNINTERRUPTED OR ERROR FREE.
! O/ F2 }8 p3 H+ E: |4 _ |+ g - ;;;: z4 |* V$ g. G8 E: |( V
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to0 }# ~- [1 e7 n+ R
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
2 D+ l( t- ?: m/ P0 } - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)+ h( J/ P4 F% P( n9 o- |
- ;;; (Rights in Technical Data and Computer Software), as applicable.1 L' u& s3 |) \( A) D
- ;;;
+ s$ O, L' ]! W" i - ;;;.
# }- [# b5 c" W; t+ N1 d+ ] - ;;; 28 February 1997
; @" B6 ]/ T! G - ;;;
" _# a" @. Z3 F' @7 H) \/ \0 S- ] - ;;;
/ M3 C2 `9 b4 g - ;;;---------------------------------------------------------------------------- F% n, n; W5 A
- ;;; DESCRIPTION
5 n9 d2 K7 e# ?0 U' X$ c - ;;;----------------------------------------------------------------------------1 [/ L) E {: w& j* D
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This ; Q! y7 |- i0 {+ { T
- ;;; command gives the user the abilitie to change several characteristics
8 m7 O9 p4 ^# F - ;;; of selected polyline and text objects. 8 L! L' s( h3 k
- ;;; The style and height of selectected text objects can be modified
2 r8 Q7 c& i4 A% h/ b% o j* I' ` - ;;; (including text, mtext and attribute definitions) as well as, width and 0 a& H2 X8 X1 L
- ;;; elevation characteristics of selected polylines (includes lightweight and ) T# a* q. \6 \6 ?6 c
- ;;; traditional polylines.)
" l& R& H& f t6 X5 k - ;;;----------------------------------------------------------------------------
- g2 `# g# P4 a' f" E7 J, V - ;;;----------------------------------------------------------------------------) h: n) o* k; L% S B( J2 c) g6 z
- ;;; Prefixes in command and keyword strings:
) J7 M0 L- f, |6 I& F - ;;; "." specifies the built-in AutoCAD command in case it has been8 U& N& X0 x# V& L. W! f
- ;;; redefined.8 o f9 ~. G$ V% B" y* K
- ;;; "_" denotes an AutoCAD command or keyword in the native language+ H7 R: o4 X# n- q- t
- ;;; version, English.- X6 E& ^0 {5 C& [- ?7 c/ k$ X4 J
- ;;;----------------------------------------------------------------------------
' M: ]/ B9 Y/ `& e. d* Z- L - ;;;1 H4 m% o8 V, b4 [
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# S6 E2 {, D/ [8 E3 v* f - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
/ t" t% s- \ L( c4 W/ x - ;Functions created as result of loading file: exchprop.lsp
' @+ l9 }$ H2 {! k! l - ; DDCHPROP2
. j1 l; s! A! b4 [4 N - ; DDCHPROP2_INIT
1 ~) j" L5 D* P5 p3 ] - ; DDCHPROP2_SELECT, M4 d9 V9 n- ?6 B0 g! o! }# n' G
- ;
7 V' P+ @7 @- {6 G% a - ;Variables created as result of loading file: exchprop.lsp# \% w6 Z0 B1 H- O0 h5 i& l. N
- ; OLD_ALLOC
! O8 o6 X4 e. z0 r e! x; d - ;
, K* s% \! Q, O3 c - ;Functions created as a result of executing the commands in: exchprop.lsp% n, b" J* I( C2 W5 n
- ;
; f# b) R4 v+ A; ?4 N- h5 O( K - ;Variables created as a result of executing the commands in: exchprop.lsp1 O' M; b! Z: E' T2 r, v) q8 C
- ; AI_SELTYPE, M! d6 u; F9 G/ d4 b p
- ; BONUS_ALIVE
: L9 ?& {0 r$ V- h - ; BONUS_OLD_ERROR
6 A4 u; |, B6 G, i V - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9 |5 F. |. W8 ~* K6 `" B& J - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; n! d m8 j( O1 `/ t0 b4 Z0 E
- ' h7 O* }' A5 I4 M: r" Z
- ;;;
3 K; {. }) U0 O - ;;; Avoid (gc)s on load to improve load time.% ~* o* L5 e4 w% N& l
- ;;;
1 v+ e7 q/ d/ B' M% R9 R/ h3 S - (defun do_alloc (/ old_allod new_alloc)
I, { d6 U8 V$ [ - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))* j; g+ d" e- k# y* o' A5 f' z$ w
- (expand (1+ (/ 4750 new_alloc)))" k$ L) p% X- t0 E( X8 ~8 e
- (alloc old_alloc)1 k$ ~, Z% w4 o+ i+ u% P
- );defun6 J& [9 i, g4 c5 g2 c0 [# Y- u0 {+ M
- $ r( C7 z* `1 c5 s
- ;runs at load time - rk
! g, ]: E+ i! ]8 b# E - (do_alloc)' `) x1 L9 Q1 Y2 q- h+ l
- (setq do_alloc nil)
' Y5 P% N* P6 x - ;;;: z5 V9 F: V3 G7 m- I" ?
- ;;; ===========================================================================5 s2 H. E ]0 b* y: I4 v; v
- ;;; ===================== load-time error checking ============================
7 x& h9 I, ~$ D1 M - ;;;
7 Y m: l2 H. n9 ]9 ~) ^. `
0 V6 Q& T2 E- G9 X8 {) F$ Y7 v- (defun ai_abort (app msg) 3 x9 c7 `$ l) k
- (defun *error* (s): H! c S; b% D! G+ F
- (if old_error (setq *error* old_error))( Q4 P' F8 ~2 |
- (princ)( h6 v1 L, C, o# d6 Z+ X% v
- );defun# _, M2 ?& _$ Q% i. s
- (if msg4 S# @. S Q, o0 r" [4 f
- (alert (strcat " Application error: "
# B5 z2 ^( m6 d - app
+ k* C2 E B5 a3 w# u7 {/ q - " \n\n ") N! b+ t' ^5 W$ e
- msg1 n6 P( x; ^% D- k1 K
- " \n"
, [/ `( i7 v( o+ f$ Q$ ~0 w - )
8 p ]( R$ [# b c3 y* n) B( U - );alert/ ~# D% y# ]8 G. c; n$ r: \
- );if
H1 E! g& k* D4 g$ @ - ;(*error* msg)1 g( n, W1 ^' f) p5 O9 a( L
- (exit)3 I1 h" b3 u$ L% E' h
- );defun ai_abort
1 _% U! [% |3 p$ R; N- N7 o( A/ c
4 t* s! E& i& Q! [; `- ;runs at load time - rk
6 n0 p ~( _3 \7 o0 K- R - ;(if (and *error* ;added the if wrapper around this - rk.
0 f) E& r) ?% l# e/ I - ; (not old_error)
$ R# x' l( G) h& Z% Y - ; );and
2 Y8 h) W" \5 }! R3 t3 p' `" q4 z - ; (setq old_error *error*);setq
' W) I$ `' s8 ]/ U* @ ] - ;);if4 l1 I7 t. {5 x# i! }+ R
' H3 b6 [$ C# `7 A" Q1 G- - j( H# {# l$ D3 ~$ ]2 X% w2 B
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
$ u$ w8 I6 i1 V* m& }! t S - ;;; and then try to load it.
0 r1 \, j5 g) ?9 I2 w: h6 X& b" ? - ;;;
- @ \/ i6 ^- ?$ p2 O. K - ;;; If it can't be found or it can't be loaded, then abort the& |/ \& u$ q! ], ?- q, Q8 I) S# N
- ;;; loading of this file immediately, preserving the (autoload)1 W& p- b) t" n9 [
- ;;; stub function.& l% I: H2 W7 }0 K: d
- z# h h) u! H7 M6 a# B) y- T
- ;runs at load time - rk.$ \3 V9 s0 i) @2 L
- (cond
' j6 d- u; ]* d2 h' \/ r ~ \ - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
4 s' @* n/ C4 T# z; B6 R - ( (not (findfile "ai_utils.lsp")) ; find it6 M: i! S8 j! N0 u. g$ U
- (ai_abort "EXCHPROP"
- m6 [' ]$ F0 p/ k, P - (strcat "Can't locate file AI_UTILS.LSP."( |9 X+ |- Q8 a' ?7 w2 O5 s. {0 s
- "\n Check support directory.")
$ N* e' |0 v$ H, \ - );ai_abort) ~. }5 h1 E* u" z
- )1 H8 y/ ]& c: Y4 L* _
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
5 [0 J- a" F: ~1 _+ P9 ~0 N# U - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")* {% g" P& `' }! |- T) T
- )
' _' @8 Z3 C+ I! m/ X7 L - );cond close
. A9 n% f* p3 d# e/ i* @4 |
) l( W* t# h( v. }3 r$ n- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP. s! ?& c% Q: z* X8 @1 ^6 A5 _
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
& ^' U% s. ^7 W' }! m - );if ; ai_abort's alert box dialog.
2 ~ E& W5 o' y4 d' T6 p - 3 z& H% S- e. u
- ;;; ==================== end load-time operations ===========================
3 Q! p9 J+ V( C) Y3 K y - ' G" _0 K* M3 i: z# Z& P8 ?1 h
- ;;; Initialize program subroutines and variables.
# I0 f9 ~9 z" n6 `# w - 6 C# [! ]9 `0 |
- (defun ddchprop2_init()
; h0 [; B. K' a; Z8 e9 X - " | `% y7 k9 ]; f2 w
, I7 E$ @& {5 B6 w' b+ `
$ {. m5 u. {8 ]) o9 W" ^) u" v- ;;
" j) V7 a9 k. x - ;; Define buttons and set values in CHPROP dialogue box1 Z# L8 T/ d3 x$ `9 F: s) v- W
- ;;% i0 ?3 Q; D: ^; w. O
- (defun call_chp2 (/ cmdact p1 p2)
' d3 G0 ~6 s' n
* F4 x8 U$ @' g5 x; t- (if (not (new_dialog "ch_prop" dcl_id)) 9 M6 v6 O/ X* d* U4 q. d& T) t
- (exit)
9 \. h/ @8 i2 [' U* ^" G0 m: b4 s - )
( {1 _( J5 q8 r) M; j
% y6 h& F. S, N/ D0 s# J1 b, n- (set_tile "error" "")
. B# r! c" W/ I2 [1 n8 f) i+ \ - ;; Set initial dialogue tile values
0 H6 g- ^: v n/ ~ - (set_col_tile)
7 `$ v: g4 w; P - (set_tile "t_layer" elayer)
5 e- c6 I8 \) N1 S/ ^) U
) g3 V- S q6 y! X7 U& z3 g- (cond+ s. O/ Y7 E1 @6 E6 j
- ((= lt-idx nil)
3 X$ g+ w8 Q2 u( j# Y - (set_tile "t_ltype" "Varies")
$ f3 P8 [( i- Z* a - )
% Q, Z& H4 g2 V0 i$ ~. H! D - ((= lt-idx 0) ; set tile "By layer & layer linetype"
5 g7 S5 ~% F0 Z! f( F% l - (set_tile "t_ltype" (bylayer_lt))
1 j( K$ w4 l& s) @ - ): B- ?$ {9 G+ B% L: \6 ]7 c% \! K
- (T
" v( \: q0 K4 Y4 W7 v1 q( H - (set_tile "t_ltype" (nth lt-idx ltnmlst))4 ?8 ~. P" }5 d( K
- )0 x4 Y& X! V& \+ n0 f% |3 U5 Y5 L
- )8 f3 D0 \4 L$ K6 T/ m( w/ j- y
- 9 x+ G) Z. d3 a3 n1 a
- (if (or (= ethickness nil); G8 L! ^2 r' X) R/ U
- (= ethickness "")& n0 D$ n( ?2 ]9 W6 E, n/ c
- (= ethickness "Varies")
. W% H3 T0 {+ K; y1 u - );or& Z0 N6 `( u# v! }7 E! ~
- (set_tile "eb_thickness" "")
- F) ^8 k3 g6 H4 p5 l$ w - (set_tile "eb_thickness" (ai_rtos ethickness))$ o3 d4 ~& ~0 Q4 [
- );if: t! K: I: @; w# Y, s- x4 t
- (if (or (= eltscale nil)
% n" t1 N7 J4 _& n4 D. v/ f - (= eltscale "")4 i) L; F4 b, f4 s4 O; u
- (= eltscale "Varies")8 F$ f- s6 v. n0 O# v/ t
-
% a5 g- c" V3 m% j. g6 h# g - )7 O6 B7 K" I$ P3 K7 X7 X) ~) q* y
- (set_tile "eb_ltscale" "")
0 @( O/ t' W% [1 P- U7 |3 Y - (set_tile "eb_ltscale" (ai_rtos eltscale))
/ l! a7 y1 h6 }" T1 ]4 G# w - )5 h- R: L+ G, Q$ P! D9 V
- (if9 a2 z4 S" m/ P
- (numberp ewidth)% {0 A( l: ^- Y+ Y6 A
- (set_tile "poly_wid" (ai_rtos ewidth))
- s$ U" u* l/ ]3 D! ]" K - (set_tile "poly_wid" ewidth)
. `! K7 c+ j9 \4 y" M& g - )4 r* t. w |" ~$ \5 \4 m
- (if" Q8 [7 j8 |8 X- B
- (numberp eelevation)
9 S1 @3 I* c9 T - (set_tile "poly_elev" (ai_rtos eelevation))0 G, h- D/ Q2 ^
- (set_tile "poly_elev" eelevation)- h/ k: @+ l$ C0 l. W+ N0 |0 s
- ); K- P7 P8 N, O! B6 e
- (if
# P: o% I6 Z W( _" m - (numberp eheight)
9 U" \' N: u' t! R5 i; w - (set_tile "text_hgt" (ai_rtos eheight))
4 X% n m, q: [, g$ v8 } - (set_tile "text_hgt" eheight)
( V, _* C1 V/ n w" e3 P# T# ? - )
/ {' G. {/ X' Y! l/ i6 K) G - (if (not estyle)3 g8 V. ?: }5 P) C3 u$ y; ?
- (setq estyle ""): i7 U y; w6 C3 F5 x0 R, j1 ^
- );if
+ J) ^& J8 u% I5 N0 F - (setq hair_style_list (tnlist '("style" 16)));setq
2 N$ O1 E$ l- `# I' p% u - (if (not (member estyle hair_style_list))
+ y+ R8 y" F h# a- N& r - (setq hair_style_list (append hair_style_list (list estyle)));setq; A: z% a; e3 I
- );if 7 p5 h; P5 d4 l
- g0 _. \6 {- L5 B# H
- (setq hair_style_list (acad_strlsort hair_style_list));setq- Q% E7 N+ n& G
- (mpoplst "text_style" hair_style_list)
" t- l" F: p* _6 } - (set_tile "text_style" , G7 y! ^6 i: v% V9 _& _3 ~ H8 `5 M
- (itoa (position estyle hair_style_list)); [& x$ ?6 S) w; [# c
- );set_tile % d) s i0 J* q
- ) K# ^2 q1 J3 f, ^ L9 F
- ;; Disable tiles if need be... ;@RK, g' G+ x. k8 R& E
- (setq a 0)* N- J7 m" R5 |0 g
- (while ( < a (sslength ss))
2 d# y- F! a# I- u3 i - (setq which_tiles, _8 X* w" @( G" ]3 f
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
- E" ~3 f: l) V7 K' k3 u* C. }2 { -
' ?$ @3 u6 a4 p9 z$ n* T9 C - ;; If all fields are enabled, don't bother checking anymore.
3 ^9 x- w: M- E3 P8 e. h; \8 x. _1 k5 | - (if (/= which_tiles (logior 1 2 4 8 16))% [; B: I( d/ i2 o4 Z, P6 _
- (setq a (1+ a))
7 n x5 ]$ m$ @9 O - (setq a (sslength ss)) n8 x4 h6 g- Q) Q4 K p, d
- )4 o, J/ J" j U( M7 j0 N
- )
# A h: t) Q1 |" }1 ? - ;; Layer Button and Text Field
* v: o: a+ Y3 g* Q% ]
# s4 x+ I, N3 Q1 M( {- (if (/= 1 (logand 1 which_tiles))
( g) W" k' s4 x. v) c - (progn- _& `8 A( i; B
- (mode_tile "t_layer" 1)* e( s G1 }" {% [5 T
- (mode_tile "b_name" 1)
% @" A& B' e/ @6 l7 V - )
( _3 H; c9 J o - )5 h& V3 N( q9 H' v; ^+ A
+ W# u( j; B. d9 Q5 S' Q- u" N- ;; Color Button and Text Field4 F2 x5 \; s' K. U
- (if (/= 2 (logand 2 which_tiles))
m7 F4 C! o% p; j, | - (progn
& v2 v. e1 V5 q' B- Z1 h - (mode_tile "t_color" 1)
) g' C' p0 x6 ~+ W - (mode_tile "b_color" 1)2 ], E7 v8 L- u x2 ?# g+ [9 e
- (mode_tile "show_image" 1)
: D: |# ]5 j7 @( ~$ h6 [/ z/ z - )
1 a6 @ z& f% s - )% ]& ]! d: ]/ ~. S( w
- ;; Linetype Button and Text Field
& G2 }! P( l- J k9 x - (if (/= 4 (logand 4 which_tiles))9 _8 t6 V! o: y; _ Y
- (progn
# L+ S& y; ?6 C- H - (mode_tile "t_ltype" 1)
: F9 ^3 ^! W' S) W* Q. _ - (mode_tile "b_line" 1)# [1 x( c5 B) \
- )6 s" t6 @5 Q3 Y2 v. J# j: T, s
- ). S( X1 k6 O0 Y) X: M3 h
- ;; Linetype Scale Edit Field) R' n6 j; l7 g+ R* v! M: A# j$ j( v
- (if (/= 8 (logand 8 which_tiles))7 y' J" D6 f Q- H1 I
- (progn
0 M# G9 S$ I; W( S% c- H+ i, ~ - (mode_tile "eb_ltscale" 1)
( Y" }6 F& Y5 o - )
% ?5 k. h5 o; k9 B( y - )
# D+ \ W6 ?. Z0 H - ;; Thickness Edit Field.6 _1 |% V9 E0 i5 ]/ D' z
- (if (/= 16 (logand 16 which_tiles))) }. [6 U& w; l0 u
- (progn3 C* e3 z. F+ n5 t7 t
- (mode_tile "eb_thickness" 1)9 ~8 d# R- R" M; `! ~$ S
- ); O; \3 M# G8 _) w( n
- )4 c5 |) C4 I# y) q
* g+ `2 U; F& m h6 G/ O5 {- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
9 t! A. |) w) h* p. x - (if (not (= 2 (logand 2 eflag)))! q( m9 M y8 k; f8 D; h- I
- (progn" r7 O# S8 y8 m3 e
- (mode_tile "text_hgt" 1)3 Z4 n% W* P. u4 v6 B5 J: I: s* Y
- (mode_tile "text_style" 1), I* L- f9 J$ T( A7 G5 y
- );progn
. B# J% ?, b, {4 `! V3 E. S/ u& J ] - );if/ g. o: f, E# U: B; G H
- (if (not (= 1 (logand 1 eflag)))7 u3 d9 R3 M7 a/ g1 i
- (progn & o- T- {# T. T1 k' { }2 c
- (mode_tile "poly_wid" 1)
+ b2 J/ q! X) T( O - (mode_tile "poly_elev" 1)
0 ?0 g9 a3 ~- S' u) C. U+ p7 { - );progn then disable polyline fields) N) U) d- m- O2 L
- );if- c3 l. ~+ X+ y
- 3 l3 J, t5 j/ n5 K t
- ;; Define action for tiles
5 ~ |6 T, }9 z1 ~! t4 g! a - (action_tile "b_color" "(setq ecolor (getcolor))")
E/ K t5 }4 b, m& B - (action_tile "show_image" "(setq ecolor (getcolor))")
1 M; D8 ]# l( G7 Q - (action_tile "b_name" "(setq elayer (getlayer))")4 T: o4 i% n, p0 Z
- (action_tile "b_line" "(setq eltype (getltype))")1 m& F% ]7 R5 k+ y! h) u" \
- (action_tile "eb_ltscale" "(getscale $value)")6 |3 B4 @' l3 R0 W7 L- F7 E
- (action_tile "eb_thickness" "(getthickness $value)")1 \4 u! J+ R+ ^7 T
- (action_tile "poly_wid" "(getwidth $value)")
+ d5 V! s$ h. X! T! h/ p - (action_tile "poly_elev" "(getelevation $value)")
5 R# k# w# Q, y! L% Q - (action_tile "text_hgt" "(getheight $value)")4 \4 U- }) ~8 M$ M! x/ w
- (action_tile "text_style" "(getstyle $value hair_style_list)")
$ \3 C6 r8 W$ r' c: ]$ ?/ H - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
: f, B0 p6 F# `0 _ - (action_tile "accept" "(test-main-ok)")0 b% ^$ M9 k( e) \4 ? M
, d8 m4 u- J* |" a2 N! j6 W w# i* s- (if (= (start_dialog) 1)/ P. J7 q# [5 o( w. H( b* h
- (progn+ p0 O" p+ a* G) }& V
- ; Update special properties for polyline and text selection-sets.
3 u- e; i% T# S/ V/ n - . Z& C7 {. K6 ?8 D8 W
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
5 ^& u) g _! {9 S- [- W - (or ewidth" w3 p: {6 D- S
- eelevation4 @( ~4 u) _% {0 N. [. y
- );or
- A+ d* [9 U) P; z+ ~ - );and
0 J/ d) v+ f3 z+ x - (progn9 y- B6 u* B4 |1 e0 s' v
- (setq ss-index 0
7 H% m+ r; B, L2 M - ss-length (sslength poly_ss)5 D: B1 W1 K) H- h! c0 x; H3 x* r
- );setq
$ `/ E, J$ o. r' `4 s( F - (while (< ss-index ss-length)
: f0 b( w% u( X6 _% J$ e7 J - (setq ename (ssname poly_ss ss-index)
& B( {& m' ~+ x |$ u - elist (entget ename)
3 z! d7 H+ V3 v8 I - );setq
" p% q! B' \# w* q* E - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
8 Q9 O% R+ x. s# {& M! i - (if ewidth
- @3 M6 K/ l1 U, H - (command "_.pedit" ename "_W" ewidth "_x")" o: j* @- O2 e- `9 H$ X, E
- );if
+ \1 Q7 K% M' N - (if eelevation
* R4 w* V: E7 D% S4 t; T& G5 A4 \ - (progn
9 R3 N: d- S5 E' t* d - (setq p2 (list 0.0 0.0 eelevation));setq
3 L& [4 K- h1 P( t& i, O# ~+ x - (if (equal (cdr (assoc 0 elist)) "POLYLINE")+ u4 n' k" p R8 ]! \9 {+ m( K* u$ y
- (setq p1 (list 0.0 0.0
# }; ?$ j N# B# [ - (caddr (cdr (assoc 10 elist)))& u S5 q4 q) P) c: B, E
- );list+ e; Y2 o, } [: `
- );setq/ S; W b% @. d
- (progn
/ r5 X1 ?! |. H! r! r - (if (assoc 38 elist)
; K; ~$ q" m6 G - (setq p1 (list 0.0 0.0
, g# g- q* |6 H9 w/ ?1 f; ]; s1 ^4 n - (cdr (assoc 38 elist))) |5 r1 }4 ?9 t' g$ s4 g
- );list; j0 B! M4 F: g4 d
- );setq
" O; q' _! [5 v* z6 f, Q& J - (setq p1 '(0.0 0.0 0.0))
6 t. A0 E! Z! Z - );if
* `' Q( t1 U) C& ^. N( X - );progn
, M( Z+ ~: Z9 B5 Y( I U9 y' O - );if+ S1 g3 S. _% G: N* J" i' C, G
- (command "_.move" ename "" p1 p2)6 w4 ~' A3 c; f, A2 I
- );progn then change the elevation of the polyline
' X# U9 L* F% @# ~, A9 U - );if
' r5 n: u/ f9 z3 s, Q - (command "_.ucs" "_p")- P: F r2 _7 F. L( g
- (setq ss-index (1+ ss-index))
2 ]/ n1 a! T1 ^9 y8 A0 |7 j - );while; t. f8 W! p: g/ ]$ U- f- a
- );progn then polylines are in the selset
1 c1 ~9 H' @+ G - );if0 P" s q# l! j4 Y+ h5 [2 \0 b; \7 p
- (if (and (= 2 (logand 2 eflag)) ; text
: h) u! v7 L7 f - (or eheight
9 _0 @% O" e& F3 N% F; x - estyle
1 C. e4 x$ A& y6 ^ K; w) E - );or' m4 l& J2 o) H. z8 e% h7 j. ^- t: t- D
- );and
^3 v* w1 [' p8 \4 P - (progn" l9 f& D8 n- U M8 s: R. K( c
- (setq ss-index 0 ss-length (sslength txt_ss))
0 v$ C1 i+ G. I C( M - (while
d" P0 n# l' K" f2 x" x - (< ss-index ss-length)$ I& S0 o6 x4 r
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))
# B# ~+ p/ o- |' t3 G' s; g4 h - (if (numberp eheight)
, D# C! O1 ]. c. T$ ^/ E - (setq elist (subst (cons 40 eheight)' k5 b1 T0 v9 I/ A" S$ Y
- (assoc 40 elist)$ O8 p: h. m+ }8 v5 r
- elist
/ y# c. P2 i4 ^7 T: N* f3 P - );subst
. \; `1 U: @5 C$ H/ D: n/ K1 i( r - );setq
7 X( [ H2 G8 B+ N e3 P' W+ n - );if
' ?7 i$ U8 q. }5 z, v a$ v - (if (and estyle ;(not (equal estyle ""))
! @7 `1 U1 P+ z4 D) X o% l8 l y - (not (equal estyle (cdr (assoc 7 elist))))
% j0 w/ Y2 G5 P7 T: P9 ~! t4 d3 i - );and
, ]0 L1 q \6 t: n, Z, g - (progn
' ]: J: _( t( ?# U - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt ; M) p; k, G6 }& s% K) ^. j
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))8 c0 o' `0 l! S8 _
- ; (setq elist (fix_mtext_fonts estyle
3 Q/ X7 s' V+ @5 b. q9 X: [ - ; elist
0 ^6 S7 z" }0 X9 P8 b; H X6 J - ; )+ g6 J4 U! A# i, s* p
- ; );setq then* R8 C' A( g9 h2 p2 `
- (setq elist (subst (cons 7 estyle)
& q2 U4 i$ X; y! k* u: j, n1 T) N1 G - (assoc 7 elist)
' u% x- v0 j! V* n1 V - elist! J" c3 N) x+ I
- );subst
+ P) v9 J1 Z( F' ] - );setq else4 Q& F/ E$ I- G+ z' j2 m. z K5 y$ h9 K
- ;);if
H9 H. o' p2 T) ? - );progn0 x7 F9 r2 L/ y- q- c, a& a
- );if) ?( v' d& V9 J
- (entmod elist)
( \8 n5 N% E3 N5 Z( ` - (setq ss-index (1+ ss-index))4 P+ o+ S- q) u, F( M8 ]) s
- );while1 S& r; n3 R3 D& p3 [ {
- );progn then* h+ e0 n4 [) H; W( f9 ]4 }6 T
- );if: I. Q$ n( X! N2 k/ d/ u/ B
- ' s# Z& R! S* t! C" \0 P- U5 F; `4 ^5 e
- (setq cmdact (getvar "cmdactive"))5 P4 @' e( ~5 R: }
- (command "_.chprop" ss "")
4 m- F3 @2 Y9 E/ I - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?2 G+ q5 @" H! N7 u' S
- (progn
$ F. l3 k0 L2 T. @/ I3 e. E- z - (if ecolor [( m9 D1 Q7 Z3 H) g" b* @+ X1 w
- (progn5 T5 E3 R* z" g4 h0 ?7 ?
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))* D/ j9 x0 T- Y* z( ~, E
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
8 K9 P6 g" ^$ X8 ~4 f, Q+ O7 Q+ @ - (command "_c" ecolor)
5 f2 A' X6 w _5 w ` - );progn then
7 f6 i5 o0 \5 m; } s - )# c% n3 y& Z9 N9 E. E% o+ t
- (if (and lt-idx7 N F2 q8 \$ G! o9 n
- (/= eltype ;|MSG0|;"Varies")0 A N: p5 A) I% b( x! n
- )
]3 `* N4 Y. R - (command "_lt" eltype)7 g8 p4 X: [' H* M
- )
$ W* i' Y( a4 _5 ^1 z/ \7 K - (if (and lay-idx
$ i4 z' F7 ?7 j8 D/ C. x! }" t1 |0 s - (/= elayer ;|MSG0|;"Varies")9 @# P* N- ~% A$ N! W
- )
K: k* Y; C- C* p { - (command "_la" elayer)
- S9 b5 N' \) R) l+ P - )# Q: p! y8 w; P: M! O& I
- (if (and ethickness
, Z5 o' U9 i- K* g - (/= ethickness "")
7 ?# n9 _) i9 a4 ~ - (/= ethickness "Varies")
( k5 u7 W' Q: g+ `7 z - ) o1 n4 u* O% S- f/ f+ i7 }. t' m7 W
- (command "_t" ethickness)
- `* S. g& t2 S, r4 M - )
5 d/ c* w! f& K2 F+ t, [5 g - (if (and eltscale (/= eltscale ""))
( G, P2 R# T0 _/ z - (command "_lts" eltscale)8 O8 \1 M' E, i' P" B' a
- );if+ {7 p; G! j" N& |* x
- (command "")5 N+ W7 h: H4 F$ n( a V7 W- }8 d7 h
- )
6 {$ a. C4 ]3 k2 A - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
% f ?# B! r- }8 _ - )1 c# Z$ F5 f+ ^
2 c, ^! x/ W5 p- );progn then OK was picked in the dialog./ ~& b8 Q* t K( g; V2 n
-
4 o' c0 m1 g, A. [! V - ;; Fred GERBER - 25-AUG-94 p# U; E3 R& F8 D
- ;; Don't print the "Properties unchanged" message when the user cancels6 C& z5 `% U0 T5 u7 H
- ;; the dialog because he knows that already (otherwise he would have, L( A% v; y1 m# Y# g* a
- ;; hit the "OK" button). Display the message only if CHPROP fails for$ `) w9 t: p+ |4 C" Y
- ;; some reason, because it is not the expected behavior of the command.
) Y1 O$ P1 o# i/ V - ;;
/ Y* {, [4 h$ ]+ I$ P( V - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
/ h% G3 h% t4 h+ K - );if: T& K2 d l! r4 C5 m
- (princ)
. ]1 o% [) U/ u; M; e9 L7 A# p - );defun call_chp28 C6 b3 H! I* w, l9 S7 m+ r$ z
- ;;
7 r1 e( F' o8 N$ o* Z - ;; Function to set the Color text tile and swab to the current color value.
1 I* q/ U; s: W a1 ~0 `1 _ - ;;4 L+ G; K* A; O
- (defun set_col_tile()) k6 l0 j+ D9 l
- (cond
, D9 j, G, Z9 H6 _ - ((= ecolor nil)7 \6 z( o6 g# K
- (set_tile "t_color" "Varies")2 I' ^$ S, o# D& k, |3 i: u7 F
- (col_tile "show_image" 0 nil)
$ @( d8 t" h8 Q" v+ V; v" p - )
1 N- s$ {/ V# c( m, o, t, u - ((= ecolor 0)& o" p: K7 c- I' W/ L @4 g
- (set_tile "t_color" "BYBLOCK")2 g4 j9 b) j8 ~- _5 |
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
" l1 H( W0 d; r5 B4 F/ A - )
1 D! r2 C: ?, A - ((= ecolor 1)
0 L/ W, t0 I9 u2 g. w( q; N - (set_tile "t_color" "1 red")
0 Z1 W' h$ B& Y8 W - (col_tile "show_image" 1 nil)
$ L9 S/ x4 `1 Y2 L% @: ^ - )
( J2 Y4 y2 E; J0 O5 N9 V% i- t% x5 t - ((= ecolor 2)6 e) B9 s3 D* | r
- (set_tile "t_color" "2 yellow")
V Y3 X8 q$ T9 A( v% ] - (col_tile "show_image" 2 nil)
- V: F' [. x2 O9 V4 r& S; w - )- Y( a1 k F: R. i# N5 C! y
- ((= ecolor 3)3 D& E# v( k- @
- (set_tile "t_color" "3 green")
4 j& v- G' k2 Z# f$ x - (col_tile "show_image" 3 nil)4 f' S8 u! z+ A& z0 [# W. M) f
- )
5 R9 W2 G# H9 Q. U( \ - ((= ecolor 4)
. M3 K3 B+ J' C7 J ~8 m( `) H& W - (set_tile "t_color" "4 cyan")' W* N6 S; ]9 `: H7 ^' L7 p4 ~
- (col_tile "show_image" 4 nil)$ `8 c+ B0 b3 c* H" m
- )
6 Q4 O! m6 w; ~- d+ I# F - ((= ecolor 5)2 o% f& C. E9 a0 p8 j% D. [% f
- (set_tile "t_color" "5 blue")
$ l; k( [5 I' b/ g& y* ^3 Z - (col_tile "show_image" 5 nil)
- J' x P. L! n' d! e- a - )
- k4 E# d2 ^( c* ?- W - ((= ecolor 6)
a" {* q `( f9 F2 g+ T( D - (set_tile "t_color" "6 magenta")7 M# _$ U/ X6 G& U j% I: j& D
- (col_tile "show_image" 6 nil)
% ^# |& u' p! `% x( N - ), }0 [6 H- d$ @( O5 d5 V
- ((= ecolor 7)
1 x3 }' H- q& V. ` - (set_tile "t_color" "7 white")* m9 J+ i, W, _
- (col_tile "show_image" 7 nil)& [, S7 ~) A3 l; r) S4 M
- )
" [9 L3 Y/ f/ z& e" x% p: Y: X: ? - ;; If the color is "BYLAYER", then set the tile to# _' \) B f; d8 R8 p1 a5 }4 b' N/ `, o
- ;; show it's set By layer, but also indicate the
+ |+ v7 D7 {& s* a# s, | - ;; color of the layer - i.e. By layer (red)
1 \4 y5 E; M' s8 t5 v/ D - ((= ecolor 256)
9 c& ]* @, V) o1 Z* V) M - (set_tile "t_color" (bylayer_col))( W" B0 I: b! w
- (col_tile "show_image" cn nil)5 O+ T4 B7 E4 e. l; ?
- )
2 W S }/ k# `, a7 G - (T
& {% {! z" M: j! i7 c: B - (set_tile "t_color" (itoa ecolor))
7 e4 i+ ?3 A1 V - (col_tile "show_image" ecolor nil)
- K3 l' l* r& K( Z) E - )3 \! H3 Y1 P4 S; O( J6 L* n% y* H
- )
% e8 V O% s; u5 C9 i' F - )" t* l* y2 a" m9 \
- ;;: V# C, R/ Q6 ^& M& d) I
- ;; Function to put up the standard color dialogue.
% b* T' p6 Z( e. d3 {/ F - ;;
9 X0 m8 |- s' `2 t6 m - (defun getcolor(/ col_def lay_clr temp_color)1 a. o* ~5 i& E8 ]9 H
- ;; col_def is the default color used when rq_color is called. If ecolor$ u# p- H) {6 K2 c+ L
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
( j8 T" u# q% N$ d - (if ecolor& ` K3 p' U* e. M( \
- (setq col_def ecolor)
, F+ M4 w- |+ ^7 w( ~ b8 B - (setq col_def 1)3 Y# C' P) a8 s0 |3 R3 J( B6 I
- )3 C8 x; K4 {7 F# ?9 U
- % o; y4 O+ |! Y' N# S
- ;; If we're working with a single layer, get its color k; R. [) L9 b
- ;; for use in the color swatch if the user selects color BYLAYER.' ^, p% b0 A: [# @
- (if (/= elayer ;|MSG0|;"Varies"), J6 _1 S, d( K$ D3 @& P
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
- e6 k8 Z. k& l' v# \- v - (setq lay_clr 0)
0 d. \$ d) A4 T$ f: P - )' D8 @. a% b, s- W2 ^" a
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
' ?; E2 s" S2 A/ m8 \) ` - (progn% B. u0 c/ T3 r" D9 V
- (setq ecolor temp_color)
* y1 ^3 n" J; E6 s - (set_col_tile)
" z% `2 d) f, t( X - ecolor ~4 G* j# r) G7 M9 E2 f5 X
- )
; c) |4 S4 ^6 y0 ~1 e7 Y - ecolor& V7 \! h& Y/ ^+ d
- )
: e! s$ U5 o# m; h) i - )
: k$ h: Y! `4 u( a, j7 u - ;;' X0 M1 H( O/ G' i7 r0 J% ?$ G' v
- ;; This function pops a dialogue box consisting of a list box, image tile,/ N/ r9 l3 F0 A" C+ N x4 V
- ;; and edit box to allow the user to select or type a linetype. It returns& g) g+ M4 `4 U6 d, h* l
- ;; the linetype selected.8 l' `/ X7 |: k, I" I( m
- ;;
! _4 Q" ~% l/ ]$ z# z$ Y, A - (defun getltype (/ old-idx ltname)9 J- N( J2 C2 O( l
- ;; Initialize a dialogue from dialogue file6 n5 n' U) ?' ^! G/ \% {
- (if (not (new_dialog "setltype" dcl_id)) (exit)). [0 ?9 a1 T& \' V' b1 X' |1 u
- (start_list "list_lt")
j9 C. l; C" z* r. s7 t( B - (mapcar 'add_list ltnmlst) ; initialize list box$ T$ p9 q, ]( j9 d& y
- (end_list)8 g/ P" `% p9 Y& s, f# Z
- (setq old-idx lt-idx)* X: L6 W5 q6 r
- ;; Show initial ltype in image tile, list box, and edit box
; L1 q% p% \$ `! h: \8 G$ p - (if (/= lt-idx nil)8 y" M7 Z$ y* S0 {. u
- (ltlist_act (itoa lt-idx))9 \8 a% i! [ E% ]1 S2 D Z4 ]
- (progn, x9 x" l7 ]9 w5 s9 C& \2 f @ I
- (set_tile "edit_lt" "")
4 u. R! F0 F' ]2 J - (col_tile "show_image" 0 nil)
/ Q" P0 r1 o- x: Z7 _' a: ?1 ^ - );progn else
* Q6 G9 J) m$ U. L% Y9 v i( S - );if
+ [' h5 J, ^; Q' |/ f( d# C) e& ?) [' t- z - (action_tile "list_lt" "(ltlist_act $value)")
, S0 ~5 |/ y. M; g1 z& C - (action_tile "edit_lt" "(ltedit_act)")
. e9 q F% Y" \7 @! _ - (action_tile "accept" "(test-ok)")
[5 |( ?, K& T" {: e# W6 b- a - (action_tile "cancel" "(reset-lt)")
F+ C9 g- `4 u0 T4 m9 d - (if (= (start_dialog) 1) ; User pressed OK+ B9 Q' V2 K2 `- E1 ] I+ w
- (cond
# [- t9 d1 m$ a9 R, k1 n - ((or (= lt-idx nil)2 s, ], x7 z# ~! [& C; g! c2 m5 e
- (= lt-idx (1- (length ltnmlst)))
9 V/ `) B' e4 ^0 l - );or
9 _( P3 X& P. r/ Q3 c- e$ T - (set_tile "t_ltype" "Varies")
, ]- }1 Q+ _- L+ w* `/ b - ;|MSG0|;"Varies"
) J# w4 x3 Z4 B. G* { - )
9 G9 I( y4 g1 A/ X- i. v9 o7 n - ((= lt-idx 0)% b; Q* W: o7 D4 Q9 r" Q0 l# v
- (set_tile "t_ltype" (bylayer_lt))' O4 d1 `+ y7 _" v) ^ R2 Q
- ;|MSG0|;"BYLAYER"7 K- _2 r) z6 P% ]8 b5 \. x. E& T
- ), r, t9 O! E6 }* a v
- ((= lt-idx 1)
3 J( S) z8 }- W* Y e9 M) n+ x - (set_tile "t_ltype" "BYBLOCK")
* `+ c# q$ d! }3 @1 h - ;|MSG0|;"BYBLOCK"0 B% F/ _2 \" w# K) }8 a( u$ z
- )
+ \$ ?. y" T. ?' j - (T5 ]! Z) Z! z0 E6 p- Y5 L
- (set_tile "t_ltype" ltname)3 A9 K! S3 H8 G; B6 h; t0 s
- ltname
8 o# L6 @; F% o( j' o) J6 G - )$ m% O: B% \ ]9 x3 Q j
- );cond then8 ?* U# b8 B1 q
- eltype! p) |% O8 V8 w
- );if
F$ c" W. `/ t% K8 A+ ~ - );defun
+ N3 L- _) O+ Z- j+ w5 y: z - ;;* t9 Y* k& I- f7 t/ U) K
- ;; Edit box entries end up here2 Y9 _6 x) r9 a2 G: @/ h+ F% A
- ;;
$ W4 B5 q8 H, A, B; ] - (defun ltedit_act ( / flag)
& u$ W F2 p3 i; O - ;; If linetype name,is valid, then clear error string,
6 R% R0 Q0 ]% @ - ;; call ltlist_act function, and change focus to list box.( y% G( y* i, B
- ;; Else print error message. Q; O) q9 V9 } p
-
: e: C" ?% u% Y X) ]5 L - (setq ltvalue (xstrcase (get_tile "edit_lt")))' n( T U& S Z
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")
) Z& h: m" p( M, Y4 ^# o( Q' K - (= ltvalue "BY LAYER")( k, |$ e$ y. j
- ) |! F8 n: b& e. a& _; n# Y( K+ l
- (setq ltvalue "BYLAYER")
' W; m- G, J T3 i8 j - )
. a- P9 D+ z: k. ?- _7 [/ {5 d - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")* A* T$ H8 ]# P" ?: u
- (= ltvalue "BY BLOCK")
f$ _/ C! b0 }7 B4 b - )
" ^/ F' v; |' {" l, w5 a - (setq ltvalue "BYBLOCK")
3 R5 r- r: `0 P b* ~2 }( @3 P - )
# m% _* q' Z; ~# r, ]- M( o/ ?8 M - (if (setq lt-idx (getindex ltvalue ltnmlst))% r z/ p3 E" B
- (progn& F2 c" i) O2 y0 g- u
- (set_tile "error" "")
' d7 |$ S2 C! ` - (ltlist_act (itoa lt-idx))1 t/ A' f4 j3 P4 N! o/ n6 s/ E& x' `7 J
- ;(mode_tile "list_lt" 2)* ` |8 q/ D; d8 J( ]
- );progn then5 X/ V& z# ]% t. ?, l# M
- (progn
$ i! Y7 q7 H1 m1 f& V+ R4 v$ c - (if (/= ltvalue "")
& d; `9 A5 {3 Z: e& S* V3 C1 g - (progn d0 `, K* D. ~/ B) [) M, k
- (set_tile "error" "Invalid linetype.") d+ [" G# }- W- F) k
- (setq flag T)6 R/ Q5 g" D( R( S% T. k
- );progn
- t! u, R; [. @, v9 R, N - )9 v$ \" o/ b$ n/ \) B, v* P
- (setq lt-idx old-idx)
3 P% n4 f3 v4 I y6 G4 a - );progn else
6 u3 j7 A6 P* y) p - );if
( E1 x# n* T T1 u; S4 L- t% N - (if (and (not flag) ;added so a return will take you out of the dialog.
N2 a) s. G% x0 b4 n+ f* Q8 E- L - (= $reason 1)
& E' \! y+ m! U$ x8 Z2 O - );and# E8 {" Y( Q9 c& F4 i+ I
- (done_dialog 1)
5 ?& T: m. i5 m" {4 |' E6 }+ @; ^ - );if
) S$ h) C. ~7 T0 X* a5 A7 ~) I8 I - );defun ltedit_act
6 o: H* N* g# n; K) E - ;;
7 }% o+ U6 D. z6 d- }9 B - ;; List selections end up here
. G8 ?# d3 }" I1 Y8 [. n - ;;
2 M) Z& `8 [% N+ O" u" }5 ~ - (defun ltlist_act (index / dashdata)' C2 n$ W( V( E: W# m
- ;; Update the list box, edit box, and color tile: C( i$ h7 E( u: p* U
- (set_tile "error" "")4 d: {' W* s9 Y
- (setq lt-idx (atoi index))! }$ |* b4 X# m
- (setq ltname (nth lt-idx ltnmlst))/ X( i- b0 ?' M6 ?% M
- (setq dashdata (nth lt-idx mdashlist))0 {6 n& B" A9 [- O& ?
- (col_tile "show_image" 0 dashdata)% _# `4 W9 _" T# C% K: X
- (set_tile "list_lt" (itoa lt-idx)). Z* n9 V* o( t- n! P
- (set_tile "edit_lt" ltname)$ f# V) d3 U. E, S( ~
- )
* c2 S+ M2 n6 j7 i! Q - ;;
% ?) G) }7 s: \. m) M- u/ n& [ Y - ;; Reset to original linetype when cancel it selected
7 O% X u% a; O% [ - ;;
" C0 ?1 M: U' m7 h# B" d - (defun reset-lt ()# E$ \1 r: C4 @" M1 Y* R3 d
- (setq lt-idx old-idx)
S; O% \5 M7 [ - (done_dialog 0)
' @# ~9 Y6 w7 u - )
3 S) x2 N+ l. F1 n" E3 w - ;;
* I- \) E# j1 ]$ r7 L - ;; This function pops a dialogue box consisting of a list box and edit box to
3 b3 O' |. R0 p - ;; allow the user to select or type a layer name. It returns the layer name
7 S6 s; }" o* c( B* D/ s - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the; A9 y, ^7 \" w, s7 |
- ;; drawing." B! @+ R7 o, P+ L% p
- ;;
0 E3 a o0 ] @7 @$ G - (defun getlayer (/ old-idx layname on off frozth linetype colname)8 ^ b: {1 G- i6 O8 w; a1 ]
- ;; Create layer list the first time the layer2 H0 }# n9 v8 q" T7 S1 A
- ;; dialogue is called.
7 B7 C: N/ v, y - (if (not lay-idx)2 N0 |- G; ?4 W# r0 {1 h4 G( z) e1 Q
- (progn
! L5 P/ D$ |+ C" l - (makelaylists) ; layer list - laynmlst
4 ~" r6 h( `. u( Z( Y9 h - ;rk
' L9 c4 Y# ?; f) d9 w1 T - (setq lay-idx (getindex elayer laynmlst))1 Q' }8 x# p* r0 G T' _
- );progn0 v2 I* R+ P! b9 K" c6 ~% E
- );if: @" {! f" q5 R1 y4 P
- _! n8 t2 M- z8 B! K* P. n0 T! t
- ;; Load a dialogue from dialogue file
2 w& i- d# `1 `& u3 a- v - (if (not (new_dialog "setlayer" dcl_id)) (exit))
- w. H& O- H, P5 J - (start_list "list_lay")
3 p, f# p3 M1 `" N- P& ? - (mapcar 'add_list longlist) ; initialize list box
, i$ i5 _! K* I. X9 k - (end_list); `: g. d# n6 w# P5 h$ v A3 G
- ;; Display current layer, show initial layer name in edit
" e: c2 c( Q0 d1 c - ;; box, and highlight list box.
4 \' u F) V0 N% C: X7 n W - (setq old-idx lay-idx)
( S% g6 L$ A% S3 S: t - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
; M& u* |& Q" j' ^ - (set_tile "cur_layer" (getvar "clayer"))
$ @1 {9 [7 O" X9 Y' t# ] - (action_tile "list_lay" "(laylist_act $value)") r) R0 U. \2 [* o
- (action_tile "edit_lay" "(layedit_act)")
. n- Q3 z+ T* p - (action_tile "accept" "(test-ok)"): T6 X9 i1 ~( ]( C; P* Z
- (action_tile "cancel" "(reset-lay)")
$ y @( @% |: D" O7 Y - (if (= (start_dialog) 1) ; User pressed OK) r& _) H: g1 L( E3 }- u
- (progn3 f$ C6 L/ o) ?4 M0 R" V9 A! u1 ?- @0 d
- (if (or (= lay-idx nil)6 @4 [% P- u, O7 B% A/ |
- (= lay-idx (1- (length laynmlst)))
4 |4 w/ P8 b+ g7 n, \ - );or$ Q/ V) x' E9 S3 V3 F. @- L$ D- k
- (progn/ L+ p4 X% v' g9 e
- (setq lay-idx nil)
" y5 p- w+ v$ O! B% I - (setq layname ;|MSG0|;"VARIES")- [3 E' s* c9 J8 |
- (set_tile "t_layer" "Varies"), {" M' c" {$ O# @: u
- (setq layname "")/ v4 }' ]% e, @) O% o% j6 X! m* C
- );progn
7 U& }& s+ ], m- Y$ ~% a$ ~ - (set_tile "t_layer" layname)
( j6 o8 \, I/ E/ t" a. e - );if0 ]8 Z* Z( C! F, N2 a, D
- ; If layer or ltype equals bylayer reset their tiles
" S6 `: b" W$ C6 j# w8 v0 U - (if (= lt-idx 0)
+ ^& [- \6 m: v2 L3 W* w - (set_tile "t_ltype" (bylayer_lt))+ T. o' M$ w4 }
- );if" n. {. v0 U% H/ }" W0 g, n# }
- (if (= ecolor 256)
: _8 p! v& L- i0 f4 _ - (progn9 n3 v$ k1 P% `0 C1 T/ S# C
- (set_tile "t_color" (bylayer_col))
8 p6 G/ K5 d3 J r - (col_tile "show_image" cn nil)
1 [2 n1 @0 v- i I$ `4 |" r* B - ); j4 ]6 P% Y0 H4 ?( P9 @8 z+ S' V
- );if! @0 T {# g/ e6 N
- layname
& m& J, N& ~! p; [. k/ [4 ` - );progn6 X( K: B: S1 m. S
- elayer" i1 ]1 r( l% K, ?( A/ X
- );if
6 E1 z6 s& `0 P* m/ r, ? - )
" }6 s( n5 }& q0 v5 C - ;;2 C! l, `5 z% E1 J4 W/ v
- ;; Edit box selections end up here
7 I+ {9 ?) `4 ~; I7 H# j, P! a+ } - ;;! Z6 M' R B9 n1 |/ V# X5 ^$ K
- (defun layedit_act()
% s5 s; L8 q; i7 F5 Q, m# S - ;; Convert layer entry to upper case. If layer name is s$ W: G8 R9 @8 K5 |
- ;; valid, clear error string, call (laylist_act) function,
# J k* F: j" o3 V {8 s$ z2 Y - ;; and change focus to list box. Else print error message.
* X$ l1 u H" f2 D! [ - (setq layvalue (xstrcase (get_tile "edit_lay")))* @! x$ I. Y0 H
- (if (setq lay-idx (getindex layvalue laynmlst))
# R- G; Q7 T% m - (progn7 W' c% N8 T2 D
- (set_tile "error" ""): |9 p. R$ F* T/ v
- (laylist_act (itoa lay-idx))
0 i" H; @5 O- W! J - )9 e- K5 d5 s0 ~- j! G; }$ M7 i
- (progn
' U# i" z5 A h% Q. T+ P& c - (set_tile "error" "Invalid layer name.")
! G" Y6 n# |: y" Y" |) a9 g- | - (mode_tile "edit_lay" 2)! c0 t# |7 C; H# P J. _
- (setq lay-idx old-idx)
" z1 P0 L* G( L3 e* V6 M0 |3 L) d3 X; k' v - )
) k5 q; c. G, S - );if
' S, D t& c: X0 ^; d% S$ ] - );defun- j* ~/ {3 a9 m" X
- ;;
& L- F8 y5 p/ \7 e: Z+ F: j - ;; List entry selections end up here* q+ f9 O$ h% J% u) F' e- V b& L
- ;;
6 a l+ U6 J- {- W - (defun laylist_act (index / layinfo color dashdata)
9 _7 ] ~! h+ O; { - ;; Update the list box, edit box, and color tile
7 Z1 b# Z, @% h; M% I - (set_tile "error" "")
8 n& l0 [% n; @1 ^# }7 _7 r - (setq lay-idx (atoi index))+ Z2 h+ F2 S! _! N$ d
- (if (not (equal lay-idx (1- (length laynmlst))))
5 p/ H7 _" S3 ]4 a - (progn - p6 J* j1 s' q9 X( i2 r; D( h; w f
- (setq layname (nth lay-idx laynmlst))
- R% B' b/ Q3 y6 v. `$ l - (setq layinfo (tblsearch "layer" layname))
" M' B# `4 X; Y4 I: a( |) A - (setq color (cdr (assoc 62 layinfo)))9 q0 O5 C9 i& z
- (setq color (abs color))' Y. s+ a8 q. e/ N0 ~/ ]
- (setq colname (colorname color))0 H: N, C: K0 h% t
- (set_tile "list_lay" (itoa lay-idx))" Z, L8 w3 ?& e' y C2 s
- (set_tile "edit_lay" layname)
5 b2 Z0 }( t- U+ g: ~% x - ;(mode_tile "list_lay" 2)4 T8 Y6 k; I3 @/ p* J8 m$ S# ?( c
- );progn then 0 M6 Y" j/ ~0 U+ `" P. Q; A8 _+ A% x. J) W
- (set_tile "edit_lay" "") ) w: z- }) c# x5 x5 [
- );if + \9 G# \3 M4 R/ A+ e7 P+ [9 F" ^
- );defun laylist_act1 ^5 U) {8 S: D4 T2 P% V9 {' s3 y
- ;;) }4 @0 g5 G1 J6 ]. ]2 S
- ;; Reset to original layer when cancel is selected* T/ G7 d' [( U% Q3 u7 ` V% r
- ;;
" C$ m8 Y: L( [ d - (defun reset-lay ()
# A1 _# v; N) q S - (setq lay-idx old-idx)4 J; a, [: Z" y1 }
- (done_dialog 0)
- s: K5 F- |8 `! q' r - )
% t* ?5 e9 x. e+ `, q% ]9 Z7 n - # L V6 r0 E1 L: r: r& Q' f
- ;; Checks validity of linetype scale from edit box. It checks to
* ~; G% [# Y! `& s - ;; see if the value equals "Varies".
2 v7 _3 ?! b9 K* d+ x+ D: R& H( N - 6 `0 C8 F6 d7 U8 ?. u
- (defun getscale (value / rval)
5 Z U5 g% D0 k! ?+ f o; z: C6 H - (setq value (strcase value)0 ]8 o4 \! K" |( G) q
- rval (distof value)
% W K5 }( w' m4 `1 n' d8 Z" j - );setq7 |& ? ?1 s% M; S+ z6 f
- (if (or (= value "")- |) c/ q4 G- F! E4 z- z# o& `
- (> rval 0.0)
$ |( f& h# o& o) ]; Y! f [* @ _ - )) p/ {7 l4 ~+ \- P$ Q
- (progn
" U# D& p% l# D& f+ f3 \6 s* S: H; W- O. L; X - (set_tile "error" "")
6 @" g' c9 l# I: z# U - (if (= value "")
8 L2 o5 f" ~. c3 N6 o& H - (progn
& ?( t, g* H* X9 P& A: H/ t - (set_tile "eb_ltscale" "")
7 g6 o5 H- B6 ]8 J! u3 Z - (setq eltscale nil)' H; V1 M9 ~9 W1 C; I3 }% P& m
- );progn then
+ @2 U/ g r8 m- x/ U/ x6 E( a o' i - (progn/ P* v$ x/ y2 u
- (setq eltscale (distof value))/ h2 u( q8 ?/ V2 ^3 M; T1 v: p/ K1 q
- (set_tile "eb_ltscale" (ai_rtos eltscale))
; H. q$ ?# j4 Z, g - eltscale
0 |$ R, M7 h* b8 N$ o6 G - );progn else6 s) `8 w( \7 q
- );if8 P$ K4 ?1 [7 K: E, {( X+ i' _
- );progn
6 l7 Y# a% O* C- n |$ n - (progn0 o# T: [* u. z! [; X
- (set_tile "error" "Invalid ltscale.")
& J4 E1 p9 \1 Z! q: ?2 I" t1 ^ - nil
7 g5 o6 ?) z/ y - );progn else
8 Z- @; V+ {) \1 o ^- `( u - );if2 L9 J$ P( H; I; ?. ~7 ~
- );defun
/ I* O) A5 M+ @2 Q1 R( t9 q - ;;7 Q" a" ^ W' r1 n+ W: I3 u
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a% D* }- K8 Q2 G7 n4 n r' r
- ;; string can't be converted to a real, this routine checks if the first2 g0 x j- b/ \$ f
- ;; character is "0". It also checks to see if the value equals "Varies".
6 T, [, p- W# L _* u: V) W( ^( T - ;;) `& P t9 o+ K, ~- R3 n/ r
- (defun getthickness (value)
( g# c3 E, g1 e- ?' G - (setq value (strcase value))4 [( R) v( O7 ]
- (if (or (= value "")
2 ^8 y. f8 s" q. d" k2 j - (distof value)
, Z h& N$ ~& P- c- [2 A - );or
0 M$ d2 P2 S: ^* ~ - (progn. c& P: t* A! q/ z/ r
- (set_tile "error" "")
; [0 g) U: a& u9 ?" j) B/ [ - (if (= value "")
! D5 o* |( G9 Q2 x0 r/ h, F - (progn
1 @% h$ Q, L; b& u# ~$ j& i0 ?0 l' B - (set_tile "eb_thickness" "")
' }# _2 I" d" u - (setq ethickness nil)
: }) K& k I3 b/ X& ^ - );progn+ v4 H& c$ Q0 X5 t1 o" {
- (progn3 p; E- I% U6 @
- (setq ethickness (distof value))' [4 X3 Q& o% s: `* h! [
- (set_tile "eb_thickness" (ai_rtos ethickness))% x* g, h- ^- J/ T
- ethickness* [: u5 _" Z4 j5 [! |6 o
- );progn
: P0 d2 V! T" B - );if9 Q7 h N; P) }" N
- );progn
; i" K+ Y! v8 L% `: F$ C* w$ v - (progn1 d" U/ Z+ C q% T
- (set_tile "error" "Invalid thickness.")
8 i( u2 h ]7 i+ ?7 i - nil1 G% M; Z% A1 t9 y4 a2 \; N
- );progn4 E) X3 a: \0 `8 b
- );if: u0 M; }. A# D r
- );defun 9 z r2 E' t/ h- K3 B1 G. I. J
- ;;
8 |% B3 ]; [( J) W% O0 d# R - ;; Checks validity of polyline elevation from edit box.* ~2 T) R5 ~ n0 ^
- ;;
+ }# a6 c$ I) s5 l1 F3 A - (defun getelevation (value)3 o0 E, I2 k0 |9 t. {( Q; d
- (setq value (strcase value))
2 N3 Z& G' Z4 W* Y6 z* G4 Z6 } - (if (or (= value ""). }7 o. @- K* Y
- (distof value)% G" ^, E2 K& D
- )
# o2 }6 V5 p7 Q6 \6 I7 U: W: p - (progn0 F- N" y- z: p4 j
- (set_tile "error" "")7 W- L* {! ?4 O1 m
- (if (= value "")
x, _5 L2 \: ]3 p" E' w# Z2 b - (progn
: R) N2 D2 a" H. l k - (set_tile "poly_elev" "")
: J/ \% {( P: O9 a0 l; n - (setq eelevation nil)
7 M3 l0 c& O& n' s0 m5 X! J - );progn
* v# c2 P$ S3 R( O) a) ? - (progn
! R" f! g; }, `* E p' N* l - (setq eelevation (distof value))
0 O- ~- Z7 ? I' d1 g; c$ \0 J - (set_tile "poly_elev" (ai_rtos eelevation))+ z5 g5 Q. w# f- ~. A, R9 m% q
- eelevation/ g, e8 a* _& T1 G
- );progn8 D9 C+ l( @4 o0 ^
- );if
# I* r( Z1 l; o1 O2 W. S - );progn
7 f% E5 i8 L7 O - (progn9 e* d1 ~/ ^+ _) `$ s( }
- (set_tile "error" "Invalid elevation.")
& N. B" ]" I' p8 m; x# m - nil
5 P2 N# u0 C% O5 x2 _ - );progn
! K0 q( E( R H0 u( E - );if
7 c8 `* y/ c1 H: w$ ~5 a - );defun3 f' B' @9 ~9 r+ l4 Z) s
- ;;% u+ B. [% {8 r- O, j
- ;; Checks validity of polyline width from edit box.
1 ~1 z9 p( h4 m - ;;" E$ G! N/ ^( x' b
- (defun getwidth (value / rval)' s" i9 e6 s# R' l8 t! L! a# n
- (setq value (strcase value)
7 D: C, t2 v9 A2 P5 O l - rval (distof value)( n) W W$ |9 m1 H* V' K, g' ?
- )
( K: q2 O& y) g/ k; n6 m - (if (or (= value "")
3 k/ L0 N! m! Q ~0 z% [ - (>= rval 0.0)# W! d1 _& Q) y- F% O
- )
+ v! k4 D* d" n4 [ S' r2 r( e - (progn6 E4 K0 [* M3 J, K& a0 C
- (set_tile "error" "")
2 T7 N n% o! \" C! h9 y$ [ - (if (= value "")
6 ?9 B" E* d% g7 J$ N - (progn0 S7 ?. z( Q8 ?7 w5 G& ]
- (set_tile "poly_wid" "") R- c8 @4 L, N& [; E( V W
- (setq ewidth nil)
6 N |# @& Q, n6 v/ h - );progn
; a! O# p, ]7 T9 q" V7 d4 a8 l, y - (progn0 U) v6 {. s w8 _ Y/ S
- (setq ewidth (distof value))/ ?0 i9 r& E+ Y8 ^) S3 O
- (set_tile "poly_wid" (ai_rtos ewidth))9 E2 Q6 d1 X$ B6 M! U
- ;width
! h( u* q6 } Z$ r* o1 g3 X3 C - );progn
, F2 H6 z2 s4 h3 u k - );if; ]8 B% P. s1 |( x% g7 m4 r, q; s5 v
- );progn/ `0 I+ A) B. X& u/ W
- (progn, U& n U h: L a2 P; \2 c
- (set_tile "error" "Invalid width.")
7 H% `9 a9 @6 o% z; n" u5 h/ U - ;(setq ewidth nil)1 j: y. ?( Q# j7 f# `5 f
- nil
! b6 i1 R7 N) b% |- p - );progn+ t; m. Q! I* A% ^; t
- );if! \9 T% W5 {9 o6 L$ l
- );defun
5 {% o0 \4 N4 h0 s' U$ P& y - ;;# ^) W8 e# S8 E; o
- ;; Checks validity of text height from edit box.4 I! R' i- x# u- z1 x, l
- ;;
( n) ~; e. J8 b5 t - (defun getheight (value / rval)
J! F7 w6 T# w# b. I' O7 D - (setq value (strcase value)
/ a% P; x- w; G - rval (distof value)
" W r8 ^5 U; V7 p) G - )8 t& W, ?) w3 n* ~6 n( V
- (if (or (= value "")
^& L# [! b/ c6 R - (> rval 0.0)5 }4 V8 N. @6 ]0 L$ {0 }
- ); V0 P ~3 `* R1 }& ^& a( D
- (progn. K2 a% |5 T- M' ?( z
- (set_tile "error" "")
3 T: q, W- y- G* @# @" r2 D2 V9 }" ~ F - (if (= value "")9 T) @2 [3 _% _" D; [! ?
- (progn7 f _! M+ M* Q4 X' {$ q2 M
- (set_tile "text_hgt" "")
' U6 H9 v7 R8 l3 Y. P - (setq eheight nil)- E3 r5 S5 u+ {+ y3 \$ [% Z
- );progn; r* O+ T9 `) S/ c8 R7 m6 f
- (progn
& R) D( t1 x1 W ]8 o' {/ f4 K+ U, ~8 i - (setq eheight (distof value))
/ k, ^# P6 z* Q, h- l - (set_tile "text_hgt" (ai_rtos eheight))6 y- H" `! e- w
- eheight5 ^/ A" j: G; \" X* h) v4 f2 X
- );progn0 b# ]( v* U1 m
- );if
$ F5 ], y) Z5 `0 w8 l& j9 y7 R7 i# M - );progn% Q, K7 m8 x# l3 l
- (progn
' C7 m6 e. i4 [# O& G' }7 F - (set_tile "error" "Invalid height.")1 G) c$ h! L7 w+ ? E" u
- nil; l! Y2 S5 j% A s! G$ v. {5 Z. _
- );progn$ p! i" s& ^; q" v0 T$ M
- );if
* F, p, U3 r8 R - );defun
8 n* E( U/ H& w- ]$ I2 ?
/ u6 A; b* j* _7 R8 ?- (defun getstyle (value lst / rval)
5 ^/ H% L2 p% g _/ y9 s' W - ;(setq value (strcase value))
, n+ K( V) G% U& v U7 s1 f - (set_tile "error" "")7 ^5 |: _" o/ @6 n0 k
- (setq estyle (nth (atoi value) lst))
5 v) L" {3 ]/ a1 x" A - (if (equal estyle "")
# c" t5 q% T. g/ w/ [' g - (setq estyle nil)
( x4 Y/ R5 Y- [6 g - );if5 `* k4 W0 G1 ]( X# t- n9 P) h1 X, U& x
- 5 j r* }6 p4 b5 H2 F; E
- );defun getstyle1 G8 a; N8 B1 V) y4 A
7 l; _" L* q/ ^3 V- r/ ?! W( u, A- ;;
( G D( t6 M; F9 @( z U - ;; This function make a list called laynmlst which consists of all the layer- D+ G8 [$ c) ]( w, M
- ;; names in the drawing. It also creates a list called longlist which
2 v: Y# _+ C& A4 N/ y* K/ t3 m - ;; consists of strings which contain the layer name, color, linetype, etc.& G8 h* W4 \& e% T
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
* B; N# y+ U1 h7 a) ?; H - ;; same.3 M$ L2 R" H% _& Q
- ;;
2 U; M7 }% D& {( K* ] - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname, N0 A, e, v, S( C( i+ j& N
- xdlist vpldata sortlist name templist bit-70
* M5 d( @8 h* a% {# D - layer_number
$ c( d$ l& c8 Y* x% X# ? - )
- a5 J- U) M6 L1 ~- E0 t - (if (= (setq tilemode (getvar "tilemode")) 0). H. {0 J. L# z( n$ S5 z* S6 v
- (progn) o( e( R* q/ Y3 _, u$ W/ t
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
' x! E( C2 R+ X# ^1 z3 k5 F+ F$ J - (cons 69 (getvar "CVPORT"))
+ x$ }& q! Z# M, c - )0 _6 s- P1 D0 G& {' X
- )
- u3 [& P! O* H& {$ j8 S: m v- N - )
% |; ~% d" k. I - (setq cvpname (ssname ss 0))
" c) ?; r1 }& ~& Q# `8 r; Z" d) F - (setq xdlist (assoc -3 (entget cvpname '("acad"))))% _# V: [' t# S* S
- (setq vpldata (cdadr xdlist))
1 Z# H8 O/ v# t( S4 ? - ). H/ ]" z; b2 g/ d! o' u4 T
- )% z/ N3 {/ f: G) k- _; E
- (setq sortlist nil)
2 n+ C f4 O9 @. o5 x4 u7 | - (setq templist (tblnext "LAYER" T))# |* ]: h7 U/ g. C
- (setq layer_number 1)
) f1 d S) v1 ~ ]$ H - (while templist) D7 P. t! Y) K/ A
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))5 ?( Q4 C' {8 g( R. P1 @
- (progn
& x& E1 _! y3 P9 h y U - (setq name (cdr (assoc 2 templist)))( D( y( @7 |# h9 T8 A: K
- (setq sortlist (cons name sortlist))
2 {1 u5 i5 ~+ c& O - ;; Not dead message...
% i2 V u5 X* D; I! M% O5 s - (setq layer_number (1+ layer_number))4 S* n3 R- B' g9 z2 G$ V
- );progn
3 j( j6 {6 c5 s/ Y - );if
( S5 g l, ~) r$ _6 R8 B! M% N - (setq templist (tblnext "LAYER"))
5 C4 j" z& Z$ v% g/ t3 @ - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))0 e4 C8 h. D% P+ J2 |9 K" U/ r
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
. Z8 J5 H1 W7 [) ?# I u - );if' Q: \, B6 X& L; D9 T
- )# b, V& }* x" X& i: L
- (set_tile "error" "")
% @8 M0 R0 G T( r4 r) {( { - (if (>= (getvar "maxsort") (length sortlist))0 N% I9 F G" V F6 N8 a- p
- (progn$ E5 D, T; R! W5 P, F- e" u
- (if (> layer_number 50)8 c- \/ G! I+ }6 \
- (set_tile "error" "Sorting...")
; t' `5 K' O3 ]4 o. j* N: ?* J - )9 {% e7 L1 W' u
- (setq sortlist (acad_strlsort sortlist))
; }$ m; f; Y. j - )
1 @( K" a: \% v4 W: H8 ?" b - (setq sortlist (reverse sortlist))5 `, L# t& I5 B
- )) {! A. K8 K, d T, ?! D* b
- (set_tile "error" "")' n, X& L+ V6 y( p8 P% i2 W0 \
- (setq laynmlst sortlist)
. r; ]1 a% J# q. `; J- ?! ^+ W; c - ;rk ! X* K4 x/ p0 s2 F7 }% c: D/ G
- (setq laynmlst (append laynmlst (list "")))
; A" `. l) _/ A0 e( G/ `) A6 b: J
: _& K! H! A, z# A( o/ ^+ U' i9 g. _& ^- (setq longlist nil)# m% s$ D8 q% `
- (setq layname (car sortlist))) H5 \" W- O: q$ `4 ?, a& U
- (setq layer_number 1)
: e4 b6 `) @' H - (while layname; k* z3 c+ e7 a8 O' Q; u
- (if (= (/ layer_number 50.0)
% b4 l7 j2 }2 P! F: w. Y - (fix (/ layer_number 50.0))& L, ^7 p. o1 U* n1 ?/ P4 q
- )3 R% d6 J4 j: `0 Q
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))5 n/ g. }' I- C1 t& {
- );if
5 l5 U+ l' e# m' p! z3 G ]0 T5 F - (setq layer_number (1+ layer_number))9 j6 Z& Y! t3 o& n9 m- f( H9 K
- (setq laylist (tblsearch "LAYER" layname)), l$ U# R' A/ Q
- (setq color (cdr (assoc 62 laylist)))
: ?- \2 V5 [7 u/ i) ]6 H1 Z - (if (minusp color)
6 g, `+ e# E* ^1 ?! K% y - (setq onoff ".")4 P |: @+ { j- s2 \1 ]
- (setq onoff "On")
2 g( x% E2 g) o. T/ }& m. ` - )
$ S. s6 A- ]! U4 h8 ] - (setq color (abs color))
& N0 o" ~& B- h) ] - (setq colname (colorname color))
' h: U1 Q$ J" D5 B- o9 f" p - (setq bit-70 (cdr (assoc 70 laylist)))
% S! f7 v8 k, r& O - (if (= (logand bit-70 1) 1)
1 p, \, q1 t" _! @& {3 }: w - (setq frozth "F" fchk laylist)5 j( b2 ]4 _# T
- (setq frozth ".")! k* P* E" T$ H( R5 K- N8 L, n
- )
Y7 x/ g9 R$ p; Q! v$ B - (if (= (logand bit-70 2) 2). k7 I7 Y: \, t
- (setq vpn "N")' _0 N/ z+ p' o5 N- X
- (setq vpn ".")
# P% o" g6 R9 F, y0 B- J$ h: k/ C - )0 _4 T0 |* ~9 E0 o g
- (if (= (logand bit-70 4) 4)
( t2 w2 x, h) ^+ C9 h - (setq lock "L")% R6 B0 T: o g/ t
- (setq lock "."): s- p* K' T, k. L1 u$ o' D
- )8 u# h V! M8 \9 P
- (setq linetype (cdr (assoc 6 laylist)))
0 w; t; n, b* y' W: ^ - (setq layname (substr layname 1 31))' C) T2 m0 K7 l7 p7 I8 y# V
- (if (= tilemode 0)( V' o% X& Q% p7 J
- (progn9 N: x: {$ S4 k. q3 u
- (if (member (cons 1003 layname) vpldata)/ t$ u$ w1 [8 ]6 Y) X% e. l+ |
- (setq vpf "C")6 R! T8 e+ u% F
- (setq vpf ".")* Y F1 Y$ k: \1 l5 |& W, ?
- )* \8 I/ F5 l5 U" ^ s b+ [& V
- )
9 a7 p* v$ H7 u, V2 m - (setq vpf ".")
7 }3 V3 L& U9 ^7 ] - )7 {0 u0 e1 V: j" J/ n
- (setq ltabstr (strcat layname "\t"% M" B0 M; e; ]1 Q7 {: [6 r0 D' k
- onoff "\t". k. `1 W2 W" z5 L' [( q
- frozth "\t"
7 x" [6 L. u. G) d3 H - lock "\t"
) ^. A( M2 L% k* v7 x - vpf "\t"2 ?6 z7 a; v X' ~) F4 s2 [
- vpn "\t"
0 j8 u+ T4 ?6 |" `( j! ] - colname "\t"2 _/ {& e8 i; \0 U
- linetype
$ A+ w9 W" {1 Z' g - )% d9 E3 D+ k2 ?6 v4 d0 B2 y5 r: v
- )
6 {0 Z, U: z3 |7 m8 W - (setq longlist (append longlist (list ltabstr)))
6 w" e2 ~7 C, Z p# h& i - (setq sortlist (cdr sortlist))3 I, O8 P( R2 F& V
- (setq layname (car sortlist))
" G3 o w/ M" Y7 H4 e& F9 ] - );while3 D$ S- N' P# o. ]' x
- (setq longlist (append longlist (list "")))8 k K$ K( E4 z
- (set_tile "error" ""): k5 Q( G9 ?' w6 h* ?1 ?* J
- )' [# P4 _( Q) J: ^6 t! H
- ;;4 b( A" t; K; k- L0 H
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of$ J" o& H* P3 g m' u
- ;; linetype names read from the symbol table. Mdashlist is list consisting! @8 |- e# y' `
- ;; of lists which define the linetype pattern - numbers that indicate dots,
. ^% N# B4 ^+ h - ;; dashes, and spaces taken from group code 49. The list corresponds to the9 y- Z' G1 Z E2 d6 r
- ;; order of names in ltnmlst.
! y8 z* }' L, p8 m) Q3 Q7 t - ;;
) W, k* o# U S; I; Y - (defun makeltlists (/ ltlist ltname)
`4 j- Q ? N1 K5 y q3 G% W - (setq mdashlist nil)
. J% S. O2 u' p2 ~ - (setq ltlist (tblnext "LTYPE" T))
+ H# C$ W J' r% x8 o - (setq ltname (cdr (assoc 2 ltlist)))7 B" K5 O; x/ p/ K
- (setq ltnmlst (list ltname))
3 }% U' G; I: O- }' D - (while (setq ltlist (tblnext "LTYPE"))
1 Y5 z+ T, }5 V3 } - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
8 o4 _# _# ~6 n/ @ - (progn & d0 |$ A( `3 V0 u" L) G: p# w9 d" M
- (setq ltname (cdr (assoc 2 ltlist)))
6 m+ [( Q' z) N - (setq ltnmlst (append ltnmlst (list ltname)))2 y( O: p9 H0 K0 d2 C4 o
- );progn
# ?. i: G: }* b3 Q - );if
, O6 o5 O% ]; }* Y# Z - );while q& n7 {$ {; I: X! C% a
- (setq ltnmlst (acad_strlsort ltnmlst))5 L4 c/ a# m8 _9 e- M* { F
- (setq ltnmlst (append ltnmlst (list "")));add by rk
. L7 n5 a# l' ^! C9 D - (foreach ltname ltnmlst7 r/ A3 \8 Z0 W9 `# _
- (setq ltlist (tblsearch "LTYPE" ltname))
2 M5 F7 z7 A$ q0 g - (if (= ltname "CONTINUOUS")
. D1 E4 g) I! S7 a' n5 w - (setq mdashlist (append mdashlist (list "CONT")))
4 K" T2 N1 X& b4 W3 J4 ?6 H - (setq mdashlist
5 Z+ ~- ^1 s0 }0 b- d3 u - (append mdashlist (list (add-mdash ltlist)))
* B: j0 ~# P, f1 J) B - )
+ S4 F0 Q( p% X; {& q. U* o% K - )
# [4 G z6 P3 \( {4 ?5 ~ - )8 O# Q" ^8 E2 [" x) V- f
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
* _& A3 }3 A t: ~+ q7 c# J - (setq mdashlist (cons nil mdashlist))
3 }+ p2 L/ u$ ?" i" h+ h- ` - (setq ltnmlst (cons "BYLAYER" ltnmlst))
$ P0 T. ^. R" w( y8 u' F- a7 y1 A - (setq mdashlist (cons nil mdashlist))
3 S P* R" p. T% L8 _3 B - ), X! [6 c3 e( c% v
- ;;- u Y4 g7 L: M# s" K4 _% r3 K
- ;; Get all the group code 49 values for a linetype and put them in a list
; }; {. d4 C: X5 d/ b - ;; (pen-up, pen-down info)2 S) V n/ d9 a$ T/ [
- ;;5 M. p4 q* \% a1 H4 Y% E
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
- U3 ^8 K3 t' `8 J5 l - (setq dashlist nil)/ k, ?9 F4 }& h4 b
- (while (setq assoclist (car ltlist1))
2 ]7 h7 Y& m1 S n3 S4 D - (if (= (car assoclist) 49)# I$ @% U& X& w9 s, [1 t
- (progn5 |9 D1 U9 @) J7 j' E5 v c1 j# T/ s
- (setq dashsize (cdr assoclist))) p3 V- M+ g% i. \8 f( e3 V
- (setq dashlist (cons dashsize dashlist))7 ^. D2 A |( \& K
- )) w( Y2 @' L8 g
- )
+ B3 Q4 w+ J: Y: S& V0 W6 d( U - (setq ltlist1 (cdr ltlist1))
1 c3 ?' \& \. L5 O, y - )+ ?4 w* _. i- W6 s5 x
- (setq dashlist (reverse dashlist))
9 p* a4 i' u/ m# y! ?8 q, V - )
- }/ g: ] r% ^& A6 k - ;;0 |' r* ~7 w: Q9 T2 n* h. `
- ;; Color a tile, draw linetype, and draw a border around it
8 A/ {6 d* M6 B# v+ I" G8 ]2 T - ;;5 d7 N2 [$ ?4 R: [ D" z2 w- j
- (defun col_tile (tile color patlist / x y)
9 K+ `1 h8 G& T4 Q/ B, J( u - (setq x (dimx_tile tile))( p6 E3 W* }& i
- (setq y (dimy_tile tile))
) X" \- B2 p+ _. U5 o1 Q. m6 P3 ] - (start_image tile)
! L, d$ N# F0 m$ d1 { - (fill_image 0 0 x y color)& i9 y+ m1 G" H, |$ D4 p1 F# }6 n
- (if (= color 7)
r1 U3 s; B& J% [ - (progn
! F# q+ \ f+ k2 ?; _ - (if patlist (drawpattern x (/ y 2) patlist 0))4 l+ z: X( X6 H7 i, v$ L7 L4 F
- (tile_rect 0 0 x y 0)
4 P- ^, b( A5 q. T# i - ), ~) [; x; f6 y9 R
- (progn
' {, n( V1 \( P9 T" c - (if patlist (drawpattern x (/ y 2) patlist 7)). u6 e. Z+ f- e w0 E$ y
- (tile_rect 0 0 x y 7)5 @, z) r5 \9 X- e
- )* x1 Z5 \2 ^+ q/ K% v
- )
0 [ ?* M1 m5 ~; }8 k$ r0 o - (end_image)
" w/ D4 U2 B$ p" ~* `# ?/ f8 d - )& N2 Z- c5 g% _; g: }7 _$ F$ b f& W
- ;;9 S. ?* E, H3 p3 _
- ;; Draw a border around a tile' l( j `7 L9 H1 p, n1 A2 ?
- ;;
4 m- s9 Y2 I; M - (defun tile_rect (x1 y1 x2 y2 color)
% h, ]# a: b7 x6 Z; F4 u - (setq x2 (- x2 1))
5 r! M" V+ u# n& f - (setq y2 (- y2 1))
; l, a z! z; ?7 Q& H. I - (vector_image x1 y1 x2 y1 color). W% T# x- t4 X4 A5 B1 l4 M; x, s
- (vector_image x2 y1 x2 y2 color)
; c/ a' h, z6 Q) @ - (vector_image x2 y2 x1 y2 color)
+ F4 r# O7 E) G2 p; I - (vector_image x1 y2 x1 y1 color). `. h& m, N$ |# H7 P
- )
- m4 w6 y! J/ u* L6 Q - ;;
: ]; R9 x0 E, o9 {' q3 m4 z; K* u; { - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
0 \0 z) }1 u% G: r3 @- x8 t* { - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a' F* O. c- ~) p4 b7 q. E+ s8 x
- ;; list of numbers that define the linetype, and color is the color of the
/ i9 n0 E, ~) Q: x; F |/ Q - ;; tile.
, B. t, _% @. X; V - ;;
P) c& @- n5 n3 w/ [) U0 N - (defun drawpattern (boxlength y2 pattern color / x1 x2. \7 e" U( o4 D- y1 k
- patlist dash), h+ W( k" j( e4 p' ^
- (setq x1 0 x2 0)
2 F: G+ E0 v8 |! g - (setq patlist pattern)8 k; e, Z' X* R( I
- (setq fx 30), M: I* |% r* _. m$ z
- (if (= patlist "CONT")
$ M7 S9 |4 F$ ^" p' S - (progn
% W1 `5 h1 j$ R - (setq dash boxlength)
. _& q3 Z& t1 U& A - (vi)
6 a7 i# a# Z, l; X/ a) r - (setq x1 boxlength)
; w1 ]. Y4 ^2 v% P4 ~# V - )
; M9 y+ c- m" E0 N - (foreach dash patlist
/ T; {' R$ L' t7 O - (if (> (abs dash) 2.5)
9 ] i1 u# s1 \5 O& F. H - (setq fx 2)# S1 F! F9 n5 P# Q* o! B5 v
- )& ^4 F% B8 o1 u
- )# H7 _; v* t+ L3 {. ] l
- )
% C& B2 n/ C! k( r' A - (while (< x1 boxlength)3 i* O! ]# |; M8 k, i+ R5 y) w, n
- (if (setq dash (car patlist))
& t& D) \) q' ?9 V1 b5 } - (progn
6 [3 U7 x l) c5 b9 N1 u - (setq dash (fix (* fx dash)))9 B C% O7 K6 U$ n, E/ b2 n P
- (cond$ k) }) e7 l! z
- ((= dash 0)
, j, j9 p9 P& t2 ` - (setq dash 1)
( Z1 d0 Q2 g4 s1 J - (vi)
3 V8 N$ N- H# p$ d2 J( j, \ - )* q5 h2 O) u L5 n& M
- ((> dash 0)3 R; y: _) \) P8 y3 S6 q* ~# `
- (vi)
6 v, b1 E/ z# p - )9 O; s( m. H8 `* q0 v( x0 D
- (T# C* h1 a0 {/ }6 Y0 r. @* s) U8 q+ ^' Z
- (if (< (abs dash) 2) (setq dash 2))
3 r ]1 G5 p. h$ u5 V9 [ - (setq x2 (+ x2 (abs dash)))* k/ Q. }& h! M/ G4 m
- )
3 B9 I1 {% J* W4 ^ - )
0 o% ]8 Y4 j1 Q$ C - (setq patlist (cdr patlist))
" M. ?7 H$ X z5 R - (setq x1 x2)
' J5 c8 B. W' v; O+ i5 l2 |; B - )
- P* m- p0 H7 z0 f0 c5 x - (setq patlist pattern)
0 w# \/ V! i7 A) ]' n% G - ), I) ]/ P4 c" s0 T
- )* o) q/ R S& X; u7 {5 K2 b2 @' P
- )
$ W( R6 B) g# i) a - ;;
( F# ?- A% W+ C5 L( X3 S - ;; Draw a dash or dot in image tile+ \+ A% Z$ h2 f" g- L
- ;;5 r' O& u8 J: O
- (defun vi ()
( U+ S- V* f' j `! M - (setq x2 (+ x2 dash))
) D+ {5 C: x+ h( ~/ N4 |7 r2 y - (vector_image x1 y2 x2 y2 color)' ~1 [" B+ v# n [' U" L6 P2 [
- ): o6 M7 J; Q3 e1 F
- . F1 G2 B" v; u, N$ J0 T7 K
- ;; This function takes a selection and returns a list of the color, y( g3 p [8 H3 M5 N, \
- ;; linetype, layer, linetype scale, and thickness properties that; F! G0 x$ q' q
- ;; are common to every entities in the selection set - (color6 r$ ^% ?( U3 i, U& H
- ;; linetype layer thickness). If all entities do not share the same
) c$ A1 e9 O( ]& ~( R6 x6 X - ;; property value it returns "Varies" in place of the property. ~; q; l6 i' t `8 p- X+ k
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
2 n9 \( x; S( O% L9 Y. C, G - ;; The last item in the return list is an integer flag for the5 Z* b2 `( B/ V4 L7 V6 H: F
- ;; homegenity of the selection-set object types.' @% }- n7 m9 }' S8 V' ~: K0 C" f
- ;; 1 = All polylines
" y( U w' i. d% C$ t - ;; 2 = All text or mtext or attdef, or a combination of the three
i9 t9 `8 w. C- j - ;; -1 = Any other mix of objects: T+ p( e! S; A% D x( A
" g- Q) z3 k+ E- j8 [2 ^9 g- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
8 |1 j) K, P% Y& y3 |8 z - width elevation height go ctr 5 Y) j$ W, h7 z
- eflag & k1 |/ l* N4 M7 j+ H1 v
- etype temp & j! c3 y7 G3 E1 |+ ~9 @; o
- txt_ss ;;;;rk 11:24 AM 1/30/97+ u# M4 s+ D6 ^' b+ F+ q7 x
- tmp w3 b& ^. ~/ L# e2 L( T
- poly_ss 8 A& B) u3 ^' L8 j# M7 F
- style
1 ]4 K( k7 o M3 S# r2 D6 x - )# M! p: W2 a4 ^' T
; C: ^- b3 _: L/ d& \
& X+ R9 O* x: ~- (setq sslen (sslength selset)7 q1 X! l" O$ n7 ~$ s- f" `
- elist (entget (ssname selset 0))) ^5 m; z) c# _
- etype (strcase (cdr (assoc 0 elist)))
3 K1 F: y# Y8 U/ _ - color (cdr (assoc 62 elist))* e6 [ g+ F: F
- ltype (cdr (assoc 6 elist))
2 _+ O. @5 |: e& i5 v" |1 O - layer (cdr (assoc 8 elist))8 w* G1 \6 o) Z9 m. _+ S& G7 `; [
- thickness (cdr (assoc 39 elist)): E, s8 y$ Q O
- ltscale (cdr (assoc 48 elist)). G4 R G2 O) a. Z8 o& E
- );setq7 g+ ^- Q* j8 G3 l
7 d# j ~# R' v8 U7 J, k- (if (not color) (setq color 256))* t$ `- r' A( g2 z2 A( p
- (if (not ltype) (setq ltype "BYLAYER"))
3 k$ w6 R& v& C3 d& s% O' C' k8 B - (if (not thickness) (setq thickness 0))& Y1 V& D' p5 O. ]3 T
- (if (not ltscale) (setq ltscale 1))
) N$ K0 |) H( d
8 y- w. N0 b. m$ A- (if (not width) (setq width ""))0 Y3 V, ~( X9 s P$ Y# b+ \9 D
- (if (not elevation) (setq elevation ""))
; J! y+ @& M$ T `* V J - (if (not height) (setq height ""))
- D, z$ ]5 j3 w) I* _0 L - 7 O( J0 E" u5 v5 y0 V! v+ h; W
- (setq go T
: \# v3 _6 u# m& Y( v - chk-col T % B! O+ g$ C8 L3 M
- chk-lt T # T8 ?2 y7 M2 }9 h5 l# t5 c. K
- chk-lay T
- C2 ^2 @' b) R o. D - chk-lts T
- P% _2 j' T# k- A m - chk-th T
1 @1 Y! r. I7 b3 L - ctr 0; I# P7 h6 \) [6 y
- );setq
( G) `* f$ G2 [. ]
5 U% F: ~5 ]6 i0 ~6 Z \3 u- ;; Page through the selection set. When a property# ^0 x2 K" y1 n* s$ Y% e2 z; \1 i/ y( B
- ;; does not match, stop checking for that property.( k, N& p. }% c w z% B; b
- ;; When the selection set is not homogenous, stop checking.3 K- ]2 Y" s3 L* V+ H
- ;; If all properties vary and the set is not a type 1
" `5 `3 p2 y' F4 m, J* H3 ~9 E: M) J - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.7 _. D8 t( K7 Y( ]! a
- 0 Y3 t9 B) @; c5 K3 U4 ?# f
- ;Lets set the eflag so we know if the selection set includes any / X) ?- A Q2 U- i& k
- ;combination of polylines, lwpolylines, text, mtext or attdefs.
, p# R7 e7 k* I0 c7 `* k1 J. x- s - 8 [6 T" S; F, c- I6 E p# V
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
' i6 U/ `1 Z" Z8 Q6 T0 \ - (setq eflag 0); p* ]& t' R2 c. G
- (if (setq poly_ss % n( F2 o4 r' z, a9 F
- (ssget "P" (list '(0 . "*POLYLINE")
) ^. [) V& ?$ c2 o& Q - '(-4 . "<AND") * Y) Z! C; U; M) d: Z; x( A
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")) k6 d- T+ O$ H( ]& J; M. o. E
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")1 V2 \0 }* ^& _8 ~4 D( n- o
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
3 B3 Y3 `" c* S% y/ C3 L& ?6 P; l5 h - '(-4 . "AND>") 9 H& w5 C1 {: l# T1 X( s) [ B
- );list7 o, P) {" P8 J/ W
- );ssget get 2d polylines (legacy and lw)& F% z' N* f# O3 y
- );setq
/ O8 c: h( {3 x8 }: \ - (progn" p) |3 {3 o; f/ Q3 i4 ?' E8 z
- (setq eflag (+ eflag 1))
/ i, C' H* f$ g C' E - % f0 n8 o8 N5 B
- (setq tmp (entget (ssname poly_ss 0)));setq3 P4 s- k% t$ |+ d! \" \3 p- [
- ) E- _7 l2 m [/ O* X( R
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
' ~* [( I: i3 ]- v - (setq elevation (last (cdr (assoc 10 tmp))))
- Q5 f* F* ~' y' y0 _ - (setq elevation (cdr (assoc 38 tmp)))
+ \( x1 y/ Q5 ?0 `& L- i - );if
# T! T+ l. I' ~1 D& F - (if (not elevation)1 f H4 [1 u% x4 S
- (setq elevation 0.0);setq
3 U. E! s/ u! W W; |9 l8 M5 i - );if" @8 s0 o; F0 y9 R& ?2 j/ u
- % U) [9 [3 @" ?; @9 ~: \% Y. }5 @3 \
- (setq tmp (ssget "P"
. _' c( e9 g. K1 y/ O - (list . q; w* r3 R, x* _* l
- '(-4 . "<OR")
0 r' k5 q1 T: a8 d; U- Y - '(-4 . "<AND") & J( o) ^, D1 v5 A: _( V
- '(0 . "LWPOLYLINE")) V( O0 U. y8 `; Z' K# |; r7 y
- (cons 38 elevation)
2 |1 L7 G& s" L% g; r$ m - '(-4 . "AND>")
7 {6 E1 ?) J; Z* v. s& ^ - '(-4 . "<AND")
3 M0 [5 L4 a4 R0 H4 A - '(0 . "POLYLINE"). ~/ s" @& g% \3 i9 t: [/ r
- '(-4 . "*,*,=")
% d% E+ s1 U x) i0 u7 x2 @ - (cons 10 (list 1.0 1.0 elevation))4 {( G f% [! h$ Q0 N
- '(-4 . "AND>")
* X$ m% u3 ?0 m! N3 c% x" q' U - '(-4 . "OR>")
3 S4 S5 Z0 T/ f/ \/ g; Y2 U - );list$ U Q0 v1 C: N: ^. u, G
- );ssget6 P% V6 h+ L0 N; A C0 U C- F$ f* x
- );setq
1 s: ~4 D. k: x: M/ y- I$ }
1 M" G5 Q. @8 {6 M( K- (if (and tmp
# ^* W) ?9 [9 t7 ?9 L! D% U. h - (equal (sslength tmp) (sslength poly_ss))- ^2 i; i i5 {% \
- );and5 a% u# V8 w. L8 _' G1 f
- (setq elevation (ai_rtos elevation));setq
, J3 c1 k* j) W0 B+ r - (setq elevation "")
9 P7 o4 \# l4 w9 O) w2 H; X* v+ u - );if" Y$ S1 R0 q& Q2 {) n
-
3 A: p0 ]5 ]( J - (setq width (pl_width_getter poly_ss));setq6 [0 `) [8 }& S* t. Q* i; f+ z! `
- 0 f }8 v& |) H f) G% ]
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
, b. Z3 u. h; q - );if
5 H3 n8 S8 `0 O- c7 O/ y0 s. _ - (command "_.select" selset "")5 k* U, E* e1 F+ U5 _! ]/ l
-
0 j1 M, i( ^! e! H) ] - (if (setq txt_ss
' {$ a6 V3 n, [6 o3 N1 A - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
* c% i( y& J M3 K o2 |/ x - (0 . "ATTDEF") (-4 . "OR>"))
J" d! h+ C M, j" y j - ) / p$ B) m' x5 E" Z( j! d9 R8 y
- );setq
- n) [# `5 _- W+ f4 ?2 { - (progn
; Y: N- [3 @. M4 X - (setq eflag (+ eflag 2))
- Y% I+ }3 n; y) t - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
$ m: q- W' ]2 X7 V4 E" @# B6 d - tmp (ssget "P" (list (cons 40 height))) $ o4 F* J: z0 Z, k- Q; F
- );setq
6 R9 ]. u3 f( L& m2 _ - (if (and tmp
9 q* C& p: ]8 [7 p' Z! C0 ~+ C3 o - (equal (sslength txt_ss) (sslength tmp))
7 Z$ @/ ]5 m1 f* F/ H6 E0 j7 l/ F5 Y7 H - );and- _+ X' z9 F2 I2 _/ o! f6 _
- (setq height (ai_rtos height));setq ;@rk need to translate from float
% ^7 x0 c1 I8 { W/ ?0 y( @8 T4 ` - ;to string and back again easily3 d* g4 N$ s6 H0 [
- (setq height "");setq else the height varies , B6 W. z# i! {" \( C
- );if
1 ?' ]% E z& r! F$ b( H7 O - (command "_.select" txt_ss "") 8 i5 H/ I. N. q9 Y9 O" a
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))) E; O* f- }, o p. V% R
- tmp (ssget "P" (list (cons 7 style)))
7 P3 w# ?7 q% c- ^: Y# `/ z9 e9 w" y1 M - );setq # e, p9 I( r+ v4 n% X( O
- (if (not (and tmp' S3 x( Y0 `# K; J! p$ `' C
- (equal (sslength txt_ss) (sslength tmp)) + W- p* R/ ~; ], ~' f; d& M
- );and$ t3 W* V( C# f
- );not" V. r& A6 M* m1 H
- (setq style "");setq then the style varies
7 _; r) U5 O- I - );if
6 O! H/ J& @) Y5 u; J3 S - );progn the text type objects are in the selection set3 G9 n" r1 g/ j- A( G
- );if5 m6 ^' C4 Q2 e' p# z$ r8 d
- (command "_.select" selset "")
+ o1 q5 X6 a4 z+ H# h, v b -
: V: u4 T, w. Y* j" D - (while (and (> sslen ctr)
; V; `: N7 K, Y: _0 {; c' X - go
1 b. J7 i: ?% O: B - );and
0 O; z0 t! O8 \4 _$ A2 u - (setq elist (entget (setq en (ssname selset ctr))))
/ d5 g/ S9 w+ j5 K j/ V( A - 3 i7 d, N+ h4 L+ m. d
- (if chk-col (match-col))
8 y" d$ x. V+ F3 \" ?8 j - (if chk-lt (match-lt))
# r) e; A; g: V& v# v5 q" g' p - (if chk-lay (match-lay)) \3 ^1 V, z! [4 G/ `& G& ^; b9 `
- (if chk-lts (match-lts))
3 B, H0 l' V3 T5 J: K - (if chk-th (match-th))
% ~5 S9 n$ ^8 ~ - 9 a/ m( D4 @" R
- ;(if chk-etype (match-etype))1 B( r s% s+ H% M. V
! G5 }" a& D5 i1 |. K" b m- (setq ctr (1+ ctr))
4 p H- H9 r0 {* {7 ~4 w& j - (if (and (not chk-col)9 g, m; j. ~+ e, Z9 y! c0 M4 u
- (not chk-lt)
, P6 N5 [+ f; p4 z1 R5 C0 }% z - (not chk-lay)+ Z6 U, d/ Q+ k; t% E' Y. ~
- (not chk-lts)) J9 }. ^: ~5 r' {) j: g& c. `
- (not chk-th)
E5 C2 f$ ]4 l1 ?; \ - ;(not chk-etype)$ D9 v4 J V+ _+ }" D0 u
- );and# Z& h. L9 }) c6 H% q0 h
- (setq go nil)
5 d! s' d2 H3 s, x: R- I - );if
, {2 Q9 z3 k! l: e/ w* u5 s - );while
! h( C; g f- u% p0 o& |3 @# r* r1 J -
' {& S$ L: E# Y5 J* l" p: f5 b8 E - (list color ltype layer thickness ltscale
/ V7 b O; g3 y- z6 t" N7 h7 [ - width elevation height eflag
% A( Z; s8 U2 [4 k - style poly_ss txt_ss! k, Z: ^& I; B9 w
- )5 f. O* B, U' }7 o
- );defun getprops
$ N6 B, I$ q( U+ u* u& X
5 v( ?1 X% ]& p, \' `$ g4 `5 F' f- ; This is a speedy little routine to tell whether the polylines in
: ] O/ {# }9 V% L. D8 y3 Y0 o - ;the selection set argument are of varying width or a constant value.
' ~/ [. l2 x U3 k3 y% h - ;Looping through the vertex's has to be done for old polylines when
2 B0 I; Z9 A; G# b1 `' [$ f - ;the polyline header has width values of 0.0. Basically, in this case,
' Y9 {, k+ y: n- T) e8 @ - ;information in the polyline entity header is abmiguous. Width values . H' z' A* Z; u- g9 J
- ;of 0.0 in the header entity could mean the polyline has a constant & w3 |5 @: Q( m6 T/ q5 k% {2 N
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
# Y" L- k# V) G" S; k - ;width.& J% t3 ?0 ^+ @
- ;: C8 q) e e5 [8 ]7 Z
- ; It's all in wrist. Err a.., I mean it's all in the 'if'& K/ ? B& v5 z N. B
- ;;' z% b3 k" N9 W' b* ?5 ]# E
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)4 @8 o' s! n% r8 F
- 8 D% w# |1 e8 W: p+ q6 m* t' g
- (if ss
' [, [' H3 t2 j. y# o4 w - (command "_.select" ss "")* g! }- B- @" W# T Z7 D- r
- );if
( `; z# H/ Y% X4 G2 ]5 @ - (setq width ""- V6 ?% N! e) @2 |9 u- E# k( E, P
- flag nil
+ G4 a* s9 W# \& T8 F# z - flag2 nil
0 t1 `: F/ B0 x2 K- x2 i, L - );setq+ c: o7 I/ Y/ B
- (if (not
8 z+ M% Z* K& c/ A/ P* L - (and ss" n. j2 @# T4 J1 t
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq: M7 V! Y" Q# U4 x8 g
- (setq na (ssname ss2 0)
, B: G' J( W8 A - width (cdr (assoc 43 (entget na)))1 \ D$ {" \( B' l5 G q' _" t
- );setq
2 J. y' d2 Q! d8 U - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")3 B9 t$ a: G0 C; M) V
- (cons 43 width)
& D) T% C) f( j4 s" N+ |5 I - );list$ P* b% v7 i9 F+ K2 {7 E
- );ssget S) K) r$ G9 y! f) Y0 o
- );setq' x1 B' p- i8 R) T/ _7 n3 C
- (setq flag T)
# \; }* L. H; B8 p) q: C - (equal (sslength ss2) (sslength ss3))
3 J3 Z* l& q2 @& v4 U0 Z - );and9 r' X% r0 V: H9 F( Z* W }" Y
- );not
9 h V. t+ W9 H4 F, ^ V5 k - (progn
& E, a' k, {2 Q' D& U1 K- S - (if flag
9 U1 S; W A5 X0 i9 C" m% ? - (setq width nil) ' v, Y7 D! k3 ~2 H: g7 q* I A
- );if- d- D% g: [2 l: v' L4 F
- );progn
+ b7 L% U+ ~* C8 {2 S+ e4 @$ a7 I3 W1 c - );if 2 y4 t" ^) T$ @
-
- A+ K% d+ u) X5 h. @ e: u - (if (not ! X4 x. r [4 W+ Z3 K' ~/ k/ p
- (and % i' b; W( u5 b: b) j( H- @
- ss
, k; W& ]9 E A - (progn (command "_.select" ss "")
( _3 E" f$ l7 M9 C - (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq' \, A" ~. j: I5 V( H/ G1 a# r6 n
- ) . ?0 n4 J# d: j2 B: S3 {
- (setq na (ssname ss2 0)
9 U& S" ?$ h& T" N5 t4 k - e1 (entget na) u/ N& O! b+ {/ s
- width_a (cdr (assoc 40 e1))# B; }6 {/ ~# {
- width_b (cdr (assoc 41 e1))$ e g# ^0 L. K3 ]
- );setq6 C" C' b% y% M0 N; ?2 C
- (equal width_a width_b)
% Q% S- o3 t% O3 t2 M+ V. v$ A" ]* b+ A - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
8 s) [7 O; @/ M7 q/ t - (cons 40 width_a)
0 e. X$ m! O# N7 M5 T& S - (cons 41 width_b)
) S; b( e" O" ~+ B% s - );list
1 k& l1 s) k) i/ T4 s - );ssget
# \& ?3 G0 X9 z( p - );setq
. O- h u @' n' T i, z2 i - (setq flag2 T)
+ L% x, s" f& T2 o) L T - (equal (sslength ss2) (sslength ss3))0 f. d: C6 I" X3 R! A5 J
- );and
+ a$ M8 i3 F K2 q/ {3 r' l* G - );not
; w, I5 s( L( d+ ` - (progn8 a, h, }# s7 u% X
- (if flag2
% b c/ l; O# H* T* j( \" Z - (setq width nil);setq4 K" @# g4 @" l Z/ S
- );if
# `# C+ a* [; R - );progn then
+ U i% n( ^% z# f0 G8 Y - (progn7 ?" S& G! P3 Z
- (if (or (equal width "")
! n. X, i1 B1 h3 J" R# \7 D) s - (not flag)
; }6 q8 e: _; b3 s( F - );or- M$ F; _9 `. E# _# n
- (setq width width_a); }* x' g2 \, d; s3 S: b) H
- (progn! x5 d1 x: }' J& U- t9 c% g9 S; C5 J
- (if (not (equal width width_a))
; J, r, b# s9 u8 ? - (setq width "")' [# {0 D$ d) [; s" y* P+ z. b
- );if ! @, T# c! `6 S8 C
- );progn
* O: ]# H; j* y/ \1 M - );if @) W: h1 B3 A+ Q. D* H2 W8 k
- );progn
! C; i) O. R2 S) p2 C# b - );if+ H( Z; `. A1 X( S
-
3 h3 H! ^8 _1 d" l& o! M& h- b
4 ?7 b+ j* }# e& b5 ]- ;now for the special handling for old polylines0 h# F$ I! v! V1 ~% v/ Q& [
- (if (and width / R. O) @; c* V. u* ~
- (equal width 0.0)
* R9 W' z A, m! |1 t& O - flag2
3 |5 X2 I4 B1 \$ x: N5 Y - );and 5 c3 }- }, u* Z4 G( W/ B3 J- M4 {
- (progn( I; U9 u' \ i6 }. J3 n, v
-
9 h0 q7 [7 b* s/ f" w - (setq n 0);setq
6 o+ q+ B! K- j" D5 w5 z- | - (while (and (equal width 0.0)
! i" p# U+ w( Q1 ?/ W ` - (< n (sslength ss3))
/ v" L' }* O& H- R+ r - );and, |6 q& I7 J, ]7 O: Z0 y: `5 @
- (setq flag nil
( `, y2 e0 g6 j! G; T1 _4 ?7 }5 D' p$ L - na (ssname ss3 n)
: r' }" n- m& V, i) C# G4 }5 n - na (entnext na)! S+ ~3 _' U9 L9 G% ~
- e1 (entget na)
/ J" T$ m, G) i+ ]2 n - );setq
" f. d, Q2 x7 k7 P$ f4 ?6 n |+ S9 S - (while (not flag)& l5 `% e0 E8 Q" O; C
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")1 F3 f$ U. u) G2 ~
- (not (equal (cdr (assoc 40 e1)) 0.0))
" C. i9 b3 L& B8 o3 T$ y - (not (equal (cdr (assoc 41 e1)) 0.0))
0 G: C+ H3 v9 i0 Y* b - );or, U, j3 C2 I' y/ H8 a/ _/ D
- (progn' z7 F/ Y: L1 V9 }5 a
- (setq flag T);7 b' T1 M* f7 x
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
" |' p d1 d. ?# A1 i$ S6 X - (setq width nil) * p e" f* z& P2 T8 i
- );if5 [1 v; l4 I M ]1 u
- );progn then jump out of the loop5 n* I7 z: a y
- (setq na (entnext na)
% k- W% J, H9 Q - e1 (entget na)
g( s& g; Y0 F- E: |/ H - );setq
5 r9 `) I3 p2 L! I% `) a$ N - );if % e! R* q* j# w, u) @
- );while8 q j* x) r1 x. p" [
- (setq n (+ n 1));setq
5 l7 H) [( d7 E, ^ - );while / I: ~* o! o4 Y1 x* ~
- ) v$ ^% q8 M8 n8 _
- );progn then it's a legacy
/ @3 i+ ^' a9 v K: P1 X: j - );if ;legacy polylines that may have varying widths
* t7 l _4 t. I% \+ o
+ T9 y- ~- L4 Q, {9 D0 o- (if (not width)
. D. F) t# z1 P - (setq width "");setq
: A. K, F1 X9 f3 c - );if" S9 ]6 M- O, r% |8 |9 c/ w+ ?
- (if (not (equal 'STR (type width)))
' a8 F8 w0 d2 R3 A - (setq width (ai_rtos width));setq 1 Y3 a- i1 w$ V7 ~5 C3 v' L: V
- );if
4 M/ h$ Q+ }" w2 E -
# Z0 j! w# i+ e8 @" l. x - width
( T( o) G% y D' J! ~ - );defun pl_width_getter
2 t( a2 e% t3 l3 C! H* w
' Y% q. V8 |" }( ?: m- ) Y/ } ^; y, P& h
- (defun match-col (/ ncolor)0 h$ X3 B4 K% A* ^# T4 c# m
- (setq ncolor (cdr (assoc 62 elist)))
& Y% u" O; J: x2 E3 u7 x - (if (not ncolor) (setq ncolor 256))
; b, i3 Q2 K* S% Q. X- t' z E - (if (/= color ncolor)
7 ^# [- B$ V1 d6 U3 t1 \2 I - (progn
( z8 Y( Z2 f# [' X7 {0 l. K* R - (setq chk-col nil); }2 z# E1 q$ T8 o% N
- (setq color nil)
2 }3 h& ~( K) o7 b3 k, q3 I9 q& o - )
3 t: ?% [) J6 O9 C; i) G3 y$ t: F - )! {0 C v9 U( e( e( C1 _+ V2 L( S6 [
- )
# c* U$ c" _2 T, W - 2 U; X% X7 ~. x0 Z4 j# w
- (defun match-lt (/ nltype)0 M5 K! N, H7 v; w# G
- (setq nltype (cdr (assoc 6 elist)))
" m. f& j4 x4 ~ - (if (not nltype) (setq nltype "BYLAYER"))2 u3 ^( s- j. l! W5 P
- (if (/= ltype nltype): k/ W6 ]1 j, ~) x8 Z$ n
- (progn
3 @' @* X' X1 \) m - (setq chk-lt nil)
4 d2 Z' W& U0 M) i - (setq ltype ;|MSG0|;"Varies")
. v4 f% s- ^) O* C; b" P% \ - )! b6 U" k) q" Y2 \/ ]$ ]' b
- )
. c2 q9 F3 I! W! E# M8 \* ` - )
6 F8 u6 Q+ L9 X
. c t* l6 B# t6 x$ I. D7 i( D- (defun match-lay (/ nlayer)) @" k: ~3 M3 ^+ H9 ~
- (setq nlayer (cdr (assoc 8 elist))): c% y/ a( S6 c" j$ M% S
- (if (/= layer nlayer)
. [6 r% y) `9 m+ x2 u7 g - (progn
6 L4 y0 L& H# r" X; s d - (setq chk-lay nil)
* N5 t2 l' ], w# k' I - (setq layer ;|MSG0|;"Varies")0 [4 t* ~7 F$ N: B# B) F
- )
3 @" _+ |% [' t8 [ - )
: U( M u3 Q) M" @4 e9 f7 m& H, s - )* q4 I! W+ _7 V. S5 l" Z) R# v
. z& F( Z% H$ ]5 P& c4 t# }: |5 U- (defun match-th (/ nthickness)
! [8 ^" C7 I6 K, K- C - (setq nthickness (cdr (assoc 39 elist))): R2 Z2 s% i% W9 q% c R e
- (if (not nthickness) (setq nthickness 0))
% t6 U9 Z6 k2 ]8 E6 s1 o! [ - (if (/= thickness nthickness)9 u/ ?( I! k5 I0 Y( W% d/ b
- (progn
0 P0 s9 N3 p# g d& g+ z- e - (setq chk-th nil); B. K# |2 Q5 l6 V9 `( K
- (setq thickness ;|MSG0|;"Varies")/ R1 d5 G7 c6 E) e8 K) F
- )
( m K# ^: B. G, y- j6 h - )- g* W3 P u) b" D, h6 m& E5 @
- )
1 r( A3 o$ h) T/ ~6 E* H - 0 {0 Z: h3 E$ o. g. l5 s; r
- (defun match-lts (/ nltscale)2 _. K; L7 T: y& H6 r9 c
- (setq nltscale (cdr (assoc 48 elist)))3 P# l) s0 j6 k$ O9 |; Z
- (if (not nltscale) (setq nltscale 1))
/ D1 t# b1 j$ @3 l- y - (if (/= ltscale nltscale)
4 u$ z; t+ t7 n( x6 Y - (progn
, p, L& W1 h5 ]1 X7 o# O - (setq chk-lts nil)
* D% G* N ?# {- p' D! L% M - (setq ltscale ;|MSG0|;"Varies")( J4 w: _' |2 V A" B
- )+ K; d: B U" x$ h9 S
- )9 J1 B9 P; c2 Y& f* \: Z
- )
' Z# i# V& o) E0 E5 N
& ]6 n3 g7 C- i ~6 c0 s, z6 O2 ?- ;;4 ^3 I2 K0 g7 x' s# `
- ;; If an item is a member of the list, then return its index number, else
: Z$ K( |; }7 u9 C6 ?+ E - ;; return nil.
- h8 O9 j Z' v! t1 L% F - ;;3 V$ \# ~( c: t% w
- (defun getindex (item itemlist / m n)% o+ }( j8 u+ T( P
- (setq n (length itemlist))
( z; H- l7 `/ ]& C8 i - (if (> (setq m (length (member item itemlist))) 0)
3 }) j2 N! ?1 T$ P - (- n m)3 [! T! _. v9 V' J. ?
- nil) k, q0 G. Z/ t
- )
0 P* ^; ^$ I9 x* Q - )
2 }3 A' }/ O+ f P7 h6 d6 {$ T8 G6 y - ;;
+ X: m5 I) e5 P) Y - ;; This function is called if the linetype is set "BYLAYER". It finds the2 \( e" t7 r& B
- ;; ltype of the layer so it can be displayed beside the linetype button.
- |, [( F. ?& R5 r# @ - ;;7 l; M- E" T) m1 f9 y7 e' d- s* m
- (defun bylayer_lt (/ layname layinfo ltype)9 a+ V( A( Z9 z- a* g
- (if lay-idx$ f" i- [- s3 ?1 l; b8 O
- (progn
, h/ Y- }! p; Q, F - (setq layname (nth lay-idx laynmlst))1 k; H9 s: l& V& `! d) D6 Q
- (setq layinfo (tblsearch "layer" layname))
f& A5 V' x- U, z7 K6 \! Z - (setq ltype (cdr (assoc 6 layinfo)))' @; W4 {- D' a* W
- (strcat "BYLAYER" " (" ltype ")")
" K; @- r) i! @! K - )
: V5 d, w7 d6 x - "BYLAYER"
1 u* M4 K) f3 M( X - )1 F( a& {# L, {5 s4 R6 Y
- )7 R" U, a8 F, S7 A8 T
- ;;
5 `( X# K; D' O# l; P1 Z/ X - ;; This function is called if the color is set "BYLAYER". It finds the3 c5 Q. b+ m' \ f
- ;; color of the layer so it can be displayed beside the color button.
& Z/ {: n3 G& A7 M - ;;
& y* X7 \) b. n - (defun bylayer_col (/ layname layinfo color)4 L5 L4 f6 g# Q
- (if lay-idx" u) f8 O! y& i* E
- (progn( \' Q3 T$ y) r7 Q' ~- n
- (setq layname (nth lay-idx laynmlst))
' h E h9 q1 r! F/ Z5 K4 u - (setq layinfo (tblsearch "layer" layname))
7 Z7 a( o0 p( l - (setq color (abs (cdr (assoc 62 layinfo))))5 G& u+ n3 s0 }" \% r0 Y$ E9 v) I1 v
- (setq cn color)" M. h& y, C; c, R
- (strcat "BYLAYER" " (" (colorname color) ")")( g2 I7 H! a: j, w/ q! A
- )4 ]3 m5 g! V* H3 {" @) b7 s
- (progn
8 A4 y! Q$ ~3 M( a$ q - (setq layname elayer); |; @- W- y- H( Z' g
- (if (and (/= elayer "")% {" Z' u7 X% g
- (/= elayer "Varies")
3 `2 {: E5 |% W* Z. h- w - );and& k/ M" P( B6 q) H
- (progn
9 e" v- o: j1 P - (setq layinfo (tblsearch "layer" elayer))0 b6 G4 h. ~1 W5 z
- (setq color (abs (cdr (assoc 62 layinfo))))
( N: M5 {5 c6 r7 h6 L" p- S6 X - (setq cn color)
" N" {- G8 `0 k3 K7 h8 E - (strcat "BYLAYER" " (" (colorname color) ")")
) |4 ^9 E! J' N- e8 | - )( r! I5 y, I, D9 j7 K
- (progn: B- [ A1 E* b0 ?. W4 d! t6 t
- (setq cn 0)
1 [( D9 F4 s) B# T7 F- l - "BYLAYER", b- B0 N0 r) `# }. _( {( e; D
- )
' i4 R% e6 j& O - );if
# i% b4 T/ c. g* I - );progn9 f, E" s, A% I
- );if
; _4 u8 |7 S* x S - )
' B7 _5 _! ^8 F - ;;
) J* Q* u. `" r - ;; If there is no error message, then close the dialogue
5 L# V1 {7 Z) ?5 G' n9 H - ;; u2 s/ c9 w* X N1 H7 ]4 ?
- ;; If there is an error message, then set focus to the tile1 i/ s4 }7 ?2 I( w' F6 c j e
- ;; that's associated with the error message.; k# M% H2 T6 q4 a. _2 {
- ;;3 n9 f8 d* E" v
- (defun test-ok ( / errtile)
+ k0 `$ Y& y9 B) l- I* x$ u - (setq errtile (get_tile "error"))0 { X# C, S: Z) O
- (cond- R) o2 @7 H% }% ~5 X* {; Q
- ( (= errtile "")
3 }! A1 E; Q2 u9 f' @* [/ |# M - (done_dialog 1))2 h' c ~/ n' S# V9 x7 F. u
- ( (= errtile "Invalid thickness.")- `, D8 s8 b' @% H% e7 [
- (mode_tile "eb_thickness" 2))
9 v' ]/ ^9 ^& {; a4 ~* A6 |6 m - )
/ ]: C0 [% C8 I( w! a2 Q - )& T/ f- z% K$ X S' R# p
- ;;5 u/ {% r! @& } L
- ;; OK in main dialogue.
: m) L. O) w w, L0 S7 l2 Y0 r; g - ;;' y. ^4 ]) Z6 o7 ^& A- g% P3 B
- (defun test-main-ok ( / flag)
' ~0 c0 b2 \; C* S7 z* P0 N - (setq flag T) . X* \0 I; n8 y& l7 V j7 x
- (if (not (or (distof (get_tile "eb_thickness"))
: N& Y5 N6 c& j+ C& ]) i9 b* u - (= "" (get_tile "eb_thickness"))
" g3 U( s0 _& O8 l# n - );or
4 M, y1 O# s* H( b3 u- @ - );not, K5 m% ~: b3 a
- (progn5 A; V# l7 r' A' h
- (set_tile "error" "Invalid thickness.")" M0 @ q+ j# l) ^4 E
- (mode_tile "eb_thickness" 2)8 v. `# [' ~) l5 | L+ f# C
- (setq flag nil);setq
# N: z# a1 Z0 X# ?# @" H - );progn
! v! l8 {2 F# s - );if
4 P. j( Y* ]0 c. F5 f) \" b; b - (if (and flag/ ?; V! ?! |' e' h5 l
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
% H3 b# R" u( M3 `* C9 E - (= "" (get_tile "eb_ltscale"))$ K, g! B4 S, k: c4 R
- );or 9 k) `& k- q' K, m7 l
- );not" H* j4 T/ i6 |2 Z
- );and
+ H4 V( Q, L# C* s- S" r0 t - (progn) y3 Z: x! e3 U% Y; q
- (set_tile "error" "Invalid ltscale.")
( B' N( D: E8 o' { - (mode_tile "eb_ltscale" 2)
, g& j5 G: @* l5 o - (setq flag nil); % h f! A( V+ [+ z$ D" d
- );progn then6 X9 \( f" X2 j M( w: }# \
- );if
9 @% p$ {3 ^' S8 m - (if (and flag
1 d7 Y+ x$ R; M - ; Don't test the tile's value unless it's enabled.
/ }3 e- N) K& e6 L/ z - ; We're not set up for the display-only value
7 n& R2 B% D8 g/ Y2 ]( h - ; of "" here in the error handler.% i/ ~, s2 ^! Y* \4 `
- (= 2 (logand 2 eflag))
3 s# L3 X) u4 M0 A8 k2 A - (not (or (< 0 (distof (get_tile "text_hgt")))
0 U3 L7 S$ ]# p: E% A, s' X - (= "" (get_tile "text_hgt"))
4 ^0 n0 X/ a! q- m1 ? - );or! {, T f; X4 g8 t
- );not
- I; ]' P8 r( O7 O3 O5 C* v - );and
( Z. ~1 L' u7 T" T% n! X8 M - (progn. R8 ~( ]( L Q, s0 t
- (set_tile "error" "Invalid height.")1 s) Z5 i8 S8 ^2 N8 K5 M3 i& H7 W
- (mode_tile "text_hgt" 2)2 e. W, q' l) f
- (setq flag nil);7 |4 ], v( B% W6 {' [5 g
- );progn then
$ F1 J: ]- U* b) ?3 Z- } - );if" [ U1 a# d6 g, H0 v. @
- (if (and flag
( Z* r. @5 j# r/ Z$ n& `+ R- k) ] - (= 1 (logand 1 eflag))
! X: C" S0 t i9 u5 J- S - (not (or (<= 0 (distof (get_tile "poly_wid")))$ \2 A1 b7 {# S, f0 Y' X0 j7 b
- (= "" (get_tile "poly_wid")), k, h2 c$ a: c7 f; U
- );or0 G5 [: G3 ^: }- m: m3 Z5 {& h
- );not: B# ` W+ t R# N' D0 F9 T& \* X& c
- );and
1 H$ _. t1 S9 X8 |1 m - (progn, c/ E. G3 F( x( Q9 W/ V, x
- (set_tile "error" "Invalid width.")' }7 m6 @% w+ y4 D
- (mode_tile "poly_wid" 2)
" T* ~6 E' y9 G - (setq flag nil)
* ?4 Q c# U0 r+ {4 U+ ^# @ - );progn then
8 t- z# H# V/ j8 G: V4 M' v8 l - );if % `1 {/ p; h V
- (if (and flag
6 X; g O1 v, D& J; Y" @ - (= 1 (logand 1 eflag))
( M% y( U4 E" V( E, i! [, V - (not (or (distof (get_tile "poly_elev"))& Z# a, r, m0 }4 `. \' |8 B$ o
- (= "" (get_tile "poly_elev"))8 c0 [. E2 y; A F
- );or
2 N9 E6 q9 V- K2 k- I) ] - );not- h+ L! W/ I8 W I, ~0 u# n
- );and
- j Y8 e' T% R$ ^8 c4 A" B- f) ` - (progn
5 N0 H/ e+ w* X6 c - (set_tile "error" "Invalid elevation.")
! e/ Y, H; V: o" u: i- u - (mode_tile "poly_elev" 2)7 j8 ]3 L9 ~8 a) L, e; R( ]) [- B
- (setq flag nil)
& ~# w* E$ M, A - );progn then9 u ^. C! \; N8 f/ @
- );if
; L- g; t+ O% p - (if flag 2 Z4 K: o/ x; J) k
- (done_dialog 1)! f; j( ^0 ^& Y% [$ N! t. n6 w6 Y
- );if) Y: `, D M3 l: L. g4 p, `
- );defun test-main-ok
+ A `3 o% B! r' p; V3 N7 N - 3 o$ j. m4 k2 [, V. v0 Z0 S
- ;;) c$ O0 C4 D& w# U
- ;; A color function used by getlayer.
' N: E0 o2 T! O7 S - ;;
1 h8 N- O6 J( |- c* M - (defun colorname (colnum)( ^' g6 i9 G d4 ~) h P& {
- (setq cn (abs colnum))
E' F0 C' O9 h0 H& T: q4 c - (cond ((= cn 1) "red")6 d G4 Z; c. M& E* I; c
- ((= cn 2) "yellow")
3 Z& g! z6 g# e7 H7 G _ - ((= cn 3) "green")
$ j& e% f9 G) j, \ - ((= cn 4) "cyan")5 m8 u+ Q5 G, @
- ((= cn 5) "blue")
! z3 r$ y" t! N$ C. l- R - ((= cn 6) "magenta")9 }! L! \7 \% s3 T! V5 L6 @8 @! j
- ((= cn 7) "white")
5 x. i- \1 r6 C - (T (itoa cn))
2 a+ q+ ]- H, |0 P; ?4 w - )0 N( Z8 g @5 O
- );defun
& D3 J! V& [ q& I - ! B' q1 I7 W" A: e- e v: a
- ;;; Construct layer and ltype lists and initialize all( ^( h- p% R7 @; p. _2 Z. m5 P
- ;;; program variables:
1 G* j4 c, }) r) k; ~$ r! M
. i" P7 r+ `3 V. A5 s0 {7 m. B4 \- ; (makelaylists) ; layer list - laynmlst4 A0 |. o0 _9 e$ r. T& Q
5 ]+ L& b( ?$ o |
$ c% K+ D* @5 f6 g; V: b- (makeltlists) ; linetype lists - ltnmlst, mdashlist
" ?% T/ e! n) [4 @: C) s* U6 { - 9 c8 K& _5 P# @: |
- ;; Find the property values of the selection set.
/ E' F( C; n4 W, P/ v% f - ;; (getprops ss) returns a list of properties from
" z* w* s# K9 N" }8 J# I, w - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
7 }0 _% S! D% f' F5 \
+ |8 c0 P. w( ?% ^: b7 K( Q* f1 N- (setq proplist (getprops ss));@rk interesting things happen here3 T/ M% {) c# Z+ |, l Y
- # r. W; m, N* w+ D6 _ U% Q
- (setq9 q! p# L2 H% C2 C- F
- ecolor (car proplist)
' x1 f& _% k6 x, k - eltype (nth 1 proplist)
' d4 k& f1 q6 S - elayer (nth 2 proplist)/ d. v9 ?5 u6 r$ p! | h: h
- ethickness (nth 3 proplist)1 a9 |# N+ \3 \7 U, S. P" T) Z
- eltscale (nth 4 proplist)
* Y; W/ |* G! a) I; J* ~6 L - ewidth (nth 5 proplist)) i1 g' ^) G2 |' v; D( ^! d, }4 D; l
- eelevation (nth 6 proplist)
; o( [8 v7 C8 k" K4 C Y - eheight (nth 7 proplist)- j% y& o% Z" l" M7 E
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.# ]( S. `( a, I7 j- W
- eflag (nth 8 proplist)
9 b* A/ A( H' C e- R# s$ |) F$ q: a - estyle (nth 9 proplist)
1 ]0 |$ D) V7 l* q( _ - poly_ss (nth 10 proplist)
' \: c3 J7 g$ A- T - txt_ss (nth 11 proplist)
1 F, G% d3 P- U+ \! X - );setq0 e. d& u2 u2 r' f
6 {; U2 B! J+ V, g/ H- ;; Find index of linetype, and layer lists
# I4 R1 d) g# q5 J2 r; A# T& h7 { - (cond
; C: f, ^# x& {5 U( T; b& F8 V8 Y - ((= eltype "Varies") (setq lt-idx nil))
: g8 i+ h# L( w; s# R5 W% B. Y - ((= eltype "BYLAYER")" G% A5 A+ a' a7 ^$ K' E7 t, @, W( s
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
f% P7 M, x* p* T& A6 T - ((= eltype "BYBLOCK")4 h+ b) W/ w; ^. _6 u
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))" c; c* [: q' I3 S4 M+ P3 ^; F
- (T (setq lt-idx (getindex eltype ltnmlst))) C9 ], y/ E) h: v4 F7 x
- )3 T% D! P) Q' M2 }5 n' \" t. W6 q A
- (if (= elayer "Varies")
* ~' d/ h4 D w+ p+ j/ H: O n - (setq lay-idx nil)
^' p# M' C) O5 i8 ?. K - (setq lay-idx (getindex elayer laynmlst))
7 _0 b7 T9 {! U - );if
! @) b+ Z# I8 T7 h. r" S' w, s - (if (= ethickness "")1 q. J- D1 m0 D1 D- b
- (setq ethickness nil)
& @6 O3 Y& m; C# h: _+ W' j- D - );if
/ I; K! d8 T! I+ l3 b u! S* F& q+ I - (if (= eltscale "")! z1 | r% ^: V5 X6 D
- (setq eltscale nil)
4 L; M9 _, b$ ^# r - );if% ~( X- ~, ~; Q3 K8 ?
0 [* Z- `4 ?, L- );defun ddchprop2_init ; end (ddchprop2_init)" W& P1 t9 M) m3 O2 k* S8 p; m
- 0 S. i" T# z) Q6 ]1 h/ Q
- ;;; (ddchprop2_select)
9 J' R' v8 o0 _4 E" P, A Y - ;;;
; F4 G5 l) g$ T, t& W - ;;; Aquires selection set for DDCHPROP2, in one of three ways:9 R# Q7 k/ |2 E/ i: o# D& q" m
- ;;;
. N- l0 E, x" ^1 z. c - ;;; 1 - Autoselected.- M" }2 a1 \5 g L$ c7 _
- ;;; 2 - Prompted for.# [! f& r- a4 [8 h
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> ), R6 X, Y U+ z- ]
- ;;;
5 O" V1 ?+ f3 G( l - ;;; The (ddchprop2_select) function also sets the value of the! e2 J2 G) Z: m
- ;;; global symbol AI_SELTYPE to one of the above three values to$ w5 h1 h( {% J4 C) ?3 l$ |
- ;;; indicate the method thru which the entity was aquired.
5 J, z, D$ n Q. k# ]7 ]) Q
3 o" L: [4 x. {6 e( f+ J* C- u3 ?
+ V% H2 G( G S+ G- (defun ddchprop2_select ( / )) v0 L$ ?' p3 a! M" U
- 9 f1 q4 B9 A( m2 ?9 P& q D8 z
-
4 L; M2 g5 c6 W, T' T W - ;returns only entities in ss that are in the current space. ! R( y5 C A& Y" H# r/ }( ~) q/ z" D
- (defun ss_in_current_space ( ss / a cur_space ss2)
) B6 Q u5 _# N" Z
& c2 H. d* G/ w$ F/ ^: f( k- (if ss
2 P, t2 o& U6 o - (progn
; |% [5 W8 @) x$ W' s/ K& J, r - (if (and (equal (getvar "tilemode") 0)* ]" q H+ J! }" f/ H5 W! B
- (equal (getvar "cvport") 1)6 l4 h! \8 H( ~! c3 C1 q, n
- );and + f3 L5 ~: Y# E2 Q
- (setq cur_space 1);then paper space is where we are.
$ ^* J* H; R1 P5 o - (setq cur_space 0);else model space.$ T3 U" S* t1 ~7 ?' b
- );if
! p; y3 z% d0 E. e0 z+ C0 G - (command "_.select" ss "")2 F) }; R! y* ^+ [+ C( B
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq1 {$ K! Y0 V& I% @6 A
- (cond ;;;;;tell the user what's going on.
7 |; m( Z; c) H5 K5 T# T1 C8 _: O/ f - ((not ss2) (princ "\nNo objects found in current space."))$ ~0 B/ U# E3 L3 x3 M! T, h
- ((not (equal (sslength ss) (sslength ss2)))
1 x- G( J( j0 {/ ~9 I - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
# Y2 N0 z; L3 V" L$ s2 t9 f - " object(s) were not in current space."
- P$ |# s, X+ A5 z2 l& q - )
D$ |* N6 q |& a - )
9 @/ I# x8 b" ?; b3 n - ) L6 [) h& C) C, A' ^
- );cond
0 d2 j4 l2 p# M - );progn then
' [1 ~; d2 u; Q - );if
0 A w1 Q5 }4 i4 s - ss2
0 a5 G1 N \* Q! Y( N6 _& U - );defun ss_in_current_space
- d* z3 i9 e! z1 s
% b0 A4 T. l& l. d
! l3 I: Q) Q7 Y0 v7 q- ;;;begin the work of ddchprop2_select
# X4 o M! p i4 K$ [; G6 b0 X -
m9 }! S7 t; w8 e( l9 U- l - ;; temporarily restore original highlight setting.
! e8 Y D6 @6 k% | - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
$ G& h6 D& y* e3 c7 t - (cond
: I3 ?+ x( d5 w. l - ((and ss ! O9 ?3 L2 P4 m
- (eq (type ss) 'pickset)7 Z% S, ?5 n+ |' w9 t
- ) ; selection set passed to
2 I* p3 h" G5 u. a$ t' _" W - (cond ; (ddchprop2) as argument
4 i2 ^9 C3 {! u& |; |8 W - ((not (zerop (sslength ss))) ; If not empty, then
6 C5 t) m1 R# J7 P6 v - (setq ai_seltype 3) ; then return pickset.0 m- W& u# {0 W8 W+ j
- (ai_return ss)
: L4 z6 s0 S' k n ]1 x( ? - )
x; U- p6 e( w0 q9 ~3 h - );cond close( g6 u; o# t4 b
- );cond #1
7 _1 R2 @- y- s% U& t0 M z$ J2 \ - ((setq ss (ai_aselect))) ; Use current selection, C* k/ c* W! E
- ; set or prompt for objects
+ \. O% `, w/ S - (T (princ "\nNothing selected.")
" y$ V( }$ o7 e# a% @ - (ai_return nil) e4 }% `; x6 ?" V
- )! X/ E, @" t4 \7 y0 [$ K
- );cond close
% f8 v8 X7 X2 [4 W/ s2 K: ?: u - (b_restore_sysvars)
0 ?7 X' D. u% Y$ w
! N- J) o7 ]$ z" K- f1 C4 K+ c1 ]- ;(if ss
: U. V/ H; T% q/ t6 G( \, V) e - ; (setq ss (ss_remove_locked ss)) & o) s( T9 u& h- M+ o1 }. j
- ;);if
/ Y' a) P* b# ~1 e2 B - (if ss
. `6 ?- U n& Z6 l) [5 u4 W - (setq ss (ss_in_current_space ss)) 3 h: c$ f& u# @4 E( e
- );if$ s- `) ~" Q( }/ z
- ' Q( X7 r* i& Q. f
- ss
/ f& R8 |9 z; @ - );defun ddchprop2_select3 a4 ?* d. L* U# w
- / @ d% E. ^& S
5 A% A+ N* d: O: _- ;;; Define command function.& Q0 v; A6 A2 ^0 ?
- (defun C:CCH ()
6 w" ^% U' J/ S: ]3 n - (ddchprop2 nil)1 ? B: [" _! I+ x+ \- i) t
- (princ)7 W9 e; l2 D7 ~6 [2 \7 G
- );defun
5 t1 e! {9 s( ^
5 d) ^/ _$ x( i- v E! W2 G- 9 d' Z( \' \+ Z
- ;;; Main program function - callable as a subroutine.
+ {! d* k1 J/ m$ ]$ o - ;;;: b0 W# \- S# O: ]
- ;;; (ddchprop2 <pickset> )# c5 y2 u" w+ S' G, C
- ;;;4 Q5 G+ _% \+ X
- ;;; <pickset> is the selection set of objects to be changed.
& r' P. l0 S9 m6 y - ;;;; i3 h3 u+ y; n3 x1 U
- ;;; If <pickset> is nil, then the current selection set is
5 N" g* r4 \# K7 |+ Y- Q - ;;; aquired, if one exists. Otherwise, the user is prompted* S% i5 ?+ d9 d# S; {) c: p$ E5 F
- ;;; to select the objects to be changed.1 A, E. A1 B' l$ R8 a
- ;;;9 r. d% ?! M8 l
- ;;; Before (ddchprop2) can be called as a subroutine, it must
Q# X' }2 y9 x( O - ;;; be loaded first. It is up to the calling application to/ ]2 X4 H; X1 [* D! W; B
- ;;; first determine this, and load it if necessary.& l* W8 R" M5 u: [4 s: I$ L* n
- ' w7 [4 p# M0 s' t' S7 E
- (defun ddchprop2 (ss /
4 S! z/ P% X+ Z" U5 P. Q
" h3 Q1 t6 M- i9 u- a2 F2 Z8 U! o! w' ` r7 f6 Q
- add-mdash
5 d2 k: B' k' \; I# R5 a1 N: t - assoclist
6 R X8 _. M1 T& n% P. l - bit-70
0 ^, S8 P; ~8 g, t" E) [/ {4 ~ - boxlength2 ]: n9 ~4 ` p& K) `* b9 B
- bylayer-lt
" A0 P# F# z3 V7 @1 ` - bylayer_col' V ^* M1 f. R
- bylayer_lt
4 J) T) f+ x; e# o% f( r - call_chp29 E) X5 ^- h* p
- chk-col
, N Z, P8 H( Q9 D3 ^ - ;chk-etype ;var removed by rk , L! X7 d: I1 i5 B0 D
- chk-lay
& I& z# | x0 [# ~ - chk-lt
: W# h, T3 q+ g0 f7 p X - chk-lts ;var added by rk 9 x/ T/ P8 S( U7 i2 W4 R
- chk-th" e) Z+ H% i/ y N# `1 A
- cmd: K, P f. @/ U* z5 ?, ~/ Q
- cmdecho. G* e/ B4 E0 t) x! i( Q
- cn) |5 k4 T$ R& J" e9 N& E9 a
- cnum# A+ d- ?/ A! P$ |
- col-idx# z6 W1 l; Q+ x7 ~# E: x+ [
- col_def
& B( K" l0 R/ ]3 Q K4 ` ~ - col_tile! O- K6 @# }+ U% W
- colname. Q% G: d* X+ S/ j7 L. C; {) ^
- colnum
. V, K$ o' n5 Y) p' x- a6 D6 ~/ b$ n - color
6 q" o# L& T8 h4 U - colorname) G6 D5 g- v9 k: u2 {
- cvpname
. S1 J u/ C" ?9 ~ - dash
6 j% j% h& F0 T8 b" ]& V - dashdata
0 w; d3 z; v) C - dashlist
- k7 P* G2 }( u1 J! f+ K - dashsize% T8 P K9 }2 r4 U8 v4 w6 M) V
- dcl_id
1 F1 C+ k/ l( e M - ddchprop-err
4 t) P3 M4 F4 P9 T - drawpattern
# i9 U2 Y1 u4 u X7 A! x: j - ecolor. V2 ~$ {+ ?# t# S8 u+ ]
- eelevation
2 I9 l# M* Z8 M- f" r7 w4 u5 H0 b - eflag
# w" ?9 r/ C: P3 L0 G3 M( _ - eheight% X% l9 F7 p( l4 y5 `0 W. o
- elayer: L3 R) W! @, K
- elevation
8 W1 P; g9 b, j3 ?" S4 k - elist) }" o$ @: J' F; f5 U0 V3 C. |( @5 o
- eltscale
# g% \, ?; N+ L8 n! I4 |; l - eltype& Q& [; A' ]3 G+ b9 G. R* r1 A0 i
- en
, J* ]7 F+ l. Y6 @" ^6 w - ename/ {6 P; u3 d5 D1 Q7 ^2 i% p* \
- ESTYLE ;var added by rk% i7 M! i4 u' g \- }' S
- ethickness3 G/ `( F2 e6 @: @
- ;etype ;var removed by rk
: l7 ~0 }' [( D2 ~1 K/ |% S0 D d3 Q X - ewidth" D& U2 n" a0 l* b. N
- fchk1 R/ ?9 T2 Q! c _, F
- frozth
6 E+ n8 Y# k" u+ Q - fx6 E8 n4 J/ a3 O* j
- getcolor9 f- w( E9 }2 `
- GETELEVATION ;function added by rk0 E" B6 `# @" u
- GETHEIGHT ;function added by rk% k1 N8 v3 _) `& Z y
- getindex
4 P; a! ]& G8 V& a! K- e- A - getlayer
v; w, Q& K5 A7 Z% \ - ;get_locked_layers ;function added and then removed by rk 6 M. j% S$ `9 o, G
- getltype
/ X* V& ]- r. P! c1 [ - getprops5 t+ [2 ^! {+ `5 M
- getscale ;function added by rk: k7 s6 c1 B# d8 M9 c# J
- GETSTYLE ;function added by rk) ], S0 y# ]% A$ n. Z
- getthickness
" N7 j Q0 G) f/ ]( `9 Q8 |3 Y: |6 A" r - GETWIDTH ;function added by rk
Y: e5 p: I! ]! |: J# w5 S - globals
6 c4 ~9 o$ D8 E& X( q' w - HAIR_STYLE_LIST ;var added by rk
/ Z3 F* ]" L' C+ k9 D; O1 ]# A* C+ J - height7 E' g/ Z- q1 e% g% @7 `- P" C) g
- index
; |* r' h4 y( R1 h% `2 N7 M - item) D' W- W* ^ p- r/ T* m
- item1( d) x& e+ }: [5 \
- item2
- _3 d0 o" \1 i; a. a" c - itemlist3 `/ H3 n x7 \ ~# o5 O( z
- lay-idx
+ H) M! D( n- B1 I+ H4 w - layedit_act" ]0 o/ C# z- ~8 {0 k7 L
- layer9 l, i* s7 @3 q) V8 M+ q
- layinfo
& p2 Q5 q3 y; C/ R - laylist
" o+ _6 v1 {$ @& U* S/ ^* I6 k* v; m - laylist_act+ k, A! |, N7 x8 L" S
- layname# i6 k+ K: ]+ B v* u
- laynmlst
& B6 ~1 l* Y% h' K7 n3 `% a# Y - layvalue D% {1 _. Q ]% Y* y# v
- linetype
" X/ K1 n& @) w. `0 u$ j - list1
# N9 v: x# A+ e- [# e n - longlist
- K: C; {8 E' X/ S - lt-idx
1 w) m, ^6 V$ S; s/ q - ltabstr
$ a% _& u. O# S" i$ X& C1 t - ltedit_act* Z( s# J% \& M( p$ T4 q$ e
- ltidx: k& j! X- c! {
- ltlist- |) ]# \5 v3 @
- ltlist1
% a! _0 i- E1 _; v. w - ltlist_act
/ ^( m5 I3 Q( B# g4 Z7 A) m2 ] - ltname
( F" Z, t" H8 n& w1 w- I - ltnmlst
: W& A/ n% T* U* ?7 Y1 P3 \ - ltvalue
1 P# ~. B0 o% d$ S1 D( F- F; c" \% j - ltype
9 j: U3 V2 P/ d' p7 x - m7 K' J& O/ V! S
- makelaylists" f( \' J6 H& p2 @$ W! _
- makeltlists
$ ?6 w5 Q, P0 j* _ - match-col
7 Z; U2 y! Z& m* ?/ C - ;match-etype ;function removed by rk
1 A. m( ~& q3 G; d$ A: _ - match-in
; Q/ b) d8 t; E# e* I( B7 D" O - match-lay9 f$ H! y z; Y. a
- match-lt
, ^0 T/ t# ?$ U6 N+ q - match-lts
, b/ z' t% o6 z - match-th
% z) y A, `2 y9 H - match_col
( g( u' a" C" C. b. S - mdashlist9 J! r; F- ]* p& I1 Y
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk% [0 B/ o' }% I- Q
- n( b9 M; _/ N( M2 |& B/ J* S
- name( J) s z4 W, U# z' j, i# j5 k
- ncolor
$ |9 p t) G# p - nlayer. E, W, c. [+ j
- nltype
( P. b3 E. p9 X7 R5 [% n7 E4 X# \ - nthickness
( S4 X) n3 d: J/ j! U" f - off) o/ H. Y# e" ]3 \1 s/ f
- old-idx$ o* f8 N# j3 v6 A
- olderr
: y: ?4 q, T/ `5 v3 i- P8 f - on" t0 x4 T. P3 q: R
- onoff4 D8 }: N7 w5 f+ v
- patlist$ z$ c6 d/ V* }
- pattern
! z, E0 E; ]& `7 o+ i5 p8 g! i. Z - PL_WIDTH_GETTER ;function added by rk
6 K+ O5 M6 n# ~2 s0 T, b1 \ - POLY_SS ;var added by rk; ~$ T3 d- E5 A: p6 V
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp
" U9 W7 p+ G4 B2 |" `# n - proplist
% [8 }; F3 N1 P& }4 B5 o5 j, ~ - reset-lay
0 T+ V1 A. W% M3 W: M' ? - reset-lt
5 P) {% q$ O) k' c2 H& D - s0 i# `. f+ ^ V2 v2 G$ m7 N: E7 G
- selset; `/ W9 _, b; |/ H9 |; ~8 H
- set_col_tile
9 {) G F, o: d" L @( w - sortlist* ?$ a6 _- z- ?" j* `) H' S
- ss
' s# W- n% Z, [7 c) f& L E/ L - ss_in_current_space ;function add by rk.
9 @5 b7 g2 f/ E: G1 n& c6 a - ss-index/ f5 d. ?; G8 a+ \6 X9 x( O7 d
- ss-length
4 U1 `" d, _; H! f- q& d - ;ss_remove_locked ;function added and then removed by rk.! w- b0 I, O, h9 d/ y* p# r2 n( A9 l
- sslen
) a5 \0 P: _1 |; J - temp_color
& v% v5 X, S4 }: R; s$ H) J" y9 S/ d - templist2 d2 c! p+ [: l9 j+ y! X5 R0 V2 z
- test-main-ok
3 \0 i1 y2 `' N1 O4 f5 ? - test-ok! u2 ]& e' ]. A4 g: K
- testidx+ y3 N) C: q/ |; v3 c
- testlay
1 E+ S: h9 \1 A) l5 x: b! V/ G - th-value
! P4 \9 k$ K: F" L2 V2 Y- c! z, K - thickness
$ s; l! n5 o4 M& ]& [: Y/ r. b3 E - tile
: ^. r( d P7 g: b - tile_rect
. f& t- D8 \8 E" m' R" ] - tilemode
) k* B! D s( o, K9 p - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk( X! g" M4 G& y# [' u9 v6 f1 @1 y
- TXT_SS ;var added by rk
W0 w2 ?& o$ E5 |. K - ;undo_init ;removed by rk.4 B, K& b& g6 A' H& j
- vi2 B1 u% P# Z. t
- vpf" I. o4 k2 W% N
- vpldata. {+ B' z; w1 a/ m$ r6 B) c: `
- vpn
: {/ H, Z. Q' J" [6 ^9 L; j- ] - which_tiles+ e$ Y& d4 N% k) `9 H4 M% {
- width1 s; c# g+ _+ i/ R7 R
- x
: e z! g- W5 [! j! l& W - x1
$ @% l6 g# _( R& d! A, ~ - x2
- @4 _! ^/ b) O* e0 \( ~% i) Y - xdlist
( @ n; ?+ C2 `: D - y
3 j+ i! G7 n- s M( h2 D - y1
2 m' c p) Z( A1 P" a2 R# } - y2! H9 J" y+ F/ M5 n# |
- )
& K9 Y5 |$ Z; `
# L5 {4 K: U/ \. E- (if (and (not init_bonus_error)
; ? z( q! P s O - (equal -1 (load "ac_bonus.lsp" -1)) 1 X- k t# \( p* w$ D) v
- );and4 K. j: ~+ }/ U% Q8 i
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))1 r0 V! Q4 [ s+ Q* S: C* g
- );if& A# \3 @+ A1 r4 L
- (init_bonus_error (list3 ]; Q) P- h, H, ^0 m" @2 {
- (list "cmdecho" 0 - t& U6 A% ~6 n z
- "highlight" 0. {* Z* }) t) I X; `4 u
- "regenmode" 1
w! k. o! a2 A, I+ x- K$ s - "ucsicon" 01 c5 t& Z# b, U$ A
- )
/ @3 ]# y2 B$ R( I; d - T ;flag. True means use undo for error clean up. $ [# S. n* G! y8 S: x9 u
- );list % U/ L& {! ~: U: e1 R: R7 S
- );init_bonus_error
+ M, `' g3 O& h, q) i/ u - ( N& U0 l& g: i" O' A" A
- (cond9 ?& a. ~; r! q4 b! P# A
- ( (not (ai_notrans))) ; Not transparent?* C* }7 y) _ S9 x+ {
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?( K9 Q! A3 W* |8 m7 B4 a
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
! Z: z. r, q1 `' d) c% R8 N - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?/ Q5 |" |4 w5 e$ {( \
- (t
% v a- Y6 `& \/ b4 F( h4 O' j! G - ;(ai_undo_push)) O6 U% K: O1 p. T
- (ddchprop2_init) ; Everything's cool,' E5 a/ R2 A% ?) u! Z
- (call_chp2) ; so proceed!
: f! D! ?3 O& x7 c; A) b( g7 { - ;(ai_undo_pop)
4 Q$ I3 h* S6 w - )
9 Y+ G# B/ u) \, e8 o - );cond close
5 Y \( R( C; b
( ]" v# ?7 J$ t6 k8 b8 w- (restore_old_error)
& V7 O6 W" @6 j6 x8 n; {, h - , t0 N1 V( v" _7 G
- (princ)
0 }) Y) k) P* x# T - );defun ddchprop2! ]% N% s7 \5 k# ?9 R. M
- # `6 R# p3 x5 {0 P0 C$ D
- ;;;----------------------------------------------------------------------------3 l2 F9 h, G3 }, p& J8 F
/ U: i# y' z: z" M( r: i- (princ " EXCHPROP loaded.")& p) g# U$ @1 P
- (princ): p* M( m* b/ H/ C2 U6 y, G
- 1 z# o3 b' F' A$ u2 j4 G3 p' N
- ;;;----------------------------------------------------------------------------: z5 ~3 F& g1 X* a/ ?
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
6 w1 T/ D4 U7 J - ;;;----------------------------------------------------------------------------
/ s0 T5 d- O$ f* R - / p3 }/ \* k( t9 [8 ^
- ; Next available MSG number is 24 9 [' N( p/ a, u E+ P/ k X
- ; MODULE_ID DDCOLOR_LSP_
. w6 o/ X+ h0 c: m - ;;;
( F% J3 }# H: R, ] - ;;; ddcolor.lsp9 P; D2 k1 l0 H1 |3 P8 a- I
- ;;;
! u: D' x: T7 B, k% O u% K5 i - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.( r' @1 y4 m. p+ _" U; x
- ;;;( x- ]" w: F/ p
- ;;; Permission to use, copy, modify, and distribute this software
0 g0 f1 O) k! y: `5 Z p: E - ;;; for any purpose and without fee is hereby granted, provided( |) O$ M k) |: W; x$ N
- ;;; that the above copyright notice appears in all copies and
: u1 C6 _/ {# V( K! l - ;;; that both that copyright notice and the limited warranty and2 R, f8 c9 y; d4 y, ~
- ;;; restricted rights notice below appear in all supporting9 ?1 z+ w1 K# \" g, F' q! z: ?
- ;;; documentation.
7 i( ^8 V( l* q - ;;;2 K. y( S+ m. F8 Z( H
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
3 f( J% c0 L5 p' l/ D$ X: S7 j/ f - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
$ D% P/ E5 N# t8 e - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. k+ G7 t/ K$ Q% @
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE) s7 }- e. W: ]8 `) G3 s
- ;;; UNINTERRUPTED OR ERROR FREE. \0 x, ~" ?" V6 o* A0 X
- ;;;
4 T% m. D! u. G* S5 v$ ^ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
9 l# P( z2 k0 l4 m8 ~ - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
4 T* S \4 y+ P0 G4 i - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ( {/ w% ^* I `# t0 @: n. \+ e
- ;;; (Rights in Technical Data and Computer Software), as applicable.- H" J9 y. `7 q2 `/ \' R! x
- ;;;
* j* e, `4 \( q4 \6 a- \6 V- r5 r* y - ;;;.# E3 ?4 w7 x& t& k Q$ n
- ;;;. `9 M: W* K. x( o6 O
- ;;;----------------------------------------------------------------------------2 W9 z7 {; [0 l$ ]
- ;;; DESCRIPTION
5 N8 g* f" [$ [' a3 G" }) H7 u/ y5 w - ;;;
2 V* a3 m: v7 E5 i0 f, a0 t - ;;; Chromatic Pallete style color selection dialog.9 R- e5 e# f/ u& X, @. G; w
- ;;; # [% ^" o: U3 I8 g% x2 P' t: D$ a+ {
- ;;; Globals:9 ^" ?$ b0 G" A. P
- ;;; 3 z6 u" _" K" u+ C; m; c: D& e z
- ;;; chroma_color - Integer color index. The last value selected7 p% b- P8 ~$ c) i6 E
- ;;; by the user in chroma dialog. It is not cleared or reset. l9 D h w: _8 j9 |) `
- ;;; by a cancel. Only used for communication between callback
( ~) M* I$ A% e2 M3 H: K - ;;; functions and the (chroma) funciton.
, P) o9 W0 d0 V0 L; ?% g - ;;; # Y7 f2 x9 x% j* }/ [& F
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.
! S, w2 N$ U& r4 V: d' }* v - ;;; # h8 [0 \3 I! H; A: {, I$ Q6 ` L
- ;;;
, t3 h2 n' C7 \# f2 S- i/ } - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma I% @ P" ^8 l0 L* x( u* z, J
- ;;; pallete style color selector.
5 T9 T7 y* l" h( X2 S" p( ?' h6 I - ;;;7 S; Y& j9 t$ }
- ;;; ===========================================================================
" B* R3 B& I- u. p9 I - ;;; ===================== load-time error checking ============================
j, S1 r$ \7 \ - ;;;: @# x5 P7 b7 [
, b% r- Z7 w3 j: s- (defun ai_abort (app msg)
. G* |" s+ t9 D! a/ G1 O3 p& ~- t - (defun *error* (s)
1 U1 T; b/ R" i - (if old_error (setq *error* old_error))
0 P @& z! P, ?) J - (princ)
# w# Y; I# S5 t - )
; a, G7 s+ k# v. [5 R& b+ h+ W1 K - (if msg
/ L: j+ |7 W" k3 D - (alert (strcat " Application error: "8 y s! w2 y* i! d- }4 J
- app3 }! q* {& ^7 I0 U6 A
- " \n\n "% Z& ~0 q! U# @; x6 A
- msg& y/ J9 A+ ^) z' Y! I/ s
- " \n"
) F1 k3 D8 s) |$ c- r6 k - )( A+ b9 `, m' _- T! r: o6 P
- )
; [! K! t" o }$ [& k - )$ ~8 s" D" b. D5 Y
- (exit)1 ^1 V4 q3 h# i) ~
- )
2 J8 U' ?& ~3 h" ^+ `" }2 [" [
+ u' Y J( E; g9 b- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,9 z m8 F# a; [$ W6 N; x
- ;;; and then try to load it.+ ?. D, ?. \3 @
- ;;;5 ^( b' A" F$ ?
- ;;; If it can't be found or it can't be loaded, then abort the& f2 C& n4 g- h3 l- y% y7 Q% c
- ;;; loading of this file immediately, preserving the (autoload)
: L. E5 Z0 x7 M5 m - ;;; stub function.4 P3 o$ ]6 t d; Z; C' v( q) p
. f; h# | t" \: j" x/ l# [- (cond* b2 _7 l- I& E! W; n
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.# _9 F; c- L* K
+ `' g* |( P$ C5 c9 T N C- ( (not (findfile "ai_utils.lsp")) ; find it( ^* u7 V* c. g! Y+ a# I
- (ai_abort "DDCOLOR"+ Q$ P" E: W* Q9 C6 K! _
- (strcat "Can't locate file AI_UTILS.LSP."
; g, \) z! y0 D' ^( a. [ - "\n Check support directory.")))2 ]* v; S( b6 v& s- V C5 S* i. j
- % z+ F5 W7 @) d1 t
- ( (eq "failed" (load "ai_utils" "failed")) ; load it1 Q- F4 g' c4 Y M* Y" H: F
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))% s# s6 [# R( v( j! } G
- )
3 s, }% J; G" i0 E! |' I
$ Y5 b$ I7 j! p5 m- U- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
; H6 t u% M6 F3 @3 x( J( C- O - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses ] F2 `/ W9 [
- ) ; ai_abort's alert box dialog.& g% @( ^. j' k/ L# }
! ]9 `: P" d$ z Q& d- {$ f- ;;; ==================== end load-time operations ===========================- a. D* `1 N; D8 V/ |# E# n
' M: R3 J! f( w+ I+ s- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)0 W7 J. t7 J8 c
- ) _1 ^/ X4 A7 Z( d; U8 S
- ;; Main Color function, called by setup code.
9 F6 `1 O Z2 R7 Y - (defun ddcolor_main()
' A$ r: Y- p" s8 | - . D$ U& o0 S0 ^4 j/ \; G
- (graphscr)0 W9 `( B7 M" ^4 h0 j$ v
-
( e: ?, u2 [+ m - ;; Get the color of the current layer, for possible BYLAYER color swatch.
1 ~+ W% B1 R+ N" O1 b( u- c8 a# ? - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))8 r9 G, v6 h T4 B
- - S& X: v6 c- l- S' Y; p9 s' Q
- ;; Call the dialog here.../ N# m H- s# _
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
! E3 ^! m, q( n2 q) n
# S) R- w2 t; I: ~5 a3 f' P3 Q- (if clr
: s, f! {# F5 A! U; L9 a( Y - (setvar "CECOLOR" (citocs clr)))
9 {1 z" Q; A: U: D# ~7 u - )
9 r1 G9 N/ ?. m: m2 c( \; W - 1 _& R7 L7 l' F- [1 u( n
- ;;;& d4 P* _7 w# N! `, X
- ;;; CSTOCI -- Color string to color index
% i9 J- v, a S8 ? - ;;; Convert an arbitrary case string into a color index.
9 A* L% i+ T8 a' t2 `! ^ - ;;; Returns nil if string is not a valid color.
# i4 o O, V# R - ;;;- c! }0 {) S2 F- Z# { i2 L0 {
- (defun cstoci (str). |' S+ ~' ~+ ?1 G+ `# u# q
- (setq str (strcase str))
7 @9 X6 u* E& ]; v; z - (cond
. @, p3 h- a8 L6 b3 G+ ^ - ((= str "RED") 1)& u1 R/ U& r# G% n6 p! v( b# ~$ @
- ((= str "YELLOW") 2)
3 K/ [: [/ i, ?1 _ {+ H - ((= str "GREEN") 3)
& {, M; E) L, J2 g - ((= str "CYAN") 4)
" J U4 U; [7 y, t1 c9 ~ - ((= str "BLUE") 5)" h! o2 d" Q4 U% U/ f. I$ D+ L7 S
- ((= str "MAGENTA") 6)
& _$ F9 ~ ]8 T$ ~: ` - ((= str "WHITE") 7)9 C: X4 i' j' l1 O9 k* D& O
- ((= str "BYLAYER") 256)) \$ P# m: d& i+ g& q
- ((= str "BYBLOCK") 0)3 T" T8 A7 G% O! L
- ((= str "BY LAYER") 256)
$ @: y4 l1 n) w6 e8 U4 \0 S - ((= str "BY BLOCK") 0)
6 C! N, [" L- j# i1 k$ W3 ~ - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))- D' R% ^* H( {
- (nil))
- U6 x" {, p1 \8 {( G) g( f$ X - )
& l9 w* v5 m8 d# s. w, C* t
$ m. r. l( v7 h( i9 B( f- , i0 z! o' U& I) ?' |
- ;;;
5 ?$ G8 F' ?: ?0 A$ L# b2 i - ;;; CITOCS -- Convert color index into standard color name.
8 }" R( l) ` m3 ~% N+ S - ;;; Will return the standard and logical color names as text
. \$ P& w6 l, N" a# V% n, @) n - ;;; strings. Returns nil for out-of-range color indicies.2 e% C1 A- T7 C' ]* i
- ;;;
5 ]+ }8 G+ T- P( r4 v' w. ^0 x - (defun citocs(i)5 ?0 W1 b$ j; A5 H; m5 ~
- (cond
4 h7 a- J+ P9 O/ w) H& P8 j - ((= i 0) "BYBLOCK")
- O( o% s+ R$ ]2 D* S; o) U - ((= i 1) "red")2 ~6 {7 x' _0 C! X
- ((= i 2) "yellow")8 n9 t* ]7 Y5 z
- ((= i 3) "green")
, q* K: d* b0 b - ((= i 4) "cyan")
+ k S5 @* U6 [7 g! V - ((= i 5) "blue")
! D+ k3 c) s9 U$ C# e% ^4 G - ((= i 6) "magenta") p0 A( x$ X x& M1 Y
- ((= i 7) "white")( Q, X/ x/ K) w7 {. _# }3 H
- ((= i 256) "BYLAYER")
! v9 W7 ]' v5 O. H$ A5 E - ((and (< 0 i) (> 256 i)) (itoa i))& j; m. s# E" ?
- (nil))- ~7 B! e& [2 s2 r7 j( |4 |
- )8 {2 x% s+ q8 N( E
- ! }9 f2 x: a- t
- ;; Start of ddcolor+ O4 j9 }' m3 _1 l: l6 t) G4 O
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho& s; f' ^% P6 M0 |
- old_error *error* ; save current error function
. k- I; r4 P: g* h% B" q1 [/ j - *error* ai_error ; new error function
: {5 V( j1 R) f1 t1 G P/ j - )
% g9 ]# F6 m; `$ u: ]' i
# y9 q+ H- i: D, x. T2 n, p- (setvar "cmdecho" 0)
( R4 t$ F6 l! t! P9 |
* N: p6 @) L! \8 J5 I- (cond
& X" P/ K$ p* E p. v - ( (not (ai_trans))) ; transparent OK/ p/ d1 J6 h( O" A L
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?; t @# B9 p( p B3 c
- : t! x' U/ x2 W& t9 K% n6 p% _ X
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
) w( Z- Q) Y0 h0 K9 q - (/= 8 (logand 8 (getvar "cmdactive")))
4 x6 {8 T6 w4 b' c - )
! X: Q/ a; o8 L+ T" W' B( } - (ai_undo_push)
/ d# g6 N' u$ \8 s! n - )9 m5 r5 l5 M9 p9 t' g F6 ~4 Z2 o5 G! b
- y6 ~1 ^: U" d5 y; y; J, a; a
- (ddcolor_main) ; proceed!7 q3 [$ p7 Q3 I5 E' D
- 2 q# x/ {5 F$ Y. F6 |4 F
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))# N4 ~, K6 ]" e+ a
- (/= 8 (logand 8 (getvar "cmdactive")))
C$ O6 O8 j- O3 [1 } - )+ F& ]- f. e9 P2 B- b0 s! G% A
- (ai_undo_pop)0 P) Y, D* I0 o
- )4 A3 t. u& L( R' T; U
- )
- K( u7 ]- k& q' i" O4 F0 T: n - )4 y& {" k. \. t0 i- h
- d. a0 B l2 i6 e/ q$ u# q
- (setq *error* old_error) . B% O4 {0 N- {
- (setvar "cmdecho" old_cmd)' {; @# o) B! M5 U. o: }& V
- (princ)
+ m- h6 j4 s k' y7 W" S3 o - 9 _# ^; m7 s& |) X( ^
- )
$ b# q: O- f0 ^5 a- _( O& p; L - Z4 e7 x3 Y$ l: R4 T/ s- \
- ;;;----------------------------------------------------------------------------! X1 Y( a, a1 w9 ~/ s
- 7 {. h$ |7 l; }6 q( L. |
- (princ " DDCOLOR loaded. ")
0 d) r$ H1 _$ g5 o) V- h - (princ)
& s# C% B, @) _& p! h - 2 ]5 k' t" m' _7 v0 [8 q
- ;;;--------------------------------------------------------------------------;
7 u) D* ^7 A3 C: U - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;2 C: G2 T$ S* ?0 O) Z7 f8 g1 V
- ;;;--------------------------------------------------------------------------;/ d% D+ @5 L2 h" a; a N+ W* S$ L4 u% f
- ;;; ssx.lsp
# q/ X. s6 S* G4 @/ K; ?- [1 t - ;;; Copyright (C) 1990 by Autodesk, Inc.
4 c, d& e4 b7 v& y0 {4 g - ;;; Copyright (C) 1991 by Control Systems, Inc.2 @; t8 X( k: n
- ;;;: w4 f6 G" @2 X% Q% t
- ;;; Permission to use, copy, modify, and distribute this software and its
1 k. y. S' n) \ x4 } - ;;; documentation for any purpose and without fee is hereby granted.3 Y$ T \) s5 t/ W, A
- ;;;; ~9 P# y% Y& W G
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
( h9 z: k8 i6 j. g - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF" m) c: L8 q, W3 Y' }
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
3 M3 J1 S% @ N - ;;;
4 y& p: S: I& |1 ~5 w - ;;; Larry Knott Version 2.0 7/18/885 ^ s, l# o, |8 V
- ;;; Carl Bethea & Jan S. Yoder Version 3.0. i1 D1 f, ]9 k' r2 m
- ;;; Enhancements to (ssx).6 y, t, O8 U1 q2 N
- ;;; 15 March 1990
* E9 M g& Q9 S8 R& g y0 O7 w - ;;;2 |6 J9 d( p) Z" Q
- ;;; ARTIST Software, Inc Version 4.0 December 1991* }+ Z+ a& P5 f/ C; V% h
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,: p2 d2 O4 i7 b8 M8 B0 R5 c9 ]' {
- ;;; use Flexicon menus* ]0 t, k- o6 L, c9 P
- ;;;( G5 b. S$ _/ K! B
- ;;;--------------------------------------------------------------------------;* v0 G2 F. Q% s
- ;;; DESCRIPTION
, B, _' n! X7 D8 N& k - ;;; SSX.LSP
4 l1 O( ], w0 d7 w- x1 l/ ~ - ;;;
0 S' z+ I* {1 @% I0 A3 c1 L, T9 y8 t7 `7 X - ;;; "(SSX)" - Easy SSGET filter routine.
$ | p% W) H" E/ a+ S% K - ;;;
+ F6 F, \. v7 A# y# k - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt / D! V* ]+ m' T) w6 Z
- ;;; to create a "previous" selection set or type "(SSX)" in response to
2 t$ v' F" l( X1 e8 R4 U) @+ i - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 7 e$ w' ^/ |& T( w2 e6 y) u
- ;;; entities and "(R)" to remove entities from a selection set during % v5 e% F4 B5 M7 b w
- ;;; object selection. More than one filter criteria can be used at a
3 Y3 f. z: R3 t7 w* X) w - ;;; time. 7 q5 d; g4 G2 q/ [6 W9 i
- ;;;
1 T3 l# y/ Z+ ]8 a% P) g) r - ;;; SSX returns a selection set either exactly like a selected) ~% p* U' B* d. r
- ;;; entity or, by adjusting the filter list, similar to it.% L% L% D6 k: z( j% V/ ?& a8 m0 ?
- ;;;
) \3 W+ Z1 J: I0 G - ;;; The initial prompt is this:
. _+ y' x/ W! q9 h( `2 U$ h - ;;; # Z2 q2 B7 {/ X
- ;;; Command: ssx
2 T1 H. x5 `5 q4 P" z - ;;; Select object/<None>: (RETURN)
+ e- |& t% P1 N% Q6 q( o( Q - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: $ ~% x. q9 S0 ?7 _: }: f6 ]
- ;;;
; f1 f$ q& C/ F - ;;; Pressing RETURN at the initial prompt gives you a null selection
4 i3 ^$ N. c! G - ;;; mechanism just as (ssx) did in Release 10, but you may select an
% c8 O5 \2 D7 J5 _3 u) h - ;;; entity if you desire. If you do so, then the list of valid types
3 b, k$ }* J, G* y - ;;; allowed by (ssget "x") are presented on the command line.
2 k& |( V# Y9 B" S( f' s: W; E - ;;; 1 P. {: t: x2 O3 F# w9 a6 v
- ;;; Select object/<None>: (a LINE selected)
% U* I9 x# v8 b7 F - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
0 `5 \0 r" Q7 a$ J8 H0 y - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
% g/ X A& a6 w: g; i, ` - ;;; - r& R8 v' n! n% ?# A0 s! x
- ;;; At this point any of these filters may be removed by selecting the
4 w! Y& q$ i5 w, H: O6 J - ;;; option keyword, then pressing RETURN.
2 b; u! ^1 u# }# {, w' {0 _, X - ;;; ! o2 N) c7 O, r$ B9 _( O3 ~5 B8 Q! x
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)2 B! v% x& K( d5 R8 \
- ;;; 2 R0 E! C# q% t9 P% r @
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))* E% c5 v. f7 U" g
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
/ |0 H$ r9 q" z6 i' F. u9 a0 T% i - ;;;
$ \. V( m* Q; `) g - ;;; If an item exists in the filter list and you elect to add a new item, & u' Y4 a3 v% c! [6 o& v
- ;;; the old value is overwritten by the new value, as you can have only - i. D8 ~2 N; a) r$ O1 h0 T
- ;;; one of each type in a single (ssget "x") call.
3 r" W! W5 ~* Z- b( f) ]9 X - ;;;
. B! H9 n8 q+ V5 T6 _) w9 _$ q - ;;;--------------------------------------------------------------------------;" {$ d# L2 f9 r/ d2 H
- ;;;1 z6 X: Z% c. d2 Z4 n2 O
- ;;; Find the dotted pairs that are valid filters for ssget$ h: e* o7 N( h1 ?( w6 c: x3 m0 M, z
- ;;; in entity named "ent".# U6 R3 |8 |2 c. i7 }7 j
- ;;;
7 B. s/ J; M2 Y% r' M1 R0 P0 |" L! D$ ]. R - ;;; ssx_fe == SSX_Find_Entity
/ U7 ^# z2 H: ], {8 y6 d - ;;;
+ `* Q2 U$ c/ W - (defun ssx_fe (/ x data fltr ent)
; F& W' ^- Z+ [3 T, B) n0 u; k - (if (and (= flexvar 1)(/= t2 "Pick")). S- |% _- H6 z4 U% o6 g0 G
- (setq ent nil)3 m- C; A' M, S1 f4 {
- (setq ent (car (entsel "\nSelect object/<None>: ")))3 U% p: J& {8 D# Q5 G0 s
- )# o8 Z+ g0 J c- N/ ]8 G/ h# K
- (if ent& a- v) ~! g7 f/ m: O; l, A
- (progn
# {% v x& L+ {+ }( S: f' A - (setq data (entget ent)). O0 S/ ~" N: O& d) \
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
. O( s2 h6 D. }/ M - (if (assoc x data)
9 b2 S& U9 j/ ]8 C - (setq fltr * M; @3 S# Q( X" i! [
- (cons (assoc x data) fltr)
9 o) a; b8 v( n- h7 g: k1 B/ W+ |) y - )
3 a/ k. s9 E& L2 z1 X* r& r - )! ?( e2 t- _% n, \* L0 C
- ) 3 d/ _2 s6 C1 R8 T4 }# f9 Y
- (reverse fltr)( U$ D- o3 P# p' h3 }
- )0 B, p; @! Z9 X8 Q" `% ?
- ) - q7 i$ x) F: N0 c D$ w
- ). S. o" M( v0 ]$ M7 O3 {
- ;;;
% T/ `1 w. U) ?; F" Q - ;;; Remove "element" from "alist".
- P, ], Y, g Q4 n/ F$ _: u, G - ;;;3 l* y! P& B9 o
- ;;; ssx_re == SSX_Remove_Element! P# C1 _9 g. Z6 `# I# H. G
- ;;;
5 S, b# H: L! K - (defun ssx_re (element alist)
! T( x) ~. Q% g) B" `: @1 j& j' Y0 q - (append
4 N7 }: J- O! Z* h9 f - (reverse (cdr (member element (reverse alist))))
T7 B4 ]; o H7 M - (cdr (member element alist)) 7 i; j; w- {1 H$ J8 f* k
- )+ O5 N/ l3 P# n& P6 _2 G) ] u7 n
- )
4 Y/ k3 I$ j% k' d, H) f - ;;;4 k$ w2 T7 b0 A2 }# `
- ;;; INTERNAL ERROR HANDLER
* a* v* _) k8 g5 r% H8 u3 C - ;;;
0 T7 v# [1 L- h5 [4 H) ~ - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs0 C. G: k* V3 S9 d4 I8 W. @
- ; while this command is active...% C& e) j( k5 \
- (if (/= s "Function cancelled")' c) D& R' ]4 O, P& F( O+ ~! X4 i
- (princ (strcat "\nError: " s))0 F. O9 ?6 c2 ?8 |% e
- )+ _7 c) P, B+ N# y) A3 P4 N
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
# |+ w1 R( U( U- f7 L - (setq flexvar 0)
% m5 d h2 L. \2 L; r8 M - (princ)9 O1 J0 l s% M: G9 r
- ); g1 V# L) q3 e, V' q$ f% M+ m
- ;;;
' ]$ p% q# }7 @* c% G( w5 b - ;;; Flexicon call routine
! b2 f' o# {: j. ^' Y) x - ;;;
! z# c/ ^- l0 p! O* x - (defun flexmnu (a)- K& `) J! D! N' s4 w7 k/ p1 d
- (if (= flexvar 1)
& t- l$ b" a/ y5 n* I0 O$ V - (command "FLEXICON" (strcat "FLEX" a))
) g. N+ p" P4 q) Q' A: B - )
5 d$ r4 j% b5 Z9 c. W - )1 @" p0 S: \3 u1 p Q5 V
5 g- x7 J# f2 g; f: N- ;;; - X/ k/ F+ h# r! i3 m; g1 S1 A
- ;;; Get the filtered sel-set.
% f" I8 w" Z4 L& B) U6 ^. \ - ;;;
+ j: Y" J9 v" j - ;;;
' `7 l2 c' A: h% q$ z7 u - (defun ssx (/ olderr)
- N& E G7 a5 b; t0 S+ Q t4 H - (gc) ; close any sel-sets 1 X! V4 c/ F' m+ ]4 p5 R" V
- (setq olderr *error*
8 o5 |/ Y+ \, K t - *error* ssx_er
H; z2 g/ f0 ]4 [+ w! p - )
: i' }* R5 Q7 t; h7 k# }! f- B - (setq fltr (ssx_fe)) * ]$ \; S7 E" {1 q; R
- (ssx_gf fltr) 0 ~! H6 |3 {) Z; ]. A. r
- (if (= flexvar 1)
" T9 s& a+ A! `7 A' j - (progn/ y" Z/ l$ u: N' T2 k- u+ p
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.") R5 _( p- e; G+ I
- (flexmnu "EDIT")
5 m# \7 U6 o4 G5 r - )
# o4 y2 [! y* y. C1 b6 n - (command "p")6 H; t I0 I+ F+ {
- )
) S" x% u5 l, [" w0 B' v - (princ)
* i& y* C( c6 j0 c - )
1 Y' A( G0 H3 `/ x+ z3 P - ;;;0 I& v% i) j. h: \9 y( Y4 t
- ;;; Build the filter list up by picking, selecting an item to add,
4 B5 f8 d* ?3 _9 q" R! I - ;;; or remove an item from the list by selecting it and pressing RETURN.9 _$ b) E% V. h8 V' u
- ;;;( c- _5 ]9 H2 r( A. ~7 ^
- ;;; ssx_gf == SSX_Get_Filters. c0 Y% a( ~4 \- {0 Q! C
- ;;;! ?9 @) A0 F$ H4 o5 z. R t' {
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
% i1 t" i* S3 X; Q9 D - (while - g2 A9 Z6 K# I/ ]' Z! v" M% K
- (progn
! U7 Q( l8 x8 u7 k - (flexmnu "SSX")
4 v4 f8 @) G9 Y - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
& L: e7 K6 R! ~* S- F2 Y - (initget
2 P" G: g/ o3 ^" ]0 L. a - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
1 b# t+ V+ l/ J" H, u1 ^1 P9 }8 m - (setq t1 (getkword (strcat0 X2 l) R' Y$ k+ ~$ k# B
- "\n>>Block name/Color/Entity/Flag/"" o* W4 Y& f1 n, i. w& ]
- "LAyer/LType/Pick/Style/Thickness/Vector: "))) ( L4 |( e9 P3 [0 k+ p) `
- )
% s. T# y6 m" ] - (setq t2' O3 j; R; }+ T9 g, Y. |" }
- (cond
. R( }+ |' O- |3 ^ - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
0 [7 J6 k1 g# _. G# Q, k - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
+ @4 X; I% z7 L( t: a% X! q - ((eq t1 "LType") 6) ((eq t1 "Style") 7), t$ k u4 J" y+ d8 |# ^5 X3 J1 o0 G, ?
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)% M# L I. K0 b; G% X9 J: u9 X
- ((eq t1 "Vector") 210)
9 M$ f5 ~# l7 t2 G+ l" L+ D - (T t1)" g- A1 l8 z# E) T, D
- )9 L- a5 B! W4 W# T8 X; Y
- )
0 Y2 d# U9 J5 b' F7 k) I% a7 A7 X - (setq t3" x: s5 L2 r% Q' H$ _
- (cond
# }( c0 x8 W+ k" z( D" P- { - ((= t2 2)
' o# B: P" w& ` - (if (= flexvar gtads 1)
3 Z# k- H$ @8 _6 q1 G' t+ z - (progn
6 {( d! N0 r! _" i3 i h u - (prompt "\n>>Block name to add/<RETURN to remove>: ")
2 Q) o; R4 f B9 s6 E - (gttable "BLOCK")' _4 P$ C+ B/ a1 H
- )0 y9 Y+ V( h+ S- |# @# V' v8 O& O
- (getstring "\n>>Block name to add/<RETURN to remove>: ")
9 [3 x" o& O v6 L9 X5 n& A _% H - ) I% X0 y) k) ~) S" @
- )
( J; A3 @9 V' o# ], n - ((= t2 62) (initget 4 "?")* v, m/ ` C* y
- (cond3 d6 a) z3 d- c2 V/ X! s: J* k
- ((or (eq (setq t3 (getint 8 s& R9 i. n- |/ ]+ p! x% i0 B
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") 1 |! W; v N, P D9 v0 D) f
- (> t3 256))
) y2 b+ \: A) q4 T0 X - (ssx_pc) ; Print color values.3 {; i3 l4 c; f$ e. _
- nil! q, v0 z/ d, S" ]
- ): A+ g! x; p8 G, I1 p
- (T) D" ~/ m* e6 I# r; V
- t3 ; Return t3.3 T. G i3 U/ ?8 W
- )
' V5 S9 L$ l4 [" H - ): f1 n [+ j* H; S' u% S3 r
- )
3 N- n0 e% C' b* |5 U$ C& W. H - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
6 v0 d N* }3 O+ Y- V7 R+ E - ((= t2 8)
; b' O, _0 n$ q - (if (= flexvar gtads 1)* S+ ~1 P6 j* W/ U/ {* x9 s
- (progn
- d% ~ o7 F1 i/ d! _0 J( p! a4 ? - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
! A c! w7 D' X$ J - (gttable "LAYER")
# ?; B: y* V: ?$ C" L0 ^& P" M9 t - )
3 V% @) f! P- A& y3 z - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
5 Z& Q* C% H5 m - )4 ]$ ^* S: |# q2 P# G
- )
; F; h0 z9 e4 W O - ((= t2 6) 1 A# ~+ {3 \0 {/ {
- (if (= flexvar gtads 1)
0 k5 }5 i4 @" v1 N, p6 X - (progn3 ?0 W4 e2 i/ \
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
7 h$ ]$ h9 _2 G9 }7 W - (gttable "LTYPE")
( Z5 |# [5 \' F) @/ b - )' E, f7 o! T/ g3 b
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
0 F; A, f& K6 g! {; v; K5 A Y - )
+ p) y/ x" W3 y2 ]' | - )* W9 ~; K- G( W* Y
- ((= t2 7)
2 d/ X# r+ a; G' \( ?7 j/ A$ ?% M1 v - (if (= flexvar gtads 1)5 Q: t1 {- w2 G b) M- v
- (progn
2 A" }0 D& ?; j# X0 s* B# O - (prompt "\n>>Text style name to add/<RETURN to remove>: ")
0 X/ H9 K& Q4 G F* B! R - (gttable "STYLE")
& f3 x4 l. I7 P3 I( O - )
6 k' H+ [& h E% V- t - (getstring "\n>>Text style name to add/<RETURN to remove>: ")
/ J" I& f% } Z, v" y/ [ - )% a- r9 N( }. B6 p, k
- )
2 j' @8 o0 D7 w" S" t0 i% d5 d! S - ((= t2 39)
8 Z% D3 E3 g3 r+ J - (prompt "\n>>Thickness to add/<RETURN to remove>: ")
& a5 ]$ x+ c' |" u4 C - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))$ m5 y* z: m6 C1 Y4 I2 v
- )* i) Z- D3 I4 A' Y
- ((= t2 66) (if (assoc 66 f1) nil 1))/ k$ I: y& R' B2 j' [
- ((= t2 210)
& L' d0 D( v& q# K) L9 G: ^$ v - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
$ }- _- C2 |0 q* d& n7 c6 \ - )! N2 @* V' b- b& B: _& U$ A
- (T nil)7 f* O" a( P% }' r; j+ c7 d
- )
: S, o' O6 g0 [, G) e - )
9 e! h5 I' v* a+ b - (cond0 l( ^+ s1 O/ j- q" S4 K* f4 Y4 ]6 b
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity& T$ e, w+ S }4 F& w( j7 J% j
- ((and f1 (assoc t2 f1)) ; already in the list- S5 k# a; k# I2 }, E
- (if (and t3 (/= t3 ""))3 ~* x7 {1 o& P4 z. a! `4 K I; U) I
- ;; Replace with a new value... - s1 y' S" ~ f; ^" _
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) * a. A# @2 ]+ d! a3 a
- ;; Remove it from filter list...
2 K9 Q5 a5 t! A" z& W) y* q - (setq f1 (ssx_re (assoc t2 f1) f1)) " a3 w) O2 D: r# Y; C/ C6 ]+ ^
- )
' i8 L; H, w- U3 ]% Q& S; J - )
; s& s$ y! h) F" Q. N% \" X+ Y" O - ((and t3 (/= t3 "")), }. x% D+ p! ]6 J! i3 v
- (setq f1 (cons (cons t2 t3) f1))
( G; u3 {; }4 Z- {- b/ [ - )
F, u8 A" Y- u2 | - (T nil)# O& \; j3 X' v
- )* u( x4 A- f, m% b/ A, y5 N
- )
/ O4 @5 t/ L* z' y T% g - (if f1 (setq f2 (ssget "x" f1))). @. N' x3 q" x
- (setq *error* olderr)
( Q0 w: u, n; q+ p7 T7 B - (if (and f1 f2) - W" N0 w o+ Y; w" Q
- (progn
4 ] u% D4 C: y% n6 h- f - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
& B& J6 C, p- C+ c9 f8 i - f2
9 N# U% T2 F# C( @( t$ I4 ]; }1 G - )
u0 N2 ?3 K/ C- Q5 M - (progn (princ "\n0 found.") (prin1))
5 b+ d3 n K+ q" V* L# T J - )* _" M. s* R6 w$ Q, Z
- )( H- M ]8 ^% u2 M
- ;;;5 P( T% ~2 j; ]9 p7 `
- ;;; Print the standard color assignments.. k! [& M" U o0 I6 p
- ;;;
' S2 A# x; i+ P& F - ;;;/ d% W) m* S+ j
- (defun ssx_pc ()7 i+ U. A, X* j$ e. F
- (if textpage (textpage) (textscr)); S; t+ J& A H
- (princ "\n ")0 T! C8 R8 m. c/ t: e
- (princ "\n Color number | Standard meaning ")$ R) P1 Q# I9 P0 ?! c1 y9 x1 J- s
- (princ "\n ________________|____________________")+ r t7 m- D0 _1 L5 d
- (princ "\n | ") X* I4 Y2 e1 c
- (princ "\n 0 | <BYBLOCK> "); V2 K: K. J. u
- (princ "\n 1 | Red ")
. F' k4 A/ V7 ]0 e+ I9 ~* F/ _. g/ W - (princ "\n 2 | Yellow ")
4 J4 d/ g! d# z' ? - (princ "\n 3 | Green ")
( B, A6 \0 |$ P( i) p( T, q# ]/ E - (princ "\n 4 | Cyan "); w/ H0 Y" F/ P; m2 Z5 e
- (princ "\n 5 | Blue ")5 P" ?7 x5 `) \! r O# N
- (princ "\n 6 | Magenta ")
; _4 s; Z& q4 x - (princ "\n 7 | White ")
# `$ r; w; P0 m3 e& O/ C, ~+ _ - (princ "\n 8...255 | -Varies- ")0 y2 \% h: c6 Y
- (princ "\n 256 | <BYLAYER> "): K) Q! R3 j: `" W0 k& n
- (princ "\n \n\n\n")
: y, a, W Q9 E6 D! M - )% B% i5 O `# g' R% I. E
- ;;;
- M/ I9 u# U, p/ R - ;;; C: function definition.
* b! H! ? P$ ^& t - ;;;0 o+ m8 g* G& F5 @' I
- (defun c:ssx () (ssx)(princ))
( [- O H2 n# `- ] - (princ "\n\tType \"ssx\" at a Command: prompt or ")5 K+ `! G0 L, a% V0 ]+ o
- (princ "\n\t(ssx) at any object selection prompt. ")+ i, l/ c* |) r( s% G& t
- (princ)* i; _6 @6 o" M' F
9 o6 f. ^2 b1 f5 G- ;;;--------------------------------------------------------------------------;+ U5 G F) J6 g, @! L- D
- ;;;--------------------------------------------------------------------------;. |9 e& [; j/ [/ B3 ]$ U! a
- ;;;--------------------------------------------------------------------------;6 o* m% V- I$ t
- (defun S::STARTUP () u. ^) o! D' _# w! R8 e
- (setvar "cmdecho" 0)- s0 N) c1 c( E0 k3 a* |) w3 v
- (setvar "cmdecho" 1)
4 X0 S- d! \* D/ W - (setvar "LTSCALE" 10)
# z5 U) h8 n+ ?3 y9 @) g# m
: D" Z4 B' K% a- f7 J- ;(command "_load" "chenKH.fas")
" p$ j X6 ^& @( M: m" D7 m- M - ;(command "_load" "ctcot.fas")
$ s' X$ T% [* X* ^ - ;(command "_load" "damdoc.fas")1 ^: L X8 |+ S& {9 P; h# q. E
- ;(command "_load" "ghichu.fas")+ L/ |6 r! Z/ U( f3 W* s8 ]" v `
- ;(command "_load" "hamtutao.lsp")
' g* J& ^# E7 ]1 x - ;(command "_load" "KHOITAO.fas")
: W, }: N7 { M5 c5 t. D* Y# [ - ;(command "_load" "KHthep.fas")
7 z3 M( Y* K' d) \6 s& w/ U) `) ? - ;(command "_load" "mbmong.dcl")
( G6 v. v! L5 H" {- m; p - ;(command "_load" "mbmong.fas")' `6 k+ L6 u8 n4 ~& V1 Z
- ;(command "_load" "mccot.fas")
- U/ \" _6 r2 F& S - ;(command "_load" "mcdam.fas")4 H% h9 k V1 G4 m2 o
- ;(command "_load" "mcmong1.dcl")
; L; d: c( B6 h6 }! c - ;(command "_load" "mcmong1.fas") W( `6 b- X: B0 s4 z1 ~) T
- ;(command "_load" "mcmong2.dcl")9 k$ i( }/ _8 H [* o$ T
- ;(command "_load" "mcmong2.fas")
: I: Y e: K& | - ;(command "_load" "mcmong3.dcl")
+ W( E! `' H# J2 R - ;(command "_load" "mcmong3.fas")
2 k% w8 K4 t- z1 R! | - ;(command "_load" "mcsan.fas")+ A, l* L' Y* J" L% L5 L
- ;(command "_load" "thepdai.fas")
! s) V7 @$ v3 m8 X6 |4 e. y - ;(command "_load" "thepdoc.fas")
; E) {$ c6 } h& |- n! ~# z3 P/ I" ` - ;(command "_load" "thepmb.fas")
3 m% @: a. f% J- r8 t3 u" [7 j* f - ;(command "_load" "thepphbo.fas")
; W7 b. H9 i1 n- c - (command "_script" "thongso.scr")
8 u7 E) c: Y7 Y4 s, K! X: `0 P - ;(command "_load" "thongso1.dcl")
% C1 U8 C( [, k8 I) W7 @2 P - ;(command "_load" "thongso1.fas")- }4 q0 j) C( i% Y
- ;(command "_load" "thongso2.dcl")
5 X; h; a: ]+ M, Q - ;(command "_load" "thongso2.fas")
+ e6 P0 w1 \5 ^- r - ;(command "_load" "tietdien.fas")
) B! K0 ]3 J% u7 E, r - ;(command "_load" "vehan.fas")* G. w& `6 x4 y
- (command "_load" "phamDuy782006_TKT.lsp")4 y9 w1 C; |4 @
- (command "_load" "phamduy782006ganhtd.lsp")4 ^8 e+ ^: r. r3 p' C9 T# S
- (command "_load" "phamduy782006ganhtds.lsp")
. x4 @( n9 _0 G1 q- @0 Z4 h1 \ - (command "_load" "phamduy782006htd.dcl")3 f0 l1 U2 v" J
- (princ)
! ~# ~# `) j) H7 {! G! \2 t4 I- K - )( e7 K% L) T: }& E2 \$ v
- 2 \( C; a8 O# y; [: J6 T, y/ _
- ;; Silent load.
5 n$ x5 j9 b! _) W - (princ)
* h) O; \" H" \) E: O) ?3 H
0 F! r1 z- X$ _$ C- ! f3 t. C; \2 ]
- ;; Silent load for the Express Tools.2 B/ J4 K$ t3 v; ]. f# m0 Q4 w
- ;; Altering this line will affect Express Tools functionality
6 @ k) x, x2 U! @: }$ C6 c' { - (load "acettest.fas" (princ))* q' I! p' M8 T: \
- �32
Sao chép mã . `) m( U3 c5 v
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ7 K) U# U( E n# s8 N
|
|