我也学学lisp,视口锁定/解锁的小程序
eobser
eobser Lv.7
2006年09月27日 09:53:51
只看楼主

;用autocad2006,以前版本的右键锁定视口菜单没了,搞了一个,可以批量锁定/解锁,大家批批。;加载后命令:vl(defun c:vl() (if (setq ents (ssget ’((0 . "VIEWPORT")))) (progn (setq orstring (getstring "\n解锁/<锁定>:")) (cond ((= orstring "u") (command "mview" "l" "off" ents ""))

;用autocad2006,以前版本的右键锁定视口菜单没了,搞了一个,可以批量锁定/解锁,大家批批。
;加载后命令:vl
(defun c:vl()
(if (setq ents (ssget ’((0 . "VIEWPORT"))))
(progn
(setq orstring (getstring "\n解锁 /<锁定>:"))
(cond
((= orstring "u") (command "mview" "l" "off" ents ""))
((= orstring "") (command "mview" "l" "on" ents ""))
)
)
)
(princ)
)
免费打赏
lhldragon2004
2006年09月27日 11:44:26
2楼
希望大家以后多多发一下关于CAD编程的,我会好好奖励大家的.
回复
eobser
2006年09月27日 11:49:43
3楼
;谢谢斑竹!再贴个高程转换的程序,也请大家批批,好完善。
;请将高程点数据放在gcd图层,有时间再对等高线也处理(简单的move一下就行了)。
(defun c:gczh ()
(setq ent_s (ssget "x" (list (cons 0 "TEXT") (cons 8 "gcd"))))
(setq odim (getvar "dimzin"))
(setvar "dimzin" 1)
(if ent_s
(progn
(setq ent_n (sslength ent_s))
(setq ent_j (getreal "\n输入数值[+/-]:"))
(if (null (setq ent_f (getreal "\n输入小数点位数[3]:")))
(setq ent_f 3)
)

(if (null ent_j) (setq ent_j 0))
(setq i 0)
(repeat ent_n
(setq ent_m (ssname ent_s i))
(setq ent_i (entget ent_m))
(setq ent_x (atof (cdr (assoc 1 ent_i))))
(setq ent_xx (+ ent_x ent_j))
(setq ent_i (subst (cons 1 (rtos ent_xx 2 (fix ent_f))) (assoc 1 ent_i) ent_i))
(entmod ent_i)
(setq i (1+ i))
)
)
(prin1 "\n请先将高程数据放到gcd图层上!")
)
(setvar "dimzin" odim)
(princ)
)
回复
水的畅想
2006年10月18日 15:59:16
4楼
楼主是强人~
回复
lhldragon2004
2006年10月18日 19:57:00
5楼

英雄所见略同
回复
eobser
2006年10月21日 11:09:53
6楼
两位过奖了,lisp我也刚入门。
有时间我会常来,希望能和大家交流交流,共同进步。

回复
etom999
2007年02月24日 14:01:10
7楼
谢谢
回复
水的畅想
2007年02月26日 16:19:19
8楼
eobser
有空到暖通的CAD板块指导工作啊~~
呵呵
回复
hhzjxss
2007年02月27日 20:39:06
9楼
我在学EXCEL的VBA编程,不知道CAD的是不是难学呀?我还没涉及过呢?
回复
huerfei008
2007年02月28日 21:10:05
10楼
语法都差不多吧,只是处理对象可能不同.希望大家学懂了,告诉我们一下!
回复
eobser
2007年03月01日 21:40:15
11楼

以前也学过excel的vba入门,现在也忘光了,因为少用。
现在入门lisp,用<vlisp函数说明>及<autolisp&dcl>,感觉不会很难,精就困难了,需要时间+兴趣+交流。
也可以学学vba啊。
回复

相关推荐

APP内打开