Announcements

Starting in December, we will archive content from the community that is 10 years and older. This FAQ provides more information.

Helmert transformation for students (landsurveying)

greet_mendonck
Explorer
Explorer

Helmert transformation for students (landsurveying)

greet_mendonck
Explorer
Explorer

Hey,

 

Does anybody can help me? I have a student licence autocad civil 3D. When a landsurveyor has gained data, it stands in a local coördinate system. Then the data has to be transformed into a known coördinate system. In university, we use the Helmert transformation to do so. But I can not find a way to perform this transformation in Autocad, which makes this software pretty useless for landsurveyors. I have found an app which cost us 180 euro per year, but for a student this is a lot of money. Does anybody has an other solution in autocad civil 3D to perform a helmert transformation? ADERsheet or allign is not sufficient enough.

Thanks a lot for answering this question,

Greet

0 Likes
Reply
731 Views
11 Replies
Replies (11)

AllenJessup
Mentor
Mentor

Civil 3D uses a more modern Least Squares Transformation. There are articles and videos online.

Allen Jessup
CAD Manager - Designer
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

0 Likes

jeff.wangD95HG
Advocate
Advocate

as a land surveying graduate. I can tell you that we are using least squares transformation now and you can in fact do it in civil 3d. But its easier and faster to adjust it using star net then bringing it in

AllenJessup
Mentor
Mentor

@jeff.wangD95HG Yes. We also use Star*Net. But the OP is a student and I don't think Star*Net has a student license.

There is a 10 Day Trial. But I don't think that's long enough to learn to use it unless you have previous experience with Least Squares.

Allen Jessup
CAD Manager - Designer
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

0 Likes

Pointdump
Mentor
Mentor

Hi Greet,
"...align is not sufficient..."
For those times when it is not, you have options:
1. Transformation Tab
2. Custom Low Distortion Projection
3. Custom Projection using an Affine Post-Processor
Post up some of your data. Let's see what you've got.
Dave

Dave Stoll
Las Vegas, Nevada

EESignature

64GB DDR4 2400MHz ECC SoDIMM / 1TB SSD
NVIDIA Quadro P5000 16GB
Windows 10 Pro 64 / Civil 3D 2024
0 Likes

greet_mendonck
Explorer
Explorer

I am going for the CADsys GmbH Add-in, because it is similar to what the students are used to. Somebody has experience with the app?

I am waiting for an answer from the dealer because it is rather expensive for a student...so maybe they have a student license or something. 

Thanks for the answers, guys!

0 Likes

caddie99
Advocate
Advocate

;
; Graphical Helmert's transformation
; ----------------------------------
(defun C:Helmert ( / lun lup aun aup ang ib1 ib2 x1 y1 X2 Y2
q ib xt1 yt1 Xt2 Yt2 t1 t2 dx dy ir Xx Yy xr yr
a1 a2 b1 2b c1 c2 sa1 sa2 sb1 sb2 sc1 sc2
at bt qt wt wtr wtd scl et)

(setq lun (getvar "LUNITS"))
(setq lup (getvar "LUPREC"))
(setq aun (getvar "AUNITS"))
(setq aup (getvar "AUPREC"))
(setq ang (getvar "ANGDIR"))

(setvar "LUNITS" 2)
(setvar "LUPREC" 3)
(setvar "AUNITS" 2)
(setvar "AUPREC" 4)
(setvar "ANGDIR" 1)

(setq ib1 (getpoint "\n 1st identical point (source) : "))
(setq ib2 (getpoint ib1 "\n 1st identical point (target) : "))
(setq x1 (list (car ib1)))
(setq y1 (list (cadr ib1)))
(setq X2 (list (car ib2)))
(setq Y2 (list (cadr ib2)))
(grdraw ib1 ib2 5)

(setq ib1 (getpoint "\n 2nd identical point (source) : "))
(setq ib2 (getpoint ib1 "\n 2nd identical point (target) : "))
(setq x1 (append x1 (list (car ib1))))
(setq y1 (append y1 (list (cadr ib1))))
(setq X2 (append X2 (list (car ib2))))
(setq Y2 (append Y2 (list (cadr ib2))))
(grdraw ib1 ib2 5)

(setq q "Y"
ib 2)
(while (/= q "N")
(initget "Y N")
(setq q (getkword "\n Next point ? Yes/No <Y> : "))
(if (or (= q "y") (= q "Y") (= q nil))
(progn
(setq ib1 (getpoint "\n Next identical point (source) : "))
(setq ib2 (getpoint ib1 "\n Next identical point (target) : "))
(setq x1 (append x1 (list (car ib1))))
(setq y1 (append y1 (list (cadr ib1))))
(setq X2 (append X2 (list (car ib2))))
(setq Y2 (append Y2 (list (cadr ib2))))
(setq ib (+ 1 ib))
(grdraw ib1 ib2 5)
)
)
)

(setq xt1 0.0
yt1 0.0
Xt2 0.0
Yt2 0.0)
(foreach p x1 (setq xt1 (+ xt1 p)))
(foreach p y1 (setq yt1 (+ yt1 p)))
(foreach p X2 (setq Xt2 (+ Xt2 p)))
(foreach p Y2 (setq Yt2 (+ Yt2 p)))
(setq xt1 (/ xt1 ib))
(setq yt1 (/ yt1 ib))
(setq t1 (list xt1 yt1))
(setq t2 (list (/ Xt2 ib) (/ Yt2 ib)))
(setq dx (- (nth 0 t2) (nth 0 t1)))
(setq dy (- (nth 1 t2) (nth 1 t1)))

(grdraw t1 t2 6)

(setq ir 0)
(setq Xx nil
Yy nil
xr nil
yr nil)
(while (< ir ib)
(setq Xx (append Xx (list (- (nth ir X2) (nth ir x1)))))
(setq Yy (append Yy (list (- (nth ir Y2) (nth ir y1)))))
(setq xr (append xr (list (- (nth ir x1) xt1))))
(setq yr (append yr (list (- (nth ir y1) yt1))))
(setq ir (+ 1 ir))
)

(setq ir 0)
(setq a1 nil
a2 nil
b1 nil
b2 nil
c1 nil
c2 nil)
(while (< ir ib)
(setq a1 (append a1 (list (* (nth ir Xx) (nth ir xr)))))
(setq a2 (append a2 (list (* (nth ir Yy) (nth ir yr)))))
(setq b1 (append b1 (list (* (nth ir Yy) (nth ir xr)))))
(setq b2 (append b2 (list (* (nth ir Xx) (nth ir yr)))))
(setq c1 (append c1 (list (* (nth ir xr) (nth ir xr)))))
(setq c2 (append c2 (list (* (nth ir yr) (nth ir yr)))))
(setq ir (+ 1 ir))
)

(setq ir 0)
(setq sa1 0.0
sa2 0.0
sb1 0.0
sb2 0.0
sc1 0.0
sc2 0.0)
(while (< ir ib)
(setq sa1 (+ sa1 (nth ir a1)))
(setq sa2 (+ sa2 (nth ir a2)))
(setq sb1 (+ sb1 (nth ir b1)))
(setq sb2 (+ sb2 (nth ir b2)))
(setq sc1 (+ sc1 (nth ir c1)))
(setq sc2 (+ sc2 (nth ir c2)))
(setq ir (+ 1 ir))
)

(setq at (/ (+ sa1 sa2) (+ sc1 sc2)))
(setq at (+ 1 at))
(setq bt (/ (- sb1 sb2) (+ sc1 sc2)))
(setq qt (sqrt (+ (* at at) (* bt bt))))
(setq wt (atan bt at))
(setq wtr (* (1- 0) (/ (* 200.0 wt) pi)))
(setq wtd (* (1- 0) (/ (* 180.0 wt) pi)))

(setq q "Y")
(initget "Y N")
(setq q (getkword "\n Apply scale q? Yes/No_(q=1)/User <Y> : "))
(if (or (= q "y") (= q "Y") (= q nil))
(setq scl qt)
)
(if (or (= q "n") (= q "N"))
(setq scl 1.0)
)
(if (or (= q "u") (= q "U"))
(setq scl (getreal "User's scale : "))
)
(setq et (ssget))
(setq q "N")
(initget "N Y")
(setq q (getkword "\n Keep the original drawing ? No/Yes <N> : "))
(if (or (= q "y") (= q "Y"))
(command "_copy" et "" "0,0,0" "0,0,0")
)
(command "_move" et "" "_none" t1 "_none" t2)
(command "_rotate" et "" "_none" t2 wtr)
(command "_scale" et "" "_none" t2 scl)

(princ
(strcat "\n dY : " (rtos dx 2 3) " dX : " (rtos dy 2 3)
"\n w : " (rtos wtr 2 4) "g " (rtos wtd 2 5) "° q : " (rtos scl 2 😎
)
)

(setvar "LUNITS" lun)
(setvar "LUPREC" lup)
(setvar "AUNITS" aun)
(setvar "AUPREC" aup)
(setvar "ANGDIR" ang)

)
;======Konec

PeterKozub
Advocate
Advocate

Dear Sir

 

Hi

 

What is this text language is this latex rubber sheet transform written in

aka 

D+- c++ or c#

or F+-

To the point

what geoid or ellipsoid model did you use

USA foot or world foot or meters ???

 

Best regards

 

 

 

0 Likes

AllenJessup
Mentor
Mentor

Looks like LISP to me. 

Allen Jessup
CAD Manager - Designer
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

0 Likes

greet_mendonck
Explorer
Explorer

Hey I am not sure I understand you 🙂

But rubersheet is NOT sufficient for a landsurveyor. Adersheet does a scale-move-scale and that is not at all what a helmert transformation does.

 

Greetz!

0 Likes

AllenJessup
Mentor
Mentor

This is the result from one of our old projects. I didn't use it to analyze field work. I needed to match a drawing that had been moved and rotated into the current coordinate system.

AllenJessup_0-1683549745601.png

 

Allen Jessup
CAD Manager - Designer
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

0 Likes

greet_mendonck
Explorer
Explorer

thanks for the answer....i am going to try the free testversion of the app I was talking about. It looks like this:

greetmendonck_0-1683549941283.png

 

0 Likes