Đế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

#41 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 07 July 2007 - 11:42 AM

Jin muốn có một lisp với tính năng sau:
- Cho phép chọn một tập hợp điểm (points) bằng chuột.
- Chỉ định số bắt đầu.
- Lisp sẽ tự động đánh số thứ tự theo chiều tăng dần của X rồi đến Y, nghĩa là từ trái qua phải rồi từ dưới lên trên.

Mọi người giúp Jin với nhé!
  • 0

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#42 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 08 July 2007 - 06:29 PM

Jin muốn có một lisp với tính năng sau:
- Cho phép chọn một tập hợp điểm (points) bằng chuột.
- Chỉ định số bắt đầu.
- Lisp sẽ tự động đánh số thứ tự theo chiều tăng dần của X rồi đến Y, nghĩa là từ trái qua phải rồi từ dưới lên trên.

Mọi người giúp Jin với nhé!


Lệnh P2T:


(defun c:P2T (/ sst lstent pp p soht strht)
(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 getp (ent)
(cdr (assoc 10 (entget ent)))
)
(defun sosanh (ent1 ent2 / p1 p2 x1 y1 x2 y2)
(setq
p1 (getp ent1)
x1 (car p1)
y1 (cadr p1)
p2 (getp ent2)
x2 (car p2)
y2 (cadr p2)
)
(or (< x1 x2)
(and (= x1 x2) (< y1 y2))
)
)

;;------------- Main -------------------------------
(princ "\nPoint to Text © 2007 CADViet.com")
(setq
sst (ssget '((0 . "POINT")))
caochu (getdist "\nVao chieu cao text: ")
soht (1- (getint "\nVao so bat dau danh: "))
lstent (vl-sort (ss2ent sst) 'sosanh)
)
(foreach pp lstent
(setq
soht (1+ soht)
strht (itoa soht)
p (getp pp)
)
(entmake
(list
(cons 0 "TEXT")
(cons 10 P)
(cons 40 caochu)
(cons 1 strht)
)
)
)
(princ)
)
(princ "\nSu dung lenh P2T bat dau")

  • 1

#43 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 09 July 2007 - 03:21 PM

vấn đề nảy sinh đó là : nếu chọn lại đường đó để thay 1 width khác thì lúc đó lisp mất tác dụng bác ạ (tức là chỉ có tác dụng 1 lần với đường đó thui), nhân tiện cám ơn bác Hoanh và ssg đã trả lời giúp tui.


Tôi có cái này lệnh là MAW tác dụng với PL ;line ;ARC chỉ cần chọn pl có độ rộng làm chuẩn sau đó chọn các đối tượng khác.



(DEFUN C:MAW(/ SSET NET SSL M)


(prompt "\nChon PLINE mau.")
(setq DTD (car (entsel)))
(setq DT (entget DTD))
(setq NDT (cdr (assoc 40 DT)))
(Princ "\nHay chon cac doi tuong muon chinh :")
(Setq sset (Ssget))

(if (Null sset)
(princ "\nKhong chon duoc doi tuong nao")
)

(IF (/= NIL SSET) (PROGN
(SETQ SSL (SSLENGTH SSET))
(INITGET 4)
;(SETQ NDT (GETREAL "\nNhap do rong : "))
(IF (/= NIL NDT)
(WHILE (> SSL 0)
(SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
(IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
(COMMAND "PEDIT" M "Y" "W" NDT "")
)

(IF (= (CDR (ASSOC '0 (ENTGET M))) "LWPOLYLINE")
(COMMAND "PEDIT" M "W" NDT "")
)

(IF (= (CDR (ASSOC '0 (ENTGET M))) "ARC")
(COMMAND "PEDIT" M "Y" "W" NDT "")
)


)
)))
(PRINC)
)


  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#44 interwar1283

interwar1283

    biết dimcontinue

  • Vip
  • PipPipPipPipPip
  • 374 Bài viết
Điểm đánh giá: 211 (khá)

Đã gửi 10 July 2007 - 08:57 PM

Cảm ơn bác SSQ, mình dang cần ham Sum của bác.
  • 0

#45 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 11 July 2007 - 10:53 PM

Tôi có cái này lệnh là MAW tác dụng với PL ;line ;ARC chỉ cần chọn pl có độ rộng làm chuẩn sau đó chọn các đối tượng khác.


Chào bác Duy782006, cái lisp của bác đúng ý em rùi chỉ tiếc không chạy
báo lỗi như sau:

APPLOAD maw.lsp successfully loaded.
Command: ; error: malformed list on input

Mong bác xem lại cho em, em cám ơn nhiều !
  • 0

#46 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 July 2007 - 11:45 PM

Chào bác Duy782006, cái lisp của bác đúng ý em rùi chỉ tiếc không chạy
báo lỗi như sau:

APPLOAD maw.lsp successfully loaded.
Command: ; error: malformed list on input

Mong bác xem lại cho em, em cám ơn nhiều !


Chạy ngon mà, Xaydung xem lại đi!

Lỗi mà ACAD của Xaydung thông báo là do bạn bị thiếu (hoặc thừa) dấu ngoặc trong file lisp. Có thể bạn đã copy chưa chính xác đoạn code của Duy782006.
  • 0

#47 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 July 2007 - 10:14 AM

Cho mình xin cái lisp có tính năng:
- Khi vẽ tường thì cần vẽ tim tương rồi nhập vào giá trị tường (ví dụ 220) là nó tự động offset sang 2 bên (mỗi bên 110) rồi xoá luôn cái tim tường mà mình vẽ.

- Khi có 2 đường thẳng song song nhau, ta vẽ một đoạn vuông góc với 2 đường thẳng đó, rồi nhập giá trị (ví dụ 1200) là nó tự động offset sang 2 bên (mỗi bên 600) rồi trim luôn đoạn thẳng giữa 2 đường vừa được offset và xoá cái đoạn thẳng mà ta vẽ lúc đầu đi. (dùng để cắt lỗ cửa sổ).

- Khi có 2 đường thẳng song song nhau, ta vẽ một đoạn vuông góc với 2 đường thẳng đó, rồi nhập 2 giá trị (ví dụ : 110 và 800) là nó tự động offset đoạn thẳng ta vẽ lúc đầu thành hai đoạn thẳng có khoảng cách như sau: Đoạn đầu tiên cách đoạn ta vẽ 110, đoạn thứ 2 cách đoạn ta vẽ là 110+800, rồi nó tự trim đoạn thẳng ở giữa 2 đoạn vừa được offset rồi xoá đoạn ta vẽ đi. (chiều offset do ta lựa chọn)

Cảm ơn các bạn nhiều!
  • 0

#48 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 13 July 2007 - 11:34 AM

Jin vẽ mặt bằng kết cấu, các tầng giống nhau nên copy lên rồi sửa text theo tầng rất mệt. Jin muốn có một lisp để edit một text với yêu cầu:
- Chọn text
- Nhập số tầng

Chẳng hạn: có sẵn một text là D2-16 (22x50)
Thì số 2 ở đây là tầng 2, bây giờ Jin muốn một lisp cho phép chọn text trên, nhập tên tầng là 3, thì text mới sẽ thành: D3-16(22x50), nhập tầng là 13 thì text sẽ thành: D13-16(22x50)

  • 0

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#49 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 July 2007 - 01:20 PM

Cho mình xin cái lisp có tính năng:
- Khi vẽ tường thì cần vẽ tim tương rồi nhập vào giá trị tường (ví dụ 220) là nó tự động offset sang 2 bên (mỗi bên 110) rồi xoá luôn cái tim tường mà mình vẽ.

- Khi có 2 đường thẳng song song nhau, ta vẽ một đoạn vuông góc với 2 đường thẳng đó, rồi nhập giá trị (ví dụ 1200) là nó tự động offset sang 2 bên (mỗi bên 600) rồi trim luôn đoạn thẳng giữa 2 đường vừa được offset và xoá cái đoạn thẳng mà ta vẽ lúc đầu đi. (dùng để cắt lỗ cửa sổ).

- Khi có 2 đường thẳng song song nhau, ta vẽ một đoạn vuông góc với 2 đường thẳng đó, rồi nhập 2 giá trị (ví dụ : 110 và 800) là nó tự động offset đoạn thẳng ta vẽ lúc đầu thành hai đoạn thẳng có khoảng cách như sau: Đoạn đầu tiên cách đoạn ta vẽ 110, đoạn thứ 2 cách đoạn ta vẽ là 110+800, rồi nó tự trim đoạn thẳng ở giữa 2 đoạn vừa được offset rồi xoá đoạn ta vẽ đi. (chiều offset do ta lựa chọn)

Cảm ơn các bạn nhiều!


Có 3 lệnh dưới đây đáp ứng được 3 yêu cầu của bạn:
1. lệnh CVT: vẽ tường cân từ một line hoặc pline. Đầu vào: đối tượng (poly)line, chiều dày tường.
2. lệnh CVTL: vẽ tường lệch từ một line hoặc pline và bề dày. Đầu vào: đối tượng (poly)line, phía offset, khoảng cách offset, chiều dày tường.
3. lệnh CVTRIM: cắt bỏ đoạn line giao nhau giữa 2 tường. Đầu vào: 4 đường, chia làm 2 cặp. Mỗi cặp thể hiện một tường.
Như vậy, lệnh CVTL tuy có khác so với yêu cầu thứ 2 của bạn, nhưng nó điển hình hơn. Khi bạn muốn làm như yêu cầu thứ 2 của bạn, bạn kết hợp lệnh CVTL và lệnh CVTRIM là được.


(defun luuos ()
(setq
HOANH_OSMODE (getvar "OSMODE")
HOANH_AUTOSNAP (getvar "AUTOSNAP")
)
)
(defun traos ()
(if HOANH_OSMODE
(setvar "OSMODE" HOANH_OSMODE)
)
(if HOANH_AUTOSNAP
(setvar "AUTOSNAP" HOANH_AUTOSNAP)
)
)
(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
)
(defun GiaoDT (ent1 ent2)
(setq ob1 (vlax-ename->vla-object ent1)
ob2 (vlax-ename->vla-object ent2)
)
(setq g (vlax-variant-value
(vla-IntersectWith ob1 ob2 acExtendNone)
)
)
(if (/= (vlax-safearray-get-u-bound g 1) -1)
(setq g (vlax-safearray->list g))
(setq g nil)
)
(if g
(progn
(setq kq nil
sd (fix (/ (length g) 3))
)
(repeat sd
(setq kq (append kq (list (list (car g) (cadr g) (caddr g))))
g (cdddr g)
)
)
kq
)
nil
)
)
(defun c:CVT ()
(defun getfp (ent)
(cdr (assoc 10 (entget ent)))
)
(defun getlp (ent / tt)
(setq tt (entget ent))
(if (= "LINE" (cdr (assoc 0 tt)))
(cdr (assoc 11 tt))
(cdr (assoc 10 (cdr (member (assoc 10 tt) tt))))
)
)
(defun offone (ent)
(setq p1 (getfp ent)
p2 (getlp ent)
pg1 (polar p1 (+ (angle p2 p1) (/ pi 2.0)) 100.0)
pg2 (polar p1 (- (angle p2 p1) (/ pi 2.0)) 100.0)
)
(command ".offset" dist ent pg1 "")
(command ".offset" dist ent pg2 "")
(command ".erase" ent "")
)
(princ "\nOffset Line thanh tuong can © CADViet.com")
(princ "\nVao doi tuong can offset (Pline hoac Line)")
(setq ss (ssget '((-4 . " (0 . "LINE")
(0 . "LWPOLYLINE")
(-4 . "OR>")
)
)
dist (/ (getdist "\nVao khoang cach: ") 2.0)
)
(sudung offone ss)
(princ)
)
(defun c:CVTRIM ()
(princ "\nCat 2 doan tuong giao nhau © CADViet.com")
(princ "\nChon 2 duong dau tien: ")
(setq ssa (ssget)
enta1 (ssname ssa 0)
enta2 (ssname ssa 1)
)
(princ "\nChon 2 duong tiep theo: ")
(setq ssb (ssget)
entb1 (ssname ssb 0)
entb2 (ssname ssb 1)
)
(setq ga1b1 (GiaoDT enta1 entb1)
ga1b2 (GiaoDT enta1 entb2)
ga2b1 (GiaoDT enta2 entb1)
ga2b2 (GiaoDT enta2 entb2)
)
(if (and (= (length ga1b1) 1)
(= (length ga1b2) 1)
(= (length ga2b1) 1)
(= (length ga2b2) 1)
)
(progn
(setq ga1b1 (car ga1b1)
ga1b2 (car ga1b2)
ga2b1 (car ga2b1)
ga2b2 (car ga2b2)
)
(luuos)
(setvar "osmode" 0)
(command ".break" enta1 ga1b1 ga1b2)
(command ".break" enta2 ga2b1 ga2b2)
(command ".break" entb1 ga1b1 ga2b1)
(command ".break" entb2 ga1b2 ga2b2)
(traos)
)
(princ "\nCac duong ban chon khong dung!")
)
(princ)
)
(defun c:CVTL ()
(princ "\nOffset (Poly)Line thanh tuong lech © CADViet.com")
(setq
sel (entsel "\nChon doi tuong can offset: ")
ent (car sel)
pg (cadr sel)
p (getpoint "\nPhia de offset: ")
gt1 (getdist pg "\nNhap khoang cach offset: ")
gt2 (getdist "\nNhap be day tuong: ")
gt2 (+ gt2 gt1)
)
(luuos)
(setvar "osmode" 0)
(command ".offset" gt1 sel p "")
(command ".offset" gt2 sel p "")
(command ".erase" sel "")
(traos)
(princ)
)
(vl-load-com)
(princ "\nLisp xu ly tuong © CADViet.com")
(princ)

  • 1

#50 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 July 2007 - 02:36 PM

Jin vẽ mặt bằng kết cấu, các tầng giống nhau nên copy lên rồi sửa text theo tầng rất mệt. Jin muốn có một lisp để edit một text với yêu cầu:
- Chọn text
- Nhập số tầng

Chẳng hạn: có sẵn một text là D2-16 (22x50)
Thì số 2 ở đây là tầng 2, bây giờ Jin muốn một lisp cho phép chọn text trên, nhập tên tầng là 3, thì text mới sẽ thành: D3-16(22x50), nhập tầng là 13 thì text sẽ thành: D13-16(22x50)


Bạn dùng lệnh find trong cad, sẽ làm được việc bạn yêu cầu :s_dead:
Khi muốn chuyển toàn bộ D2 thành D.. thì bạn chọn lệnh Find, sau đó nhập D2 vào dòng bên trên D... vào dòng dưới, rồi chọn vùng của bản vẽ muốn chuyển. Sau đó ấn Repleace All. Thế là Ok :ph34r:

@NguyenHoanh mình đã sử dụng được cái lisp bạn viết. Cảm ơn bạn nhiều!
  • 0

#51 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 July 2007 - 02:44 PM

Jin vẽ mặt bằng kết cấu, các tầng giống nhau nên copy lên rồi sửa text theo tầng rất mệt. Jin muốn có một lisp để edit một text với yêu cầu:
- Chọn text
- Nhập số tầng

Chẳng hạn: có sẵn một text là D2-16 (22x50)
Thì số 2 ở đây là tầng 2, bây giờ Jin muốn một lisp cho phép chọn text trên, nhập tên tầng là 3, thì text mới sẽ thành: D3-16(22x50), nhập tầng là 13 thì text sẽ thành: D13-16(22x50)


Lệnh RTF của chương trình dưới đây sẽ làm được điều Jin muốn.
Chương trình sẽ yêu cầu nhập vào:
- từ đứng trước: là cụm từ nhận dạng đứng đằng trước từ cần thay. trong ví dụ của Jin, từ này có thể là 'D'.
- từ đứng sau: là cụm từ nhận dạng đứng đằng sau từ cần thay. trong ví dụ của Jin, từ này có thể là '-16(220x50)' hoặc '-16' đều được.
- từ mới muốn thay: là từ muốn thay vào giữa hai cụm từ nhận dạng trên. Trong ví dụ của jin, từ này là '13'.
- các text cần thay: chọn các text cần thay.

Các giá trị này được lưu lại, nếu các lần dùng lệnh sau mà không muốn thay đổi giá trị, chỉ việc nhấn enter lúc chương trình hỏi.

Cách hoạt động của chương trình theo ví dụ của Jin: tìm tất cả các từ có cấu trúc D*-16 và thay bằng D13-16.


(defun c:RTF ()
(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
)

(defun pos (sub st / l1 l2 index)
(setq index 1
l1 (strlen sub)
l2 (strlen st)
)
(while
(and (<= (+ index l1 -1) l2) (/= sub (substr st index l1)))
(setq index (1+ index))
)
(if (= sub (substr st index l1))
index
nil
)
)

(defun transtext (str / kq)
(setq kq "")
(while (wcmatch str (strcat "*" CV_TUTRUOC "*" CV_TUSAU "*"))
(setq vt1 (pos CV_TUTRUOC str)
vt2 (+ vt1 (strlen CV_TUTRUOC) (pos CV_TUSAU (substr str (+ vt1 (strlen CV_TUTRUOC)))) (strlen CV_TUSAU) -1)
truoc (substr str 1 (1- vt1))
str (substr str vt2)
kq (strcat kq truoc CV_TUTRUOC CV_TUGIUA CV_TUSAU)
)
)
(setq kq (strcat kq str))
)
(defun thaytext (ent / tt)
(setq tt (entget ent)
old (assoc 1 tt)
new (cons 1 (transtext (cdr old)))
tt (subst new old tt)
)
(entmod tt)
(entupd ent)
)

(defun Nhapstr (TU promt / tmp)
(while (or (not tmp)
(= tmp "")
)
(setq tmp (getstring (strcat promt
" <"
(cond
(TU TU)
(t "")
)
">: "
)
)
)
(if (= tmp "")
(setq tmp TU)
)
)
tmp
)
;;;---------------- Main ----------------------------------
(princ "\nRTF - © CADViet.com")
(setq
CV_TUTRUOC (Nhapstr CV_TUTRUOC "\nNhap tu dung truoc")
CV_TUSAU (Nhapstr CV_TUSAU "\nNhap tu dung sau")
CV_TUGIUA (Nhapstr CV_TUGIUA "\nNhap tu can thay o giua")
)
(princ "\nChon cac doi tuong TEXT: ")
(setq sstext (ssget '((0 . "TEXT"))))
(sudung thaytext sstext)
(princ)
)
(princ "\nLenh Replace Text Format - thay the text theo dinh dang")
(princ "\n© CADViet.com - Hay dung lenh RTF de bat dau!")
(princ)

  • 1

#52 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 14 July 2007 - 08:11 AM

Lệnh RTF của chương trình dưới đây sẽ làm được điều Jin muốn.
Chương trình sẽ yêu cầu nhập vào:
- từ đứng trước: là cụm từ nhận dạng đứng đằng trước từ cần thay. trong ví dụ của Jin, từ này có thể là 'D'.
- từ đứng sau: là cụm từ nhận dạng đứng đằng sau từ cần thay. trong ví dụ của Jin, từ này có thể là '-16(220x50)' hoặc '-16' đều được.
- từ mới muốn thay: là từ muốn thay vào giữa hai cụm từ nhận dạng trên. Trong ví dụ của jin, từ này là '13'.
- các text cần thay: chọn các text cần thay.
Các giá trị này được lưu lại, nếu các lần dùng lệnh sau mà không muốn thay đổi giá trị, chỉ việc nhấn enter lúc chương trình hỏi.
Cách hoạt động của chương trình theo ví dụ của Jin: tìm tất cả các từ có cấu trúc D*-16 và thay bằng D13-16.

Tuyệt vời!

Nhưng gặp một trở ngại lớn
Đó là việc các dầm tầng 1 sẽ có tên như sau: D1-1 (22x30), D1-2 (22x30), D1-3 (22x50)....
Và muốn đổi tất cả sang tầng 2 thì lại phải lần lượt khai các đuôi của nó, sẽ là -1 (22x30), -2 (22x30) -3 (22x50).... Như vậy thì mất công quá, mà những 100 text như thế thì Jin phải nhấn chuột bao nhiêu lần.
Anh Hoành có thể:

1. Sửa để Lisp chỉ cần tìm theo cấu trúc D*-* được không?

2. Thay thế hàng loạt bằng cách chọn một lúc nhiều text được không?
  • 0

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#53 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 14 July 2007 - 08:44 AM

@Jin bạn đọc bài viết của mình bên trên bài của bạn Nguyen Hoanh chưa vậy :s_dead: cái đó có thể đáp ứng được hết yêu cầu của bạn.

@Nguyen Hoanh. Không hiểu sao cái lisp offset tuong sang hai bên của bạn lúc mình làm được, lúc thì nó lại nhảy cả hai đường mới ofset về 1 phía (tứ là 2 đường trùng nhau chứ không đối xứng nhua qua trục). Bạn kiểu tra lại giúp mình nhé!

Thanks
  • 0

#54 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 14 July 2007 - 12:39 PM

@Jin bạn đọc bài viết của mình bên trên bài của bạn Nguyen Hoanh chưa vậy :ph34r: cái đó có thể đáp ứng được hết yêu cầu của bạn.

@Nguyen Hoanh. Không hiểu sao cái lisp offset tuong sang hai bên của bạn lúc mình làm được, lúc thì nó lại nhảy cả hai đường mới ofset về 1 phía (tứ là 2 đường trùng nhau chứ không đối xứng nhua qua trục). Bạn kiểu tra lại giúp mình nhé!

Thanks

Đã đọc bài của bạn rồi mừ, nhưng mà muốn thực hiện được thì lại phải copy sang bản CAD khác để khỏi mất các bản vẽ cũ, thế thì không được tiện cho lắm.

Anh Hoành ơi, làm hộ tiếp cho Jin một chút đi :s_dead:
  • 0

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#55 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 14 July 2007 - 02:20 PM

Sao lại phải copy sang bản vẽ khác. Có thể chọn vùng tìm kiếm được mà. trong bảng Find có cái nút trên cùng bên phải có biểu tượng con chuột và chữ x màu đỏ. Bạn bấm vào đó rồi chọn bản vẽ KC-... , chương trình sẽ chỉ tìm và thay thế trong vùng trọn thôi!
  • 0

#56 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 July 2007 - 05:46 PM

@Jin: Lisp trên muốn làm như Jin nói, chỉ cần cấu trúc D*- là được mà. Tức là từ trước là 'D', từ sau là '-'. Lisp trên đã làm được nhiều đối tượng một lúc rồi mà.

@conghoa: bạn có thể upload file mà lisp chạy bị lỗi lên được không! tôi sẽ xem chính xác được lisp bị lỗi gì. cảm ơn bạn.
  • 0

#57 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 17 July 2007 - 09:42 AM

@NguyenHoanh mình chưa biết cách up lên host của fỏum ntn :s_dead:. Nhưng hầu như file cad nào của mình cũng sảy ra trường họp trên, có nét được, có nét ko Những nét vẽ dài phần lớn là ko được. (>20000mm).
  • 0

#58 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 22 July 2007 - 04:16 PM

Lâu không thấy ai post, xin mạn phép post tiếp vậy :s_dead:

Mình đã phải ngồi căn lại khoảng cách giữa các dòng dim cho nó bằng nhau và cảm thấy hơi vất.

Mình muốn các bạn giúp cho 1 lisp có thể tự động căn chỉnh khoảng cách các dòng dim bằng nhau.
ví dụ:- có 3 hàng dim (dim mặt bằng, có khoảng cách không bằng nhau ). Khi dùng lisp sẽ tự động căn chỉnh khoảng khoảng cách giũa các hàng dim bằng 1 giá trị nhập vào từ bàn phím.

Thanks!
  • 0

#59 nguoi bi an

nguoi bi an

    biết pan

  • Members
  • Pip
  • 8 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 26 July 2007 - 11:23 PM

các bác ơi giúp em với , em cũng chỉ là sv mới ra trường nền cung chưa có rành lắm về autolip.mong các bác chỉ giáo thêm.
nhân tiện đầy em nhờ các bác giúp cho em một cái lip mà thay đổi cỡ chữ cũng như font chữ ,gống như lệnh ma(ma ko làm dc trong mtext)
cảm ơn các bác trước nha.
  • 0

#60 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 28 July 2007 - 10:11 AM

Anh Hoanh ơi. Em đang rất cần lisp có nội dung như sau
khi tải lisp yêu cầu nhập kí tự(string) cần tìm sau đó nhập
điểm chèn trên màn hình, hiện ra kết quả là số lượng ký tự như thế đã tìm thấy là bao nhiêu
Em có biết đến lệnh find nhưng lệnh này nó tìm (find) và thay thế (replace) chứ không
đếm được số lượng như trên.
Anh giúp em với nha. Em cám ơn nhiều
  • 0