明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1507|回复: 5

[求助][LISP][求助]急!!!!用lisp怎么样实现方向的变换等问题?

[复制链接]
发表于 2004-10-22 22:16 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2004-10-28 8:22:23 编辑

我编的剖切符号插入lsp程序 但不能变换方向,请大虾们帮忙看看,错在那里?还有能不能讲程序简化,因为我是才学lisp,好些都不知道怎样做。 里面的命令 a1和a3剖切符号插入 a2图名插入 s1和s2分别为立面符号和索引符号插入 源代码: ;横向剖切符号插入命令
(defun c:a1 (/ p1 p1 lst cdd pt1 pt2 n1)
(princ "\n")
(princ "横向剖切符号插入命令,输入a1调入命令。")
(setvar "CMDECHO" 0)
(setq lay (getvar "clayer"))
(setq os (getvar "OSMODE"))
(setvar "OSMODE" 4799)
(setvar "ORTHOMODE" 1)
(setq p1 (getpoint "\n指定横向剖线第一点:"))
(setq p2 (getpoint p1 "\n指定横向剖线下一点:"))
(setq p1 (trans p1 1 0))
(setq p2 (trans p2 1 0))
(entmake (list (cons 0 "LINE") (cons 10 P1) (cons 11 P2)))
(entdel (entlast))
(setvar "ORTHOMODE" 1)
(command "_.pline" (trans p1 0 1) (trans p2 0 1))
(while (= (getvar "cmdnames") "PLINE")
(command pause)
)
(command)
(command "ORTHOMODE" 0)
(setq cdd (getvar "CDATE"))
(setq cdd (rtos cdd 2 4))
(setq pt1 (getpoint "\n输入剖切符号插入点:"))
(if (= pt1 nil)
(setq pt1 '(0 0 0))
)
(setq pt2 (getpoint "\n输入剖切索引号插入点:"))
(if (= pt2 nil)
(setq pt2 '(0 0 0))
)
(setq n1 (getint "\n缩放比例<1>:"))
(if (= n1 nil)
(setq n1 1)
)
(command "INSERT" "pmfh01.dwg" pt1 n1 n1 "")
(command "INSERT" "pmfh02.dwg" pt2 n1 n1 "")
(princ)
) ;图名符号插入命令
(defun c:a2 (/ p1 p1 lst pt1 n1)
(princ "\n")
(princ "图名符号插入命令,输入a2调入命令。")
(setvar "CMDECHO" 0)
(setq lay (getvar "clayer"))
(setq os (getvar "OSMODE"))
(setvar "OSMODE" 4799)
(setvar "ORTHOMODE" 1)
(setq p1 (getpoint "\n指定图名线第一点:"))
(setq p2 (getpoint p1 "\n指定图名线下一点:"))
(setq p1 (trans p1 1 0))
(setq p2 (trans p2 1 0))
(entmake (list (cons 0 "LINE") (cons 10 P1) (cons 11 P2)))
(entdel (entlast))
(setvar "ORTHOMODE" 1)
(command "_.pline" (trans p1 0 1) (trans p2 0 1))
(while (= (getvar "cmdnames") "PLINE")
(command pause)
)
(command)
(command "ORTHOMODE" 0)
(setq pt1 (getpoint "\n输入图名插入点:"))
(if (= pt1 nil)
(setq pt1 '(0 0 0))
)
(setq n1 (getint "\n缩放比例<1>:"))
(if (= n1 nil)
(setq n1 1)
)
(command "INSERT" "tm.dwg" pt1 n1 n1 "")
(princ)
) ;纵向剖切符号插入命令,
(defun c:a3 (/ p1 p1 lst pt1 pt2 n1)
(princ "\n")
(princ "纵向剖切符号插入命令,输入a3调入命令。")
(setvar "CMDECHO" 0)
(setq lay (getvar "clayer"))
(setq os (getvar "OSMODE"))
(setvar "OSMODE" 4799)
(setvar "ORTHOMODE" 1)
(setq p1 (getpoint "\n指定纵向剖线第一点:"))
(setq p2 (getpoint p1 "\n指纵向剖线定下一点:"))
(setq p1 (trans p1 1 0))
(setq p2 (trans p2 1 0))
(entmake (list (cons 0 "LINE") (cons 10 P1) (cons 11 P2)))
(entdel (entlast))
(setvar "ORTHOMODE" 1)
(command "_.pline" (trans p1 0 1) (trans p2 0 1))
(while (= (getvar "cmdnames") "PLINE")
(command pause)
)
(command)
(command "ORTHOMODE" 0)
(setq pt1 (getpoint "\n输入剖切符号插入点:"))
(if (= pt1 nil)
(setq pt1 '(0 0 0))
)
(setq pt2 (getpoint "\n输入剖切索引号插入点:"))
(if (= pt2 nil)
(setq pt2 '(0 0 0))
)
(setq n1 (getint "\n缩放比例<1>:"))
(if (= n1 nil)
(setq n1 1)
)
(command "INSERT" "pmfh03.dwg" pt1 n1 n1 "")
(command "INSERT" "pmfh04.dwg" pt2 n1 n1 "")
(princ)
) ;立面符号插入命令
(defun c:s1 (/ lst pt1 pt2 rot n1)
(princ "\n")
(princ "立面符号插入命令,输入s1调入命令。")
(setvar "CMDECHO" 0)
(setq lay (getvar "clayer"))
(setq os (getvar "OSMODE"))
(setvar "OSMODE" 4799)
(setq pt1 (getpoint "\n输入立面符号插入点:"))
(if (= pt1 nil)
(setq pt1 '(0 0 0))
)
(setq pt2 (getpoint "\n输入立面方向插入点:"))
(if (= pt2 nil)
(setq pt2 '(0 0 0))
)
(setq n1 (getint "\n缩放比例<1>:"))
(if (= n1 nil)
(setq n1 1)
)
(setq rot (getangle "输入旋转角度 <0>"))
(if (= rot nil)
(setq rot 0)
)
(command "INSERT" "lms.dwg" pt2 n1 rot "")
(command "INSERT" "lm.dwg" pt1 n1 n1 "")
(princ)
) ;索引符号插入命令
(defun c:s2 (/ lst pt1 pt2 pt3 n1)
(princ "\n")
(princ "索引符号插入命令,输入s2调入命令。")
(setvar "CMDECHO" 0)
(setq lay (getvar "clayer"))
(setq os (getvar "OSMODE"))
(setvar "OSMODE" 4799)
(setq pt1 (getpoint "\n输入索引符号插入点[右索引(Y)/左索引(Z)]:"))
(if (= pt1 nil)
(setq pt1 '(0 0 0))
)
(setq n1 (getint "\n缩放比例<1>:"))
(if (= n1 nil)
(setq n1 1)
)
(command "INSERT" "sz.dwg" pt1 n1 n1 "")
(princ)
)

本帖子中包含更多资源

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

x
发表于 2004-10-22 23:20 | 显示全部楼层
把你要得出的结果传上来(要得到的图)
 楼主| 发表于 2004-10-23 10:24 | 显示全部楼层
贴图如下:

本帖子中包含更多资源

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

x
发表于 2004-10-23 23:19 | 显示全部楼层
提供一个定制的装修符号程序:zxfh.fas,加载zxfh,运行zxfh。

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-10-24 19:38 | 显示全部楼层
xyp1964兄,你的程序我用了,是为2004以上版本的,结果如下,并不是很好用。 但你的程序设计的很好,能不能将源码共享了,我参照一下,因为才接触lisp编程,好多都不知道怎样做。 测试结果:

本帖子中包含更多资源

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

x
发表于 2008-8-24 23:13 | 显示全部楼层
你的程序很有创造值得学习辛苦了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-2 10:51 , Processed in 0.154363 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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