明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1977|回复: 16

[提问] 请大家帮我看看这段程序 自动图框

[复制链接]
发表于 2016-10-10 17:12:54 | 显示全部楼层 |阅读模式
(defun c:hk()
   (setq mylayer (getvar "clayer"))
   (setq layname1 (substr mylayer 1 2))
   (setq layname2 (strcat layname1 "dim"))
   (if(setq ed1 (tblsearch "LAYER" layname2))
     (progn
       (setq ed2 (cdr (assoc 70 ed1)))
       (cond
         ((= ed2 0)  (command "layer" "on" layname2 ""))
         ((= ed2 1)  (command "layer" "t" layname2 "on" layname2 ""))
         ((= ed2 4)  (command "layer" "u" layname2 "on" layname2 ""))
         ((= ed2 5)  (progn (command "layer" "t"  str3 "u" layname2 "on" layname2 "")))
       )
    )   
    (setq layname2 "dim")
   )
   (command "layer" "s" layname2 "")
   (setq pt1 (getpoint "图形左上角:\n"))
   (setq pt2 (getcorner pt1 "图形右下角:\n"))
   (setq disx (abs (- (car pt1) (car pt2))))
   (setq disy (abs (- (cadr pt1) (cadr pt2))))
   (setq acx  (/ disx 780.00))
   (setq acy  (/ disy 500.00))
   (if (> acy acx)
       (setq acx acy)
   )
    (setq acx (*  (fix (+ (* acx 10) 0.9999)) 0.1))
   (setq acc (rtos acx 2 1))
   (setq pt0 (list (/ (+ (car pt1 ) (car pt2) (* (- 0 8) acx)) 2.00)
                   (/ (+ (cadr pt1) (cadr pt2) (* (- 0 23.6) acx)) 2.00)))
   (setq os (getvar "osmode"))
   (setvar "osmode" 0)
   (command "insert"  "HK.dwg" pt0 "x" acx "" acc "")
   (setvar "osmode" os)
)


HK.dwg文件中,图框的图形在dim层,图框的图形写的块也在dim层,  块名为:HK

程序挂再到cad上运行报错,无法调出图框图形:
                                                                     命令: 图形左上角:
                                                                     图形右下角:
                                                                     insert 输入块名或 [?]: HK.dwg 块 HK 参照本身
                                                                    *无效*
                                                                    ; 错误: 函数被取消

请问HK.dwg文件中还有哪些元素要与程序中的元素匹配?谢谢大家。。
发表于 2016-10-11 16:22:08 | 显示全部楼层

程序挂再到cad上运行报错,无法调出图框图形:
                                                                     命令: 图形左上角:
                                                                     图形右下角:
                                                                     insert 输入块名或 [?]: HK.dwg 块 HK 参照本身
                                                                    *无效*
                                                                    ; 错误: 函数被取消

参照本身,HK里面是个块?你炸了pu一下保存再试试
发表于 2016-10-12 09:14:19 | 显示全部楼层

可以用啊,不过坐标好像不对属性值也没有,要手动输


命令: hk layer
当前图层:  dim
输入选项
[?/生成(M)/设置(S)/新建(N)/重命名(R)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/透明度(TR)/材质(MAT)/打印(P
)/冻结(F)/解冻(T)/锁定(LO)/解锁(U)/状态(A)/说明(D)/协调(E)]: s
输入要置为当前的图层名或 <选择对象>: dim 输入选项
[?/生成(M)/设置(S)/新建(N)/重命名(R)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/透明度(TR)/材质(MAT)/打印(P
)/冻结(F)/解冻(T)/锁定(LO)/解锁(U)/状态(A)/说明(D)/协调(E)]:
命令: 图形左上角:
图形右下角:
-insert 输入块名或 [?] <HK>: HK.dwg
单位: 毫米   转换:       1.0
指定插入点或 [基点(B)/比例(S)/X/Y/Z/旋转(R)]:
输入 X 比例因子,指定对角点,或 [角点(C)/XYZ(XYZ)] <1>: x 指定 X 比例因子或 [角点(C)] <1>:
2.600000000000000 输入 Y 比例因子或 <使用 X 比例因子>: 指定 Z 比例因子或 <使用 X 比例因子>: 2.6
指定旋转角度 <0>:
输入属性值
A <A>: 15359
A <A>:
00.00.00 <00.00.00>:
0:0 <0:0>:
00/00 <00/00>:
0000000000 <0000000000>:
±0.000 <±0.000>:
00000-000-0 <00000-000-0>:

验证属性值
A <A>:
00.00.00 <00.00.00>:
0:0 <0:0>:
00/00 <00/00>:
0000000000 <0000000000>:
±0.000 <±0.000>:
00000-000-0 <00000-000-0>:


 楼主| 发表于 2016-10-12 21:16:51 | 显示全部楼层
本帖最后由 皇上快溜 于 2016-10-12 21:22 编辑
Sylvanas 发表于 2016-10-12 16:11
就是你发的那个文件,能插入

谢谢你多次指点,仍有些问题想请你求教,套出来的图框不对中。。。总是有点偏,不知道程序中是如何对应插入基准点的

我将 (setq acx  (/ disx 780.00))
       (setq acy  (/ disy 500.00))

改成为 (setq acx  (/ disx 297.00))
       (setq acy  (/ disy 210.00))

对应HK.dwg图形中的实际尺寸
  
后面的这些不知什么意思
  (if (> acy acx)
        (setq acx acy)
    )
     (setq acx (*  (fix (+ (* acx 10) 0.9999)) 0.1))
    (setq acc (rtos acx 2 1))
    (setq pt0 (list (/ (+ (car pt1 ) (car pt2) (* (- 0 8) acx)) 2.00)
                    (/ (+ (cadr pt1) (cadr pt2) (* (- 0 23.6) acx)) 2.00)))
想请你帮忙改一下,实现对中。

文件HK.dwg的基准点如图中所示

此外,现在套出来的图框紧贴着
   (setq pt1 (getpoint "图形左上角:\n"))
    (setq pt2 (getcorner pt1 "图形右下角:\n"))
围成的矩形框,须人工再次调整图框大小,不知道这个比例在程序中那个位置调整?
 楼主| 发表于 2016-10-11 15:58:40 | 显示全部楼层
那位帮忙指点一下啊,谢谢
发表于 2016-10-11 16:13:48 | 显示全部楼层
HK.dwg不在搜索路径?
 楼主| 发表于 2016-10-11 16:15:46 | 显示全部楼层
Sylvanas 发表于 2016-10-11 16:13
HK.dwg不在搜索路径?

在在搜索路径的
 楼主| 发表于 2016-10-11 16:28:52 | 显示全部楼层
Sylvanas 发表于 2016-10-11 16:22
程序挂再到cad上运行报错,无法调出图框图形:
                                                       ...

任然不行,能否麻烦你帮我试试?谢谢
 楼主| 发表于 2016-10-12 14:52:10 | 显示全部楼层
Sylvanas 发表于 2016-10-12 09:14
可以用啊,不过坐标好像不对属性值也没有,要手动输

你好,请问是否HK.dwg有什么不妥?我怎么试都没成
发表于 2016-10-12 16:11:56 | 显示全部楼层
皇上快溜 发表于 2016-10-12 14:52
你好,请问是否HK.dwg有什么不妥?我怎么试都没成

就是你发的那个文件,能插入
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 05:05 , Processed in 0.208504 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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