Đến nội dung


Hình ảnh
- - - - -

nhờ viết lisp gán cao độ cho đường đồng mức và ghi ra text


  • Please log in to reply
20 replies to this topic

#1 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 13 April 2013 - 11:42 AM

nhờ các pro giúp mình viết 1 lisp gán cao độ cho đường đồng mức (để chạy tính khối lượng) và ghi giá trị đó nằm trên đường đồng mức luôn để đỡ phải nhập từng text một rất mất tgian và hay bị nhầm.ví dụ cao độ là 10.00 hay 5.00 thì nhập cao độ ra như vậy còn 5.10 hay 5.20 thì nhập ra .10   .20 .có vẻ hơi khoai hy vọng có pro nào làm đc em xin đa tạ :)


  • 0

#2 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 13 April 2013 - 04:42 PM

Thấy chưa có ai giúp nên post cái Lisp này lên cho bạn dùng thử:

http://www.cadviet.c...ghi_ra_text.lsp

Hướng dẫn: Ví dụ muốn đặt 2 đường đồng mức cùng có cao độ là 10 thì quét chọn cả 2 đường đồng mức đó luôn. Sau đó nhập độ cao đường đồng mức và chiều cao chữ. Cuối cùng chọn vị trí ghi Text. Khi nào không muốn ghi Text nữa thì chuột phải hoặc Enter hoặc Space.

;GAN CAO DO CHO DUONG DONG MUC VA GHI RA TEXT
;============KANGKUNG 13/04/2013=============
(defun C:kk( / index Height pt taphop)
  (setq taphop (ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (if (/= docao nil)
    (setq docao(read(lisped (rtos docao 2 2))))
    (setq docao(read(lisped "Nhap do cao duong dong muc vao day")))
    )
  (setq Height(getreal "\n Nhap chieu cao chu: "))
  (setq index 0)
  (while (< index (sslength taphop))
    (vla-put-elevation (vlax-ename->vla-object (ssname taphop index)) docao)
    (setq index (1+ index))
    )
  (while (setq pt(getpoint "\n Pick diem chen TEXT: " ))
      (entmake (list '(0 . "TEXT") (cons 10 pt) (cons 40 Height) (cons 1 (rtos docao 2 2))))
      )
  (princ)
  )
(princ "\n              KangKung - 13/04/2013\n")
(princ "\n           Nhap KK de chay chuong trinh\n")

  • 1

#3 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 14 April 2013 - 12:57 AM

Thấy chưa có ai giúp nên post cái Lisp này lên cho bạn dùng thử:

http://www.cadviet.c...ghi_ra_text.lsp

Hướng dẫn: Ví dụ muốn đặt 2 đường đồng mức cùng có cao độ là 10 thì quét chọn cả 2 đường đồng mức đó luôn. Sau đó nhập độ cao đường đồng mức và chiều cao chữ. Cuối cùng chọn vị trí ghi Text. Khi nào không muốn ghi Text nữa thì chuột phải hoặc Enter hoặc Space.

;GAN CAO DO CHO DUONG DONG MUC VA GHI RA TEXT
;============KANGKUNG 13/04/2013=============
(defun C:kk( / index Height pt taphop)
  (setq taphop (ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (if (/= docao nil)
    (setq docao(read(lisped (rtos docao 2 2))))
    (setq docao(read(lisped "Nhap do cao duong dong muc vao day")))
    )
  (setq Height(getreal "\n Nhap chieu cao chu: "))
  (setq index 0)
  (while (< index (sslength taphop))
    (vla-put-elevation (vlax-ename->vla-object (ssname taphop index)) docao)
    (setq index (1+ index))
    )
  (while (setq pt(getpoint "\n Pick diem chen TEXT: " ))
      (entmake (list '(0 . "TEXT") (cons 10 pt) (cons 40 Height) (cons 1 (rtos docao 2 2))))
      )
  (princ)
  )
(princ "\n              KangKung - 13/04/2013\n")
(princ "\n           Nhap KK de chay chuong trinh\n")

tks bác kangkung đã giúp đỡ rất nhanh.lisp này dùng khá tốt, nhưng có thể nhờ bác sửa giúp em thêm 1 chút là khi chọn điểm chèn text cao độ thì mình pick vào đường đồng mức đó rồi nó chèn text song song với đường đmức mình vừa chọn và cách đường đmức 1 khoảng = 1/2 chiều cao text, ah thêm cái là đường đmức nào mình gán cao độ cho nó rồi thì nó sẽ đổi sang màu nào đó, ví dụ màu 2 chẳng hạn. thanks!


  • 1

#4 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 995 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 14 April 2013 - 02:02 AM

Gặp đúng chuyên gia có khác, gì cũng có. Trắc địa đi đâu cũng gặp. Hii.

 


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#5 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 14 April 2013 - 02:17 AM

Em ko phải dân trắc địa bác ợ, hii, bác có giúp dc em ko?


  • 0

#6 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 14 April 2013 - 04:42 PM

Lisp sửa theo yêu cầu của bạn đây: http://www.cadviet.c...a_text_rev1.lsp

Ghóp ý thêm một chút nhé:

1. Trong bản vẽ thường cỡ chữ dùng để ghi chú đồng mức được cố định nên bạn chỉ nhập lần đầu thôi, còn từ lần thứ 2 trở đi thì không cần phải nhập nữa. Nếu cỡ chữ thay đổi liên tục (cái này hơi hiếm) thì bạn cho mình biết để sửa lại code.

2. Khi bạn chọn điểm chèn thì không nhất thiết phải chọn chính xác vị trí trên đường đồng mức cần ghi. Cứ chọn gần đó thôi và Lisp sẽ ghi Text vào đường đồng mức gần nhất với khoảng cách bằng 1/2 cao chữ. Và để tránh trường hợp chữ ngược chữ xuôi theo hướng đi của đường đồng mức thì mình đặt Text luôn luôn ở bên phải của đường đồng mức và xoay chữ sao cho không bị ngược trên bản vẽ chuẩn North Up.

3. Thêm 1 tính năng nữa đó là tự động tính bước nhảy của đường đồng mức giữa 2 lần nhập liên tiếp. Ví dụ lần đầu tiên bạn nhập cao độ đường đồng mức là 2, lần thứ hai là 4 thì từ lần thứ 3 trở đi Lisp sẽ tự động điền giá trị độ cao là 6, 8, 10 .... vào ô nhập. Đồng ý thì chỉ việc nhấn OK, không thì nhập giá trị khác. Tuy nhiên nếu bạn thao tác một cách có quy luật thì không phải mất công nhập số từ bàn phím nhiều lần.

;GAN CAO DO CHO DUONG DONG MUC VA GHI RA TEXT
;=======KANGKUNG 14/04/2013 - REV1===========
(defun C:kk( / i index pt pt1 pt2 taphop lst huong)
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq taphop (ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (if (and (/= docao nil) (= (length list_caodo) 2))
    (setq docao(read(lisped (rtos (+ (- (nth 1 list_caodo) (nth 0 list_caodo)) docao) 2 2))))
    (if (/= docao nil)
      (setq docao(read(lisped (rtos docao 2 2))))
      (setq docao(read(lisped "Nhap do cao duong dong muc vao day")))
      )
    )
  (if (< (length list_caodo) 2)
    (setq list_caodo(append list_caodo (list docao)))
    (setq list_caodo(append (list (nth 1 list_caodo)) (list docao)))
    )
  (if (= Height nil)
    (setq Height(read(lisped "Nhap cao chu vao day")))
    )
  (setq index 0)
  (while (< index (sslength taphop))
    (vla-put-elevation (vlax-ename->vla-object (ssname taphop index)) docao)
    (vla-put-color (vlax-ename->vla-object (ssname taphop index)) 2)
    (setq index (1+ index))
    )
  (while (setq pt(getpoint "\n Pick diem chen TEXT: " ))
    (huongtext)
    (entmake (list '(0 . "TEXT") (cons 10 pt2) (cons 40 Height) (cons 1 (rtos docao 2 2)) (cons 50 huong)))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (princ)
  )
(defun huongtext()
  (setq i 0)
  (setq lst(list))
  (while (< i (sslength taphop))
    (setq dt(ssname taphop i))
    (setq pt1(vlax-curve-getClosestPointTo dt pt))
    (if (and (<= pi (angle pt1 pt)) (<= (angle pt1 pt) (* 2 pi)))
      (setq pt2(polar pt1 (angle pt pt1) (/ Height 2)))
      (setq pt2(polar pt1 (angle pt1 pt) (/ Height 2)))
      )
    (if (= (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) (vla-get-length (vlax-ename->vla-object dt)))
      (setq huong(angle ( vlax-curve-getPointAtDist dt (+ (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) -0.001)) (vlax-curve-getClosestPointTo dt pt) ))
      (setq huong(angle (vlax-curve-getClosestPointTo dt pt) ( vlax-curve-getPointAtDist dt (+ (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) 0.001))))
      )
    (if (and (> huong (/ pi 2)) (< huong (/ (* 3 pi) 2))) (setq huong(- huong pi)))
    (setq lst(append lst (list (list (distance pt pt1) huong pt2))))
    (setq i(1+ i))
    )
  (setq lst(vl-sort lst '(lambda (e1 e2) (< (car e1) (car e2)))))
  (setq huong(cadr(nth 0 lst)))
  (setq pt2(caddr(nth 0 lst)))
  )
(princ "\n              KangKung - 14/04/2013\n")
(princ "\n           Nhap KK de chay chuong trinh\n")

  • 2

#7 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 14 April 2013 - 11:04 PM

Lisp sửa theo yêu cầu của bạn đây: http://www.cadviet.c...a_text_rev1.lsp

Ghóp ý thêm một chút nhé:

1. Trong bản vẽ thường cỡ chữ dùng để ghi chú đồng mức được cố định nên bạn chỉ nhập lần đầu thôi, còn từ lần thứ 2 trở đi thì không cần phải nhập nữa. Nếu cỡ chữ thay đổi liên tục (cái này hơi hiếm) thì bạn cho mình biết để sửa lại code.

2. Khi bạn chọn điểm chèn thì không nhất thiết phải chọn chính xác vị trí trên đường đồng mức cần ghi. Cứ chọn gần đó thôi và Lisp sẽ ghi Text vào đường đồng mức gần nhất với khoảng cách bằng 1/2 cao chữ. Và để tránh trường hợp chữ ngược chữ xuôi theo hướng đi của đường đồng mức thì mình đặt Text luôn luôn ở bên phải của đường đồng mức và xoay chữ sao cho không bị ngược trên bản vẽ chuẩn North Up.

3. Thêm 1 tính năng nữa đó là tự động tính bước nhảy của đường đồng mức giữa 2 lần nhập liên tiếp. Ví dụ lần đầu tiên bạn nhập cao độ đường đồng mức là 2, lần thứ hai là 4 thì từ lần thứ 3 trở đi Lisp sẽ tự động điền giá trị độ cao là 6, 8, 10 .... vào ô nhập. Đồng ý thì chỉ việc nhấn OK, không thì nhập giá trị khác. Tuy nhiên nếu bạn thao tác một cách có quy luật thì không phải mất công nhập số từ bàn phím nhiều lần.

;GAN CAO DO CHO DUONG DONG MUC VA GHI RA TEXT
;=======KANGKUNG 14/04/2013 - REV1===========
(defun C:kk( / i index pt pt1 pt2 taphop lst huong)
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq taphop (ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (if (and (/= docao nil) (= (length list_caodo) 2))
    (setq docao(read(lisped (rtos (+ (- (nth 1 list_caodo) (nth 0 list_caodo)) docao) 2 2))))
    (if (/= docao nil)
      (setq docao(read(lisped (rtos docao 2 2))))
      (setq docao(read(lisped "Nhap do cao duong dong muc vao day")))
      )
    )
  (if (< (length list_caodo) 2)
    (setq list_caodo(append list_caodo (list docao)))
    (setq list_caodo(append (list (nth 1 list_caodo)) (list docao)))
    )
  (if (= Height nil)
    (setq Height(read(lisped "Nhap cao chu vao day")))
    )
  (setq index 0)
  (while (< index (sslength taphop))
    (vla-put-elevation (vlax-ename->vla-object (ssname taphop index)) docao)
    (vla-put-color (vlax-ename->vla-object (ssname taphop index)) 2)
    (setq index (1+ index))
    )
  (while (setq pt(getpoint "\n Pick diem chen TEXT: " ))
    (huongtext)
    (entmake (list '(0 . "TEXT") (cons 10 pt2) (cons 40 Height) (cons 1 (rtos docao 2 2)) (cons 50 huong)))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (princ)
  )
(defun huongtext()
  (setq i 0)
  (setq lst(list))
  (while (< i (sslength taphop))
    (setq dt(ssname taphop i))
    (setq pt1(vlax-curve-getClosestPointTo dt pt))
    (if (and (<= pi (angle pt1 pt)) (<= (angle pt1 pt) (* 2 pi)))
      (setq pt2(polar pt1 (angle pt pt1) (/ Height 2)))
      (setq pt2(polar pt1 (angle pt1 pt) (/ Height 2)))
      )
    (if (= (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) (vla-get-length (vlax-ename->vla-object dt)))
      (setq huong(angle ( vlax-curve-getPointAtDist dt (+ (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) -0.001)) (vlax-curve-getClosestPointTo dt pt) ))
      (setq huong(angle (vlax-curve-getClosestPointTo dt pt) ( vlax-curve-getPointAtDist dt (+ (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) 0.001))))
      )
    (if (and (> huong (/ pi 2)) (< huong (/ (* 3 pi) 2))) (setq huong(- huong pi)))
    (setq lst(append lst (list (list (distance pt pt1) huong pt2))))
    (setq i(1+ i))
    )
  (setq lst(vl-sort lst '(lambda (e1 e2) (< (car e1) (car e2)))))
  (setq huong(cadr(nth 0 lst)))
  (setq pt2(caddr(nth 0 lst)))
  )
(princ "\n              KangKung - 14/04/2013\n")
(princ "\n           Nhap KK de chay chuong trinh\n")

tuyệt vời. e cảm ơn bác kangkung rất rất nhiều nhé :) 


  • 0

#8 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 15 April 2013 - 11:58 AM

Lisp sửa theo yêu cầu của bạn đây: http://www.cadviet.c...a_text_rev1.lsp

Ghóp ý thêm một chút nhé:

1. Trong bản vẽ thường cỡ chữ dùng để ghi chú đồng mức được cố định nên bạn chỉ nhập lần đầu thôi, còn từ lần thứ 2 trở đi thì không cần phải nhập nữa. Nếu cỡ chữ thay đổi liên tục (cái này hơi hiếm) thì bạn cho mình biết để sửa lại code.

2. Khi bạn chọn điểm chèn thì không nhất thiết phải chọn chính xác vị trí trên đường đồng mức cần ghi. Cứ chọn gần đó thôi và Lisp sẽ ghi Text vào đường đồng mức gần nhất với khoảng cách bằng 1/2 cao chữ. Và để tránh trường hợp chữ ngược chữ xuôi theo hướng đi của đường đồng mức thì mình đặt Text luôn luôn ở bên phải của đường đồng mức và xoay chữ sao cho không bị ngược trên bản vẽ chuẩn North Up.

3. Thêm 1 tính năng nữa đó là tự động tính bước nhảy của đường đồng mức giữa 2 lần nhập liên tiếp. Ví dụ lần đầu tiên bạn nhập cao độ đường đồng mức là 2, lần thứ hai là 4 thì từ lần thứ 3 trở đi Lisp sẽ tự động điền giá trị độ cao là 6, 8, 10 .... vào ô nhập. Đồng ý thì chỉ việc nhấn OK, không thì nhập giá trị khác. Tuy nhiên nếu bạn thao tác một cách có quy luật thì không phải mất công nhập số từ bàn phím nhiều lần.

;GAN CAO DO CHO DUONG DONG MUC VA GHI RA TEXT
;=======KANGKUNG 14/04/2013 - REV1===========
(defun C:kk( / i index pt pt1 pt2 taphop lst huong)
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq taphop (ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (if (and (/= docao nil) (= (length list_caodo) 2))
    (setq docao(read(lisped (rtos (+ (- (nth 1 list_caodo) (nth 0 list_caodo)) docao) 2 2))))
    (if (/= docao nil)
      (setq docao(read(lisped (rtos docao 2 2))))
      (setq docao(read(lisped "Nhap do cao duong dong muc vao day")))
      )
    )
  (if (< (length list_caodo) 2)
    (setq list_caodo(append list_caodo (list docao)))
    (setq list_caodo(append (list (nth 1 list_caodo)) (list docao)))
    )
  (if (= Height nil)
    (setq Height(read(lisped "Nhap cao chu vao day")))
    )
  (setq index 0)
  (while (< index (sslength taphop))
    (vla-put-elevation (vlax-ename->vla-object (ssname taphop index)) docao)
    (vla-put-color (vlax-ename->vla-object (ssname taphop index)) 2)
    (setq index (1+ index))
    )
  (while (setq pt(getpoint "\n Pick diem chen TEXT: " ))
    (huongtext)
    (entmake (list '(0 . "TEXT") (cons 10 pt2) (cons 40 Height) (cons 1 (rtos docao 2 2)) (cons 50 huong)))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (princ)
  )
(defun huongtext()
  (setq i 0)
  (setq lst(list))
  (while (< i (sslength taphop))
    (setq dt(ssname taphop i))
    (setq pt1(vlax-curve-getClosestPointTo dt pt))
    (if (and (<= pi (angle pt1 pt)) (<= (angle pt1 pt) (* 2 pi)))
      (setq pt2(polar pt1 (angle pt pt1) (/ Height 2)))
      (setq pt2(polar pt1 (angle pt1 pt) (/ Height 2)))
      )
    (if (= (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) (vla-get-length (vlax-ename->vla-object dt)))
      (setq huong(angle ( vlax-curve-getPointAtDist dt (+ (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) -0.001)) (vlax-curve-getClosestPointTo dt pt) ))
      (setq huong(angle (vlax-curve-getClosestPointTo dt pt) ( vlax-curve-getPointAtDist dt (+ (vlax-curve-getDistAtPoint dt (vlax-curve-getClosestPointTo dt pt)) 0.001))))
      )
    (if (and (> huong (/ pi 2)) (< huong (/ (* 3 pi) 2))) (setq huong(- huong pi)))
    (setq lst(append lst (list (list (distance pt pt1) huong pt2))))
    (setq i(1+ i))
    )
  (setq lst(vl-sort lst '(lambda (e1 e2) (< (car e1) (car e2)))))
  (setq huong(cadr(nth 0 lst)))
  (setq pt2(caddr(nth 0 lst)))
  )
(princ "\n              KangKung - 14/04/2013\n")
(princ "\n           Nhap KK de chay chuong trinh\n")

Hề hề hề,

Bác KangKung cho hỏi thăm đường một chút.

Cái hàm (lisped .....) này có thể tham khảo ở đâu ạ.?? Mình tìm hoài trong help và help developer đều không thấy. mặc dầu khi xài thì thấy nó giống như cái lệng ddedit nhưng chưa hiểu rõ về nó lắm. Rất mong bác giải thích thêm. Xin chân thành cám ơn.


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#9 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 15 April 2013 - 12:17 PM

Tool express.


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#10 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 15 April 2013 - 12:49 PM

Tool express.

Hề hề hề,

Chào bác DoanVanHa, mình cũng đoán vậy và tìm rồi, nhưng chưa thấy lisp nào trong express tools có tên là lisped cả bác ạ. Chắc nó nằm trong một file nào đó mà mình mò chưa ra.

Hề hề hề,...


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#11 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 15 April 2013 - 12:51 PM

Tool express.

Hề hề hề,

Chào bác DoanVanHa, mình cũng đoán vậy và tìm rồi, nhưng chưa thấy lisp nào trong express tools có tên là lisped cả bác ạ. Chắc nó nằm trong một file nào đó mà mình mò chưa ra.

Hề hề hề,...


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#12 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 15 April 2013 - 01:46 PM

các bác có thể chỉnh sửa cái lisp này thêm 1 tí thế này nữa thì đúng ý em quá : khi nhập cao độ thì chỉ những cao độ chẵn như 1.00 hay 2.00 ... thì mới ghi text ra đầy đủ còn lẻ như 1.10 hay 1.20 1.30 ..vvv.. thì chỉ xuất text ra là .10  .20  .30 vvv... thôi thì tốt quá :) các bác giải quyết giúp em với nhé


  • 0

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 15 April 2013 - 01:57 PM

Hề hề hề,

Chào bác DoanVanHa, mình cũng đoán vậy và tìm rồi, nhưng chưa thấy lisp nào trong express tools có tên là lisped cả bác ạ. Chắc nó nằm trong một file nào đó mà mình mò chưa ra.

Hề hề hề,...

Xin lỗi bác Bình. Tôi nhầm hàm lisped với 1 hàm express khác. Còn hàm này nó nằm trong đây:

DCL: trong file "acad.dcl".

LSP: trong file "acad2007doc.lsp" (tương tự: acad2008doc.lsp, acad2009doc.lsp...).


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#14 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 15 April 2013 - 04:11 PM

@Luiz: Tìm trong Lisp đoạn code này (cons 1 (rtos docao 2 2)) và thay bằng đoạn code này (cons 1 (cond ((= (rem docao (fix docao)) 0) (rtos docao 2 2)) ((/= (rem docao (fix docao)) 0) (substr (rtos (rem docao (fix docao)) 2 2) 2)))).

Bác Phamthanhbinh: cái thằng LispEd  này thường dùng để Edit những đối tượng MText có ít hơn 80 kí tự bằng cách gán biến MTEXTED. Ví dụ:

(setvar "MTEXTED" ".LispEd"). Những đối tượng MText có ít hơn 80 kí tự khi được hiệu chỉnh sẽ hiện lên hộp thoại MText Editor, còn lớn hơn 80 kí tự thì sẽ hiện hộp thoại Edit Mtext như bình thường hoặc hiện cửa sổ Notepad nếu đặt biến MTEXTED thành ".LispEd#notepad". Muốn khôi phục chế độ như bình thường thì (setvar "MTEXTED" "")

 

(cons 1 (cond
 ((= (rem docao (fix docao)) 0) (rtos docao 2 2))
 
(cons 1 (cond
 ((= (rem docao (fix docao)) 0) (rtos docao 2 2))
 
(cons 1 (cond
 ((= (rem docao (fix docao)) 0) (rtos docao 2 2))
 
(cons 1 (cond
 ((= (rem docao (fix docao)) 0) (rtos docao 2 2))

  • 2

#15 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 15 April 2013 - 04:28 PM

Ngó sơ thì Duy hiểu dùng như sau:

(setq noidung (lisped "mac dinh"))


  • 0

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


#16 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 17 April 2013 - 12:10 PM

@Luiz: Tìm trong Lisp đoạn code này (cons 1 (rtos docao 2 2)) và thay bằng đoạn code này (cons 1 (cond ((= (rem docao (fix docao)) 0) (rtos docao 2 2)) ((/= (rem docao (fix docao)) 0) (substr (rtos (rem docao (fix docao)) 2 2) 2)))).

Bác Phamthanhbinh: cái thằng LispEd  này thường dùng để Edit những đối tượng MText có ít hơn 80 kí tự bằng cách gán biến MTEXTED. Ví dụ:

(setvar "MTEXTED" ".LispEd"). Những đối tượng MText có ít hơn 80 kí tự khi được hiệu chỉnh sẽ hiện lên hộp thoại MText Editor, còn lớn hơn 80 kí tự thì sẽ hiện hộp thoại Edit Mtext như bình thường hoặc hiện cửa sổ Notepad nếu đặt biến MTEXTED thành ".LispEd#notepad". Muốn khôi phục chế độ như bình thường thì (setvar "MTEXTED" "")

 

(cons 1 (cond
 ((= (rem docao (fix docao)) 0) (rtos docao 2 2))
 
(cons 1 (cond
 ((= (rem docao (fix docao)) 0) (rtos docao 2 2))
 
(cons 1 (cond
 ((= (rem docao (fix docao)) 0) (rtos docao 2 2))
 
(cons 1 (cond
 ((= (rem docao (fix docao)) 0) (rtos docao 2 2))

bác ơi em thay đoạn code như bác nói thì ko xuất ra text đc nữa. bác xem lại giúp em với nhé


  • 0

#17 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 17 April 2013 - 01:27 PM

bác ơi em thay đoạn code như bác nói thì ko xuất ra text đc nữa. bác xem lại giúp em với nhé

Thử cái này đi : http://www.cadviet.c...a_text_rev2.lsp


  • 1

#18 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 17 April 2013 - 10:53 PM

Thử cái này đi : http://www.cadviet.c...a_text_rev2.lsp

tuyệt quá bác kangkung ơi, thanks bác nhiều :)


  • 0

#19 phandanghoa

phandanghoa

    biết vẽ arc

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

Đã gửi 09 July 2015 - 03:30 PM

có cái lisp nào nâng đều hoặc hạ đều elevation của đường polyline không các bác


  • 0

#20 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 09 July 2015 - 03:50 PM

có cái lisp nào nâng đều hoặc hạ đều elevation của đường polyline không các bác

Hề hề hề,

bạn định nghĩa cái việc nâng đều và hạ đều này đi nhé. Do không phải dân chuyên ngành nên nếu bạn dùng các từ chuyên môn đặc biệt sẽ hơi bị khó hiểu. Tốt nhất là bạn nên cho một ví dụ cụ thể. Khi đã hiểu thì có nhẽ việc thực hiện nó sẽ thuận lợi hơn.

hề hề hề


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.