Đến nội dung


Hình ảnh
* * * - - 2 Bình chọn

Viết Lisp theo yêu cầu


  • Chủ đề bị khóa Chủ đề bị khóa
2780 replies to this topic

#121 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 11 August 2007 - 08:29 PM

Thanks bác Hoanh, em đang cần 1 lisp nữa có nội dung như sau
lấy tất cả các kết quả sau dấu "=" rồi cộng lại với nhau
Ví dụ: trên màn hình có 2 text là
2+2=4
3+3=6
chạy lisp hỏi: chọn 2 text trên, nhập điểm chèn kết quả thì
sẽ cho ra là 10


Lệnh là CONG.

(defun c:cong (/ tt ss tong)
(defun congone (ent /)
(setq tt (entget ent)
gt (cdr (assoc 1 tt))
vt (vl-string-position (ascii "=") gt)
vt (cond (vt vt)
(t 0)
)
tong (+ tong
(atof
(substr
gt
(+ vt
2
)
)
)
)
)
)
(defun sudung (ham ss / sodt index entdt soapp)
(setq sodt (cond
(ss (sslength ss))
(t 0)
)
soapp 0
index 0
)
(repeat sodt
(setq entdt (ssname ss index)
index (1+ index)
)
(if (ham entdt)
(setq soapp (1+ soapp))
)
)
soapp
)
(princ "\nCong text sau dau bang - © CADViet.com")
(setq ss (ssget '((0 . "TEXT")))
tong 0.0
)
(sudung congone ss)
(entmake
(list
(cons 0 "TEXT")
(assoc 40 tt)
(cons 10 (getpoint "\nVao diem chen cua text ket qua: "))
(cons 1
(vl-string-trim "." (vl-string-trim "0" (rtos tong 2)))
)
)
)
(princ)
)
(princ
"\nCong text sau dau bang - CONG - free lisp from www.cadviet.com"
)
(vl-load-com)

  • 1

#122 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 11 August 2007 - 09:15 PM

Ae trên diễn đàn cho tôi hỏi
Có lisp nào để thay đổi dimension associate thành dimension an associate không ? Đây là bản vẽ có sẵn
Trong ACAD có cách vào bảng Option nhưng tôi thấy ko hiệu quả
Tôi bị dính mấy bản vẽ này khó chịu quá Đừng bảo tôi Explode
Nếu ko ai có thì lại nhờ ae viết hộ cái lisp này nhé

bạn xem ở đây: http://www.cadviet.com/forum/index.php?showtopic=1220
  • 0

#123 kts.ngocquan

kts.ngocquan

    biết vẽ ellipse

  • Members
  • PipPip
  • 59 Bài viết
Điểm đánh giá: 36 (tàm tạm)

Đã gửi 11 August 2007 - 11:22 PM

bạn xem ở đây: http://www.cadviet.com/forum/index.php?showtopic=1220



:unsure:
Cảm ơn NH nhé !
NH đã viết cái LISP về Dim xong chưa ?
Khi nào xong cho ae sử dụng với nhé :unsure:
  • 0

#124 xaydung

xaydung

    biết lệnh trim

  • Members
  • PipPipPip
  • 191 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 13 August 2007 - 12:29 AM

Em đang cần 1 lisp cps nội dung như sau:
khi chạy lisp hỏi chọn đôí tượng(hoặc các đối tượng), sau đó lisp hỏi chọn thêm
1 điểm cơ sở để di chuyển, kết quả là sẽ di chuyển(move) các đối tượng trên về gốc (0,0)
sau đó xoay (rotage 3D) theo trục nằm ngang(dĩ nhiên là trục đi qua điểm cơ sở) 1 góc
90 độ.
ví dụ: trên màn hình là 1 rectang , chạy lisp chọn rectang, sau đó chọn điểm cơ sở là
điểm góc đưới bên trái của hình chữ nhật.
kết quả trên màn hình chỉ nhìn thấy 1 line(vì đã xoay 3D-90 độ rồi)
  • 0

#125 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 13 August 2007 - 08:04 AM

Em đang cần 1 lisp cps nội dung như sau:
khi chạy lisp hỏi chọn đôí tượng(hoặc các đối tượng), sau đó lisp hỏi chọn thêm
1 điểm cơ sở để di chuyển, kết quả là sẽ di chuyển(move) các đối tượng trên về gốc (0,0)
sau đó xoay (rotage 3D) theo trục nằm ngang(dĩ nhiên là trục đi qua điểm cơ sở) 1 góc
90 độ.
ví dụ: trên màn hình là 1 rectang , chạy lisp chọn rectang, sau đó chọn điểm cơ sở là
điểm góc đưới bên trái của hình chữ nhật.
kết quả trên màn hình chỉ nhìn thấy 1 line(vì đã xoay 3D-90 độ rồi)


Tên lệnh là MR3 (move & rotate3d):

(defun C:MR3( / ss p0)
(setq
ss (ssget)
p0 (getpoint "\nBase point:")
)
(command "move" ss "" p0 (list 0 0 0))
(if (not geom3d) (arxload "geom3d"))
(command "rotate3d" ss "" (list 0 0 0) (list 1 0 0) 90)
(princ)
)
  • 0

#126 xaydung

xaydung

    biết lệnh trim

  • Members
  • PipPipPip
  • 191 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 13 August 2007 - 10:38 AM

Cám ơn bác ssg nhưng bị lỗi 1 chút bác à
nó chỉ move về gốc (0,0,0) thôi chứ chưa rotage được
bác xem lại hộ em nha?!
  • 0

#127 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 13 August 2007 - 12:16 PM

Cám ơn bác ssg nhưng bị lỗi 1 chút bác à
nó chỉ move về gốc (0,0,0) thôi chứ chưa rotage được
bác xem lại hộ em nha?!

Bạn tắt OSNAP đi là ok. Nếu không, bạn thêm 1 đoạn mã vào và trở thành:

(defun luuos ()
(setq
CV_OSMODE (getvar "OSMODE")
CV_AUTOSNAP (getvar "AUTOSNAP")
)
)
(defun traos ()
(if CV_OSMODE
(setvar "OSMODE" CV_OSMODE)
)
(if CV_AUTOSNAP
(setvar "AUTOSNAP" CV_AUTOSNAP)
)
)
(defun C:MR3( / ss p0)
(setq
ss (ssget)
p0 (getpoint "\nBase point:")
)
(luuos)
(setvar "osmode" 0)
(command "move" ss "" p0 (list 0 0 0))
(if (not geom3d) (arxload "geom3d"))
(command "rotate3d" ss "" (list 0 0 0) (list 1 0 0) 90)
(traos)
(princ)
)

  • 0

#128 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 13 August 2007 - 01:14 PM

Cám ơn bác Hoành đã bổ sung giúp. Mình cứ quên cái osmode hoài!
  • 0

#129 xaydung

xaydung

    biết lệnh trim

  • Members
  • PipPipPip
  • 191 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 13 August 2007 - 02:17 PM

Thanks các bác, em đang cần 1 lisp nữa có nội dung như sau:
trên màn hình có dòng text là: "diện tích cửa : 2*4=6"
đây là kết quả sai, khi chạy lisp sẽ hỏi chọn text cần tính toán:
chọn text trên sẽ cho ra kết quả là:
"diện tích cửa : 2*4=8"
(gần giống MCALTEXT nhưng hơi khác 1 chút)
  • 0

#130 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 13 August 2007 - 04:56 PM

:unsure: NH đã viết cái LISP về Dim xong chưa ?
Khi nào xong cho ae sử dụng với nhé :unsure:


Lệnh là SD (sắp dim)

Chương trình sẽ yêu cầu người sử dụng chọn đường Dim chuẩn. Sau đó, yêu cầu người sử dụng chọn các đường Dim cần sắp xếp. Chương trình sẽ tự động dàn các Dim theo hàng đều.
Hình đã gửi

(defun c:sd ()
(defun ss2ent (ss / sodt index lstent)
(setq
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(defun hoanh_newerror (msg)
(if (and (/= msg "Function cancelled")
(/= msg "quit / exit abort")
)
(princ (strcat "\n" msg))
)
(done)
)
;;----------
(defun init ()
(setq
HOANH_CMD (getvar "CMDECHO")
HOANH_OLDERROR *error*
*error* hoanh_newerror

)
(setvar "CMDECHO" 0)
(command ".undo" "BE")
)
;;----------
(defun done ()
(command ".redraw")
(command ".undo" "E")
(if HOANH_CMD
(setvar "CMDECHO" HOANH_CMD)
)
(if HOANH_OLDERROR
(setq *error* HOANH_OLDERROR)
)
(princ)
)
;;----------

(defun cdim (entdt pchan pduong / tt old10
old13 old14 new10 new13 new14 p10n
p13n p14n p10o p13o p14o gocduong
gocchan pchanb pduongb loaidim
)
(defun chanvuonggoc (ph p1 p2 / ptemp pkq goc)
(setq
goc (+ (angle p1 p2) (/ pi 2.0))
ptemp (polar ph goc 1000.0)
pkq (inters ph ptemp p1 p2 nil)
)
pkq
)
(setq
tt (entget entdt)
old10 (assoc '10 tt)
old13 (assoc '13 tt)
old14 (assoc '14 tt)
p10o (cdr old10)
p13o (cdr old13)
p14o (cdr old14)
loaidim (logand (cdr (assoc '70 tt)) 7)
gocduong (cond
((= loaidim 1) (angle p13o p14o))
((= loaidim 0) (cdr (assoc '50 tt)))
(t nil)
)
pchan (cond
(pchan (list (car pchan) (cadr pchan) 0.0))
(t pchan)
)
pduong (cond
(pduong (list (car pduong) (cadr pduong) 0.0))
(t pduong)
)

)
(if gocduong
(progn
(if pchan
(setq
pchanb (polar pchan gocduong 1000.0)
p13n (chanvuonggoc
(list (car p13o) (cadr p13o) 0.0)
pchan
pchanb
)
p14n (chanvuonggoc
(list (car p14o) (cadr p14o) 0.0)
pchan
pchanb
)
new13 (cons 13 p13n)
new14 (cons 14 p14n)
tt (subst new13 old13 tt)
tt (subst new14 old14 tt)
)
)
(if pduong
(setq
pduongb (polar pduong gocduong 1000.0)
p10n (chanvuonggoc
(list (car p10o) (cadr p10o) 0.0)
pduong
pduongb
)
new10 (cons 10 p10n)
tt (subst new10 old10 tt)
)
)
(entmod tt)
)
)
gocduong
)

(defun textdimheight (ent / tmp)
(command ".copy" ent "" (list 0.0 0.0 0.0) "@")
(command ".explode" (entlast) "")
(setq tmp (cdr (assoc 40 (entget (entlast)))))
(command ".erase" "p" "")
tmp
)
(defun phia (p1 p2 p3 / x1 y1 z1 x2 y2 z2 x3 y3 z3)
(setq
x1 (car p1)
y1 (cadr p1)
z1 (caddr p1)
x2 (car p2)
y2 (cadr p2)
z2 (caddr p2)
x3 (car p3)
y3 (cadr p3)
z3 (caddr p3)
tmp (+ (* (- x1 x2) x3)
(* (- y1 y2) y3)
(* (- z1 z2) z3)
)
)
(cond
((= tmp 0.0) 0.0)
(t (/ tmp (abs tmp)))
)
)
(defun khoangcachdim (p1 ent goc / tt p2 A B D)
(setq tt (entget ent)
p2 (cdr (assoc 10 tt))
B (cdr (assoc 50 tt))
A (angle p1 p2)
D (distance p1 p2)
)
(* (* D (sin (- A [b]B )[/b])) (phia p1 (polar p1 goc 1.0) p2))
)

(defun phanloai (ent)
(setq
kc (khoangcachdim pgoc ent goc)
loai (fix (/ kc heightdimgoc 0.93))
)
(cons loai ent)
)

(init)
(princ "\nSap xep dim © CADViet.com")
(while (not (setq entgoc (car (entsel "\nChon duong dim goc: "))))
)
(setq
ttgoc (entget entgoc)
p13goc (cdr (assoc 13 ttgoc))
pgoc (cdr (assoc 10 ttgoc))
goc (cdr (assoc 50 ttgoc))
heightdimgoc (textdimheight entgoc)
ssd (ssget (list
(cons 0 "DIMENSION")
(cons -4 " (cons 70 32)
(cons 70 64)
(cons 70 96)
(cons 70 128)
(cons 70 160)
(cons 70 196)
(cons 70 224)
(cons -4 "OR>")
(cons -4 " (cons 50 goc)
(cons 50 (+ goc pi))
(cons 50 (- goc pi))
(cons -4 "OR>")
)
)
lstd (ss2ent ssd)
lstd (mapcar 'phanloai lstd)
lstlevel nil
)
(foreach pp lstd
(if (not (member (car pp) lstlevel))
(setq lstlevel (append lstlevel (list (car pp))))
)
)
(setq lstlevel (vl-sort lstlevel '(lambda (x1 x2) (< x1 x2)))
lstam nil
lstduong nil
lstamtmp nil
lstduongtmp nil
)
(foreach pp lstlevel
(if (< pp 0.0)
(setq lstam (append lstam (list pp)))
)
(if (> pp 0.0)
(setq lstduong (append lstduong (list pp)))
)
)
(setq index 0)
(foreach pp (reverse lstam)
(setq
index (1+ index)
lstamtmp (append lstamtmp (list (cons pp index)))
)
)
(setq
lstam lstamtmp
index 0
)
(foreach pp lstduong
(setq
index (1+ index)
lstduongtmp (append lstduongtmp (list (cons pp index)))
)
)
(setq lstduong lstduongtmp)
(setq lstlevel (append lstduong lstam (list (cons 0.0 0))))

(setq kcdimstandard (* 3.0 heightdimgoc))
(foreach pp lstd
(setq plht (car pp))
(progn
(setq
kcdimht (khoangcachdim pgoc (cdr pp) goc)
duongthu (cdr (assoc plht lstlevel))
heso (cond
((/= 0 kcdimht)
(abs (* (/ kcdimstandard kcdimht) duongthu))
)
(t 0.0)
)
diemchenht (cdr (assoc 10 (entget (cdr pp))))
pmoi (polar pgoc
(angle pgoc diemchenht)
(* heso (distance pgoc diemchenht))
)
)

(cdim (cdr pp) p13goc pmoi)
)
)
(done)
)
(princ "\nSap xep dim, SD - free lisp from www.cadviet.com")
(princ)

Bài viết đã được chỉnh sửa nội dung bởi Nguyen Hoanh: 13 August 2007 - 09:02 PM

  • 6

#131 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 13 August 2007 - 05:51 PM

Thanks các bác, em đang cần 1 lisp nữa có nội dung như sau:
trên màn hình có dòng text là: "diện tích cửa : 2*4=6"
đây là kết quả sai, khi chạy lisp sẽ hỏi chọn text cần tính toán:
chọn text trên sẽ cho ra kết quả là:
"diện tích cửa : 2*4=8"
(gần giống MCALTEXT nhưng hơi khác 1 chút)


Đã sửa và đáp ứng được yêu cầu của bạn, vẫn là lệnh MCALTEXT.

(defun c:mcaltext (/ ent tt old gt vt gtmoi)
(if (not c:cal)
(load "geomcal.arx")
)
(defun calone (ent)
(setq
tt (entget ent)
old (assoc 1 tt)
gt (cdr old)
vt (vl-string-position (ascii "=") gt)
ht vt
htsau (+ vt 2)
)
(while (and (> ht 0)
(member (substr gt ht 1) (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "." "+" "-" "*" "/"))
)
(setq ht (1- ht))
)
(while (and
(member (substr gt htsau 1) (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "." "+" "-" "*" "/"))
)
(setq htsau (1+ htsau))
)
(setq
gttruoc (substr gt 1 ht)
gtsau (substr gt htsau)
gtmoi (substr gt (1+ ht) (- vt ht))
kq (rtos (c:cal gtmoi))
kq (vl-string-right-trim "0" kq)
kq (vl-string-right-trim "." kq)
gtmoi (strcat gttruoc gtmoi "=" kq gtsau)
tt (subst (cons 1 gtmoi) old tt)
)
(entmod tt)
(entupd ent)
)
(setq ss (ssget '((0 . "TEXT"))))
(sudung calone ss)
(princ)
)
(defun sudung (ham ss / sodt index entdt soapp)
(setq sodt (cond
(ss (sslength ss))
(t 0)
)
soapp 0
index 0
)
(repeat sodt
(setq entdt (ssname ss index)
index (1+ index)
)
(if (ham entdt)
(setq soapp (1+ soapp))
)
)
soapp
)

  • 0

#132 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 13 August 2007 - 06:37 PM

Lệnh là SD (sắp dim)

Chương trình sẽ yêu cầu người sử dụng chọn đường Dim chuẩn. Sau đó, yêu cầu người sử dụng chọn các đường Dim cần sắp xếp. Chương trình sẽ tự động dàn các Dim theo hàng đều.
Hình đã gửi


(defun c:sd ()
(defun ss2ent (ss / sodt index lstent)
(setq
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(defun hoanh_newerror (msg)
(if (and (/= msg "Function cancelled")
(/= msg "quit / exit abort")
)
(princ (strcat "\n" msg))
)
(done)
)
;;----------
(defun init ()
(setq
HOANH_CMD (getvar "CMDECHO")
HOANH_OLDERROR *error*
*error* hoanh_newerror

)
(setvar "CMDECHO" 0)
(command ".undo" "BE")
)
;;----------
(defun done ()
(command ".redraw")
(command ".undo" "E")
(if HOANH_CMD
(setvar "CMDECHO" HOANH_CMD)
)
(if HOANH_OLDERROR
(setq *error* HOANH_OLDERROR)
)
(princ)
)
;;----------

(defun cdim (entdt pchan pduong / tt old10
old13 old14 new10 new13 new14 p10n
p13n p14n p10o p13o p14o gocduong
gocchan pchanb pduongb loaidim
)
(defun chanvuonggoc (ph p1 p2 / ptemp pkq goc)
(setq
goc (+ (angle p1 p2) (/ pi 2.0))
ptemp (polar ph goc 1000.0)
pkq (inters ph ptemp p1 p2 nil)
)
pkq
)
(setq
tt (entget entdt)
old10 (assoc '10 tt)
old13 (assoc '13 tt)
old14 (assoc '14 tt)
p10o (cdr old10)
p13o (cdr old13)
p14o (cdr old14)
loaidim (logand (cdr (assoc '70 tt)) 7)
gocduong (cond
((= loaidim 1) (angle p13o p14o))
((= loaidim 0) (cdr (assoc '50 tt)))
(t nil)
)
pchan (cond
(pchan (list (car pchan) (cadr pchan) 0.0))
(t pchan)
)
pduong (cond
(pduong (list (car pduong) (cadr pduong) 0.0))
(t pduong)
)

)
(if gocduong
(progn
(if pchan
(setq
pchanb (polar pchan gocduong 1000.0)
p13n (chanvuonggoc
(list (car p13o) (cadr p13o) 0.0)
pchan
pchanb
)
p14n (chanvuonggoc
(list (car p14o) (cadr p14o) 0.0)
pchan
pchanb
)
new13 (cons 13 p13n)
new14 (cons 14 p14n)
tt (subst new13 old13 tt)
tt (subst new14 old14 tt)
)
)
(if pduong
(setq
pduongb (polar pduong gocduong 1000.0)
p10n (chanvuonggoc
(list (car p10o) (cadr p10o) 0.0)
pduong
pduongb
)
new10 (cons 10 p10n)
tt (subst new10 old10 tt)
)
)
(entmod tt)
)
)
gocduong
)

(defun textdimheight (ent / tmp)
(command ".copy" ent "" (list 0.0 0.0 0.0) "@")
(command ".explode" (entlast) "")
(setq tmp (cdr (assoc 40 (entget (entlast)))))
(command ".erase" "p" "")
tmp
)
(defun phia (p1 p2 p3 / x1 y1 z1 x2 y2 z2 x3 y3 z3)
(setq
x1 (car p1)
y1 (cadr p1)
z1 (caddr p1)
x2 (car p2)
y2 (cadr p2)
z2 (caddr p2)
x3 (car p3)
y3 (cadr p3)
z3 (caddr p3)
tmp (+ (* (- x1 x2) x3)
(* (- y1 y2) y3)
(* (- z1 z2) z3)
)
)
(cond
((= tmp 0.0) 0.0)
(t (/ tmp (abs tmp)))
)
)
(defun khoangcachdim (p1 ent goc / tt p2 A B D)
(setq tt (entget ent)
p2 (cdr (assoc 10 tt))
B (cdr (assoc 50 tt))
A (angle p1 p2)
D (distance p1 p2)
)
(* (* D (sin (- A :unsure:)) (phia p1 (polar p1 goc 1.0) p2))
)

(defun phanloai (ent)
(setq
kc (khoangcachdim pgoc ent goc)
loai (fix (/ kc heightdimgoc 0.93))
)
(cons loai ent)
)

(init)
(princ "\nSap xep dim © CADViet.com")
(while (not (setq entgoc (car (entsel "\nChon duong dim goc: "))))
)
(setq
ttgoc (entget entgoc)
p13goc (cdr (assoc 13 ttgoc))
pgoc (cdr (assoc 10 ttgoc))
goc (cdr (assoc 50 ttgoc))
heightdimgoc (textdimheight entgoc)
ssd (ssget (list
(cons 0 "DIMENSION")
(cons -4 "<OR")
(cons 70 32)
(cons 70 64)
(cons 70 96)
(cons 70 128)
(cons 70 160)
(cons 70 196)
(cons 70 224)
(cons -4 "OR>")
(cons -4 "<OR")
(cons 50 goc)
(cons 50 (+ goc pi))
(cons 50 (- goc pi))
(cons -4 "OR>")
)
)
lstd (ss2ent ssd)
lstd (mapcar 'phanloai lstd)
lstlevel nil
)
(foreach pp lstd
(if (not (member (car pp) lstlevel))
(setq lstlevel (append lstlevel (list (car pp))))
)
)
(setq lstlevel (vl-sort lstlevel '(lambda (x1 x2) (< x1 x2)))
lstam nil
lstduong nil
lstamtmp nil
lstduongtmp nil
)
(foreach pp lstlevel
(if (< pp 0.0)
(setq lstam (append lstam (list pp)))
)
(if (> pp 0.0)
(setq lstduong (append lstduong (list pp)))
)
)
(setq index 0)
(foreach pp (reverse lstam)
(setq
index (1+ index)
lstamtmp (append lstamtmp (list (cons pp index)))
)
)
(setq
lstam lstamtmp
index 0
)
(foreach pp lstduong
(setq
index (1+ index)
lstduongtmp (append lstduongtmp (list (cons pp index)))
)
)
(setq lstduong lstduongtmp)
(setq lstlevel (append lstduong lstam (list (cons 0.0 0))))

(setq kcdimstandard (* 3.0 heightdimgoc))
(foreach pp lstd
(setq plht (car pp))
(progn
(setq
kcdimht (khoangcachdim pgoc (cdr pp) goc)
duongthu (cdr (assoc plht lstlevel))
heso (cond
((/= 0 kcdimht)
(abs (* (/ kcdimstandard kcdimht) duongthu))
)
(t 0.0)
)
diemchenht (cdr (assoc 10 (entget (cdr pp))))
pmoi (polar pgoc
(angle pgoc diemchenht)
(* heso (distance pgoc diemchenht))
)
)

(cdim (cdr pp) p13goc pmoi)
)
)
(done)
)
(princ "\nSap xep dim, SD - free lisp from www.cadviet.com")
(princ)


Anh Hoành xem lại giúp, tôi chạy chương trình gặp lỗi :
Command: (load"xepdim")
; error: malformed list on input
cảm ơn anh.
  • 0

#133 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 13 August 2007 - 06:40 PM

APPLOAD ttt.lsp successfully loaded.
Command: ; error: malformed list on input
Command:
Command: sd Unknown command "SD". Press F1 for help.

sao mình load lisp và chạy thì nó báo lỗi. Bạn xem lại dùm nhé!

Thanks nhiều!
  • 0

#134 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 13 August 2007 - 09:04 PM

Vừa edit lại được rồi, mọi người thử lại đi nhé.

Khổ quá, chữ B) nó bị đổi thành :unsure:
Nên dòng lệnh:
(* (* D (sin (- A B))) (phia p1 (polar p1 goc 1.0) p2))
Bị đổi thành:
(* (* D (sin (- A :unsure:)) (phia p1 (polar p1 goc 1.0) p2))
thế là sai mất.

Đã đổi lại thành B ), và đã test lại thấy ok rồi.
Chân thành xin lỗi mọi người.
  • 0

#135 kts.ngocquan

kts.ngocquan

    biết vẽ ellipse

  • Members
  • PipPip
  • 59 Bài viết
Điểm đánh giá: 36 (tàm tạm)

Đã gửi 13 August 2007 - 09:59 PM

:unsure:
Cam on NH da share cho moi nguoi LISP nay
You're number one :unsure:
  • 0

#136 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 13 August 2007 - 10:07 PM

Vừa edit lại được rồi, mọi người thử lại đi nhé.

Khổ quá, chữ :unsure: nó bị đổi thành :unsure:
Nên dòng lệnh:
(* (* D (sin (- A :unsure:)) (phia p1 (polar p1 goc 1.0) p2))
Bị đổi thành:
(* (* D (sin (- A :))) (phia p1 (polar p1 goc 1.0) p2))
thế là sai mất.

Đã đổi lại thành B ), và đã test lại thấy ok rồi.
Chân thành xin lỗi mọi người.


cảm ơn anh Hoành
  • 0

#137 kts.ngocquan

kts.ngocquan

    biết vẽ ellipse

  • Members
  • PipPip
  • 59 Bài viết
Điểm đánh giá: 36 (tàm tạm)

Đã gửi 14 August 2007 - 12:25 AM

Nguyễn Hoành ơi , xem lại hộ tui cái . Tại sao ko dùng được lệnh SD vậy . File tôi gửi theo đường dẫn ở dưới
http://www.cadviet.com/upfiles/NH.rar
or http://www.megaupload.com/?d=LXGMX3M3

Tôi rất thích lệnh này của NH , NH có thể bổ xung thêm để có thể dùng được vơi đường kích thước xiên ko (Lệnh dal)
Trả lời nhanh nhé . Thèm lém rùi :unsure:
  • 0

#138 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 14 August 2007 - 01:32 AM

Nguyễn Hoành ơi , xem lại hộ tui cái . Tại sao ko dùng được lệnh SD vậy . File tôi gửi theo đường dẫn ở dưới
http://www.cadviet.com/upfiles/NH.rar
or http://www.megaupload.com/?d=LXGMX3M3

Tôi rất thích lệnh này của NH , NH có thể bổ xung thêm để có thể dùng được vơi đường kích thước xiên ko (Lệnh dal)
Trả lời nhanh nhé . Thèm lém rùi :unsure:

file của bạn vẫn dùng tốt, chạy ổn chẳng có gì sai cả!
  • 3

#139 kts.ngocquan

kts.ngocquan

    biết vẽ ellipse

  • Members
  • PipPip
  • 59 Bài viết
Điểm đánh giá: 36 (tàm tạm)

Đã gửi 14 August 2007 - 07:33 AM

file của bạn vẫn dùng tốt, chạy ổn chẳng có gì sai cả!



:unsure:
Thế sao ?????? Tôi dùng thì bị nhu file ảnh tôi up lên mà :unsure:
Còn vụ đường kích thước xiên thì sao hả NH ? Lệnh SD bị miễn nhiễm với nó mà ...........
Cảm ơn NH nhé :unsure:
  • 0

#140 xaydung

xaydung

    biết lệnh trim

  • Members
  • PipPipPip
  • 191 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 14 August 2007 - 08:20 AM

Bác Hoanh ơi, em đã dùng cái mcaltext của bác
chạy ngon lắm bác à, nhưng với những phép tính có
dấu ngoặc "()" thì nó không chạy bác à?!
bác giúp em chút nữa được không? em cám ơn!
  • 0