明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1384|回复: 1

[求助]请教这是为什么呢?多多帮助。

[复制链接]
发表于 2003-9-19 17:28:00 | 显示全部楼层 |阅读模式
(defun c:uxing()
  (setq s (ssget))
  (setq num (sslength s))
  (setq n 0)
  (setq ilistx nil)
  (setq ilisty nil)
  (repeat num
    (setq llast (ssname s n))
    (if (= (ascii(cdr(assoc 0 (entget llast))))(ascii "LWPOLYLINE"))
     (progn
     (jx llast)
     (setq ilistx (cons  ix ilistx))
     (setq ilisty (cons  iy ilisty))
     )
    )
   )
  )
   (defun jx(as /)
   (princ "請選取一個矩形吧:")
  ;(SETQ AS (car A))
(setq ac (ENTGET AS))
;(setq AF (CDR (ASSOC 10 Ac)))
  (setq n 0)
  (setq sidian nil)
  (while (setq pand (assoc 10 ac))
    (progn
      (setq jieduan (member pand ac))
      (setq one (cdr pand))
      (setq ac (cdr jieduan))
      (setq sidian (cons one sidian))
      )
    )
  ;;;;;;  get the resault   H  AND  B
  ;(if(eq (caar sidian)
  ;
  (setq n 1)
  ;(setq h  sidian)
  (repeat (- (length sidian) 1)
   (setq num (nth n sidian))
    (if (= (caar sidian) (car num))
      (setq h (abs(- (cadar sidian)(cadr num))))
      )
      ;(setq h1 (distance (car sidian) num))
      ;;(setq h1 (abs(- (rtos(cdr one))(rtos (cdr num)))))
      (if (= (car(cdr(car sidian))) (cadr num))
      (setq b (abs(- (caar sidian)(car num))))
        )
    (setq n (1+ n))
    )
  ;/*(setq f  sidian)
;  (setq n 1)
; (repeat (- (length sidian) 1)
;    (setq num (nth n f))
;   (if (= (cadar sidian) (cadr num))
  ;    (setq b (abs(- (caar sidian)(car num))))
      ;(setq b1 (distance (car sidian) num))
   ;   )
; (setq n (1+ n))
  ;  )
  ;(SETQ b (distance one tow)) ;; ; 這是矩形的長度
  ;(setq h (distance one fou)) ;; ; 這是矩形的寬度
  (princ(strcat "\n""矩形的X跨度:"(rtos b)"\n"))
  (princ(strcat "矩形的Y跨度:"(rtos h)"\n"))
  (princ "\n")
  ;(princ h1)
  ;(princ (strcat"
;;;;(princ "矩形的長度="  (rtos b)))
; (princ (strcat"
;;;(princ "矩形的宽度="  (rtos h)))
  (setq ix (/(* (* h h h) b)12))
  (setq iy (/(* (* b b b) h)12))
  (princ(strcat"惯性矩的值: X:" (rtos ix)"\n"))
  (princ(strcat"惯性矩的值: Y:" (rtos iy)"\n"))
)
 楼主| 发表于 2003-9-19 17:29:00 | 显示全部楼层
(= (ascii(cdr(assoc 0 (entget llast))))(ascii "LWPOLYLINE"))
问该判别式只能对矩形符合条件。能够计算惯性矩,怎么多义线不能够正确计算返回 0呢
请查看以下程序是否有误
(defun c:uxing()
  (setq s (ssget))
  (setq num (sslength s))
  (setq n 0)
  (setq ilistx nil)
  (setq ilisty nil)
  (repeat num
    (setq llast (ssname s n))
    (if (= (ascii(cdr(assoc 0 (entget llast))))(ascii "LWPOLYLINE"))
     (progn
     (jx llast)
     (setq ilistx (cons  ix ilistx))
     (setq ilisty (cons  iy ilisty))
     )
    )
   )
  )
   (defun jx(as /)
   (princ "請選取一個矩形吧:")
  ;(SETQ AS (car A))
(setq ac (ENTGET AS))
;(setq AF (CDR (ASSOC 10 Ac)))
  (setq n 0)
  (setq sidian nil)
  (while (setq pand (assoc 10 ac))
    (progn
      (setq jieduan (member pand ac))
      (setq one (cdr pand))
      (setq ac (cdr jieduan))
      (setq sidian (cons one sidian))
      )
    )
  ;;;;;;  get the resault   H  AND  B
  ;(if(eq (caar sidian)
  ;
  (setq n 1)
  ;(setq h  sidian)
  (repeat (- (length sidian) 1)
   (setq num (nth n sidian))
    (if (= (caar sidian) (car num))
      (setq h (abs(- (cadar sidian)(cadr num))))
      )
      ;(setq h1 (distance (car sidian) num))
      ;;(setq h1 (abs(- (rtos(cdr one))(rtos (cdr num)))))
      (if (= (car(cdr(car sidian))) (cadr num))
      (setq b (abs(- (caar sidian)(car num))))
)
    (setq n (1+ n))
    )
  ;/*(setq f  sidian)
;  (setq n 1)
; (repeat (- (length sidian) 1)
;    (setq num (nth n f))
;   (if (= (cadar sidian) (cadr num))
  ;    (setq b (abs(- (caar sidian)(car num))))
      ;(setq b1 (distance (car sidian) num))
   ;   )
; (setq n (1+ n))
  ;  )
  ;(SETQ b (distance one tow)) ;; ; 這是矩形的長度
  ;(setq h (distance one fou)) ;; ; 這是矩形的寬度
  (princ(strcat "\n""矩形的X跨度:"(rtos b)"\n"))
  (princ(strcat "矩形的Y跨度:"(rtos h)"\n"))
  (princ "\n")
  ;(princ h1)
  ;(princ (strcat"
;;;;(princ "矩形的長度="  (rtos b)))
; (princ (strcat"
;;;(princ "矩形的宽度="  (rtos h)))
  (setq ix (/(* (* h h h) b)12))
  (setq iy (/(* (* b b b) h)12))
  (princ(strcat"惯性矩的值: X:" (rtos ix)"\n"))
  (princ(strcat"惯性矩的值: Y:" (rtos iy)"\n"))
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-2 16:21 , Processed in 0.168983 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表