EDA365电子论坛网

标题: 震惊,AI会写这个。。。。 [打印本页]

作者: 陛下万年    时间: 2025-3-21 10:49
标题: 震惊,AI会写这个。。。。
;;; CHCD Skill Script for Checking Distances
;;; Version: 1.0
;;; Author: [Your Name]

;; 定义快捷键CHCD
(axlDefineCommand 'CHCD "Check Distances" 'CheckDistances)

;; 检查间距的主函数
(defun CheckDistances ()
  (let ((min-distance 0.1)) ;; 最小允许间距,单位:毫米
    ;; 获取所有对象
    (setq objects (get-all-objects))

    ;; 检查Assembly_top与Assembly_Top的间距
    (check-distance-between-layers 'Assembly_top 'Assembly_Top min-distance)

    ;; 检查Assembly_top与Silkscreen_Top的间距
    (check-distance-between-layers 'Assembly_top 'Silkscreen_Top min-distance)

    ;; 检查Silkscreen_Top与Silkscreen_Top的间距
    (check-distance-between-layers 'Silkscreen_Top 'Silkscreen_Top min-distance)

    ;; 检查Silkscreen_Top与Soldermask_Top的间距
    (check-distance-between-layers 'Silkscreen_Top 'Soldermask_Top min-distance)

    ;; 输出结果
    (message "检查完成!")
))

;; 检查两层之间间距的函数
(defun check-distance-between-layers (layer1 layer2 min-distance)
  (let ((objects1 (get-objects-on-layer layer1))
        (objects2 (get-objects-on-layer layer2)))
    (foreach obj1 objects1
      (foreach obj2 objects2
        (if (and obj1 obj2)
            (let ((distance (calculate-distance obj1 obj2)))
              (if (< distance min-distance)
                  (progn
                    (message (str "警告:层" layer1 "和层" layer2 "之间的间距过小,距离为" distance "毫米"))
                    ;; 可选:突出显示间距过小的对象
                    (highlight-objects obj1 obj2)))))))
))

;; 计算两个对象之间的距离
(defun calculate-distance (obj1 obj2)
  ;; 实现具体的距离计算逻辑
  ;; 这里假设使用欧几里得距离
  (let ((x1 (get-object-x obj1))
        (y1 (get-object-y obj1))
        (x2 (get-object-x obj2))
        (y2 (get-object-y obj2)))
    (sqrt (+ (* (- x2 x1) (- x2 x1)) (* (- y2 y1) (- y2 y1))))))

;; 突出显示对象
(defun highlight-objects (obj1 obj2)
  ;; 实现突出显示逻辑
  (change-object-color obj1 'red)
  (change-object-color obj2 'red))

;; 加载脚本
(load "CHCD_Skill_script")


作者: 陛下万年    时间: 2025-3-21 10:50
要怎样修改才能在allegro 运行呀,大佬们
作者: Dc202308315a    时间: 2025-3-21 16:58
你就听他忽悠你吧,哈哈哈。会编造不存在的函数。
作者: 陛下万年    时间: 2025-3-24 15:53
Dc202308315a 发表于 2025-3-21 16:58
你就听他忽悠你吧,哈哈哈。会编造不存在的函数。

有大佬说let括号里面的有问题   要怎么改呢

作者: 雞翅加辣    时间: 2025-3-24 18:13
let((參數a)
參數a
)你要使用參數a就要在紫色括號內~ 你修一修試試看!

作者: 陛下万年    时间: 2025-3-25 09:29
雞翅加辣 发表于 2025-3-24 18:13
let((參數a)
參數a
)你要使用參數a就要在紫色括號內~ 你修一修試試看!

感谢您的回答!好的,我试试看!

作者: digitzing    时间: 2025-3-26 15:06
AI没有针对skill 做优化的,都是乱编的
作者: 雞翅加辣    时间: 2025-3-26 16:03
陛下万年 发表于 2025-3-25 09:29
感谢您的回答!好的,我试试看!

但我得提醒你,ai目前給你的基本上是不能用....
但他能提供給妳思維而已



作者: penny190    时间: 2025-4-23 16:28
試了一整天,完全失敗
作者: 陛下万年    时间: 2025-4-23 17:33
penny190 发表于 2025-4-23 16:28
試了一整天,完全失敗

哈哈哈。。。因为我们不懂所以出问题,现在我找到了个skill可以实现上面的要求,单位是mils,你要的话我可以上传文件给你





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2