masterlong
发表于 2017-11-28 21:20:25
G版的局部放大程序
我这里十次有九次出错
所以干脆自己做了这么一个
利用CAD本身的功能
加一些定位操作就搞定了
自贡黄明儒
发表于 2017-11-28 21:32:26
masterlong 发表于 2017-11-28 21:17
不是建筑专业对天正不熟悉
个人习惯要求建筑提资转t3
需要画大样的时候
哪个版本开始有EXPORTLAYOUT?
masterlong
发表于 2017-11-28 21:38:35
本帖最后由 masterlong 于 2017-11-28 21:39 编辑
过去一直用XP+2004
但是为了测试程序兼容性
也装了08、10、12、14
偶然发现12里有这么个功能
但没有特意去看哪个版本开始有的
xinxirong
发表于 2017-11-28 23:16:11
2010版就有,2013 2016都不支持天正
rhww
发表于 2017-11-29 13:26:15
学习一下。谢谢
masterlong
发表于 2017-11-29 17:38:52
CAD是不可能主动支持天正软件的
因为天正是基于CAD进行的二次开发软件
天正图元都是自定义图元
zixuan203344
发表于 2017-11-29 23:47:07
本帖最后由 zixuan203344 于 2017-11-30 00:08 编辑
缺少的俩函数
;p1基于p0放大sc倍
(defun p0_sc_p1(p0 p1 sc)
(mapcar(function(lambda(x y)(+ x (* (- y x) sc)))) p0 p1)
)
;两点的中点
(defun getmidpo(lst)
(mapcar(function(lambda(x y)(/ (+ x y) 2)))(car lst) (cadr lst))
)
另外下面函数可以简写
;;选择集转为图元列表
(defun ss2list ( ss / n i elist )
(vl-remove-if-not(function(lambda(x)(= (type x) 'ENAME))) (mapcar 'cadr (ssnamex ss)))
)
zixuan203344
发表于 2017-11-30 09:29:54
其实不算新人,来这里注册一年有余了,只不过很少发帖子和回复罢了
masterlong
发表于 2017-11-30 09:35:19
与选择集有关的函数
在执行前都应该先检验参数是否选择集
楼上的函数可以这样改
(if (= (type ss) 'Pickset)(mapcar 'cadr (ssnamex ss)))
masterlong
发表于 2017-11-30 09:39:28
本帖最后由 masterlong 于 2017-11-30 09:42 编辑
;;求点对中点
(defun getmidpo( pts / P1 P2 X Y )
(setq p1 (car pts) p2 (cadr pts))
(if (= (length p1) (length p2))
nil
(setq p1 (list (car p1) (cadr p1))
p2 (list (car p2) (cadr p2))
)
)
(mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) P1 P2)
)
“/”在使用时
要注意除数是整数还是小数
另外p1、p2格式不同是容易被忽视的