这个改写的视口比例编辑程序源码太好用了,感谢`中微子支持,AI改写!
本帖最后由 ld80721 于 2024-5-27 23:20 编辑chat GPT 写的视口比例编辑程序源码,加载无效,请高手指教!
人工智能问题还是我的问题,哈哈!
(defun c:skbl () ;; Short for Set Viewport Scale
(setq vp (car (entsel "\n选择一个视口: "))) ;; 选择视口
(if (and vp (eq (cdr (assoc 0 (entget vp))) "VIEWPORT")) ;; 检查对象是否为视口
(progn
;; 获取并显示当前视口比例
(setq vpScale (cdr (assoc 41 (entget vp))))
(princ (strcat "\n当前视口比例: 1/" (rtos (/ 1 vpScale) 2 4)))
;; 提示输入新比例
(setq newScale (getreal "\n输入新的视口比例 (例如 50 代表 1/50): "))
;; 如果输入有效,设置新的比例
(if newScale
(progn
;; 通过选择视口并缩放视图来设置新比例
(command "_.MVIEW" "S" vp)
(command "_.ZOOM" (strcat "1/" (rtos newScale 2 4) "xp"))
(princ (strcat "\n视口比例已设置为: 1/" (rtos newScale 2 4)))
)
(princ "\n无效的输入。")
)
)
(princ "\n选择的对象不是视口。")
)
(princ)
)
改好了.只要用.
(defun c:skbl( / vp ent vpScale newScale )
;; Short for Set Viewport Scale
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(vla-put-mspace doc :vlax-false)
(setq vp(car (entsel "\n选择一个视口: "))
ent (entget vp)
)
(if (eq (cdr (assoc 0 ent)) "VIEWPORT")
(progn
(setq vpScale (/ (cdr (assoc 45 ent)) (cdr (assoc 41 ent))))
(princ (strcat "\n当前视口比例: 1/" (rtos vpScale)))
(setq newScale (getreal "\n输入新视口的比例 (例如 50 代表 1/50): "))
(if newScale
(progn
(vla-put-mspace doc :vlax-true)
(vla-put-activepviewport doc (vlax-ename->vla-object vp))
(command "_.zoom" (strcat "1/" (rtos newScale) "xp") "_.PSPACE")
(princ (strcat "\n视口比例已设置为: 1/" (rtos newScale)))
)
(princ "\n无效的输入")
)
)
(princ "\n选择的对象不是视口")
)
(princ)
)
很好→很棒!很好~很棒!!很好……很棒!!! `中微子 发表于 2024-5-23 01:09
改好了.只要用.
(defun c:skbl( / vp ent vpScale newScale )
;; Short for Set Viewport Scale
...
cad2007提示:命令: skbl 未知命令“SKBL”。按 F1 查看帮助。 本帖最后由 ld80721 于 2024-5-24 19:17 编辑
经过训练GPT 一起测试成功,这是他修正的程序!附:GPT测试截图。
(defun c:skbl ()
;; 获取当前文档对象
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
;; 切换到布局空间
(command "._PSPACE")
;; 提示用户选择一个实体
(setq vp (car (entsel "\n选择一个视口: ")))
(setq ent (entget vp))
;; 从实体列表中获取实体的类型
(setq entType (cdr (assoc 0 ent)))
;; 检查所选实体是否为视口
(if (eq entType "VIEWPORT")
(progn
;; 如果是视口,计算当前视口比例
(setq vpScale (/ (cdr (assoc 45 ent)) (cdr (assoc 41 ent))))
(alert (strcat "Current viewport scale: 1/" (rtos vpScale)))
;; 提示用户输入新的视口比例
(setq newScale (getreal "\n输入新视口的比例 (例如 50 代表 1/50): "))
(if newScale
(progn
;; 如果用户输入了有效的比例,将其应用到视口中
(vla-put-mspace doc :vlax-true)
(vla-put-activepviewport doc (vlax-ename->vla-object vp))
(command "_.zoom" (strcat "1/" (rtos newScale) "xp") "_.PSPACE")
(alert (strcat "New viewport scale: 1/" (rtos newScale)))
)
;; 如果用户输入无效,输出错误信息
(alert "Invalid input")
)
)
;; 如果不是视口,输出错误信息
(alert "Selected entity is not a VIEWPORT")
)
)
现在的AI也需要自己会一些有些错误 改正需要你喂给他否则 就会写的乱七八糟然后越改越烂 谢谢大佬分享 之前我让文心写,写了不能直接用,我也看不懂,就死结了 只能改一个视口的比例么,能不能批量选中多个视口的比例都改了 AI越来越厉害了
页:
[1]
2