harshad 发表于 2022-7-6 17:30:16

块Co或需要Autolisp

大家好早上好:)
我希望我的工作尽快完成,所以我需要你的帮助。我有一个矩形的基础块
我把它和边界@4.572 c/c放在一起,做邻接角和边
我想要5个点,该基脚的x和y坐标1)基脚中心坐标2)点a
3) 点b 3)点c 4)点d和该输出
以excle格式列出,我附上了dwg u研究它
如果有任何程序或AUTOLISP通过按顺序选择基脚来在excel中提供所有五个坐标
我还附加了excel文件输出,应该与excel类似
尽你最大的努力,请做到这一点
谢谢
哈什哈德:)
SAM.zip

borgunit 发表于 2022-7-6 17:41:42

只是一张纸条。如果您有一个插入点,并且知道基础块的大小和旋转,您可以使用数学来计算这些点。

harshad 发表于 2022-7-6 17:50:20

没有人能做到这一点

borgunit 发表于 2022-7-6 18:10:07

你是在写代码还是在找人帮你做这项工作?

ASMI 发表于 2022-7-6 18:10:32

我认为很多人都能写这样的代码,一个简单、无聊的代码。
没有人希望它写下来,花15分钟。。。试试看,你会发现*。与图形位于文件夹中的同名csv文件。在MS Excel中打开它。。。
 
(defun c:bord(/ oldI cBl cDxf iPt rAn cStr fVar
      pt1 pt2 pt3 pt4 *error*)

(defun *error*(msg)
   (if fVar(close fVar))
   (princ)
   ); end of *error*

(if(not bord:i)(setq bord:i 1))
(setq oldI bord:i
       bord:i(getint
   (strcat "\nSpecify first number <"
           (itoa bord:i) ">: "))
fVar(open(strcase(strcat(getvar "DWGPREFIX")
                       (getvar "DWGNAME") ".csv")) "a")
); end setq
(if(null bord:i)(setq bord:i oldI))
(while T
   (if
   (and
       (setq cBl(entsel(strcat "\nPick foot <"
                        (itoa bord:i) "> or Esc to Quit > ")))
       (equal(cons 2 "FOOTING TYPE-1")
       (assoc 2(setq cDxf(entget(car cBl)))))
); end and
   (progn
(setq iPt(cdr(assoc 10 cDxf))
      rAn(cdr(assoc 50 cDxf))
      pt1(polar iPt(+ rAn(angtof "120.4655449167164" 0)) 0.9861541463877346)
      pt2(polar iPt(+ rAn(angtof "59.53445509597224" 0)) 0.9861541463877346)
      pt3(polar iPt(+ rAn(angtof "300.4655449294050" 0)) 0.9861541463877346)
      pt4(polar iPt(+ rAn(angtof "239.5344550891135" 0)) 0.9861541463877346)
      cStr(strcat(itoa bord:i)
               ";" (rtos(car iPt)2 4) ";" (rtos(cadr iPt)2 4)
               ";" (rtos(car pt1)2 4) ";" (rtos(cadr pt1)2 4)
               ";" (rtos(car pt2)2 4) ";" (rtos(cadr pt2)2 4)
               ";" (rtos(car pt3)2 4) ";" (rtos(cadr pt3)2 4)
               ";" (rtos(car pt4)2 4) ";" (rtos(cadr pt4)2 4)
          ); end strcat
      bord:i(1+ bord:i)
      ); end setq
(write-line cStr fVar)
); end progn
   (princ "\n<!>This isn't 'FOOTING TYPE-1' block <!> ")
   ); end if
   ); end while
(princ)
); end of c:bord

fixo 发表于 2022-7-6 18:22:47

我的2美分
 
~'J'~
fot。拉链

harshad 发表于 2022-7-6 18:37:16

首先谢谢你,我检查并告诉你
 
 
谢谢
哈沙德
页: [1]
查看完整版本: 块Co或需要Autolisp