找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1043|回复: 5

[LISP程序]:lsp程序-好用

[复制链接]

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-2-12 22:25:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. ;;;;======================================================================
  2. ;;;;项目名:电气软件
  3. ;;;;程序名:定义派生符号文字位置
  4. ;;;;文件名:T-Dyfhk.Lsp
  5. ;;;;函数名:c:Dyfhk
  6. ;;;;功  能:定义派生符号文字位置
  7. ;;;;输  入:无
  8. ;;;;输  出:无用
  9. ;;;;作  者:方祥军
  10. ;;;;时  间:1998.10.27
  11. ;;;;======================================================================
  12. (defun c:Dyfhk( / str_n ent en e10 e40 e50 e41 e42 e2 pbz pbz1
  13.                  xryr xr yr blh blx bly zh str hh x y aa a b c d1 d lna
  14.                  ang errold i loop)
  15. (setq errold *error* )

  16. ;;{Dyfhk子函数开始---------------------------------------------
  17. ;;-------------------------------------------------------
  18. ;;函数名:*error*
  19. ;;功  能:error函数
  20. ;;-------------------------------------------------------
  21. (defun *error*(msg /  )
  22.   (foreach each '(str_n ent en e10 e40 e50 e41 e42 e2 pbz pbz1
  23.                  xryr xr yr blh blx bly zh str hh x y aa a b c d1 d lna
  24.                  ang errold i loop)
  25.    (set each nil)
  26.   )
  27.   (setq *error* errold errold nil)
  28.   (redraw)  
  29.   (_resdwg)
  30.   (princ)
  31. )
  32. ;;}Dyfhk子函数结束---------------------------------------------

  33. ;;{dyfhk主函数开始---------------------------------------------
  34. (if (= (ISFUNRUN) nil)(exit))
  35. (princ "\n*派生符号位置定义*=Dyfhk")
  36. (_inidwg)  
  37. (setvar"cmdecho"0)
  38. (setvar"osmode"0)
  39.   (setq lna '() i 0)
  40. (setq aa (xgetin "IdqMain" "IdqSys" "C:\\Idq30" 1))
  41. (setq aa (strcat aa "\\Datcom\\Fhklib.Idp"))
  42. (setq loop 1)
  43. (while loop
  44.    (setq ent (xentsl "\n请选择需定义标注位置的设备<回车结束>:" (list (cons 0 "insert"))))

  45.    (if (= (type ent) 'LIST)
  46.      (progn
  47.            (setq ent (car ent))
  48.      (setq en (entget ent))
  49.      (setq e10(cdr (assoc 10 en)) e41(cdr (assoc 41 en)) e42(cdr (assoc 42 en))
  50.       e50(cdr (assoc 50 en)) e2(cdr (assoc 2 en)))
  51.        (if (> (_Sestr "--C" e2) 0)(setq e2 (car (_getnB e2 "--C"))))
  52.         ;Luxiang add,When Select block as "0114_1",change block name as "0114".
  53.         (setq str_n (substr e2 (- (strlen e2) 1) (strlen e2)))
  54.       (if (or (= str_n "_1") (= str_n "_2") (= str_n "_3") (= str_n "_4"))
  55.               (setq e2 (substr e2 1 (- (strlen e2) 2)))
  56.           )
  57.         (if (= (member e2 lna) nil)
  58.         (progn
  59.          (setq lna (cons e2 lna))
  60.      (setvar "blipmode" 1)
  61.      (setq pbz (getpoint e10 "\n请确定标注点(或直接输入距插入点的相对坐标)<回车结束>:"))
  62.      (if pbz
  63.          (progn
  64.      (setq ang(angle e10 pbz))
  65.      (setq ang (- ang e50))
  66.      (setq pbz1 (distance2p e10 pbz))
  67.      (setq xr (/ (* pbz1 (cos ang)) e41 ) yr(/ (* pbz1 (sin ang)) e42))
  68.      ;(setq pbz1 (polar e10 (- 0.0 e50) (distance2p e10 pbz)))
  69.     ; (setq xryr (list  (/ (- (car pbz) (car e10)) e41)
  70.     ;                   (/ (- (cadr pbz) (cadr e10)) e42)
  71.     ; )          )
  72.     ; (setq xr (car xryr) yr(cadr xryr))
  73.      (setq blh(strcat e2 "\\Hei"))
  74.      (setq blx(strcat e2 "\\X"))
  75.      (setq bly(strcat e2 "\\Y"))
  76.      (setq zh(xgetps "Tkdata\\Dyfhk\\Wzgd" "2.5"))
  77.      (if zh
  78.         (setq str (strcat "\n请输入派生符号的文字高度<" zh ">:"))
  79.         (progn (setq zh "2.5")
  80.           (setq str "\n请输入派生符号的文字高度<2.5>:")
  81.         )
  82.     )
  83.      (initget (+ 2 4))
  84.      (setq hh(getreal  str))
  85.      (if (not hh)
  86.          (setq hh zh)
  87.          (setq hh(rtos hh 2))
  88.      )
  89.      (setq x(rtos xr 2))
  90.      (setq y(rtos yr 2))
  91.      (setq a(xsetps blh hh aa))
  92.      (setq b(xsetps blx x aa))
  93.      (setq c(xsetps bly y aa))
  94.      (setq d(xsetps "Tkdata\\Dyfhk\\Wzgd" hh))   
  95.         )
  96.         (setq loop nil)
  97.         );;;;;lx;
  98.         )
  99.         )
  100.         (setq i (+ i 1))
  101.   )
  102.   (setq loop nil)
  103.   )        ;if (type ...) ends
  104. );;;while ends
  105. (setq *error* errold errold nil)
  106. (_resdwg)
  107. (princ)
  108. )
  109. ;;}Dyfhk主函数结束---------------------------------------------

  110. (Setfunhelp "C:Dyfhk" "Idq30.hlp" "ID_TPsfhF")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-2-12 23:08:16 | 显示全部楼层
函数_resdwg未定义!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-15 23:05:05 | 显示全部楼层
就是不知道怎么用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-4 09:39:40 | 显示全部楼层
太复杂了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-4 15:23:39 | 显示全部楼层
最后贴个图并给予说明。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 171个

财富等级: 日进斗金

发表于 2006-3-23 03:45:42 | 显示全部楼层
电气的我不会了!不过还是版主有心!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 00:41 , Processed in 0.282481 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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