lisp 左手钢筋_钢筋对齐(已解决) - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

博主在论坛求助,现有AutoLISP程序只能处理水平钢筋对齐,需要修改以支持竖向钢筋的对齐。提供原始程序代码,并期待高手帮助改进或提供新方案,以满足结构设计中的钢筋对齐需求。
摘要由CSDN通过智能技术生成

本帖最后由 涛涛_1048 于 2018-7-28 10:59 编辑

以前请人编了个程序,当时只测试了水平钢筋,现在想用了才发现竖向钢筋没有办法对齐。现在把图纸和原来的程序贴出来,请高手帮忙。可以在此程序的基础上修改,或者另外编写都可以。一个结构佬不胜感谢!

以下是当时的程序

(defun c:gja ()

(setvar 'cmdecho 0)(setq old-osmode (getvar 'osmode))(setvar 'osmode 0)

(while(= (setq endate(car(entsel "选择对齐的基准钢筋:"))) nil))

(setq datelst(entget endate))

(setq jptlst(get10date datelst))

(setq ang(angle(car jptlst)(cadr jptlst)))

(setq pta(car jptlst))

(while(= 1 1)

(print "选择需要对齐的钢筋(包括文字):")

(setq ass(ssget))

(setq enss(mapcar 'cadr (cdr(reverse(ssnamex ass)))))

(setq n 0)

(repeat (length enss)

(setq en(nth n enss))

(if(equal "LWPOLYLINE" (cdr(assoc 0 (entget en))))

(setq qptlst(get10date (entget en)))

)

(setq n(1+ n))

)

(if(or(equal ang 0 0.001)(equal ang (* 0.5 pi) 0.001))

(progn

(command "_.move" ass "" (car qptlst) (list(car(car qptlst))(cadr(car jptlst))))

)

(progn

(command "_.move" ass "" (car qptlst) (list(car(car jptlst))(cadr(car qptlst))))

)

);if结束

)

(setvar 'osmode old-osmode)

(prin1)

)

(defun get10date( datelst / ptlst x )

(setq ptlst '())

(mapcar '(lambda(x)

(if(= 10 (car x))(setq ptlst(cons (cdr x) ptlst)))

)

datelst

)

(reverse ptlst)

)

(defun *error*(msg)

(setvar 'osmode old-osmode)

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值